Operation Thunderbolt repair log

 PCB Repair Logs  Comments Off on Operation Thunderbolt repair log
Aug 092016
 

Another one of Muddymusic’s boards.
He actually sent me 3 of them in various states but I chose the cleanest and most complete to focus my attention on.
Game booted to a screen of garbage and the watchdog was constantly resetting the machine.
I initially checked all of the ROM’s and they all checked out fine so I guessed the issue was going to be RAM.
I desoldered the 68000 CPU anyway so I could use the Fluke 9010 and see what was going on.
Looking at the memory map in the MAME source code in othunder.cpp we can easily see where various things sit.
ot-mmap

First off I checked the CPU is able to actually read the ROM’s properly. I calculated the ROM signatures for this version and ran ROM checks.
20160807_102256
20160806_205735

Everything is good here, on to the RAM.
First is the main RAM at 0x80000 – 0x8ffff
20160806_190759

So we have an issue straight away. At this point I did a few manual read/write tests.
First I wrote 0x5555 and reading it back gave me this
20160806_190834
So it looks like half the RAM is working but needed to confirm by writing 0xAAAA.
20160806_191730

So what we have tested here is the ability of the RAM data pins to be able to toggle HIGH and LOW.
0x5555 in binary = 0101010101010101
0xAAAA in binary = 1010101010101010

By testing both of these values separately instead of testing 0x0 and 0xFFFF we also test none of the adjacent pins are tied together.
So I removed both of these RAM chips and they both failed tests out of circuit.
Replacing them let the Fluke test pass and gave me the following screen
20160806_200558
20160808_184318

At this point it looked like the the game was trying to boot but kept resetting still.
Looking into the program code I could see that after the main RAM is tested the palette RAM is tested.
The palette RAM hides behind custom chip TC0110PCR which uses address 0x100000 – 0x100007 to deal with all of the RAM. Again following the code I could see the address is set by writing a byte between 0x0 and 0xFF to address 0x100004 and the data is set by writing a word value to 0x100002.
Here is what I got from my tests
20160807_103002
20160807_103008

Again it looks like one of the RAM chips is faulty.
Looking at the schematics I could see that RAM chips IC75 and IC79 are the ones im after and that IC79 is my problem RAM.
pal-ram

Replacing this RAM now gave me this screen
20160808_184634
The image is reversed as this game normally uses a mirror to invert the picture.

Having identified the screen RAM from the schematics
scr-ram

I carried out a quick check using the scope and found something like this on some of the data pins
20160807_173445

So out both of these came and then we got this
20160808_190405

So whats up with the colours? I confirmed the RAM was good using the Fluke. Turns out I was 1 off when making up my adapter so this fault wasn’t actually a fault at all, just human error.
Fixing my mistake gave me this
20160808_195406

This is good but there were some jailbars in the sprites.
I couldn’t get a clear picture of this as the RGB levels on my supergun are currently fixed and too bright but you can make out there are some differences between these two pictures.
The ripple is also caused by my RGB levels so ignore that
20160809_174814
20160809_174648

Finding this fault was quite easy. I knew the MASKROM’s were good as id dumped them out. The associated RAM looked good on the scope. The next bit in line were 2 x 74LS374 chips.
jailbar-fault

Looking with the scope I could see the inputs were present on IC20 but the outputs were stuck LOW.
I hooked the logic analyser up to prove this point. You can see that the inputs are changing state but the outputs are always 0x0
la-374

I replaced this and the graphics were restored.

Next onto the sound.
Hooking up the sound surprised me as the sound was present but there was an issue.

As there was some sound I was confident the CPU and ROM/RAM were good.
I had 2 other board sets so I opted to swap MASKROM’s one by one. Swapping B67-07 fixed the issue.

That’s as far as I can test this board now so will send it back.

 Posted by at 9:08 pm
Aug 062016
 

After Lifeforce, another awesome Konami shoot ’em up on the bench, it’s the turn of Gradius II – GOFER no Yabou :

DSCN3879

DSCN3880

Both CPU and video board were in great shape but this is what I got once powered it up:

DSCN3876

Board sat down on the above message and very rarely showed an ‘ADDRESS ERROR’ or ‘ILLEGAL INSTRUCTION’ message:

DSCN3875

Thanks to my friend Josef who sent me a good Gradius II boardset I could narrow the fault in the CPU board but, before knowing this, during my troubleshooting I found with my logic comparator a couple of faulty Fujitsu TTLs, a 74LS32 @7W on video board and a 74LS157 @8G on CPU board  :

74LS32@7W_reworking

74LS157@8G_reworking

TTL_testing

So I could concentrate exclusively on CPU board since I know the fault was there for sure.Probing the board with my oscilloscope I found some abnormal activity on a couple of 6264 RAM @10E and 10G :

10G_10E_data_bus

Launching the game on MAME I could figure out that these two RAMs are used by both the main and slave 68000 CPU :

selftest

So a failure in them would explain the missing boot.Not being able to determine which chip was actually faulty, I desoldered both and added sockets:

10G_10E_socketed

The one @10G didn’t pass the out-of-circuit test failing in address 1073:

6264@10G_failed

Finally the board could properly boot and enter in game but with missing graphics and crashing after few seconds all the time :

Probing around again with my logic comparator I found a 74LS74 @6F with bad outputs, once removed it failed :

74LS74@6F_removed

74LS74@6F_failed

This fixed the board completely, no other issue were present.Evil Konami defeated again.The battle goes on.

100_8491

 

 Posted by at 10:36 pm

Lifeforce repair log

 PCB Repair Logs  Comments Off on Lifeforce repair log
Aug 062016
 

Received this Lifeforce PCB for a repair:

DSCN4031

Board suffered from a backgrounds issue, screen was filled of blocks of garbage instead of correct tiles.Here a comparison with MAME snapshots.This in the title screen:

title_comparison

This is the in-game :

ingame_comparison

A video for a better understanding:

The hardware uses the famous ‘GX400’ video board :

DSCN4032

The peculiarity of this board is the lack of ROMs, all the graphics is generated by logic of TTLs and custom ASICs.Anyway I has a good starting point since the owner assured me the customs were all good so the problem was TTL related.So I started to check for abnormalities with my logic probe.All was good until I found some 74LS157 with stuck inputs.According schematics they come from a 74LS273 @12B:

74SL273@12B

As you can see this TTL latches data bits from a 6464 SRAM  @15B which is addressed by the custom ‘0005291’ @20D (probably a tilemap generator).Probing it with a logic analyzer confirmed the outputs were all stuck low or high (only one gate was analyzed but all other were confirmed stuck as well with my oscilloscope) :

74SL273@12B_logic_analysing

So confident I removed it (I forgot, obviously it was from Fujitsu):

DSCN4033

Once tested out-of-circuit, it failed miserably:

74SL273@12B_failed

Fitted a rounded  machine-tooled socket and a good chip:

74LS273@12B_new_fitted

And:

fixed

Once again Evil Konami has been defeated!See you in the next chapter of this neverending battle…

 Posted by at 11:00 am

Out Zone repair log #4

 PCB Repair Logs  Comments Off on Out Zone repair log #4
Aug 032016
 

Another Out Zone PCB (this time on usual ‘TP-018’ hardware) on the bench:

DSCN3960

Board was in good shape but I noticed it was heavily reworked on solderside, a lot of ICs were replaced and PCB was not cleaned from solder flux residuals:

DSCN4039

Besides, some ground pins of JAMMA edge connector were partially missing or burnt (sign that something gone shorted) and a 100 nF mylar capacitor was missing.I promply restored all of them:

DSCN4022

Board booted into game but some sprites were wrong (more than a palette problem it seemed to me an issue related to data bus as if sprites were missing some layers) :

sprite_issue

When I went to read the four 1Mbit ROMs containing relevant data I noticed devices were put in wrong sockets:

DSCN3961

Silkscreening under the sockets clearly tells where these MASK ROMs must be placed:

DSCN3962

But also with ROMs in correct position some sprites were still wrong.I started to test the part of circuit involved in sprites generation and all was fine until I came across two data lines shorted on a 6264 RAM @10A :

DSCN4006

The two data lines are connected to the sprites generator custom ‘FCU-2’ and to inputs of a couple of 74LS374 so the short was present also on them.Lifting a pin of the custom didn’t clear the short.

DSCN4044

Obviously due the not high resolution of a simple multimeter I could read always a dead short on each of this component.So I decided to use my Polar Toneohm 850A short locator (essentially an audible milliohmmeter) in order to locate the minimum resistance point.

1,110 Ohm measured on the two shorted data lines (pin 12 and 13) of the 6264 RAM @10A:

DSCN4007

Around 700 mOhm measured on the two pins of the custom ASIC ‘FCU-2’:

DSCN4009

19.3 mOhm on the 74LS374 @19E

DSCN4012

17.2 mOhms on the 74SL374 @19C and beep was squeeling at higher frequency :

 

DSCN4011

So I was approaching to the short, it was in the area of the two 74LS374.On part side I didn’t notice anything abnormal so I went to inspect the solder side and after some time I find the culprit:

pin13-pin14_74LS374@19C_bridge

Two pads connected to  inputs of the two 74LS374 were bridged, a ‘kind’ gift of previous repairer.I warmed up my soldering iron and removed it.Powered up the board again :

fixed

Board 100% fixed.Mission accomplished.

 

 Posted by at 11:27 pm

Snow Bros repair log #2

 PCB Repair Logs  Comments Off on Snow Bros repair log #2
Aug 012016
 

A quick fix for a PCB that seems to develop always same issue judging from my experience and other repair logs.Received this Snow Bros for a repair:

DSCN3977

It was playing fine but some sprites suffered from flickering (it’s hard for my camera to capture this, see from second 5 of below video)  :

Maybe you can understand better from this picture provided me by the PCB owner:

snowbros02

The sprites are generated by the Pandora custom chip which read data from a MASK ROM and write them to four 4464 (64K x 4bits DRAMs) :

sprites_circuitry

When I went to probe these dynamic RAMs with my scope all was good except one data line (D2, pin 3) of the one @IC24, signal was weak and stuck high compared to an healty one:

data_line_4464_IC24_comparison

Confident I removed the chip which failed when tested out-of-circuit:

41464@IC24_failed

Installed a socket for a fresh chip:

DSCN3980

and tested again the board:

DSCN3981

No more sprites flickering and game 100% fixed.

 

 Posted by at 10:19 pm