My first attempt at a Gameboy Advance Emulator
Go to file
Rekai Nyangadzayi Musuka e29c20019d fix: advance r15, even when the pipeline is reloaded from the scheduler
The PC would fall behind whenever an IRQ was called because the pipeline
was reloaded (+8 to PC), however that was never actually done by any code

Now, the PC is always incremented when the pipeline is reloaded
2022-10-21 05:13:07 -03:00
.vscode chore: remove reccomended extension 2022-10-21 05:12:01 -03:00
lib chore: add zig-toml dependency 2022-10-21 05:13:05 -03:00
src fix: advance r15, even when the pipeline is reloaded from the scheduler 2022-10-21 05:13:07 -03:00
.gitignore chore: don't commit *.sh files 2022-10-21 05:12:14 -03:00
.gitmodules chore: add zig-toml dependency 2022-10-21 05:13:05 -03:00
README.md chore: Update README.md 2022-10-21 05:12:58 -03:00
build.zig chore: add zig-toml dependency 2022-10-21 05:13:05 -03:00

README.md

ZBA (working title)

An in-progress Game Boy Advance Emulator written in Zig !

Tests

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 (install sdl2: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