PCSX2 / pcsx2

PCSX2 - The Playstation 2 Emulator
https://pcsx2.net
GNU General Public License v3.0
11.75k stars 1.62k forks source link

[BUG]: Jak X (SCUS-97429) doesn't boot when EE recompilation is turned off #10795

Open TheTechnician27 opened 8 months ago

TheTechnician27 commented 8 months ago

Describe the Bug

If you go to Advanced -> Disable EE Recompiler, Jak X will fail to boot. Although I'm aware EE interpreter is slower, I don't think it should be any less accurate here. I tested this with IOP interpreting/recompilation too, and that seemed to make no difference. All settings default except disabling the recompiler.

Reproduction Steps

Go to PCSX2 settings, Advanced, and uncheck Enable Recompiler. The game will fail to boot. However, the game seems entirely playable if you disable the recompiler mid-play session.

Expected Behavior

The game should boot when using the EE interpreter.

PCSX2 Revision

v1.7.5550

Operating System

Linux (64bit) - Specify distro below

If Linux - Specify Distro

Manjaro – Flatpak

CPU

Ryzen 7 5800X

GPU

GTX 1070

GS Settings

None.

Emulation Settings

Advanced -> EE Recompiler off All others default.

GS Window Screenshots

No response

Logs & Dumps

emulog.txt

refractionpcsx2 commented 8 months ago

probably needs the "cache effect" that compiling blocks in the recompiler gives, as it decompresses the ELF, which may rely on the instruction cache to contain the old data.

stenzek commented 8 months ago

Writing to any memory occupied by a block should invalidate+recompile it though.

So the int/rec should really behave the same here. Only case where might not, is if you had a block from say, PC 0 through 16, and wrote to +8 at instruction +4. i.e. overwriting a future instruction within the same block, and expecting it to execute the old code. Depending on whether it crosses a cache line, and the I$ state, it may or may not on real hw too :-)

Mrlinkwii commented 2 days ago

still an issue as of v2.1.231