butano is a free, open source gaming project written in C++ and released under Zlib. It has 1,828 GitHub stars, 148 forks and 0 open issues, and was last pushed 4 days ago. On this registry it ranks #69 of 84 tracked projects in Gaming, with 5 head-to-head comparisons available.

What is butano?

Butano is a modern C++ high-level engine for the Game Boy Advance, aimed at developers who want to build GBA software in C++ without writing low-level hardware code themselves.

What it is

Butano is a game engine for the Game Boy Advance written in C++, released under the zlib license and developed in the open on GitHub. It lives in the gbadev ecosystem: it is built on top of devkitARM or the Wonderful Toolchain, runs on Windows, macOS and Unix-like hosts, and targets Game Boy Advance hardware directly. The engine supplies a high-level layer — sprites, backgrounds, text, raster effects and more — that game code reaches in a single line of C++.

The problem it solves is the volume of low-level work otherwise required before a GBA program displays anything. Butano stands on lower-level libraries — Tonclib, Universal GBA Library and agbabi for hardware access; Maxmod, Apex Audio System, GBT Player and advgm for music and sound; gba-link-connection for multiplayer — and wraps them in modern C++ concepts such as shared ownership and RAII. Instead of assembling that foundation by hand, a developer writes engine calls and imports their own assets through a documented path.

Key capabilities

  • Create and display sprites, backgrounds, text and raster effects from a single line of C++ code.
  • A custom standard library with no heap allocations and no exceptions, based on ETL and its pool containers.
  • Asset importing for a developer's own graphics and audio, covered by a dedicated import guide.
  • Development tools shipped with the engine: asserts, emulator logging and code profiling.
  • Modern C++ foundations — shared ownership and RAII — with unique type ID generation without RTTI provided by CTTI.
  • Multiplayer support through gba-link-connection and audio through Maxmod, Apex Audio System, GBT Player and advgm.
  • Detailed documentation, multiple examples, and the source code and assets of two complete games: Butano Fighter and Varooom 3D.

Who uses it and how

  • Developers writing GBA games in C++ who want engine-level abstractions rather than direct register and library work.
  • Hobbyists and small teams on Windows, macOS or a Unix-like system, since the same engine builds against either devkitARM or the Wonderful Toolchain.
  • Newcomers working through the examples first, which the documentation describes as covering most of what Butano offers, before moving on to asset import and their own project.
  • Developers studying a finished title: Butano Fighter and Varooom 3D ship with full source and assets as worked references.

Getting started

The README points newcomers to the download, install and start using Butano guide in the online documentation, with either devkitARM or the Wonderful Toolchain installed first.

How it compares

The facts provided name no other high-level GBA engine, so Butano stands alone in this registry; its nearest named relatives are the lower-level libraries it builds upon, such as Tonclib, libugba and agbabi. Against those it is the higher-level layer, not a substitute for the hardware access they provide.

When to use it — and when not to

A self-hoster must install and maintain a GBA toolchain, either devkitARM or the Wonderful Toolchain, and follow the external getting-started guide, because the README is an overview that defers installation to the documentation. It is not a fit for projects targeting anything other than the Game Boy Advance, and its no-heap, no-exceptions standard library means code must be written to the ETL-based subset rather than to general-purpose C++ assumptions. Note also that while Butano itself is zlib licensed, the third-party libraries it depends on carry other licenses that should be checked individually.

project readme (upstream, from github) — read inline

Butano

Butano is a modern C++ high level engine for the Game Boy Advance.

Features

  • Create and display sprites, backgrounds, text, raster effects and more with only one line of C++ code.
  • Custom standard library without heap allocations nor exceptions, based on ETL.
  • Import and use your own assets with ease.
  • Multiple development tools like asserts, emulator logging and code profiling.
  • Based on modern C++ concepts like shared ownership and RAII.
  • Detailed documentation.
  • Multiple examples of most aspects of the engine.
  • The source code and assets of two full games (Butano Fighter and Varooom 3D) are provided with this project.

Supported platforms

Butano is built on top of devkitARM or Wonderful Toolchain, so it supports Windows, macOS and Unix-like platforms.

What's new

Curious about what was added or improved recently? Check out the changelog in the documentation.

Getting started

The best way to get started is to read the download, install and start using Butano guide.

If everything went as expected, you should:

Third party libraries

Butano would not have been possible without these libraries:

Contact and support

If you spotted a bug, need a feature or have an awesome idea, the best you can do is to head over to the issues page, to the gbadev.net forums or to the gbadev Discord server.

If you want to support Butano, check this.

Licenses

Butano is licensed under the zlib license, see the LICENSE file for details.

Third party libraries are licensed under other licenses, please check the licenses folder for details.

Assets used in games, examples and other projects are licensed under other licenses, please check the credits folders for details.

Made with Butano: Butano Fighter

Stay alive while you shoot at everything that moves! What else do you need?

The full source code and the creative commons assets of this game are in its project folder.

Get the latest Butano Fighter ROM from itch.io.

Made with Butano: Varooom 3D

Action-packed with revolutionary 60FPS 3D technology and 3D glasses (not included) that will have you believing you're in the middle of a circuit race at speeds of 200 KMH!

The full source code and the creative commons assets of this game are in its project folder.

Get the latest Varooom 3D ROMs from itch.io.

Also made with Butano

  • BeatBeast: help Joaquín shoot his way out of this rhythmic world!

  • Feline (working source code): explore the world as a cat, meet new people, learn new languages, face difficult foes and save your family!

  • A Betty and Claude Cartoon: play as outlaw duo Betty Squeaker and Claude Burrow as they try to get away from the cops and make it to the state border.

  • Symbol★Merged: a puzzle platformer game where you can merge items (symbols) in hands, and use the superpower of the merged symbol.

  • Green Memories: the year is 300 a.f. and protagonist Cytra tries to survive the extreme climate of a post-apocalyptic desert while collecting data from her scientific research.

  • notenogram: chill analog-styled picross/nonogram/hanjie/griddler game, with story and create modes.

  • Ounfò Tan Sispann: forewarning: this experience harbors disquieting scenes and a stiffing atmosphere.

  • Dare to Square: your ship crashed in an unknown galaxy. Reunite with your friends and work together to find your way home!

  • Sleep Paradox: as student Fredericko you'll explore the school, leveling up as you fight through the hordes, searching for some kind of answer to what is going on.

  • Heartwrench Advance: crank, twist, leap and smash your way through challenging platforming scenarios.

  • Bloxorz: a complete port of the classic flash game Bloxorz for the Game Boy Advance.

  • Bridge Quest: find the way to the desert, but beware, because enemies and an evil tree boss will try to stop you!

  • Toll Runner: complete 17 levels to find out why the mouse had to run!

  • Happy Dawn: a hilarious story unfolds about a day in the life of Carlitos, a boy who wakes up on a new, happy day to go to school.

  • Pinball Galaxy: use the flippers and nudges to aim for various targets and keep the ball from falling, all while racking up points.

  • Witch×Bullet: play as school girls and save the world from being consumed by darkness.

  • Knight Owls (working source code): build up a powerful spellbook and take on many enemies, gather owls and upgrades while managing your health and money and defeat the final boss to win!

  • xo89: your job is to pilot a mining drone that harvests the resources from this planet and sell them.

  • Collie Defense: you're a Border Collie and you need to protect your flock of sheep!

  • Detective Monroe: Murder at Sea: play as Detective Alex Monroe in his new adventure where he solves a murder mystery, while on vacation on a cruise ship!

  • Sips: enjoy watching people while you earn money to upgrade your cafe.

  • MORDOBOY: The Dudes™ are attacking! Strike them down!

  • Work Life: visual novel focusing on relationships in a modern workplace.

  • Knock Time: play as a boxer on a mission through the chaotic streets of Venezuela to rescue your journalist brother, who was kidnapped by a network of corrupt police officers following a protest.

  • Bata Dubnos: shoot the possessed portrait faces and ???

  • Sys*Crusher: take on contracts to steal files, crash systems and commit industrial sabotage!

  • Doom Escaping: inspired by Hotline Miami, in this game you navigate through a "digital" maze where AI-driven agents try to prevent you from leaving an endless loop.

  • Aurora Mission: Aurora is on a mission to explore a strange planet and uncover its mysteries. Equipped with a jetpack and an energy machine gun, she will face monsters and challenges across the open map.

  • Nuclear Love: have fun getting to know other survivors in this dating-show, who knows, maybe you might find your future Mr. or Mrs Right?

  • Globlins!: early prototype for a single player action platformer with RPG elements and multiple endings.

  • Tremblay Island: take on the role of any island villager and interact with the others, taking part in the drama while eventually trying to keep a grouchy alligator from taking over the island.

  • Frost Princess: place tiles down on the board to create a path to your opponent's base, then place tiles on their base to damage them.

  • GBA-NICCC: Game Boy Advance port of the Atari ST demo STNICCC 2000.

  • RR Project: WIP 3D racing game using flat shading.

More Butano related stuff

  • gba-free-fonts: free fonts for GBA development. It comes with tools and examples to import them into a Butano project.

Frequently asked questions

Is butano free to use?

butano is open source under the Zlib licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does butano do?

Modern C++ high level GBA engine

What is butano written in?

butano is primarily written in C++. Its source is publicly available at https://github.com/GValiente/butano, and it has 1,828 GitHub stars.