From ed5a735642f367a3cf566adc4bc04f40ea1e84d8 Mon Sep 17 00:00:00 2001 From: Mr-Wiseguy Date: Tue, 22 Nov 2022 20:29:39 -0500 Subject: [PATCH] Modified Makefile to do everything required to build the final compressed rom --- Makefile | 50 +++++++++++++++++++++++----------------- emptyLvl_dummy_addrs.txt | 32 +++++++++++++++++++++++++ rzip_dummy_addrs.txt | 2 -- 3 files changed, 61 insertions(+), 23 deletions(-) create mode 100644 emptyLvl_dummy_addrs.txt diff --git a/Makefile b/Makefile index 7cf01258..fc2b8153 100644 --- a/Makefile +++ b/Makefile @@ -110,9 +110,11 @@ C_DEPS := $(C_OBJS:.o=.d) ASM_OBJS := $(addprefix $(BUILD_DIR)/,$(ALL_ASM_SRCS:.s=.s.o) $(NEW_ASM_SRCS:.s=.s.o)) BOOT_ASM_OBJS := $(addprefix $(BUILD_DIR)/,$(BOOT_ASM_SRCS:.s=.s.o)) BIN_OBJS := $(addprefix $(BUILD_DIR)/,$(ALL_BINS:.bin=.bin.o) $(NEW_BINS:.bin=.bin.o)) -Z64 := $(addprefix $(BUILD_DIR)/,$(BASENAME).$(VERSION).uncompressed.z64) +PRELIM_Z64 := $(addprefix $(BUILD_DIR)/,$(BASENAME).$(VERSION).prelim.z64) +PRELIM_ELF := $(PRELIM_Z64:.z64=.elf) +UNCOMPRESSED_Z64 := $(addprefix $(BUILD_DIR)/,$(BASENAME).$(VERSION).uncompressed.z64) FINAL_Z64 := $(addprefix $(BUILD_DIR)/,$(BASENAME).$(VERSION).z64) -ELF := $(Z64:.z64=.elf) +ELF := $(FINAL_Z64:.z64=.elf) LD_SCRIPT := $(BASENAME).ld BK_BOOT_LD_SCRIPT := bk_boot.ld ASSET_BIN := $(BUILD_DIR)/assets.bin @@ -245,7 +247,7 @@ $(BUILD_DIR)/%.s.o: %.s | $(ASM_BUILD_DIRS) $(BOOT_ASM_OBJS) : $(BUILD_DIR)/%.s.o : %.s | $(ASM_BUILD_DIRS) $(call print2,Assembling:,$<,$@) @$(GCC) $(GCC_ASFLAGS) $(INCLUDE_CFLAGS) -o $@ $< - $(OBJCOPY) --prefix-symbols=boot_ $@ + @$(OBJCOPY) --prefix-symbols=boot_ $@ # .bin -> .o $(BIN_OBJS) : $(BUILD_DIR)/%.bin.o : %.bin | $(BIN_BUILD_DIRS) @@ -337,11 +339,6 @@ $(ASSET_OBJS): $(ASSET_BIN) $(call print2,Objcopying:,$<,$@) @$(OBJCOPY) $(BINOFLAGS) $< $@ -# .o -> .elf (game) -$(ELF): $(ALL_OBJS) $(LD_SCRIPT) $(ASSET_OBJS) - $(call print1,Linking elf:,$@) - @$(LD) $(LDFLAGS) -T undefined_syms_auto.$(VERSION).txt -T undefined_syms.$(VERSION).txt -T rzip_dummy_addrs.txt -o $@ - $(BK_BOOT_LD_SCRIPT): $(LD_SCRIPT) sed 's|$(CRC_OBJS)|$(DUMMY_CRC_OBJ)|' $< > $@ @@ -353,23 +350,34 @@ $(BUILD_DIR)/bk_boot.elf: $(DUMMY_CRC_OBJ) $(filter-out $(CRC_OBJS),$(MAIN_ALL_O # decompress baserom $(DECOMPRESSED_BASEROM): $(BASEROM) $(BK_ROM_DECOMPRESS) @$(BK_ROM_DECOMPRESS) $< $@ + +# .o -> .elf (dummy symbols) +$(PRELIM_ELF): $(ALL_OBJS) $(LD_SCRIPT) $(ASSET_OBJS) + $(call print1,Linking elf:,$@) + @$(LD) $(LDFLAGS) -T undefined_syms_auto.$(VERSION).txt -T undefined_syms.$(VERSION).txt -T rzip_dummy_addrs.txt -T emptyLvl_dummy_addrs.txt -o $@ -# generate compressed ROM symbols -$(COMPRESSED_SYMBOLS): $(ELF) $(Z64) $(BK_ROM_COMPRESS) - @$(BK_ROM_COMPRESS) --symbols $(ELF) $(Z64) $@ - -# compress ROM -$(FINAL_Z64) : $(ELF) $(Z64) $(BK_ROM_COMPRESS) - @$(BK_ROM_COMPRESS) $(ELF) $(Z64) $@ - -# .elf -> .z64 -$(Z64) : $(ELF) -#$(OVERLAY_PROG_SVGS) $(MAIN_PROG_SVG) $(TOTAL_PROG_SVG) $(README_MD) +# .elf -> .z64 (dummy symbols) +$(PRELIM_Z64) : $(PRELIM_ELF) $(call print1,Creating z64:,$@) @$(OBJCOPY) $< $@ -O binary $(OCOPYFLAGS) -$(COMPRESSED_Z64) : $(Z64) $(ELF) $(BK_ROM_COMPRESS) - $(BK_ROM_COMPRESS) --version $(VERSION) --symbols +# generate compressed ROM symbols +$(COMPRESSED_SYMBOLS): $(PRELIM_ELF) $(PRELIM_Z64) $(BK_ROM_COMPRESS) + @$(BK_ROM_COMPRESS) --symbols $(PRELIM_ELF) $(PRELIM_Z64) $@ + +# .o -> .elf (game) +$(ELF): $(ALL_OBJS) $(LD_SCRIPT) $(ASSET_OBJS) $(COMPRESSED_SYMBOLS) + $(call print1,Linking elf:,$@) + @$(LD) $(LDFLAGS) -T undefined_syms_auto.$(VERSION).txt -T undefined_syms.$(VERSION).txt -T $(COMPRESSED_SYMBOLS) -T emptyLvl_dummy_addrs.txt -o $@ + +# .elf -> .z64 (uncompressed) +$(UNCOMPRESSED_Z64) : $(ELF) + $(call print1,Creating z64:,$@) + @$(OBJCOPY) $< $@ -O binary $(OCOPYFLAGS) + +# .z64 (uncompressed) + .elf -> .z64 (final) +$(FINAL_Z64) : $(UNCOMPRESSED_Z64) $(ELF) $(BK_ROM_COMPRESS) + @$(BK_ROM_COMPRESS) $(ELF) $(UNCOMPRESSED_Z64) $@ $(BK_TOOLS)/gzip-1.2.4/gzip: $(BK_TOOLS)/gzip-1.2.4/Makefile @$(CD) $(BK_TOOLS)/gzip-1.2.4 && $(MAKE) gzip diff --git a/emptyLvl_dummy_addrs.txt b/emptyLvl_dummy_addrs.txt new file mode 100644 index 00000000..9baca249 --- /dev/null +++ b/emptyLvl_dummy_addrs.txt @@ -0,0 +1,32 @@ +boot_core1_us_v10_rzip_ROM_START = 0xF19250; +boot_core1_us_v10_rzip_ROM_END = 0xF37F90; +boot_core2_us_v10_rzip_ROM_START = 0xF37F90; +boot_core2_us_v10_rzip_ROM_END = 0xFA3FD0; +boot_CC_us_v10_rzip_ROM_START = 0xFA3FD0; +boot_CC_us_v10_rzip_ROM_END = 0xFA5F50; +boot_MMM_us_v10_rzip_ROM_START = 0xFA5F50; +boot_MMM_us_v10_rzip_ROM_END = 0xFA9150; +boot_GV_us_v10_rzip_ROM_START = 0xFA9150; +boot_GV_us_v10_rzip_ROM_END = 0xFAE860; +boot_TTC_us_v10_rzip_ROM_START = 0xFAE860; +boot_TTC_us_v10_rzip_ROM_END = 0xFB24A0; +boot_MM_us_v10_rzip_ROM_START = 0xFB24A0; +boot_MM_us_v10_rzip_ROM_END = 0xFB44E0; +boot_BGS_us_v10_rzip_ROM_START = 0xFB44E0; +boot_BGS_us_v10_rzip_ROM_END = 0xFB9A30; +boot_RBB_us_v10_rzip_ROM_START = 0xFB9A30; +boot_RBB_us_v10_rzip_ROM_END = 0xFBEBE0; +boot_FP_us_v10_rzip_ROM_START = 0xFBEBE0; +boot_FP_us_v10_rzip_ROM_END = 0xFC4810; +boot_CCW_us_v10_rzip_ROM_START = 0xFD6190; +boot_CCW_us_v10_rzip_ROM_END = 0xFDAA10; +boot_SM_us_v10_rzip_ROM_START = 0xFC4810; +boot_SM_us_v10_rzip_ROM_END = 0xFC6F20; +boot_cutscenes_us_v10_rzip_ROM_START = 0xFC6F20; +boot_cutscenes_us_v10_rzip_ROM_END = 0xFC9150; +boot_lair_us_v10_rzip_ROM_START = 0xFC9150; +boot_lair_us_v10_rzip_ROM_END = 0xFD0420; +boot_fight_us_v10_rzip_ROM_START = 0xFD0420; +boot_fight_us_v10_rzip_ROM_END = 0xFD6190; +boot_emptyLvl_us_v10_rzip_ROM_START = 0xFDAA10; +boot_emptyLvl_us_v10_rzip_ROM_END = 0xFDAA30; diff --git a/rzip_dummy_addrs.txt b/rzip_dummy_addrs.txt index 9baca249..db09931c 100644 --- a/rzip_dummy_addrs.txt +++ b/rzip_dummy_addrs.txt @@ -28,5 +28,3 @@ boot_lair_us_v10_rzip_ROM_START = 0xFC9150; boot_lair_us_v10_rzip_ROM_END = 0xFD0420; boot_fight_us_v10_rzip_ROM_START = 0xFD0420; boot_fight_us_v10_rzip_ROM_END = 0xFD6190; -boot_emptyLvl_us_v10_rzip_ROM_START = 0xFDAA10; -boot_emptyLvl_us_v10_rzip_ROM_END = 0xFDAA30;