libretro / gpsp

gpSP for libretro.
GNU General Public License v2.0
51 stars 51 forks source link

[All Dynarecs] Street Racing Syndicate crashes after pressing 'Start' #200

Open andymcca opened 1 year ago

andymcca commented 1 year ago

As per the title, after loading the ROM and going through the logo screens (which seem to load very slowly), you get to the Title Screen which says 'Press Start'.

Pressing Start will cause a crash out of RetroArch. This is the same behaviour as gpsp 0.91 standalone.

Interpreter doesn't have this issue.

andymcca commented 1 year ago

Just tried this game in gpsp standalone on PSP (so MIPS architecture) and the same thing happens. It actually gives a 'Bad Jump' message in this instance before crashing out.

andymcca commented 1 year ago

@davidgfnet some interesting points below on this game which may point to bigger bugs in gpsp -

When opening the ROM in mgba, the opening screens and logos fade in and out as they appear. In gpsp, the effect is more like screen being rendered in blocks/chunks from left to right. This seems to be the case across Interpreter and all Dynarecs.

Interpreter appears to have worked all the way back to 2014 (if I build including the timer fix I identified), but no Dynarecs work.

If I create a Savestate beyond the crash point in Interpreter, and then try and use this to restore whilst in Dynarec mode, RetroArch crashes out.

DerinQyu commented 1 year ago

Hello I tested this game on TempGBA, game boots fine to menu screen, played both arcade and street mode with no big issues. Maybe is worth checking what TempGBA does with this game since TempGBA code is derived from gpsp.

andymcca commented 1 year ago

@DerinQyu thank you! I will check that out - when I tried TempGBA in PPSSPP, I get a little yellow lock symbol in the bottom left corner and no inputs are seemingly allowed. So I couldn't test this game as it crashes AFTER you press Start. Any ideas on that? Would be great to try out different versions of TempGBA to try and determine when the issue was fixed, then I can track it down in the code.

DerinQyu commented 1 year ago

@DerinQyu thank you! I will check that out - when I tried TempGBA in PPSSPP, I get a little yellow lock symbol in the bottom left corner and no inputs are seemingly allowed. So I couldn't test this game as it crashes AFTER you press Start. Any ideas on that? Would be great to try out different versions of TempGBA to try and determine when the issue was fixed, then I can track it down in the code.

Hello, I used this version of tempgba: https://www.gamebrew.org/wiki/TempGBA4PSP_Mod

Did the first test on a ps vita (game is playable), on my second test in my windows machine ppsspp does not work good with tempgba (game boots into press start screen but ppsspp does not register any input).

andymcca commented 1 year ago

Yes - that's what I get in PPSSPP, and a little key down in the bottom left. Does that key appear when you run TempGBA on the PSP?

andymcca commented 2 months ago

@DerinQyu old issue but I took another look today - I believe the issue is because the gpsp dynarec doesn't support running/compiling code from VRAM. TempGBA had this as part of the partial cache flushing implementation. The 'Bad Jump' message that gpsp throws before quitting references an address is the VRAM memory space, hence my conclusion.