Following in the footsteps of Al_Nafuur et al who are working to get Stella running on the Raspberry Pi, I'm doing the same with Gopher2600. First stage of the build is complete.
The first step was to rewrite the OpenGL renderer. I was targetting version 3.2 and using custom shaders for various things. The Pi however wasn't happy with that so I've added an alternative GL renderer that target version 2.1. It's not fully featured but it's good enough for this experiment.
GPIO acess: To begin with, I'm taking a very naive approach and simply setting the address bus and reading the data bus immediately. I'm not thinking about timings on edge detection or anything like that. All I'm interested in at this stage is whether I can get data off the cartridge.
Whether that approach is successful depends very much on the cartridge. Fortunately, I happened to pick one that does work, Yar's Revenge. Here's a video showing the hardware and the game running in the emulator.
The first thing to note is that it's very slow. That's partly because Gopher2600 is not running at full speed on the Pi even for dumped ROMs, but the GPIO communication is introducing a little inefficiency too.
As a first experiment that took a couple of hours to get going (once I had all
the necessary cables) I'm going to say this is small victory.
Next step is to get multi-bank cartridges to work. But that'll take some hard thinking.