PCB Repair: Gyruss
Problem
Distortion at top of screen:


Diagnosis
As Gyruss is a vertically-oriented game, the distortion is actually present at the beginning of each scanline. The distortion appears to affect the first four pixels of the tilemap layer.
The pixel data for the tilemap layer is contained in ROM 2H. The tiles are 8×8 at 2bpp, with each byte containing 4 pixels. Pixels are stored so that each group of 8 bytes represents 8 consecutive rows. Pixel data is latched into custom IC (3G), which shifts out individual pixels on each pixel clock:

The tilemap is fixed, i.e. it cannot scroll. The bottom three bits of the vertical counter (1V, 2V and 4V) are latched by an LS174 (5G) and then XOR’d with VNOT, the vertical-flip attribute for the current tile. These provide the lower 3 bits of the tile ROM address.
Probing A0, I noticed a step on the falling-edge transition:

This was present at the pin 12 output of the LS174 but not on the input.
Viewed with the LA, the instability is much more apparent. On an address transition at the start of each line, this would have the effect of incorrectly fetching the next row of pixel data for the first four pixels of each line:

Replacing the 74LS174 fixed the issue:


Fix
Replace 74LS174 at 5G.