A Gameboy Emulator in C++
February 7, 2026
Ten years ago I got fascinated by the idea of emulation. I first implemented a CHIP-8 emulator, which is a very simple machine. I then wanted to tackle more powerful hardware, and landed on the Nintendo GameBoy.
This game console has stellar documentation and even test ROMs that check CPU emulation and wether certain bugs in the Z80 are “correctly” reproduced in software.
I am now in the process of untangling the core logic from the UI. The guts of the gameboy are implemented in C++ and are on sourcehut at gbCore. The user interface that is implemented in Qt can be found in the related repository gbQt6. I hope to write another user interface for the web, since I can reuse the core logic by transpiling gbCore to web assembly.
Here are some screenshots of the Qt frontend, playing the homebrew game 2friendly.
