ZZZ

Scorpion Restoration

Background

Since I had already restored a variant Super Cobra the plan was to use a second Super Cobra cabinet that was the same base cabinet for Scorpion to create and apply a Scorpion kit starting with the game PCB.

Zaccaria Super Cobra (2) Cabinet Restoration

05/04/2021 - Scorpion game PCBs

Zaccaria/IGR Scorpion PCB set - PA20210405 Zaccaria/IGR Scorpion PCB set - PA20210406

I had two game PCB sets to use as a main and spare. The initial assessment for each was:

PA20210405

PA20210406 To begin with all the socketed IC's were pulled and pins cleaned. On retest all the crashing issues on both boards were resolved and flexing didn't result in any problems.

06/04/2021 - Scorpion game PCB sound cap kit

Scorpion leaking capacitors Scorpion cap kit Scorpion leaking cap damage

One of the game PCBs had leaking capacitor damage to remediate and I decided to replace all the capacitors in that section on both PCBs, making up a couple of ad-hoc cap kits. The PCB under the leaking capacitor was discoloured but the tracking was still intact.

Scorpion cap kitted Scorpions cap kitted

After the cap kits were fitted a retest confirmed the sound was still good.

Scorpion Sound PCB Cap Kit

Location Value
C104 1000uF/16V
C105 100uF/16V
C108 220uF/16V
C109 220uF/16V

04/05/2021 - Game PCB #PA20200405 repair

Game PCB on the bench Scorpion missing sprites

One of the game PCBs had developed a graphics fault, missing sprites. The scope confirmed IC 3M/3L (2114) object RAM data bus looked active OK. Mapping out IC 4J (LS273) found everything active OK:

Pin Signal Pin Signal
1 Hi 20 Hi pulse
2 Hi pulse 19 Hi pulse
3 Hi pulse 18 Hi pulse
4 Hi pulse 17 Hi pulse
5 Hi pulse 16 Hi pulse
6 Hi pulse 15 Hi pulse
7 Hi pulse 14 Hi pulse
8 Hi pulse 13 Hi pulse
9 Hi pulse 12 Hi pulse
10 Lo 11 Clk

IC 4H/4G (LS157) pin 1 had a high pulse and IC 9A (LS175) sprite data latch had all lines active. ICs 9H & 10H (LS161) counter outputs feeding the sprite RAM address were all active on the scope. Given the way that the background and sprites are mixed on this HW it wasn't easy to tell where the sprites were going missing.

Scorpion Arduino ICT support HP10529 comparator

To make it easier to isolate the sprite display I wanted to clear the background and leave only the sprites in a fixed display to trace. Support for Scorpion was easily added to the Arduino ICT based on the existing Scramble platform and I also added a custom function to clear the background characters.

With video quiet (a "RAM Write All AD" followed by a "Clear Bk") the video probe didn't see any sprite data at IC 6D (LS273). IC 8E (LS157) pins 4 and 12 showed sprite data off picture that confirmed sprite data was going into the line buffer logic but not coming out. IC 9F (LS32) pins 1,2,3 all showed sprite data. IC 8A (LS00) pin 4 showed sprite data but input pin 5 and output pin 6 didn't. IC 9C (LS20) output pins 8,6 were idle high and only IC 9D output pin 8 was active with low pulses. IC 8A (LS00) pins 4,5,6 and 11,12,13 were all active. IC 8B (LS08) pins 3,8 were active as was IC 8D (LS08) pins 6,11,8. The mixing appeared to be based off the inactive state of the ~GR0,1 & ~GC0,1,2 signals. If that theory was true then something in the circuit would need to clear the RAM state back to inactive. There was a collection of gates (IC 9E/9F) taking in a portion of the sprite RAM address plus a couple of display timing signals and outputting a signal that gated off the sprite RAM data inputs as the very last mix stage. This looked like it could perform that clear function.

Mapping out IC 9G & 10G (LS86) and found IC 9G pins 11 & 8 always low:

Pin Signal Pin Signal
1 Active 14 Hi
2 Lo 13 Lo
3 Active 12 Lo
4 Active 11 Lo
5 Lo 10 Lo
6 Active 9 Lo
7 Lo 8 Lo

Corresponding input pins 12 & 9 were also always low, fed from the outputs of counter IC 9H (LS161). Checking the counter input signals HPLA0-7 confirmed they were all active and I suspected one of the counters was bad. Setting up the HP10529 comparator detected a compare mismatch on IC 10H pin 15, the ripple carry out signal feeding IC 9H. A quick check with a piggyback on IC 10H brought back visible sprite data.

Game PCB on the bench Scorpion game - title screen Scorpion game - boss screen

Replacing IC 10H (LS161) fixed the sprites and the game was running OK.

23/05/2021 - Game ROM dump

Scorpion main PCB EPROMS Scorpion variant EPROM SCO C2A

The Arduino ICT identified the ROM set as MAME "scorpiona" except for the hand written "SCO C2A" EPROM at IC 2A that was unknown. This ROM was dumped:

Scorpion SCO C2A ROM Dump

23/05/2021 - Scorpion DIP Switch Map

There were some challenges figuring out the DIP switch settings for this game. The table below captures my notes for how MAME and the physical switches map.

DIP
No.
8255
Loc.
8255
Pin
8255
Port
MAME
Function
1 IC 44 19 PB 1 Lives
2 IC 44 18 PB 0 Lives
3 IC 44 17 PC 3 Coinage
4 IC 44 16 PC 2 Cabinet/Cocktail
5 IC 44 15 PC 1 (unknown)
6 IC 44 12 PC 5 Difficulty
7 IC 44 10 PC 7 Difficulty
8 IC 38 16 PC 2 (unknown)
Jumper IC 38 15 PC 1 (unknown)

05/08/2021 - 12hr burn-in test & game PCB repair part 1

Scorpion not booting

During a 12hr burn in test the game PCB developed a fault and no longer booted.

Scorpion game PCB with Arduino ICT Scramble game PCB schematics Scorpion game PCB fixed

The game PCB was removed, disassembled and connected to the Arduino ICT. On the bench no graphics were displayed. An ICT "ROM Check All" passed OK but a "RAM Check All" resulted in a hang that typically indicates missing VBLANK or similar video timing problem that hangs the Z80 bus. This was confirmed with an "Interrupt Check" that also failed, indicating no VBLANK interrupt was being generated.

Since the bottom game PCB was almost identical to Scramble I used Scramble schematics as a reference. Probing with an oscilloscope found IC 9M (LS74) input pin 9 VBLANK idle low. IC 9M inout pin 12 'D' was idle low and pin 11 'C', the 16V count signal, idle high. Moving back to the video counters IC 6M (LS161) output pins 11 to 14 were all active. IC 6L (LS161) output pins 11 to 14 were all active. IC 7L (LS161) output pin 11-12 were floating, 13 floating with a weak signal and 14 active. I suspected IC 7L was bad and replacing it fixed the graphics. All Arduino ICT tests passed OK and with CPU the game ran and played OK but the sounds weren't quite right.

08/08/2021 - Game PCB repair part 2, sound

Scorpion game PCB sound repair

A quick "AY Check" with the Arduino ICT using the Scramble sound configuration failed with "AY3 0004 04 00". Scorpion has a different sound PCB than Scramble but appears to be a superset - Scramble sound + 3rd AY-3-8910 + speech. Support for Scorpion sound was added to the Arduino ICT and the mapping of the 3 x 8910 documented. This configuration confirmed that it was IC 37 (8910) reporting failure on the ICT. ICT sound tests were also revealing that IC 37 audio output was very low at ~200mV p-p versus 1V p-p for IC 36. I suspected IC 37 was bad with a stuck data bit D2 and replacing it fixed the ICT AY check and audio output. In the game all sounds appeared to be working again. The PCB set was reassembled and returned back to the cabinet.




prswan@gmail.com