*** Note: I format this on a PC - not sure how it will look on a phone. ***
*** It's been educational. Nintendo is a bit of a learning curve for sure.. If there are good clean schematic scans out there.. let me know! ***
*** This is a cross post from my site ***
I've always planned to do some Nintendo repairs and did a little on my own Donkey Kong board when the sound failed. I have a couple of them in my stash and even a couple of Punch Outs that I plan on working on.. Just never got to them..
That changed when one of my arcade customers asked me to fix a Popeye set.
I had started a bench adapter for Donkey Kong TKG4 - but had never completed it.. Luckily it can do a few different boards including Popeye.

Here it is completed - it's relatively simple. I needed to use the Nintendo color inverter board to get the video to display. Even then Popeye will not sync to my LCDs for some reason (which are just simpler to work with on the bench). I also have a dead Sanyo EZ for the bench to get going.. also on the list.
Board #1 - Popeye - Board in for repair

Here is where I started - Power and video connections and a lot of probing around trying to figure out what was happening. The boards powered up to garbage. Starting at the CPU the /RESET line was pinned low.. Something was obviously messed up in the reset circuit. Pulled the CPU and it would not watchdog. I pulled the 4 program ROMs, 1 was bad (7A).


To me, the reset circuit seems to be needlessly complicated. At first it seemed like the LS161@2L could be the issue - except Pin1 and 9 were being pulled low. I removed it to divide and conquer the problem. The LS161 was good and the /PONRES (Power on reset) was low. Spent some time on the /PONRES circuit and the only thing that made sense was the 74123 was bad. Removed it and my tester said it was good. This is where having another Popeye board would have been helpful. Even if it didn't work - they all die differently. I checked my dead Donkey Kong board and this circuit seemed to be different but it had a 74123 - so I borrowed it (never ran into the chip before). It did fix this circuit however. It now holds the /PONRES line low for just half a second or so before going high. Sometimes the testers say chips are good when they are not.
During this 'discovery phase' I worked on an FPGA Tester config and set up ROM and RAM tests. The memory map shows lots of RAM segments, but the only testable range was x8C00-x8FFF. I got that to test good (for a while).. The ROMs were jumping all over the place.. Even pulling them returned odd checksums vs. stable 'empty socket' checksums. Determined the PLA(74LS367@6H) was bad. Replacing it stabilized the checksums - but they kept coming back different than the actual ROMs. (I believe this is from a copy protection scheme where they flip bits to prevent pirating, etc.) While getting the ROMs to read correctly, the RAM@7H stopped reading. Checking the chip - /MEMWR was not functioning. Tracing backwards - the LS04@4K had died - it was a Fujitsu.. Replaced it and the RAM was testing good again.

Now that the RAM and ROM were readable from the CPU socket - I wanted to see if I could get the board to do anything. Above I pulled up Pin1 and 9 on the LS161@2L and pulled the reset pin (26) on the Z80 - I got it to boot and do just a little bit.. Notice the players on the bottom.. Finally something was working a little bit.

I went back and refocused on the /PONRES - the 74123 got swapped and that circuit at least started working as expected.. Working all through the watchdog reset side of the circuit.. I could not get the board watchdog reset on its own. Somewhere along the way I had the idea to pull the Z80 BUSRQ pin26 vs the RESET pin25 and pulled it high..

It let the game boot much further that my prior trick... and also gave me a clue.

BUSRQ was connected into a section of the circuit I had not probed around in up until this point.. I spent time looking at all the chips until I found LS04@1A was not working.. Replacing it got me to a bootable (without bypasses/pullups) PCB stack.

There is more to do.. I got it to boot clean below.. but it resets randomly..