In for repair is a DoDonPachi Dai-Ou-Jou (DDP DOJ) arcade board by Cave. It boots up fine but the backgrounds and most of the text are missing.
DDP DOJ runs on the IGS Poly Game Master (PGM) hardware. Although DDP DOJ was never officially released as a PGM cartridge, the game was easily dumped from the original stand-alone boards and can then be loaded onto a PGM cartridge.
According to the MAME driver for the PGM, two ROMs are involved in drawing the backgrounds – a BIOS ROM and an asset ROM.
In MAME, I overwrote the “pgm_t01s.rom” BIOS ROM file with all “FF” but the game still booted up and played fine. Overwriting the “cave_t04401w064.u19” file with all “FF” replicated the real board’s behavior in MAME.
This implied that the mask ROM located at U19 was only reading out “FF”. Probing the address and data lines of that mask ROM on the running board confirmed it – the Address lines would signal properly but the Data lines pretty much always read High.
I desoldered both the U18 BIOS ROM and U19 asset ROM chip and attempted to dump them both as a 29F1610 flash chip since that part has the same pinout. The 29F1610 is a 16 Mbit part that matches the 16 Mbit BIOS but is only one-quarter of the 64 Mbit total stored in the background asset ROM. But even with only one-quarter of the background ROM dumped I’d be able to see if data is reading out of the ROM properly.
The BIOS ROM successfully reads out data but the background asset ROM only reads out FF – looks like the background ROM is toast.
Now for a dilemma – what to do about replacing a dead DDP DOJ background asset mask ROM? The original part is a MX23C3210 mask ROM. There is not a programmable off-the-shelf part with 64 Mbit capacity and the same 5V voltage that the PGM hardware uses that also matches the pinout and footprint of the original mask ROM.
I did prototype a solution that I will describe at the end of this post, but for now I’ll skip to the end of the repair and say that the owner of this board sourced a dead donor PCB of the same game. I was able to successfully transplant the BIOS and art asset mask ROMs from the donor to this PCB and it worked correctly afterwards – a successful repair.
Stepping back to earlier though, while the owner searched for a parts donor, I reached out to colleagues on both the Arcade Projects forums and on Discord for advice for replacing the dead 64 Mbit asset mask ROM. One consideration was to use four 29F1610 16 Mbit flash chips with a 74LS08 TTL chip to drive the Chip Enable lines. A second consideration was to use two 27C322 32Mbit EPROMs – that’s what the PGM cartridge conversions of DDP DOJ use. The drawback to both of these approaches is that the substitute chips would take up a lot more physical space than the original mask ROM so attaching them to the board would be challenging.
A third consideration that I proceeded to prototype with was to adapt an Intel DA28F640 flash chip. The DA28F640 is 64 MBit capacity, 5.0V compatible and programmable but it has a completely different pinout and footprint. I’d never created my own circuit board before, and this seemed like a great opportunity to learn KiCad. Over a few evenings, I referenced data sheets, took measurements, and produced an adapter board.
By the time the production adapter boards arrived, the game had already been fixed with the mask ROM from a donor PCB so my adapter is untested for now. Hopefully I’ll get a chance to try it with a different repair.
Here are the data sheets of the parts involved in this repair, along with the KiCad project files for the flash adapter PCB. If you use this adapter for a repair, please let me know if it works for you!
The Seibu Kaihatsu SPI platform was offered in two configurations:
Two Board – Main Board and cartridge ROM Board
Region locked: Main Board must match country of cartridge ROM Board. This protection can be bypassed – see “Protection Mechanisms” below.
Optional Stereo audio.
Single Board
Only runs the one game that was loaded onto it at the factory.
Offered with two different audio setups- Yamaha YM-271-F or dual OKI MSM6295
Mono audio only.
This article will address the two configurations separately.
Two-Board Configuration: Main Board
The SPI main board contains all the processing logic to run the game. It was released with two revisions, both of which can run the same ROM game cartridges. The marking on the board for each revision is:
SPI Main Board V2.0 with Raiden Fighters cartridge Photo Credit: ShootTheCoreSPI Main Board – V2.0 Photo Credit: ShootTheCoreSPI Main Board – V2.1 Photo Credit: ShootTheCore
The SPI system has onboard flash memory used for both region lockout and to store part of the game. The V2.0 board restricts write access to the flash memory by a jumper labeled JP072. The V2.1 board does not have any flash write access restriction jumper.
When swapping game cartridges, you will need to change the jumper (V2.0 only), install the new cart, power on, wait for the game to write to the flash memory (the message “NOW UPDATING. PLEASE WAIT A MOMENT.” will be displayed), power down and flip the jumper back (V2.0 only). Even after flashing, the ROM cartridge must stay attached for the game to operate.
Notable ICs
IC
Function
PCB Label
AM386DX/DXL-25 – OR – Intel NG80386DX25
25.0 Mhz Main CPU
U0169
Zilog Z84C0008PEC
7.15909 Mhz Audio CPU
U1122
Yamaha YM271-F
Audio Processor and Flash Access
U1020
Yamaha YAC513-M
Audio DAC
U1068
Intel E28F008SA – OR – Sharp LH28F008
8 MBit FlashROM
U1053, U1054
SEI400
Graphics Rendering
U048
SEI600
Graphics Rendering
U0154
Two Board Configuration – ROM Cartridge Board
Cartridge boards include DIP socket EPROMs, SMD mask ROMs, SRAM and a custom decryption IC – see Protection Mechanisms below. It is not possible to reliably convert one SPI game cart to another at this time, although it is possible to upgrade the same game to a different version (ie Viper Phase One to Viper Phase One NV).
The two-board SPI platform stores part of the game inside onboard flash storage. The flash storage is also initialized from the factory with a country code. If the country code stored in the first byte of u1053 flash on the mainboard does not match the country code stored in the last byte of the PRG0 EPROM on the ROM cart then you will see the message CHECKSUM ERROR XXXX or HARDWARE ERROR XXXX during the flash process where XX is a two or four digit error code.
Raiden Fighters error during the flash process due to a mismatched region code. Photo Credit: ShootTheCoreSPI Revive changing the country region Photo Credit: ShootTheCore
It is possible to desolder the u1053 flash chip from the main board to reprogram it with a new code. A list of the country codes is in the opening comments of the MAME driver.
Alternatively, Trap15 developed a software solution named SPI Revive that can rewrite the country code on the mainboard by swapping the PRG0 EPROM on a Raiden Fighters or Raiden Fighters 2 cart. If SPI Revive is unable to change the country code then the u1053 flash chip should be replaced.
There have also been cases where the flash chips are holding the correct country code data but the board isn’t reading that data correctly. The Yamaha YM271-F sound chip controls access to the flash storage, so check the connections and traces on it.
Reflowing the solder on all of the large SMD ICs is recommended for HARDWARE ERROR and CHECKSUM ERROR messages if the earlier methods of writing the country code do not resolve the problem. Credit: ChannelManiac
Boot Failure or Vertical Lines (jailbars) through graphics(credit: twistedsymphony)
It is common for the large SMD ICs to have pins separate from the PCB due to board flexing.
If an SPI board fails to boot at all on a known-good ROM cartridge, try reflowing the solder on each SMD IC, starting with the 386 Main CPU – it seems particularly susceptible to this issue.
If an SPI board has vertical lines running through the graphics, reflow the solder on the two SEI400 and SEI600 graphics rendering ICs.
Single Board Variants
In some regions, Seibu Kaihatsu released some of their games on cost-reduced, all-in-one single boards. These boards are “locked” to the game they ship with, do not have stereo output available, and in some cases use lower-quality dual OKI MSM6295 ICs for audio instead of the Yamaha YM271-F IC that the two-board SPI platform utilized.
SYS386I -Raiden Fighters 2 Operation Hell Dive 2000 (AMD 386 CPU and dual OKI MSM6295 Audio)
SYS386F – E-Jan Sakurasou (Intel 386 CPU and Yamaha Audio)
SYS386H – Raiden Fighters Jet 2000 (AMD 386 CPU and dual OKI MSM6295 Audio)
SXX2F – E-Jan Sakurasou (Intel 386 CPU and Yamaha Audio)
SXX2G – Raiden Fighters Jet (AMD 386 CPU and Yamaha Audio)
Due to the variety of ROM boards used across the SPI games, consult the MAME Driver for game-specific ROM assignments.
The DIP EPROMs can be replaced with a 27C040 EPROM. Replacement of a faulty SMD Mask ROM with an SMD flash might be possible depending on which mask ROM it is.
Protection Mechanisms
Sprite data is encrypted differently for each game and paired to a specific sprite data decryption IC on the cartridge board. This proved to be an effective deterrent against cartridge game conversions and bootlegging.
Schematics& Datasheets
Schematics for the SPI hardware are not available.
The Sega System 16B main board contains all the processing logic to run the game. The Sega part number for it is 171-5347.
Note that these boards are NOT JAMMA pinout and need an adapter to be properly connected to a JAMMA harness.
Depending on the protection scheme used for the particular game, the Main CPU may utilize encryption, the Sound CPU may utilize encryption, and an MCU may or may not be present – see Protection Measures below for more details.
System 16B Main Board w/standard CPUs and no MCU Photo Credit: ShootTheCoreSystem 16B Main Board Rear Photo Credit: ShootTheCoreSystem 16B Main Board w/171-5521 ROM Board and encrypted Main CPU Photo Credit: ShootTheCore
Notable ICs
IC
Function
Location
Hitachi FD1094 CPU (encrypted) Signetics SCN68000C8N64 68000 CPU (unencrypted)
10.0 Mhz Main CPU
C9
NEC MC-8123B CPU (encrypted) Zilog Z8040004PSC Z80 CPU (unencrypted)
The Sega System 16B board was identical between regions for the full lifecycle of the hardware. However, it was heavily bootlegged and thus there is a wide variety of cloned boards. Compared to the original games, cloned boards may have differences in graphics, sound, gameplay and speed. The bootlegs look dramatically different from the Sega originals and are easy to distinguish from the real thing.
System16B boards are NOT JAMMA pinout and need an adapter to be properly connected to a JAMMA harness.
System16B boards draw more power than average, so adjust your arcade PSU accordingly when swapping one into your cabinet or SuperGun.
It is common for the battery in the Main CPU or Sound CPU to die if they are encrypted, causing the game to either not boot or not have sound respectively. See “Copy Protection” below for details and resolution.
It is common for the TL084 OpAmp located at D19 to fail, resulting in faint or garbled audio output. Replacement parts are easy to source.
Due to the variety of ROM boards used across the System16B games, consult the MAME Driver for game-specific ROM assignments.
When replacing a mask ROM with an EPROM, consult this reference chart by twistedsymphony:
Protection Mechanisms
Sega implemented four different protection mechanisms to prevent arcade operators from swapping one System 16B game to another by installing a new set of ROM chips. Games may implement one or more of these protection mechanisms:
Some games encrypt the 68000 code executed by the Main CPU. Those games use a Hitachi FD1094 CPU, which is a Motorolla 68000 clone with a RAM-based decryption key that matches up with the encryption key used on Main CPU ROMs. If the battery that maintains the RAM storing the decryption key dies then the key is lost and the main CPU will crash at boot – the game will sit at a black screen at boot (“suicide”).
Hitachi FD1094 Encrypted Main CPU Photo Credit: ShootTheCoreX-Ray of the Hitachi FD1094 CPU Photo Credit: Eduardo CruzHitachi FD1094 CPU with the top cover removed and the battery exposed Photo Credit: Eduardo Cruz
If the battery hasn’t died yet, it can be replaced while maintaining the onboard decryption key if power is maintained to the supply pins with a bench PSU while the old battery is desoldered and a new battery is soldered in.
Similar to the Main CPU, some games utilize an NEC MC-8123B CPU with an onboard decryption key maintained by battery-backed RAM, paired with encrypted Sound CPU code in the ROMs. If the battery inside the CPU dies, the decryption key is lost, the Sound CPU will crash at boot, and the game won’t have sound.
Solutions are identical to an encrypted Main CPU – if the battery hasn’t died yet, it can be replaced by removing the cover, powering the battery leads from a bench PSU, and soldering in a fresh battery. If the battery has died, swap the NEC CPU out for a standard 4.0 Mhz Z80 CPU, swap the Sound CPU ROMs out for decrypted equivalent EPROMs, and the game’s sound should then function again.
Some games utilized an Intel i875 MCU (or clone) that sits between the CPUs and specifically encrypted ROMs that “scrambles” the memory addressing such that a game won’t function without a matching ROM set and MCU.
Golden Axe MCU Photo Credit: WombleAnother Golden Axe MCU Photo Credit: Ebay
Decrypted ROM sets for every System 16B game are available so that the MCU socket can be left empty on the board, and the encrypted mask ROMs can be swapped with decrypted EPROMs to get a fully-functional game.
ROM Board Variants
As mentioned above, Sega utilized four different ROM board variants with the System 16B hardware across the game library. Assuming that no other protection mechanisms were in place, an arcade operator still wouldn’t be able to change one System 16B game over to another one by swapping ROMs unless the same ROM board was used with both games.
MAME documents the ROM board and configuration settings (if applicable) on the ROM board for each game.
Schematics& Datasheets
Original Sega schematics are available for System 16B, but there seem to be discrepancies between them and the real hardware.
The Cave CV1000 PCB has three major revisions: Early CV1000B, Later CV1000-B and CV1000-D.
Early CV1000-B
Gold plated JAMMA connector
9 Pin connection header mounted on the right side with some boards. It is unused with the released games but theoretically could have been used to link two boards together via serial communication since the connector is identical to the serial connector on PC motherboards.
P2 connection pin header in the center of the board populated.
Later CV1000-B
Tin plated JAMMA connector
9 Pin connection header and P2 connection header unpopulated.
CV1000-D
Tin plated JAMMA Connector
Battery for the real-time clock removed
SDRAM doubled from 64Mb to 128Mb
The battery in the upper-right corner of the CV1000-B PCB is used to maintain the real-time clock for book keeping purposes. High scores and game settings are stored in the RTC EPROM. The game “Ibara” also displays a clock in one level of the game that matches the board’s clock setting. CV1000-D removed the RTC and battery, so high scores and game settings are stored in NAND instead of EPROM.
Early CV1000-B Front w/Serial Port Photo Credit: ShootTheCoreEarly CV1000-B Front w/out Serial Port Photo Credit: ShootTheCoreLater CV-1000B Front Photo Credit: ShootTheCoreCV1000-D Front Photo Credit: ShootTheCoreEarly CV1000-B Rear Photo Credit: ShootTheCoreLater CV-1000B Rear Photo Credit: ShootTheCoreCV1000-D Rear Photo Credit: ShootTheCore
Notable ICs
IC
Function
Silkscreen Label
Hitachi SH3
Main CPU
U5
Yamaha YMZ770
Audio
U22
Altera Cyclone EP1C12F324C8
Graphics Rendering
U8
Altera CA011
CPLD used for address decoding of the U2 flash, YMZ770 audio and RTC 9701.
U13
RTC 9701 (CV1000-B)
Real-Time Clock with embedded EPROM for saving board settings and high scores
U10
AD8061
Color amplifier for the Red, Green and Blue output
U14, U15, U16
Board Variants
CV1000-D reproductions from Chinese sellers began surfacing in early 2024. These reproduction boards can be distinguished from Cave originals with the following characteristics:
The JAMMA connector is gold plated. Although early CV1000-B boards also had gold plating on the JAMMA connector, all original CV1000-D boards had tin plating.
Via “pinholes” are not visible on the back of the reproduced board.
A Cave serial number sticker is not present.
Some of the reproduction boards do not have the P4 header in the center of the board populated.
At this time, it is believed that the reproduction boards run the games identically to the Cave original hardware. The major IC parts (CPU, Graphics FPGA, Audio, etc) are the same.
Some games (such as Mushihimesama and Espgaluda II) do not have a high score reset function. Any CV1000 can be reinitialized to the factory default high score and board settings with the following procedure:
During boot, hold P1 Right+A+B+C and P2 Left+A+B+C until the startup checks are complete.
Common Issues and Quirks
CV1000 boards draw less power than your average PCB. Be sure to adjust your arcade PSU down when swapping in one of these boards so you don’t inadvertently over-volt the board!
Leaking Large Capacitor
CV1000-B board with a leaking capacitor Photo Credit: ShootTheCore
The large capacitor labeled C109 in the upper-left corner that filters power for the sound amplifier often leaks. The part is rated for 2200 uF at 25 V.
Part number MAL216099606E3 has the same dimensions as the original part, while UCX1E222MNS1GS has the same footprint, but a lower height and a more supportive base. Source: System11
Color Amplifier Degradation (credit: System11)
The Red, Green and Blue color amplifiers located at U14, U15 and U16 respectively can degrade over many hours of use, resulting in a pale or incorrectly tinted display. Replacing the AD8061 color amplifier ICs with fresh parts should resolve the issue. Also note that the Service Menu has a brightness adjustment setting that may need to be changed afterwards.
CV1000 with degraded Red color amplifier Photo Credit: System11The same CV1000 after the Red color amplifier was replaced Photo Credit: System11
Flash Deterioration (credit: Buffi)
Corrupt graphics in Espgaluda due to U2 flash deterioration Photo Credit: buffiCorrupt graphics in Muchi Muchi Pork due to U2 flash deterioration Photo Credit: EOJ
The flash chip at U2 is known to suffer from data corruption, causing glitching in the graphics. The chip model is Samsung K9F1G08U0. The CV1000 does a manufacturer check at startup to make sure the flash chip is a K9F1G08U0, and will reboot if it is not. Buffi worked out a way to remove these checks, allowing the U2 flash chip to be replaced with an equivalent from another manufacturer. https://github.com/buffis/cv1k_research/tree/main/U2_Replacement
Alamone worked out a way to fix graphics issues from deteriorating flash by comparing CV1000 U2 dumps and generating relocated NAND blocks: https://github.com/alamone/u2_compare
Stuck Control Inputs
Resistor Array 101 and 103 replaced to resolve an issue with a stuck button input Photo Credit: ShootTheCore
CV1000 uses three sets of twin resistor banks and individual 130nF ceramic capacitors as ESD protection between each player control input and the signal pins 176-208 on the SH3 CPU. If a resistor array becomes damaged then a control input may be “stuck” – always on or always off. It’s also possible for an ESD charge to make it through the ESD protection and fry the input line on SH3 CPU – the only resolution then is to replace the entire CPU. You can check the game’s reading of the control inputs in the Service Menu.
Resistor Array with 101 marking – replacement part number: 742C163101JP
Resistor Array with 103 marking – replacement part number: 742C163103JP
CPU Stuck in a Boot Loop – Nothing on Screen (credit: DragonMinded)
If the CPU is stuck in a boot loop, the LED at L6 will pulse every second to a darker color. Ensure that the 32.768 Khz crystal located at X2 is intact and functioning.
Game resources are stored on flash chips located at U2, U4, U23 and U24. The U2 and U4 chips can be accessed by the on-board JTAG connector, but U23 and U24 are not on the JTAG bus and can only be rewritten if the chips are physically desoldered and removed from the board.
The U2 flash is a Samsung K9F1G08U0. The games check the flash ID at boot and if it doesn’t match the expected flash model then the game reboots.
Last Updated: 4/19/2024 Article Credit: ShootTheCore, wickerwaka, ekorz, System11, Apocalypse
Main Board
The Main Board is largely identical across all Irem M92 games. It is labeled either M92-A-A or M92-A-B.
GunForce A Board Photo Credit: ShootTheCoreHook A Board Photo Credit: ShootTheCore
Early boards have less Object RAM (16K) installed at locations IC43 & IC44 than later boards (64K) – selectable by jumper J2 – but all M92 games are confirmed to function correctly with the 16K board. Thus, the difference in RAM was likely determined by parts cost at the time of manufacture.
16K Object RAM on Mystic Riders A Board Photo Credit: ShootTheCore64K Object RAM on Major Title 2 A Board Photo Credit: ShootTheCore
Notable ICs
IC
Function
Silkscreen Label
Location
NEC D71036L V33
Main CPU
H8
Nanao GA20
Sound FX Samples
IC32 GA20
B6
Nanao GA21
SRAM DMA and Address Generation for GA22
IC42 GA21
M7
Nanao GA22
Graphics Rendering
IC63 GA22
M10
YM2151
FM Sound Chip
IC33
C6
YM3014
Sound D/A Converter
IC208 YM3014
C5
Secondary Board
The Secondary Board layout varies across the M92 games.
The Sound CPU resides on the secondary board and utilizes an encryption mechanism – see “Copy Protection” below.
GunForce B Board – Model M92-B-A Photo Credit: ShootTheCoreHook B Board w/Repair – Model M92-D-A Photo Credit: ShootTheCoreNinja Baseball Batman B Board – Model M92-Z-C Photo Credit: Ebay
Game
Board Model
Sound CPU Model
Notes
Blade Master / Cross Blades
M92-B-A M92-D-A
Dream Soccer 94
GunForce
M92-B-A
GunForce II / GeoStorm
Hook
M92-D-A
In The Hunt / Kaitei Daisensou
M92-E-B
Lethal Thunder / Thunder Blaster
M92-C-B
Major Title 2 / The Irem Skins Game
M92-B-F
Only M92 game to utilize an EPROM for saving scores.
Mystic Riders / Gun Hoki
M92-B-B
Ninja Baseball Bat Man / Yakyuu Kakutou League-Man
M92-F-A M92-Z-C
Perfect Soldiers / Superior Soldiers
R-Type Leo
M92-C-N
Undercover Cops
M92-E-B
Notable ICs
IC
Function
Silkscreen Label
Nanao 08J27261A1 V35
Sound CPU
IC10
Nanao GA23
ROM Addressing (Assumed)
IC23 08J27504A1
Board Variants
M92 boards manufactured for the Korean region have several noticeable differences from boards manufactured for other territories:
The green silkscreen is a lighter shade of green.
The JAMMA connector does not have a key notch.
SRAM ICs on M92 boards for other regions are manufactured by NEC whereas on the Korean boards they are manufactured by Hyundai and Goldstar.
The amplifier heatsink is physically smaller, and is colored silver rather than black.
One or both boards may be missing markings for the board type on the silkscreen.
A metal serial number tag is not present in the upper-right corner of the A Board.
Korean Ninja Baseball Bat Man A Board Photo Credit: ShootTheCoreKorean Ninja Baseball Bat Man B Board Photo Credit: ShootTheCore
There are also single-board bootlegs of several M92. They are much smaller than original M92 boards and thus are easily distinguished. Compared to the original games, bootlegs often omit animation frames, shorten the music tracks and gameplay slows down more frequently.
Ninja Baseball Batman Bootleg Photo Credit: ShootTheCore
Common Issues and Quirks
The factory-installed capacitors are colored green or brown. The ELNA brand brown-colored capacitors are notorious for leaking and should be replaced ASAP.
Video output is darker than average with this hardware.
Protection Mechanisms
The Nanao 08J27261A1 V35 Sound CPU on the B Board enforces a security scheme where each game’s sound CPU code is encrypted in ROM and then decrypted by a key specific to the model of CPU. Thus, if the game ROMs are swapped to another game without decrypting the sound CPU code of the new game and re-encrypting the code to match the encryption scheme of the old game, the sound CPU will crash and the game won’t have sound.
Changing jumpers J1 and J6 adjacent to the Sound CPU from “S” to “N” disables the decryption mechanism and allows the CPU to run decrypted Sound CPU code directly.
Original Irem schematics are unavailable for M92. wickerwaka developed a MiSTer FPGA core for the Irem M92 platform, and generated the following schematics (Source):