Links

HazeMD Releases

    0.14a
  • Source+Binaries
    (internal database rebuild)

    0.12a
  • Source+Binaries

    HazeMD is a Megadrive / Genesis emulator based on the MAME code. It works in exactly the same way MAME does.

Radica (Custom Genesis)

Super Bubble Bobble MD (Unofficial Genesis)

Radica (Custom Genesis)

Indiana Jones' Greatest Adventure (Genesis)

Indiana Jones' Greatest Adventure (Genesis)

Kolibri (32X)

Kolibri (32X)

Archive for November, 2008


November 15th, 2008

Background Decompression

I’ve added the RLE decompression used for the backgrounds (used the same method as the suprova sprites). This means that backgrounds can now be seen. To finish the emulation I think I’m going to need reference videos / screenshots of the game. The priority mixing is non-obvious, and there are probably some blending effects as found on suprnova. To emulate these with any degree of confidence I need to know what my target is.


Gals Panic 3 Gals Panic 3

Posted by Haze @ 15:27 | Comments (4)

November 14th, 2008

GAME_HAS_UNEMULATED_PR0NLAYERS

I made more progress on Jackie Chan, which is basically now working apart from some priority issues, so switched my attention to Gals Panic 3. I’m starting to understand the hardware now. The backgrounds are handled by 3 ‘blitter’ chips which decompress RLE background data into bitmap layers. After hooking up the ‘layer clear’ feature, and blit status, as well as drawing one of the bitmaps (which is written to directly by the game to draw the lines) Gals Panic 3 at least gets in game, and is playable, albeit with some important elements missing.

Obviously the next task is to fix my RLE decompression function, and understand the blit parameters properly.


Gals Panic 3 Gals Panic 3

Gals Panic 3 Gals Panic 3

Gals Panic 3 Gals Panic 3

Gals Panic 3 Gals Panic 3

Gals Panic 3 Gals Panic 3

Gals Panic 3 Gals Panic 3

Gals Panic 3 Gals Panic 3

Gals Panic 3 Gals Panic 3

Posted by Haze @ 21:00 | Comments (4)

November 13th, 2008

More Jackie

I’ve looked at Jackie Chan a little more. I was actually missing an entire sprite chip used for extra backgrounds, this is now emulated.

Things are working better now, although their remain a few issues
1. Sprite Zooming – the supernova sprite zooming has always been glitchy, this game shows it up badly
2. Controls – currently only 2 buttons work, the game should have 4, so your moves are limited at the moment
3. Sound – can’t get this to work, need to re-verify the sound roms, but it could be an emulation issue, game writes ‘bad’ values to the sound chip
4. Layer Offset – the actual tilemap needs an offset, it’s slightly misplaced at the moment
5. Tilemap Priority – tilemap should be infront of sprite layers in intro sequence


Jackie Chan – Kung Fu Master
The first release of the game

Jackie Chan Kung Fu Master Jackie Chan Kung Fu Master

Jackie Chan Kung Fu Master Jackie Chan Kung Fu Master

Jackie Chan Kung Fu Master Jackie Chan Kung Fu Master

Jackie Chan Kung Fu Master Jackie Chan Kung Fu Master

Jackie Chan Kung Fu Master Jackie Chan Kung Fu Master

Jackie Chan Kung Fu Master Jackie Chan Kung Fu Master

Jackie Chan Kung Fu Master Jackie Chan Kung Fu Master

Jackie Chan Kung Fu Master Jackie Chan Kung Fu Master

Jackie Chan in Fists of Fire
A Semi-Sequel released a couple of months later. Extra characters unlocked, and lots of palette swapped graphics / stages.

Jackie Chan Fists of Fire Jackie Chan Fists of Fire

Jackie Chan Fists of Fire Jackie Chan Fists of Fire

Jackie Chan Fists of Fire Jackie Chan Fists of Fire

Jackie Chan Fists of Fire Jackie Chan Fists of Fire

Jackie Chan Fists of Fire Jackie Chan Fists of Fire

Posted by Haze @ 08:40 | Comments (6)

November 12th, 2008

Help! My Fists are on Fire!

I’ve spent the last day looking at some Kaneko titles. I asked Andreas to take a look at the MCU data rom for several of the games, to see if it could help improve the protection simulation in Blood Warriors. (by finding the tables we’re using in the encrypted data rom, thus no longer requiring extra tables) He reported back to me with his findings, and it was good news.

While this still isn’t true emulation of the MCU it helps, as we know the tables in the MCU data rom are correct, while the ones figured out via trojans could potentially have had inaccuracies in them (they didn’t.. but)

As a slightly surprising bonus all the ‘Toybox’ data roms apart from GTMR2 use the same main encryption, and same communication method. Bonk’s Adventure is a bit odd (seems to use data not present in the MCU data rom) but was already figured out. The real bonus was that this exposes the data tables needed by Gals Panic 3, and Jackie Chan, both of which I’ve spent a little time looking at.

Gals Panic 3 needs work on emulating the background hardware, I think it’s some kind of blitter.

Jackie Chan needs correct CPU communication and interrupt handling. These could take a while, but progress can definitely be made now. Jackie Chan is now playable in my private build, but has some awful hacks holding things together, and the graphics flicker / glitch badly due to them.


Gals Panic 3

Jackie Chan Jackie Chan

Posted by Haze @ 22:29 | Comments (1)

November 2nd, 2008

This Project is Doomed

As previously mentioned, I’ve been taking a look at the 32X unit for the Megadrive, with a view to emulating it for MESS.

It’s got to the stage where a couple of games boot (mainly those which don’t really push the hardware, I haven’t emulated the DREQ DMA / FIFO etc.)

However, I’ve also stumbled upon what appears to be a major issues. The MAME framework is too fundamentally flawed to actually emulate these things properly. Kolibri, one of the games that does boot requires very tight syncronization of the CPUs. Other non-MAME emulators appear to do 32X and SegaCD emulation by single-stepping the CPUs, thus giving near perfect syncronization, at no cost. In MAME this has a huge cost, to the point where forcing all the CPUs to run in single-step causes the entire thing to run at sub 5fps on a top-end Core2. Even just syncing on Command buffer reads / writes takes the framerate down to 50% during cutscenes, and kills performance on other games that don’t really need it as tight, but make frequent reads / writes.

There are a number of reasons for this, but none of which I can really work around. This leaves me with a situation where it’s not really clear what I can do. From what I’m told SegaCD requires even tighter sync than 32X, so getting a good level of compatibility is looking near on impossible. From what I gather the ‘issue’ isn’t even something which can be fixed in MAME as it stems from the very generic (and flexible) timer system, and the way it switches CPU & timer contexts. This isn’t a problem for dedicated emulators, as they can be coded around the emulation needs of very specific pieces of hardware.

Here are some pretty screenshots from some games that do boot (no 32x sound at the moment) but as far as progress goes, this project is starting to look doomed. This doesn’t really bode well for the future of MESS in general either, as console games tend to abuse hardware far more than their arcade counterparts.


Doom

Doom 32X Doom 32X

Doom 32X Doom 32X

Doom 32X Doom 32X

Doom 32X Doom 32X

Kolibri

Kolibri 32X Kolibri 32X

Kolibri 32X Kolibri 32X

Kolibri 32X Kolibri 32X

Kolibri 32X Kolibri 32X

Pitfall

Pitfall 32X Pitfall 32x

Posted by Haze @ 22:04 | Comments (26)