Gericom / GBARunner3

182 stars 24 forks source link

[Game] Tennis no Ouji-sama 2003 - Passion Red/ Cool Blue Freeze before a match begins #121

Open Dartz150 opened 7 months ago

Dartz150 commented 7 months ago

Game Info

Game Title: Tennis no Ouji-sama 2003 - Passion Red | Tennis no Ouji-sama 2003 - Cool Blue TID: A8RJ | A9LJ REG: JAP

GBARunner3 info

Commit: 841870a Build Date: 29 Nov 2023 Branch: develop JIT Patches on repo: no Console: DSi Device: SD Manual JIT Patches:A8RJ00.json A9LJ00.json wram icache:Flashcard Model:

Compatibility: Unplayable

Notes: The game freezes just before a match begins in a black screen. JIT patches didn't help, wram icache off neither. This game is also reported as unplayable on GBARunner2 (Both DS and DSi builds).

Gericom commented 7 months ago

It seems the game is executing some data as code. For Cool Blue the jump happens at 0x080008D8, through R0 which always has value 0x03006C20 at that point. No$gba throws an undefined instruction error at that point and cannot continue. On real hw what probably happens is that, by pure luck, it manages to pass all the crap in memory until it reaches a mirror of the irq handler which manages to return to the calling code.

It seems this can be fixed by skipping the jump to the bad "code". Setting 0x080008D8 to 0x46C046C0 (two nops) makes the game work.