summaryrefslogtreecommitdiff
path: root/generate_rom_data.sh
diff options
context:
space:
mode:
Diffstat (limited to 'generate_rom_data.sh')
-rwxr-xr-xgenerate_rom_data.sh34
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