Gameboy is a comprehensive GameBoy emulator designed to run across multiple platforms, developed in the Rust programming language. This emulator supports audio, various scaling options, and has been tested extensively on Windows, Ubuntu, and Mac.
sample.gif
--enable-audio
flag.To start a game, you can use the following command, demonstrated here with the built-in game "SUPER MARIOLAND":
$ cargo run --release -- "./res/sml.gb"
The emulator supports the following options:
-a, --enable-audio
: Enable audio (default is false).-x, --scale-factor
: Scale the video by a factor of 1, 2, 4, or 8.Gameboy relies on several Rust libraries with native dependencies:
sudo apt install libasound2-dev # CPAL dependencies
sudo apt install libxkbcommon-dev libwayland-cursor0 libwayland-dev # MiniFB dependencies
Install Microsoft C++ Build Tools.
The emulator's controls are mapped to the following keys:
_n_________________
|_|_______________|_|
| ,-------------. |
| | .---------. | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | `---------' | |
| `---------------' |
| _ GAME BOY |
Up | _| |_ ,-. | ----> Z
Left/Right <--- ||_ O _| ,-. "._,"|
Down | |_| "._," A | ----> X
| _ _ B |
| // // |
| // // \\\\\\ | ----> Enter/BackSpace
| ` ` \\\\\\ ,
|________...______,"
Thanks to Blargg's Gameboy hardware test ROMs, Gameboy's code can be verified with thorough testing. Run the tests using:
$ cargo run --example blargg
Test Name | Result |
---|---|
cpu_instrs | ![]() |
instr_timing | ![]() |