Skip to content
This repository has been archived by the owner on Dec 28, 2020. It is now read-only.

bokuweb/gopher-boy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

65 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

Requirements

  • go1.12.7

Development

Native

GO111MODULE=on go run -tags="native" cmd/gopher-boy/main.go hello.gb

WebAssembly

make build-wasm
make serve

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

Credit

"gopher" by Renée French CC-BY-3.0

Known Bugs and TODO list

PR welcome :)

  • Implement APU
  • Support scale option
  • Support WebAssembly
  • 8*16 sprite
  • LCD interrupt
  • Keypad interrupt
  • cartridges
    • 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

Releases

No releases published

Packages

No packages published

Languages