Crate agb

source · []
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

Includes sprites found in the referenced aseprite files. Can include multiple at once and optimises palettes of all included in the single call together. See Size for supported sizes. Returns a reference to Graphics.

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.