PCB Repair Logs Amigo
Amigo (Amidar Bootleg)
The short version - Faulty Mitsubishi M5L8255AP chip
The long version -
Picked up Golden Axe for buttons last month and the seller had another couple of very old boards for sale, and as I love the really vintage stuff I blew what I had saved on GA on a previously unknown and faulty game - Amigo
Initially it held no interest, based on the screenshot the seller had included, it looked very basic compared to the other ancient game he was selling "The Pit". The pit has much snazzier graphics but 5 minutes of the Pit in MAME and I knew I would never play it again - it was horrible, much like a ZX81 game, just with colour, jerky and irritating. Amigo on the other hand is basic but rather slick, and quite addictive. It’s like PacMan, except your job is to move round the maze clearing paths around the blocks that divide the maze into pathways. Once you have encircled a block it fills with colour. Your job is to fill all the blocks while avoiding all the enemies that drift around.
When it arrived I admit I was not pleased, the board had been clumsily modified/hacked around and as it was sold as faulty that is never a good thing to see. Is it faulty because of the modifications? Why was it being modified anyway? To change the game, or to attempt to fix a fault?
With a faulty board that is untouched you can at least start with the assumption that it worked once, and is therefore is connected up correctly (bar any damage). With a board that has been buggered about with this is far less certain. The seller had sold it as faulty, stating "control issues", I thought this would be an easy fix, control issues are often just faulty logic between the input lines and the CPU.
Anyway I plugged it in and the game booted, gave itself credits and started up, the main sprite went hard right, slammed into the wall and fired off all his allotted jumps in one go, then was killed by the baddie he failed to avoid - and so it went on, the board slowly coining itself up to 99 credits while it repeated the whole charade - yup, she's faulty.
I started off looking at the mod, 3 wires added to the lower board, 2 to the upper board, all different colours and weights (suggesting multiple attempts), burnt insulation, gloopy soldering, a couple of tracks had been purposefully cut and then wires soldered on to bridge the cuts (fairly standard troubleshooting technique). There was also one 74LS00 with half its legs cut off, the chopped legs went to tracks on the PCB which suggest the legs were there for a reason. I decided to reverse the mod entirely, I took some good up-close photos of the "before" state and put the board back to the state the PCB layout suggested. This took a working slight haunted board to a totally borked board, it did the now familiar "I am a Z80 and I have crashed" display.
The fact the board is a bootleg further muddies the water - they are often not that well made, it’s possible that this modification, although done in a rather ugly manner was actually done when the board was brand new, to overcome a mistake the bootleggers made in the PCB design, or perhaps the game logic was so similar to another game they ripped off that they used the same PCB and hacked it around to save designing another PCB mask.
And so it seems that this might be the case, the mod takes an important CPU line (NMI) from the lower board to the upper board. It does this by way of flying wires to an unused pin on the ribbon cable - i.e. this line was never included in the PCB design, and some games may not need it anyway, tho this one clearly does.
So I slowly put things back to how they were in my pre-photos and the game came more back to life the more I put back, and so did the ghost player.
The simple logic I was hoping to see between the control input lines was not there - what was there was a 40 pin chip a Mitsubishi M5L8255AP, which google said was a "Programmable Peripheral Interface Controller". Cue heart sinking again, "programmable" is never a good thing to see, coz if you need a spare you need to program that spare. It turns out that in this case it’s not a problem, programmable simply means it can do a number of things depending on how it is connected up, there is no actual program dumped on the chip, it does what it is supposed to by virtue of the circuit it finds itself in. The board had 2 of these back to back, the inputs from the joysticks hit one of these chips, along with the jump, coin up and start buttons.
True to standard arcade behavior, all the joysticks, coin and jump lines are held logic high (i.e. a 1), when the button is pressed, or the joystick moved the relevant line is connected to ground, shorting it out effectively, but pulling it logic low (i.e. a 0). I know my cabinet wiring is not haunted, but with my logic probe I could see these lines bouncing around all by themselves, even before I had cabled up the player control lines on the adaptor. There is nothing between the chip inputs and the edge connector except a resistor and a ceramic cap yet this PPC chip is behaving as if someone is at the controls. Fired up the damn-this-is-useful-how-the-hell-did-I-get-by-without-it desolder station and whipped the 40 pin chip out. With that chip removed the game started and went through its normal attract mode displays without doing anything else, clearly nothing else involved in the haunting beyond that one chip.
Aquired some new scrap boards which had 5L8255 on them, neither were the Mitsubishi version of the chip but that rarely matters. Fitted a socket and dropped a 1981 Intel version of the chip in place and fired up the board, it came up normally and started running in attract mode. Pressed the coin button and it coined up, then the start button and the game started, everything worked!
Finally I tidied up the modifications with hookup wire, removed the IC socket I had fitted for the mangled LS00 and resoldered it back in place.