Skip to content
Screenshot of OP in Sepia, using my user script w:User:Mdm.Bla/stainedglass.js
Screenshot of OP in Sepia, using my user script w:User:Mdm.Bla/stainedglass.js Image by ~2026-90420-1 (text), own work (screenshot), via Wikimedia Commons (CC BY-SA 4.0).

gbc

GAME BOY COLOR EMULATOR

gbc

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

game boy colorPRIMARY SYSTEM
History documentedPROJECT BEGAN
Open sourcePROJECT MODEL

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.

Wario Land 3 gameplay on Game Boy Color
Gameplay from Wario Land 3 on Game Boy Color.

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 ↗
Broken or missing download? Emulator projects move and official links sometimes change. Please contact Retro Replay so the source can be verified and updated.

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. 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. 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. 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. 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. 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. 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.