Skip to content
1976 TV bumper of GBR, an Italian private broadcaster active in Rome 1976-1996. Redrawn from an original screenshot of the bumper
1976 TV bumper of GBR, an Italian private broadcaster active in Rome 1976-1996. Redrawn from an original screenshot of the bumper Image by GBR, via Wikimedia Commons (Public domain).

gbr

GAME BOY COLOR EMULATOR

gbr

gbr — a small, open-source Game Boy / Game Boy Color emulator written in Rust. It is a source-built emulator intended for developers and hobbyists; no binary releases are published in the repository.

game boy colorPRIMARY SYSTEM
History documentedPROJECT BEGAN
Open sourcePROJECT MODEL

WHY IT MATTERS

Why gbr exists

gbr is a lightweight, educational Game Boy emulator implemented in Rust. It focuses on correctness of core components (CPU, PPU, timers, cartridge banking) while remaining compact and easy to read for developers learning how Game Boy hardware works or experimenting with Rust-based emulation code.

BEST FOR

What gbr is best for

Reading and modifying a compact Rust implementation of a Game Boy/GBC emulator, experimenting with cartridge MBC support, and building the emulator from source for personal use or development. The project is suitable for developers who can build Rust projects and install SDL2.

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

The people behind gbr

Project status and history

The project is hosted on GitHub (keichi/gbr). The repository README documents the emulator's goals, prerequisites, and a component-by-component status checklist (CPU instruction timing, PPU features like background/window/sprites and OAM bug, MBC1/3/5 cartridge support, timer behavior, and parts of the APU). The repository shows active source commits and an MIT license, but no formal release artifacts are published in GitHub Releases. The project appears to be a personal/open-source implementation intended for study and self-hosted builds rather than a polished end-user distribution.

What gbr supports

  • Game Boy Color (GBC)
  • Game Boy (DMG) compatibility (handled by same codebase)
  • Cartridge MBC1, MBC3, MBC5 (as documented in README)
  • External RAM (battery save persistence)

Download and availability

OFFICIAL DOWNLOADS

Get gbr

No prebuilt releases are published in the repository. To obtain the emulator, clone the GitHub repository and build from source. The README lists Rust and SDL2 as prerequisites.

Get gbr ↗

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.

gbr setup guide

Setup note: gbr is distributed as source. The practical setup is to install Rust toolchain and SDL2 development libraries, then build with cargo. Below are step-by-step, platform-aware build and run instructions derived from the project's README and typical Rust+SDL2 workflows.

  1. 1. Clone the repository: git clone https://github.com/keichi/gbr.git ; cd gbr
  2. 2. Install Rust toolchain: Install Rust (rustup) and ensure a recent stable toolchain is active. The README lists Rust 1.31.1 as the minimum; using a modern stable toolchain is recommended (rustup default stable).
  3. 3. Install SDL2 development libraries: Install SDL2 development headers and libraries for your platform: – Debian/Ubuntu: sudo apt install libsdl2-dev – Fedora: sudo dnf install SDL2-devel – macOS (Homebrew): brew install sdl2 – Windows: install SDL2 development package and configure your MSVC/MinGW build environment. The emulator links against SDL2 as the frontend layer.
  4. 4. Build with cargo: From the repository root run: cargo build –release . This produces a binary in target/release/ . If you want debug builds, use cargo build.
  5. 5. Running the emulator: Run the built binary and supply a ROM file path as the emulator expects. The repository README documents cartridge loading and supported MBCs; typical usage is: target/release/gbr path/to/game.gb (or .gbc). The repository does not include commercial games, firmware, or BIOS files — provide your own legally obtained ROMs.
  6. 6. Save data and runtime details: The README documents external RAM persistence support for cartridges with battery-backed saves. The emulator stores cartridge data as implemented in its cartridge module; check the source (src/) to confirm where and how save files are written. Ensure the process has write permission to the working directory for save files.
  7. 7. Troubleshooting and development notes: If SDL2 link errors occur, verify dev package is installed and environment variables (e.g., PKG_CONFIG_PATH) allow cargo to find SDL2. For Windows, ensure the SDL2 DLLs are next to the executable or in PATH. The README lists implementation gaps (APU: marked but not fully documented in the status checklist) — audio may be incomplete. Consult the source and issues in the GitHub repository for current limitations and to file bugs or requests.

Software reminder: You must build gbr from source; the repository contains no published release binaries. The README lists SDL2 and Rust as required and the license is MIT. The project does not include games, BIOS, or firmware; obtain those separately and legally if needed.

Sources and further reading

Detailed guides and tutorials

Explore step-by-step guides for gbr as they are published.