natu
Game Boy Advance development library
Summary
| Latest Version | Unknown |
|---|---|
| License | zlib |
| CI Status | Failing |
| Downloads | 0 |
| Last Indexed | 2026-07-21 05:24 |
Tags
Installation
nimble install natu
choosenim install natu
git clone https://github.com/exelotl/natu
OS Compatibility
| Platform | Linux | macOS | Windows | FreeBSD | OpenBSD | NetBSD | Android | iOS | WASM | Embedded |
|---|---|---|---|---|---|---|---|---|---|---|
| natu | ✓ | ✓ | ✓ | - | - | - | - | - | - | ✓ |
Source
| Repository | https://github.com/exelotl/natu |
|---|---|
| Homepage | https://github.com/exelotl/natu |
| Registry Source | nimble_official |
README

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