Skip to content
This repository has been archived by the owner before Nov 9, 2022. It is now read-only.

bokuweb/gopher-boy

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
pkg
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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