Larold’s Jubilant Junkyard” has become “Larold’s Retro Gameyard“. I’ve been working on this re-branding and migration for a while. All old tutorials should redirect you to this new site. If you see any errors, please let me know! See here for more information: What happened to Larold’s Jubilant Junkyard?

downloading and installing butano gba game engine

Setting up Butano for Making GBA Games

Butano is a high-level c++ game engine for making games for the Game Boy Advance. This tutorial will help you get your computer up and running for GBA Game Development.

Butano is built on top of the devkitARM toolchain, we can obtain this toolchain from devkitpro. DevKitPro is an organization that provides 3 toolchains, devkitARM, devkitPPC, and devkitA64. If you need additional help, try GValiente’s butano tutorials, the devkitPro Getting Started Page, or the GBADev Discord Server

Installing DevKit Pro

Follow the instructions for your operating sytstem here: Devkitpro.org – Getting Started.

  • For windows users: make sure you install the GBA Development component
  • For non-windows users: install everything in the ‘gba-dev’ group

Once you’ve installed DevKitPro, you’ll need to install python.

Installing Python

“Python is a programming language that lets you work quickly and integrate systems more effectively.” ~ Python.org Homepage

Primary development for GBA games via Butano will utilize the C++ programming language, but the Butano engine will need python installed for some internal scripts.

Python comes pre-installed on many systems. To see if python is already installed on your computer, open a command prompt or terminal and run this command:

python

If you don’t see an error message, you have python installed.

If you don’t have python installed, Download the latest stable version of python for your operating system. You can find that download here: Python – Downloads.

IMPORTANT NOTE: if you are a windows user, make sure python is added to the PATH.

With python installed, we can finally install Butano.

Installing Butano

Butano doesn’t have a installer or pacman like devkitpro or python. To get Butano, we just clone or download from it’s Github repository. You can download butano from GitHub here: Butano.

Make sure you download the latest release, from the releases section. At the time this tutorial was written the latest release was 18.2.1. You should use the latest release.

Clone or unzip the latest release to a location you can remember.

IMPORTANT NOTE: Unzip or clone the repo in a path without any spaces or special characters, to avoid weird issues with the engine.

You should now be able to build and run the examples included with Butano. To compile the examples, you’ll need “make”. Mac & linux users should already have this installed, devkitARM for windows should also comes with a make.exe (check your installation location, and envrionment path if it doesnt work)

If we run the ‘make‘ command in the ‘dynamic_regular_bg’ example, the output will look like this. (i’m running on windows, my butano release was put on the C drive)

NOTE: The first build will always take a long time, the subsequence builds will be faster. To improve build time, you should call “make -j8” if your pc has 8 cores, for example

C:\butano\examples\dynamic_regular_bg>make
    music_items_info file written in build/bn_music_items_info.h
    sound_items_info file written in build/bn_sound_items_info.h
    Processed audio size: 12 bytes
cursor.bmp
palette.bmp
tiles.bmp
common_fixed_8x16_font.bmp
common_fixed_8x8_font.bmp
common_variable_16x16_font.bmp
common_variable_8x16_font.bmp
common_variable_8x8_font.bmp
    cursor.bmp item header written in build/bn_sprite_items_cursor.h (graphics size: 64 bytes)
    palette.bmp item header written in build/bn_bg_palette_items_palette.h (graphics size: 32 bytes)
    tiles.bmp item header written in build/bn_regular_bg_tiles_items_tiles.h (graphics size: 224 bytes)
    common_fixed_8x16_font.bmp item header written in build/bn_sprite_items_common_fixed_8x16_font.h (graphics size: 7072 bytes)
    common_fixed_8x8_font.bmp item header written in build/bn_sprite_items_common_fixed_8x8_font.h (graphics size: 3552 bytes)
    common_variable_16x16_font.bmp item header written in build/bn_sprite_items_common_variable_16x16_font.h (graphics size: 14112 bytes)
    common_variable_8x16_font.bmp item header written in build/bn_sprite_items_common_variable_8x16_font.h (graphics size: 7072 bytes)
    common_variable_8x8_font.bmp item header written in build/bn_sprite_items_common_variable_8x8_font.h (graphics size: 3552 bytes)
    Processed graphics size: 35680 bytes
_bn_audio_soundbank.bin
cursor_bn_gfx.s

... a lot of .c and .s files

huffman.s
lz77.s
running_length.s
Linking ROM...
Fixing dynamic_regular_bg.gba ...
ROM fixed!

In a GBA Emulator, we can see the result: (move around with the keyboard arrow keys to update)

That’s everything for now. If my instructions weren’t clear and you’re having troubles, check out the devkitPro Starter Page: https://devkitpro.org/wiki/Getting_Started, and/or GValiente’s getting started page: Butano – Getting Started.

Leave a Reply

Your email address will not be published. Required fields are marked *

THANKS FOR READING!

If you have any suggestions, and/or are confused about anything: feel free to leave a comment, send me a email, or a message on social media. Constructive criticism will help the gameyard, and others like yourself. If you learned something from this tutorial, and are looking for more content, check other these other tutorials. 

Setting up Butano for Making GBA Games

Thanks for reading my tutorial, here are the files for that tutorial. 

Download Instructions

Sign-Up for the "Gameyard Newsletter" for MOre Game Development News

If you like Retro Game Development, subscribe to the Gameyard Newsletter. Stay up-to-date with all the latest Game Boy news. It’s free, and you can unsubscribe any time!

Be sure to check your email inbox for a confirmation email.