Snapped up a faulty NeoGeo motherboard and a Metal Slug cart a few days ago, it turned out to be one of the really small MV1FZ boards, barely larger than a game cartridge itself.
It was sold as faulty, apparently giving a Backup RAM Error on boot, which it did.
The most common cause of faults on NG boards is the old battery, which leaks and tends to destroy all the tracks on the board around it. The battery was still in place but there were no signs of any leaks, I cut the battery off anyway as it was long past its useful life and a potential time bomb. A few vias on the board looked a bit ropey but I thought I had found the main problem by eye straight away. A splodge of something spilt on the board in the backup area.
This looked like it had eaten some tracks but it a cotton bud and some PCB cleaner removed it and the board was perfect underneath.
The first thing to do with these hex errors is translate them to binary, what the error means is that the board tried to test the backup RAM by writing a pattern to it, then reading it back and comparing what it sent to what it received.
It wrote AAAA, but it got back A2AA. The SRAMs are 8 bit so actually the high address line connected chip was given AA and read back A2, while the low chip was given AA and correctly read back AA. So this was only affecting one of the two chips. In hexadecimal the figures don't really tell the story, but when converted to binary it makes more sense at a hardware level.
AA = 10101010
A2 = 10100010
As each bit of this byte refers to a single data line on the SRAM chip it was clear that this was a single leg fault and the faulty leg was the 4th bit, which reading right to left would be data pin 3. Poking a scope a the chips in question didn't show a fault, so I resorted to buzzing the data bus pins back to the 68000 CPU, D0-D2, and D4-D7 went to the CPU, D3 went nowhere. The tracks are too fine to even bother attempting to repair, and the break was probably inside a via anyway, so I simply bridged the gap with hookup wire.
On power up again I got this...
... another error but at least it was now passing the Backup RAM tests. On subsequent reboots I either got this error message or it wedged on this screen..
... what is called "stuck on green". A healthy Neo Geo board will also display this green screen, but should then boot to a cross-hatch screen when it does not find a game cartridge. This never got past the green screen, which some reading around showed was basically another form of calendar error anyway. The most common cause of this is, on most Neo Geo boards, battery damage cutting the power to the NEC D4990 clock chip. This board had no battery damage and it the NEC chip had its 5V supply intact. The second most common failure is the 32.768MHz crystal, except on this board the crystal was happily wagging away. So again the the most likely cause was track rot. More googling threw up this superbly useful schematic (author unknown) of how the D4990 connects up on a 2 slot NG board...
...not guaranteed to be the same on this 1 slot but fairly likely.
A quick buzz through showed that everything matched except pin 6, which didn't connect to the NEO-F0 custom on pin3, so more hookup wired was installed.
... and on boot I got this!
A healthy cross-hatch screen, which is exactly what it should show when it has no game cart installed. All boot up tests were now passing!
So I put the cart support cradle back on, slapped in Metal Slug 2 and powered up and just got the cross hatch again.
Fault number 3, board does not notice game carts
As usual the most likely cause was bad tracks, if the motherboard address, data and ROM control lines were connected through to the ROMs in a working game cart it should boot. Rather than a lot of tedious buzzing through with the board off I decided it would be less painful to go looking for missing stuff than trying to find bad tracks directly.
So I striped the main ROM PCB out of a NG game cart and booted it up with just that card installed...
... unfortunately the lines went via a surface mount chip, which is probably just a multi line buffer chip, but I had no pinout for it so couldn't really infer much from what I could see.
So the next best thing was to grab the NeoGeo slot pinout and poke the scope at the the address and data bus lines in the game cart socket itself. Needless to say everything looked normal, all through the address bus, and all the way from D0-D14, at D15 however things were not normal.
On a normal data pin the signal is transitioning from logic lows to logic highs neatly...
...on D15 the line was flickering around a volt...
... not the 4-5 volts you would expect. As it was not totally silent there was clearly something on the line trying to drive it but not doing very well. In cases like this often you find the line is missing its pull up resistor, or the line driver is dying. None of the data lines seemed to have any connection to the resistor networks so the next obvious place to look was the CPU itself as some do provide built in pull ups, D0-D14 were all connected through to the 68000, D15 wasn't. Again the tracks looked perfect so I have no idea where the break was, so another length of hookup wire was installed, just a big temporary loop at this stage as routing this one would take some time.
Quite a few links on this board now!
This restored the normal activity of D15 on the scope, so I reinstalled the the cart cradle, slapped in Metal Slug 2 and hit the power...
Seeing as my least favourite fault to trace is bad tracks I should probably quit picking up Neo Geo boards altogether