zba
zba copied to clipboard
Game Boy Advance Emulator. Yes, I'm awful with project names.
ZBA (working title)
An in-progress Game Boy Advance Emulator written in Zig ⚡!
Tests
- [ ] jsmolka's GBA Test Collection
- [x]
arm.gbaandthumb.gba - [x]
flash64.gba,flash128.gba,none.gba, andsram.gba - [x]
hello.gba,shades.gba, andstripes.gba - [x]
memory.gba - [x]
bios.gba - [ ]
nes.gba
- [x]
- [ ] DenSinH's GBA ROMs
- [x]
eeprom-testandflash-test - [x]
midikey2freq - [ ]
swi-tests-random
- [x]
- [ ] destoer's GBA Tests
- [x]
cond_invalid.gba - [x]
dma_priority.gba - [x]
hello_world.gba - [x]
if_ack.gba - [ ]
line_timing.gba - [ ]
lyc_midline.gba - [ ]
window_midframe.gba
- [x]
- [x] ladystarbreeze's GBA Test Collection
- [x]
retAddr.gba - [x]
helloWorld.gba - [x]
helloAudio.gba
- [x]
- [x]
armwrestler-gba-fixed.gba - [x] FuzzARM
Resources
Compiling
Most recently built on Zig 0.10.0-dev.3900+ab4b26d8a
Dependencies
bitfields.zig from FlorenceOS is included under lib/util/bitfield.zig.
Use git submodule update --init from the project root to pull the git submodules SDL.zig, zig-clap, and known-folders
Be sure to provide SDL2 using:
- Linux: Your distro's package manager
- MacOS: ¯\_(ツ)_/¯
- Windows:
vcpkg(installsdl2:x64-windows)
SDL.zig will provide a helpful compile error if the zig compiler is unable to find SDL2.
Once you've got all the dependencies, execute zig build -Drelease-fast. The executable is located at zig-out/bin/.
Controls
| Key | Button |
|---|---|
| X | A |
| Z | B |
| A | L |
| S | R |
| Return | Start |
| RShift | Select |
| Arrow Keys | D-Pad |