Go to file
2021-04-13 01:25:04 +01:00
.cargo update runner to new test runner 2021-04-13 01:25:04 +01:00
.github/workflows reenable clippy 2021-04-11 16:41:39 +01:00
examples game feel, allow jumping if just left ground 2021-04-11 16:48:21 +01:00
src mark gba in test as unused 2021-04-11 16:48:21 +01:00
.dockerignore Dockerfile for doing development 2021-03-06 22:52:29 +00:00
.gitignore initial commit 2021-03-06 17:58:59 +00:00
build.rs build crt0.s as part of build.rs 2021-04-10 19:02:41 +01:00
Cargo.lock initial commit 2021-03-06 17:58:59 +00:00
Cargo.toml add what's required for cargo test 2021-04-10 22:25:27 +01:00
crt0.s initial commit 2021-03-06 17:58:59 +00:00
Dockerfile remove gbafix from docker container 2021-04-11 16:58:28 +01:00
gba.ld fix linker script 2021-04-10 20:04:21 +01:00
interrupt_simple.s add copious amount of comments 2021-04-03 18:37:09 +01:00
README.md add different requirements for different actions 2021-04-11 16:58:28 +01:00
start-dev.sh Add script to start the development environment 2021-03-06 22:53:20 +00:00

Rust for the Gameboy Advance

This is my in development library for rust on the gameboy advance. It uses information from GbaTek, Tonc, and the existing rust-console/gba.

Note that this currently contains no documentation of any kind, unless you count examples as documentation.

Build Requirements

  • Nightly rust, probably quite a recent version.
  • arm eabi binutils
    • Debian and derivatives: binutils-arm-none-eabi
    • Alpine: binutils-arm-none-eabi
    • Arch Linux and derivatives: arm-none-eabi-binutils

Test Requirements

  • need a recent mgba (known to work on 0.8.4+)
  • xvfb
  • corwinkuiper/mgba-test-runner
    • cargo install --git https://github.com/corwinkuiper/mgba-test-runner.git

Real Hardware Build

  • Need gbafix, rust implementation can be installed with cargo install gbafix.
  • On compiled elf file, additionally need to
arm-none-eabi-objcopy -O binary {input-elf} {output-gba}
gbafix {output-gba}

Stability

0% stable, I have no problems making drastic changes in the API in order to make something nice to work with.