An open-source Game Boy compatible console implemented in Verilog RTL for FPGA hardware.
VerilogBoy is an open-source hardware implementation of a Nintendo Game Boy compatible console written in Verilog. It provides a complete RTL (Register Transfer Level) design that can be programmed onto FPGA boards to create physical hardware capable of running original Game Boy games. The project implements the Game Boy's SM83 CPU, PPU graphics unit, sound generator, and other core components in hardware description language.
FPGA developers, digital design engineers, and retro computing enthusiasts interested in hardware emulation and Game Boy architecture. It's particularly suited for those wanting to understand or modify Game Boy hardware at the RTL level.
Unlike software emulators, VerilogBoy runs on actual FPGA hardware, providing a unique hands-on approach to retro gaming preservation and hardware design education. It offers a complete, synthesizable implementation with demonstrated commercial game compatibility.
A Pi emulating a GameBoy sounds cheap. What about an FPGA?
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
The SM83 CPU implementation passes all Blargg's tests and key Mooneye timing tests, ensuring functional correctness for most game logic.
Includes a Verilator-based simulator with SDL support, allowing ROM testing without FPGA hardware and detailed waveform tracing.
Successfully runs commercial games like Tobu Tobu Girl on the Pano G1 FPGA, proving real-world usability for retro gaming.
Provides a complete, synthesizable Verilog implementation ideal for learning Game Boy hardware architecture and digital design.
Currently only targets the Pano Logic G1 FPGA, with no out-of-the-box support for common development boards like DE10-Nano or Arty.
The README admits the PPU implementation is 'wrong,' failing multiple timing and interrupt tests due to architectural simplifications like a single fetcher.
Requires multiple tools like Verilator, SDL2, and rgbds, with non-trivial installation steps across different operating systems.
Architecture diagrams are marked as outdated, and guidance for porting or advanced customization is minimal, relying on user exploration.