David Haywood's Homepage
MAME work and other stuff

A Wolf in Prototype Clothing

April 1, 2016 Haze Categories: General News. 15 Comments on A Wolf in Prototype Clothing

Taito’s Operation Wolf is a game that has been subject to much controversy in emulation circles over the years.

The most popular bootleg of Operation Wolf, known as ‘Operation Bear’ replaced Taito’s C-Chip protection device with a Z80 and extra ROM to reproduce the functions of the original protection device. For a long time people claimed that this bootleg Z80 ROM was a clone of the original, that the C-Chip was actually a Z80 with internal ROM and that the bootleggers had somehow extracted the protection data from the C-Chip and put it in an external ROM.

This didn’t add up tho, there were some very clear discrepancies on the emulation, and while for a long time that’s how the original Operation Wolf was emulated, using the bootleg Z80 code to handle the protection it clearly wasn’t correct.

Later on Bryan McPhail (Mish) decided to write a new simulation of the protection device, one that didn’t make use of the bootleg Z80 rom, but was created using a combination of studying what that ROM did, and tests on the real board. Taito used the C-Chip game very well on this game however, keeping track of lots of little game state things. Studying the Z80 rom proved beyond any remaining doubt that it was not an accurate reproduction of the original, but infact something the bootleggers had come up with. (Things like the way the game handled difficulty were completely broken in the bootleg)

Bryan’s simulation was an improvement *however* there were still numerous reports of things that were ‘missing’ from the emulation of the arcade game. At the time some thought maybe people were just misremembering things, and that the features were not actually present in the arcade game, only the home ports, but as time went by more and more videos showing them missing features surfaced. Eventually we ended up with a full MAMEtesters report with reference videos etc.

Now, while that told us for sure we were doing something wrong, it didn’t really help too much in terms of fixing it, because as I said, the way Taito used the C-Chip was subtle, Taito were *really* good at protecting things in subtle ways (in the case of things like ‘Rumba Lumber’ there’s a weird calculation done after every stage that only really affects how the game loops the level number once you’ve cleared the game for example!)

That’s been the situation for a while anyway, we had a protection simulation that was better than the bootleg, but still known to have flaws. Now, I’m afraid to say that *hasn’t* changed, but what has happened is something maybe even more surprising.

An Operation Wolf PCB was located in Hungary, not exactly the arcade capital of the world. This PCB, while being an original Taito PCB was slightly different to the usual version. Caius picked up this PCB and dumped it, while providing us with some pictures; It looked like this

Operation Wolf
Operation Wolf

Now, immediately obvious is that one of the program roms is in the wrong socket, this could have been worrying at first because it might have indicated this used more roms and some were missing, but no, it was simply a case of a ROM being in the wrong socket.

The program roms are interesting too, they have handwritten labels, and for Taito PCBs this is usually either a sign of one of two things, an unofficial modification / conversion, or a prototype. Maybe most significantly of all however is that this PCB type does not have a C-Chip, the C-Chip being the protection chip Operation Wolf uses.

Trying to ROM swap the roms from this into MAME simply resulted in a ‘TILT’ error rather than the game booting, so it needed some work.

After an evening of work I managed to figure out that the game code definitely wasn’t accessing anything to do with the C-Chip, which would usually handle the inputs (including the Tilt input) and was instead trying to read the inputs from the top bits of the gun port. Adding those in allowed it to boot.

Operation Wolf

The game booted with the usual For Use In Japan disclaimer, so was clearly a board designed for the Japanese market (so quite how it had ended up in Hungary I really don’t know) What was more concerning at this point however was that while the attract mode for the game ran fine, and even exposed an immediate difference in the wording of the ‘Rescue Hostages’ screen, it would hang on the ‘Operation Map’ screen.

Operation Wolf Operation Wolf

Now, what’s interesting about Operation Wolf is that it has a language dipswitch, regardless of region. When that language dipswitch is set to Japanese on the original game you get a ‘Course Selection’ screen at that point, but when it’s set to English you don’t, you just get the ‘Operation Map’. As I’d imported to dips from the basic game it was set to ‘English’ by default. On a hunch I set the language dipswitch to Japanese and instead of the broken Operation Map screen I was greeted with the Course Selection screen, no hang. I asked Caius to try this on the PCB and he said the behaviour was the same, the game would hang / reset with the dipswitch set to English. All signs now clearly pointing at this being a Japanese prototype.

Operation Wolf Operation Wolf

What followed surprised me. At this point I was expecting this to be quite an early prototype as the other Taito prototypes we’ve seen, even early ones, show that English language support got added quite early on, so the hang might indicate this was an early build, although the final MASK roms being used for Graphics on the PCB did suggest otherwise.

I noticed some of the dipswitches had different effects to the final game, the 2 unused ones granted Infinite Health and a hit % bar across the top of the screen (presumably debug features) I was also getting Infinite Ammo, that turned out to be controlled by the dipswitch that on the final game gives discounted continues.

Anyway, I left the cheats on, blasted through the game, all levels were intact, but maybe most significantly, so were the features that people had said were missing from our emulation of the original game. This was a 100% unprotected prototype with everything intact, clearly Taito finished the game before implementing any kind of protection (unlike some other Taito games where the protection was added earlier in development) Here are some screenshots from the Prototype showing things that don’t occur in our emulation of the final game due to the incomplete protection simulation.

Operation Wolf Operation Wolf
Operation Wolf Operation Wolf
Operation Wolf Operation Wolf

From top to bottom
1) A hostage situation at the end of the Jungle level
2) A ‘The Enemy Has Located You’ random event that can occur before any one of the stages once during a loop
3) The camera panning up at the end of the final level for the final few enemies, showing the building tops and sky rather than the ground.

The game seems to be basically be complete, all levels are present, and it loops, as you’d expect to the dusk / nighttime 2nd loop if you complete the first loop without ‘failing the mission’

I also recorded a YouTube video (with the cheats turned on) to show these features in the prototype.

What remains to be seen is if this prototype gives us enough information to improve our protection simulation on the original game. Eventually we would like to be able to dump the C-Chips and emulate the protection properly, as a CPU running the protection code, but right now we still don’t have a viable method for doing that, Taito did a good job of securing the chips.

Go to article.. »

MAME 0.172

March 31, 2016 Haze Categories: General News. 17 Comments on MAME 0.172

Somehow I didn’t actually get around to covering the MAME 0.171 release, these things happen from time to time.

0.172 was released this morning tho and it’s a significant release for a number of reasons.

First off the licensing. As a general MAME user you might not care too much about this, and actually might see more negatives from it than positives due to a handful of drivers being removed, but as far as MAME is concerned it is a big step because with the majority of the code now available under a 3-clause BSD style license we’re basically giving our work away for people to do whatever they want with. The bits that don’t have a BSD license are GPL, which is a bit more restrictive for people in certain industries, but still more of a free license than our previous one.

I guess I’ll state by stating the drivers that were removed and haven’t been rewritten.

Popper, released by Omori. This was an interesting Q-Bert style game, the hardware isn’t TOO complex, hopefully it will be back soon.

Marine Date, released by Taito. Probably the nastiest of the removed and not restored games, hardware collisions etc. Not sure it was ever 100% correctly emulated tho, and the board uses discrete sound that was never traced / emulated either. Interesting game, but maybe it can come back stronger at a later date.

Flower, released by Clarue / Komax / Sega / Alpha Denshi. This was a simple 80s style shooter, quite good fun, annoying sound hardware, slightly annoying video hardware with some zooming if I remember correctly.

In the non-arcade part of the code one of the Chess board simulation engines had to be dropped too, as well as a couple of the Chess drivers, if you like that kind of thing those will probably be missed.

Otherwise, that’s really it, out of everything there were only a handful of people we couldn’t contact. We managed to rewrite a couple of drivers during the cycle (otherwise there would have been 3-4 more entries in the above list) but yes, overall, and quite amazingly with around 20 years of history to the project we managed to contact the authors and get approval to relicense practically every piece of code in our codebase. Impressive.

I think it’s fair to say the majority look first at the list of “what runs now that didn’t before” so now that I’ve got the license talk out the way I’ll take a quick look at those for this release, starting with 2 I haven’t already covered here

Tournament Solitaire is a PC based Solitaire game, fairly self explanatory really. It doesn’t seem amazingly good, Windows has had a better built-in Solitaire game for many years which probably doomed this kind of thing as a stand-alone arcade game.

Tournament Solitaire Tournament Solitaire Tournament Solitaire

Magical Touch on the other hand is a bit more ambitious, it’s another piece of PC based hardware, but this time it’s a multi-game thing controlled with a touch screen. It too has a version of Solitaire, better than the one above, and a number of other bare-bones games. We’ve actually had a fair few requests over the years to get this one up and running so I guess it holds a place in the hearts of some people.

Magical Touch Magical Touch Magical Touch

I’ll quickly cover the ones I’ve already shown on these pages, first off Android. This is the early prototype version I covered in an earlier article, the later version was not dumped / added in time for 0.172, maybe next time. Interesting concept for a shooter, doesn’t really feel intuitive enough tho.

Android Android

Fire Ball is a bomberman clone, actually more historically significant than we realised because one of the developers was the guy who went on to become the head of ExPotato, a better known Korean developer still around today.

Fire Ball Fire Ball Fire Ball

The 3rd of the already covered games is Lock On, Philko’s attempt at doing a 16-bit shooter, ends up coming across as a bit of a Carrier Air Wing / US Navy wannabe tho.

Lock On Lock On Lock On

Merit’s Chicken Draw was also added, like most Merit games it seems to be a ‘for fun’ casino styled game. There are a lot of these, we don’t know exactly how many, so it’s nice to see them turn up from time to time.

Chicken Draw Chicken Draw Chicken Draw

While not technically a new game I did put some work into fixing up the Flash Point bootlegs, the last time these worked to a playable degree was a ridiculous amount of time ago, and even then they weren’t using the real sound roms etc. The Flash Point bootlegs are actually very interesting because they seem to be based on a different version of the game to the released version, possibly a prototype. There are also English and Japanese bootlegs, whereas for the original game it appears only a Japanese version exists. Things like the ‘Mirrorsoft’ disclaimer (used on Tetris games) appear in the bootlegs, but strangely not on the original, although the bootlegs lack a high score table.

Flash Point Flash Point Flash Point

In some cases having a layout can be an important step in making a game playable. While the Scorpion 4 hardware games do still have to operate in something of a freeplay mode the game ‘Frankie Dettori’s 7th Heaven’ was vastly improved with the addition of a basic internal layout positioning and naming all the lamps and reel symbols correctly. There’s still an odd issue with MAME layouts where using the £ symbol causes them to not show up (XML parse issue maybe) so $ signs are used for now. It’s a long road, but we’ll get there with these eventually. (the £ symbol issue has been fixed now, fix will be in the next release)

There are some new additions that are NOT WORKING but still interesting too. Big Buck Hunter 2 was added, you can watch the attract, but it doesn’t seem to be possible to calibrate the guns (and if it’s anything like the first game there might be protection issues after that)

Big Buck Hunter 2 Big Buck Hunter 2 Big Buck Hunter 2

Another NON WORKING addition is a Sega Master System / MSX based bootleg collection. This is unusual because most of the arcade mulitgames are NES / Famicom based, so seeing one with the likes of Alex Kidd and Final Bubble Bobble is rare. The dump is incomplete for the time being tho, there’s a MASK rom containing 11 of the games that hasn’t yet been dumped, hopefully that can be resolved soon and we can look into emulating it; the timer and credit system might be MCU based and require some HLE simulation tho. I think Buk Doo Gun included here is a previously unknown Korean title hack of ‘Hokuto no Ken’ which makes it kinda interesting even outside of this collection (you can extract it and run it as a standalone ROM)

Super Master System Super Game Super Master System Super Game

For the next couple you’ll need artwork from the MESS Artwork pages. Popular arcade games got many home adaptations, including numerous handheld games based on the (at the time) well known IP, often with different games based on the same original titles being released by different manufacturers. Bandai and Gakken were 2 manufacturers who got in on the act and for Bandai the featured games here are the adaptations of Data East’s Burger Time, Sega’s Zaxxon and Sega’s Pengo. For Gakken there is an adaptation of Konami’s Jungler.

Games like this are something of an acquired taste, the adaptations all manage to squeeze in certain elements of the games, but the biggest challenge of playing them is working out how the ‘rules’ of each game work, in terms of visuals you’re dealing with very infrequent updates, so an enemy that looks far away might only actually be 2 moves away from touching you etc. Either way, these are a lot of work to get going (dumping the MCUs, often visually, then having to find and correct any errors, making the artwork, testing them..) so it’s great to see them actually emulated.

Burger Time Zaxxon Jungler
Burger Time

There were others too, not based off arcade games. Castle Einstein is a ‘Simon’ clone, repeat the sequence you see. Very simple, so simple we can represent it entirely with the internal artwork.

Castle Einstein

While Conic’s Electronic Football I’m not really sure how to play, seems to be based on American Football, which I’m not really overly familiar with anyway. Again this one can be represented with the internal artwork

Conic's Electronic Football

There are a few other things in there that I don’t really know how to operate, so I’ll look over the clones and see what’s interesting. I did already cover Flash Point above, but there are some other noteworthy clones here. Topping that list I have to say is the Last Resort prototype. This is a NeoGeo game, and there are very noticeable difference in the stage design (enemy attack patterns) when compared to the final game. I made a video of it a few weeks ago when the dump was submitted to us. If you’re familiar with the game you’ll be able to see that despite my terrible play there are some obvious differences in the enemy placement, including 2 of the big metal enemies near the start rather than a wave of different ones after you beat the first.

I don’t think any of the other clones really give anything to show in screenshots. The Buccaneers set provide a slightly different gameplay experience by not allowing you to backtrack at all, but there’s no visible difference. The collection of bootlegs that were dumped and added from Spanish boards often have Spanish text, but otherwise look the same as the original games. The Spartan X (Kung Fu Master) bootleg is probably the most significant in terms of hardware changes, but again the end result in a screenshot isn’t too different (the bootleg hardware can’t output as many lines tho, so the bottom 16 are cut off, likewise it has inferior sprite hardware so the sprites entering the screen from the left and right are slightly glitchy in the first frame)

The Software List additions section to the whatnsew is a fairly recent addition where we list interesting things that are now listed in the Software Lists, sometimes these tie in to actual driver developments as is the case with the Apple /// list changes, where some software exposed a number of bugs in the driver, those bugs were fixed, and so we decided to document the software that was used during the process. As the Apple /// was basically a failure any software that documents what it could do is interesting, the majority of software available runs in simple text modes, so an actual game, like Atomic Defense (a Missile Command clone) can tell us a lot more about the hardware and provides a better test case than a lot of other software; fixes made in 0.172 allow it to work

Atomic Defense Atomic Defense Atomic Defense

Preliminary Software Lists were also added for the Pocket Challenge V1 and V2, the Pocket Challenge V2 is actually basically a WonderSwan at heart, so while a dedicated driver with proper input mappings does not exist yet you can actually boot the software in the WS driver. The Pocket Challenge V1 appears to be unique / different hardware, so the only thing dumped for that doesn’t do anything yet. Both are Japanese educational systems, but without proper drivers are obviously still marked as NOT WORKING even if the V2 stuff can be booted.

Pocket Challenge V2 Pocket Challenge V2
Pocket Challenge V2 Pocket Challenge V2

Another one considered ‘NOT WORKING’ is GP Race in the Gamate list, although it is somewhat playable, however sprite flicker is presumably a lot worse than the real system. Games for obscure systems like the Gamate are not well known as they weren’t popular systems compared to the Gameboy etc. so seeing them dumped and documented is important.

Gamate GP Race Gamate GP Race Gamate GP Race Gamate GP Race

Back to WORKING titles, the Pyuuta list got 2 rare additions too, Super Bike is the first, I’ve made a video of that. You can see why it’s rare, it’s not a good game, the game mechanics make little sense, it feels forced so you can rarely rely on initial instinct to know what to press, a lot like the handheld games that I mentioned earlier even if it’s on a system with full video capability.

The other Pyuuta game added is ‘Battle Fighter (3D)’ which is a more playable title. Essentially it’s a Xevious style shooter but with a perspective angle, there are air and ground targets, as well as air and ground attack buttons.

BattleFighter 3D BattleFighter 3D BattleFighter 3D

I talked about drivers being dropped due to relicensing earlier, and one driver that was initially dropped was the driver for the ‘SVI-328’ However, as a result of the driver being dropped it ended up being completely rewritten during the release cycle and is now back and better than ever, in fact it now runs a fancy demo doing various tricks with the hardware that the old driver fell over trying to run. Here’s a video (not my video)

One big piece of news for 0.172 is that the HLSL shader system has been ported to the ‘BGFX’ video mode, meaning it’s now cross platform rather than Windows specific. The way the shaders in BGFX work is also enhanced over the hardcoded HLSL of the D3D video mode, you actually specify the shader chain on the command-line and can set it up to use different shaders on different screens etc. With regular HLSL you were forced to have the same shader for all screens which looked a bit silly in cases like the Mahjong games where 2 of the ‘screens’ are LCD panels which shouldn’t have had effects applied. This looks much better now.

House Mannequin (with BGFX) House Mannequin (with BGFX)

As the shader system is now more open ended it should be possible to drop new custom shaders in more easily, so you might see ports of many of the effect files found in other MAME versions and be able to use them in the baseline MAME. The only word of warning I’ll give is that things aren’t 100% stable right now, doing things like ALT-ENTER to switch between fullscreen and a window tends to have undesirable effects and will often crash if you have the shader enabled.

HLSL itself has also been tweaked and enhanced over the course of the cycle, it’s gained ‘preset’ support, and a number of presets are shipped, including one for the ‘gameboy’ which gives a more authentic look.

Super Mario Land (GameBoy) HLSL
Super Mario Land (GameBoy) HLSL

Another ‘plugin’ system was introduced to expand MAME’s LUA scripting capabilities too, and for the first time in years the baseline version of MAME can again use hiscore.dat via these plugins. This is actually an incredibly powerful system with a lot of interesting possibilities, for example you could potentially write something like a Pacman AI in LUA and have it play the game for you, or display real-time translations of Japanese games if you write scripts to look for certain characters being displayed and then display an overlay in English using the MAME interface. Of course nobody has written those scripts yet, only the high score one, but it’s definitely an area of MAME that people could put to good use.

Hiscore Plugin

One last significant end-user visible change in 0.172 comes in the form of the multi-language interface. A lot of work was put into language files over the past month, converting our interface code to use them. What this means is that all UI strings (MAME menus etc.) can be shown in a wide variety of non-English languages. While this might not seem much it is actually important these days as the increasing complexity of MAME means that some advanced things are much easier for non-English speakers with the interface translated.

MAME Interface in Italian

There’s also been a massive effort made to improve the MAME documentation on the official site ( http://docs.mamedev.org/ )

Less user visible are all the ‘under the hood’ changes in this release, a lot of the MAME file handling code was refactored for example, this is good because it brings features like the 7-zip support entirely on-par with the regular zip support, meaning all tools (romcmp etc.) now work with the 7-zipped images, as does the file manager for selecting loose files.

Finally, and maybe of interest to less users is the news that a number of GroovyMAME features were integrated, allowing for integer only scaling etc. which should help with people wanting to use the baseline version on CRTs etc. (There was a lot of concern over the DirectDraw output mode being dropped as that was the only mode with integer scaling in the past, but as the entire DirectDraw interface is deprecated by Microsoft it couldn’t stay around forever)

Definitely a big release, and a lot of work for 1 month. I might tack on a few 0.171 highlights to the end of this to make up for the lack of coverage last time, we’ll see.

Go to article.. »

Android Android

March 14, 2016 Haze Categories: General News. 7 Comments on Android Android

The game development cycle can be a fascinating thing, especially for games that ultimately might not have been released.

We knew of a game called ‘Android’ by Nasco, because Chris Hardy has one, he uploaded a video here and apparently he was wanting to write a driver for his PCB before submitting it but had got stuck on something to do with the sprite attributes shortly after uploading that video.

When another copy of Android turned up we initially almost passed on buying it because of this, however a closer look at the version on offer showed it was rather different to the one that was in Chris’s hands so we ended up buying it (or rather Ryan Holtz / MooglyGuy ended up buying it – it cost a rather hefty $500, so as always donations are appreciated, we don’t have bottomless pockets and that was a fair chunk of money. Without funds things WILL get lost because sadly some people would rather put profit before preservation)

Anyway, as I had to check out the dump to make sure it was good, and don’t know what hardware the one Chris has runs on I looked at emulating it.

Searching the PCB board number turned up an obscure driver ‘himesiki.cpp’ in which ‘Himeshikibu’ a 1989 Japanese Hanafuda type game by ‘Hi-Soft’ was the only game present. Looking in the driver that was a 3 board stack, so I ruled out the chances of it actually being the same board as coincidence as this was only a 2 board stack.

I then spent a bit of time looking at the romset, and realised that ruling out that driver was a mistake, because everything was mapping to be exactly the same as the driver I’d found except for a there being one less set of sprites; presumably this is what the 3rd board provides and Android simply didn’t have it or need it.

I needed to fix up a few things such as the CPU banking, and tilemap scrolling, but essentially it was an easy drop-in. The build we picked up feels very much like a prototype, rough around the edges, unfinished in places.

For fun I did some side-by-side comparisons with the version Chris owns. What you can’t see in these screenshots, but can see in the videos is that his has more complete music too.

Android (MAME) Android (Chris)
Android (MAME) Android (Chris)
Android (MAME) Android (Chris)
Android (MAME) Android (Chris)
Android (MAME) Android (Chris)

As you can see, the differences are very significant.

The font between the two versions is entirely changed, the one Chris has uses a thin font, the one we picked up has a chunky one.

The title screen is modified, the sprite graphic is changed, but most significantly the galaxy used in the background has been replaced with a smaller, cleaner more elegant looking one in the version Chris has.

The high score table is fully populated in the version Chris has, but not ours.

The stage introduction text is more detailed on the one Chris has

The ingame background is coloured on the one Chris has, it’s a starfield on the one we have.

The ingame sprites are completely different too, the player ship is changed as have all the enemies, the enemies on our board are various robots, the one Chris has uses eggs that turn into heads. The one Chris owns also has a shield powerup, and you can move all the way up the screen into the enemies, ours has no powerups and restricts you to half the screen.

Now.. all this clearly suggests that the board Chris has is a newer version, HOWEVER, the one we have also does some things that his one doesn’t. We for example have a level timer, when that timer expires any enemies you haven’t killed turn into a circular boss, you must shoot the left edge of that boss to stop the spinning so that you can attack it’s weak point. Upon starting a game our version also has a big dragon (it quickly retreats and reappears for you to kill after several stages) This dragon does not appear at all after coining up on the version Chris has (if it appears later is unknown)

I’d still say the one Chris has is newer, it’s a lot more polished, has a proper coin-up sound etc. but this definitely gives some insight into the development of the game, a game we’re not actually sure if was released at all.

For reference, here are some screenshots of the things in the MAME version that I can’t see in the one Chris owns.

Android (MAME) Android (MAME)
Android (MAME) Android (MAME)

It remains to be seen if the one Chris owns drops straight in the Himeshikibu like this one did, although if it does then I’ll cross my fingers and hope he submits it soon, as his reason for not submitting it before was that his driver was incomplete, but if it’s actually this PCB we already emulate then that problem is already resolved. It will definitely be interesting to do a more intensive comparison of the two versions if the other one does get submitted.

In the meantime, here is a video of me playing the one we have badly. It’s actually an interesting game, you have 2 gun types, one transforms the enemies between different forms, the other zaps them. If you zap an enemy in anything except their 3rd form they’ll respawn. Any enemies left when the timer runs out will form into the bigger ‘circular’ boss enemy, the more enemies left the more difficult that boss enemy. There’s also a bonus stage following similar rules, and the ‘dragon’ stage which seems less complex.

Go to article.. »

Catching Fire

March 13, 2016 Haze Categories: General News. 7 Comments on Catching Fire

Until it showed up a week or so ago I had never heard of the game ‘Fire Ball’ by FM Work, but the screenshots on eBay made it look like a Bomberman ‘clone’.

Team Europe picked up the board and dumped it. The hardware was a z80 based board (with an additional Z80 for sound) so definitely not based on bootleg Bomberman code, but instead an original Korean product.

Even with original Korean games the hardware is usually cloned from something else, and identifying what it is early can save a lot of time. (I actually ended up discovering the Black Touch ’96 is a modified clone of SNK’s POW hardware – many years after I added it, had I found that earlier it would have saved me a lot of time figuring out the video hardware!)

The cloned hardware is rarely a straight 1:1 copies, usually the sound systems are degraded, clocks often changed, sometimes graphics hardware is tweaked (for higher BPP tiles, as we saw with Lock On previously covered here) and physically they look nothing alike so when trying to work out the basis of a piece of hardware you have to look for ‘unique’ characteristics in terms of addresses used, sprite / video formats etc. in order to pair the cloned hardware.

Anyway, with Fire Ball I decided to start by decoding the graphic tiles, that turned out to be simple enough, 3 sets of graphics, 2 sets of 4bpp 16×16 tiles, and a set of 2bpp 8×8 tiles.

I then started looking at the code for the main CPU. It’s was a Z80 program, clearly driven by an NMI (Non-maskable interrupt) rather than the regular IRQ0 signal on the PCB. Generating an NMI too early caused the game code to crash, so clearly there was an external enable / disable flag for the NMI generation. The only real things the game did of note aside from clearing RAM were some port writes, especially to address 0xf80e. One of those was surely NMI enable. The last thing it wrote there, before sitting in a ‘halt’ loop was 0x08.

Searching the MAME source for “0xf80e” in the memory maps gave precisely one hit. The driver for Legendary Wings (lwings.cpp)

Mapped at 0xf80e there was “AM_RANGE(0xf80e, 0xf80e) AM_WRITE(lwings_bankswitch_w)” which on the surface might not sound like what I was looking for, but if you look in the actual function you’ll see it does a few things, including having an NMI enable flag on bit 0x08.

Legendary Wings also used a 2bpp text layer, 16×16 4bpp sprites, and 16×16 4bpp tiles.

It quickly became apparently that it was the base FM Work had used to create their cloned hardware from.

Anyway, I added it to the driver, taking note that the sound system was definitely different, this PCB used a single M6295 for sound, none of the Yamaha chips of the original hardware.

None of the games in the driver supported 4 players, so I also had to figure out where the extra inputs mapped, not really a challenge, and then tackle the sound. Worrying there was a big epoxy block on the PCB, however we’d already established that removing it only caused one thing to happen, the sound stopped working. Team Europe had also already decided to throw caution to the wind and open it up, there was actually very little of note inside, just 2 20pin devices.

Hooking up the sound didn’t take long, it isn’t great, but that’s because the sound hardware is awful; test mode lets you test every sample. Having hooked it up I’m actually left a little confused as to what the purpose of those devices inside the block are, maybe they’re related to the sound banking or memory map for the sound, because the actual sound system is very simple, a simple M6295 driven by a tiny program, with some sample banking.

I played through the game a bit, noticed that the 3rd boss and above had corrupt graphics, noted that the game has twice as many sprites as anything on the original hardware, and found the sprite bankswitch address (same location as the rom bankswitch)

Interestingly, because this game has a single 0x20000 program rom, rather than 3 0x8000 sized roms like the other games in the driver a chunk of the program rom is inaccessible. Alone this isn’t too unusual for these Korean games, often such areas are left blank in roms or just duplicate the first part of the data.

What’s weird here is that the inaccessible area is mostly a direct copy of the first ‘fixed’ / ‘non-banked’ part of the program code but with a very slight change, 2 pieces of code are switched around.

3822: CD 73
3823: 00 23
3824: 3E 72
3879: 73 CD
387A: 23 00
387B: 72 3E

first copy in ROM
3822: 73 ld (hl),e
3823: 23 inc hl
3824: 72 ld (hl),d
3879: CD 00 3E call $3E00

2nd copy in rom
3822: CD 00 3E call $3E00
3879: 73 ld (hl),e
387A: 23 inc hl
387B: 72 ld (hl),d

I’m not sure why this is, I don’t think the 2nd copy can be banked in, maybe it’s an older copy of the game code before they fixed a bug, I haven’t worked out when the code is called either.

Anyway, the game is fully playable, although clocks and refresh rate aren’t verified. Here are some screenshots (and yes, the 16-pixel border on the left is correct, only test mode uses the full width)

Fire Ball Fire Ball
Fire Ball Fire Ball
Fire Ball Fire Ball
Fire Ball Fire Ball
Fire Ball Fire Ball
Fire Ball Fire Ball

I’ve also uploaded a video of it to YouTube, not being played well, but enough to show you the game.

Go to article.. »

Not Letting Go

February 27, 2016 Haze Categories: General News. 30 Comments on Not Letting Go

When a game shares a name with a different but much better known game it can prove tricky to track down, and, in cases where nothing is known other than the title it’s difficult to know if you’re looking for an original game, a license, or a bootleg.

Philko’s Lock On is one such game, sharing it’s name with the still rather obscure, but better known (in part due to emulation) Tatsumi game from 1986.

Until yesterday we didn’t really know what to expect from this game, but completely out of the blue a user called ‘marcus’ dumped a PCB for it and submitted it for us to emulate.

There are a few Philko games in MAME already, a couple of shooters running on hardware that was cloned from Side Arms (Whizz / Dyger / Turtle Ship) and some simple puzzle style games on a sprite-less System 16 hardware clone (Atomic Point and Snapper)

Looking at the PCB / roms the hardware here didn’t quite fit either of those profiles, it was 68k based, so no the sidearms derived hardware, but it also had sprite roms, so it wasn’t identical hardware to the System 16 titles, also it had an OKI M6295 in sound section which none of those have either.

The sprite roms were clearly non-tile based, and looked clearly like Sega System 16 format sprites, so the first and most logical route to explore was that this was a more complete clone of Sega System 16 hardware than used by the other Philko titles. There were a couple of issues with this assumption, first of all, the tile roms were clearly 4 bits per pixel graphics whereas the original System 16 hardware and Philko clones were all 3bpp. (In English this had 16-colour per tile, not 8-colours per tile)

Either way, I quickly hooked it up in the System 16 driver, and it booted, even showing me some sprites, the assumption WAS correct, however it would need further work, Philko had made significant changes to the hardware while copying it. It was immediately obvious that the palette RAM was bigger, again, fitting with what had previously been observed, if you have 16 colours per tile then you need more colours in total. Oddly, even with that all set up, and the base of the sprite palettes adjusted accordingly the colours were still off. It turned out that palette format had also been changed here, from the xRGBRRRRGGGGBBBB format of the original hardware to a simpler xBBBBBGGGGGRRRRR (where each R/G/B letter represents a single colour bit) Adding support for that alt format fixed the colours.

Sound was also different, I used the emulation from Whizz as a base, because clearly, from observing the reads / writes that’s what Philko had done, but here there was also an extra port used to access the OKI M6295 sample playback chip. As none of the clocks were measured on the PCB, nor the divider pin for the OKIM6295 I’m not 100% sure the sound is perfect.

With all that hooked up, inputs sorted out, and dipswitches deciphered to a usable level the game was playable. It seems like it was heavily influenced by Capcom’s US Navy / Area 88.

Interestingly the game doesn’t show a copyright on the title screen, but there’s a Philko disclaimer on the startup, Philko tiles in the tile ROMs, and a 1991 date on the bottom of the high score table, one of the dipswitches flips between ‘Korea’ and ‘Europe regions. Philko was also one of the few Korean manufacturers to actually have their own marked custom chips too (albeit only one of them on this PCB, the others had generic markings)

Also of interest is that the game does attempt to program what appears to be a clone of the Sega memory mapper chip (used for dynamic memory maps on System 16 etc.) although I haven’t currently hooked it up as dynamic, might have to see if it really does program valid values tho.

Again Big thanks to marcusfor dumping his PCB here. The picture provided alongside the ROMs is shown below.

Lock on PCB

Lock On Lock On
Lock On Lock On
Lock On Lock On
Lock On Lock On
Lock On Lock On
Lock On Lock On

I’ve also uploaded a video below, you can see some minor clipping issues on the left side in attract, but I’m 99% sure those will happen on a PCB too, the image it’s scrolling around is part of one of the tile layers and simply isn’t wide enough to cover the area where you can see the blank space.

Another one that was all but forgotten this time last week saved from extinction.

Go to article.. »

’96 Flag Rally

February 9, 2016 Haze Categories: General News. 15 Comments on ’96 Flag Rally

Nosunosu and ShouTime got this obscure Korean title dumped.

It’s so obscure I’m not 100% sure who actually made it, there’s no manufacturer information shown onscreen, in the ROM, or on the PCB.

There’s an entry in the Korean games database for it but that’s about it.

Seems to be unique (but simple) hardware, the whole thing was emulated from scratch using MAME / MAME cores in around 3-4 hours.

I’ve recorded a video below, and will probably put up some static screenshots later.

Refresh rate and PCB clocks for the 68k / M6295 haven’t been measured so are guessed at the moment, but it looks and sounds reasonable to me; it’s not even a bad game even if it borrows all its ideas from Rally-X

*edit* here are some snaps

'96 Flag Rally '96 Flag Rally
'96 Flag Rally '96 Flag Rally
'96 Flag Rally '96 Flag Rally
'96 Flag Rally '96 Flag Rally
'96 Flag Rally '96 Flag Rally
'96 Flag Rally '96 Flag Rally
'96 Flag Rally '96 Flag Rally
'96 Flag Rally '96 Flag Rally
'96 Flag Rally '96 Flag Rally
'96 Flag Rally '96 Flag Rally
'96 Flag Rally '96 Flag Rally

For those wondering, yes, most of the graphics in this game are stolen from elsewhere, there are 3 sets of background tiles for example
The first set is from ‘Sim City 2000’ ( you can easily see one of the buildings that was stolen near the center of the image at http://www.moma.org/interactives/exhibitions/2011/talktome/assets/TTM_211-large.jpg )
the second set is from ‘The Settlers 2’ ( the catapult shown on http://img3.picload.org/image/argppro/testen.png is one of the buildings)
and the third set of tiles is from Caesar 2 ( you can see several of the buildings in http://www.agamesroom.com/library/images/screenshots/caesar2/caesar2ss3.gif )

SC2k was originally released in 1994, the other 2 were 1996 releases, which makes sense considering this was likely released around then 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.