Skip to content

sixels/GoodBoy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Good Boy 🐶

A Game Boy emulator in Rust
Sound not included

Web version is available at https://sixels.github.io/GoodBoy


Game: Pokémon Red

Features

This emulator is not perfect and lack some features. Core features that are worthy listing:

  • Pass Blargg's cpu_instrs tests
  • Needs a little more improvements to pass dmg_acid test, but is still doing well
  • Joypad implemented
  • Support to MBC0, MBC1, MBC3 (without timer) and MBC5 (without rumble) cartridges
  • Runs on browser (Experimental, not ready yet)
  • Partial CGB support (Game Boy Color)

Controls

Basic keyboard bindings

Keyboard Key Game Boy Button
Z A
X B
↵ Return Start
Space Select
Left
Right
Up
Down

Other bindings:

Keyboard Key Action
Tab Next Colorscheme
Esc Open a game
⇧ Shift + Tab Previous Colorscheme
Ctrl + Q Exit

Some keybindings are exclusive for native builds

See it in action

In-game screenshots


Game: The Legend of Zelda: Link’s Awakening

Game: Pokémon Gold

Game: Super Mario Land 2

Game: Pokémon Yellow

How do i run it on my machine?

First, clone and cd to the project:

git clone https://github.com/sixels/goodboy && cd goodboy

It is supposed to be cross platform (however I tested it only on Linux). Setup Rust and Cargo on your machine then build the project:

cargo build --release

run with:

./target/release/goodboy [PATH/TO/ROM.gb]