2021-04-16 09:58:57 +10:00
|
|
|
# Rust for the Game Boy Advance
|
2021-03-07 04:58:59 +11:00
|
|
|
|
2021-06-04 03:55:42 +10:00
|
|
|
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](https://docs.rs/agb/latest/agb/). Note that this repository does not
|
|
|
|
nesesarily contain the latest release, but in development versions. Futher work
|
|
|
|
is needed to improve the documentation.
|
2021-03-07 04:58:59 +11:00
|
|
|
|
|
|
|
|
2021-04-12 01:56:05 +10:00
|
|
|
## Build Requirements
|
2021-03-07 04:58:59 +11:00
|
|
|
|
2021-05-23 11:35:39 +10:00
|
|
|
* Recent rustup, see [the rust website](https://www.rust-lang.org/tools/install)
|
|
|
|
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.
|
2021-04-11 03:32:47 +10:00
|
|
|
* arm eabi binutils
|
2021-04-16 07:16:49 +10:00
|
|
|
* Debian and derivatives: `sudo apt install binutils-arm-none-eabi`
|
|
|
|
* Arch Linux and derivatives: `pacman -S arm-none-eabi-binutils`
|
2021-05-23 11:35:39 +10:00
|
|
|
* Windows can apparently use the [GNU Arm Embedded
|
|
|
|
Toolchain](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads).
|
|
|
|
Make sure to select "Add path to environment variable" during the install.
|
|
|
|
* This process has only been tested on Ubuntu and Arch Linux.
|
2021-03-07 04:58:59 +11:00
|
|
|
|
2021-04-12 01:56:05 +10:00
|
|
|
## Test Requirements
|
|
|
|
|
2021-05-23 11:35:39 +10:00
|
|
|
* mgba 0.9.X
|
2021-04-20 07:23:22 +10:00
|
|
|
* mgba-test-runner
|
|
|
|
* Run `cargo install --path mgba-test-runner` inside this directory
|
2021-04-12 01:56:05 +10:00
|
|
|
|
|
|
|
## Real Hardware Build
|
|
|
|
|
|
|
|
* Need gbafix, rust implementation can be installed with `cargo install gbafix`.
|
|
|
|
* On compiled elf file, additionally need to
|
|
|
|
```bash
|
|
|
|
arm-none-eabi-objcopy -O binary {input-elf} {output-gba}
|
|
|
|
gbafix {output-gba}
|
|
|
|
```
|
|
|
|
|
2021-03-08 11:00:43 +11:00
|
|
|
## Stability
|
|
|
|
|
|
|
|
0% stable, I have no problems making drastic changes in the API in order to make
|
|
|
|
something nice to work with.
|