The board was recently purchased off ebay with known video problems. The board was in excellent condition, no physical damage or scratches. The video issue ended up being missing sprites, where some of the missing sprites would randomly show up sometimes. All ram and mask rom crc's test passed the game's short/extended tests. I dumped the 2x progam roms and sound rom, all had the correct crc.
There are schematics available which greatly helps tracking stuff down. The sprite engine mainly consist of 2x 120pin custom ICs and a 2K ram chip. I initially checked them for loose pins and then probed them but didn't see any obvious issues. The board has the sprite engine plus 3 tile layers and a prom is used to determine which one to use for a given pixel. The address lines of the prom get used to signal if the sprite/tile layers want to draw a pixel and the prom data lines get used to determine which one gets drawn. Only 2 of the data lines on the prom get used and they feed into the 2 select pins on a couple 74ls153s (Dual 4 to 1 Selector/Multiplexer) where the select pins determine which of the 4 inputs gets passed along as the output. I probed the prom and all the signals looked sane.
My initial thought was maybe the prom was bad and was causing the background tile layer to get selected over the sprite. So I pulled the prom, dump and checked the crc against mame. The crc was good, so I reinstalled. Next I shorted the select pins on the 74ls153s in such a way they always selected the sprite input and got this.
The sprites were still missing. This implies the issue was upstream from the prom/selection and likely meant the sprite engine doesn't think the sprites should be shown. Unfornutately this points at those 2x 120pin custom chips
I did some additional probing and continuity checks for everything going in/out of the custom chips and didn't find anything. I swapped both of the customs with known working ones and no behaviour change. WIth those ruled out there was really only 2 things left. The 2K of dedicated ram for the those 2x custom chips and the main cpu's ability to write to that ram (via the one of the custom chips). The 2K ram contains the data about what sprites should exist on screen, including a bit to determine if the sprite should be shown or not.
If either situation was faulty the game's internal ram test should catch it, right? I double checked signals/continuity again between the ram chip and the custom and they were good. I decided to test the ram test. I shorted 2 of the data pins on the ram chip and powered on, and the game showed it was bad. I then tried shorting 2 address pins and the game showed it was good. I tried this a few times shorting different address lines and the game always said it was good. wtf
Pulled the ram chip, tested in an external tester and it was bad. Replaced with a good chip and issue fixed.
There are schematics available which greatly helps tracking stuff down. The sprite engine mainly consist of 2x 120pin custom ICs and a 2K ram chip. I initially checked them for loose pins and then probed them but didn't see any obvious issues. The board has the sprite engine plus 3 tile layers and a prom is used to determine which one to use for a given pixel. The address lines of the prom get used to signal if the sprite/tile layers want to draw a pixel and the prom data lines get used to determine which one gets drawn. Only 2 of the data lines on the prom get used and they feed into the 2 select pins on a couple 74ls153s (Dual 4 to 1 Selector/Multiplexer) where the select pins determine which of the 4 inputs gets passed along as the output. I probed the prom and all the signals looked sane.
My initial thought was maybe the prom was bad and was causing the background tile layer to get selected over the sprite. So I pulled the prom, dump and checked the crc against mame. The crc was good, so I reinstalled. Next I shorted the select pins on the 74ls153s in such a way they always selected the sprite input and got this.
The sprites were still missing. This implies the issue was upstream from the prom/selection and likely meant the sprite engine doesn't think the sprites should be shown. Unfornutately this points at those 2x 120pin custom chips

If either situation was faulty the game's internal ram test should catch it, right? I double checked signals/continuity again between the ram chip and the custom and they were good. I decided to test the ram test. I shorted 2 of the data pins on the ram chip and powered on, and the game showed it was bad. I then tried shorting 2 address pins and the game showed it was good. I tried this a few times shorting different address lines and the game always said it was good. wtf
Pulled the ram chip, tested in an external tester and it was bad. Replaced with a good chip and issue fixed.