jsgroth / jgenesis

Sega Genesis / Sega CD / SNES / Master System / Game Gear emulator
MIT License
44 stars 3 forks source link

Triple Play - Gold Edition (USA).md nothing but a black screen #112

Closed benderscruffy closed 1 day ago

jsgroth commented 2 months ago

The only trusted dump of this game is in a rather strange format.

First, it's little-endian instead of big-endian, so it will need to be byteswapped on load. This is easy to detect generically because $100-$104 in the ROM header always contains the ASCII string "SEGA", so if it instead contains "ESAG" then the ROM needs to be byteswapped.

The second and bigger issue is the last 1MB of the 4MB dump is garbage - it's just the byte 0xFF repeated roughly 1 million times. After byteswapping the ROM on load, the game eventually jumps to an address in the $300000-$3FFFFF range and crashes, so it clearly expects there to be something there.

Triple Play 96 seems to have the same issue.

jsgroth commented 2 months ago

The trick with this one is that it only has 3MB of ROM (not sure why the dump is 4MB) but it expects the third MB to be mapped to $300000-$3FFFFF, not $200000-$2FFFFF. $200000-$20FFFF should map to 32KB of SRAM (which is specified in the header, no need to special case).

That plus byteswapping on load fixes both versions of Triple Play.