🕹️ FyneGameboy
is a Gameboy emulator GUI based on the GameBoy.Live project by HFO4.
With this project you can play your favourite GameBoy games on desktop, mobile and beyond.
You can build the app using Go Version 1.12 or higher as shown below.
On Debian based systems, the packages libasound2-dev
and libgl1-mesa-dev
must be installed.
git clone https://github.com/andydotxyz/fynegameboy.git
cd fynegameboy
go build main.go
Usage of gbdotlive:
-d Use Debugger in GUI mode
-f FPS
Set the FPS (default 60)
-h This help
-m Turn on sound (default true)
Play a specified ROM file in GUI mode:
$ fynegameboy "Tetris.gb"
Alternatively you can just run the application and play Dino's Offline Adventure. Many thanks to Brian Norman for permission to embed the game.
This app also supports a touchscreen configuration for mobile devices.
To build for a mobile device you need to use the fyne
tool's package function:
$ go get fyne.io/fyne/v2/cmd/fyne
$ fyne package -os android -appID xyz.andy.fynegameboy
$ adb install fynegameboy
The Tetris game is not associated with this repository
Keyboard | Gameboy |
---|---|
Enter | Start |
Backspace | Select |
↑ | Up |
↓ | Down |
← | Left |
→ | Right |
X | A |
Z | B |
- CPU instruction emulation
- Timer and interrupt
- Support for ROM-only, MBC1, MBC2, MBC3 cartridge
- Sound emulation
- Graphics emulation
- Cloud gaming
- ROM debugger
- Game saving & restore in cartridge level
There are still many TODOs:
- Support save and load of emulator state
And we'd love to help upstream project with:
- Support Gameboy Color emulation
- Support for MBC4, MBC5, HuC1 cartridge
- Sound simulation is incomplete, still got differences compared to the Gameboy real machine
- Sprite priority issue (see
Wario Land II
andMetroid II: Return of Samus
)