Coin-Op Collection Presents: DECO-16 (Desert Assault / Thunder Zone)
Today's release for the Analogue Pocket and MiSTerFPGA platforms is the next entry on the DECO-16 platform. Desert Assault, known outside the US as Thunder Zone, is a four-player military run-and-gun, built on Data East's 16-bit custom hardware.
Kuhga / Vapor Trail (1989)
Crude Buster / Two Crude (1990)
Dark Seal / Gate of Doom (1990)
The Cliffhanger: Edward Randy (1990)
Super Burger Time (1990)
Death Brade / Mutant Fighter (1991)
Tatakae Genshijin: Joe & Mac / Caveman Ninja (1991)
Robocop 2 (1991)
Thunder Zone / Desert Assault (1991)
Wolf Fang: Kuhga 2001 / Rohga (1991)
Tumble Pop (1991)
Dark Seal II / Wizard Fire (1992)
Funky Jet (1992)
Gun Ball / Nitro Ball (1992)
Diet Go Go (1992)
The Great Ragtime Show / Boogie Wings (1992)
Double Wings (1993)
Thunder Zone is Data East's follow-up to Bloody Wolf. Snake and Eagle return with two new recruits alongside them, and all four can be in the fight at the same time. Supporting four players makes it the most component-heavy board in the lineup; the rest of the platform gets by on a single PCB, and Thunder Zone needed two stacked together.
This post covers a technical overview of Desert Assault on DECO-16, the work the board required, and the game itself.
Overview:
Thunder Zone runs on Data East's DECO-16 hardware, and unlike the rest of the platform it does not fit on a single board. A main PCB (DE-0344-3) stacks with a second board (DE-0345-1), and the game is split across two Motorola MC68000 processors, both running at 14 MHz. The two share a dual-port RAM and interrupt each other through it, dividing the game's work rather than one waiting on the other.
The sound system uses a HuC6280 (DECO Custom 45) at 4.0275 MHz driving a YM2203 (OPN) at 4.0275 MHz, a YM2151 (OPM) at 3.579 MHz, and two OKI M6295 ADPCM samplers, one at 1.007 MHz and the other at 2.014 MHz with its sample bank selected by the YM2151's CT1 pin. Audio output is mono.
The video system outputs 320x240 in a horizontal orientation at 57.445 Hz. Graphics are rendered by a set of Data East custom ICs, two DECO 55 tilemap generators drive four playfields between them at four bits of color per pixel, and two DECO 52 sprite engines drive two sprite planes, one of which can mix with the scene behind it rather than covering it. The palette holds 4096 entries in 24-bit RGB, eight bits per channel, and up to four players can be in the cabinet at once.
Development Challenges:
Thunder Zone is the first board on the platform to put two 68000 processors on the main program, and getting them to agree is the first thing the core has to do. Neither one is a subordinate. They share a dual-port RAM between the two boards, and either can raise an interrupt on the other by writing to it, so the pair has to stay in step for anything to run. The core wires them the way the board does, both at 14 MHz with the shared RAM and its interrupts sitting between them.
The sprite hardware is where the board asks for more than the rest of the platform. One of its two sprite planes does not simply cover what is behind it. A registered PAL decodes two bits carried alongside every sprite pixel into three different treatments, and the pixel is either drawn opaque, averaged with the pixel behind it at fifty percent through a bank of adders, or handed to a gain circuit. That third path is the interesting one. Three PROMs, one for each color gun, take the sprite's value as a coefficient and return a scaled version of the pixel behind it rather than a color of their own. The curve those PROMs hold is exponential, sitting at unity in the middle of its range and running from a quarter at the bottom to four times at the top, so values below the midpoint darken what is behind them and values above it brighten. The helicopter shadow that crosses the ground at the end of the first mission and the flashes on the mission briefing screens are the same circuit working at opposite ends of one curve.
Current emulation draws two of those three modes the same way, as a flat fifty percent blend, and its own source comments are candid about not being sure the effect is right. It also cannot reach the upper part of the palette the gain mode uses, so the brightening half of the curve has nowhere to land. The core carries the full two-bit mode from the sprite data through to the mixer, implements all three paths, and loads the gain PROM three times over, once per gun, so the shadows fall the way they do on the board and the flashes are lit from the same table the hardware uses. Below is an example of current emulation:
Layer priority is the second thing the board settles in hardware that emulation has been approximating. Which of nine possible sources wins a given pixel, the four playfields, the object plane in each of its four priority bands, and the mixed sprite plane, is decided by a 2048 by 4 PROM at 10M. It is not a table of colors, it is combinational priority logic baked into a PROM, addressed by which sources are present at that pixel, the object's priority band, and the two-bit priority mode the game writes. Below is an example of the core/PCB:
Between the sprite mix and the priority PROM, two long-standing bugs in Thunder Zone's emulation are corrected in the core, both of them resolved the way the board resolves them.
Core Options:
The MiSTer core includes video settings for aspect ratio, vertical scaling and cropping, scandoubler effects, and H/V positioning and sync adjustments. Audio settings provide separate toggles for the OPN's FM and PSG outputs, the OPM, and the two M6295 PCM channels, each with its own volume control, five in all, covering the full sound section. Arcade dip switches are directly accessible from the OSD.
Game settings include per-player auto-fire with adjustable rates, mapping options for all four players, and a synced mapping mode that mirrors Player 1's layout across the others, with the third and fourth player controls shown when the cabinet is set for four.
Cheats are accessible from the OSD and include per-player infinite energy, infinite bombs, invincibility, and rapid fire, along with a stage select covering missions two through five and a per-player weapon select that cycles the game's seven weapons: the machine gun, shotgun, heavy machine gun, bazooka, flame thrower, homing missile, and anti-tank gun. The stage select and the weapon select are custom additions, derived from the program code as these cheats did not exist previously.
The Pocket core provides auto-fire with per-button targeting and adjustable rates. Its cheat set is a single-player subset: stage select, infinite energy, infinite bombs, invincibility, rapid fire, and the weapon select. Arcade dip switches available on Pocket are Game Difficulty and Mode Select, which sets the cabinet for two or four players. The core supports six sets, four under the Thunder Zone name and two as Desert Assault, and the Pocket build carries four of them, with the two dedicated four-player sets remaining on MiSTer.
History, Gameplay, and Regional Information:
Thunder Zone reached arcades in 1991, developed and published by Data East, released under that name in Japan and the rest of the world and in the United States as Desert Assault. It follows 1988's Bloody Wolf, and two of its four commandos carry over from that game, Snake and Eagle, joined here by Monkey and Spider. It was produced by Naomi Susa, who would go on to direct Wizard Fire / Dark Seal II, and designed by Yoshiaki Honda, with a score from Data East's in-house sound team Gamadelic, composed by Hiroaki Yoshida, the team's founder, working under his Maro handle, and Akira Takemoto as Raika, the same pair behind Rohga. The soundtrack was given its own album that August under the Thunder Zone name.
The game is a run-and-gun viewed from a raised angle, with up to four soldiers working through the same battlefield at once. An eight-way stick moves and aims, one button fires the weapon in hand, and the other spends a bomb that clears what is on screen. Each commando starts with a different gun and can trade it for what is left behind along the way, there are seven weapons in all. A health bar takes the place of the one-hit death the genre usually runs on, and the missions break up the walking with snow skis, jeeps, and hover tanks. Five missions carry the campaign, with set pieces built around searchlights, poison gas, and a boss carved into the side of a rock face, and training segments between them. The explosions are where the hardware shows off, filling the screen with smoke and fire when something large goes up, and enemies caught by the flame thrower burn and spin before they drop.
The two versions differ by more than the name. Desert Assault was retitled for the American market while the Gulf War was in the news, and the second mission, set in Antarctica in the Japanese release, was reskinned as desert to match. The English version also gives the first mission a hostage to bring out, an ambassador in place of the doctor the Japanese release sends you after. The game did well on release, placing fourth on Game Machine's table cabinet chart in June 1991, and it has held its reputation since as one of the better overhead run-and-guns of the period, mentioned in the same breath as Capcom's Mercs, with the recurring complaint being how quickly it is over.
Updates:
Thunder Zone is the next public release in wave 2 for Data East's DECO-16 platform, and it leaves very little left to do with this platform. What remains is an update to Boogie Wings, which carries its Pocket release with it, and clearing a minor MRA / Dipswitch issues reported for Vapor Trail and Rohga.
There is still one more title remaining, Funky Jet. I still haven't fixed the protection / sprite DMA issue with this game and it may have to wait until the DECO 146 has been traced from it's die shot, I'll make one final attempt to resolve the issue over the weekend. I'll be making changes to the architecture based on improvements brought over with Thunder Zone and audio filtering next month.
The files have been pushed to GitHub, update_all, and pupdate for distribution. Please allow the updaters time to sync. Other update information shared in the previous posts can be found in their update sections at the links below:
https://www.patreon.com/posts/165306904
https://www.patreon.com/posts/165401081
https://www.patreon.com/posts/165413183
https://www.patreon.com/posts/165417337
https://www.patreon.com/posts/165488642
https://www.patreon.com/posts/165519398
https://www.patreon.com/posts/165528115Disclaimer: All product names, trademarks, and registered trademarks mentioned are the property of their respective owners. "Analogue", "Analogue Pocket", "MiSTer", "MiSTerFPGA", "OpenFPGA", "Data East", "Capcom", "NEC", "Hudson Soft", "Motorola", "Yamaha", "OKI", and all derivative works are trademarks, registered trademarks, or copyrighted materials of their respective holders. Use of these names does not imply endorsement or association with this post. All rights reserved to their respective owners. This post is for educational and research purposes only.
Comments (4)
Great game for 4 player's fun. Thanks team!
Hi! Do you have any plans to add User I/O DB9/DB15 support to your MiSTer cores? Since the core source code isn’t publicly available, the MiSTer-DB9 project can’t add this support independently, so it would need to be implemented on your side. It would be really useful for arcade cabinets using direct DB15 controls. Thanks!
Wow! On fire, this is on update all?
Yes. It can take up to an hour to sync. Files are available in the news channel as well.
