Today's release for the Analogue Pocket and MiSTerFPGA platforms covers the second entry in Data East's DECO-8 platform. Cobra-Command is a horizontally scrolling helicopter shooter built on Data East's 8-bit custom chipset, the same hardware family behind:
Last Mission (1986)Shackled / Breywood (1986)Gondomania / Makyou Senshi (1987)Garyo Retsuden (1987)The Real Ghostbusters (1987)Meikyuu Hunter G (1987)Captain Silver (1987)Psycho-Nics Oscar (1987)Super Real Darwin (1987)Cobra Command (1988)
Released in September 1988, Cobra-Command ranked as the 6th most successful table arcade unit in Japan on Game Machine's October 15, 1988 chart.
This post covers a technical overview of Cobra-Command on DECO-8 along with updates on the DECO-8 project.
Licensing:
Cobra-Command is the first Analogue Pocket release distributed through the Coin-Op Collection licensing portal, which serves both MiSTerFPGA and Pocket from the same dashboard.
Pocket patrons need to register their device and generate a key before launching the core. Step-by-step instructions and the FAQ are available on the Help page. More information can be found by clicking here and here.
A public release for Cobra-Command is slated for June 2nd, pending feedback from Patron supporters during the beta cycle.
Later this week I'll post an update on how the Coin-Op Collection license will integrate with pupdate. If you're a Pocket user with the means, please consider sending a one-time Ko-fi to Josh.Josh has maintained the openfpga-library catalog that pupdate and other updater tools pull from since August 2022. I've been a monthly supporter since 2025, and find it unfortunate that more developers releasing cores through that catalog haven't done the same. His ko-fi is for donations, it is not an expectation, but if you've gotten use out of pupdate or other updaters, a few dollars his way is well-earned.
Overview:
Cobra-Command runs on the DECO-8 hardware (PCB DE-0298), driven by a single Motorola MC6809E at 1.5 MHz. A Rockwell R65C02 sound CPU at 1.5 MHz manages the audio system, which pairs a YM2203 (OPN) for FM and PSG output with a YM3812 (OPL2) at 3 MHz for additional FM synthesis. Audio output is mono.
The video system outputs 256x240 at approximately 57.444 Hz in a horizontal orientation. Graphics are rendered by three custom ICs: the BAC06 tilemap generator handles 16x16 4bpp tile layers with priority grouping, the MXC06 handles 16x16 4bpp sprites with multi-width and multi-height support, and the RM-C3 provides resistor-weighted palette conversion. A fixed 8x8 2bpp character layer sits on top for HUD elements. The palette holds 256 entries across characters, sprites, and tiles.
Development Challenges:
The R65C02 sound CPU is handled by x65c02, an instruction and bus-cycle accurate Verilog implementation of the Rockwell R65C02 with all 178 CMOS opcodes, the Rockwell bit-manipulation group, and the CMOS bug fixes for the JMP indirect page wrap and BCD flag generation. It is part of the same family of cores as x6502, the NMOS 6502 implementation that already covers the encrypted DECO 222 path on Psycho-Nics Oscar by wrapping the data bus in a bit-swap on opcode fetch. Cobra-Command does not use the DECO 222 and runs the sound CPU unencrypted, which made it the verification vehicle for the R65C02 mode against original hardware.
The BAC06 tilemap generator, MXC06 sprite engine, and RM-C3 palette decoder are reused from the Psycho-Nics Oscar release, with Cobra-Command verified against my own PCB and schematic. The board instances two BAC06s in parallel: one drives the background tilemap, and the second drives a foreground tilemap that draws on top of the background where it has visible pixels. The priority chain in front of the palette RAM stacks the layers from back to front as background, low-priority sprites, foreground, high-priority sprites, and finally the character layer for HUD elements. Sprite priority against the foreground is driven by bit 2 of each sprite's colour attribute.
Cobra-Command uses a single MC6809E with no co-processor or cross-IRQ. The video output's vertical blank reaches the main CPU's NMI input through a small flip-flop and NAND gate on sheet 8 of the schematic, and the IRQ and FIRQ inputs are tied off.
Attached to this post is the full Cobra-Command schematic. It is not commonly published online; I purchased a copy and used it to verify the core against my Cobra-Command PCB. With this release, x65c02 is also being open sourced publicly for the first time, joining x6502 in the Coin-Op Collection Development-Modules repository on GitHub. Both are published under CC BY-NC 4.0.
Core Options:
The MiSTer core includes video settings for aspect ratio, vertical scaling and cropping, scandoubler effects, and H/V positioning and sync adjustments. The refresh rate toggle is disabled while the core is in development.
Audio settings provide separate OPN FM, PSG, and OPL toggle and volume control. 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 cheats accessible from the OSD. Cheats include a five-stage stage select with three-scene granularity, infinite credits, P1 and P2 infinite lives, max speed, max fire power, max missile power, always have laser, one-hit kill boss, and full invincibility.Stage select, scene select, always have laser, and invincibility were developed through disassembly of the ROMs and extensive debugging of each available set, since the existing MAME cheat database for this title only provides a small set of RAM write cheats.
The Pocket core provides auto-fire with per-button targeting and adjustable rates. Cheats and dip switches are configurable through the interact menu.
History, Gameplay, and Regional Information:
Cobra-Command was directed by T. Seki, with Kohji Sasamoto producing and programming, Akira Otani handling design alongside artists M. Narita, T. Konishi, and Satoshi Furukawa, and Kazuhiro Takayama leading the hardware. The arcade soundtrack was composed by Azusa Hara, a member of Gamadelic, Data East's in-house sound team. Hara also contributed to Psycho-Nics Oscar the year before.
Players pilot a heavily-armoured attack helicopter through a sweep of contested territory, using an 8-way joystick to maneuver and a two-button layout for the cannon and missile launcher. The game uses a lives system with an optional continue, and bonus lives are awarded at fixed score thresholds set by DIP switch.
Six missions take the helicopter through Sumatra, Java, Borneo, the South China Sea, Siam, and finally the enemy headquarters, with each leg drawn against a distinct backdrop and packed with tanks, anti-aircraft cannons, gunboats, submarines, and fortified ground positions to clear.
The Japanese release retains the same title (コブラコマンド) without a regional rename. Four known variants exist: World/US Revision 5, World/US Revision 4, World/US, and Japan. The differences between revisions are minor and not well documented beyond stage ordering changes.
Updates:
The next DECO-8 release is The Real Ghostbusters, going live to the Patron Beta tier this weekend. The board adds a new Data East custom sprite chip, the DRL40, which replaces the MXC06 used on Cobra-Command and Psycho-Nics Oscar.
x8751, my Verilog implementation of the Intel 8751 EPROM microcontroller, is complete and validated against the Ghostbusters protection MCU on original hardware. The Intel 8751 was a barrier for the remaining DECO-8 titles after Cobra-Command that I had to overcome.
Every DECO-8 title after Ghostbusters requires two more Data East customs: the VSC30, a video sync controller that generates the H/V counter chain and composite sync signals, and the HMC20, a horizontal master controller that handles tilemap scroll counters and the horizontal master clock. Both sit on the Ghostbusters sub-board next to the BAC06 on the upper board, so replication is complete and their behaviour has been cross-checked against the BAC06 path. The VSC30 and HMC20 are paired with discrete TTL logic on the remaining titles.
Captain Silver also drives an MSM5205 ADPCM voice synthesizer; x5205, my MSM5205 implementation, is complete and validated against VGZ/VGM playback and captured audio from my Bloody Wolf PCB.
Disclaimer: All product names, trademarks, and registered trademarks mentioned are the property of their respective owners. "Analogue", "Analogue Pocket", "MiSTer", "MiSTerFPGA", "OpenFPGA", "Data East", "Motorola", "Rockwell", "MOS Technology", "Yamaha", "Intel", "OKI Semiconductor", "Ghostbusters", "Columbia Pictures", 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.