I did want this next update to be about the rare Sega game Charles is current dumping the FD1094 key for, to complete a trilogy of ‘3D’ sprite based games, but as it turns out the ROMs aren’t fully dumped yet (although the key has been, fingers crossed it’s still good!)
Anyway, while the rest of that gets done I’ll spend a bit of time talking about something else, it’s a gambling game, so might not be of interest to everybody, but from a hardware perspective it’s quite interesting.
The game in question is Seta’s Jockey Club II. Jockey Club II seems to have been one of the more popular Seta titles, to the point where it came out on several different hardware revisions (we’ve got dumps from 2, but there is apparently at least a 3rd) It also ended up being bootlegged rather heavily.
Currently the only version of the game that works in the ‘Dark Horse’ bootleg (although the actual driver in MAME has been broken for a while now, but doing a quick fix on it was what got me to take another peek at this)
Now, the bootleg is quite crazy, as Luca observed when emulating it they’re parsing all the video ram and converting data from the format expected by Seta customs into plain tilemaps + basic sprites for use with their cheaper hardware. It’s a novel approach, and can only really work if you have CPU power to spare, and the game doesn’t make extensive use of the more advanced features of the chip, but in this case Seta were pretty much just using it for some basic virtual tilemaps and sprites anyway.
Seta had a lot of custom chips, especially video ones, the hallmark features were usually floating sprite ’tilemaps’ plus many levels of hierarchy, indirection, inherited attributed etc. The later ones also integrated sound hardware, and a tile/data blitter + RLE decoder. I’m pretty sure the CPS3 video chips are an evolution of the Seta chips because they share a lot in common with the later ones such as the SSV sprites and the ST-0026 (NiLe) used on Super Real Mahjong 6.
Now, for whatever reason Seta seemed to put some of their more interesting chips to the most mundane of uses, as already mentioned, the ST-0026, which features full RLE decoder and alpha blended sprites was only used on a single Mahjong game!
The Jockey Club II hardware revisions we know about are no exception to this, I guess they could afford to be lavish knowing that casinos and the like would pay good money for these things, but considering the hardware use it seems a bit of a waste.
So the two hardware revisions and their Seta Customs
‘PCB E79-001 rev 01a’ (newer hardware)
SETA ST-0032, SETA ST-0013, SETA ST-0017
‘E06-00409 + E06-00407’ (older hardware)
SETA ST-0020, SETA ST-0016, SETA ST-0013, SETA ST-0017
both revisions are driven by a 68020, and use the same basic code, so let’s discuss the customs.
SETA ST-0013, SETA ST-0017 are also common to both, the 0013 features on Super Real Mahjong 6, I’d guess it’s some kind of input multiplexer, the ST-0017 is unique to this PCB and I have no idea of it’s function, but it’s probably another support chip of some sort.
The real beef of the hardware is in the ST-0032 (newer) or ST-0020 and ST-0016 combo (older) with the ST-0032 and ST-0020 both being large heatsinked chips.
Starting with the older hardware, because we recognize both the chips. The ST-0020 is a sprite chip, it does large zooming sprites, works with 512kb of RAM for the sprite lists, 4MB of RAM for the actual graphics, has a blitter to copy data from ROM to the video RAM and is all driven by a ~100mhz crystal. We know it because it was found on the Gundam Final Shooting SSV board, to boost the capabilities of the basic SSV board (zooming support etc.) Luca had emulated it there previously, or at least emulated it to the degree the limited use of gdfs allows for, it’s possible it can do more.
ST-0016 we also know, it’s an all in 1 Z80 + video + sound chip used for some complete games (Neratte Chu being a personal favourite) as well as a support chip on other games to do basic text layers and such (Super Eagle Shot) We’ve also seen it employed simply to provide audio, ignoring the video capabilities completely (Super Real Mahjong 5) which seems like a waste, but also appears to be what it’s used for here because the ROM for it contains no graphics.
The newer hardware uses the ST-0032, which is an unknown quantity, but after some basic studying it seems to operate in a very similar way to the ST-0020, at least in terms of the video support, some data structures are in a different order, and there are no doubt some other differences. Given the lack of an ST-0016 on these boards, and dedicated sample ROM I’d hazard a guess it also has integrated sound support.
There are a couple of other differences with the bootleg too, the bootleg has dedicated sprite ROMs, the originals seem to contain the sprite data compressed in the program ROMs somehow, it seems the 68k is responsible for decompressing it rather than any of the blitter functions of the ST-0020 / ST-0032 because the board doesn’t actually appear to have any dedicated graphic roms (or at least nothing we can identify as such) so unless the blitter can be tied to program space or do ram->ram operations it doesn’t actually have anything to work with.
Anyway, that’s a lot of text, and to be honest, I don’t have much progress to show for it. What I’ve done is separate the ST-0020 emulation code from ssv.c, and converted it to be a nice modern C++ device in MAME, this allows for easier code reuse. The natural progression was to then hook it up into the Jockey Club II driver, and figure out how to get Jockey Club II (older hardware, with ST-0020) to display something, after that, and seeing how close the RAM content was I wanted to make the ST-0032 version show something too. What we have in the end are a bunch of error messages.
Jockey Club II (ST-0020 / ST-0016 hardware)
Jockey Club II (ST-0032 hardware)
Not thrilling, but better than the black screen the games have been showing for several years now, and it shows that the bits of the chip are hooked up in the right place, it’s good grounds for further progress. Interestingly, the games *require* a valid Eeprom (which may have to be faked in the case of the two original sets) because it contains the machine ID, which appears to be a serial number of sorts, which I don’t think the games can reprogram on their own (Naomi has similar) If you look at how the Dark Horse bootleg has been broken in MAME for a while now you’ll see the same message as the newer hardware set above.
Dark Horse (bootleg hardware) (with broken eeprom handling, MT report)
That message is simply complaining about the eeprom hookup / default eeprom, which is what had broken in the bootleg driver. It’s fixed now, but at least knowing that points us in the right direction as far as what at least one of the original sets is currently complaining about.
As you can see, all 3 screens are slightly different, which might indicate the bootleg is based off a copy running on different hardware revision to the originals we have, although like most gambling games it seems to have a large number of revisions anyway, the board even has a socket which appears to be for upgrading the program rom without having to replace the entire larger rom but instead just patching over the code section.
So overall not much progress, but some, and maybe enough to get the driver looked at a bit more :-)