Code Monkey home page Code Monkey logo

gopher-boy's Introduction

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

gopher-boy's People

Contributors

bokuweb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.