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 October 24th, 2009


October 24th, 2009

Hang-On a Second

One of the more interesting things that the Dumping Union turned up and dumped recently was an alt. version of the Sega classic ‘Super Hang-On’
It had been common knowledge for a while that there was an undumped variant of the game because the bootleg that was supported in MAME was clearly derived from an undumped set running on Hang-On hardware. It was also clear that the undumped version should use an encrypted FD1094 CPU on the sub-cpu as there were remnants of encryption state changing code in the bootleg ROMs.

What we didn’t expect to see was a game that played in a significantly different way to the existing sets.

Initially I thought it was going to be bad news as far as emulation of this new set was concerned, I’d hooked it up in the driver making a few changes in the process as all the existing system-16 games have the main CPU encrypted rather than the sub-cpu, but there was a problem.

The code simply crashed on what looked like an attempt to take the interrupt routine and a quick romcmp on the encryption key revealed a ‘fixed bits’ problem (which is often an indication of a bad rom dump) At this point I feared the worst, a bad key could indeed cause the decryption to fail, which matched with what I was seeing.

Luckily it turned out to be something less severe than that, I’d mistaken the CPU being reset for an interrupt being taken (both cause the CPU to jump to a new address). The problem was that when the CPU was being reset the FD1094’s encryption state wasn’t being; this was the first game we’d seen where another CPU could reset the encrypted one, and thus that case wasn’t handled.
After fixing that the game booted, and the differences were surprising.

In Super Hang-On the main gameplay difference is the introduction of the Super Charger, which allows your bike to go from ~280KMph to ~325KMph when activated, with flames coming out the exhaust.

Oddly, in playing the new version I was able to reach ~325KMph without the use of the Super Charger, the top speed of the bike under normal conditions was effectively much higher and pressing the Super Charger button had no effect at all. A quick look at the test mode showed that S.C (Super Charger) wasn’t even listed in this version, instead two new inputs, Foot Switch Left / Right were. I mapped these wondering if they’d have a similar effect to the Super Charger, but they didn’t, actually oddly enough they don’t seem to do anything.

With this changed gameplay the new version of Super Hang-On that was dumped plays much closer to the original Hang-On, and that is probably the secret behind the changes seen in it. This version was almost certainly designed as a Hang-On conversion, and the Hang-On sit-down cabinet doesn’t have a Super Charger button. In order for the conversion to work it was required that Sega modified the game in order to not require the Super Charger to play hence the changes seen.

For whatever reason the bootleg version based on this has the Super Charger behaviour restored, but I’m at a loss to explain the bootleggers thought process in this case, there were unprotected versions of Super Hang-On anyway, so bootlegging the Hang-On conversion, which was protected seems like a less obvious choice than bootlegging those; I can only assume they wanted to sell their own upgrade kits, but then that doesn’t make sense due to the Super Charger being enabled in the bootleg. There are some things that we’ll probably never know.

Both this version and the bootleg have a slight scrolling glitch on the right hand side, visible when you start the race and on some corners. I don’t know if this is an emulation glitch, or a limitation of the Hang-On hardware / bug in the conversion (there are some obvious bugs in some other Sega conversions such as the System16A Tetris).

Anyway, it’s good to see this rare version of Super Hang-On emulated, so a big thanks goes out to the Dumping Union and all those who contributed towards finding it, and buying it so that it could be studied.


left, new version – right, regular version
Super Hang-On (Hang-On conversion) Super Hang-On (Regular)

Super Hang-On (Hang-On conversion) Super Hang-On (Regular)

I’ve also been helping TDU with a few other things, but this one struck me as really worth writing about.

Posted by Haze @ 14:32 | Comments (6)

October 24th, 2009

MESS in MAME – CDi

If you’ve been following progress by ‘Just Desserts’ on the CDi driver for MESS over at their Forums you’ll have seen that a lot of good progress has been made over the past few weeks.

Several people (including other developers) have asked me how they can get this progress running in MAME instead of MESS, so I’ve quickly ported it over (it’s only a couple of lines that need changing)

I’ve uploaded a diff for MAME at this location

There are two diff files included, one patches against the current MESS cdi.c file (which you can grab from the MESS SVN if you so desire) This clearly shows which lines need changing to make it work with MAME.

The other is a patch against current MAME, containing the current MESS code for the driver.

There are still bugs, as expected (they exist in MESS too) but this allows people to see the progress at least, without having to figure out MESS.

I take no credit at all for the driver, nor do I want any reports on the instability of the emulation in it!

The CHDs expected were created by mounting the TOSEC images in Daemon Tools, extracting (in RAW mode) with burnatonce to an image file with a .toc. and then running through chdman -createcd image.toc

Have fun, and be sure to check out the MESS SVN and update / patch the driver yourself with the diffs included if you want more up-to-date code. Likewise, if you want to add extra games, you’ll have to add them yourself. I may decide to integrate more console systems from MESS into HazeMD at some point, but I’m not decided on that one yet.

For controls, the CDI defaults to a mouse controller, which isn’t very good for playing something like Hotel Mario. I recommend you remap the keys in MAME, setting the digital speed of the Analog X/Y to 5-10, and mapping the buttons to the standard Shift+Control. The game only processes the inputs as digital anyway, so you don’t lose anything by mapping them as such.

Hotel Mario plays well, aside from some flicking of the sprites near the bottom. Personally I don’t think the game is as bad as some reviews make out, and I find it much more playable than the Zelda titles on the platform! Tetris is also perfectly playable and seems fine except for an audio glitch in the first piece of music (the others seem fine, so I guess it could be a problem with the image being used?) It’s not a terrible version of Tetris, although the ‘Level X’ intermissions every couple of lines, and shifting of the playfield for each different background gets irritating to say the least. Sadly the majority of the things released for the system fall into the ill-conceived category of ‘if it has video it must be a good, no matter how bad the game is!!’ that was popular with developers around the time it was released (see SegaCD for another example of this)


CDI CDI

CDI CDI

Posted by Haze @ 12:34 | Comments (3)