RBoy

RBoy is an open-source Gameboy Color emulator written in Rust, designed to offer accurate emulation of the classic handheld gaming console. The project aims to provide an efficient and reliable emulator with comprehensive support for various Gameboy features and hardware components.

Key Features

RBoy is equipped with several essential features, ensuring a robust emulation experience:

  • CPU Emulation: RBoy accurately emulates all Gameboy CPU instructions and timings, including support for the double-speed mode.
  • GPU Emulation: The emulator supports both the standard and color modes, rendering graphics faithfully.
  • Audio Emulation: Full audio support is included, providing an authentic audio experience.
  • Keypad Support: Complete keypad emulation allows for seamless gameplay.
  • Memory Management Unit (MMU): RBoy supports various memory bank controllers (MBCs), including MBC1, MBC3 (with real-time clock), and MBC5. It also supports save games.
  • Gameboy Printer Emulation: Emulate the Gameboy printer, adding to the nostalgic experience.
  • Test Mode: A special test mode, activated with the --test-mode flag, allows users to run the GBEmulatorShootout tests.

Usage

You can clone the RBoy repository and build the emulator using either the make command or cargo build --release. The emulator can be run using cargo run --release or by executing the generated binary.

The command line interface offers various options to enhance your emulation experience:

  • ROM Loading: Load ROM files by specifying the filename.
  • Serial Output: Print data from the serial port to stdout.
  • Force Classic Mode: Run the emulator in classic Gameboy mode.
  • Scale Interface: Adjust the interface scale with the --scale option.
  • Enable Audio: Activate audio emulation.
  • Skip Checksum Verification: Skip verification of the cartridge checksum.
  • Unrestricted Speed Mode: Enable unrestricted speed mode for faster gameplay.
  • Pixel Interpolation: Change pixel interpolation for better graphics.

Keybindings

RBoy provides a set of intuitive keybindings for both gameplay and general emulator actions:

Gameplay Keybindings

Key on KeyboardEmulator Key
ZA
XB
Up/Down/Left/RightUp/Down/Left/Right
SpaceSelect
Return/EnterStart

General Keybindings

Key on KeyboardEmulator Action
1Switch to 1:1 scale
RRestore scale given on command line
Left Shift (Hold)Unrestricted Speed Mode
TChange pixel interpolation

Similar Projects