GAME BOY COLOR EMULATOR
gameboy
Gameboy — a cross-platform, open-source Game Boy / Game Boy Color emulator written in Rust. It aims for cycle-accurate behaviour, includes test coverage against Blargg and Mooneye test suites, and provides a minimal built-in UI using minifb (with audio via cpal).

WHY IT MATTERS
Why pick this emulator
This project is a compact, modern Rust implementation focused on correctness (passes many Blargg and Mooneye tests) and modularity (UI/audio layers can be replaced). It's suitable for developers who want a readable, test-driven emulator they can build into their own tools or run directly with cargo.
BEST FOR
Best for
Developers, emulator learners, and users who want a lightweight, source-buildable Game Boy / Game Boy Color emulator written in Rust with good test coverage and few external runtime dependencies.
The people behind gameboy
History & status
The repository 'libraries/gameboy' is an actively maintained open-source Rust project with commit history and examples in its repository. The project's README documents that it is cross-platform and has been tested on Windows, Ubuntu, and macOS. The code is cycle-based and the project report claims passing results for many of Blargg's Game Boy hardware tests and Mooneye test-suite entries. The repository contains examples and resources bundled under a res/ directory. I could not locate a specific founding year in the repository README or top-level files; consult the project's commit history in the repository for granular dates.
What gameboy supports
- Nintendo Game Boy (DMG)
- Nintendo Game Boy Color (CGB)
- Windows (build from source)
- Ubuntu / Debian-based Linux (build from source)
- macOS (build from source)
Download and availability
OFFICIAL DOWNLOADS
Get gameboy
Official source and release artifacts are published on the project's GitHub repository and its Releases page. The canonical way to obtain and run it is to clone the repository and build with Rust's cargo, or download a release asset from the repository's Releases if available.
Get gameboy ↗DOCUMENTATION
Official documentation
Read the official configuration, compatibility, and troubleshooting material before changing advanced options.
Read official documentation ↗gameboy setup guide
Setup note: This project is distributed as Rust source. The emulator runs by building the repository with cargo. Below are practical setup steps, native dependencies, and a minimal runtime example using the repository's included resources.
- 1) Get the source: Clone the official repository from GitHub: git clone https://github.com/libraries/gameboy.git. Change into the cloned directory.
- 2) Install Rust toolchain: Install Rust and cargo (recommended via rustup). Confirm cargo is available: cargo –version.
- 3) Install native dependencies (Linux / Ubuntu example): On Ubuntu/Debian install native libs needed by the Rust crates used: sudo apt install libasound2-dev libxkbcommon-dev libwayland-cursor0 libwayland-dev. These support audio (cpal) and the minifb display backend.
- 4) Windows build notes: On Windows install Microsoft C++ Build Tools to satisfy native build requirements mentioned in the README. Use a terminal with cargo available (e.g., a Developer PowerShell or Windows Terminal where Rust is installed).
- 5) Build and run: From the repository root you can run a packaged example directly with cargo: cargo run –release — ./res/pokemon_crystal.gbc. The README documents command-line options: –enable-audio, –scale-factor, and –speed-factor.
- 6) Replace or embed UI/audio: The README points out the display/audio code is concentrated in the mode_minifb() function in src/main.rs; the emulator is designed to let you implement your own UI. If you want to embed the emulator into another Rust program, inspect the source and examples in the examples/ directory.
- 7) Tests and verification: The project provides cargo run examples to execute Blargg and Mooneye test suites (e.g., cargo run –example blargg and cargo run –example mts). Run these to verify the build and to evaluate CPU/PPU accuracy on your platform.
- 8) Practical runtime notes: The emulator depends on correct ROM files (user-supplied). The project README explicitly does not include commercial game ROMs, BIOS, or firmware. Configure scale-factor and speed-factor as needed for display and performance.
Software reminder: This project must be built from source with Rust/cargo. You must supply your own game ROMs and any necessary BIOS/firmware; these are not included in the repository.
Sources and further reading
Detailed guides and tutorials
Explore step-by-step guides for gameboy as they are published.
Retro Replay Retro Gaming History, Reviews & Emulation