Skip to content
🎮 A Game Boy emulator written in Go
Go Assembly Other
Branch: master
Clone or download
Latest commit c581084 Aug 3, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci Hello boy 🎉 Aug 3, 2019
.vscode Hello boy 🎉 Aug 3, 2019
cmd/gopher-boy chore: rename directory Aug 3, 2019
pkg Hello boy 🎉 Aug 3, 2019
roms Hello boy 🎉 Aug 3, 2019
screenshot chore: Add screenshot Aug 3, 2019
test Hello boy 🎉 Aug 3, 2019
.gitignore Hello boy 🎉 Aug 3, 2019
LICENSE Create LICENSE Aug 3, 2019
README.md Update README.md Aug 3, 2019
go.mod Hello boy 🎉 Aug 3, 2019
go.sum Hello boy 🎉 Aug 3, 2019
makefile Hello boy 🎉 Aug 3, 2019

README.md

gopher-boy

CircleCI Go Report Card

  

Installation

you can install gopher-boy with following comand.

go get github.com/bokuweb/gopher-boy/cmd/gopher-boy

This emulator uses the go library pixel, which requires OpenGL. You may need to install some requirements which can be found on the pixels readme.

Usage

gopher-boy YOUR_GAMEBOY_ROM.gb

Keymap

keyboard game pad
← button
↑ button
↓ button
→ button
Z A button
X B button
Enter Start button
Backspace Select button

Testing

make test

Current status

Blargg's test ROM

ROM Result
cpu_instrs
instr_timing (#255)

mooneye-gb's test ROM

ROM Result
emulator-only/mbc1/bits_bank1
acceptance/instr/daa
acceptance/timer/div_write
acceptance/timer/tim00
acceptance/timer/tim01
acceptance/timer/tim10
acceptance/timer/tim11
acceptance/if_ie_registers

Visual regression test

Please install reg-cli.

npm i -g reg-cli

Execute regression test

make reg

Update expected images

make reg-update

Known Bugs and TODO list

PR welcome :)

  • Implement APU
  • Support scale option
  • Support WebAssembly
  • 8*16 sprite
  • LCD interrupt
  • Keypad interrupt
  • Support ROM+MBC1+RAM+BATT catridge
  • Support ROM+MBC2 catridge
  • Support ROM+MBC2+BATTERY catridge
  • Support ROM+RAM catridge
  • Support ROM+RAM+BATTERY catridge
  • Support ROM+MMM01 catridge
  • Support ROM+MMM01+SRAM catridge
  • Support ROM+MMM01+SRAM+BATT catridge
  • Support ROM+MBC3+RAM catridge
  • Support ROM+MBC3+RAM+BATT catridge
  • Support ROM+MBC5 catridge
  • Support ROM+MBC5+RAM catridge
  • Support ROM+MBC5+RAM+BATT catridge
  • Support ROM+MBC5+RUMBLE catridge
  • Support ROM+MBC5+RUMBLE+SRAM catridge
  • Support ROM+MBC5+RUMBLE+SRAM+BATT catridge
  • Support Pocket Camera catridge
  • Support Bandai TAMA5 catridge
  • Support Hudson HuC-3 catridge
You can’t perform that action at this time.