Skip to content

Game Boy emulator written in Rust for educational purposes.

License

Notifications You must be signed in to change notification settings

iaguis/gbemu-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gbemu-rs - A Game Boy emulator written in Rust for fun and learning

gbemu-rs is a toy Game Boy emulator written in Rust with the purpose of learning about writing emulators and Rust at the same time. It's pretty rudimentary but it can run (at least) Tetris and Super Mario Land.

gbemu-rs.webm

Getting started

  1. Clone the repo
git clone https://github.com/iaguis/gbemu-rs
  1. Build
cargo build --release
  1. Run
./target/release/gbemu-rs $GAME_BOY_ROM

Keybindings

Key Game Boy button
A B
S A
G Start
H Select
Up/Down/Left/Right Up/Down/Left/Right

Implemented

  • CPU
    • All instructions correct (Passes Blargg cpu_instrs tests)
    • Timings are not accurate
  • GPU
    • Background
    • 8x8 sprites
  • Keypad
  • Timer
  • MMU
    • Games with no MBC (e.g. Tetris)
    • Games with MBC1 (e.g. Super Mario Land)
  • Serial
  • Rudimentary debugger (gbdb)

TODO

  • Refactor and clean up the code
  • Audio
  • GPU
    • Window support
    • 8x16 sprite support
  • Savegames
  • MBC2+
  • Game Boy Color support
  • Fix some bugs

References

About

Game Boy emulator written in Rust for educational purposes.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages