Project Overview
A fully-featured, cycle-accurate Game Boy emulator built from scratch in C++ with SDL2. Implements the complete LR35902 instruction set with 500 opcodes, hardware-faithful PPU rendering, and achieves 21x real-time performance with accurate 59.7 FPS timing.
Built by Daniel Elbaz and Jackson Johannesson
CPU Emulation
- Full LR35902 instruction set (500 opcodes)
- Cycle-accurate execution timing
- Complete flag, interrupt, and timer handling
Performance
- Optimized to 21x real-time performance
- Hardware-accurate 59.7 FPS PPU & CPU sync
- Efficient scanline-based rendering
Memory
- 16-bit memory model with SP/PC handling
- MBC1 and MBC3 cartridge support
- Full memory routing (ROM, RAM, VRAM, registers)
Graphics & Input
- SDL2 PPU rendering pipeline
- Keyboard input mapping (WASD + ZX + CV)
- Pre-built for Windows and macOS ARM64
Preview

Game Boy Emulator running with cycle-accurate PPU rendering.
Download & Build
Pre-built binaries are available for Windows and macOS:
Controls
W / A / S / DDirectional PadZ / XA / B ButtonsC / VStart / Select
Build from Source
- Clone the repository and ensure you have CMake and SDL2 installed
- Build with CMake:
cmake -B build && cmake --build build
- Run the emulator with a ROM file