79099d807b
* Write some of the basic infrastructure for SRAM support. * Implement battery-backed SRAM. * Implement non-Atmel Flash chips. * Implement support for Atmel Flash SRAM chips. * Implement EEPROM support, various refactorings to SRAM system. * Replace Save API with one based more cleanly on the flash chip API. * Run rustfmt on new save media code. * Improve test_savegame and fix remaining bugs caught by the changes. * Proofreading on comments/documentation for save module. * Fix addresses for read/verify routines in save::flash. * Rebase save_api onto current master. |
||
---|---|---|
.cargo | ||
.github/workflows | ||
book | ||
examples | ||
examples-bak | ||
src | ||
.gitignore | ||
build.rs | ||
Cargo.toml | ||
init.sh | ||
LICENSE-APACHE2.txt | ||
linker.ld | ||
make_example.sh | ||
Makefile.toml | ||
README.md | ||
rustfmt.toml | ||
todo_check.bat |
gba
Eventually there will be a full Tutorial Book that goes along with this crate. However, currently the development focus is leaning towards having minimal coverage of all the parts of the GBA. Until that's done, unfortunately the book will be in a rather messy state.
What's Missing
The following major GBA features are still missing from the crate:
- Affine Graphics
- Interrupt Handling
- Serial Communication
Build Dependencies
Install required cargo packages
rustup install nightly
rustup +nightly component add rust-src
cargo install cargo-make
cargo install gbafix
Install arm build tools
- Ubuntu
sudo apt-get install binutils-arm-none-eabi
- OSX
brew install --cask gcc-arm-embedded
- Windows
- Download the GNU Arm Embedded Toolchain
- Install the toolchain, make sure to select "Add path to environment variable" during install
First Time Setup
Writing a Rust program for the GBA requires a fair amount of special setup. All of the steps are detailed for you in the Development Setup part at the start of the book.
If you've done the described global setup once before and just want to get a new project started quickly we got you covered:
curl https://raw.githubusercontent.com/rust-console/gba/master/init.sh -sSf | bash -s APP_NAME
Contribution
This crate is Apache2 licensed and any contributions you submit must also be Apache2 licensed.