Find a file
2021-01-19 19:18:57 -08:00
README add some gifs/pictures to the readme 2020-11-16 22:32:57 -08:00
spec initial commit: load cartridge, parse instr types 2020-08-22 00:15:30 -07:00
src 8bpp sprites working properly (emerald, golden sun, graveblood) 2021-01-19 19:18:57 -08:00
.editorconfig initial commit: load cartridge, parse instr types 2020-08-22 00:15:30 -07:00
.gitignore move cpsr onto new bitfield implementation 2020-09-23 08:21:56 -07:00
.travis.yml initial commit: load cartridge, parse instr types 2020-08-22 00:15:30 -07:00
LICENSE initial commit: load cartridge, parse instr types 2020-08-22 00:15:30 -07:00
README.md add some gifs/pictures to the readme 2020-11-16 22:32:57 -08:00
shard.yml move from sdl textures to opengl, add byuu color correction shaders :D 2020-11-10 00:00:06 -08:00

crab

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.

Installation

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

Usage

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

Features

  • 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

Contributing

  1. Fork it (https://github.com/mattrberry/crab/fork)
  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

Contributors