An open API service indexing awesome lists of open source software.

https://github.com/thelolagemann/gomeboy

Game Boy emulator written in golang
https://github.com/thelolagemann/gomeboy

emulation emulator gameboy gameboy-emulator go golang linux mac-os nintendo windows

Last synced: 6 months ago
JSON representation

Game Boy emulator written in golang

Awesome Lists containing this project

README

          

# gomeboy

![GitHub go.mod Go version (subdirectory of monorepo)](https://img.shields.io/github/go-mod/go-version/thelolagemann/gomeboy)

GomeBoy is my attempt at creating a fairly accurate and reasonably performant Game Boy emulator written with golang. It
is still currently in the very early stages of development, but it is already capable of running quite a few games with
varying degrees of success.

---

## Screenshots

### DMG Games

### DMG Games running on CGB hardware

### CGB Games

### Peripherals (Printer)

![Printer](assets/images/printer.gif)

---

## Features

- GameBoy (DMG) and GameBoy Color (CGB) support
- SRAM and RTC support
- Run DMG games with CGB colorization palettes (without using a boot ROM)
- Automated testing against a large number of test ROMs
- Peripherals
- Cartridge Mappers
- MBC1
- MBC2
- MBC3
- MBC5
- ROM
- Cheat Carts
- Game Genie
- GameShark
- Serial
- Printer
- Link Cable
- Local Multiplayer (needs reimplementation)
- Platform-agnostic (runs on Windows, Linux, and Mac)

---

# Automated Test Results

![progress](https://progress-bar.xyz/90/?scale=100&title=passing%20228,%20failing%2024&width=500)

| Test Suite | Pass Rate | Tests Passed | Tests Failed | Tests Total |
| --- | --- | --- | --- | --- |
| acid2 | 75% | 3 | 1 | 4 |
| bully | 50% | 1 | 1 | 2 |
| blarrg | 100% | 43 | 0 | 43 |
| little-things-gb | 100% | 4 | 0 | 4 |
| mooneye | 99% | 113 | 1 | 114 |
| samesuite | 75% | 59 | 19 | 78 |
| scribbltests | 100% | 5 | 0 | 5 |
| strikethrough | 0% | 0 | 2 | 2 |

Visit the [tests](tests/README.md) directory for more information.

---

# TODO

- [ ] build instructions
- [ ] github actions
- [ ] improve error handling and logging
- [ ] expose more emulator options to the user
- [ ] reimplement link cable & local multiplayer