VCMame Home - Bryan's Mame WIP

MAME WIP

I've contributed to MAME since 1998 but unfortunately I don't have a lot of time these days to contribute more. When I do have time these are some of things I'm looking at!

Current WIP

February - April 2006

Fighter's History finally emulated, a long, long time after I first started examining it (7 years?). The breakthrough came because I was able to map the use of the protection chip (Deco 146) on the Fghthist board to that of the Nitro Ball board which I had managed to attach the PCB target manager to. In the end it turns out it is a 'simple' address line swap, but I had to check the possibilities such as data line swapping, different address swap for read & write data (which sounds strange, but makes perfect sense for this chip) or even the possibility the chip has different hardware configurations that mean there may be no mapping.

Also extracted all the c-chip data from Bonze Adventure, making the game properly playable all the way through (restart points in later levels were wrong and would cause the game to fail).

Fighter's History Fighter's History
Bonze Adventure Bonze Adventure

14/1/2006

DECO MLC system - added sprite buffering, fixed tile banking, fixed clear colour, added sprite clipping (used to good effect for pseudo viewport effects in Skull Fang), ARM interrupt bug fix and preliminary raster support. The end result is that Skull Fang and Hoops are now properly playable. About the only thing left to do in this driver is full raster support for the playfield in Stadium Hero 96.

Skull Fang Stadium Hero 96

6/1/2006

There has been a long-standing known bug in dec0.c for some time (checking my notes, it's been there for 7 years!), in that row & column scroll could not be applied to a tilemap simultaneously. The reason for this limitation is that Mame's tilemap system did not support this. Anyway... I've re-implemented the rendering of this sytem by providing a new tilemap draw function that correctly implements simultaneous row & column scroll. I also verified the rendering of all video modes using a trojan on a Birdie Try board. This finally fixes the waterfalls in Midnight Resistance! (It doesn't really affect any other games, but the source code is much cleaner now).

OldNew
Midnight Resistance (Old) Midnight Resistance (New)

Whilst working on this driver I noticed there are several revisions of games that are still not dumped, eg, Japanese Heavy Barrel, World Fighting Fantasy, USA Boulderdash. If you have any games on this hardware please check the revision/rom-code ID against Mame to see if you have an unsupported set.

6/1/2006

Double Dragon has a crash which sometimes occurs at the very end of the game (right before the final animation sequence). It occurs because of a jump look up table:

	BAD3: LDY   #$BADD
	BAD7: JSR   [A,Y]
At the point of the crash A is 0x3e which causes a jump to 0x3401 (background tile ram) which obviously doesn't contain proper code and causes a crash. The jump table has 32 entries, and only the last contains an invalid jump vector. A is set to 0x3e as a result of code at 0x625f - it reads from the shared spriteram (0x2049 in main cpu memory space), copies the value to 0x523 (main ram) where it is later fetched and shifted to make 0x3e.

So.. it's not clear where the error is - the 0x1f value is actually written to shared RAM by the main CPU - perhaps the MCU should modify it before the main CPU reads it back? Perhaps 0x1f should never be written at all? If you want to trace this further please submit a proper fix! In the meantime I have patched the error by making sure the invalid jump is never taken - this fixes the crash (see ddragon_spriteram_r).

Double Dragon

Patch for 103u1 and save state near end of game. (You need the patch to enable save state support).

1/1/2006

Some small fixes to the Double Dragon driver to finish off Thunderstrike.

Thunder Strike Thunder Strike

31/12/2005

Due to pressing deadlines in 'real' work, this took somewhat longer than I thought to finish off. Unfortunately, although all Deco156 games now boot in Mame, only Night Slashers and Heavy Smash are properly playable. All the other games make use of a math co-processor which is not yet understood. Of the broken games Skull Fang works the most - the attract mode is fully correct, and it's playable up to the first boss. The other games mostly have serious gameplay errors (eg, AI players do not respond correctly in Hoops). Sound is also bust in all of the new games.

Night Slashers Night Slashers
Night Slashers Back Fire
Back Fire Dunk Dream 95
Hoops 95 Hoops 96
Hoops 96 Hoops 96
Heavy Smash Heavy Smash
World Cup Volleyball 95 Stadium Hero 96
Stadium Hero 96 Stadium Hero 96
Skull Fang Skull Fang
Skull Fang

Older Updates

Here