Natu is a package for making Game Boy Advance games in Nim.
Originally a wrapper for libtonc, we are now growing in our own direction: ditching some old conventions to be more Nim-friendly, and adding more libraries.
Features
- Full GBA memory map + flag definitions
- BIOS routines
- Interrupt manager
- A powerful text system (TTE)
- Surfaces (draw to tiles like a canvas)
- Efficient copy routines
- Sin/Cos/Div LUTs + other math functions
- Fixed-point numbers, 2D vector types
- Random number generator
- Hardware sprites, affine matrix helpers
- Color/palette utilities
- Button states (hit, down, released)
- mGBA logging functions
- Maxmod bindings for music/sfx
- Posprintf wrapper for string formatting
Usage
For docs and setup instructions go to natu.exelo.tl
The examples can be found at git.sr.ht/~exelotl/natu-examples
Happy coding! And if you need any help you can reach me (exelotl) on the gbadev discord, #natu
irc channel on EFnet, or ask a question on the natu mailing list.
Thanks
tonc + libtonc by cearn
maxmod sound system by mukunda johnson
libugba's interrupt handler by AntonioND
ACSL's malloc/free by pgimeno
mGBA by endrift
posprintf by dan posluns
natu logo by hot_pengu, based on pixel art by iamrifki