Some time ago I bought a couple of non-working arcade PCB’s pretty cheap. One of them was Hyper Olympic ’84, the Japanese version of Hyper Sports, which is the successor of the insanely popular Track & Field.
When I bought the board, it was almost completely dead. As you can see in this picture, someone probably spilled something over it (my guess would be soda).


These boards were marked GX330 by Konami. My guess would be that the upper board handles the main program and the audio while the second board handles graphics.
When I tried to boot this board I got a still image showing only some characters and a lot of distortion in the image.
Since it was so dirty, it would be almost impossible if the socketed chips would still make good contact. So I removed all of them from their sockets and cleaned them thoroughly. Some of them had so badly corroded pins that they almost immediately broke off when I removed them from their sockets.
After testing the board this time, I still got nothing more than the still image, but at least the distortion went away. I was already making progress.
I realized that I couldn’t continue repairing this board if I didn’t thoroughly cleaned it. So I removed all socketed chips and the ribbon connectors from both boards and cleaned them with water and soap in the sink.


As you can see, both boards were shining as never before!
I let them dry for a couple of days (probably more than long enough, but I wanted to be sure) and when I tested them again, the game actually booted! The game was running and sound was working too, but the graphics were really scrambled.


Yes the graphics are scrambled, yes the colors are weird, yes the orange bar at the left is strange, but this was a huge step! Now it was possible for me to start debugging a working game.
So, after this step, months passed. I actually wrote a thesis, graduated, found a job and made 3 foreign trips before continuing on board.
Today I started debugging. Since, according to me, the lower PCB handles graphical stuff and the 4 (ee)proms in the lower right corner were heavily damaged, I headed straight for those. When I fired up my oscilloscope and checked them, I noticed they weren’t doing anything. There was just no activity at all arriving at their address lines. That means that some other component is faulty so the game can’t even attempt to access the roms.
So I just took a random address line of a rom and traced it back. This brought me to a component 74LS273 (Octal D-type Flip-Flip with clear) in location G13.

As you can see in the picture, this thingy contains 8 D-Flip-Flops (if you don’t know what a flip-flop is, then you can read something about it here). Essentially these things are just memory units which hold the address data before they go to the roms. When I inspected this chip, I found out it wasn’t doing anything. The reason for this was simple to find out: the clock signal that is supposed to drive this chip (flip the flip-flops) at pin 11 was stuck high. So my next move was to trace back where the clock signal was coming from.
I traced it back to the pin 6 of the 74LS32 (Quad 2-Input OR Gates) chip in position F12.

As you can see, this is a very simple chip and pin 6 (2Y) is just the output of an OR-gate with 2A and 2B as its input. And since pin 4 (2A) was tied low to ground, this OR-gate wasn’t performing any logical function. So my guess is that it was just used here as a buffer to amplify the signal or to delay the signal with the duration of one logic gate. Anyway, I had to trace back the input on pin 5 (2B), which was also stuck high.
This led me to a chip in position F18 from which all readings were faded away. On some (horribly scanned and almost unreadable) schematics I found on the internet, I managed to figure out that this was a 74LS139.

The signal I was tracing was an output on pin 5 (1Y1). I checked both corresponding inputs (1A and 1B) and they were both dead, so this wasn’t the culprit either. Both inputs on 1A and 1B brought me to a 74LS86 (Quad 2-Input Exclusive-OR Gate) in position F16. They arrived at pins 11 and 8 respectively.

So actually they were both the output of a XOR-gate. (3Y and 4Y) Since also here both 3B and 4B were tied low to ground, I only had to check 3A and 4A. Both those inputs were also dead. Well, “dead”… The weird part was that they were fixed at about 1.4V, which is not low and not high. It’s something in between. This might be an indication that there’s definitely something wrong. They led me to the chip next to it, a 74LS163 (Synchronous 4-Bit Binary Counters).

Well, this chip is pretty interesting, since it’s a counter. It basically works like this (simplified): you can store a 4-bit binary number into the chip via the inputs A, B, C and D (with A being the least significant bit) and then every time a rising pulse occurs on CLK, the chip will increment the number it has in its memory and output that on the pins Qa, Qb, Qc and Qd. It’s also important to know that the chip will overflow (and thus can keep counting). This is visualized in the following diagram (click for full view):

On my board, the traces I was following connected to Qc and Qd. All inputs (A,B,C and D) and outputs (Qa, Qb, Qc and Qd) were stuck on an unholy voltage of 1.4V. Weird.
I found out that the inputs A,B,C and D were not connected to anything at all and there was a pretty fast clock signal present on CLK. This means this chip is not used for counting, but for lowering the frequency of a clock pulse.
Since a continuous clock signal is present on CLK, this chip is continuously counting in an endless loop. This means that on Qa, the output will switch from high to low and vice versa every time a rise is detected on CLK (because Qa represents the least significant bit of the output). As a result you should get a clock signal on Qa with half the frequency of the one supplied on CLK. This can actually also be seen in the diagram I posted above.
In the same manner a signal with frequency 1/4th of the original must be present on Qb, one with frequency 1/8th on Qc and one with frequency 1/16th on Qd.
Since on this chip on my board all requirements were met for it to produce those signals and Qa, Qb, Qc and Qd were all dead, I concluded that this chip was the culprit.
I unsoldered it, soldered in a socket and replaced it with a 74LS163 (which I still had a couple laying around of), et voilà. The 74LS163 started counting happily and I measured busy activity on the address lines of the roms I started on.
When I plugged the board in my arcade cabinet, the screen was still scrambled (which I expected), but I could already notice some differences. Colors were good, the orange bar on the left had disappeared and I started to notice more textures. So we’re on the right track!


I hope that I can solve this problem entirely and I will post the next fix here too.