David Haywood's Homepage
MAME work and other stuff

Thank You Morten Kirkegaard

November 27, 2019 Haze Categories: General News. 10 Comments on Thank You Morten Kirkegaard

I just wanted to write a brief thank you to Morten Kirkegaard who passed away earlier today, at 12:45 on Wednesday 27th November 2019 after a drawn out battle with cancer.

While I never knew Morten personally outside of contact on IRC and emails, he was a key part of the team of two man Danish team featuring Peter Wilhelmsen who together overcame some of the toughest challenges emulation faced in the time they worked together.

Even knowing his own chances of survival were low, his interest in both technical challenges, and the retro scene was such that he made the choice to pour his remaining time and money into doing something that would outlast the days he had remaining, and make a long term difference.

That he did, with magnificent results. The DS5002FP protected Gaelco games for example could only be dumped thanks to the work he put in, a path full of setbacks, boards suiciding and even once a working setup was found there was still a high risk each time. To put things into perspective, prior to Morten and Peter taking on the challenge it was one that most people had already written off as simply impossible.

For the games themselves, thanks to Morten’s work we’re fortune enough to have dumps of all the known ones, including the rare Goldart, which I regret not being able to finalize the emulation of while he was still around to see it, still, Morten did understand the challenges involved, and the part of the that task could only be done with him present was complete, so he excitedly continued to work on other things.

His final contributions, included working with Peter on dumping the Air Blaster plug and play, which even in a severely weakened state he opted to take home for a weekend, and work well into the night on finding a dumping solution that worked, debugging the FPGA based dumper and tangle of wires until he had a dump we were satisfied with in what can only be considered an act of complete selflessness, pushing past the pain barrier making light of his rapidly declining and severely debilitating condition.

Between that other contributions included fathoming the Gunpey Arcade decompression scheme, and likewise doing the same for Sega’s Decathlete (and I hope we can finish off that work for the Print Club games using the same type of chip) as well as work on more obscure titles such as Hoei’s Future Flash, the Gamate handheld and many other important pieces of work.

As a person, he always came across as incredibly skilled, and self-motivated, but still humble and happy just to see things progress; a rare mix that made him a joy to work with. If at any point I wasn’t convinced by the results of something being presented to me I only had to say and he would take another look.

In the end he didn’t win his own battle, but certainly achieved his goal of keeping other things alive for as long as people still have an interest in them.

I know Peter was a lot closer to Morten, and considered him a good friend, and so has been hit hard by this, regardless of how expected it was, but even as a distant colleague in another country I can honestly say his presence will be missed both on a personal and technical level.

Thank you for everything.

Go to article.. »

Huntin’ For Answers

June 15, 2019 Haze Categories: General News. 4 Comments on Huntin’ For Answers

The Huntin’ series are, as the titles suggest, Hunting games. Specifically they’re deer hunting plug and play titles released by Radica.

Huntin’ 1 and 2 run on XaviX hardware, whereas Huntin’ 3 appears to be a cost reduced version of Huntin ‘2 running on Elan EU3A14 hardware.

Both Huntin’2 and Huntin’3 were giving me some issues with emulation. Huntin’2 would crash if you opened up the pause menu or Trophy Room screens while Huntin’3 was missing many video emulation features.

I’ve spent the past week improving both of them. For Huntin’3 I added Ram based tiles, proper palette selections, proper priorities, proper bitplane depth selection and a rowscroll mode. There is still some kind of Windowing effect missing (used on the Trophy Room screen for highlighting and the timer in the Target Range mode)

Debugging Huntin’2 was trickier, as the CPU emulation would just crash when entering the screens and the underlying code on the XaviX titles is far from simple (it’s a complex task based engine with many pointers etc.) I figured out in the end that it appeared to be crashing as a result of stack corruption, with the stack descending too far in some cases and overwriting pointers that had been placed to other tasks. I had a hunch that maybe the extra bytes used by the extended Far Call and Far Return opcodes on the XaviX processor might be to blame, so I tried placing those in an extra, private, stack, and the crashing stopped. I don’t know for sure if that’s the correct solution, but it does solve my issue and seems feasible as it would maintain 6502 compatibility better that way.

I haven’t yet mapped the guns in any of the games, but it’s getting to the stage where that should be more realistic. Sound emulation on Huntin’3 is very poor due to incorrect ADPCM decoding.

Huntin’2 is on the left, Huntin’3 is on the right. I’ve tried to pick similar shots for each game so you can easily see how Huntin’3 is just a reskinned uglier version of Huntin’2 (and both are inferior games to the original Huntin’)


Huntin'2 Huntin'3
Huntin'2 Huntin'3
Huntin'2 Huntin'3
Huntin'2 Huntin'3
Huntin'2 Huntin'3
Huntin'2 Huntin'3
Huntin'2 Huntin'3
Huntin'2 Huntin'3
Huntin'2 Huntin'3
Huntin'2 Huntin'3
Huntin'2 Huntin'3

Go to article.. »

On Track

May 27, 2019 Haze Categories: General News. Comments Off on On Track

As mentioned in the previous post, I’ve been looking a bit at some Plug and Play games using a pair of blobs; based on Sean’s decap work those globs are a “Winbond 2005 BA5962” (large glob) and a “Winbond 200506 BA5934” (smaller glob)

As each of these Plug and Play architectures is like a console, with lots of flexible features, they can be quite difficult to figure out. That said I’ve managed to make some rapid progress over the past week (which can be followed on my YouTube page)

The games we have dumped running on this platform are “My First Dance Dance Revolution” and “Track & Field Challenge”, both from Konami. My First Dance Dance Revolution is the earlier of the 2 games, and has some amusing errors on the ‘caution’ screens.

My First Dance Dance Revolution


My First DDR My First DDR My First DDR
My First DDR My First DDR My First DDR
My First DDR My First DDR My First DDR

Track & Field Challenge


Track & Field Challenge Track & Field Challenge Track & Field Challenge
Track & Field Challenge Track & Field Challenge Track & Field Challenge
Track & Field Challenge Track & Field Challenge Track & Field Challenge

The CPU core hidden away in the globs appears to be a G65816, which is similar to that found on the SNES, although the rest of the hardware is rather different. Neither is in what I’d consider “working” state yet as the inputs are erratic, there are game logic bugs (timer always 0 in Track and Field, very slow arrows and hangs after songs in DDR) and also the video emulation is incomplete as you can see from the glitches in the screenshots. There are definitely more complex DMA modes I need to add support for, also sound isn’t emulated yet, I haven’t even started looking at that side of things.

Not bad for less than a week of work tho, these only showed a black screen a few days ago.

The progress I was making on Smart Fit Park (which is a newer SunPlus ‘System on a Chip’ instead) does seem to have stalled tho, again, each of these systems is like emulating a console, so when you’ve not got much dumped for a specific chip it can be difficult to figure everything out.

*edit* improved the DMA, which improves the backgrounds a bit (still missing scrolling tho)


Improved Improved
Improved Improved
Improved Improved

Go to article.. »

*tumbleweed*

May 23, 2019 Haze Categories: General News. 2 Comments on *tumbleweed*

Realized I’ve not actually posted an update on the main page here in a while. I have been adding various screenshots to the 2019 page to save me time when compiling the final end of year write-up, but that isn’t really obvious unless you look.

In terms of what I’ve been doing it’s mostly been a lot of work with nothing really to show for it yet. We identified several Plug and Play systems as using a newer SunPlus based “System on a Chip” with an updated CPU core (extra opcodes) and an entirely different peripheral mapping etc. The only dumped games on it thus far are Smart Fit Park (Spanish release) and Wireless Hunting, with the latter also having a larger than usual ROM and presumably some banking.

Smart Fit Park allowed me to make some progress with it, but there are still errors in the game logic, including hangs and crashes, incorrect speed etc. Wireless Hunting still does nothing as it isn’t clear how the extended ROM access works (the system has enough extra RAM that they might just be copying everything into RAM with the DMA as DMA parameters not used by Smart Fit Park are used by it) We know the Spongebob Bikini Bottom 500 racer also uses the same SoC and Sean is trying to get that dumped, although at the moment it is resisting.

We’ve also been trying to figure out the AX208 CPU properly for another system (which will require extracting an internal ROM)

Other than that, I’ve been buying (mostly with my own money at this point) a whole bunch of Plug and Play systems and having them shipped to Sean. Sean might not have time to process them until Winter at least, depending on real life workload, so they get added to the pile of things that were purchased with donations etc. Still, providing there are no disasters we have a nice collection for later all going well. He did manage to find time to dump some easy cases, so the remaining 2 “I Can Play Guitar” cartridges were dumped recently as well as a KR-1 e-kara cartridge (I added some pictures on the 2019 page) Even without being able to dump things yet Sean has been providing useful insight into the hardware inside the things that have been sent to him, plus I’ve been pulling apart some of the ones that have arrived with me (and making real hardware videos for my YouTube page) so even without visible progress there is research going on, and I have a better idea of the bigger picture with some of these things now. When you’re dealing with things that require specialist processing there are always going to be bottlenecks in the process as the number of people capable of handling them is tiny and those people are in demand.

I’ve also been trying to work out what on earth is needed to get the Konami Track + Field and My 1st DDR Plug and Play units booting, the code on those is absolutely horrendous and they end up taking a pointer from RAM then jumping to 0, because the RAM with the pointers in it gets erased after startup.

I’d like to be able to show more, and we’re definitely going to need a bit more help funding some of the remaining Plug and Plays, but I’m not going to ask for anything until some of the backlog is cleared, things that existing donations were put towards have been dumped, and I have more to show, rest assured, work is being done tho.

Go to article.. »

The Importance of Alternate Versions

March 30, 2019 Haze Categories: General News. 11 Comments on The Importance of Alternate Versions

One of the things I picked up with the money that was donated is the following JAKKS Pacific Spiderman, which has a different, much more boxy looking shell than the more commonly seen one with GameKey port (and the later release of the same form with the port removed)


Spiderman 5-in-1 JAKKS

Various sources indicated that Spider-Man 5-in-1 started life as a game running on the SunPlus SPG110 based SoC (System on Chip), not the 2xx (usually 240) type SoCs found in all the GameKeyReady units. I felt due to the vastly different form factor here, which appears to be an earlier and less refined design (closer to the early SpongeBob unit, which is on even earlier hardware) that there was a good chance that the device pictured would be the version running on the SPG110 hardware.

It was.

While this contains exactly the same games as the already emulated GameKeyReady version it is useful for some very important reasons. Firstly, the Classic Arcade Pinball title is also running on SPG110, and was never ported to SPG2xx to my knowledge. The (undumped, but sourced) EA Sports units also run on SPG110.

The problem is, SPG110 actually differs from SPG2xx in some significant ways, not least it uses an entirely different palette format (HSL based instead of RGB based) and also has somewhat different video capabilities (Video RAM is private, only writable with the CPU via DMA / port uploads, sprite format is different, tile base register is shared, not per layer, priorities are per tile, not per layer, transparency handling is done with a separate table, not upper bit of palette etc.)

Having the same game on two different pieces of hardware makes it much easier to draw conclusions about how the unemulated hardware works by comparing code, data structures in RAM, register writes etc. between the two versions, thus telling us plenty about the previously undocumented and not fully understood SPG110.

This has allowed me to implement many features of the SPG110 hardware, to get this version booting. Note, the colours are not 100% correct yet, I’ve asked Olivier Galibert if he can look into it further as HSL decoding is not my strong point. On the left is the SPG110 set that I’ve been making improvements to, on the right is the SPG2xx set that is already emulated. This kind of reference for the colours in an already correctly emulated version is going to be an essential guideline for improving the decoding.


Spider-Man Spider-Man
Spider-Man Spider-Man
Spider-Man Spider-Man
Left: SPG110 hardware version with currently imperfect HSL decoding Right: SPG2xx hardware version with correct RGB decoding

As you may have noticed, both screens show sprites, and last time I showed Classic Arcade Pinball shots, it was lacking in sprites. Needless to say, it now has sprites with the recent work done.


Classic Arcade Pinball Classic Arcade Pinball
Classic Arcade Pinball Classic Arcade Pinball
SPG110 emulation improvements have given Classic Arcade Pinball sprites and controls

Again colours are still imperfect, but fixing Spider-Man should fix them here too. I also added inputs so you can actually play the game.

Sound is unemulated, but seems to be closely related to the SPG2xx stuff (probably with less channels) so I did some refactoring of all the SPG2xx code in the process, splitting various internal peripherals into sub device modules (including the I/O which is how I was able to hook up inputs easily here)

Interestingly videos show a shadow on the ball for this game, yet the hardware does not seem to have shadow sprite capability as SPG2xx does, so I’m currently puzzled about how that is being pulled off, it could be some raster interrupt abuse like that one SNES game does, but we’ll see. (I’m assuming there aren’t multiple versions of this on different hardware anyway, I didn’t think to take pictures of my unit running before sending it off to Sean for dumping)

The earlier version of the ‘Disney’ Plug and Play might also run on SPG110, the one we sourced and had dumped is the less common GameKeyReady unit (which works fine in MAME) but I still need to do a proper update about that (it’s supported in 0.208 tho)

Anyway, going to leave it at that for now, hopefully if the colours can be further fixed it will be more worthwhile showing screenshots later. I just wanted to highlight why buying this alt version of Spider-Man was a gamble that paid off in terms of it enabling me to make progress on other things too.

Go to article.. »

Take Me Home…

March 17, 2019 Haze Categories: General News. 3 Comments on Take Me Home…

As mentioned in the previous update, we also picked up an “I Can Play Guitar” from Fisher Price. It’s a toy along the same lines as the “I Can Play Piano” which bridges the gap between a simple toy / game, and actually learning how to play an instrument. There are 44 note buttons, 4 directional buttons, Enter, Home, Pause and a Whammy bar that acts like 2 additional button inputs. Like the Piano it can also switch between a mode with TV out, and a mode where it just acts as a Guitar.


I Can Play Guitar

It runs on SunPlus hardware, it didn’t take much to get it booting once Sean had analyzed the hardware and figured out how to dump the cartridges.

I Can Play Guitar I Can Play Guitar

I spent yesterday working out how it reads the inputs (where they all map etc.) and now have a mostly playable game. Only thing really missing is the eeprom emulation, as ‘load game’ assumes you’ve completed everything right now.

I already posted some screens of the title, so here are some of the song selections.


I Can Play Guitar I Can Play Guitar
I Can Play Guitar I Can Play Guitar
I Can Play Guitar I Can Play Guitar
I Can Play Guitar I Can Play Guitar
I Can Play Guitar I Can Play Guitar

As you can see, this only offers 6 songs per cartridge. There’s also a single ‘game’ in the game mode, which usually teaches you to play different chords. There’s also a ‘Freestyle’ mode. In terms of content this means you do get a bit less per cartridge than with the Piano, although in terms of the games that isn’t a big loss due to all the duplication that was present there anyway. There are 3 ‘difficulty’ levels for each song, with the first level just requiring you to strum, the 2nd requiring you to press the notes, and the 3rd requiring you to do both. I was a little surprised there weren’t further levels because despite teaching you to play chords in the game mode, the songs don’t actually seem to require them.

Here is a video of the thing running in MAME. You’ll note there are still some sound emulation issues, especially with the crowd noises on level 3, hopefully this will lead to further improvements in the SunPlus audio emulation.


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

There isn’t a huge amount to see in the other modes, so I’ll leave it to you to check them out if you’re interested.

Once I’ve added the eeprom support I’ll probably be promoting this one to working.

Thanks again to those who donated and made the initial purchase possible.

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.

Close