Repair help: Difference between revisions

From NeoGeo Development Wiki
Jump to navigation Jump to search
No edit summary
 
(One intermediate revision by one other user not shown)
Line 25: Line 25:
Typical message looks like: ''Backup RAM error: Address 00D00000; Written 5555; Read 0000.''
Typical message looks like: ''Backup RAM error: Address 00D00000; Written 5555; Read 0000.''


The last part is the most usefull: ''Written XXXX Read YYZZ''<br />
The last part is the most useful: ''Written XXXX Read YYZZ''<br />
The YYZZ represent upper and lower bytes - each one handled by different SRAM IC: YY is upper RAM, ZZ is lower RAM.
The YYZZ represent upper and lower bytes - each one handled by a different SRAM IC: YY is upper RAM, ZZ is lower RAM.




The value can help you to know which line/trace cause problem.<br />
The value can help you to know which line/trace causes a problem.<br />
For example writting AAAA and reading AAA2 means the 4th data line of lower RAM causes problem.<br />
For example, writing AAAA and reading AAA2 means the 4th data line of lower RAM causes a problem.<br />
[[File:Calc-hexa.jpg|200px|]]
[[File:Calc-hexa.jpg|200px|]]


==Video RAM error==
==Video RAM error==
*Address between $0000 and $7FFF: Check [[CXK58257]] [[VRAM]] chips next to [[GPU]]s (see [[RAM_chip]]).
*Address between $0000 and $7FFF: Check [[CXK58257]] 32k [[VRAM]] chips next to [[GPU]]s (see [[RAM_chip]]).
*Address between $8000 and $86FF: Check [[CXK5814]] VRAM chips (see [[RAM_chip]]).
*Address between $8000 and $86FF: Check [[CXK5814]] 2k VRAM chips (see [[RAM_chip]]).
*Read high byte is different: check RAM chip with highest number.
*High byte read is different: check the RAM chip with the highest number.
*Read low byte is different: check RAM chip with lowest number.
*Low byte read is different: check the RAM chip with the lowest number.
*Read byte stuck to $FF (bad /OE ?), only a few bits different (traces cut ?), random address (floating /OE, /CE ?)
*Read byte stuck to $FF (bad /OE ?), only a few bits different (traces cut ?), random address (floating /OE, /CE ?)


Line 65: Line 65:
*NEO-D0 <-> NEO-C1 (Z80R,Z80W,Z80CLR,SDW)
*NEO-D0 <-> NEO-C1 (Z80R,Z80W,Z80CLR,SDW)


==Cross-Hatch on Mv4 (Battery Damage)==
Here :
https://github.com/jwestfall69/neogeo-diag-bios/blob/master/docs/repairs/mv4_067063.md


[[Category:Repairs]]
[[Category:Repairs]]

Latest revision as of 18:24, 20 May 2024

Damaged chips

Smoke and other visible clues

If a chip looks like the moon's surface, it can only be bad news. Here NEO-GRC2-F on a MV1B, which fried under 12V.

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 damage

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.

MVS

Backup/Work/Video RAM error

Typical message looks like: Backup RAM error: Address 00D00000; Written 5555; Read 0000.

The last part is the most useful: Written XXXX Read YYZZ
The YYZZ represent upper and lower bytes - each one handled by a different SRAM IC: YY is upper RAM, ZZ is lower RAM.


The value can help you to know which line/trace causes a problem.
For example, writing AAAA and reading AAA2 means the 4th data line of lower RAM causes a problem.

Video RAM error

  • Address between $0000 and $7FFF: Check CXK58257 32k VRAM chips next to GPUs (see RAM_chip).
  • Address between $8000 and $86FF: Check CXK5814 2k VRAM chips (see RAM_chip).
  • High byte read is different: check the RAM chip with the highest number.
  • Low byte read is different: check the RAM chip with the 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.

No sound

  • 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.

Z80 error

Can be caused by bad components / continuity with the following:

  • Z80 <-> SM1
  • Z80 <-> RAM
  • Z80 <-> NEO-B0 (Z80 SD0-SD7)
  • Z80 <-> NEO-257 (Z80 SD0-SD7) / if output of mux of a multi slot is shorted

Second generation specific (todo: get pin numbers in a nice table)

  • Z80 <-> NEO-D0 (NMI,A2-A4,IORQ) 1st generation is also concerned.
  • Z80 <-> NEO-C1 (Z80 SD0-SD7)
  • NEO-D0 <-> NEO-C1 (Z80R,Z80W,Z80CLR,SDW)

Cross-Hatch on Mv4 (Battery Damage)

Here : https://github.com/jwestfall69/neogeo-diag-bios/blob/master/docs/repairs/mv4_067063.md