GAME BOY COLOR EMULATOR
gbc
gbc — a Game Boy Color (GBC) emulator implemented in Rust with an SDL2 GUI and a WASM target.

WHY IT MATTERS
Why this project exists
gbc is presented by its author as a learning project: a Rust reimplementation of a Game Boy / Game Boy Color emulator with a focus on code clarity, testing, and multiple frontends (native SDL2 GUI and a WASM Canvas2D build). The README and repository describe it explicitly as intended for learning and experimentation rather than as a commercial product.
BEST FOR
What it does best
Clean Rust code organized as a library crate plus multiple frontends (native GUI and WASM), an integrated test suite (functional and integration tests that run on commits), and a built-in CLI/debugger useful for emulator development and learning. The project exposes a library (lib) that can be reused and a WASM build that runs in the browser.
The people behind gbc
History & status
The project repository contains a multi-hundred-commit history and active artifacts (lib, emu, emu-wasm). The author documents tested games and known issues in the README (games tried include both DMG and GBC titles; some titles show issues). The repo shows active development and CI in place (tests and commits displayed in the repository). The project is maintained on GitHub with releases available; its docs include a WASM demo. Because the repository does not publish an explicit founding year in the README, the profile uses the repository material as the primary historical source.
What gbc supports
- Game Boy Color (GBC) and legacy Game Boy (DMG) ROMs (project described as a GBC emulator).
- Native GUI frontend (SDL2) for Windows, macOS, and Linux.
- WASM build (lib compiled to WebAssembly and running on Canvas2D).
- Debugger CLI (optional build feature).
Download and availability
OFFICIAL DOWNLOADS
Get gbc
Official releases and prebuilt binaries are published on the project's GitHub Releases page. The repository and source are available on GitHub; a browser-playable WASM demo is hosted on the project's GitHub Pages site. Do not expect commercial games, firmware, BIOS, or cartridge images to be included in releases.
Get gbc ↗DOCUMENTATION
Official documentation
Read the official configuration, compatibility, and troubleshooting material before changing advanced options.
Read official documentation ↗gbc setup guide
Setup note: Practical setup steps (native build and using releases). The following guide follows the project's README and documented build notes.
- 1) Get the software: Preferred: Visit the project's GitHub Releases page and download a prebuilt asset for your platform if available. Alternative: clone the repository from GitHub (https://github.com/aksiksi/gbc) and build from source.
- 2) Build prerequisites: Install rustup (which provides cargo and rustc) and a C toolchain for your OS. The README lists CMake and a C compiler as prerequisites because the SDL2 dependency is built as part of the Rust-SDL2 build process. On Windows, the README recommends Visual C++ build tools. These tools are required only when building from source.
- 3) Build (native SDL2 frontend): From a checked-out repository root, run cargo build –release or cargo build in the emu crate as documented. The project statically links libsdl on supported platforms to avoid shipping separate SDL DLLs. To enable the debugger CLI, build with the debug feature as shown in the README: cargo build –manifest-path emu/Cargo.toml –features debug.
- 4) Run a ROM: Run the provided binary (gbcemu or the platform-specific executable) with the run command and the path to a ROM file: gbcemu run [path_to_rom]. The README documents keyboard controls for play and emulator keys for saving/loading states, pausing, fast-forwarding, and drawing tile outlines. The project does not include ROMs; you must supply legally obtained ROM images.
- 5) WASM (browser) usage: The project publishes a WASM build that runs in the browser on a Canvas2D element; the GitHub Pages site hosts a web demo that runs the WASM build. Use the demo to test behavior without building native dependencies. The README mentions that buttons in the WASM version replace certain keyboard commands.
- 6) Troubleshooting & testing: The project contains functional and integration tests (including test ROMs) that run on CI. If a game exhibits visual glitches or crashes, consult the repository README's tested games list and the issues page for known bugs. For building issues, ensure CMake and a working C compiler are installed and that rustup toolchain matches the repository's Rust edition.
Software reminder: This emulator requires you to supply your own GBC/GB ROM images and does not include any commercial games or firmware. Building from source requires rustup, a C compiler, and CMake; prebuilt assets (when provided) avoid local builds.
Sources and further reading
Detailed guides and tutorials
Explore step-by-step guides for gbc as they are published.
Retro Replay Retro Gaming History, Reviews & Emulation
