| LICENSE | ||
| patcher.c | ||
| payload_bin.h | ||
| payload.c | ||
| payload.ld | ||
| README.md | ||
Automatic batteryless saving patcher for GBA
This program patches a GBA game for batteryless saving (i.e. saving on a bootleg cartridge containing SRAM but no battery).
The game must be SRAM patched before using this program. GBATA or Flash1M_Repro_SRAM_patcher can be used depending on the game. The patch contains two modes, which can be selected during patching.
In auto mode, the save will automatically be flushed a few seconds after saving. Until the save completes, the graphics will be purposefully corrupted.
In keypad trigger mode, the save can be flushed by pressing L+R+Start+Select at any time. This mode requires less patching, so may be compatible with more games.
Usage
Run with ROM as the only argument, a new ROM will be output
Building
No build script, run the following command and hope it doesn't spit out any errors
$DEVKITARM/bin/arm-none-eabi-gcc -mcpu=arm7tdmi -nostartfiles -nodefaultlibs -mthumb -fPIE -Os -fno-toplevel-reorder payload.c -T payload.ld -o payload.elf; $DEVKITARM/bin/arm-none-eabi-objcopy -O binary payload.elf payload.bin; xxd -i payload.bin > payload_bin.c ; gcc -g patcher.c payload_bin.c
Credits
Written by metroid-maniac
Thanks to
- ez-flash for EZ Flash Omega kernel containing examples for hooking the IRQ handler
- Fexean for GBABF
- vrodin for Burn2Slot
- Lesserkuma for FlashGBX and batteryless versions of Goomba Color and PocketNES
- Ausar for helping to port the payload to C.