Disgaea 4 [BLUS30727]
Started by ssshadow




21 posts in this topic
ssshadow
Moderator
*****


4
2,494 posts 63 threads Joined: Aug 2017
03-02-2014, 03:51 PM -
#1
Archived old thread. See new one here: http://www.emunewz.net/forum/showthread....pid=243322



This is not loadable, however, I think it could easily be. There are very few errors during loading, however these stick out:

Code:
[E : PPU[1] Thread (CPUThread)[0x02add0e8]]: TODO: cellFsGetFreeSize
[W : PPU[84] Thread (fios mediathread 8)[0x02add04c]]: sys_fs warning: cellFsUnlink(path="/dev_hdd1/BLUS30727/cache.idx")
[E : PPU[84] Thread (fios mediathread 8)[0x02add0dc]]: TODO: cellFsFsync

The game becomes confused, because the game dbg is:

Code:
FIOS schedulercache - ERROR - disk full, /dev_hdd1/BLUS30727/cache.idx is larger than free space on /dev_hdd1! Cache is disabled. Remove files or reduce numBlocks to fit.
FIOS failed deleting invalid cache file '/BLUS30727/cache.idx', err = -2147416315
FIOS failed deleting invalid cache file '/BLUS30727/cache.dat', err = -2147416315
CELL_OK!

Perhaps a cellFsGetFreeSize that returns "12345678" or something would be enough? This is of course not true, but no one should care. Same for cellFsFsync. The real host OS is going to handle file syncs any way I think.

I think I fixed it.

Well, the game still doesn't load, but the game dbg errors are gone. Google told me cellFsGetFreeSize has three parameters, path, a 32 bit integer block_size, and 64 bit integer block_count, no idea what the last two actually are though.

Code:
int cellFsGetFreeSize(u32 path_addr, mem32_t block_size, mem64_t block_count)
{
    sys_fs.Log("cellFsGetFreeSize: random numbers"); // Should perhaps be reported by the OS

    block_size = 409600; // ?
    block_count = 1638400; // ?

    return CELL_OK;
}
Bigpet
Unregistered


 
03-02-2014, 04:37 PM -
#2
I'm a little confused, is the block_size of 400k normal? I would try setting block_size to 4096

Even with just 4K that method return 6.4GB free
ssshadow
Moderator
*****


4
2,494 posts 63 threads Joined: Aug 2017
03-02-2014, 04:41 PM -
#3
(03-02-2014, 04:37 PM)Bigpet Wrote: I'm a little confused, is the block_size of 400k normal? I would try setting block_size to 4096

Even with just 4K that method return 6.4GB free

Random numbers for the sake of experimenting. 4096 also works of course. The proper way would of course be to get actual disk space from the OS, this was just a test to see if Disagea 4 would be loadable, and it isn't, there must be other issues. I am not even sure if this method has all the right parameters or anything like that, but it returns a number, and Disgaea 4 is happy about it, but still isn't loadable. So this thread can be ignored for the time being: experiment failed.
ssshadow
Moderator
*****


4
2,494 posts 63 threads Joined: Aug 2017
03-14-2014, 09:40 PM -
#4
It is loadable now (at least in Nekotekinas branch, haven't tested main), black gsframe with 70-80 fps since it loops on gcm commands not yet done. Also loads some broken texture.
ssshadow
Moderator
*****


4
2,494 posts 63 threads Joined: Aug 2017
05-21-2014, 07:05 PM -
#5
(This topic can be moved to loadable)

It should perhaps be stated that this game fails in the same way as Disgaea D2, and somewhat similarly to The Guided Fate Paradox.

At "cellSaveDataListLoad2: No save entries found!" we pause with the message:

[Image: SwqeQkP.png]

Clicking OK we get the gcm errors. (Note that this free space error is different from OP. The cache files are placed in /dev_hdd1/ now, even after deleting them.). If a save file is present we get a CTD instead of this message.

Now let's look at the log from the last moments:

Quote:[W : PPU[1] Thread (CPUThread)[0x001e408c]]: sysPrxForUser warning: sys_ppu_thread_join(thread_id=120, vptr_addr=0xd0010ad0)
[W : PPU[1] Thread (CPUThread)[0x0049f01c]]: cellSysutil warning: cellSaveDataListLoad2(version=0, setList_addr=0xd0010940, setBuf_addr=0xd0010970, funcList_addr=0x4b0d50, funcStat_addr=0x4b0d58, funcFile_addr=0x4b0d60, container=-1, userdata_addr=0x0)
[W : PPU[1] Thread (CPUThread)[0x0049f01c]]: cellSaveDataListLoad2: No save entries found!
[E : RSXThread]: TODO: cellGcmSetZcullStatsEnable(0x1)
[W : RSXThread]: NV4097_GET_REPORT: Unimplemented type 2
[W : RSXThread]: NV4097_GET_REPORT: Unimplemented type 3
[E : PPU[1] Thread (CPUThread)[0x0049d058]]: TODO: cellGcmGetReport
[E : PPU[1] Thread (CPUThread)[0x0049d058]]: TODO: cellGcmGetReport
[E : RSXThread]: TODO: cellGcmSetZcullStatsEnable(0x1)
[W : RSXThread]: NV4097_GET_REPORT: Unimplemented type 2

...

Note that the gcm errors loop is the same as The Guided Fate Paradox, but this never plays any video.

However it did recently surface that The Guided Fate Paradox did go in game with the same errors still looping, and Disgaea 3 goes in game without ever playing the video (99% sure all these games use different versions of the same engine), so perhaps the issue here are not the gcm commands, but that the game actually does try to quit when it thinks the HDD is full? Someone willing to fill their real PS3 HDD could always test and confirm this I guess... I would rather not trash it. (Of course, someone could debug that free space message, although I do not really know what to look for)
jacky400
Unregistered


 
05-25-2014, 06:58 AM -
#6
Just skip PAMF option help here?
ssshadow
Moderator
*****


4
2,494 posts 63 threads Joined: Aug 2017
05-25-2014, 11:21 AM -
#7
(05-25-2014, 06:58 AM)jacky400 Wrote: Just skip PAMF option help here?

No, still a:
[Image: SwqeQkP.png]

Followed by a endless loop of:
Quote:[W : PPU[1] Thread (CPUThread)[0x0049f01c]]: cellSaveDataListLoad2: No save entries found!
[E : RSXThread]: TODO: cellGcmSetZcullStatsEnable(0x1)
[W : RSXThread]: NV4097_GET_REPORT: Unimplemented type 2
[W : RSXThread]: NV4097_GET_REPORT: Unimplemented type 3
[E : PPU[1] Thread (CPUThread)[0x0049d058]]: TODO: cellGcmGetReport
[E : PPU[1] Thread (CPUThread)[0x0049d058]]: TODO: cellGcmGetReport
[E : PPU[1] Thread (CPUThread)[0x0049d058]]: TODO: cellGcmGetReport
[E : PPU[1] Thread (CPUThread)[0x0049d058]]: TODO: cellGcmGetReport
[W : RSXThread]: NV4097_GET_REPORT: Unimplemented type 2
[W : RSXThread]: NV4097_GET_REPORT: Unimplemented type 3

...

Also, like some homebrew and maybe other games (this thread: http://www.emunewz.net/forum/showthread....pid=210601) you only get a white screen now, whereas before it was like 80 fps and black.
jacky400
Unregistered


 
05-25-2014, 11:46 AM -
#8
I see. thanks for testing it.
ssshadow
Moderator
*****


4
2,494 posts 63 threads Joined: Aug 2017
05-26-2014, 07:57 PM -
#9
With more verbose logging you now get this: http://pastebin.com/Hi6RsMCn (in an endless loop)
ssshadow
Moderator
*****


4
2,494 posts 63 threads Joined: Aug 2017
06-04-2014, 10:37 PM -
#10
With cellGcmGetReport implemened nothing has changed really. I still think the game actually would want to quit after that free space error. Same for Disgaea D2.


Forum Jump:


Users browsing this thread: 2 Guest(s)