With a lot of help from true on the hardware front, help from Ilari on the lsnes front, and Masterjun on the glitched run front, I was finally able to get the SNES total control run to sync on my hardware. It turns out that true did all of his recent work using the GPIO serial header on the Pi while I was using the USB method and there is apparently a bug somewhere preventing that method from working right which is what plagued my testing on Monday. After switching over to the serial connection method, the picture got a bit more messy. It doesn't help that I never depopulated the old NESBot so the Pi is sitting right on top of the poor Arduino.
I at least have an excuse for why the SNES wires are a bit messy at this prototype stage, but even then, I had to get extremely creative to get the second controller DATA1 wire to stay in place by using a small screwdriver crammed in to keep the wire from slipping out.
The biggest problem I have is lack of proper jumper wires.
This is a good example of how not having enough equipment makes everything take so much longer to wire up. Between the Pi and the PCB, I have two old fan connectors hooked up to serial TX, RX, and ground, and the power is connected using two blue jumpers on a breadboard wire. The wire nuts prevent TX and RX from shorting to ground. Suboptimal is probably not a strong enough word. I'll be ordering a lot of parts later this week (after the US Thanksgiving holiday tomorrow) so I can make this a whole lot cleaner. Everything has to be portable enough to make it through the airport in carry-on luggage come January so I plan on putting together a proper wiring harness for the two SNES controllers with a pigtail at the SNES end similar to how USB powered DVD drives are designed.
Having said all of that, I am very happy to say that I was able to get the SNES glitched run to complete on my setup, which makes me exceedingly happy. As long as wires are in the right places it's very reproducible, which along with getting Gradius to sync is exactly what I was hoping for at the beginning of the project.
I'll be doing a dry run of what I plan on presenting at AGDQ 2014 on December 10th when I'll be giving a presentation at the
North Bay Linux User's Group. Linux was a key aspect of this process as I used FCEUX and lsnes Linux ports to convert the emulator-specific movie files to the correct format for the replay script which itself is running on Linux on a Raspberry Pi. With true's permission I plan on releasing the gerber files for the PCB as well as the PIC code and replay scripts as open source (likely with a simple attribution license) as soon as everything is cleaned up.
Again, thanks to everyone for the support!
A.C.
******