The repair story: hunting an intermittent memory fault
My favourite arcade of them all, so I got myself a working PCB. Or mostly working. An intermittent memory issue meant diving into 6809 assembler to write custom test routines and corner the fault. After a lot of bench work it has been solved, and Sir Arthur runs flawlessly on original hardware.
The fault was intermittent memory: sprite corruption and crashes that appeared as the board warmed up and vanished on a power cycle. Faults like that are close to impossible to chase with the game running. There are dozens of RAM chips across the two boards, the game exercises them in patterns nobody chose, and it reports nothing when a byte comes back wrong.
So I wrote a bespoke memory test in 6809 assembler, burned it to EPROM and ran it in place of the game. It loops forever, writing and verifying test patterns across the work RAM, the sprite table and both video RAMs, and checking the program ROMs against themselves. When a byte fails, the code locks onto that address and rewrites it endlessly, which turns a once-an-hour glitch into a continuous signal at one known location that a scope can trace to a physical chip.
The little program itself survives: 186 bytes, burn it to an EPROM, swap it in for the game ROM at 10N, and it owns the machine from power-on. The full source with commentary, build instructions and burn details is here: rob_gng4_comments.txt. The approach is probably worth more than my simple test: the same build-and-burn recipe boots whatever code you write, so treat it as a template for running your own diagnostics on the board.
The test earned its keep twice. First it caught trouble on the CPU side itself: memory errors that refused to stay on one chip, which is the signature of a dying bus buffer rather than bad RAM, and replacing the 74LS245 at 3B ended those. Then, with the CPU side passing clean run after run, the verdict came by elimination: the remaining fault lived on the video board, in memory the CPU cannot touch. Ghosts'n Goblins keeps its sprite machinery there: a local copy of the sprite table in the 2114 pair at 11E and 12E, refreshed by DMA every frame, and four more 2114 object buffers at 11H, 12H, 11J and 12J. Those six fell to elimination and replacement, chips of the same family failing as a batch. One earlier repair on the board is not mine: the sound Z80 and the RAM beside it were replaced by a workshop in 2013, QC sticker still attached. The rest of the solder is mine ;)
All 283 chips and every wire between them, rebuilt from the original 1985 Capcom drawings into an interactive schematic. Browse both boards, click any net to trace it across the machine, follow a band-cable pin from one board to the other, compare against the manual scans, and find exactly where each chip in this story lives.