Customer's complaint is the board won't boot. D19 and D21 are locked on. D20 doesn't flicker.
When D19 and D21 are locked on, this can often be a challenging board to troubleshoot.
As a reminder, the expected behavior of a WPC MPU during boot is
D19 - Blanking circuit indicator. Should turn on for about 1 second when power is applied, and stay off after.
D20 - Diagnostic LED. Should flash once D19 goes out every second or so.
D21 - Indicates +5 is present. Should always be on.
D20 also indicates errors.
1 flash = problem with ROM
2 flashes = problem with ram chip
3 flashes = problem with ASIC or security chip, if equipped.
My troubleshooting steps in this situation are as follows:
1) See how bad the board is locked up with a logic probe. Is the CPU running? Is there activity on the address and data lines?
2) Swap ROM, ASIC, Processor and see if they are the problem
This particular board had a tiny bit of corrosion on one terminal of the battery pack. Pretty common problem with WPCs. So, I decided to cut the battery pack out.
This is why you can't just 'clean up' the board with a little vinegar when you see a fuzzy battery terminal. You need to remove the battery holder, neutralize the corrosion, and remove it. You're taking a board that can very likely be repaired with minimal expense, and turning it into a project that takes 5x as long to repair. If it gets very bad, it may not be economically repairable. But I'll get off my soap box.
This isn't keeping the board from booting. It might cause some switch matrix nightmares, but it's not keeping the board from booting.
Continuing my close looks... there are some repaired traces in the area between the memory chip and the ASIC. That could contribute...
But, that's not it. They buzz out OK.
This had me take a closer look at the ASIC socket, though, as I noticed some of the pins looked a little funky.
But, again, I don't think that's causing the actual problem - although with the discolored pin, residue inside the socket, and a couple slightly mangled pins in the socket, I think it needs replaced - AFTER I get the board working.
So, I got my logic probe out, and my schematic.
If you're going to be working on WPC CPUs, you don't want some PDF schematic downloaded off the internet. Most of them have poor quality and are hard to read. Get the big fold out type like came with your game, if you don't have one. eBay is a good source for these! Yeah, I'm going to post some captures from a PDF of a few ICs, but that's because I'm not gonna break out a macro lens and take actual close-ups of these items.
In this case, I'm using a 16-9834.2 schematic manual, from January of 1995. This particular manual was revised a few times, get the latest version you can find.
I want to start by using my logic probe to check for activity on all address and data lines. Start with the CPU.
A0-A15 are the address lines.
D0-D7 are the data lines.
In this case, they are all moving. Good sign.
So, I moved on to the 6264 (some have 62256 RAM chips, which are fine as long as you rejumper for them)
Address line 2 isn't moving.
But, it was moving on the processor!
Looking at the schematic, address line 2 goes to quite a few ICs. After the ram chip, it goes to the ASIC. But before it gets to the ram chip, it goes to the ROM.
(yes, I see this is ram.jpg, should have been rom.jpg)
At the game ROM, there's no activity on A2 (pin 10).
So, I put my DMM on continuity test, and found that the CPU A2 (U4-10) was not connected to the ROM A2 (U6-10).
I have a good WPC CPU on the bench, and before I dig too deep, I always buzz out the connection on a working board, to make sure the schematic isn't lying to me. That happens sometimes.. and in this case, the schematic wasn't lying.
I decided to run a quick test, before I heated up the soldering iron. I used a pair of spring clips to temporarily connect U4-10 to U6-10, and it booted!
So, I pulled the game ROM, and took a close look at the socket. It didn't look so hot, so I replaced it.
I had hoped this would fix the problem, but it didn't. The trace was somehow compromised, so I had to run a jumper connecting U4-10 to U6-10.
Now that the board is working, I will replace the ASIC socket, and then finally attack the corrosion. Why not do it all at once? Because if I break something, I want to know where to look
I think I'm going to build my sandblasting cabinet on Black Friday while everyone is out shopping... perhaps I'll bead blast this one to clean up the corrosion.