Find a file
Matthew Berry 042b76d910 passing destoer isr test, booting kirby, failing tonc irq_demo
- handle exception returns after alu
- proper spsr banking
- fill pipeline before interrupts
- align r15 before each pipeline fill
2020-11-28 00:07:21 -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 passing destoer isr test, booting kirby, failing tonc irq_demo 2020-11-28 00:07:21 -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