summaryrefslogtreecommitdiff
path: root/extras/analyze_incbins.py
diff options
context:
space:
mode:
Diffstat (limited to 'extras/analyze_incbins.py')
-rw-r--r--extras/analyze_incbins.py29
1 files changed, 24 insertions, 5 deletions
diff --git a/extras/analyze_incbins.py b/extras/analyze_incbins.py
index 497985c1..ef5405ef 100644
--- a/extras/analyze_incbins.py
+++ b/extras/analyze_incbins.py
@@ -6,6 +6,7 @@
import sys, os
from copy import copy, deepcopy
import subprocess
+import json
from extract_maps import rom, assert_rom, load_rom, calculate_pointer, load_map_pointers, read_all_map_headers, map_headers
try:
@@ -259,7 +260,7 @@ def is_probably_pointer(input):
label_errors = ""
def get_labels_between(start_line_id, end_line_id, bank_id):
labels = []
- #line = {
+ #label = {
# "line_number": 15,
# "bank_id": 32,
# "label": "PalletTownText1",
@@ -345,9 +346,17 @@ def get_labels_between(start_line_id, end_line_id, bank_id):
local_pointer = hex((address % 0x4000) + 0x4000).replace("0x", "$")
print line_label + " is at " + hex(address)
-
- current_line_offset += 1
-
+
+ label = {
+ "line_number": line_id,
+ "bank_id": bank_id,
+ "label": line_label,
+ "local_pointer": local_pointer,
+ "address": address
+ }
+ labels.append(label)
+
+ current_line_offset += 1
label_errors += errors
return labels
@@ -364,6 +373,7 @@ def scan_for_predefined_labels():
to grab all label addresses better than this script..
"""
bank_intervals = {}
+ all_labels = []
#figure out line numbers for each bank
for bank_id in range(0x2d):
@@ -394,7 +404,16 @@ def scan_for_predefined_labels():
end_line_id = bank_data["end"]
labels = get_labels_between(start_line_id, end_line_id, bank_id)
- bank_intervals[bank_id]["labels"] = labels
+ #bank_intervals[bank_id]["labels"] = labels
+ all_labels.extend(labels)
+
+ write_all_labels(all_labels)
+ return all_labels
+
+def write_all_labels(all_labels):
+ fh = open("labels.json", "w")
+ fh.write(json.dumps(all_labels))
+ fh.close()
if __name__ == "__main__":
#load map headers