A mate of mine picked up a faulty Ms Pac-Man PCB recently as I had offered to teach him how to fix arcade boards, his wife had fallen in love with a MsPac machine when in the US so this was a worthy first repair candidate. The following repair log is written as if I did all the fixin', mainly because its too hard to work out who did what and when, but basically he did most of the soldering/desoldering and scoping, I did the steering, and buggered around with some vintage synths in the background.
Physical inspection of the board threw up a few issues, it seemed there were two chips missing based on the empty sockets...
...the amp chip had suffered some bodgery in its past...
...a resistor was snapped in two...
...and there were some signs of work around a 74LS74 which I expertly failed to photograph. It had a dodgy looking leg and there was traces of burnt flux which you can see on the photo of the entire board to the left of the side-by-side blue capacitors in the bottom right.
So with the eyeballing over it was time to power it up, which required a harness. Being a bootleg means you have to take all online pinouts with a pinch of salt until you are sure they make sense for the board you have. The official MsPac and most bootlegs follow the standard Pac-Man 44 pin pinout, but this one had a 38 pin edge connector. It iss easy to verify whether a pinout is correct enough to avoid damage by confirming where the power rails connect to, whether the 5v pins connect to the 5V legs on the ICs, and the same with ground. Once I had verified the pinouts I made up basic harness with just 5V, ground, and video outputs. to get things going. The board did nothing, absolutely stone dead, which was how it was described by the last owner.
A scoot around the board proved the voltages were correct and in the right places, the CPU reset was high, but there was no clock signal on the Z80 CPU. This was the prime suspect fault as without clock signal a CPU will do precisely nothing. But as the board was filthy I decided to give it a bath, which meant removing the ROMs, so I may as well read them while they are off the board.
The ROMs all read ok but came back as completely unknown...
but this board uses 4 27c64 chips, rather than the 8 27c32 (or 25c32) chips that a standard MsPac uses. So each of my ROM dumps contained two of the original ROMs back to back which is why they were unknown to MAME, the MAME version of this game has 8 4KB files, rather than 4 8KB files. So I split the files in to the right portions...
...and all were recognised as a known version. So the ROMs were all intact and I knew which version I had too.
Meanwhile, the board got a good scrub...
....and was left in the sun for a couple of hours to bake dry.
Next step was to investigate the empty sockets, one was a socket soldered on top of the video colour PROM, which thankfully looked intact and undamaged.
The other empty socket took some guess work, based on the only decent resolution photo of a similar bootleg board I could fine, it seemed that the socket probably should contain an 74LS02. I could have attempted to work it out from the schematics of the original board, based on the assumption that bootleggers rarely did anything clever to the circuit design so even if the board looks very different to an original it rarely is at the circuit level. I didn't have an LS02s handy so I moved on as the lack of the CPU clock was the main concern.
To track down the missing clock it always makes sense to start at the crystal itself, have met quite a few boards with dead, or missing crystals, but this board had a rough sine wave signal coming out of the crystal, which was present all the way through the downstream 74LS367 gates. The signal does snake through this chips individual gates with the output of one being fed back into another on the same chip so I resorted to the schematic for the official PCB at this point to sanity check what I was seeing. If it was a complete match I knew I could probably rely on the schematics for the rest of the board, if it wasn't a match I would have to draw it out on paper and see if it made sense. In this case it was a direct match. This next bit gets hard to describe without the relevant section of schematic itself, so here it is with some colour coding I have added.
The big chip on the right is the Z80 and the input pin at top left marked yellow is the clock input pin. This connects to the striped diagram bus, which has absolutely no relevance to the PCB itself, it is purely an aid to drawing the schematic to keep them readable. The signal coming off this diagram bus is marked 1H, so you have to follow the diagram bus until you find where the signal 1H joins it, which I have also marked in yellow. I have labelled the crystal and all the individual gates on the LS368 chip too as they form the majority of the first stage clock system. The green dots are where I could see a healthy clock signal, which was on all gates except for the gate that feeds the Z80 clock chip, which I have marked in red. It had no input, so I had no output on this gate which is fine, except the input should be the opposite of the output and both were low, if the input is low then the output of this gate should be high.
The lack of input to this gate suggested the issue was the sourer of the 1H signal, which was the Q output on the manky looking 74LS74 chip that the schematic says is at location 8C. As this was a bootleg PCB the location IDs on the schematic are meaningless, but the circuit was identically connected up for everything I was looking at. The fact both input and output were low on this 367 gate suggested either the clock input pin on the Z80 was stuck low tying the gate output low, or the 368 gate was bad, or the pullup resistor on the CPU clock line (marked with blue dot) was bad, or shorted. This resistor should have been a 220 Ohm but it measured 32 Ohms on the board. The Z80 was easy to rule out, putting it in another Z80 based board proved it was fine, also when the Z80 was removed from the PCB the clock line was not released which it would be if the Z80 was cause of the short. This left the pull up resistor itself. Without a pull-up somewhere on a line it will never reach logic high. The resistor is there to pull a line to 5V, to a logic "high", but you can't connect it directly to the 5V on the PSU as the PSU will accept this as a challenge and happily deliver 5 Amps into the line until the weakest part of the circuit nominates itself as the fuse and vapourises. So the pull up is a current limiting resistor that safely gets a line to logic high without allowing too much current to drain through the path. Once you have the logic high, a TTL gate can connect it to ground to create a logic low as required. Once the connection to ground is released the line will spring back to logic high. A logic high is effectively the default condition in standard TTL so you need pullups in a lot of places. Some chips have internal pull ups, 74LS368s do not, so the output needed that pull up to achieve the correct logic high that it should have when the gate input is both low, and the chip enable pin (tied to ground by the board) is low, i.e. chip enabled.
Some poking around brought me back to the prime suspect, the 74LS74 (which is a dual flip flop, both of which I have marked orange o, its SET inputs (marked PRE) also require a pull up, and they share the exact same pullup resistor. So if the 74LS74 was shorted internally it would negate this pullup, shut down the clock output and kill the clock input line to the Z80 in one hit. It wasn't conclusive but as the 74LS74 was a bit mangled looking it was the main suspect, so it was removed.
Once the solder was removed the state of the chip became clear...
...someone else had been here before.
With the bad 74LS74 off the board the pullup resistor now read 220Ohms again proving the theory, the chip was shorted internally. A new 74LS74 soldered in its place the clock system lit up end to end and the board made its first attempt to boot giving a screen covered with flickering lines and in an awesome fluke, a trio of superimposed MsPacs
Eventually the flickering lines would cease and the MsPacs would remain frozen on screen until I rebooted.
It would do this consistently, only when a spare 74LS02 was installed in the other socket would it start the correct boot process, starting with the crosshatch and progressing to the RAM tests..
These would get to a certain point and the board would and lock up solid needing a power cycle to try again. It would do this over and over again, but on one rare occasion the board dispensed with the RAM tests and actually started to run the game the instant the power was applied. Appart from some flickering bands of colour striped corruption and violent flickering that the camera didn't really capture...
The board seemed to be running happily, MsPac would drift into the left corner, eat the power pill and sit there until the ghosts came calling. Which is what the board should do with no control inputs. However on power down it was back to the usual behavior of going through the RAM tests and crashing. At this point I fixed the snapped resistor but it changed nothing, I didn't think it would. I managed to get it to jump into the game one more time but it took about thirty power cycles and seems to be a pure fluke.
As it was jamming mid-way through the RAM tests the most likely candidate for this actually was the RAM. Looking at the MAME driver this board has a whopping 3KB of RAM laid out in the Z80 address space as follows.
4000-43ff Video RAM 1KB
4400-47ff Color RAM 1KB
4c00-4fff System RAM 1KB
So I decided to fire up the Fluke to have a good poke around, and for some reason to take no photos of the event at all. With the Fluke and a Z80 pod I could could run in-depth tests each of the 1K blocks in turn, the system RAM and video RAM were fine, but the colour RAM gave read write errors.
Each of the 1KB blocks is provided by 2 2114 chips each providing 4 bits of each byte, with their /CS pins tied together so they can be selected as a pair.
The six chips are therefore divided into 3 pairs, and according to some online doco the colour chips on an original Ms Pac are ICs 4L and 4P, which are controlled by the output pin 11 on a 74LS139 at 5L. So fishing around for the nearest 74LS139 on the board I found one which had an output pin 11 that was tied to the /CS on the upper most pair of 2114s in the stack of 6 - result!
As each chip contributes 4 bits to the byte I could work out which of the colour RAM pair was bad by jamming the data outputs with a metal probe while reading from at a single location in that 1KB with the Fluke. I programmed in FF (which is all bits in the byte set high, or 1111 in one chip, and 1111 in the other, or 255 in decimal) into a byte location within the colour RAM range, then read it back. The main fault exhibited itself by the fact the second F in the FF byte I read back was constantly flickering on the Fluke as the bad chip kept thrashing around and changing its mind about what it held. I could therefore poke each chip and see which one annoyed the stable first F, this was the good one, so the one that was the cause of the fault was the other one, which was the second one down in the stack.
Fitted a new one ...
and fired it up.
The game now progressed all the way through the health checks and booted to the game every time.
Next step was sound, the original amp chip looked knackered but I added the wires in the harness to give 12V and connect the speaker and powered up the board - silence, no hiss, power-on pop or crackle on adjusting the volume. This was not unexpected as the amp chip had all sorts of weird work done on it, some legs were pulled clean out of the board, there were capacitors with only one leg connected and the ominous completely missing pin.
I tracked back the audio to the output section of the board, which was on completely the other side of the board and injected the signal from there into an external amplifier and got the sounds of a healthy MsPac game coming through. So the board was making sound, it just was missing a working amp.
The simplest first thing to try was to rebuilt it as it probably once was, so the amp chip was desoldered, tidied up, refitted and an attempt made to make a connection to the remains of the missing pin....
...by filing down enough of the plastic case to get to the metal stump to solder to...
...again this produced silence. The weird thing about this amp section is that according to the data sheet the capacitors that look original are the wrong rating, majorly wrong. It expects 47uF and 100uF support capacitors, yet the ones on board were all 6.8uF. The datasheet did potentially explain why the amp had been buggered about with so much. The chip on board is the WR variant which has the pinout reversed from a normal HA1366 chip, so possibly someone was troubleshooting this with the pinouts for the more normal amp chip and was pulling legs to try and connect things as they thought they should be connected, and snapping off pin 8 (or pin 3 as they though) in the process.
I replaced the capacitors on board with the correct rating support caps the datasheet specifies...
and the amp started to show some signs of life, by getting slightly warm on power on. The loooong legs on the caps in the above photo was because I really thought they would only be required long enough to confirm the amp chip was knackered. The total silence was tracked down to a break in the audio output pin track, when buzzing through I must have been a fraction of a mm out with the probe and it buzzed through as connected when it wasn't. Fixing this up restored the sound but it was quite distorted at times so I was not confident the amp was in good health.
This PCB was actually quite well designed considering it is a bootleg, the amplifier section can take either the HA1366WR chip or the more common MB3712 chip, each with their own set of leg holes. There was also through holes to provide each option with its own support capacitors. So I picked up some NOS MB3712 on the forum (thanks for that RocK-Ozla) and re built the amp section up for that chip option. This fixed the sound up beautifully, all distortion gone.
The final part of the repair was to fit the control lines to the harness and give this board a play test for the first time in probably many many years, decades perhaps. Once these were fitted the board was transferred to my JAMMA cabinet for some uncomfortable play on my horizontal screen. The penultimate fault became clear here, the display was majorly affected by the audio, the screen geometry would wobble when the board was coined up and shimmer majorly during any music. The only logical cause for this was the old axial capacitors on the 12V power rail input and the audio output. These were replaced ( as can be seen in the previous photo ) and another nice feature of the board became evident, the board has through holes for both axial and radial caps in these locations so this could be done very neatly.
At this stage the game was considered fixed and my mate carried it off to install in his newly acquired (for this game) vertical cabinet, I expect that would be the end of it but the final fault raised its head. The game powered up ok in his cabinet, but the screen blacks were grey and fuzzy, it would temporarily lose sync on coin up and when a game was started the screen would really struggle to hold sync and most bizarre of all the game would start to slow down, the audio would drop in tone, break up and the game would then crash and reset. The cab wiring and monitor had been proven with a Raiden DX PCB some days before so the only logical option was either a voltage issue or a grounding one. So I headed over with a multimeter and a point to point probe I made up some years ago, basically just a length of wire with a spiked probe on each end. The voltages checked out fine, which left grounding as the only logical cause, and it was. The PCB has a ground plane on both sides of the board but it doesn't join them together anywhere itself. It expects the cabinet wiring to do so, which it didn't, and neither did the harness, so the board had two grounds that were floating with respect to each other, so no surprise crazy stuff was going on. My test bench wiring uses very chunky ampy wires on the power and ground feed which are so fat it connects to 4 JAMMA pins in one joint which explains why it worked fine on my bench and in my cab. By joining the upper and lower ground planes together with my spike probes while the game was running the screen would snap to attention, the blacks would instantly flick to full black, the game would coin up and run perfectly. All it took was for an small addition of solder to the harness to join a solder-side ground pin to a parts-side ground pin and the fault was cured.
Game fixed, would love to know when this one last worked, could be twenty years ago I guess.