David Haywood's Homepage
MAME work and other stuff


December 31, 2019 Haze Categories: General News. 6 Comments on Nailgun

NMK’s GunNail is an often overlooked shooter. Released around the 1992/1993 period the visual style always reminded me of a mix of Toaplan’s Dogyuun and NMK’s own Thunder Dragon 2, both of which were released around the same period.

Maybe it gets overlooked because for scoring purposes it’s a little broken. The game substitutes the usual ‘lives’ system for a ‘shields’ system, rewards you more for playing with only a single shield left, but also plays a loud incessant warning siren the entire time that condition is met.

Maybe it gets overlooked because it’s wildly inconsistent. While all the stages are well designed there doesn’t appear to be any reason of rhyme to them; some bosses are even conditional and won’t spawn if you don’t play the stages properly, while the majority will spawn regardless.

Either way, a prototype of the game was recently dumped by CPsystem3 and trap15. Prototypes can often tell us things about the development of a game and help explain things that don’t make a great deal of sense, so what does this one tell us?

Well first off, just like the release version, it contains a “28 May 1992” string in the ROM. This isn’t too significant, in the majority of cases for NMK games all revisions contain the same string, so it clearly isn’t the release date. One of the only exceptions is actually a single Thunder Dragon 2 set which is starting to look out of place to the point where I wonder if the one with the different string has actually just been hacked.

Logo Logo
(Left, release version | Right, prototype)

Well first off, the introductory screen is different. The large NMK logo isn’t there, but instead we get this odd screen of a laser being fired against an otherwise empty landscape, followed by a large explosive shockwave. For a game that doesn’t attempt to tell any kind of story this seems out of place, not fitting with anything in the game. It’s no real surprise that it was dropped.

Logo Logo
(Left, release version | Right, prototype)

The title logo, when set to Japan does not display the Tecmo license in the prototype set, the tiles are there, but unused. No, the title isn’t changed to Nailgun, although I felt that to be a witty and appropriate title for the article due to nature of the rest of the changes.

Rest of the changes? Well, yes, if those minor details were the only differences here I wouldn’t be covering this prototype, but those certainly are not the only differences. trap15 was kind enough to supply a list of changes he had personally observed, which I have pasted below.

– Different introduction scene
– Many unique enemy types that ended up unused
– Tweaked enemy attack patterns
– Tweaked boss behaviour and attack patterns
– Dramatically different stages (and only 7 of them):
– Stage 1: Became Stage 5, very different layouts
– Stage 2: Became Stage 7, with mostly slight enemy layout changes
– Stage 3: Became Stage 6, almost the same as final
– Stage 4: Stayed as Stage 4, with very minor enemy layout changes
– Stage 5: Entirely unique stage, majorly reworked to become final Stage 2
– Stage 6: Became Stage 3, many enemy layout changes
– Stage 7: Entirely unique stage, majorly reworked to become final Stage 1
– No ending, instead loops forever
– Loop has extremely fast bullets
– The difficulty seems the same on all loops
– Player’s blue shot has a wider maximum and minimum spread
– Player’s main shot hitbox is symmetrical and wider than final
– When the hitbox was shrunk for the final, it was only shrunk in one direction, making it extended to the right

In short, there are a lot of changes, and yes, some of them explain oddities but in practice it means that playing this version of the game feels more like playing a remixed version than playing a prototype, everything is in a different order and rearranged.

I think it’s fair to say that the game was already far into development at the point this prototype was made, possibly only a month or two before release. The graphics ROMs, aside from the 8×8 tilemap were already finalized, the sound program was finalized, as were all the sample ROMs, so all difference in content come from the program ROM and which assets contained within the already finalized graphics ROMs the programmers wanted to make use of.

While trap15 asserts that the prototype only has 7 levels, work on the 8th, final level was already well underway, and you can hack the code to display it. If you do so the enemies are incorrectly coloured and there’s no Final Boss to defeat, but the backgrounds, overall sequence control and certain interactive elements contained within the level are already present. The lack of a final boss does likely explain why this version simply loops back to stage 1 instead of going to stage 8. If you do use hacks to play stage 8 in the prototype the (missing) boss sequence will eventually time-out and you’ll end up on another level which is an invalid mix of enemy patterns from one stage and backgrounds from another but it quickly softlocks. This suggests no ending was programmed at this point either, again likely explaining why the game just loops instead.

The stage order changes are probably the most curious thing here, and the extent of them suggests that the developers of the game weren’t really sure what order they wanted the stage to be in, either that, or the order presented her was specifically chosen for a show / location test to highlight certain things, rather than present a natural flow, although the difficulty balance of the stages does suggest maybe it was originally intended to be closer to what’s on offer here – the changes made to the final stage, which was to later become the first stage are extensive, throwing away a lot of work, yet at the same time the first stage presented here doesn’t flow well from the initial launch sequence.

That stage is probably a good starting place anyway

Logo Logo
(Left, release version, base near start | Right, prototype, extra enemies + starfield section)

As soon as the stage starts you can see an immediate difference. The release version scrolls quickly to the ground-base, offering some weak air targets. The prototype version has a much longer star scroll with several tough enemies prior to the ground-base section.

Logo Logo
(Left, release version, boss straight after base | Right, prototype, barrage of enemies)

The whole stage has different enemy patterns, but one noticeable thing missing in the final version is this asteroid like field of enemies prior to the boss. The is also one of those conditional bosses where if you don’t meet stage conditions it fails to appear. This almost makes more sense if it were intended to be a later boss as it is in the proto, but it’s also the first demo to appear in the game attract sequence, meaning that in the prototype version you see what is the final boss of the prototype without even having to play the game, again suggesting it probably wasn’t intended as a late boss as that would be anticlimactic for the player.

Looking at level 2 from the final, which is level 5 in the proto shows very similar differences. The prototype start off in space with several small floating islands, and many enemies before you get to the main water-based island. As this is the 5th level that makes sense.

Logo Logo
(prototype – early start, small floating islands, lots of enemies)

For the final build of the game the early part of the stage is cut entirely, starting you at the larger floating island with the waterfalls, even giving you a breather before any enemies spawn.

(release version – no smaller floating islands, fewer enemies)

Of all the stages this one is probably the one where it’s easiest to see just how much was changed. In the final version the stage is very short, it opts for a ‘base’ section with the sea on the left, and base on the right, the enemies are generally those seen elsewhere.

Logo Logo
(release version – left/right divide of water and base, standard enemies)

The prototype instead divides the stage into several more distinct segments, with sections consisting entirely of sea and entirely of land base, with specific enemies that fit with the backgrounds. Just like with the previous stage, there’s also a barrage of enemies right before the boss, this time some missile type enemies.

Logo Logo Logo Logo
(prototype version – stage divided into water / base segments, unique enemies)

As you can see, this is a non-trivial amount of level content that ended up being cut for the final game.

The two timed levels, 3 and 6 are the ones that were simply swapped around, so you still have timed levels in the same place, but as mentioned, there are layout and enemy changes to accommodate their difference placement here. In general the stages are less complex, so there much to show in screenshots tho.

Level 5 in the final, which is level 1 in the prototype does have some of the tougher enemies in the final (recoloured versions of ones that were scrapped from the stage that ended up as stage 1) but it also seems to use fewer platforms in the background in the approach to the boss. I don’t know if this was done to make the boss walking up the screen move obvious, but again it makes the final game seem a little empty compared to the prototype.

Logo Logo
(release version – tougher enemies that were removed from other stage)

With the prototype you can see it has easier enemies, but it’s a lot busier, unusual for a first stage. This stage is generally interesting because it has the whole boss march thing, and the stage transition where you drop down before the boss. Typically you see this kind of thing on the later levels of shooters, although trap15 mentions that, based on discussions with the original developer, this was intended to tie in to a story as the first level. My gut feeling would have instead been that maybe it was considered one of the more technically impressive levels they wanted to show off early in the location test.

Logo Logo
(prototype version – easier enemies, but more going on)

There are more level changes than I could possibly cover here, and things like rank, and the conditional bosses make it difficult to simply show the levels as a series of screenshots, but rest assured, if you’re familiar with the level layouts from the original these prototype ones will surprise you and in many cases provide a good chunk of additional content which was subsequently cut from the game. It feels very much like there wasn’t enough development time left to flesh out the newly established later levels once things had been moved around, or simply a case of the existing assets not really fitting as they’d all been designed for stages which were now much earlier, and shorter in length – clearly an issue if you finalize your art assets too early.

Moving on from the level layouts, the detail trap15 picks out about the shot hitboxes is interesting too, and while I doubt anybody aside from an experienced player is going to have noticed the change it does suggest that it was a rushed, last minute decision as there’s little excuse for having a wonky hitbox on your bullets. This was likely part of some late difficulty tuning, as a smaller shot hitbox makes it more difficult to hit enemies with your shots.

I’m not knowledgeable enough about the game myself to detail the different boss patterns and attacks, nor am I aware of every enemy type used in each version of the game to cover the specific ones that are used in the prototype but go unused in the final – that’s more the level of detail you’d associate with an article on The Cutting Room Floor (and this would be ideal material for one) but if you’re a fan of GunNail then this prototype is worth checking out.

Even with the additional development background provided by the prototype a lot of things about the game still don’t make much sense, it seems fairly clear that the developers didn’t have a solid vision for things like stage order, or at least never got around to implementing any kind of story to tie it all together, which probably explains why even in the final game the overall flow feels a little like it was thrown in a blender, but none of that stopped that from being an enjoyable game and one that doesn’t deserve to be overlooked in a crowded genre. The prototype enhances things, giving the game more of a fighting chance of standing out, and I feel does manage to provide a more enjoyable experience as a larger amount of the content is used. It appears likely many of the stage designs found here are closer to as originally intended, prior to location test feedback forcing changes.

How interesting a prototype is often depends on how chaotic the development process was. Maybe in this case we were lucky to see the game released at all, it feels like the budget wasn’t quite there for what the developers had envisioned, and that location test feedback meant further changes that disagreed with the original vision had to be made, long after that had been finalzied. I’ve often felt that location testing, beyond simply ensuring that the game didn’t have major bugs ultimately led to poorer quality games as players are often going to be at odds with the development vision, preferring things they’re already familiar with, and not really having an understanding of the internal process and how difficult it can be to make major content changes late in development. We’ve seen similar elsewhere, with prototypes providing a more memorable experience than the final games, LED Storm comes to mind, a game which seemed to get progressively more generic with each iteration, but also things like Trog, and the Android prototypes that appeared a few years ago all follow a path whereby the later versions of the game ended up much more forgettable.

Unrelated to this post, but it seems to go under the radar that NMK, UPL and Jaleco games are an area where we’ve not yet seen any real results from decapping efforts; for protection many of them use MCU types where dumping attempts have failed, or even where the MCUs might not actually be what we believe them to be. Games like Thunder Dragon, Hacha Mecha Fighter and Task Force Harrier actually have some pretty extensive protection on the original PCBs, and while we have simulations partially based on bootlegs and unprotected versions it would be great to one day see those devices properly dumped and emulated. It will be interesting to see if the new year brings any new developments in this field.

Again thanks to CPsystem3 for buying and dumping the PCB of this and trap15 for his preliminary analysis of it.

Go to article.. »

Thank You Morten Kirkegaard

November 27, 2019 Haze Categories: General News. 11 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.. »


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.. »

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.