Star Wars Maintenance 2022

02/06/2022 - Northwest Pinball and Arcade Show (2022)

Atari Star Wars cockpit Atari Star Wars cockpit

The game ran for a few hours after initial setup before the tie fighters had problems. Self test reported matrix errors and a spare game PCB was swapped in. On show day 1 the game ended up dead with no picture. Suspecting the AVG PCB had died and with the math box being on the main PCB, the main PCB from the backup set was coupled with the AVG PCB from the primary PCB. This succeeded in getting the game running again and it almost made it through to the end of show, succumbing to missing tie fighters & matrix errors again part way through the last day.

17/08/2022 - Star Wars Main PCB 'PS1' #002631 repair

Star Wars PCB on the bench Star Wars matrix errors Star Wars main PCB with Arduino ICT

On the bench the game ran with no tie fighters and test mode reported matrix errors. Splitting out the main PCB and setting up the Arduino ICT found ROM, RAM & divider tests passing OK but matrix test 18 "E:MX 5555 FFF5" and 20 "E:MX 2aaa fffa" failures. Using Arduino ICT signal captures found:

MX Test 18 - Failing

7B pin 9 : ff fe bf ff - ff ff ff ff
7A pin 9 : 00 00 00 00 - 00 00 00 00
6B pin 9 : 00 fe a8 00 - 00 00 00 00

MX Test 17 - Passing

7B pin 9 : 00 00 00 00 - 00 00 00 00
7A pin 9 : 1f fe aa a8 - 00 00 00 00
6A pin 9 : 1f fe a8 00 - 00 00 00 00

Comparing the two MX tests the 7A and 7B shift outs didn't match. I suspected IC 7B (LS165) was bad and I fitted a piggyback replacement over the top with pin 9 bent out to capture a reference:

7B pin 9 : 00 fe aa a8 - 00 00 00 00

The piggyback gave an MX Test 18 sequence matching the corresponding MX Test 17 sequence and replacing IC 7B (LS165) fixed all the matrix tests.

19/08/2022 - Star Wars Main PCB 'PS5' #SD001632 repair

Star Wars main PCB with Arduino ICT

Setting up the Arduino ICT found ROM, RAM & divider tests passing OK but matrix test 17 "E:MX 5555 0155" and 19 "E:MX 2aaa 02aa" failures. Using Arduino ICT signal captures found:

MX Test 17 - Failing

7A pin 9 : 1f fe aa 00 - 00 00 00 00
6A pin 9 : ff fe 00 00 - 00 00 00 00

I suspected IC 6A (LS165) was bad and fitted a piggyback replacement over the top with pin 9 bent out to capture a reference:

6A pin 9 : 1f fe a8 00 - 00 00 00 00

The piggyback gave an MX Test 17 sequence matching the reference captures. Since this was the second LS165 to fail on this PCB I decided to speculatively replace all the remaining LS165 ICs 6A,7A,7B that fixed all the matrix tests.

20/08/2022 - Star Wars AVG PCB 'PS4' repair

Star Wars PCB on the bench

A quick verification with the Arduino ICT confirmed that the AVG ROM and RAM tested OK. Running in test mode there was no vector output at all on either X or Y. IC 6AB (AM6012) 'DVX' inputs were all idle and IC 6E (AM6012) 'DVY' inputs were active. Tracing the 'DVX' signals back to IC 5C (LS194) pins 12 to 15 were idle, pin 1 'LATCH1' active, and pin 11 '12MHZ' active. Input pins 3 to 6 were active, pin 9 'S0' idle low, and pin 10 'S1' active. Moving back to IC 14D (LS14) found pin 5 'LATCH2' and pin 13 'LATCH3' both idle high with some clock noise. Mapping state machine output decoder IC 3D (LS42) pins found:

1 - Active 16 - Idle high
2 - Active 15 - Active
3 - Idle high 14 - Active
4 - Idle high 13 - Active
5 - Active 12 - Active
6 - Active 11 - Active
7 - Active 10 - Active
8 - Idle low 9 - Idle high

IC 3D pins 3 and 4, 'LATCH2' and 'LATCH3' outputs, were both idle indicating that the 'DVX' bus was never loaded from the vector RAM. All the individual state machine PROM inputs were active, however. Using a piggyback with pins 3 and 4 bent out confirmed that pins 3 and 4 were still idle, suggesting that the state machine outputs were not selecting the 'DVX' latches. IC 4A & 4C (LS157) inputs and outputs were all active.

It was difficult to tell if the issue was that the vector RAM instructions were not being loaded properly or the vector state machine had a problem executing them. Reviewing the schematics and Star Wars Troubleshooting Guide found that Signature Analysis 'SA' mode would disconnect the instruction load and replace it with an address counter routed through to the state machine. The 'SA' test point was tied low and IC 3D (LS42) mapped out again:

1 - Clock 16 - Idle high
2 - Active 15 - Active
3 - Idle high 14 - Active
4 - Active 13 - Active
5 - Active 12 - Clock
6 - Active 11 - Active
7 - Active 10 - Clock
8 - Idle low 9 - Idle high

AVG state machine PROM input

In signature analysis mode pin 4 was now active but pin 3 was still idle. IC 4B (82S129) inputs looked like a counter, but input pins 4 & 5 had overtones as if shorted to another signal. The signal was still within TTL levels, however. In run mode the two inputs still had overtones. Inspecting the schematics for the value of IC 3D pin 3 deduced it was either 0x2 or 0xA output from the state machine PROM. Checking the ROM image found only a single occurrence at address 0x8B containing 0xA and I suspected the state machine PROM was bad.

AVG state machine PROM removed DataIO UnitSite PROM verify failure

The state machine PROM IC 4B was an 82S129 that was very difficult to source still blank. I had a couple left but wanted to be really sure the PROM was bad before using one, so in this case the PROM was desoldered intact also revealing a small dot sticker underneath. With IC 4B removed input pins 1 to 7 all looked good - the overtone was gone. Verifying the removed PROM in the DataIO UniSite confirmed that 7 nibbles were bad and one of the bad nibbles was address 0x8B. A replacement 82S129 state machine PROM was programmed that fixed the board and the game ran OK on the bench.

02/09/2022 - Star Wars AVG PCB 'PS3' #UR126353 repair

Star Wars PCB on the bench AVG state machine PROM compare Star Wars main PCB with Arduino ICT

I had one more complete set of Star Wars game PCBs. The sound PCB and all its ICs was heavily corroded (a.k.a. "raised from the Titanic"). The main PCB had a very large number of blown ICs (a.k.a. "lightning strike"). The AVG PCB was in good physical condition, better than the slightly corroded spare I was already running. It was marked "dead" and I decided to attempt to repair it as a third working AVG board.

Starting with the Arduino ICT, the ROM check failed "E:1L 3001 ec bc" confirming the "bad" written on IC 1L (2732) EPROM. RAM check failures also matched the "bad" written on ICs 3L,4L,4M (TMM2016-10). A set of MB8128-10 was used to replace the three RAMs and a newly programmed HM482732AG-20 replaced the IC 1L EPROM. All ROM & RAM checks now passed.

AVG PCB track damage

Assembled and in test mode X,Y,Z were mostly idle. The AVG bus was mostly idle and IC 3D (LS42) outputs were mostly idle. In Signature Analysis 'SA' mode:

In this test the vector state machine didn't appear to have any obvious problem. Going back to test mode found signals VGGO, VGRST and HALT all active with pulses. IC 5B (LS194) pins 9 & 10 'S0' and 'S1' both needed to be high to load the vector, but pin 9 was idle low and pin 10 low with high pulses. IC 3D pin 3 LATCH2 was idle high as was pin 4 'LATCH3' so no vector was being loaded. Checking IC 2E (LS32) 'GO' flag found input pins 8,9,10 all active. IC 2D (LS74) pin 6 'ST3' was active as was IC 1H (LS74) pins 8,9 'HALT' active.

I had recently programmed a new state machine PROM 4B (82S129) and noticed that it was compatible with the HP Comparator. An in-circuit compare of IC 4B passed OK. In SA mode an in-circuit compare of ICs 5F,5H,6H,5A,5B,5C (LS194) also passed OK. I wasn't really getting very far so I decided to add support for testing the AVG vector instruction set.

Back on the Arduino ICT, two new RAM failures were flagged - "E:3M 0800 91 0f" and "E:4P 2800 91 ff". These two along with the last remining original TMM2016 were replaced. Testing the 'VCTR' command found that VGGO was clearing HALT but HALT was never being set again. VGRST was setting HALT, however. Testing the HALT instruction also suggested HALT was working. The Arduino ICT program was updated to also support signal capture with the AVG tests.

Signal capture was setup with the following sequence:

Each signal capture was made with the following sequence: IC 4H (LS175) pin 9 'LATCH1' : f0 ff ff ff

IC 4B (82S129):

pin 15 : ff ff ff ff - ff ff ff 00
pin .1 : 00 00 00 00 - 00 00 00 00
pin .2 : 00 00 00 00 - 00 00 00 00
pin .3 : 00 00 00 00 - 00 00 00 00
pin .4 : 00 ff ff ff - ff ff ff ff
pin .5 : 00 ff 00 ff - 00 00 ff ff
pin .6 : 00 00 00 ff - ff 00 00 ff
pin .7 : 00 00 00 00 - 00 ff ff ff
pin .9 : ff ff ff ff - ff ff ff 00
pin 10 : 00 00 00 00 - ff ff ff 00
pin 11 : 00 00 ff ff - 00 00 ff 00
pin 12 : ff 00 ff 00 - 00 ff ff 00

IC 3D (LS42):

pin 1 'LATCH0' : ff f0 ff ff
pin 2 'LATCH1' : f0 ff ff ff - ff ff ff ff
pin 3 'LATCH2' : ff ff ff f0
pin 4 'LATCH3' : ff ff f0 ff

IC 3B (LS174) pin 9 state clock : f0 f0 f0 f0 - f0 f0 f0 f0

IC 3D (LS42) pin 12 'ST3' : f0 f0 f0 f0 - f0 f0 f0 ff - ff ff ff ff

The state machine circuit captures indicated that the state machine was running and loading all the vector counters properly from RAM. However, the state machine didn't transition to HALT state. Attention turned to capturing back through the HALT circuit.

IC 1E (LS02):

pin 11 : 00 00 00 00 - 00 00 00 ff
pin 12 : 00 00 00 00 - 00 00 00 00
pin 13 : ff ff ff ff - ff ff ff 00

IC 2E (LS32):

pin .9 'VCTR' : 00 00 00 00 - 00 00 00 ff
pin 10 'CNTR' : 00 00 00 00 - 00 00 00 00

IC 2F (LS109):

pin 13 : ff ff ff ff - ff ff ff ff
pin 12 : 00 00 00 00 - 00 00 00 00
pin 14 : 00 00 00 00 - 00 00 01 00

IC 1F (LS27):

pin 13 : ff ff ff ff - ff ff fe ff

IC 2E (LS32):

pin 1 : 1e 1e 1e 1e - 1e 1e 1e 1e
pin 2 : ff ff ff ff - ff ff f0 ff
pin 3 : ff ff ff ff - ff ff fe ff

Studying the schematics along with the above captures hinted that the state machine may have been stuck as a result of no STOP signal from the 'Vector Timer'. Using the 'Custom -> Run-Halt' to wait for HALT and inspecting with the scope found:

IC 2A (LS20): IC 3A (LS00): IC 2A (LS20): The floating input pin IC 3A pin 9 was not floating at IC 2A pin 6 and a multimeter confirmed open circuit between the two. Inspecting the underside of the PCB found a couple of damaged tracks. After repairing the damaged tracks, the Arduino ICT AVG tests all passed OK and the expected 0x55 and 0xAA patterns were present on the AVG bus at IC 6E and 6AB.

AVG cross hatch test AVG intensity test

In test mode the display was now running but still had some alignment issues in the cross hatch test, with 'X' being slightly off.

AVG cross hatch test - fixed

Back with the Arduino ICT and the 0x55/0xAA pattern test, IC 6AB DVX3 to DVX12 were all switching OK. The full swing of XOUT and YOUT to +/- 15V was also OK. Comparing IC 6AB pin 14 XREF was a 2V AC sine wave whereas IC 6E pin 14 YREF was 0V. Capacitor C4 (0.01uF) was missing that connected XREF to VR-. Fitting the missing capacitor fixed the test mode alignment and the game mode display had no issues. The AVG PCB was declared fixed.

18/09/2022 - Spare Star Wars interconnect PCB

Star Wars interconnect parts Edge connector trimming Edge connector fitting

Though I had two complete working Star Wars game PCB sets I had only one interconnect PCB, making repair work awkward and putting a lot of wear on the edge connectors. Inspection of the interconnect PCB confirmed it was very simple 0.1" pitch through tracked and could be made from Veroboard stripboard. The exact size edge connectors are hard to find, but any larger connector could be cut down to fit using a key piece. Three Cinch 0.1" 120-contact connectors from eBay were cut down to 86-contacts and key pieces made from an old credit card.

Edge connector spacing Veroboard trimming Edge connector alignment

Three pieces of Veroboard stripboard were needed to complete the whole of the connector. The pieces were cut down to match the original PCB size and edges sanded down to fit together. All the parts were assembled and aligned with the spacing of the original PCB. The 0.1" pitch was good enough for a close match to the original inter-board spacing of the PCB stack.

Repro edge connector - bottom Repro edge connector - top

All the connectors were soldered, completing the interconnect. Testing with a PCB set confirmed the new interconnect was working OK.

01/10/2022 - Inlet fan

EC AM8025 fan assembly Fan connectors fitted Inlet fan fitted

There were already four small internal fans, two on the game PCB, one on the Amplifone HV and one on the deflection PCB. Whilst these had worked well keeping the monitor working reliably over the years, the game PCBs had still had reliability challenges and I'd noticed that the inside of the small cockpit cabinet space still eventually got hot after several hours. There was already grill covered hole in the bottom, left over from the Konami GT pedal, that I decided to add an 80mm inlet fan to draw in outside cool air near the game PCBs. An inline connector pair was built to tap 110V power from the utility power outlet inside the cabinet and the fan was mounted near the hole on small brackets. Testing the cabinet confirmed inlet air flow in the vicinity of the power brick, ARII and game PCBs. Maybe it would make a difference, maybe it wouldn't.

03/10/2022 - Star Wars Main PCB 'PS1' #002631 repair part 2

In game graphics issues In game graphics issues Star Wars main PCB on the bench

Back in the cabinet, one game PCB set still had vector issues in game play. Test mode reported all hardware self-tests passing and the display tests all looked OK. I did also notice that the DIP switch test showed intermittent state. The game PCB was removed for repair.

DIP switches replaced

On the bench, the DIP switch intermittency was quickly confirmed as bad DIP switches - running a finger across them caused the reported value in test mode to change on both SW1 and SW2. Both DIP switches were replaced that fixed the intermittency.

HP compare failure HP compare failure

The vectors looked OK on the bench, and I suspected a power supply voltage dependency. Adjusting the AR II to lower the +5V resulted in the vector issue occurring. Swapping in the spare AVG PCB confirmed that the issue was related to the main PCB, but all the math box tests passed. I still suspected a problem with the matrix processor based on much of the Matrix Processor Address Counter and Block Index Counter not being exercised in the self-test. Given the correlation with power supply voltage, the signal levels on ICs 3H (LS157), 3F, 3E, 6H, 6J (LS191) were checked on the scope for valid TTL levels that all looked OK.

Setting up the HP comparator for 74LS191 found:

Setting up the HP comparator for 74LS153 found: Setting up the HP comparator for 74LS157 found: Investigating the compare failure on IC 3F pin 3 'BIC4' found that compare failure cleared when the power supply voltage was increased. On the scope in both cases the TTL voltage levels looked OK on pin 3. I suspected IC 3F was bad and replaced it.

On retest the vectors still had issues but the compare of IC 3F was now passing. I caught an occasional flash of compare failure on pin 3 still, and confirmed that a slightly lower power supply voltage (now at 4.40V) resulted in compare failure again. Whilst poking around with a scope, a scope lead on pin 14 'INCBIC' caused the compare to clear, and I began to suspect a marginal input signal level or timing somewhere upstream. IC 7E (LS00) pin 4 'WP' with scope leaded caused miss-compare and looked potentially marginal at ~2V high. IC 8E (74S02) pin 10 output looked potentially marginal.

At this point I speculatively considered a marginal timing problem with the matrix RAM IC 5F & 5H. Replacing both AM9128-15 with TMM2016-10 fixed the vectors. Further, neither of the AM9128 worked correctly in location 5F but both worked in 5H suggesting there was something marginal on the upper half of the matrix data bus. Tracing 'BIC4' to 'DB4' followed through to IC 4F (LS245) pin 15 <-> pin 5 'MDB12' <-> IC 5F pin 14 so the compare issue did have a path to the same half of the matrix RAM bus. Checked the scope, IC 5F with AM9128 showed two logic high level lines - one at ~3.8V and the other at ~4.5V. IC 5H had a single ~3.8V logic high. Some swapping confirmed that both AM and TMM RAM in location 5H resulted in a consistent high level whereas in 5F TMM RAM showed consistent high but AM RAM showed the split high. Both levels were still valid TTL high, and I couldn't determine any definitive problem as a result of the TTL high behaviour difference. I suspected there was a bus loading fault somewhere that was going to be very hard to find. With the TMM RAM the game appeared to run without issue across the full range of power supply voltages and was declared fixed.

Star Wars Maintenance 2024




prswan@gmail.com