3f760fccaff4889cfdef9c9c5ad9ac3325374103
ZBA (working title)
An in-progress Gameboy Advance Emulator written in Zig ⚡!
Tests
- jsmolka's GBA Test Collection
arm.gbaandthumb.gbaflash64.gba,flash128.gba,none.gba, andsram.gbahello.gba,shades.gba, andstripes.gbamemory.gbabios.gbanes.gba
- DenSinH's GBA ROMs
eeprom-testflash-testmidikey2freqswi-tests-random
- destoer's GBA Tests
cond_invalid.gbadma_priority.gbahello_world.gbaif_ack.gbaline_timing.gbalyc_midline.gbawindow_midframe.gba
- ladystarbreeze's GBA Test Collection
retAddr.gbahelloWorld.gbahelloAudio.gba
armwrestler-gba-fixed.gba- FuzzARM
Resources
Compiling
Most recently built on Zig 0.10.0-dev.2978+803376708
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 |
Description
Languages
Zig
99.7%
PowerShell
0.2%
GLSL
0.1%