Expand description
agb
agb
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.
To get started with agb, you should clone the template repo and work from there.
Modules
Implements everything relating to things that are displayed on screen.
Fixed point number implementation for representing non integers efficiently.
Contains an implementation of a hashmap which suits the gameboy advance’s hardware. A lot of the documentation for this module was copied straight out of the rust standard library. The implementation however is not.
Button inputs to the system.
Interacting with the GBA interrupts
Implements logging to the mgba emulator.
Simple random number generator
Implements sound output.
System BIOS calls / syscalls.
Interactions with the internal timers
Macros
This macro is used to convert a png or bmp into a format usable by the Game Boy Advance.
Structs
This is the allocator for the External Working Ram. This is currently equivalent to the Global Allocator (where things are allocated if no allocator is provided). This implements the allocator trait, so is meant to be used in specifying where certain structures should be allocated.
The Gba struct is used to control access to the Game Boy Advance’s hardware in a way which makes it the borrow checker’s responsibility to ensure no clashes of global resources.
This is the allocator for the Internal Working Ram. This implements the allocator trait, so is meant to be used in specifying where certain structures should be allocated.
Attribute Macros
This macro declares the entry point to your game written using agb
.