Dot Matrix is a Game Boy emulator written in C++.
Dot Matrix performs audio emulation, supports a number of cartridge types (ROM, MBC1, MBC2, MBC3, MBC5), and has a Dear Imgui powered UI.
The UI allows real-time modification of registers / memory, has visualizations for the LCD and sound controllers (inlcuding pitches for the two square wave channels), and has a debugger that supports loading symbol files.
Dot Matrix is capable of playing most Game Boy games. It passes all of Blargg's tests and over half of Gekkio's mooneye-gb tests.
Windows, macOS, and Linux are supported.
Dot Matrix uses CMake as a meta build system. Run CMake (with the provided Build directory) to generate project files for your compiler / IDE of choice.
The following CMake options are provided:
DOT_MATRIX_WITH_AUDIO
- Whether to compile support for audio playbackDOT_MATRIX_WITH_BOOTSTRAP
- Whether to compile support for loading the Game Boy bootstrap ROM (not provided in the repo)DOT_MATRIX_WITH_DEBUGGER
- Whether to compile the Game Boy debugger (breakpoints, CPU stepping, etc.) - decreases emulation performanceDOT_MATRIX_WITH_UI
- Whether to compile in the Dear ImGui UI
There are three build targets:
DotMatrix
- The standalone emulator executableDotMatrixRetro
- A Libretro core (dynamically loaded library)DotMatrixTest
- An executable that runs test roms
Dot Matrix comes will all necessary dependencies (except for GTK+ 3 on Linux) either as raw source files or git submodules. Run git submodule init
and git submodule update
to grab the submodules. If compiling on Linux, GTK+ 3 should be obtained via your package manager.