From 30e70370971b0b96a828a43752853cb6bffdcde1 Mon Sep 17 00:00:00 2001 From: Alejandro Javier Asenjo Nitti Date: Sun, 15 Oct 2023 04:10:18 -0300 Subject: [PATCH 01/14] permissions --- tools/comptool.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 tools/comptool.py diff --git a/tools/comptool.py b/tools/comptool.py old mode 100644 new mode 100755 From 246092ff64dd7b229ee38b03d7279355888ef9a8 Mon Sep 17 00:00:00 2001 From: Alejandro Javier Asenjo Nitti Date: Sun, 15 Oct 2023 04:10:34 -0300 Subject: [PATCH 02/14] Add decompress rule --- Makefile | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Makefile b/Makefile index ec4bc315..5b1bbf66 100644 --- a/Makefile +++ b/Makefile @@ -93,7 +93,9 @@ ASM_PROC_FLAGS := --input-enc=utf-8 --output-enc=euc-jp --convert-statics=globa SPLAT ?= tools/splat/split.py SPLAT_YAML ?= $(TARGET).$(VERSION).yaml +COMPTOOL := tools/comptool.py +PYTHON := python3 IINC := -Iinclude -Ibin/$(VERSION) -I. IINC += -Ilib/ultralib/include -Ilib/ultralib/include/PR -Ilib/ultralib/include/ido @@ -192,6 +194,7 @@ all: uncompressed init: $(MAKE) clean + $(MAKE) decompress $(MAKE) extract -j $(nproc) $(MAKE) all -j $(nproc) @@ -205,6 +208,9 @@ endif #### Main Targets ### +decompress: baserom.us.z64 + $(PYTHON) $(COMPTOOL) -d ./baserom.us.z64 ./baserom.us.uncompressed.z64 + extract: $(RM) -r asm/$(VERSION) bin/$(VERSION) $(CAT) yamls/$(VERSION)/header.yaml yamls/$(VERSION)/makerom.yaml yamls/$(VERSION)/main.yaml > $(SPLAT_YAML) From 21ac7fb4ea4d25bd33665d5446aed52199e75277 Mon Sep 17 00:00:00 2001 From: Alejandro Javier Asenjo Nitti Date: Sun, 15 Oct 2023 04:27:47 -0300 Subject: [PATCH 03/14] remove old yaml --- yamls/us/starfox64.us.yaml.old | 102 --------------------------------- 1 file changed, 102 deletions(-) delete mode 100755 yamls/us/starfox64.us.yaml.old diff --git a/yamls/us/starfox64.us.yaml.old b/yamls/us/starfox64.us.yaml.old deleted file mode 100755 index 3bcafa56..00000000 --- a/yamls/us/starfox64.us.yaml.old +++ /dev/null @@ -1,102 +0,0 @@ -name: Starfox64 (North America) -sha1: 09f0d105f476b00efa5303a3ebc42e60a7753b7a -options: - basename: starfox64 - target_path: baserom.us.z64 - elf_path: build/starfox64.elf - ld_script_path: linker_scripts/us/starfox64.ld - base_path: . - compiler: IDO - find_file_boundaries: True - header_encoding: ASCII - platform: n64 - undefined_funcs_auto_path: linker_scripts/us/auto/undefined_funcs_auto.ld - undefined_syms_auto_path: linker_scripts/us/auto/undefined_syms_auto.ld - - symbol_addrs_path: - - linker_scripts/us/symbol_addrs.txt - - linker_scripts/us/symbol_addrs_libultra.txt - - linker_scripts/us/ignored_addresses.txt - reloc_addrs_path: - - relocs/reloc_addrs.us.txt - - asm_path: asm/us - src_path: src - asset_path: bin/us - - build_path: build - - extensions_path: tools/splat_ext - mips_abi_float_regs: o32 - create_asm_dependencies: True - do_c_func_detection: True - o_as_suffix: True - gfx_ucode: f3dex - mnemonic_ljust: 12 - rom_address_padding: True - dump_symbols: True - include_macro_inc: False - libultra_symbols: True - hardware_regs: True - - ld_dependencies: True - - - use_legacy_include_asm: False - - asm_function_macro: glabel - asm_jtbl_label_macro: jlabel - asm_data_macro: dlabel - - # section_order: [".text", ".data", ".rodata", ".bss"] - # auto_all_sections: [".data", ".rodata", ".bss"] - - - - - - - - disasm_unknown: True - # string_encoding: ASCII - # data_string_encoding: ASCII - rodata_string_guesser_level: 2 - data_string_guesser_level: 2 - # libultra_symbols: True - # hardware_regs: True - # gfx_ucode: # one of [f3d, f3db, f3dex, f3dexb, f3dex2] -segments: - - name: header - type: header - start: 0x0 - - - name: boot - type: bin - start: 0x40 - - - name: entry - type: code - start: 0x1000 - vram: 0x80000400 - subsegments: - - [0x1000, asm] - - - name: main - type: code - start: 0x1050 - vram: 0x80000450 - follows_vram: entry - bss_size: 0x9B1F0 - subsegments: - - [0x1050, bin] - - [0x1270, bin] - - [0x3440, asm] #func_80002840 - - [0x35A8, asm] - - [0xC3EE0, data] - - [0xC8E40, rodata] - - { start: 0xDE480, type: bss, vram: 0x800DD880 } - - - type: bin - start: 0xDE480 - follows_vram: main - - [0xC00000] From dde4453253d184ddc8b82c613843888458210e37 Mon Sep 17 00:00:00 2001 From: Alejandro Javier Asenjo Nitti Date: Sun, 15 Oct 2023 04:50:10 -0300 Subject: [PATCH 04/14] create compress rule --- Makefile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Makefile b/Makefile index 5b1bbf66..b780805b 100644 --- a/Makefile +++ b/Makefile @@ -211,6 +211,9 @@ endif decompress: baserom.us.z64 $(PYTHON) $(COMPTOOL) -d ./baserom.us.z64 ./baserom.us.uncompressed.z64 +compress: baserom.us.uncompressed.z64 + $(PYTHON) $(COMPTOOL) -c ./baserom.us.uncompressed.z64 ./build/starfox64.z64 + extract: $(RM) -r asm/$(VERSION) bin/$(VERSION) $(CAT) yamls/$(VERSION)/header.yaml yamls/$(VERSION)/makerom.yaml yamls/$(VERSION)/main.yaml > $(SPLAT_YAML) From ea355fa48d5599b3bebc8049c1a9392d58d779b2 Mon Sep 17 00:00:00 2001 From: Alejandro Javier Asenjo Nitti Date: Sun, 15 Oct 2023 04:50:43 -0300 Subject: [PATCH 05/14] TODO: comment --- Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/Makefile b/Makefile index b780805b..b2590eff 100644 --- a/Makefile +++ b/Makefile @@ -197,6 +197,7 @@ init: $(MAKE) decompress $(MAKE) extract -j $(nproc) $(MAKE) all -j $(nproc) +# TODO: COMPRESS resulting rom. uncompressed: $(ROM) ifneq ($(COMPARE),0) From fa567c86f39d01ec9663d93e0d3e6cccfbcf4920 Mon Sep 17 00:00:00 2001 From: Alejandro Javier Asenjo Nitti Date: Sun, 15 Oct 2023 11:40:38 -0300 Subject: [PATCH 06/14] preparations for compressed rom --- Makefile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index b2590eff..022017c0 100644 --- a/Makefile +++ b/Makefile @@ -35,7 +35,8 @@ TARGET := starfox64 ### Output ### BUILD_DIR := build -ROM := $(BUILD_DIR)/$(TARGET).$(VERSION).z64 +ROM := $(BUILD_DIR)/$(TARGET).$(VERSION).uncompressed.z64 +ROMC := $(BUILD_DIR)/$(TARGET).$(VERSION).z64 ELF := $(BUILD_DIR)/$(TARGET).$(VERSION).elf LD_MAP := $(BUILD_DIR)/$(TARGET).$(VERSION).map LD_SCRIPT := linker_scripts/$(VERSION)/$(TARGET).ld @@ -213,7 +214,7 @@ decompress: baserom.us.z64 $(PYTHON) $(COMPTOOL) -d ./baserom.us.z64 ./baserom.us.uncompressed.z64 compress: baserom.us.uncompressed.z64 - $(PYTHON) $(COMPTOOL) -c ./baserom.us.uncompressed.z64 ./build/starfox64.z64 + $(PYTHON) $(COMPTOOL) -c ./baserom.us.uncompressed.z64 ./build/starfox64.us.z64 extract: $(RM) -r asm/$(VERSION) bin/$(VERSION) From 610928652d2d992e080fc3706f753da7590565ca Mon Sep 17 00:00:00 2001 From: Alejandro Javier Asenjo Nitti Date: Sun, 15 Oct 2023 11:40:52 -0300 Subject: [PATCH 07/14] uncompressed md5 --- starfox64.us.md5 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/starfox64.us.md5 b/starfox64.us.md5 index ec4f9c18..2746c21b 100644 --- a/starfox64.us.md5 +++ b/starfox64.us.md5 @@ -1 +1 @@ -23e24fb0f090c6c0b3793a96169dce51 ./build/starfox64.us.z64 \ No newline at end of file +23e24fb0f090c6c0b3793a96169dce51 ./build/starfox64.us.uncompressed.z64 \ No newline at end of file From 46cfb1308cbef42439a9e2d56af2e220513d2c29 Mon Sep 17 00:00:00 2001 From: Alejandro Javier Asenjo Nitti Date: Sun, 15 Oct 2023 11:41:48 -0300 Subject: [PATCH 08/14] starfox64.uncompressed.ld --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 3f539c05..c35abb3e 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ expected __pycache__ .splat/ starfox64.ld +starfox64.uncompressed.ld starfox64.us.yaml *.d *_auto.ld From ed4ac0991642821399f1ab2208177f1df9838908 Mon Sep 17 00:00:00 2001 From: Alejandro Javier Asenjo Nitti Date: Sun, 15 Oct 2023 11:42:05 -0300 Subject: [PATCH 09/14] update file names for uncompressed --- yamls/us/header.yaml | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/yamls/us/header.yaml b/yamls/us/header.yaml index 01ee18b4..6d37eb99 100644 --- a/yamls/us/header.yaml +++ b/yamls/us/header.yaml @@ -1,13 +1,10 @@ name: Starfox64 (North America) -# baserom compressed -# sha1: 09f0d105f476b00efa5303a3ebc42e60a7753b7a -# baserom uncompressed -sha1: f7475fb11e7e6830f82883412638e8390791ab87 +sha1: f7475fb11e7e6830f82883412638e8390791ab87 # baserom uncompressed options: basename: starfox64 target_path: baserom.us.uncompressed.z64 - elf_path: build/starfox64.elf - ld_script_path: linker_scripts/us/starfox64.ld + elf_path: build/starfox64.uncompressed.elf + ld_script_path: linker_scripts/us/starfox64.uncompressed.ld base_path: . compiler: IDO find_file_boundaries: True From a8051e902ac03f7efd8f1f3c2b8b621879cee736 Mon Sep 17 00:00:00 2001 From: Alejandro Javier Asenjo Nitti Date: Sun, 15 Oct 2023 18:00:11 -0300 Subject: [PATCH 10/14] md5 for compressed rom --- starfox64.us.md5 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/starfox64.us.md5 b/starfox64.us.md5 index 2746c21b..e4f33584 100644 --- a/starfox64.us.md5 +++ b/starfox64.us.md5 @@ -1 +1 @@ -23e24fb0f090c6c0b3793a96169dce51 ./build/starfox64.us.uncompressed.z64 \ No newline at end of file +741a94eee093c4c8684e66b89f8685e8 ./build/starfox64.us.z64 \ No newline at end of file From 8bcb10afa3376f8f4220cec70d404e58f895f9cf Mon Sep 17 00:00:00 2001 From: Alejandro Javier Asenjo Nitti Date: Sun, 15 Oct 2023 18:00:16 -0300 Subject: [PATCH 11/14] md5 for uncompressed rom --- starfox64.us.uncompressed.md5 | 1 + 1 file changed, 1 insertion(+) create mode 100644 starfox64.us.uncompressed.md5 diff --git a/starfox64.us.uncompressed.md5 b/starfox64.us.uncompressed.md5 new file mode 100644 index 00000000..2746c21b --- /dev/null +++ b/starfox64.us.uncompressed.md5 @@ -0,0 +1 @@ +23e24fb0f090c6c0b3793a96169dce51 ./build/starfox64.us.uncompressed.z64 \ No newline at end of file From 85695a32310944ac3f69031e019dd8e5e803c214 Mon Sep 17 00:00:00 2001 From: Alejandro Javier Asenjo Nitti Date: Sun, 15 Oct 2023 18:00:39 -0300 Subject: [PATCH 12/14] makefile rom compress implementation --- Makefile | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/Makefile b/Makefile index 022017c0..aadf7e16 100644 --- a/Makefile +++ b/Makefile @@ -191,30 +191,32 @@ build/src/libultra/2D300.o: OPTFLAGS := -O1 -g0 # cc & asm-processor build/src/%.o: CC := $(ASM_PROC) $(ASM_PROC_FLAGS) $(CC) -- $(AS) $(ASFLAGS) -- -all: uncompressed +all: uncompressed compressed init: $(MAKE) clean $(MAKE) decompress $(MAKE) extract -j $(nproc) $(MAKE) all -j $(nproc) +# $(MAKE) compress # TODO: COMPRESS resulting rom. uncompressed: $(ROM) ifneq ($(COMPARE),0) @md5sum $(ROM) - @md5sum -c $(TARGET).$(VERSION).md5 + @md5sum -c $(TARGET).$(VERSION).uncompressed.md5 endif - +compressed: $(ROMC) +ifeq ($(COMPARE),1) + @md5sum $(ROMC) + @md5sum -c $(TARGET).$(VERSION).md5 +endif #### Main Targets ### decompress: baserom.us.z64 - $(PYTHON) $(COMPTOOL) -d ./baserom.us.z64 ./baserom.us.uncompressed.z64 - -compress: baserom.us.uncompressed.z64 - $(PYTHON) $(COMPTOOL) -c ./baserom.us.uncompressed.z64 ./build/starfox64.us.z64 + @$(PYTHON) $(COMPTOOL) -d $(BASEROM) ./baserom.us.uncompressed.z64 extract: $(RM) -r asm/$(VERSION) bin/$(VERSION) @@ -244,6 +246,10 @@ expected: $(ROM): $(ELF) $(OBJCOPY) -O binary $< $@ + +$(ROMC): baserom.us.uncompressed.z64 + $(PYTHON) $(COMPTOOL) -c ./baserom.us.uncompressed.z64 ./build/starfox64.us.z64 + # TODO: update rom header checksum # TODO: avoid using auto/undefined From 8376b2f7a417294912064618c88730e137fb6aad Mon Sep 17 00:00:00 2001 From: Alejandro Javier Asenjo Nitti Date: Sun, 15 Oct 2023 19:04:03 -0300 Subject: [PATCH 13/14] echo messages --- Makefile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index aadf7e16..f7104902 100644 --- a/Makefile +++ b/Makefile @@ -216,6 +216,7 @@ endif #### Main Targets ### decompress: baserom.us.z64 + @echo "Decompressing ROM..." @$(PYTHON) $(COMPTOOL) -d $(BASEROM) ./baserom.us.uncompressed.z64 extract: @@ -248,7 +249,8 @@ $(ROM): $(ELF) $(OBJCOPY) -O binary $< $@ $(ROMC): baserom.us.uncompressed.z64 - $(PYTHON) $(COMPTOOL) -c ./baserom.us.uncompressed.z64 ./build/starfox64.us.z64 + @echo "Compressing ROM..." + @$(PYTHON) $(COMPTOOL) -c ./baserom.us.uncompressed.z64 ./build/starfox64.us.z64 # TODO: update rom header checksum From c1c2382930ee592c03c2abe1e27fb9be53d7eaee Mon Sep 17 00:00:00 2001 From: Alejandro Javier Asenjo Nitti Date: Sun, 15 Oct 2023 19:04:09 -0300 Subject: [PATCH 14/14] comment out prints --- tools/comptool.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/comptool.py b/tools/comptool.py index 527ef19a..b8c622e0 100755 --- a/tools/comptool.py +++ b/tools/comptool.py @@ -108,7 +108,7 @@ def compress(baserom, comprom, mio0, extract_dest=None): compfile.seek(0, 2) - print("File " + str(file_count) + ": Writing " + format(p_file_size, 'X') + " bytes at " + format(compfile.tell(),'X')) + # print("File " + str(file_count) + ": Writing " + format(p_file_size, 'X') + " bytes at " + format(compfile.tell(),'X')) compfile.write(file_bytes) @@ -155,7 +155,7 @@ def decompress(baserom, decomprom, mio0, extract_dest=None): p_file_size = p_file_end - p_file_begin - print(v_file_begin, p_file_begin, p_file_end, comp_flag) + #print(v_file_begin, p_file_begin, p_file_end, comp_flag) if(v_file_begin == 0 and p_file_end == 0): break