This is a Gameboy emulator, built in Rust with sdl2 for sound processing. Made this with a friend solely to learn Rust and emulation.
You will need to install Rust, as well as sdl2 with headers.
Instruction to install Rust can be seen at the Rust installation guide
Instruction to install sdl2:
Homebrew
brew install sdl2
Or using apt
sudo apt-get install libsdl2-dev libsdl2-gfx-dev
Running a gameboy game is done through the following command
cargo build --release
cargo run filename
For example:
cargo build --release
cargo run somegame.gb
Please obtain your ROMs legally.
This emulator takes in input from the following keyboard keys: Directional keys: Arrow Keys (Up, Down, Left, Right) A button: Spacebar B button: Left Control Start button: Enter Select button: Right Shift
This project is indebted to the numerous documentations as well as other similar projects. In particular, we have taken reference from:
Awesome Gameboy Documentation List - One-stop documentation, has most of the below inside.
Pandocs - "The single, most comprehensive technical reference to Game Boy available to the public".
Gameboy Complete Technical Reference - Nicely formatted reference to start building the emulator.
Nintendo's Gameboy Programming Manual - The official Nintendo manual for Gameboy / GBC / GBA for game makers.
DMG Memory Map - A nice visual reference for map addresses in the Gameboy
opcode table - Also a nice visual for opcode table
Natesh's Dev Blog - Used it to understand LCD controller for the Gameboy
Other Gameboy emulators written in Rust:
by simias
by ev-wilt
by dimitribobkov
Other projects:
Blargg's test suite - Used for testing components of the Gameboy.
Yet another CHIP-8 Rust Emulator - Used to model the structure of this emulator