DoDonPachi Dai-Ou-Jou PCB Repair

 PCB Repair Logs, Repair Logs  Comments Off on DoDonPachi Dai-Ou-Jou PCB Repair
Sep 162024
 

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!

MX23C3210 mask ROM datasheet
Intel 28F640 pin assignments datasheet
Intel physical footprint datasheet
Flash Footprint Adapter KiCad files (Currently Untested)

Spectral Vs. Generation (SVG) PGM Cart Repair

 PCB Repair Logs, Repair Logs  Comments Off on Spectral Vs. Generation (SVG) PGM Cart Repair
Sep 122024
 

In for repair was a Spectral Vs. Generation (SVG) cartridge for the Poly Game Master platform by IGS. It was booting up to a garbled screen.

SVG was a late release for the PGM platform, and it incorporates strong anti-piracy measures that IGS didn’t have in their earlier games. The cart has an ARM CPU with an embedded ROM that both decrypts encrypted assets and processes some of the logic for the game. The game has yet to be patched to operate without the ARM CPU, and the embedded ARM ROM hasn’t been fully dumped yet with this game. If the ARM CPU fails, that’s pretty much a project killer.

The owner of this cart also sent along a fully functional second SVG cart, and through cross-testing, I confirmed that the CHAR board of the faulty cart is fine while the CPU board is the culprit. I dumped the three EPROMs from the CPU board and while the dumps matched MAME, the good cart wouldn’t boot with the “V200 U30” EPROM installed from the faulty cart, so I programmed and installed a replacement 27C4096 EPROM for that part.

This still didn’t get the faulty cart booting so I moved on to reflowing the ARM CPU and confirming that the ARM was receiving a clock signal from the onboard crystal at U35. The cart still froze at bootup so I reached out for help on the Arcade Projects forums. On there, Fluffy helpfully suggested installing the three GAL chips from the functioning board into the faulty board – a dumb oversight on my part. 😀

Installing the GALs from the working cart got the faulty cart booting to an EXTERNAL RAM TEST ERROR screen.

Replacing the SRAM chip located at U38 resolved this error and now a new error appeared – SHARE RAM 1 TETS (sic) ERROR.

I replaced both the SRAM chips located at U37 and U38. This resolved that error and now the cart was booting up successfully!

I still needed replacement GALs though, and the GALs for this game hadn’t yet been dumped. I reached out to Apocalypse and he graciously offered to dump the GALs for me. I shipped him the carts, he dumped the GALs and the PLD files are now available at the PLD Archive.

Now that the original good GALs were installed back in the working cart, the final step was to program fresh GALs with Apocalypse’s PLD files and swap them into the faulty cart. The faulty cart booted up fine and passed a four hour burn in test. Repair complete!