• Stars
    star
    554
  • Rank 77,231 (Top 2 %)
  • Language
    Rust
  • License
    MIT License
  • Created over 10 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A Gameboy Emulator in Rust

RBoy

A Gameboy Color Emulator written in Rust

QuickStart

You can clone this repository and build it using either the make command or cargo build --release. Running the emulator can be done either via cargo run --release, or by running the generated binary found in target/release. You can copy the executable named rboy or rboy.exe to some sort of binary directory such as ~/.local/bin/ in linux or something under the PATH in windows.

Then you can explore the ability of the emulator by rboy --help. Which outputs

A Gameboy Colour emulator written in Rust

Usage: rboy [OPTIONS] <filename>

Arguments:
  <filename>  Sets the ROM file to load

Options:
  -s, --serial         Prints the data from the serial port to stdout
  -p, --printer        Emulates a gameboy printer
  -c, --classic        Forces the emulator to run in classic Gameboy mode
  -x, --scale <scale>  Sets the scale of the interface. Default: 2
  -a, --audio          Enables audio
      --skip-checksum  Skips verification of the cartridge checksum
      --test-mode      Starts the emulator in a special test mode
  -h, --help           Print help
  -V, --version        Print version

Now you can look below for the Keybindings section below.

Keybindings

Gameplay Keybindings

Key on Keyboard Emulator Key
Z A
X B
Up/Down/Left/Right Up/Down/Left/Right
Space Select
Return/Enter Start

General Keybindings

Key on Keyboard Emulator Action
1 Switch to 1:1 scale
R Restore scale given on command line
Left Shift (Hold) Unrestricted Speed Mode
T Change pixel interpolation

Implemented

  • CPU
    • All instructions correct
    • All timings correct
    • Double speed mode
  • GPU
    • Normal mode
    • Color mode
  • Keypad
  • Timer
  • Audio
  • MMU
    • MBC-less
    • MBC1
    • MBC3 (with RTC)
    • MBC5
    • save games
  • Printing

Test mode

The test mode, activated with the --test-mode flag, provides some functionality for running GBEmulatorShootout. This is still under development.

Special thanks to