1 unstable release

0.1.0 Dec 14, 2019

#163 in Emulators

MIT license

290KB
9K SLoC

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).

Dependencies

~1MB
~18K SLoC