Closed benderscruffy closed 1 day 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.
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.