In order to the the ‘V100’ set of The Gladiator running I had to analyze the ARM code a little more. It quickly became apparent that the V100 set expected a different internal ROM, with the code offset fro what all the other sets expect.
For this reason I actually have a feeling it might be pre-V100 despite identifying itself as V100, because the internal ROM we have is supposedly ‘V100’ and it clearly expects an earlier one. I have a feeling the true V100 release is that found on the PCB version.
Anyway what I found was that all jumps to the internal ROM were done through a table of function pointers, so as a temporary solution (until we can find that actual cart again) I patched it to call the functions in the internal ROM we have, ugly, but effective.
However, I noticed another thing after poking around a bit. The table of function pointers in Happy 6 was the exact same length as The Gladiator, and by applying the same patches there the game actually started to boot. You can coin it up, possibly because in reality it needs a different ROM (we have a cart on the way for analysis) but the game can now run through it’s attract mode.
There was a further problem with Happy 6, unlike all the other IGS PGM originals it had address scrambled graphic roms / sound roms as well. I found this a little strange because typically only the nasty bootlegs employed such techniques, but it was easy enough to deal with.
I guess the function pointer table was the same because the codebase is actually built on the same code as The Gladiator was, and the internal ROM acts a bit like a bios. If you observe the high-score table sequence in Happy 6 the presentation of it is almost identical to The Gladiator for instance.
Please note, this game is NOT playable yet.
and before you ask, no, I can’t use the same trick on Spectral Vs. Generation, the jump table is much bigger so clearly isn’t a 1:1 match in terms of the functions it should be calling.
Hopefully when we get the cart the remaining issues can be solved, assuming they’re not caused by my simulation of the Execute Only area, but either way we really should run the proper code! The fact this runs as well as it does is a surprise.
Note, when set to Singapore the title logo is different (there IS an Overseas codepath in the code, but as none of the game is localized to English I doubt it was ever shipped as that) Also if you enable ‘Girls’ in the Dragon World game (Test mode option) there is a small subtitle on the screen.