Go to file
Gwilym Kuiper 17867da596
Merge pull request #155 from agbrs/renovate/syn-1.x
Update Rust crate syn to 1.0.85
2022-01-12 23:18:16 +00:00
.github Add 'publish-agb-fixnum' workflow 2022-01-12 22:06:19 +00:00
.vscode move launch.json to parent 2021-05-20 07:25:51 +01:00
agb Merge pull request #155 from agbrs/renovate/syn-1.x 2022-01-12 23:18:16 +00:00
agb-fixnum split to own crate 2022-01-07 16:59:19 +00:00
agb-image-converter Update lockfiles 2022-01-12 23:05:02 +00:00
agb-macros Update lockfiles 2022-01-12 23:05:02 +00:00
agb-sound-converter Update Rust crate syn to 1.0.85 2022-01-06 09:19:51 +00:00
book Merge pull request #155 from agbrs/renovate/syn-1.x 2022-01-12 23:18:16 +00:00
examples Merge pull request #155 from agbrs/renovate/syn-1.x 2022-01-12 23:18:16 +00:00
mgba-test-runner Update lockfiles 2022-01-12 23:05:02 +00:00
template You don't need extern crate agb; any more 2022-01-04 00:16:25 +00:00
.gitignore Delete template/Cargo.lock 2021-06-20 23:53:42 +01:00
LICENSE add project wide MPLv2 license 2021-05-29 15:22:19 +01:00
logo-original.png Add logo to repo and readme 2021-07-05 23:56:43 +01:00
README.md Add CMake to the test runner instructions 2021-08-01 21:16:57 +01:00
release.sh Only try to run in folders with a Cargo.toml file 2022-01-12 22:23:23 +00:00

Rust for the Game Boy Advance

AGB logo

This is a library for making games on the Game Boy Advance using the Rust programming language. It attempts to be a high level abstraction over the internal workings of the Game Boy Advance whilst still being high performance and memory efficient.

The documentation for the latest release can be found on docs.rs. Note that this repository does not necessarily contain the latest release, but in development versions. Further work is needed to improve the documentation.

Build Requirements

  • Recent rustup, see the rust website for instructions for your operating system.
    • You can update rustup with rustup update, or using your package manager if you obtained rustup in this way.
  • arm eabi binutils
    • Debian and derivatives: sudo apt install binutils-arm-none-eabi
    • Arch Linux and derivatives: pacman -S arm-none-eabi-binutils
    • Windows can apparently use the GNU Arm Embedded Toolchain. Make sure to select "Add path to environment variable" during the install.
    • This process has only been tested on Ubuntu and Arch Linux.

Test Requirements

  • libelf and cmake
    • Debian and derivatives: sudo apt install libelf-dev cmake
    • Arch Linux and derivatives: pacman -S libelf cmake
  • mgba-test-runner
    • Run cargo install --path mgba-test-runner inside this directory

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.