GAME BOY COLOR EMULATOR
Mimic
Mimic is an open-source Game Boy (DMG) / Game Boy Color–compatible emulator written in Rust with a focus on clarity and teaching how the system is emulated. It separates a safe-Rust emulation core from optional I/O backends (SDL, terminal, headless) and is intended as an approachable, readable implementation rather than a high-performance commercial emulator

WHY IT MATTERS
Why Mimic exists
Mimic is intended primarily as an educational, easy-to-read Game Boy emulator core implemented in safe Rust. The project aims to explain core emulation concepts (CPU, PPU, memory banking, clocking, interrupts) while keeping I/O/screen code separate so readers can focus on the emulation logic.
BEST FOR
Where Mimic is strongest
Clear, component-based implementation of the Game Boy hardware in safe Rust; easy to build from source with Cargo; multiple run modes (terminal, SDL, headless) for experimentation; suitable for learning, reference, and small-scale testing.
The people behind Mimic
History & current status
Mimic is hosted on GitHub (jawline/Mimic). The repository documents design decisions and implements the CPU instruction sets, PPU, memory map, interrupts, basic MBC support (rudimentary MBC1 and MBC3), background and sprite rendering, and a clock model. The README lists remaining TODO items such as sound, broader game compatibility, and cartridge save support. No packaged releases are present on the repository's Releases page, so distribution is via source. The codebase is tracked publicly on GitHub; development activity and issues/pull requests are visible there.
What Mimic supports
- Game Boy (DMG) and Game Boy Color (compatibility; core focuses on Game Boy hardware with CGB-related considerations)
- Build-on-source via Rust/Cargo
- Run modes: sdl, terminal, headless
- Platforms: any OS with Rust toolchain (cargo) and required backend dependencies (e.g. SDL2 for the sdl mode) — typically Linux, macOS, Windows
Download and availability
OFFICIAL DOWNLOADS
Get Mimic
No prebuilt release binaries are provided in the GitHub Releases section. The recommended download method is to clone the repository from GitHub and build with Rust/Cargo (see setup guide below).
Get Mimic ↗DOCUMENTATION
Official documentation
Read the official configuration, compatibility, and troubleshooting material before changing advanced options.
Read official documentation ↗Mimic setup guide
Setup note: Practical steps to get Mimic running from source. This guide assumes you will build the official repository from GitHub using the Rust toolchain. It notes backend dependencies where applicable and how to run the emulator once compiled.
- 1) Install Rust toolchain: Install rustup and the stable Rust toolchain on your development machine. Follow the official Rust install instructions for your OS (rustup). Ensure cargo (the Rust package manager/build tool) is available on your PATH.
- 2) Install backend dependencies (if you want the SDL screen): If you plan to use the sdl mode you must install SDL2 (and any development headers) for your OS before building. On Linux use your distribution package manager (e.g., apt, dnf, pacman). On macOS you can install SDL2 with Homebrew. On Windows install SDL2 development libraries and ensure the headers/libs are available to build cargo-compiled binaries.
- 3) Clone the repository: Clone the official GitHub repository (jawline/Mimic) to a local directory. Example: git clone https://github.com/jawline/Mimic.git
- 4) Build release binary with Cargo: From the repository root run cargo build –release. This compiles the emulator in optimized mode. If you only need to experiment quickly you can use cargo run –release — –rom PATH –mode terminal as a single-step command that builds and runs.
- 5) Run the emulator with a ROM (user-supplied): Mimic does not include any commercial game ROMs or BIOS. Provide your own Game Boy (.gb) or Game Boy Color (.gbc) ROM file. Launch the emulator with: cargo run –release — –rom PATH –mode MODE where MODE is one of: terminal, sdl, or headless. Example to use SDL: cargo run –release — –rom /path/to/game.gb –mode sdl
- 6) Troubleshooting & notes: If the sdl mode fails to start, verify SDL2 is installed and that your environment provides the headers/libs needed by rust bindings. If you need only textual output or to step through the core, use –mode terminal. Sound, save support, and full compatibility are listed in the project's TODOs; expect gaps in game compatibility and missing audio until those features are implemented.
Software reminder: Mimic is source-distributed. You must supply your own Game Boy / GBC ROM files and any required firmware; the project README explicitly lists missing features (sound, save support, game compatibility).
Sources and further reading
Detailed guides and tutorials
Explore step-by-step guides for Mimic as they are published.
Retro Replay Retro Gaming History, Reviews & Emulation
