Mike McBike @ Home / Arcade Reparaturberichte / Terra Cresta Reparaturbericht


{Patient} Terra Cresta, eingeliefert mit massiven Grafikfehlern.

PCB oben

PCB unten

{Diagnose} Man sieht deutlich: die Fehler sind nur an den Background-Tiles vorhanden. Sprite-Daten und Text-Gfx. werden korrekt dargestellt.

Screenshot

Screenshot


{Reparatur} Man sieht deutlich: die Fehler sind nur an den Background-Tiles vorhanden. Sprite-Daten und Text-Gfx. werden korrekt dargestellt. Es gibt keinen Schaltplan, aber die hilfreiche MAME-Source sagt unter terracre.c:

ROM_START( terracre )
ROM_REGION( 0x20000, "maincpu", 0 ) /* 68000 code (main CPU) */
ROM_LOAD16_BYTE( "bk1_1.4b", 0x00001, 0x8000, CRC(60932770) SHA1(...) )
ROM_LOAD16_BYTE( "bk1_3.4d", 0x00000, 0x8000, CRC(cb36240e) SHA1(...) )
ROM_LOAD16_BYTE( "bk1_2.6b", 0x10001, 0x8000, CRC(539352f2) SHA1(...) )
ROM_LOAD16_BYTE( "bk1_4.6d", 0x10000, 0x8000, CRC(19387586) SHA1(...) )
ROM_REGION( 0x10000, "audiocpu", 0 )/* Z80 code (sound) */
ROM_LOAD( "bk2_11.15b", 0x0000, 0x4000, CRC(604c3b11) SHA1(...) )
ROM_LOAD( "bk2_12.17b", 0x4000, 0x4000, CRC(affc898d) SHA1(...) )
ROM_LOAD( "bk2_13.18b", 0x8000, 0x4000, CRC(302dc0ab) SHA1(...) )
ROM_REGION( 0x02000, "gfx1", 0 ) /* tiles */
ROM_LOAD( "bk2_14.16g", 0x00000, 0x2000, CRC(591a3804) SHA1(...) )
ROM_REGION( 0x10000, "gfx2", 0 ) /* background */
ROM_LOAD( "bk1_5.15f", 0x00000, 0x8000, CRC(984a597f) SHA1(...) )
ROM_LOAD( "bk1_6.17f", 0x08000, 0x8000, CRC(30e297ff) SHA1(...) )
ROM_REGION( 0x10000, "gfx3", 0 ) /* sprites */
ROM_LOAD( "bk2_7.6e", 0x00000, 0x4000, CRC(bcf7740b) SHA1(...) )
ROM_LOAD( "bk2_8.7e", 0x04000, 0x4000, CRC(a70b565c) SHA1(...) )
ROM_LOAD( "bk2_9.6g", 0x08000, 0x4000, CRC(4a9ec3e6) SHA1(...) )
ROM_LOAD( "bk2_10.7g", 0x0c000, 0x4000, CRC(450749fc) SHA1(...) )
ROM_REGION( 0x0400, "proms", 0 )
ROM_LOAD( "bk1_3.10f", 0x0000, 0x0100, CRC(ce07c544) SHA1(...) ) /* red component */
ROM_LOAD( "bk1_2.11f", 0x0100, 0x0100, CRC(566d323a) SHA1(...) ) /* green component */
ROM_LOAD( "bk1_1.12f", 0x0200, 0x0100, CRC(7ea63946) SHA1(...) ) /* blue component */
ROM_LOAD( "bk2_4.2g", 0x0300, 0x0100, CRC(08609bad) SHA1(...) ) /* sprite lookup table */
ROM_REGION( 0x0100, "user1", 0 )
ROM_LOAD( "bk2_5.4e", 0x0000, 0x0100, CRC(2c43991f) SHA1(...) ) /* sprite palette bank */
/* 11e and 12a might be PALs */
ROM_END

Also sehen wir uns doch mal die ROMs 15F und 17F genauer an. Datenleitungen sind i.O. aber die höchstwertigen Adressleitungen sind tot... Ein kurzschließen der toten Adressleitungen mit +5V erzeugt ein Bild, welches dem Original schon näher kommt... Da muss die Ursache liegen. Verfolgen wir nun die Adressleitungen zu ihrem Ursprung: Sie werden won einem 74LS273 (oktal Latch) bereit gestellt, welcher ganz am Rand der Platine sitzt. In den RAMs darunter werden die anzuzeigenden Tile-Nummern gespeichert. Die hochwertigen Adressbits sind die Nummern der einzelnen Tiles, die niederwertigen Adressbits sind die jeweiligen Zeilennummern, da diese aber funktionieren, werden die falschen Tiles richtig dargestellt... Alles klar?
Jetzt kommt die harte Probe, habe ich schon gelesen, aber vorher noch nie so ausprobiert: einfach mal einen funktionierenden TTL auf den vermeintlich defekten aufstecken und hoffen, dass sich der "gute" durchsetzen wird. Und voila:

Huckepack...

{Ergebnis} Schon klappt's mit der Adressierung!!!

Screenshot

Screenshot

Screenshot


© 2013 - 2014 · W. Robel e-Mail senden