Crab is a Game Boy Advance emulator written in Crystal. Currently, this project is still clearly a work-in-progress, although some games are currently playable.
After cloning the repository, all you'll need to do is run
shards build --release to build the emulator in release mode. This will place the binary at
Running the emulator simply consists of
bin/crab /path/to/bios /path/to/rom.
At the moment, the BIOS is a required argument, although I may ship with an open-source replacement BIOS at some point in the future. If you cannot dump the official BIOS from your own console, you can pick up Normatt's replacement BIOS or the one created by DenSinH and fleroviux. Both of these BIOSes should be compatible in 99% of use-cases.
Features and Remaining Work
- Accurate sound emulation (both Direct Sound and PSGs)
- GLSL shaders for color reproduction
- PPU features
- Modes 0-5 are mostly implemented
- Affine backgrounds and sprites
- Alpha blending
- CPU core
- Flash and SRAM implemented (although Golden Sun refuses to save..)
- Timers need improvement
- Blending code needs cleanup
- Fix Flash for Golden Sun
- Game database to support odd cases like Classic NES
- Cycle counting
- DMA timing
- Etc, etc, etc.
A special thanks goes out to those in the emudev community who are always helpful, both with insightful feedback and targeted test ROMs.
- Fork it (https://github.com/mattrberry/crab/fork)
- Create your feature branch (
git checkout -b my-new-feature)
- Commit your changes (
git commit -am 'Add some feature')
- Push to the branch (
git push origin my-new-feature)
- Create a new Pull Request
- Matthew Berry - creator and maintainer
- about 9 hours ago
- August 22, 2020
Sat, 27 Feb 2021 05:55:24 GMT