Home

Awesome

WIP Game Boy & Game Boy Color Emulator

<p float="left" align="middle"> <img src="icon/crystal.png" alt="Pokemon Crystal Title Screen" width="450" /> <img src="icon/shantae.png" alt="Shantae Title Screen" width="350" /> </p>

Installation

Pre-built Binaries:

Check the Releases page and download an already built version of Kevboy.

Our CI workflow currently produces binaries for:

Manual:

Usage

Open a ROM via File > Open ROM.

A boot rom is not provided, the state of the Game Boy after the boot rom finishes is emulated.

Serial (link cable) is emulated in so far that games that rely on it do work, though no emulation of actual linking between two Game Boys is implemented.

Supported Memory Bank Controllers:

Controls:

Controls may be customized via Options > Controls. For manual editing (not recommended, key order needs to be preserved), settings are stored here:

Some keys might not be supported.

For a full list, see: https://docs.rs/egui/latest/egui/enum.Key.html

KeyboardGame Boy
<kbd>O</kbd>B
<kbd>P</kbd>A
<kbd>W</kbd>Up
<kbd>A</kbd>Left
<kbd>S</kbd>Down
<kbd>D</kbd>Right
<kbd>Enter</kbd>Start
<kbd>Q</kbd>Shift

Passed tests:

CPU tests:

TestStatus
cpu_instrs.gb
mem-timing.gb
instr_timing.gb

PPU tests:

TestStatus
dmg-acid2.gb, cgb-acid2.gb
sprite_priority.gb

Timer tests:

TestStatus
div_write.gb
tim00.gb
tim00_div_trigger.gb
tim01.gb
tim01_div_trigger.gb
tim10.gb
tim10_div_trigger.gb
tim11.gb
tim11_div_trigger.gb
tima_reload.gb
tima_write_reloading.gb
tma_write_reloading.gb

TODO