github.com/Globoplox/gba-stuff
master / published Feb 15, 2025 / repository
Pet project for exploring game boy advance development.
Game Boy Advance playground
This repostiory is my sandbox for playing with GBA.
I'm doing it as much from scratch as I can because it is more intersting this way.
I'm also doing it in crystal for the same reason.
I am using this very cool guide TONC
and the GBA hardware specs from there: GBATEK.
The startup file are mostly taken from there.
Dependencies
They should be available on every sane linux distro packages manager:
You migh also want a GBA emulator, I use mgba.
As I write this, the rom work as expected in mgba but not in mgba-qt, which is weird.
Run shards to install crystal development dependencies.
Usage
Just make it.
Immediate TODO:
- [ ] Basic string display system
- [ ] Better assets handling
- [ ] Maybe: find a way to reduce clutter without section-gcing
__crystal_main.
Credit
- Tiny 16- Basic by Lanea Zimmerman. CC-BY 3.0.
- 8x8 Font by Marcel Sondaar, Public domain
API
- Assets
- Enum
Enum is the base type of all enums.
- Int
Int is the base type of all integer types.
- Keypad
Hold and hold durration ? Flag for each key, state changed (that can be acknowledged ?)
- Object
Objectis the base type of all Crystal objects. - Palettes
- Pointer(T)
A typed pointer to some memory.
- Screen
- Splash
- State
- StaticArray(T, N)
A fixed-size, stack allocated array.
- String
A
Stringrepresents an immutable sequence of UTF-8 characters. - Text
- Tile
- Tilesets
- U32IntConverter