All Projects → bokuweb → Gopher Boy

bokuweb / Gopher Boy

Licence: mit
🎮 A Game Boy emulator written in Go

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Gopher Boy

Wasmboy
Game Boy / Game Boy Color Emulator Library, 🎮written for WebAssembly using AssemblyScript. 🚀Demos built with Preact and Svelte. ⚛️
Stars: ✭ 963 (+367.48%)
Mutual labels:  gameboy, gameboy-emulator, emulator
Cryboy
A Game Boy (Color) emulator written in Crystal
Stars: ✭ 68 (-66.99%)
Mutual labels:  gameboy, gameboy-emulator, emulator
khedgb
Experiments in Game Boy emulation
Stars: ✭ 15 (-92.72%)
Mutual labels:  emulator, gameboy, gameboy-emulator
gameboyGO
Gameboy emulator in go
Stars: ✭ 24 (-88.35%)
Mutual labels:  emulator, gameboy, gameboy-emulator
Gbemu
A Gameboy emulator in modern C++
Stars: ✭ 149 (-27.67%)
Mutual labels:  gameboy, gameboy-emulator, emulator
rusty-boy
Gameboy emulator in Rust
Stars: ✭ 20 (-90.29%)
Mutual labels:  emulator, gameboy, gameboy-emulator
Pyboy
Game Boy emulator written in Python
Stars: ✭ 3,326 (+1514.56%)
Mutual labels:  gameboy, gameboy-emulator, emulator
awesome-emu-resources
A curated list of emulator development resources
Stars: ✭ 26 (-87.38%)
Mutual labels:  emulator, gameboy, gameboy-emulator
Gameboy
🎮 Game Boy emulator written in Rust
Stars: ✭ 17 (-91.75%)
Mutual labels:  gameboy, gameboy-emulator, emulator
Mooneye Gb
A Game Boy research project and emulator written in Rust
Stars: ✭ 557 (+170.39%)
Mutual labels:  gameboy, gameboy-emulator, emulator
Coffee Gb
Gameboy emulator in Java 8.
Stars: ✭ 953 (+362.62%)
Mutual labels:  gameboy, gameboy-emulator, emulator
Jitboy
A Game Boy emulator with dynamic recompilation (JIT)
Stars: ✭ 190 (-7.77%)
Mutual labels:  gameboy, gameboy-emulator, emulator
Hades
🔥 A Nintendo Game Boy Advance emulator
Stars: ✭ 44 (-78.64%)
Mutual labels:  emulator, gameboy, gameboy-emulator
Vba M Nx
WIP full featured port of VBA-M for Nintendo Switch
Stars: ✭ 11 (-94.66%)
Mutual labels:  gameboy, gameboy-emulator, emulator
SkyEmu
Game Boy, Game Boy Color, and Game Boy Advanced Emulator
Stars: ✭ 59 (-71.36%)
Mutual labels:  emulator, gameboy, gameboy-emulator
Elmboy
A Nintendo™ Game Boy™ Emulator written in Elm.
Stars: ✭ 285 (+38.35%)
Mutual labels:  gameboy, gameboy-emulator, emulator
goboy
Playing GameBoy Emulation in GoLang (ported from https://github.com/racerxdl/GameBoyEmulator)
Stars: ✭ 37 (-82.04%)
Mutual labels:  emulator, gameboy, gameboy-emulator
worldwide
A toy GameBoy Color emulator written in golang.
Stars: ✭ 563 (+173.3%)
Mutual labels:  emulator, gameboy, gameboy-emulator
Gearboy
Game Boy / Gameboy Color emulator for iOS, macOS, Raspberry Pi, Windows, Linux and RetroArch.
Stars: ✭ 528 (+156.31%)
Mutual labels:  gameboy, gameboy-emulator, emulator
Gbemu
WebAssembly based Gameboy Emulator
Stars: ✭ 120 (-41.75%)
Mutual labels:  gameboy, gameboy-emulator, emulator

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
  • [x] Support WebAssembly
  • [x] 8*16 sprite
  • [ ] LCD interrupt
  • [ ] Keypad interrupt
  • [ ] cartridges
    • [x] 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
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].