Home

Awesome

<div align="center"> <h1><img src="./browser/assets/images/feather.svg" height="20" /> FeatherGB</h1> Just another GameBoy emulator written in Rust 🦀 <p align="center"> <img alt="GameBoy" src="./browser/assets/images/screen-gb.png" /> </p> <p align="center"> <img alt="Debugger" src="./browser/assets/images/screen-debugger.png" /> </p> </div>

Info

This is my first project in Rust, so many patterns might not be ideal. I also wanted to try WebAssembly a little bit.

Status

The emulator is somehow accurate - the CPU is cycle-accurate and the emulator passes many tests, although the PPU's accuracy needs to be improved a lot. For more info see tests results below.

Test results

The emulator is tested against popular test suites such as blargg's test, mooneye test suite etc. These test suites are linked as git submodules (see .gitmodules file for details).

Generated test report is here

Modes

The emulator can be run in 2 modes - the normal mode (shows just GameBoy's display) and the debugger mode (using egui). Both are available for the desktop and the browser.

Desktop

Browser

Based on React & TypeScript in general

TODOs

No specific priority here

Project structure

Development requirements

Resources

Links

Test Roms

Note

All external tests require rgbds@0.4.2 to be installed. The only exception is age-test-roms which requires rgbds0.5.1. The versions can be switched using https://github.com/gbdev/rgbenv

Fonts

Images