Monday, 2 January 2017

Super Breakout PCB repair (Bonanza Enterprises Clone)

So part of my Cocktail restoration was to fix the Super Breakout game board that came with it. I knew it was faulty after my initial testing of the cab a few months back.

The board itself has now manufacturing marking or anything to say who made it. From studying photos of Atari boards this appears to be a direct 1:1 copy of a Rev-03 board. The only difference I noted was changing of the audio amplifier which would be a TD1004, this PCB has an LM380 on a small daughter board that plugs into the TDA1004 socket location. Image below showing the PCB in its original faulty state.  

When plugged in with a basic adaptor providing 5V DC for the game logic and video output to my monitor. The game was displaying garbage on the screen that was almost static but some characters did move and change here and there. The game looked the same in test mode as well. 

So checking the reset line on the CPU (pin 40) it was constantly changing state when it should have been held high after the initial board power up, this means the game code is not running correctly for some reason and the CPU is being restarted to try and get the game code from the ROM's running and initialised correctly.

After a few more quick checks of the clock signals and confirming the address & data bus were active, I took a look at the signals on the main ROMs the run the game program and found 3/4 of the ROM select lines we not active. From memory one had no signal and the other two were stuck high. THE IC location was F2 and is a 3901 chip which is obsolete and unobtainable, With the help of someone on the DLF forums and PhilMurry I had some converter PCB's made up which worked with a 7442 IC. 

I had previously made a very rough adaptor shown below.

These new adaptor boards are a vast improvement!

Changing this IC got the ROM select lines active but the game was still resetting and the screen was full of garbage still.  Checking around the reset circuit I found another 3901 IC that I suspected was faulty. This one at location E8 should have been triggering a Timer Reset signal which if working correctly would clear a timing circuit that stops the CPU from being reset assuming everything else was working OK.

Next up I decided to check the RAM with my logic probe, visibly using the probe all the signals were active, but I had little other way to confirm if they were working as the game was not running. I decided to remove all eight RAM's and socket them. I then fitted some new 2102 ram, using this method once the game was running I could put back the original RAM and confirm which one did or didn't work.

So with all eight RAM's changed we had what look like part of the Playfield being drawn but not a lot else. The CPU was still resetting so the code still wasn't running correctly.

Flicking the game into test mode the display was now stable and showing a ROM error, a good sign. This ROM was at PCB location L1. I removed it and cleaned the chip legs and fitted it back in the socket.

Boom! the game was running, but the balls we just faint 'dots' on the screen and not moving correctly. More diagnosing found another two 3901 IC's that were faulty, each of these IC's should have been sending ROM and position data to the Motion generator circuit where the balls and their movement is calculated. These two IC's were at locations K8 and P7, the upside of fixing this fault was that it also fixed an audio fault i hadn't yet discovered! The IC at P7 and output signal (*TONES) on pin 11 was stuck high. This is an enable line for the audio latch that combines data signals and turns them into the game sound. I check with an audio probe and found I had a constant garbage sound playing when in game and test mode.

So with those two IC's replaced the game looked to be playing, test mode showed no problems, but the balls were being doubled up, each of the three balls was being generated twice, they were tracking each other and moving in an identical pattern, they just shouldn't have been there. I thought this would be an easy fix... 

Fast forward Seven or so hours of faultfinding I found the problem. Now this was something a Logic probe and an Oscilloscope couldn't help find.

Eventually the only IC's I was left with that could have something to do with the problem were a pair of 7483's they are used as comparators to compare a RAM value with the vertical line that is being displayed, if they match three load pulses are triggered which are used by the video shift registers.

I didn't have replacements for these but decided to remove them and fit sockets. I intentionally put them back in different positions, and the fault appeared to be gone. Fitting them back into their original positions the fault came back. Looking at the schematics we can conclude that the IC at M4 had a faulty input on pin 13. I will temporarily use them but have ordered some new replacements.

A final look at the board wired to my test rig. The total IC's replaced is as follows:

F2 - 3901 - ROM Selects
F,H,J,K4  - Ram 2102
F,H,J,5     - Ram 2102
E8 - 3901 - Reset circuit
K8 - 3901 - Ball motion circuit
P7  - 3901 - Ball motion circuit & Sound
M4 - 7483 - Ball motion circuit

The game has been play tested in the cabinet and all controls, sound, Input and Output all work correctly.

If you made it this far well done!

Thanks for reading, Mart. :)