Yarge is an open source (licensed under LGPL) Nintendo Gameboy emulator written in Rust and focused on accuracy and performance.
It includes cycle-accurate emulation of the GBZ80 CPU and PPU FIFO.
The emulator is built on a modular architecture, isolating the core from frontends (which can be used as a regular Rust library).
SDL2 frontend is fully-featured with intuitive UI and various quality-of-life features such as save slots.
Product | Downloads |
---|---|
yarge-frontend-sdl | |
yarge-frontend-desktop (deprecated) |
yarge-frontend-desktop
is no longer actively maintained, but I'm keeping it around because it's debugging capabilities are still much better then those in yarge-frontend-sdl
- Want to use Yarge as a library in your Rust application?
- yarge-frontend-nano builds (deprecated; does not represent current state of the project)
Pocket Monsters: Green | Super Mario Land |
---|---|
Tetris | The Legend of Zelda: Link's Awakening |
Features | MBC (Cartridge) types | ||
---|---|---|---|
Feature | Supported | Type | Supported |
Display (PPU) | ✔️ | ROM ONLY | ✔️ |
Input | ✔️ | MBC1 | ✔️ |
Sound (APU) | ✔️(WIP) | MBC2 | ❌ |
Link cable/Serial | ❌(STUB) | MBC3 | ✔️ |
GBC support | ❌ | MBC5 | ❌ |
Cartridge | ➡️ | MBC6 | ❌ |
MBC7 | ❌ | ||
MMM01 | ❌ | ||
POCKET CAMERA | ❌ | ||
BANDAI TAMA5 | ❌ | ||
HuC3 | ❌ | ||
HuC1 | ❌ |
These tests are run automatically after each commit.
___TEST_TABLE___