gba - Command-line code uploader for the Gameboy Advance
version 0.004
$ gba --verbose code.gba
.....Opening GBA file readonly
.....GBA file length 0x000003a0
BusPirate(mstr) GBA(slave)
Looking for GBA 0x72026202
0x72026202 0x00006202 ; Found GBA
0x72026202 0x00006102 ; Recognition OK
0x00020000 0x00006200 ; Transfer of header data complete
0x72026200 0x00006202 ; Exchange master/slave info again
0x72026202 0x000063d1 ; Send palette data
0x739163d1 0x000063d1 ; Send palette data, receive 0x73hh****
0x739863d1 0x000064a0 ; Send handshake data
0x736464a0 0x00000084 ; Send length info, receive seed 0x**cc****
Upload: 100% [=========================================]D 0h00m14s
Wait for GBA to respond with CRC 0x00750065
0x00750065 0x00000066 ; GBA ready with CRC
0x8caa0066 0x00008caa ; Let's exchange CRC!
CRC ...hope they match!
MultiBoot done
cpan Device::GBA
The Nintendo Gameboy Advance can either boot from cartridge or over link cable. The latter is caled multiboot mode and is basically SPI and a homebrew encoding scheme. Unfortunately, the Bus Pirate doesn't have a 100k SPI mode, so we are using 125000 instead. If you encounter problems with booting, use the next lower speed (30000) as bitrate. This utility allows uploading multiboot GBA images with the BusPirate. Don't forget to pass -specs=gba_mb.specs
to devkitARM GCC if you want to link a multiboot image. The package's share/
subdirectory contains an example Makefile for cross-compilation. The wiring is as follows:
GBA Bus Pirate
SO --> MISO
SI <-- MOSI
CLK <-- CLK
Note: This is still work in progress!
Buspirate COM port/device file
$ gba -p <COM_port>
Toggle verbose output. Output is verbose by default
$ gba --no-verbose
Shows the current version number
$ gba --version
Shows a brief help message
$ gba --help
http://github.com/athreef/Device-GBA
Device::GBA powering this utility.
Ahmad Fatoum <[email protected]>
, http://a3f.at
Copyright (C) 2018 Ahmad Fatoum
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License v2.0 or later.