rbgb

Crates.iorbgb
lib.rsrbgb
version0.2.0
created_at2026-01-07 06:15:09.992614+00
updated_at2026-01-07 08:37:23.332982+00
descriptionA basic and rough gameboy emulator
homepage
repositoryhttps://github.com/ngraf3255/RbGB
max_upload_size
id2027607
size153,533
Noah (ngraf3255)

documentation

README

rbgb

A simple Game Boy emulator written in Rust.

Features

  • CPU emulation (Sharp LR35902)
  • Shared Memory bank
  • Basic graphics rendering
  • ROM loading

Repo Basics

Before running this project ensure SDL2 is installed if you are not running with docker otherwise these steps will fail.

  1. Clone the repository:

    git clone https://github.com/Hyphen325/rbgb.git
    cd rbgb
    
  2. Build the project:

    cargo build --release
    
  3. Run the emulator:

    cargo run --release
    
  4. Select a ROM
    Load a rom by pressing L on the opened window for the ROM path prompt

Requirements

  • Rust (latest stable)
  • SDL2 or Docker
  • CMake

Running Tests

To build and run tests locally:

  1. Clone the repository:

    git clone https://github.com/Hyphen325/rbgb.git
    cd rbgb
    
  2. Run the tests:

    cargo test
    

Outstanding Work

  • Implement handling of poisoned Mutexes
  • Implement full multithreading
  • Modify register system to allow them to be set more gracefully
  • Implement library features for emulator and drop sdl to allow for apps to implement on top of the emulator

Acknowledgements

Much of this was written and based off of Codeslinger Gameboy. I needed this guide to get through most of this. Additionally, I learned about how the RZ80 worked from RZ80 and modified the CPU implementation of the LR35902 from rboy. Getting the CPU emulation to work was the hardest part of this project.

License

MIT

Commit count: 123

cargo fmt