Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Final Fantasy XIII [MRTC00003] LLVM PPU and SPU Cache Compilation Does Not Work #14734

Closed
LawrBear opened this issue Oct 13, 2023 · 12 comments
Closed

Comments

@LawrBear
Copy link

Quick summary

Booting a copy of this game from a clean state does not get past cache compilation when using the LLVM PPU and SPU compilers. The PPU compiler will crash RPCS3 to desktop while the SPU compiler gets stuck.

Details

Hello, I am a new RPCS3 user and was messing around with some game dumps I had and came across this issue when trying to launch FF13. I noticed that two similar issues have already been created but one was closed with no apparent solution and the other is open but hasn't been commented on since July.

Starting the game from a clean state with the default LLVM PPU and SPU recompilers results in the PPU Compiler creating 83/119 modules before hard crashing the whole application to desktop. Attached is the log file showing that a PPU module began compilation when suddenly the program stops.

Clearing the caches and switching the PPU to the Interpreter and keeping the SPU on LLVM with and without SPU Loop detection gets the program past PPU startup but then gets stuck on SPU compilation at 3657/4637 modules. the log files for both of these situations demonstrate a situation where at approx. 34 seconds without loop detection and 1 minute 5 seconds with loop detection, an SPU Worker is terminated due to a fatal error then reports that SPU Workers built 0 programs, at which point I left the program running for approx 3.5-4 minutes each time before I closed RPCS3

Clearing the caches again and switching the SPU to the ASMJIT recompiler (with and without SPU Loop Detection) allowed the game to boot, get past title screen, and actually get into a playable portion of the game. A log file for running without loop detection is included for posterity.

I do not have any personal knowledge about how this stuff works and I have no past experience with running this game in RPCS3 to compare to; I am just providing this information to show the issue that I have experienced, what settings parameters I used, what the program reported in its own log files, and what settings I changed to get the game running.

Attach a log file

RPCS3 Default Settings.log
RPCS3 static PPU LLVM SPU No Loop Detection.log
RPCS3 static PPU LLVM SPU with Loop Detection.log
RPCS3 static PPU ASMJIT SPU.log

Attach capture files for visual issues

No response

System configuration

Windows 11 Pro Build 22621.2428
Ryzen 7 5800X
32 GB RAM
Radeon RX 5700 XT

Other details

RPCS3 Version: 0.0.29-15686-7bb94227 Alpha | master

@Gianluca90
Copy link

Gianluca90 commented Oct 26, 2023

Quick summary

Booting a copy of this game from a clean state does not get past cache compilation when using the LLVM PPU and SPU compilers. The PPU compiler will crash RPCS3 to desktop while the SPU compiler gets stuck.

Details

Hello, I am a new RPCS3 user and was messing around with some game dumps I had and came across this issue when trying to launch FF13. I noticed that two similar issues have already been created but one was closed with no apparent solution and the other is open but hasn't been commented on since July.

Starting the game from a clean state with the default LLVM PPU and SPU recompilers results in the PPU Compiler creating 83/119 modules before hard crashing the whole application to desktop. Attached is the log file showing that a PPU module began compilation when suddenly the program stops.

Clearing the caches and switching the PPU to the Interpreter and keeping the SPU on LLVM with and without SPU Loop detection gets the program past PPU startup but then gets stuck on SPU compilation at 3657/4637 modules. the log files for both of these situations demonstrate a situation where at approx. 34 seconds without loop detection and 1 minute 5 seconds with loop detection, an SPU Worker is terminated due to a fatal error then reports that SPU Workers built 0 programs, at which point I left the program running for approx 3.5-4 minutes each time before I closed RPCS3

Clearing the caches again and switching the SPU to the ASMJIT recompiler (with and without SPU Loop Detection) allowed the game to boot, get past title screen, and actually get into a playable portion of the game. A log file for running without loop detection is included for posterity.

I do not have any personal knowledge about how this stuff works and I have no past experience with running this game in RPCS3 to compare to; I am just providing this information to show the issue that I have experienced, what settings parameters I used, what the program reported in its own log files, and what settings I changed to get the game running.

Attach a log file

RPCS3 Default Settings.log RPCS3 static PPU LLVM SPU No Loop Detection.log RPCS3 static PPU LLVM SPU with Loop Detection.log RPCS3 static PPU ASMJIT SPU.log

Attach capture files for visual issues

No response

System configuration

Windows 11 Pro Build 22621.2428 Ryzen 7 5800X 32 GB RAM Radeon RX 5700 XT

Other details

RPCS3 Version: 0.0.29-15686-7bb94227 Alpha | master

Hey, i have the same problem, i'm on the latest rpcs3 version. Did you manage to resolve the issue? I tried every ppu/spu combination and i can't enter the game, i just crash to desktop while building ppu

EDIT: setting ppu to interpreter, and spu to interpreter (dynamic) made the game starts, but i got 15 fps on the first battle, and the game actually froze with no way to advance.. :/

@Darkhost1999
Copy link
Contributor

The accurate RSX reservation access setting got me past that freeze. 15fps is normal for Interpreters and your experience is valid to how Final Fantasy 13 behaves for a while now. There is no resolution at this time beyond use a build of RPCS3 from before the regression. I had a created issue discussing the regression.

@Gianluca90
Copy link

Gianluca90 commented Oct 27, 2023

The accurate RSX reservation access setting got me past that freeze. 15fps is normal for Interpreters and your experience is valid to how Final Fantasy 13 behaves for a while now. There is no resolution at this time beyond use a build of RPCS3 from before the regression. I had a created issue discussing the regression.

Ah damn, that's unfortunate, the game is basically unplayable at that frame rate.. what version of rpcs3 can i use to play it decently?

EDIT: i reverted to version v0.0.29-15463 following your issue about regression, and the game seems fine, i just started chapter 1. Only thing now is that at higher resolution than default, text is flickering.

@LawrBear
Copy link
Author

Update: As of build 0.0.29-15748-91dbd921 this title no longer crashes to desktop during PPU module compilation but still gets stuck during SPU module compilation at 3657 out of 4637 modules. Program does not freeze or crash to desktop but SPU module compilation does not progress beyond this point under LLVM reinterpreter. Attached log file is with and without SPU loop detection, I believe.

RPCS3.log

Before, the ASMJIT recompiler was able to launch the game in a playable state, but this is no longer the case. Utilizing ASMJIT recompiler for SPU with LLVM PPU now produces the same result as the LLVM recompiler, hanging on 3657 out of 4637 modules.

RPCS3.log

LLVM PPU with Dynamic Interpreter SPU successfully launches game and is technically playable, though the experience isn't great (similar experience to Interpreter PPU/ASMJIT SPU in the past).

RPCS3.log

@LawrBear
Copy link
Author

To clarify, the previous solution of the Interpreter PPU/ASMJIT SPU still works.

@Darkhost1999
Copy link
Contributor

I got in game both PPU & SPU LLVM when using accurate spu dma in the advanced tab.

@LawrBear
Copy link
Author

I got in game both PPU & SPU LLVM when using accurate spu dma in the advanced tab.

do you have other settings enabled? because I still get stuck in building SPU cache...

@LawrBear
Copy link
Author

Okay i resolved my issue myself by additionally enabling Accurate SPU XFloat

@ItsLaguna
Copy link

I got in game both PPU & SPU LLVM when using accurate spu dma in the advanced tab.

Same, first boot will get stuck in the SPU part but the next boot will work with Accurate SPU DMA.

@LawrBear
Copy link
Author

Reconfirmed for myself switching back to Approx XFloat, Accurate SPU DMA is definitely the solution to getting FF13 to run on the LLVM Recompiler, as of this build.

With Accurate SPU DMA enabled, all other settings at their default, the game will fail to launch once (getting stuck during SPU Cache Building), but will successfully launch and be playable on a second launch.

@whitezombie2000
Copy link

whitezombie2000 commented Dec 12, 2023

This still crashes for me sadly with LLVM. I tried to enable Accurate SPU DMA, I tried with Approximate XFloat enabled (default was Accurate), and I tried with both settings on. I tried with just Accurate RSX reservation access on, also with Accurate RSX reservation access and Accurate SPU DMA on, and it crashed. It will only work if I copy the cache from the working older build v0.0.29-15463-edf4f7ea I had posted in the closed issue #13842.

RPCS3.log

@ItsLaguna
Copy link

Last working was #14836,
#14847 breaks PPU LLVM precompilation, emulator crashes to desktop around module 80.

The behaviour for SPU LLVM is unchanged, first time compiling will throw an error but rebooting the game with Accurate DMA will let you get in-game.

broken 0.0.29-15761.log
working 0.0.29-15748.log

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants