diff options
Diffstat (limited to 'generate_rom_data.sh')
-rwxr-xr-x | generate_rom_data.sh | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/generate_rom_data.sh b/generate_rom_data.sh new file mode 100755 index 0000000..aedb17b --- /dev/null +++ b/generate_rom_data.sh @@ -0,0 +1,34 @@ +#!/bin/bash +# +# Attempt to combine all ROM data symbols into a single assembly file + +# Get ROM symbols with addresses from .map file +awk --non-decimal-data '/^\s*0x\w+\s+\w+/{if ($1 > 0x8055A68) print $1 " " $2}' pokepinballrs.map | +# Sort and remove duplicates +sort -u | +# Process into asm file +awk -f \ +<(cat - <<-'EOF' +BEGIN { + prevAddress = ""; + romAddress = strtonum("0x55A84"); # addr of gWildMonLocations +} +/\w+ \w+/ { + address = strtonum($1); + symbol = $2; + + # Output space before + if (prevAddress != "") { + space = address - prevAddress; + printf("\t.incbin \"baserom.gba\", 0x%X, 0x%X\n\n", romAddress, space); + romAddress += space; + } + + prevAddress = address; + + # Output label + printf("%s:: @ 0x%08X\n", symbol, address); + +} +EOF +)
\ No newline at end of file |