Friday, March 18, 2022

Cobra Command wouldn't boot

I've been trying to get my Cobra Command boardset (Bega's Battle conversion) up and running.  I have no official wiring harness, so I've been making my own wiring + PCB adapters, including power, serial, and RGB video.  When I tried powering up Cobra Command and plugging it into Dexter I got nothing.

So I did what anyone who loves tedious troubleshooting work would do.  I sniffed the 6502 CPU to see where the program was getting stuck.


I found that the program was looping endlessly at a subroutine at 0xE176:


But I wanted to know what was calling this subroutine.  Through some clever triggering, I was able to narrow it down to this area of code:



So basically, the game is sending the "clear all" command to the laserdisc player and blocking indefinitely until it gets a response (which may never happen).

Conclusion?  Serial I/O isn't making it from the game to Dexter.

After some more poking around, the answer ended up being quite simple.


The game is communicating at 1200 bps!  I've never seen a game communicate this slowly to the laserdisc player!

I was getting tripped up because I was assuming 9600 bps and even after staring at the logic analyzer capture and seeing traffic, my brain just didn't make the connection that maybe everything on the game PCB was working correctly and I just was assuming the incorrect clock rate!