libretro / gpsp

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

Hamtaro Heartbreak - Freeze after player name selection #198

Closed andymcca closed 1 year ago

andymcca commented 1 year ago

Hamtaro Heartbreak freezes on the player selection screen. mgba had the same issue, and it is seemingly to do with HBlank timing. mgba reference issues here –

Main issue - https://github.com/mgba-emu/mgba/issues/2131 Timing explanation with reference to GBATEK - https://github.com/mgba-emu/mgba/issues/2310

Fixed commit for mgba – https://github.com/mgba-emu/mgba/commit/d071bffe0ad77f109ace9bbc86cb530d63fafdc6

The default behaviour in gpsp is the screen just freezes and the music carries on. If I try and apply the timings to the HBlank detection (1006 instead of 960) as specified to gpsp (in main.c), I get the output in the screenshot here - https://github.com/mgba-emu/mgba/issues/2442

andymcca commented 1 year ago

It would be useful to get the attached test ROM working if possible - this is the one referenced by fleroviux in the explanation given above. Unfortunately on libretro gpsp it displays 'HBL DMA:' and then seemingly hangs.

This would allow us to check the timings on gpsp and tweak the values as required.

basic-timing.zip

andymcca commented 1 year ago

Not sure when/if this one can be properly fixed, but in the meantime there is a Lunar IPS patch available which resolves the issue on this ROM -

https://wiki.funkey-project.com/wiki/List_of_games_with_compatibility_issues#Games_that_require_patching