Skip to content
A gameboy emulator, written in C with an optional tetris AI and Julia API
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


A Game Boy emulator as tasty as the Brazilian Garapa

Garapa is GameBoy Emulator written in C. The main objective of the emulator was to be a leaning experiece for me. I am trying to make it as accurate as possible, using several test roms available on the internet, namely blargg's and gekkio's. Last time I checked, Garapa passed all of gekkio's tests and failed only on interrupt timing for blargg's. The emulator is very accurate so far to what has been measured. The APU is fully functional and so is the PPU. In some edge cases the PPU draws incorrectly, even though it is cycle accurate.

On the accuracy side the emulator is pretty good. On the other hand... The usability side is pretty much non existent and should stay as is.

The master branch stores the pure emulator. The branch

Garapa is divided in several subprojects:

  • master - The standalone emulator;
  • gabate - Genetic Algorithm Based Agent for TEtris is a Tetris AI that learns how to play it from scratch. It runs on top of garapa;
  • gabate_tests - Same as above, but it is a frozen version that was used for a paper;
  • julia_api - The full emulator with a simple julia api. For now it has a simpler version of gabate in julia being written.


I would like to thank mehcode and gekkio for all the help and support they gave me, also for everyone else at EmuDev's slack.


See LICENSE for more info.

You can’t perform that action at this time.