GAME BOY COLOR EMULATOR
mooneye-gb
Mooneye GB is an open-source Game Boy research project and emulator written in Rust focused on accuracy and test-suite driven development. It includes a core emulator implementation and an extensive suite of acceptance tests used by other emulator projects.

WHY IT MATTERS
Why this project matters
Mooneye GB is best known for its accuracy-focused design and its associated test suites. The project documents low-level Game Boy behaviour and provides test ROMs that many emulator authors use to verify CPU, memory bank controller (MBC), and PPU timing and behavior. That makes it a valuable research and development reference for other Game Boy and Game Boy Color emulators.
BEST FOR
Best for
Developers and researchers who need a highly test-driven, accuracy-focused Game Boy (including Game Boy Color) implementation in Rust, or anyone who wants the project's test-suite for validating their own emulator.
The people behind mooneye-gb
History & status
Mooneye GB is presented by its maintainer as a Game Boy research project and emulator written in Rust. The repository includes the emulator code, a dedicated test suite (Mooneye test suite) and documentation links to broader technical references. The project and its test-suite are widely cited within the GB development community and appear in emulator resources as a reference for accuracy. The source and test-suite are active in their repositories; releases and source activity are available from the project's GitHub pages. Exact historical timelines (first commit date, initial release year) are documented in the repository history rather than summarized here.
What mooneye-gb supports
- Game Boy (DMG) — original monochrome model (emulation coverage as implemented)
- Game Boy Color (CGB) — color modes and CGB-specific behaviour (as implemented and tested)
- Test suites used for CPU, MBC and PPU verification (Mooneye test suite)
- Cross-platform via Rust toolchain (build target dependent)
Download and availability
OFFICIAL DOWNLOADS
Get mooneye-gb
Official source code and binary releases are available from the project's GitHub repository and the repository's Releases page. Prebuilt binaries may be provided in GitHub releases if the maintainers publish them; otherwise you must build from source using Rust's toolchain. Do not expect commercial ROMs, console firmware, or BIOS files to be included.
Get mooneye-gb ↗DOCUMENTATION
Official documentation
Read the official configuration, compatibility, and troubleshooting material before changing advanced options.
Read official documentation ↗mooneye-gb setup guide
Setup note: This setup guide focuses on building and running Mooneye GB from the official GitHub source. It assumes you have a development machine (Linux, macOS, or Windows with a Unix-like shell) and are comfortable installing Rust toolchains and running command-line builds. The project is a research emulator, so expect command-line and developer-oriented interfaces rather than polished end-user frontends.
- 1) Inspect the official repository and releases: Open the project's GitHub repository to read the README and check the Releases page for any published binaries or platform-specific instructions. Confirm the latest tagged release and read the build and usage notes in the repo prior to building.
- 2) Install Rust toolchain: Install Rust (rustup) according to rustup.rs. Use a stable or toolchain version recommended in the repository README if present. Ensure cargo (Rust's package manager) is available on your PATH.
- 3) Clone the repository: Clone the official repository (git clone <repo-url>) to a working directory. Use the project’s main branch or the release tag you intend to build. Inspect any workspace/README files for subcrates and examples.
- 4) Build the emulator: From the repository root, build using cargo build –release (or cargo build to build a debug binary). If the project provides additional build features or disabled-by-default options, consult the README or Cargo.toml for feature flags. The compiler will produce a binary in target/release/ (or target/debug/).
- 5) Run tests and the mooneye test-suite: The project includes tests and an acceptance test suite. Run cargo test to execute unit and integration tests. The test-suite may require test ROMs or data that are part of a separate test-suite repository; consult the repository's tests/ or test-suite README to see if any artifacts need to be fetched or built separately.
- 6) Provide game ROMs and optional files: Mooneye GB does not include games, BIOS, or other proprietary files. Supply legally obtained ROMs yourself. Refer to the emulator README for supported ROM file types and any file naming or header expectations. If the project expects additional external files (for example, debug maps or test ROMs) the README or test-suite repository will list them.
- 7) Running the binary and using CLI options: Launch the built binary from the command line and pass a ROM path as required by the project's usage instructions. The exact command-line parameters, configuration file locations, and runtime options depend on the repository's implementation; consult the README or –help output for options like model selection (DMG/CGB), display, logging, or debug modes.
- 8) Platform-specific notes: Because the emulator is written in Rust, it is cross-platform where dependencies allow. If the project depends on native libraries or optional crates for GUI/audio, additional platform packages or development libraries may be required (for example, SDL2 for a GUI frontend). Check the repository for feature flags enabling/excluding optional backends and follow the project's instructions for each OS.
Software reminder: Mooneye GB and its test-suite are source code projects; follow the repository README and LICENSE. You must obtain game ROMs and any proprietary files separately and legally; they are not distributed with the project.
Sources and further reading
Detailed guides and tutorials
Explore step-by-step guides for mooneye-gb as they are published.
Retro Replay Retro Gaming History, Reviews & Emulation