Coin-Op Collection Presents: DECO-16 (Wizard Fire / Dark Seal II)
Tonight's release for the Analogue Pocket and MiSTerFPGA platforms is the next entry on the DECO-16 platform. Wizard Fire, known in Japan as Dark Seal II, is a fantasy hack-and-slash for up to two players, 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)
Wizard Fire is one of the most graphically involved boards on the platform. It runs two tilemap generators across four playfields and two separate sprite engines, one of the sprite planes drawn as a translucent overlay, with a second translucent layer available on the tilemaps, and it composites all of it back to front in a single pass. A HuC6280 drives a YM2151 and two OKI samplers for sound, and a DECO 104 handles protection and I/O, in a two-player cabinet.
This post covers a technical overview of Wizard Fire on DECO-16, the work the board required, and the game itself.
Overview:
Wizard Fire runs on Data East's DECO-16 hardware (PCB DE-0379), driven by a Motorola MC68000 (DECO Custom 59) at 14 MHz, with no second processor on the main bus and no encryption on its program ROM. The sound system uses a HuC6280 (DECO Custom 45) at 8.00 MHz driving a YM2151 (OPM) at 3.579 MHz and two OKI M6295 ADPCM samplers, one at 1.000 MHz and the other at 2.000 MHz. There is no YM2203 on this board, and the YM2151's CT1 and CT2 pins select the sample bank on each OKI. 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, and two DECO 52 sprite engines draw two sprite layers, one of which is alpha-blended against the scene. A DECO 104 handles the board's protection and I/O. The palette holds 2048 entries in 24-bit RGB, eight bits per channel.
Development Challenges:
The heart of the work on Wizard Fire is its compositing. The board puts more on the screen than anything else on the platform, four playfields across two tilemap generators and two separate sprite engines, each sprite engine reading its own display list, and it makes two of those layers translucent, one sprite plane and one of the tilemap planes, drawn as half-strength overlays that mix into whatever sits behind them rather than replacing it.
Every line, all of it has to be stacked in the right order, nine layers deep from the backdrop up to the front playfield, and each translucent layer needs the pixel behind it read back so the two can be averaged rather than keyed against a flat color. The core does this in the raster pipeline as the line is drawn. The emulation reference assembles the same image with a per-pixel software loop over temporary buffers that its own author calls not amazingly efficient, and a second emulator keeps a special case just for this game. On the board it is one pass, and the core matches the board.
One more detail of the picture comes from how the board handles its palette. Wizard Fire rewrites its entire palette at once during scene transitions, and on the board those changes take effect live as the frame is drawn. Emulation commits them at vertical blank instead, so the whole palette swaps in a single clean step. The core draws it live, the way the board does, rather than holding it to the blank.
The sound section runs a HuC6280 with a YM2151 and two OKI samplers, and the way the two samplers reach their banks is a piece of the board itself. Rather than a dedicated I/O port, the sample bank on each OKI is selected by one of the YM2151's CT output pins, CT1 for the first and CT2 for the second, so the chip that plays the music also switches the banks for the effects. The core follows those pins out to each sampler's bank register, the same wiring the board uses.
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 OPM and two M6295 PCM toggles, each with its own volume control, 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 Player 1 and Player 2, and a synced mapping mode that mirrors Player 1's layout to Player 2.
Cheats are accessible from the OSD and include infinite credits, along with per-player infinite hearts, maximum magic, all items, and invincibility.
The Pocket core provides auto-fire with per-button targeting and adjustable rates. Its cheat set is infinite credits, infinite hearts, maximum magic, all items, and invincibility. Arcade dip switches available on Pocket are No. of Lives, Game Difficulty, Magic Gauge Speed, and Attract Mode Sound.
The core supports four sets, three Wizard Fire revisions and the Japanese Dark Seal II release.
History, Gameplay, and Regional Information:
Wizard Fire reached Japanese arcades in May 1992 as Dark Seal II, with the overseas release following the same year as Wizard Fire. It was directed by Naomi Susa, who had programmed the first game and stepped up to lead the sequel, with programming by Soichi Akiyama and a soundtrack from Data East's in-house sound team Gamadelic, led by Tatsuya Kiuchi with Tomoyoshi Sato and Mihoko Ando. The game is the sequel to Data East's 1990 arcade title Dark Seal, known overseas as Gate of Doom, and continues its Gauntlet-style fantasy formula.
The game is a fantasy hack-and-slash for one or two players at once, viewed from above, cutting through waves of monsters across a handful of stages. Each player picks one of five heroes, a knight, a wizard, a bard, a dwarf, and an elf, each with its own weapon, speed, and resistances, and an eight-way stick aims while a button attacks in the direction the hero is facing. You generally cannot move and attack at the same time, so it plays as deliberate crowd control rather than a run-and-gun.
The hook is the magic. A second button casts from a meter that fills as you kill, and rather than firing a projectile it transforms the hero outright, into a spinning tornado, a hovering cloud that fires lightning, a wall of flame, even a treasure chest that hands out power-ups, and holds that form until the meter runs down. The setting is the year 355 in the Empire of Gaul, where the dark sorcerer Volov, a villain carried over from the first game, is claiming a hundred and one innocent lives to unlock a Dragon Shrine and raise an undead army, and the run ends at his floating castle.
Across regions the game is the same underneath, with the Japanese Dark Seal II and the overseas Wizard Fire differing mainly in title and in whether the text and voice clips are Japanese or English. Data East chose the unrelated Wizard Fire name abroad to distance the game from its poorly received predecessor, which is why the West saw Gate of Doom and then Wizard Fire while Japan got Dark Seal and Dark Seal II. It did reasonably well, placing ninth on Game Machine's table-unit chart in mid-1992, and it has kept a cult following since, remembered for its bright sprites, its transformation gimmick, and its voiced, faintly ridiculous presentation, even as its later bosses lean on repetition and its smaller enemies can be hard to pick out.
Updates:
Wizard Fire is the next public release in wave 2 for Data East's DECO-16 platform. It runs on the same Rohga-family board as Wolf Fang, still ahead in the wave, so the two-sprite-engine compositing and DECO 104 protection built here carry straight over to that board.
The remaining wave 2 titles are:
Thunder Zone / Desert Assault (1991)
Wolf Fang: Kuhga 2001 / Rohga (1991)
Funky Jet (1992)
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/165187605
https://www.patreon.com/posts/165306904
https://www.patreon.com/posts/165413183
https://www.patreon.com/posts/165417337
https://www.patreon.com/posts/165488642
Disclaimer: All product names, trademarks, and registered trademarks mentioned are the property of their respective owners. "Analogue", "Analogue Pocket", "MiSTer", "MiSTerFPGA", "OpenFPGA", "Data East", "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 (2)
Fantastic release - thank you Coin-Op Collection for the amazing work!
You are on fire today!
