David Haywood's Homepage
MAME work and other stuff

Bubble Bubble

December 1, 2015 Haze Categories: General News. 1 Comment on Bubble Bubble

In the comments of my update about Nostradamus an original reference video for another game I’d emulated a long time ago was posted. That game was Aquarium by Excellent System, the video was this one by YouTuber ‘zu4989’

The post was made in relation to an audio issue in the emulation, now, the driver was done long before I really had any idea how to hook up audio chips, so that side of thing was done by somebody else (R. Belmont from memory?) but with a better understanding of these things myself now I decided to take a look.

The basic issue was that the wrong music was being played at the wrong times.

Initially I thought it might be a simple case of a bad modernization, old versions of MAME required you to leave a gap in the CPU region where you loaded a ROM if RAM was present for 8-bit CPUs (Z80 etc.) Newer versions don’t have this flaw and as a result a lot of drivers were cleaned up to remove that hack and handle things properly, it looked on the surface like the rom loading on Aquarium had been updated, but the modernized banking code was pointing to the wrong places (it was looking for 7 banks of 0x8000 from an offset of 0x18000 in the z80 region, which actually exceeded the size of the region and could have potentially caused crashes if the final banks were actually banked in)

However, even fixing that, the music did NOT match the reference videos provided.

Looking more closely at the banking writes the game was making revealed a little more, we were using the bottom 3 bits of the register, so writes of 0x00, 0x01, 0x02 … up to 0x07 would select different banks. What the game was actually writing was 0x0, 0x1, 0x2, 0x3 and 0x10, 0x11, 0x12, 0x13, nothing else. At this point it was clear that we were using the wrong banking bits, the correct bits to use were the bottom 2 bits, and the 4th bit.

Each bank contains a difference piece of music, so by cross-referencing with the video again I was able to establish which bank write related to each real bank, and re-order the above bank select bits into the proper bank value (bit 0x01 -> 0x01, bit 0x10 -> 0x02, bit 0x02 -> 0x04) with that done, the music was fixed. This scrambling isn’t too surprising, the driver already had a descramble function for the OKI commands.

I’ve recorded a video of the game with the correct music being played, (CHEATS ARE ENABLED TO MAKE DEMONSTRATING ALL THE LEVELS EASIER) You can cross-reference it with the video linked above if you want

Content not available.
Please allow cookies by clicking Accept on the banner

The reference video also showed a number of cases where our priority handling wasn’t correct, namely the top border should have been chopping the large fish sprites and wasn’t, the large fish sprites also needed to go under the insert coin text (already correct) but at the same time needed to be shown above the bottom part of the NEXT text. Furthermore the smaller sprites showing the next pieces to appear needed to go underneath the tilemap. All those cases were fixed. The background colour was also incorrect, this wasn’t really visible anywhere except on the Winners Don’t Use Drugs screen, but I fixed that while I was at it as it was obvious even without a reference.

Go to article.. »

Bugs we didn’t see coming..

November 23, 2015 Haze Categories: General News. 14 Comments on Bugs we didn’t see coming..

Sometimes it’s difficult to know if the emulation of a game is correct without studying reference videos, and sometimes those reference videos don’t surface until much later.

That was the case with the FACE shooter Nostradamus, which has a number of video effects we didn’t know were missing until they were highlighted by somebody watching a 1CC (1 Credit Clear) of the game recorded from a PCB.

There were a number of effects, including a sprite masking effect and a shadow flicker effect missing, as well as the arms of the final boss (this one we did actually suspect was a bug for a long time, the PCB evidence provided confirmation)

I’ve uploaded a recording of the game after making several fixes to YouTube (the video has cheats enabled, it’s not meant to be a gameplay video) You’ll probably want to make sure you’re watching a 60fps version.

Content not available.
Please allow cookies by clicking Accept on the banner

Here are some links to specific parts of the video
Stage 6 Boss appearing – This is a masking / stencil effect created by putting a sprite behind the background layer causing it to cut holes in other sprites without being directly visible

Stage 7 Boss appearing – This flickering shadow is not actually a sprite and is done by using the tilemap enable register, turning it on and off every few frames, previously the tilemaps were alwyas enabled and the shadow was displayed as solid.

Final Boss arms – The arms are priority 0 sprites, and due to the way we cleared the priority buffer to 0 they were never being displayed.

Go to article.. »

Donggul Donggul Alignment-rong

November 23, 2015 Haze Categories: General News. 7 Comments on Donggul Donggul Alignment-rong

Luca’s addition of Trivia R Us to the Crystal System driver, and discovery that it needed the stack aligned reminded me of something I’d looked at a long time ago with ‘Donggul Donggul Haerong’ another Crystal System game.

I’d made an observation in the past that ram writes on most Crystal System games were aligned, except on the two non-working ones, which at the time seemed like merely an interesting co-incidence.

Looking back at it there might actually be more to this discovery than it first seemed, because patching out the unaligned reads/writes (simply disallowing them in the core) allows the game to work 95% of the time. Sometimes, for reasons unknown it still boots up in a broken state so there is a possibility that the unaligned writes are a symptom of whatever is failing, and causing the RAM corruption, rather than the cause of the failure, or there could simply be multiple issues.

Either way, if you boot the game and it starts without a problem (no graphical glitches) you seem to be able to play it now. Due to not being 100% reliable the game will still be marked as NOT WORKING in MAME, but it has definitely improved.

The 2 Player mode, which switches to a higher 640×480 (presumably interlaced) resolution also doesn’t work properly, it runs twice as fast as it should and only updates one of the playfields correctly, I suspect this is some kind of raster effect involving changing the scroll-values mid-screen and the driver *really* isn’t set up to support this.

It’s possible the CPU can’t do unaligned reads / writes, or possible that disabling them in the core is nothing but a gross hack, it’s hard to tell as other games don’t seem to use them at all, although I would appreciate people giving the other Crystal games a good workout in 0.168 to ensure nothing has broken, if it has, obviously this progress will end up being reverted.

The game is often described as a modern take on Wonder Boy from Korea, it’s easy to see why.

Content not available.
Please allow cookies by clicking Accept on the banner

Office Yeo In Cheon Ha also stops crashing with these changes (although there are still some ugly graphics) however not all controls are mapped, so again that one can’t really be considered working yet despite the improvement.

I also moved 2 other games which are meant to be basically Crystal System hardware (same integrated SoC but slightly different surrounding hardware) into the driver just in case somebody like Luca is interested in looking at them too.

Go to article.. »

Munching in Under the Radar

October 27, 2015 Haze Categories: General News. 16 Comments on Munching in Under the Radar

The non-video games we emulate don’t really get the coverage they deserve, in this case even I almost didn’t notice the progress made on this one so I thought it was worth highlighting.

The game is Wacky Gator, a Whack-a-mole style game created by Data East in 1990. The driver was started by Felipe Sanches, and quietly finished by Sandro Ronco who brought it up to a playable state using the MAME internal artwork system to represent the various elements of the game. The progress shown here will be available in tomorrow’s 0.167 release.

Content not available.
Please allow cookies by clicking Accept on the banner

It doesn’t currently have clickable artwork (that would be a next step) but can be played using keys to represent each gator.

A video of the real unit can be seen on YouTube too

Content not available.
Please allow cookies by clicking Accept on the banner

This type of thing is a prime candidate for interactive 3D models if we ever do get that far (hopefully we will)

Go to article.. »

Microwaved Hedgehog

October 25, 2015 Haze Categories: General News. 17 Comments on Microwaved Hedgehog

Chaos Emeralds, Microwaves, same difference right?

Anyway, ShouTime and the Dumping Union (with a whole list of people donating) purchased the PCB for another novelty Sonic item, this time SegaSonic Popcorn Shop, a popcorn dispenser machine with a video display. It runs on the Sega C2 board (Genesis type hardware)

Interestingly it has a region dipswitch for Export, USA or Japan which makes me wonder if did actually leave Japan at some point in limited numbers.

It’s hard to really class this as ‘working’ because the mechanical side of the Popcorn machine isn’t emulated, but the code does run so you can see how the machine would operate.

There’s a small graphical glitch next to Sonic near the end of the video, I’m not sure why that happens, or if it happens on the PCB; all roms pass in service mode.

Here is a video of it running (dipswitch set to ‘Export’ so English text)

Content not available.
Please allow cookies by clicking Accept on the banner

The graphical glitch mentioned above was due to a bad / inverted sensor input, with it flipped the glitch is gone so I’ve recorded videos of it running as USA / Japan region without the glitch.

Content not available.
Please allow cookies by clicking Accept on the banner

Go to article.. »

A strange request (CPC Dripzone, 128k version)

October 17, 2015 Haze Categories: General News. 4 Comments on A strange request (CPC Dripzone, 128k version)

When I had an Amstrad CPC back in the day one piece of software I owned was a game called ‘Dripzone’

It’s fairly easy to find this game online, for example there is a copy at CPC Power, and there are copies in the Tosec, GoodCPC and Non-GoodCPC collections, most of which have found their way into the MAME/MESS Software List.


the copy of the game I had came free with the Dk’Tronics memory expansion for my 464, and was an extended version of the game with some sampled speech. From memory it only worked on a 464 with the memory expansion AFTER loading the ‘bank.bas’ program from the tape/disk supplied with the unit, it did not play speech on a 6128 etc.

I’m pretty sure none of the copies online are that version as they all say ’64k version’ if you load the “drip.bas” program and list it (if I’m wrong please correct me)

So does anybody still have the extended version? My CPC stuff is long gone, but it would be nice to see that version again for nostalgia purposes; I can’t even find *reference* to that version online.

Go to article.. »

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.