Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
This repository was archived by the owner on Dec 28, 2020. It is now read-only.

bokuweb/gopher-boy

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

65 Commits
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

Packages

Used by

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.