Skip to content
No-std cross-platform Rust GameBoy emulator library
Rust
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/workflows
codegen
core
roms @ c240dd7
.gitignore
.gitmodules
Cargo.lock
Cargo.toml
README.md

README.md

rgy

No-std cross-platform Rust GameBoy emulator library. Rust GameboY (RGY, or Real GaY).

Latest version Documentation License Actions Status

Usage

Once you implement OS-specific part, i.e. Hardware trait, you will get a GameBoy emulator for your environment.

struct Hardware;

// 1. Implement `rgy::Hardware`.
impl rgy::Hardware for Hardware {
    ...
}

// 2. Call `rgy::run`.
fn main() {
    let cfg = Config::new();
    let rom = include_bytes!("rom,gb");
    rgy::run(cfg, &rom, Hardware);
}

Example

$ cargo run --example pc <a ROM file>

The example runs the GameBoy emulator in UNIX environment. It depends on libasound2-dev and libxcursor-dev. The ROM files can be easily downloaded from the Internet.

Projects

The following projects use this library to run a GameBoy emulator.

  • stickboy runs a GameBoy emulator on Macbook Pro (UEFI).
  • biboy runs a GameBoy emulator on BIOS PC.
  • waboy runs a GameBoy emulator on web browsers (wasm).
You can’t perform that action at this time.