Coin-Op Collection Presents: G.I. Joe - A Real American Hero (Konami GX069)
Today's beta release for the Analogue Pocket is G.I. Joe, a 1992 Konami arcade game licensed from Hasbro's G.I. Joe: A Real American Hero. G.I. Joe is a rail shooter with pseudo-3D graphics, drawing on the animated series for its characters and its look, built on Konami's 68000-based arcade hardware.
Nothing felt more fitting for the Fourth than releasing G.I. Joe: A Real American Hero, and this year marks the 250th. Pramod and I hope you all enjoy! This post will cover a technical overview of G.I. Joe and the game itself.
Overview:
G.I. Joe runs on Konami's 68000-based arcade hardware (PCB GX069), driven by a Motorola 68000 at 16 MHz, with a Zilog Z80 at 8 MHz handling sound. The audio is generated by a K054539, an eight-channel ADPCM sample chip clocked at 18.432 MHz and running in stereo, with a K054321 handling the sound latch between the two processors. There is no FM synthesis on this board; the K054539 is the entire sound section.
The video system outputs 288x240 at 59.185 Hz. Graphics are rendered by a set of Konami custom ICs: a K056832 drives four 8x8 tile layers, a K053246 and K053247 pair handles the zoom sprites, and a K053251 sits at the end of the chain resolving layer and sprite priority. The palette holds 2048 entries in 15-bit color with hardware shadow support, and an ER5911 EEPROM stores settings and high scores. The board supports up to four players at once, with the third and fourth player inputs carried on their own connectors.
Development Challenges:
Like our previous release, Captain America & The Avengers, G.I. Joe carries a set of behaviors that the existing emulations get wrong. Pramod stood up all of the required Konami modules from scratch, and I am working the audio portion the same way I did for T.M.N.T - Turtles In Time. The same inaccuracies show up in both MAME and FBNeo, and each of the points below was verified against the original PCB.
The first is the video timing. MAME documents the board as running a 15.2036 kHz horizontal scan and a 59.6374 Hz refresh, and encodes those figures as its measured values. Those measurements are wrong. The board runs the standard Konami raster off a 6 MHz pixel clock, giving a 15.625 kHz horizontal scan rate and a 59.185 Hz refresh, which is what the core implements.
The second is the sprite shadowing. G.I. Joe uses the K053247's shadow feature throughout, and the effect is meant to darken whatever sits behind a sprite rather than paint the sprite's own color onto the scene. MAME projects the shadow as its own layer, so the shadow of the Baroness' aircraft appears on the sky where it should not. In the core a shadow pixel is passed through the K053251 as transparent, so the layer behind the sprite is what gets darkened, producing the see-through darkening the hardware makes.
The third is the K056832 line handling. G.I. Joe is the only game on this hardware that drives the K056832's per-line scrolling mode this way, and the reference emulations reuse the tilemap's own pixel buffer as a scratch render target to approximate it, which the MAME source itself flags as something that should be reworked. The core implements the per-line path as a real datapath inside the tilemap chip, the way the hardware runs it.
Two pieces are still being worked. The K054539 handles the entire sound section, eight channels of ADPCM with its own internal panning, and while the mono and stereo mix is in place it has not yet been validated against the original board. Recording the audio directly from the PCB sound output, setting the per-channel levels and the mono and stereo balance to match the hardware, and reproducing the small playback artifacts the chip makes is work that remains before the sound is finished.
The other is the K053247's sprite zoom. The zoom is computed exactly in the core, which removes the rounding gaps that show up in the reference emulations, but a residual sprite flicker remains on some frames. That flicker is a memory-bandwidth matter in the current builds rather than a zoom-accuracy one, and it is a pending item as well.
Core Options:
Because the Pocket has no dedicated test or service switch, both are mapped to the pad. Holding Start and pressing Shoot opens the Service Menu, which gives full access to the board's built-in diagnostics and bookkeeping, and holding Start and pressing Super Weapon inserts a service coin.
The core's menu carries an Auto-Fire option covering the Shoot and Super Weapon buttons, with a range of rates to choose from. Three DIP settings are exposed: Sound selects a stereo or mono mix, Coin Mechanism switches between independent and common coin slots, and No. of Players sets the cabinet for two or four players.
A set of cheats is also included and always available on the Pocket: Invincibility, Infinite Energy, and Infinite Rockets.
History, Gameplay, and Information:
G.I. Joe reached North American arcades in April 1992, with Japanese and European releases following the same year. It is a pseudo-3D on-rails shooter rather than one of the belt-scrolling brawlers Konami was known for at the time. The player moves along the bottom of the screen and aims a reticle with the joystick while the stage scrolls forward on its own. There is a rifle with unlimited ammunition on one button and a limited missile launcher on the other, and power-ups along the way add rapid fire, extra missiles, and health.
Four Joes are selectable, Duke, Snake Eyes, Scarlett, and Roadblock, and all four play identically with the same weapons and the same handling, so the choice is cosmetic. The game runs across three missions and works through settings that include a chemical plant, an air base, a jungle, a cavern base, and a final raid on Cobra's flying battleship. The bosses are drawn from the cartoon's Cobra roster, including Tomax and Xamot fought as a pair, Metal-Head, the Baroness, Major Bludd, Destro, and Cobra Commander at the end, whose first form turns out to be a android double before the real fight begins. The look and sound follow the DiC-era A Real American Hero cartoon rather than the earlier Sunbow series, down to the first mission's arrangement of the show's theme.
The arcade version reviewed well, with Computer and Video Games scoring it 346 out of 400 and RePlay's trade chart placing it among the most popular arcade games of its run. Despite that, G.I. Joe became one of Konami's more overlooked titles. It shipped primarily as a conversion kit to convert existing Konami cabinets rather than as a dedicated machine, its arcade distribution was limited, and it never received a home port, so unlike many of Konami's arcade games of the era it largely disappeared from view after its run. The board is natively a four-player machine, with the first two players on the JAMMA edge and the third and fourth carried on their own connectors.
Updates:
A MiSTerFPGA version of G.I. Joe is coming soon. Moving over to the MiSTer brings a number of architectural changes for the memory configuration due to having SDRAM, and shared DDR. Dual SDRAM is not a requirement and would not help the bandwidth issues displayed in the video below.
Because of the wide range of device configurations the MiSTer platform runs on and the size of its user base, the G.I. Joe MiSTerFPGA core will arrive as a licenses beta and stay in beta until it is complete. The video below shows the current MiSTer core in action. You'll see that it currently struggles with the GFX pipeline and synchronizing with the 68K.
We still need to validate EEPROM saves for G.I. Joe and all of the additional work mentioned in the post's Development Challenges section as well.
G.I. Joe was voted on in a poll last year by our Patreon subscribers, beating out a large selection of other Konami titles, and we have no further plans to continue making additional Konami games.While G.I. Joe is in beta, it is not licensed for the pocket and will be added to pupdate shortly. If you aren't a member you can still grab the files posted below or from the updater when it syncs. Thanks to all of the Coin-Op Collection patrons for your continued support and we hope everyone had a good 4th of July!
Disclaimer: All product names, trademarks, and registered trademarks mentioned are the property of their respective owners. "Analogue", "Analogue Pocket", "OpenFPGA", "MAME", "FBNeo", "MiSTer", "MiSTerFPGA", "Konami", "Hasbro", "G.I. Joe", "A Real American Hero", "DiC", "Motorola", "Zilog" 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.