From 7ef48e193b172b2cb188802b02f4799248b91878 Mon Sep 17 00:00:00 2001 From: Kenix3 Date: Thu, 25 Feb 2021 19:12:48 -0500 Subject: [PATCH] Make defaults to uncompressed (#52) * PoC automatic rodata split Total split: 585 Failed / Troublesome: 61 (10,42735042735043%) Successfull rodata split: 524 (89,57264957264957%) Failed due to Script issues: 51 Failed due to object boundary issues or unreferenced .rodata: 10 Build OK?: :feelsokman: rom_uncompressed.z64: OK 2a0a8acb61538235bc1094d297fb6556 rom.z64 rom.z64: OK List Of Troublesome (mostly simliar edge cases, some are strings that we dont catch right / data without references): - ovl_Arrow_Ice - ovl_Arrow_Light - ovl_Bg_Dkjail_Ivy - ovl_Bg_Ikana_Mirror - ovl_Boss_02 - ovl_Boss_07 - ovl_Boss_Hakugin - ovl_Elf_Msg - ovl_Elf_Msg2 - ovl_Elf_Msg3 - ovl_Elf_Msg4 - ovl_Elf_Msg5 - ovl_En_Az - ovl_En_Bigokuta - ovl_En_Bigpamet - ovl_En_Bigpo - ovl_En_Bigslime - ovl_En_Box - ovl_En_Butte - ovl_En_Col_Man - ovl_En_Crow - ovl_En_Death - ovl_En_Elf - ovl_En_Elforg - ovl_En_Encount3 - ovl_En_Encount4 - ovl_En_Fish - ovl_En_Fish2 - ovl_En_Fsn - ovl_En_Honotrap - ovl_En_Horse - ovl_En_Horse_Game - ovl_En_Invadepoh - ovl_En_Ishi - ovl_En_Kame - ovl_En_Kanban - ovl_En_Kusa2 - ovl_En_M_Thunder - ovl_En_Maruta - ovl_En_Mushi2 - ovl_En_Okuta - ovl_En_Ossan - ovl_En_Pametfrog - ovl_En_Peehat - ovl_En_Rg - ovl_En_Ruppecrow - ovl_En_Slime - ovl_En_Sob1 - ovl_En_Syateki_Man - ovl_En_Test7 - ovl_En_Trt - ovl_En_Wiz_Fire - ovl_Mir_Ray - ovl_Obj_Bombiwa - ovl_Obj_Driftice - ovl_Obj_Hariko - ovl_Obj_Iceblock - ovl_Obj_Mure - ovl_Obj_Snowball2 - ovl_Obj_Toudai - ovl_select * Make now defaults to only build the uncompressed rom. This fixes permuter import errors, and makes building quicker since most of the time people only need to test one rom. Uncompressed was chosen because it's easier to debug with the first_diff script. Co-authored-by: MMDecomp --- Makefile | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Makefile b/Makefile index 1402e7f79b..4671e414a4 100644 --- a/Makefile +++ b/Makefile @@ -120,9 +120,12 @@ CC := ./tools/preprocess.py $(CC) -- $(AS) $(ASFLAGS) -- # disasm is not a file so we must tell make not to check it when evaluating timestamps .INTERMEDIATE: disasm -all: - $(MAKE) $(UNCOMPRESSED_ROM) - $(MAKE) $(ROM) +$(UNCOMPRESSED_ROM): $(UNCOMPRESSED_ROM_FILES) + ./tools/makerom.py ./tables/dmadata_table.txt $@ +ifeq ($(COMPARE),1) + @md5sum $(UNCOMPRESSED_ROM) + @md5sum -c checksum_uncompressed.md5 +endif $(ROM): $(ROM_FILES) ./tools/makerom.py ./tables/dmadata_table.txt $@ -c @@ -131,12 +134,9 @@ ifeq ($(COMPARE),1) @md5sum -c checksum.md5 endif -$(UNCOMPRESSED_ROM): $(UNCOMPRESSED_ROM_FILES) - ./tools/makerom.py ./tables/dmadata_table.txt $@ -ifeq ($(COMPARE),1) - @md5sum $(UNCOMPRESSED_ROM) - @md5sum -c checksum_uncompressed.md5 -endif +all: + $(MAKE) $(UNCOMPRESSED_ROM) + $(MAKE) $(ROM) build/code.elf: $(O_FILES) linker_scripts/code_script.txt undef.txt linker_scripts/object_script.txt linker_scripts/dmadata_script.txt $(LD) -T linker_scripts/code_script.txt -T undef.txt -T linker_scripts/object_script.txt -T linker_scripts/dmadata_script.txt --no-check-sections --accept-unknown-input-arch -Map build/mm.map -N -o $@