From 2710de218b48a26b267a31e4eef99e86808fe913 Mon Sep 17 00:00:00 2001 From: someone2639 Date: Fri, 14 Nov 2025 20:30:46 -0500 Subject: [PATCH 1/3] fix getGoddardSize --- Makefile | 2 +- tools/getGoddardSize.py | 27 ++++++++++++++++----------- tools/n64sym | Bin 0 -> 43496 bytes 3 files changed, 17 insertions(+), 12 deletions(-) create mode 100755 tools/n64sym diff --git a/Makefile b/Makefile index fe57a335b3..9219eca072 100644 --- a/Makefile +++ b/Makefile @@ -895,7 +895,7 @@ $(BUILD_DIR)/sm64_prelim.elf: $(BUILD_DIR)/sm64_prelim.ld $(BUILD_DIR)/goddard.txt: $(BUILD_DIR)/sm64_prelim.elf $(call print,Getting Goddard size...) - $(V)python3 tools/getGoddardSize.py $(BUILD_DIR)/sm64_prelim.map $(VERSION) + $(V)python3 tools/getGoddardSize.py $(BUILD_DIR)/sm64_prelim.map $(BUILD_DIR) $(BUILD_DIR)/asm/debug/map.o: asm/debug/map.s $(BUILD_DIR)/sm64_prelim.elf $(call print,Assembling:,$<,$@) diff --git a/tools/getGoddardSize.py b/tools/getGoddardSize.py index a3e528a696..8f3591d279 100644 --- a/tools/getGoddardSize.py +++ b/tools/getGoddardSize.py @@ -1,12 +1,17 @@ -import sys, os +import os +import sys -with open(sys.argv[1]) as f: - for line in f: - if "GODDARD_SIZE" in line: - tokens=line.split() - with open("build/%s_n64/goddard.txt" % sys.argv[2], "w+") as f: - sz = int(tokens[0], 16) - sz += 16 - sz &= 0xFFFFFFF0 - f.write("GODDARD_SIZE = 0x%X;" % sz) - \ No newline at end of file +preliminaryMapPath: str = sys.argv[1] +buildFolder: str = sys.argv[2] + +with open(preliminaryMapPath) as mapFile: + line: str + for line in mapFile: + if "GODDARD_SIZE" in line: + tokens: list[str] = line.split() + with open(f"{buildFolder}/goddard.txt", "w+") as outputFile: + sz: int = int(tokens[0], 16) + sz += 16 + sz &= 0xFFFFFFF0 + outputFile.write(f"GODDARD_SIZE = 0x{sz:X};") + sys.exit(0) diff --git a/tools/n64sym b/tools/n64sym new file mode 100755 index 0000000000000000000000000000000000000000..07779b145eeee0d5c22d13a093b2250cf04888c2 GIT binary patch literal 43496 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 Date: Fri, 14 Nov 2025 20:31:14 -0500 Subject: [PATCH 2/3] newline --- tools/getGoddardSize.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/getGoddardSize.py b/tools/getGoddardSize.py index 8f3591d279..23c1541cbe 100644 --- a/tools/getGoddardSize.py +++ b/tools/getGoddardSize.py @@ -13,5 +13,5 @@ sz: int = int(tokens[0], 16) sz += 16 sz &= 0xFFFFFFF0 - outputFile.write(f"GODDARD_SIZE = 0x{sz:X};") + outputFile.write(f"GODDARD_SIZE = 0x{sz:X};\n") sys.exit(0) From f0f8b0d8157af021e21e2279a4565a07fb4268fa Mon Sep 17 00:00:00 2001 From: someone2639 Date: Fri, 14 Nov 2025 20:35:19 -0500 Subject: [PATCH 3/3] HOW did this get in here --- tools/n64sym | Bin 43496 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100755 tools/n64sym diff --git a/tools/n64sym b/tools/n64sym deleted file mode 100755 index 07779b145eeee0d5c22d13a093b2250cf04888c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43496 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