A Game Boy emulator written in Crystal

CryBoy CryBoy Graphic

CryBoy is a Gameboy emulator written in Crystal. The goal of this project is an efficient Gameboy emulator with highly readable code. So far, neither aspect of the goal is accomplished.

This would not be possible without the Pan Docs, izik's opcode table, or the gzb80 opcode reference. A thanks also goes out to PyBoy, which was occasionally used as a reference.


SDL2 is a requirement for this project. install that however you see fit.

After cloning the respository, you'll need to install the required shards with shards install.


After installing the dependencies, the project can be build with shards build --release. At this point, the binary lives in bin/cryboy. The binary takes a an optional boot rom path and a rom path as its argument: bin/cryboy /path/to/rom or bin/cryboy /path/to/bootrom /path/to/rom.


  1. Fork it (
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request


github statistic
  • 2
  • 0
  • 1
  • 0
  • about 3 hours ago
  • May 13, 2020

MIT License

Synced at

Tue, 02 Jun 2020 07:16:58 GMT