A Nintendo Game Boy emulator written in golang.
Passes blargg's cpu_instrs.gb test.
tested none-MBC, MBC1, MBC2 and MBC3 roms.
- Save / Load game state.
- Serial Link.
- Fix the sound emulation.
It is possible that you'll need to add the following code to github.com\veandco\go-sdl2\sdl\audio.go (if not already there):
// GetQueuedAudioSize (https://wiki.libsdl.org/SDL_GetQueuedAudioSize)
func GetQueuedAudioSize(dev AudioDeviceID) uint32 {
return (uint32)(C.SDL_GetQueuedAudioSize(dev.c()))
}
// ClearQueuedAudio (https://wiki.libsdl.org/SDL_ClearQueuedAudio)
func ClearQueuedAudio(dev AudioDeviceID) {
C.SDL_ClearQueuedAudio(dev.c())
}
Usage of gopherboy:
-bios string
Path to boot ROM
-rom string
Path to game ROM
-settings string
Path to settings file (default "settings.json")
Operation | Key |
---|---|
Up | Up Arrow |
Down | Down Arrow |
Left | Left Arrow |
Right | Right Arrow |
A | Z |
B | X |
Select | Space |
Start | Enter |
Reset | F1 |
Pause | F2 |
Un/Mute Sound | F3 |
Exit | ESC |
You can change the following settings via the settings.json file:
"joypadMapping": {
"<sdl keycode>": <joypad keycode>
...}
Joypad keycodes: Up = 0, Down = 1, Left = 2, Right = 3, A = 4, B = 5, Select = 6, Start = 7
SDL keycodes: https://wiki.libsdl.org/SDLKeycodeLookup
Sound output device, FPS rate, screen size and color palette.