libretro / gpsp

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

Mario Kart R Advance (rom hack) doesn't work on Interpreter (Steam PC/Wii), only works on Dynarec #253

Open saulfabregwiivc opened 5 months ago

saulfabregwiivc commented 5 months ago

As the title says, the romhack Mario Kart R Advance 2.0 (romhack of Mario Kart Super Circuit) doesn't work on Interpreter core, including all platforms which have Interpreter core only (Wii, etc.)

In Interpreter, the romhack has random freezing and crashes, and sometimes it even crashes the entire emulator, resulting in automatic exit. On Dynarec this doesn't happen.

Video: https://youtu.be/cKAzkrNHRh4

The romhack only works if the BIOS is set to "Built-in BIOS", if on "Official BIOS" it softlocks on the speed (cc) selection. For trigger this issue, turn off Dynamic Recompiler (set it to OFF) for use Interpreter core, and load the game and do anything you want to play in SINGLE PLAYER game (didn't test other modes). It has random crashes.

Tested on the following RetroArch frontends: on Steam (Windows PC), and on Nintendo Wii. The version of gpSP i'm using is v1.0.0 4caf7a1.

Please fix it so i can play this hack fullspeed on Wii and on platforms with Interpreter only, thanks ;)

PS: i will attach the patch file in .bps (use Flips for patch) for patch it on a Mario Kart - Super Circuit (USA).gba rom. Mario Kart R Advance 2.0 (USA) (Better Colors).bps.zip

PS 2: for your information, the vanilla unpatched game (Mario Kart - Super Circuit) works perfectly fine on Interpreter and Dynarec on gpSP.

andymcca commented 3 months ago

Will almost certainly be an issue with the hack rather than gpsp. Hacks are fairly notorious for having bugs which get past real hardware almost by accident, but trip up when running on an emulator.

Would be interesting if you are able to bisect the issue though - i.e. try it on older release packages of RetroArch which include the gpsp emulator. If you find that an older version works better and/or without freezing/crashing and can let us know what it is, we may be able to zone in on the commit(s) where the issue started.