Smoke and other visible clues
Visual inspection can reveal physically damaged chips. Burnt, deformed or cracked chips are definitely dead.
On NeoGeo systems, burnt chips are often a sign that the 5V rail went way higher than 5V, probably because of a cab or supergun power supply failure, 12V short, or a reverse connection of the JAMMA connector. Several chips are usually killed in that case, but all may not show visible damage.
Some chips may have survived on the board. May have.
Internal chip damage is more common, and can't be detected visually. Voltage spikes or shorts may cause microscopic, irreversible damage, resulting in floating or "stuck" pins.
That's why some pins of multi-purpose SNK chips like NEO-I0 may still function, but others may be dead. Some custom chips can be saved if they're mostly functioning: the dead pins can be cut off and replaced with discrete logic chips with a bit of courage.
RAM having unexplainable behavior are certainly internally damaged and need to be replaced. Multiple RAM chips may have been killed by a "long" voltage spike. RAM chips also tend to die one after the other on cabs which have their PSU's voltage set too high or drifting up with time.
Backup/Work/Video RAM error
Typical message looks like: Backup RAM error: Address 00D00000; Written 5555; Read 0000.
The last part is the most usefull: Written XXXX Read YYZZ
The YYZZ represent upper and lower bytes - each one handled by different SRAM IC: YY is upper RAM, ZZ is lower RAM.
Video RAM error
- Address between $0000 and $7FFF: Check CXK58257 VRAM chips next to GPUs (see RAM_chip).
- Address between $8000 and $86FF: Check CXK5814 VRAM chips (see RAM_chip).
- Read high byte is different: check RAM chip with highest number.
- Read low byte is different: check RAM chip with lowest number.
- Read byte stuck to $FF (bad /OE ?), only a few bits different (traces cut ?), random address (floating /OE, /CE ?)
No fix layer
- Signal 1MB doesn't reach NEO-B1.
- Signal PCK2B doesn't reach the cartridge slot.
- Backup RAM corrupt, SOUND_STOP ($D00046) is non-zero. Clear backup RAM.
- YM2610 has no clock, bad control signals (/CS mainly), or dead.
- YM3016 has cut traces to YM2610, or dead.
- Low sound level: broken sliders/pots, bad caps.
- Power amp is fried.
- Unplugged or faulty NEO-CDD board.
- Dead op-amps.
Can be caused by bad components / continuity with the following:
- Z80 <-> SM1
- Z80 <-> RAM
Second generation specific (todo: get pin numbers in a nice table)
- Z80 <-> NEO-D0 (NMI,A2-A4,IORQ)
- Z80 <-> NEO-C1 (Z80 D0-D7)
- NEO-D0 <-> NEO-C1 (Z80R,Z80W,Z80CLR,SDW)