Game Boy Advance

The Game Boy Advance is a handheld videogame platform based on the ARM7TDMI microcontroller.

Interfaces

Interface Hardware Supported TinyGo Support
GPIO ? ?
UART ? ?
SPI ? ?
I2C ? ?
ADC ? ?
PWM ? ?
USBDevice ? ?

Machine Package Docs

Documentation for the machine package for the Gameboy Advance

Installing dependencies

You can use a Game Boy Advance software emulator such as MGBA (https://mgba.io) to test your programs.

Building code

Build your Game Boy Advance programs using -target gameboy-advance like this:

tinygo build -o main.gba -target gameboy-advance examples/gba-display

You can now use the GBA file with your emulator or flash it onto your physical hardware.

Examples

Flashing

Programs will need to be flashed onto a GBA reproduction cartridge. You can purchase reproduction cartridges from a site like inside gadgets, though there are other retailers that carry them as well.

There are a couple pieces of hardware that can be used to flash your games onto a reproduction cartridge.

Both of these tools use FlashGBX for flashing cartridges. Once you have installed FlashGBX, insert a reproduction cart into your hardware flasher of choice and plug it into your computer. FlashGBX has a GUI you can then use to write your program onto the cart.

Last modified September 2, 2024: Add documentation on flashing GBA carts (05e4810)