Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/exelotl/natu
Toolkit for writing Game Boy Advance games in Nim
https://github.com/exelotl/natu
gameboy-advance gba nim
Last synced: 24 days ago
JSON representation
Toolkit for writing Game Boy Advance games in Nim
- Host: GitHub
- URL: https://github.com/exelotl/natu
- Owner: exelotl
- License: other
- Created: 2019-01-13T00:10:31.000Z (almost 6 years ago)
- Default Branch: devel
- Last Pushed: 2024-02-24T21:24:34.000Z (9 months ago)
- Last Synced: 2024-08-04T02:07:37.804Z (3 months ago)
- Topics: gameboy-advance, gba, nim
- Language: Nim
- Homepage: https://natu.exelo.tl
- Size: 1.25 MB
- Stars: 216
- Watchers: 12
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- Changelog: changelog.md
- License: LICENSE
Awesome Lists containing this project
- awesome-gba-dev-zh - natu - Nim 中的 GBA 编程(提供了 libtonc、maxmod 等周围的包装器)。 (工具包)
- awesome-gbadev - natu - GBA programming in Nim (provides wrapper around libtonc, maxmod and more). (Toolkits / Other places)
- awesome-nim - natu - Toolkit for writing Game Boy Advance games in Nim. (Game Development / Game Frameworks)
README
Natu is a package for making Game Boy Advance games in [Nim](https://nim-lang.org/).
Originally a wrapper for [libtonc](https://www.coranac.com/tonc/text/), 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](https://natu.exelo.tl)
The examples can be found at [git.sr.ht/~exelotl/natu-examples](https://git.sr.ht/~exelotl/natu-examples)
Happy coding! And if you need any help you can reach me (exelotl) on the [gbadev](https://discord.gg/2WS7bpJ) discord, `#natu` irc channel on EFnet, or ask a question on [the natu mailing list](https://lists.sr.ht/~exelotl/natu).
### Thanks
[tonc](https://www.coranac.com/tonc/text/) + libtonc by cearn
[maxmod](https://maxmod.devkitpro.org/) sound system by mukunda johnson
[libugba](https://github.com/AntonioND/libugba)'s interrupt handler by AntonioND
[ACSL](https://codeberg.org/pgimeno/ACSL)'s malloc/free by pgimeno
[mGBA](https://mgba.io/) by endrift
[posprintf](http://www.danposluns.com/gbadev/posprintf/index.html) by dan posluns
natu logo by [hot_pengu](https://twitter.com/hot_pengu), based on pixel art by [iamrifki](https://iamrifki.github.io/)