Debugging, debugging, and more debugging. I’m doing it whenever I get time and motivation. Here is what I currently have working: SD card reading/writing ROMs, FPGA dynamic programming sequence and initialization, FPGA asynchronous logic for bus translations between VB and SRAM, microcontroller real-time debugging output for register-level verification. Basically, the micro is able to read FPGA programming files from the SD card and program the FPGA. FPGA “programs” in this case will do different things depending on the state of the system. For example, after a game has already been loaded into the main SRAM, the FPGA will be loaded with a program to perform the address/data bus translations between the VB CPU and the main SRAM. There will probably be 3 or 4 FPGA programs necessary to run the entire system.
I am running into some limitations with my FPGA configuration, because I’m designing everything based on asynchronous logic without external clock inputs. It might be that I need to add an external clock to the FPGA to accomplish some of the more difficult tasks, such as backing up save data from SRAM to SD card.
The microcontroller firmware now has about 2,000 lines of code running, and an additional 500 or so for the FPGA. I also wrote some PC software utilities to help parse and reformat the FPGA bitstream files. The nice thing for the users is that the FPGA will be completely upgradeable and patchable via the SD card.
Next up, I need to test my FPGA program using an existing VB game. I plan on connecting a simple VB game, such as Mario Tennis, on the other side of the FPGA bus, and then trying to get the game to boot/play on the VB. I’m trying to break up the system into blocks like this, so I can debug the subsystems one at a time. Once I can show that Mario works on the VB, my focus will be to replace the Mario cartridge with the system SRAM programmed with a Mario Tennis ROM image.
So that’s about it for now. Again, I apologize for the infrequent updates. I haven’t forgotten that there are people out there following this project. Hopefully I will have more time to work on it in the near future.