Initially I just wanted to do some quick clean ups to the ambush driver. However, while searching for references to the game, I noticed that we had two dumps of bootlegs running on “extended Ambush hardware”: Mario Bros. and Donkey Kong 3. They were already added to MAME, however they lived in the mario driver, likely because the graphics system shares some similarities. mariobl was marked working, but dkong3abl had bad graphics, and various bits were missing.
So, I decided to do a bit more refactoring to the ambush driver first, to make it easier to move the bootlegs to the correct driver. This involved changing the driver to make use of our tilemap rendering system for the background and foreground character graphics and documenting the layout of the attribute RAM and sprite RAM.
After making sure the existing games still work as they should, I added both bootlegs to the driver. With the ROMs mapped to their correct place, the games ran fine, however had messed up graphics. This was expected of course, since the bootleggers did some major rework to the graphics section of the ambush PCB.
The basic graphics decode is the same as ambush (only difference is that the mario bootleg uses sprites with 3 bits per pixel instead of 2), however the tile lookup is handled slightly differently, and the sprite RAM layout is completely different. One interesting fact is that the original dkong3 uses a PROM to lookup the color of the background tiles, but since there is no place for this on the Ambush PCB, the bootleggers moved the PROM contents to one of the game code ROMs, and then copy this data on startup to the ambush board attribute RAM area.
Unfortunately the color PROM of the two bootlegs wasn’t dumped, so the driver uses the original game PROMs for the palette for the two games.
The mario bootleg doesn’t seem to have any graphic or gameplay differences (in fact, even the test mode is still intact and they even updated it to correctly checksum the 3 bootleg ROMs), but the sound now uses two AY8910s (the original Ambush uses AY8912s).
The dkong3 bootleg removes the Nintendo copyright, but otherwise seems to be identical in graphics and gameplay like mario (there are palette differences, but since we don’t use the correct color PROM it might not be specific to the bootleg), and also uses two AY8910s now.
You can try both bootlegs starting with the upcoming next release of MAME. The driver names are “mariobl” and “dkong3abl”.