RPCS3 / rpcs3

PlayStation 3 emulator and debugger
https://rpcs3.net/
GNU General Public License v2.0
15.3k stars 1.9k forks source link

Sleepy GOAL thread/access violation: Jak and Daxter Collection [BCUS98281] freeze, then RPCS3 freezes #14218

Open EdHerdman opened 1 year ago

EdHerdman commented 1 year ago

Quick summary

In Jak and Daxter Collection [BCUS98281]'s Spider Cave level, at one of the exits from the square mining / Giant Robot area, there's an orange Eco vent in front of spider eggs. Shortly after I started this gameplay sequence (shooting spiders, getting hit once, shooting some more), the game froze. After the game freeze, I noticed the FPS counter continued to fluctuate. Next, I took a manual screenshot of the interface showing an access violation. I wasn't able to create an RSX capture.

Then I closed the running game window, and after the log processed some messages, RPCS3's interface also froze when I went to close the window. I took a screenshot at this point also.

GOAL as mentioned in the log seems to refer to the custom LISP-style programming language Naughty Dog used for the Jak games, and the OpenGOAL devs mention original game bugs can happen, so it's possible this is an original game bug. However, perhaps RPCS3 should be able to recover from this fault on exiting emulation.

I've also backed up the game save from dev_hdd0\home\00000001\savedata in case it's wanted.

jak-access-violation-freeze jak-access-violation-freeze2

Issue #13247 also reports a Jak crash but GOAL is mentioned in different contexts there.

Attach a log file

RPCS3.log

System configuration

AMD Ryzen 7 3700X, 32GB RAM NVIDIA RTX 4080 GPU driver version 536.40 Windows 11 Pro Version 22H2 OS build 22621.1992

kd-11 commented 1 year ago

The large number of missing files is worrying. That's one of the major causes of unmapped memory assert.

EdHerdman commented 1 year ago

I just checked the log after installing firmware and installing/starting Jak on the latest Build 0.0.28-15365, no idea if I'm missing something. I still see missing VFS and IPC config messages, like so:

·! 0:00:00.098005 VFS: VFS config missing. Using default settings. Path: C:/Users/edher/Desktop/game/PS3/rpcs3-v0.0.28-15365-ba988f1d_win64/config/vfs.yml

·! 0:00:00.110785 IPC: IPC config missing. Using default settings. Path: C:/Users/edher/Desktop/game/PS3/rpcs3-v0.0.28-15365-ba988f1d_win64/config/ipc.yml

Shoegzer commented 8 months ago

Looking at your log, I've seen this sort of thing happen in several games myself, usually right before they freeze:

·E 0:00:35.610152 {PPU[0x1000007] Thread (fios mediathread 2) [libfs: 0x01432090]} sys_fs: 'sys_fs_open' failed with 0x80010006 : CELL_ENOENT, “/dev_bdvd/PS3_GAME/USRDIR/data/Jak1/jak1/data/dgo1/sunkenb.dgo” [1]

For example, Fallout 3 freezes constantly for me (see #14974), and i've had this same failure to read assets show in my log (though not in the one I posted to that issue). I traced the specific files in question and sure enough, they were there, even though the log seemed to show a failure to read them.

Then I noticed something.

I had recently played the game while doing some heavy disk I/O in the background for something completely unrelated, and it didn't freeze at all in several hours of playing. Normally it would freeze between 5-15 minutes in (and sometimes even within a minute). This has me wondering: is it possible the freezing is due to the fact that RPCS3 is reading game assets from SSDs, which might be too fast for the emulated PS3 if nothing else is happening to slow it down? In this case I would imagine some kind of race condition that would cause the game to lock up. This might especially be true for games like Fallout 3 (and maybe Jak?) that constantly stream lots of game data. Your log above also shows reading from /dev_bdvd which should be a lot slower than even the PS3 HDD.

Of course I could be totally off about this, so forgive any red herrings here.

EdHerdman commented 7 months ago

IIRC, I used my fairly fast Samsung NVMe SSD as the drive for Windows 11, RPCS3, and the Jak game files. I always made sure to not run anything else in the background while RPCS3 was running, and I don't have a lot of stray processes or Windows components going.