Here is a summary of things that I've improved:
- When switching disc player modes on the Dexter board, the firmware tries to clean up itself better. This is just an internal change that will hopefully make Dexter more stable.
- Improved my VP-931 tester and made it flag more problems in the serial port log.
- Improved VP-931 mode and made it more robust and safer.
- Improved DIAGNOSE mode. Now when DIAGNOSE is pressed, the current picture number (using VBI style encoding) will be displayed as well as the build date. This is to help the end user have some visibility into what's going on if all they see is a blank screen.
- Intelligent reprogramming. Now Dexter will automatically try to do a hardware reprogram of itself if one part of it can't talk to the other part. So if your firmware gets corrupted, the program running on the Raspberry Pi will automatically reprogram the firmware for you after 30 seconds of inactivity. Neat, eh?
- The USB stick no longer has to be in the Pi for Dexter to operate. The USB stick will continue to used only for updates. Dexter can now operate solely from the SD card. (woohoo!)
Here are some screenshots of how the VP-931 interface should look if it is working properly.
This first picture is zoomed out. The solid blue bar at the bottom is the composite sync signal which is changing once every line. Notice that the Read (RDEN') and Write (WREN') are staggered so that they don't stomp on each other?
Here's a medium zoom showing the beginning of a new field (notice the FIELD transition) and where Dexter is sending the status bytes (DAV' and RDEN') relative to this field. This is a little after where it happens on a real VP-931 but it really doesn't matter and it can be tweaked easily.
Here is a zoom in of the six status bytes being sent by Dexter. Notice the handshaking? DAV' goes low, then RDEN' goes low, then DAV' goes high, then RDEN' goes high. That's the game and the player stay in sync when communicating.