PCB Repair: Lifeforce

Problem

Displays garbage, watchdog resetting.

Diagnosis

Noting that the program ROM labels did not match any of the sets in MAME (and wishing to also verify them), I removed the ROMs for dumping. They were an exact match for the ‘Lifeforce (US)’ set but after putting the ROMs back, the game stopped watchdog resetting. Hmm.

Sockets.JPG
Beware the chunky sockets…

As I already had my logic analyzer set up for 68000 analysis, I decided to trace the game’s program execution to see how far it was getting. The game was failing its character RAM test. The value read back from 0x1200004 was 0xFFFF, instead of 0x0000:

68000.PNG
I really need to get the 68000 inverse disassembler working…

While there are schematics available for Lifeforce/Salamander, they only cover the CPU board. However, I was told that the video board is identical to that of Nemesis, for which complete schematics are available.

CharRAM.png
The character RAM section

Probing around the character RAM, I noticed that A5 was always high. The address inputs are multiplexed by the 74LS157 at 10B, which was incorrectly functioning:

SAL_BAD_10B.PNG
Y1 is stuck high despite the changing Select input…

Replacing 10B however was only part of the solution, as the game still displayed garbage and refused to boot. At least now the character RAM address signals were good.

Continuing to probe around the character RAM, I found that the /WE inputs were never being asserted. I traced the /WE signal back through the CPU board, until I encountered a 74LS244 that was doing a lousy job of buffering the 6800 R/W signal:

13D_LS244.png

sally.png

Replacing 13D had quite a dramatic effect; the game now appeared to be completely fixed. However, there was no sound. As I probed around the CPU board, the VLM5030 speech synth would occasionally start babbling random phrases. Spooky. Probing around revealed that the 68000 was sending sound commands to the Z80 but the Z80 wasn’t reading them. I reseated the Z80 program ROM (11J) and sound began working. Hoorah!

Fix

Reseat ROMs at 18C and 18D.

Replace 74LS157 at 10B (video board).

Replace 74LS244 at 13D (CPU board).

Reseat ROM at 11J.

Discover more from PhilWIP

Subscribe now to keep reading and get access to the full archive.

Continue reading