Atari Championship Sprint - Playfield graphics issue in certain tracks

magicianlord77

New member
Joined
May 24, 2023
Messages
21
Reaction score
4
Location
Montevideo, Uruguay
Hi guys, my Championship Sprint is having graphical issues only in tracks 5 and 6:

csprint2.jpeg

The issue is color jailbars, all the rest of the game plays perfect. Here is track 6 from the test mode:
csprint1.jpeg

I've verified all roms from the board are good, and also using MAME and swapping roms narrowed it down to 7C (136045-1103.7c file), I've been able to almost replicate the issue by disabling some bits from it to simulate a bad data line. Looks similar (couldn't make them red), so when 7C rom is bad it affects the same areas my board has wrong. So I programmed another 27256 rom for 7C just in case but installing it made no difference :(

csprint3.jpeg

So I would say there is something wrong with my video board, but I'm not sure where to start, I mean looking at the schematics I guess the issue should be located at the "Playfield ROM" area, because if it was in other common area (like the Playfield RAM or Color RAM) it should affect other tracks not just 2 of them right?
Has anyone had an issue like this one?, what else could I check? Thank you!
 
Bad socket.
Possible solder joint issue on the socket.

I'd look hard at that socket. You've already swapped ROMs and the ROMs read right, which means it's either the socket or the connection to the board from the socket.
 
It could be a ram issue. Do you have an extra 6116 ram? If so, you can try swapping a known good ram into the video board to see if the glitch clears up. If you don't have an extra 6116. you might want to try swapping rams from the video board to the CPU board (one at a time) to see if the bad graphics change. If you find that the graphic glitch does change, look at the sockets of those rams. As @ArcadeTechGW , the sockets on these board sets suck. If those sockets are good, it could be the ram itself. If the game fails to boot or gives a boot error after swapping the ram, you found your problem ram. Though, the self test should be pick up any failed ram on the video board.

Which data lines did you disable to recreate the graphical glitch?
Do you have a logic probe? Have to tried probing the roms to see if any data input lines are dead? I'm curious to see what 1VS, 2VS, and 4VS (pins 7, 8, and 9 on the roms) are doing on your board.
 
Thanks for the responses. Today I was able to try some stuff:
  • Yes I've got a logic probe, while on the test screen probed all pins of the 7C 27256, all have good high/low activity, including 7, 8 and 9. Only 27 (A14) was low but when ingame it did have activity so maybe it's not used all the time, I mean not used when on the test screen. And also OE and CE were low but that's expected.
  • I took off the 8 playfield related 6116's and put them in opposite sockets (red arrows), so if there was a faulty one the glitch should change, but it stayed the same :(. Didn't get to swap them with the CPU ones yet
According to the schematics the ROMs are addressed together in groups of four, the blue group is the one with the 7C ROM related to the faulty graphics (but the rom is fine)

Since the data bus of the groups is shared between 4 roms I think I'm going to try remove 6C, 6D, and 7D, keeping only 7C there in the blue group so I can have it working alone to really check if its signals (data) are getting out in good shape, and also try to probe them from the input pins of the 74S194 shift registers, that should rule out a bad socket issue too. Will keep you posted

1761191887240.png

videoboard1.jpg

Also, about the "rom data line disable simulation" pretty much I get black jailbars by disabling any bit, the more bits disabled the wider they get, it's almost like if each bit is 1px.
Here's the script I made to do it:
Python:
import sys

if len(sys.argv) != 4:
    print(f"Usage: python3 {sys.argv[0]} <input filename> <output filename> <binary value for and operation>")
    print(f"Example: python3 {sys.argv[0]} 6de 136045-1108.6de 01111111")
    sys.exit(1)

input_filename = sys.argv[1]
output_filename = sys.argv[2]
and_val = int(sys.argv[3], 2)

with open(input_filename, 'rb') as input_file:
    input_data = input_file.read()

# AND operation on each byte
output_data = bytes(b & and_val for b in input_data)

with open(output_filename, 'wb') as output_file:
    output_file.write(output_data)

print(f"Done. Output saved to {output_filename}")
 
Back
Top Bottom