A Game Boy Advance emulator in Crystal Lang


A very rough start to a Game Boy Advance emulator in Crystal Lang. The long-term goal is simply playability of popular titles. The name of the project come from the emudev discord, where "crab" was suggested for "Crystal Advanced Boy." Close enough.


At the moment, a shards install is all that's required.


This is not in a functional state. As instructions are being implemented, you can print the trace by compiling with -Dtrace or print logs by compiling with -Dlog. Next, simply provide the executable with the path to your rom.

Features and Remaining Work


  • GLSL shaders for color reproduction
  • Basic PPU mode 0, 3, 4, and 5 implementations
  • Passing armwrestler
  • Passing FuzzARM
  • Passing roughly half of gba-suite

Remaining Work

Really, this list should include everything...

  • Interrupts
  • Timers
  • Sound
  • PPU things
    • Affine
    • Mosaic
    • Window
    • Objects
    • Alpha blending
    • Etc
  • Etc


  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
  • 5
  • 0
  • 0
  • 0
  • about 17 hours ago
  • August 22, 2020

MIT License

Synced at

Sat, 28 Nov 2020 08:18:51 GMT