hrydgard / ppsspp

A PSP emulator for Android, Windows, Mac and Linux, written in C++. Want to contribute? Join us on Discord at https://discord.gg/5NJB6dD or just send pull requests / issues. For discussion use the forums at forums.ppsspp.org.
https://www.ppsspp.org
Other
10.77k stars 2.12k forks source link

JIT/Dynarec crash upon load on RISC-V #19266

Closed archanox closed 2 weeks ago

archanox commented 2 weeks ago

Game or games this happens in

ULUS-10093 - WRC

What area of the game / PPSSPP

Upon loading the game.

What should happen

Dynarec/JIT should be functional when running on RISC-V

Logs

44:24:851 Core/System.cpp:428 N[BOOT]: PPSSPP v1.17-875-g5dec3ca2db
44:25:338 root         N[BOOT]: UI/EmuScreen.cpp:384 Booted /media/debian/Storage/Isos/World_Rally_Championship_USA_PSP-pSyPSP.iso...
44:25:339 root         E[SYSTEM]: Common/Log.cpp:73 (/media/debian/Storage/ppsspp/Core/MIPS/IR/IRNativeCommon.cpp:CompileIRInst:477): [false] (ULUS10093 WRC, 0.5s) Unexpected IR op 11
(/media/debian/Storage/ppsspp/Core/MIPS/IR/IRNativeCommon.cpp:CompileIRInst:477): [false] (ULUS10093 WRC, 0.5s) Unexpected IR op 11
Trace/breakpoint trap

Platform

Linux / BSD

Mobile device model or graphics card (GPU)

Radeon HD 7850

PPSSPP version affected

v1.17-875-g5dec3ca2db

Last working version

No response

Graphics backend (3D API)

Vulkan

Checklist

anr2me commented 2 weeks ago

(Assuming your ISO's CRC is good, and other CPU Cores are working fine) Try disabling some of JIT functionality to find out which one causing the crash.

hrydgard commented 2 weeks ago

This seems related to my recent ir interpreter optimizations. Will look into it.

archanox commented 2 weeks ago

(Assuming your ISO's CRC is good, and other CPU Cores are working fine)

Yeah it's the same CRC as my physical copy. It works fine on other platforms, and the it interpreter on RISC-V.

Try disabling some of JIT functionality to find out which one causing the crash.

Can do if it helps narrow down the issue.

archanox commented 2 weeks ago

I just tested the JIT with everything disabled, and it errors mostly the same.

Now it says

59:19:621 user_main    E[SYSTEM]: Common/Log.cpp:73 (/media/debian/Storage/ppsspp/Core/MIPS/IR/IRRegCache.cpp:operator():806): [false] (ULUS10093 WRC, 0.4s) Unexpected type: ?
(/media/debian/Storage/ppsspp/Core/MIPS/IR/IRRegCache.cpp:operator():806): [false] (ULUS10093 WRC, 0.4s) Unexpected type: ?
Trace/breakpoint trap
hrydgard commented 2 weeks ago

Thanks, I'll get this fixed soon.

archanox commented 1 week ago

Thanks, this is now resolved in the IR Interpreter.

hrydgard commented 1 week ago

Hm? I thought it was only the actual IR JIT that was broken, did it also not run using the IR Interpreter previously? It should have.

archanox commented 1 week ago

Sorry @hrydgard, right you are. Have opened the new linked issue anyway as the problem in the title still persists.