RetroCore: cycle-accurate FPGA Gameboy emulator

Ruslana Fogler, Bharathi Sridhar and Katherine Parry

RetroCore: cycle-accurate FPGA Gameboy emulator

Cycle-accurate FPGA Gameboy emulator

Description


For my undergraduate capstone (18500), I worked alongside Katherine Parry and Bharathi Sridhar to develop a cycle-accurate, custom FPGA Gameboy hardware emulator. We handwrote, verified, and tested this design over the course of 3 months. My personal contribution was creating the Memory Mapping Unit (MMU), the memory hierarchy, the I/O aspects (VGA, gamepad), and much of the FPGA tooling infrastructure. In addition, I also did research on the Altera FPGA's USB integration and wrote the Audio Processing Unit (APU), though we did not have time to integrate this into our final design. This was a challenging project, as it involved reverse-engineering a number of individually complicated subsystems without official documentation. After all, Nintendo never released architectural details about the Gameboy. Instead, we relied on fan collected information such as in Pandocs, Sameboy, and etc. We found The Ultimate Gameboy Talk by Michael Steil to be extremely helpful in our design, particularly in regard to our clock frequency design choices. Our implementation is available here.

Videos


RetroCore: FPGA Gameboy Emulator

Your browser doesn't support PDF embedding. Download the PDF instead.

Block Diagram Block Diagram
RetroCore