A Game Boy (DMG) emulator writen in Rust for educational purposes. It is under development, so it has missing features.
A live demo is available here: https://yagabor.vercel.app
The current state of the implemented features:
| Module | Status |
|---|---|
| CPU Instructions | ✅ |
| Timers | ✅ |
| Keypad | ⬜ |
| Sound | ⬜ |
| Graphics | ✅ |
| Serial | ⬜ |
| Interrupts | ✅ |
You can run the emulator either locally or with a web GUI.
Simply run cargo run --release --bin desktop-gui [rom.gb] to start the desktop GUI.
Execute the following commands and open the local URL.
cd web-gui/
npm run dev
To run the tests, execute the following commands:
git submodule update --init
cargo test
This will run the following tests:
| Module | Status |
|---|---|
| 01-special.gb | ✅ |
| 02-interrupts.gb | ✅ |
| 03-op sp,hl.gb | ✅ |
| 04-op r,imm.gb | ✅ |
| 05-op rp.gb | ✅ |
| 06-ld r,r.gb | ✅ |
| 07-jr,jp,call,ret,rst.gb | ✅ |
| 08-misc instrs.gb | ✅ |
| 09-op r,r.gb | ✅ |
| 10-bit ops.gb | ✅ |
| 11-op a,(hl).gb | ✅ |