Coin-Op Collection Presents: Mystic Warriors (Konami GX128), Metamorphic Force (Konami GX224), and more...
Today's release for the MiSTerFPGA platform is a pair of licensed betas, Mystic Warriors and Metamorphic Force, both from 1993 and both running on similar hardware designed by Konami. There is also an update for G.I. Joe on the Analogue Pocket, bringing its graphics pipeline in line with the MiSTer release.
Mystic Warriors: Ikari no Ninja / Mystic Warriors: Wrath of the Ninjas (1993)
Kyukyoku Sentai Dadandarn / Monster Maulers (1993)
Violent Storm (1993)
Metamorphic Force (1993)
Martial Champion (1993)
Gaiapolis (1993)
Mystic Warriors is a four-player hack and slash with five ninja to pick from. Metamorphic Force is a four-player brawler whose fighters transform into anthropomorphic beasts.
The two boards are not the same design, but they are built from the same set of Konami custom parts; the four tile layers and zoomed sprites are at 5 bits of color per pixel, a priority encoder feeding a separate blending chip in place of the single mixer G.I. Joe used, and two PCM chips running in stereo.
This post covers a technical overview of both games, the work each board required, the games themselves, and the G.I. Joe update. The initial release covering G.I. Joe (GX069) hardware and it's update in detail are located here:
https://www.patreon.com/posts/162913259/
https://www.patreon.com/posts/166711268/
Licensing:
Mystic Warriors and Metamorphic Force are distributed through the Coin-Op Collection licensing portal, which serves both MiSTerFPGA and Pocket from the same dashboard. Patrons need to register their device and generate a key before launching either core. Step-by-step instructions and the FAQ are available on the Help page.
Both cores are beta releases and the Patron tier covers them. This release is being used to test the new alpha and beta handling in update_all, so Mystic Warriors carries the beta flag in the distribution database and Metamorphic Force carries the alpha flag. Please follow the instructions below to enable update_all access:
The option will be exposed in the update_all GUI in a future update and the flags are opted into from downloader.ini file. Find the Coin-Op Collection section, or add it if it is not there, and set the filter so neither flag is excluded:
[Coin-OpCollection/Distribution-MiSTerFPGA]db_url = https://raw.githubusercontent.com/Coin-OpCollection/Distribution-MiSTerFPGA/db/db.json.zip
filter = [MiSTer]
That pulls both cores along with the public releases. Excluding the alpha flag instead takes Mystic Warriors and leaves Metamorphic Force behind:
filter = [MiSTer] !coinop-collection-alphaWith no filter line at all the database excludes both flags, which is where everyone sits today. I've also included the files in today's post in case there are any issues.
Mystic Warriors (Konami GX128):
Hardware Overview:
Mystic Warriors runs on Konami's 68000 based arcade hardware (GX128), driven by a Motorola 68000 at 16 MHz, with a Zilog Z80 at 8 MHz handling sound. The audio is generated by two K054539 chips, each an eight-channel ADPCM sampler clocked at 18.432 MHz and running at a 48 kHz sample rate, mixed together in stereo.
The video system outputs 288x224 in a horizontal orientation at 59.185 Hz. Graphics are rendered by a set of Konami custom ICs; a K056832 drives four 8x8 tile layers, and a K053246 and K053247 pair handles the zoom sprites, with both the tiles and the sprites carrying five bits of color per pixel.
The K055555 resolves priority between them and hands the result to a K054338, which applies alpha blending, shadow and brightness, where G.I. Joe used a single mixing chip for the whole job. The palette holds 2048 entries in 24-bit RGB, eight bits per channel, an ER5911 EEPROM stores settings, and the board supports up to four players.
Development Challenges:
MAME carries every set of this game with an imperfect graphics flag. FBNeo also has graphical issues for Mystic Warriors. The majority of issues in emulation are resolved in this beta. Before saying the GFX pipeline is complete, there is one remaining issue to be fixed that I don't believe most will spot and I need to do another side by side comparison of the PCB and the core.
Bus Decode:
The 056371 is a 24-pin PAL sitting on the row above the 68000, between the four work RAM chips and the four program ROMs. Decoding the PAL gives the whole memory map: eight chip selects, a DTACK qualifier and a region enable. Every address the game uses is claimed by exactly one select, and every gap the part leaves undecoded is genuinely empty and not mapped.
The useful part is what the selects cover. Each one asserts across its entire window while the device inside answers only within its own size, so the rest of that window is a mirror of the device. Work RAM mirrors sixteen times across a megabyte, sprite RAM eight times, tilemap VRAM and the tile read-back thirty-two times each, and the palette sixty-four times.
The core decodes the full windows now, the way the PAL does. MAME decodes the device size and returns zero everywhere else, which is why its driver carries a hedge about writes to the low byte of 0x410000 and disables an interrupt over it. The PAL decodes 0x410000 as the second mirror of sprite RAM, so a write there lands at sprite RAM offset zero on hardware and on nothing in emulation. Modeling the proper decode assisted with fixing stuck sprites on screen in emulation.
Bus Termination:
On sibling boards DTACK is an AND of four terms. The first is the PAL's own fast path, which the available schematics for this hardware type label HIDOUKI, and that is the whole point of the signal; it is the romanization of the Japanese for asynchronous, marking the accesses that terminate on their own without waiting for anything else on the board. I was able to trace the GX128 PCB back and measure timings against the PAL decode.
The other three terms are the K054338's own acknowledge, a video-slot acknowledge, and a tap off a delay chain. HIDOUKI covers program ROM and work RAM outright, and sprite RAM and the register block conditionally. It does not cover tilemap VRAM, the tile read-back or the palette, so those accesses wait for a video slot, and of the fifteen devices in the register block the K054338 is the only one held off the fast path.
Neither MAME nor FBNeo models proper bus termination; both run the 68000 at a nominal 16 MHz with no wait states. That makes hardware slower than emulation on video-side accesses, not faster, which settles a question worth settling; the four-player slowdown is the game's own workload, not anyone's bus model. The core measures 24 system clocks per bus cycle against a 24-clock architectural floor, with no wait states charged in steady state, so there is nothing left to recover on that path either.
Interrupts:
The sibling boards feed an eight-to-three priority encoder from four sources; the CRTC, sprite DMA, the K053250 and the K055550. Mystic Warriors has neither of the last two, so two of those inputs have no source on this board and the sibling map does not transfer. What the board takes is the CRTC frame event at level 4 and sprite DMA at level 2, with the relative priority the siblings use, both gated by the game's own interrupt enable.
Display Window:
The K053252 is programmed by the game at runtime and every geometry register is written, so the numbers it receives settle the window. Horizontal total 384, front porch 18, back porch 46, sync width 32, leaving 288 active. Vertical total 264, front porch 17, back porch 15, sync 8, leaving 224 active. Exactly 288x224.
Anything the sprite engine leaves in its line buffer outside that region is never displayed, because the CRTC does not assert active display there. Emulator renderers draw into a larger bitmap and crop, so widening the crop reveals content the board never showed.
K056832 - Tile Generator:
Five bits of color per pixel (5bpp) means every tile carries 32 colors rather than 16, and the fifth plane arrives on four fetch lanes of its own alongside the four 32-bit lanes the first four planes use. The four layers are drawn as four instances, each with its own VRAM instead of one shared pool, so the 68000's writes and the display's reads stop queueing behind each other, and each layer's row is fetched during horizontal blank into a line buffer.
K053246 and K053247 - Sprite DMA / Sprite Generator:
The sprites are 5bpp as well, with their own fifth-plane lane. The renderer uses the structure that corrects G.I. Joe from emulation; the line buffer is split into even and odd halves so two pixels are written per clock, shadows resolve first-wins per dot, and the top color index of a sprite, 31 of its 32, is skipped in the mix rather than drawn. Sprite placement is also correct and matches the PCB.
K055555 and K054338 - Priority Encoder and Color Blender:
The palette address for a tile dot is assembled by concatenation, the layer's color field above the tile's five-bit color index, with the lowest bit of that color field treated as the fifth plane it actually is.
Adding the two together instead, which is what four-bit tiles allow, overlaps them at five bits: the index's top bit lands on the color field's lowest bit, and the carry can leave the bottom five bits of the address at zero. The K055555 reads an index of zero as a transparent dot, so those pixels get dropped rather than drawn.
The per-tile mix code is carried through as a code, two bits per layer, rather than reduced to a single flag, and it selects which blend the K054338 applies. Shadow is applied after the blend rather than before it, additive blending matches the reference, and the backdrop is excluded from both.
K054539 - PCM Audio:
Beyond standing up the two K054539 chips and running them in stereo, the audio work on Mystic Warriors so far is minor. The two voice groups do not sit at the same level on this board, the upper four voices run at twice the level of the lower four, a ratio that no single scalar applied after the voices are summed can produce, so it is set per voice inside the chip.
A key-on always restarts a voice here, which matters because the chip compares against the last start address the CPU wrote rather than the live play position, and an unchanged pointer otherwise reads as no change and lets the voice run on past its end marker into whatever samples follow it in the ROM. The Z80's power-on self-test also reads the sample ROM back through the chip, so that path is wired as well.
I was waiting for some Rigol equipment to arrive before continuing to work on the K054539. It arrived while I was working on Metamorphic Force, and that release covers the work done in its own section below.
Metamorphic Force (Konami GX224):
Hardware Overview:
Metamorphic Force runs on Konami's 68000 based arcade hardware (GX224), driven by a Motorola 68000 at 16 MHz, with a Zilog Z80 at 8 MHz handling sound. The audio is generated by two K054539 chips, each an eight-channel ADPCM sampler clocked at 18.432 MHz and running at a 48 kHz sample rate, mixed together in stereo.
The video system outputs 288x224 in a horizontal orientation at 59.185 Hz. Graphics are rendered by a set of Konami custom ICs; a K056832 drives four 8x8 tile layers at five bits of color per pixel, a K053246 and K053247 pair handles the zoom sprites at four bits, and a K053250 adds a further layer built a scanline at a time, with its own scroll and rotation.
The K055555 resolves priority across all of them and hands the result to a K054338, which applies alpha blending, shadow and brightness. The palette holds 2048 entries in 24-bit RGB, eight bits per channel, an ER5911 EEPROM stores settings, and the board supports up to four players.
Development Challenges:
MAME carries every set of this game with an imperfect graphics flag as well. Two things separate it from Mystic Warriors; it has a layer no other game in this family really uses, and its tilemap is large enough to change where the core keeps it compared to the architecture designed for G.I. Joe and Mystic Warriors.
I've completed the GFX pipeline in full for Metamorphic Force, todays release is missing one effect of shadows blending on stage 6 and the reflection portrait offsets. I've rectified both issues, but it will be included in the next release as I need to model everything to be compatible with both the MiSTerFPGA and PocketFPGA platforms and am already a day behind schedule with the release.
Below are some examples of MAME versus the core/PCB; the final boss effect cannot be emulated and matches the PCB. Metamorphic Force can tear on real hardware with sprites in the HUD and on the final iteration of the stage 6 boss.
Tile Map in DDR:
The K056832's tile map is one flat space of 0x11000 words, sixteen tile pages plus the extended line scroll page, and held in block RAM it is the largest single array in the design. It lives in DDR here instead, with two caches in front of it, one shaped for the display and one for the 68000.
The display side works because a whole line comes out of a single 8x8 tile row; the vertical source is constant across the line, so a layer reads at most four page columns of one row per line and the same words serve the next eight lines.
Each layer gets a four way store of exactly that shape, and a way answers only for the columns it actually holds, so a layer that moves or changes shape misses and reloads rather than reading a column that was never filled.
K053250 - Line Video Control Layer:
The K053250 draws one bitmap layer in which every output scanline is scrolled, zoomed, color selected and clipped on its own, from a packet held in the chip's line RAM, with its pixels coming from a 4bpp graphics ROM. It does not join the tile ladder; its output goes into the K055555's sub input. Metamorphic Force is the only game on this hardware that genuinely uses the part.
The core carries the whole chip which was written from scratch and matches the PCB perfectly. The K053520 register file, the line RAM with the DMA that copies it and flips the display page on the falling edge of a control bit, the orientation controls that swap X and Y to run the layer vertically and flip it, and the source clipping.
It also carries a ROM cache and a prefetch in front of the graphics fetch, because the layer needs a new source row every scanline and a stalled fetch there shows immediately, and the composite into the sub input handles the layer's own blending and opaque cases. Below are some comparisons of MAME versus the core/PCB. The LVC layer has several issues in emulation.
K056832 - Tile Generator:
The tiles are 5bpp, so the fifth plane arrives on four fetch lanes of its own alongside the four 32-bit lanes the first four planes use. This game drives per line scrolling harder than Mystic Warriors does; the scroll table is read by row rather than by line, with a row index and a row span, and more than one row can be in flight at once. The line buffer fill reads ahead so a row boundary does not stall it, and rows are reused across the lines they cover rather than refetched. Below are some examples of the graphical issues present in MAME versus the core/PCB.
K053246 and K053247 - Sprite DMA / Sprite Generator:
The sprites here are 4bpp rather than five. Shadows carry a two bit code, and the shadow request is split away from the solid pass so a shadow dot asks for a shadow rather than painting a color, with the shadow's priority gated and aligned against the layer it lands on.
The renderer uses the same throughput structure as the other two cores, the line buffer split into even and odd halves for two pixels per clock and an attribute cache cleared per frame.
K055555 and K054338 - Priority Encoder and Color Blender:
The palette is read live, once per dot, so a word the 68000 writes during active display changes every remaining dot of that field. Writes issued while the display is active are queued and drained during vertical blanking, with a forward window that merges still pending words over the array read so a read back returns the word just written. The 68000 is held only for a read the window cannot cover, or a write when the queue is full.
On the blend side the alpha levels are clamped based on PCB measurements, additive blending matches, and the sprite layer carries its own alpha path into the mixer alongside the tiles. Below are some examples of the graphical issues present in MAME versus the core/PCB.
K054539 - PCM Audio:
Both K054539s run with their echo engines enabled, each with a delay line of its own, because the real chips have one and this board uses it on both. When I finish the audio path, the delay will be measured and certain key-on samples will no longer have the echo effect. This also needs to be done for Mystic Warriors and any additional entry for Konami that uses the K054539.
Key-on behavior needed the same correction Mystic Warriors did. Both chips re-latch the start address every time a voice is keyed on, and without that a voice re-keyed at an address it already held is never restarted, so it resumes past its end marker into whatever samples follow it in the image and walks further along on every repeat.
The rest of it is balance. Music and effects share the same voices on this board and they do not come off it at the same level, so the per-voice gains in the core are set from measurements taken off the PCB rather than from a flat sum of the two chips. You will find the audio for Metamorphic Force to be quite different than MAME or FBNeo.
The remaining work is still in progress and more will follow in the next release which will complete the audio work for G.I. Joe, Mystic Warriors, and Metamorphic Force. The next release post will be audio centric in addition to releases for the PocketFPGA platform.:
Core Options:
Both cores include video settings for aspect ratio, vertical scaling and cropping, scandoubler effects, refresh rate, and H/V positioning and sync adjustments. Audio settings cover the mix, mono or stereo, and then each K054539 separately, an enable and a volume control with four steps from 100% to 175% for each chip, so either can be isolated. Arcade dip switches are directly accessible from the OSD, and the service menu has an entry of its own beside them.
Game settings carry mapping for all four players, a synced mapping mode that mirrors Player 1's layout across two, three, or four players, and per-player auto-fire covering either button or both, each with its own rate.
Cheats are accessible from the OSD once enabled. Mystic Warriors carries a stage select covering all nine stages, along with per-player infinite lives, infinite energy, invincibility, and a firepower select with three levels above off, for all four players. Metamorphic Force carries a stage select covering its six stages and both bonus rounds, invincibility, and per-player infinite lives and infinite energy for all four players.
Each core supports all known rom variants. Mystic Warriors covers the World release, two Asia revisions, the Japanese release and the US release. Metamorphic Force covers two World releases, an Asia release, the Japanese release and the US release. The PCB reference used when implementing the core are the World version for Mystic Warriors and the Japanese version for Metamorphic Force.
History, Gameplay, and Regional Information:
Mystic Warriors:
Mystic Warriors reached arcades in February 1993 in Japan and April 1993 in North America, developed and published by Konami, released at home as Mystic Warriors: Ikari no Ninja and everywhere else as Mystic Warriors: Wrath of the Ninjas. It was designed by Hideyuki Tsujimoto, with a score from Junya Nakano and Yuji Takenouchi that was published that August on the two-disc Konami Amusement Sounds '93: Summer Edition.
The game is a four-player hack and slash with five ninja to choose from, Spyros, Keima, Kojiro, Brad and Yuri. An eight-way stick moves and aims, one button attacks and the other jumps, and every character throws an unlimited supply of shuriken with a close-range weapon for anything that gets near. The stages are built in layers, so a jump moves between heights and a slide gets under fire, and a life gauge takes four hits rather than one. Nine stages carry the game, each ending in a boss, with bonus points afterward scored on how much of what you threw actually landed.
The setting is a future New York run by the Skull Enterprise. One of the five ninja is taken immediately after the character select, the remaining four fight through to reach them, and the one they rescue dies freeing the group from an electric trap, which is what the rest of the game is about.
Game Machine placed it ninth on its chart of the most successful arcade units in April 1993. The US release carries the Winners Don't Use Drugs screen and the game is otherwise the same in every region. It never received a home conversion at the time; Hamster brought it to modern consoles through Arcade Archives in December 2023 with PCB accuracy not present in emulation until now.
Metamorphic Force:
Metamorphic Force reached arcades in August 1993, developed and published by Konami. It was produced by Kazu Kouzuki, Y. Nishimura and Masahiro Inoue, programmed by Gen Suzuki, Tetsuya Wada and Naotaka Yoshikawa, with art from Yuji Asano, Soichiro Kitai and Satochan, and a score from Mutsuhiko Izumi and Mariko Egawa.
The game is a four-player brawler built around turning into something else. Each of the four fighters is a guardian who takes a beast form, and picking up a golden statue triggers the change, which clears every enemy on screen as it happens rather than simply granting the form. Six stages carry the game, with bonus rounds after the second and the fourth, and the enemies you work through are creatures rather than street thugs, frogmen and elephant men among them. The setting is 199X, with King Death Shadow returned to take the world and the goddess Athena waking four ancient guardian souls to stop him.
The regional differences run deeper than most. The Japanese release gives each fighter a health bar, while the US and European releases replace it with a numeric life count that runs down on its own, so it works as a timer as well as a health meter. The fifth stage differs too: the US version turns it into a boss rush, pairing bosses you have already beaten before the stage's own, where the Japanese version fights only the stage boss. Japan also subtitles the bosses when they speak, the stained glass artwork differs between versions, and the US release carries the Winners Don't Use Drugs screen.
The game placed seventeenth on the Japanese arcade chart in September 1993 and nineteenth in North America that December, and it sold well across Europe into early 1994. It was overlooked next to Konami's better known titles at the time and has become a cult favorite since. Like Mystic Warriors it never received a home conversion, and Hamster brought it to modern consoles through Arcade Archives in October 2024 with PCB accuracy not present in emulation until now. The only noticeable difference from hardware is the stage 6 hallway effect that shows sunlight shining through the stain glass windows which renders correctly in the core.
G.I. Joe (PocketFPGA Update):
The Pocket build now runs the same graphics pipeline the MiSTer release does. The sprite renderer has the split line buffer, writing two destination pixels per clock, and finishes lines that let it work ahead when one runs long.
Both per-line scroll paths are in, so the layer that takes a new scroll position every scanline reads its table from where the game actually keeps it. The four tile layers have their own VRAM instead of one shared pool, and the line buffer fill, its handshakes and its guards came across with them.
Making that fit meant reworking the PSRAM path underneath it. Both PSRAM buses run 128 bits wide now, and the consumer's address generation, its data path and its cache metadata were rebuilt in forms that return the same bytes while costing the device less logic. Tiles still read from one chip and sprites from the other, so the two continue to fetch at the same time.
What has not come across yet is the K053251 shadow preset, the K054539 gain work, and the EEPROM and service menu changes from the MiSTer release. Those follow in the next Pocket build along with releases for both Mystic Warriors and Metamorphic Force.
Updates:
The next release will include PocketFPGA support and closes out what is left on this hardware that is currently in development. The remaining architectural changes will be completed, any outstanding graphics issues will be resolved, the service menu support for volume control / mask rom / vram checks will be complete, and the K054539 work will be completed across all three cores, G.I. Joe, Mystic Warriors and Metamorphic Force.
Past that, I have picked up Violent Storm, Gaiapolis, and Martial Champion boards to finish off this round of Konami titles in similar fashion thanks to your continued support. Without it none of this would be possible. I'd especially like to thank the Patron Plus members who followed along with the development on Mystic Warriors and Metamorphic Force.
On distribution, update_all is getting an update that puts the alpha and beta selection in the GUI, so the ini edit above becomes a stopgap rather than the way it works, and pupdate integration will follow later this week. The files are attached to this post as well if you would rather install by hand but I prefer you use the update_all method for testing distribution. Please allow time for the updater to sync before attempting to download.
Comments (5)
Wow! More 4 player's games. And in the future Violent Storm!!! Great work team!!!
Amazing and unexpected - thank you!!! Very happy to be a supporter as always.
Furrtek completed the k054539 chip netlist a couple months back, will this further help and improve TMNT: turtles in time for mister?
That chip isn't used in TIT. Our TIT is 1:1 to the PCB.
thank you!!!!!!!!
