gba - Command-line code uploader for the Gameboy Advance
version 0.001
$ 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 0x73c863d1 0x000063d1 ; Send palette data, receive 0x73hh**** 0x73fa63d1 0x000064d7 ; Send handshake data 0x737564d7 0x00000084 ; Send length info, receive seed 0x**cc**** Upload: 99% [=====================================*======== ]0m00s Left Wait for GBA to respond with CRC 0x00750065 0x00750065 0x00000066 ; GBA ready with CRC 0x35ec0066 0x000035ec ; 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 125k instead. If you encounter problems with booting, use the next lower speed (30k) 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:
-specs=gba_mb.specs
share/
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 <athreef@cpan.org>, http://a3f.at
<athreef@cpan.org>
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.
To install Device::GBA, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Device::GBA
CPAN shell
perl -MCPAN -e shell install Device::GBA
For more information on module installation, please visit the detailed CPAN module installation guide.