David Haywood's Homepage
MAME work and other stuff
July 30, 2012 Haze Categories: General News. 4 Comments on Burning Skies

A bit of teamwork with Kale has seen some good progress made on Taito’s Sky Destroyer.

The Famicom version of the game is at least these days a fairly well known title as it’s featured on a good number of the NES pirate multi-carts, and TV game systems. The arcade version is a more obscure title, luckily a PCB showed up recently.

Like many Taito games of the era it’s protected, in this case by an 8741 MCU, much like “Cycle Mahbou” to which the hardware has several similarities. Taito’s Gladiator also uses similar protection, although in that case actually has 4 of the MCUs (the ROMs for those are dumped, but not hooked up because in that case I believe the chips didn’t have their security bits set, but the Sky Destroyer one is secured)

Anyway, the good news is that Taito typically used the 8741 MCUs as I/O devices to communicate between CPUs and with some of the other devices on the PCB. This type of MCU is easier to simulate with a reasonable degree of confidence, and that’s exactly what Kale has been doing for Sky Destroyer after he initially hooked up the basic sprite support etc. for it.

Now, so far, all Kale, which might lead you to wonder why I’m posting about this at all, but let’s start by looking at an original video of the game.

Smitdogg posted a video of the game running on original hardware, the observant of you will immediately notice the ‘gimmick’ of this game is the funky tilting background, which in 1985 was an unusual effect and the main difference between the arcade version and the Famicom one.

Now, clearly the effect isn’t a full ROZ (Rotate and Zoom) style thing like Data East attempted to pull off in Zero Target, but it is still an attractive looking effect. In the end emulation was actually relatively simple, the first two byte of each row definition in the tilemap RAM region store the vertical scroll values for 2 columns. Additionally there were values for the horizontal scroll, and a single register to control colour cycling stored nearby (keeping the CPU cost of producing the fancy background as low as possible on original hardware)

Anyway, while Kale took care of the system emulation, including simulation of the MCU I looked at the graphic side of things and hooked up the various bits described above as well as fixing a few minor issues with the sprite emulation. It’s worth noting that there is a bit of background / sprite desync in the emulation, but if you study the original hardware it happens there too, it’s especially noticeable when the island is coming up from the horizon as the game attempts to fake the background effect using sprites to give the impression of the island rising up by masking out the bottom part, and you can see where things aren’t quite perfectly synced.

Anyway, some screenshots


Sky Destroyer Sky Destroyer

Sky Destroyer Sky Destroyer

Sky Destroyer Sky Destroyer

Currently the game lacks sound, this is because communication with the Sound CPU is also done through the MCU device, however because the device appears to be a ‘functional’ MCU acting as glue logic rather than providing game specific data I imagine Kale will be able to get the sound working in short order (actually he tells me it’s trickier than it looks) The game otherwise seems to be fully playable.

Current emulation video as of the time of writing


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

(the final improvements to this, namely the color cycling and sprite fixes didn’t make 0.146u4, so don’t be alarmed if you don’t get the same results as the video)

4 Comments

You can follow any responses to this entry through the RSS 2.0 feed.

Nice work guys!

Sky Destoyer and Cycle Mahbou do have four 8741s. They may even be the same as those used by Gladiator – we’ll find out if I manage to hook them up :)

Ah ok, I was going off the readmes, if they’re parts marked with the game specific codes I doubt they’re the same between games tho.

They ground off the markings on the YM2203 and put a game-specific code on it so I don’t give much credence to the stickers :)

Unfortunately, it looks like the MCUs that manage communications between the main and sub CPUs aren’t the same as those used by Gladiator.

However, the MCUs attached to the sub CPU that read inputs look to be the same or very similar.

are those the ones where Gladiator already has two identical ones?

anyway, sounds like you’re on top of it at least, so hopefully some audio isn’t too far away :-)

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