add rom decompression stage
This commit is contained in:
parent
80ec28ad08
commit
8c5a4dddc7
|
@ -16,3 +16,6 @@
|
||||||
[submodule "tools/bk_asset_tool"]
|
[submodule "tools/bk_asset_tool"]
|
||||||
path = tools/bk_asset_tool
|
path = tools/bk_asset_tool
|
||||||
url = https://github.com/MittenzHugg/bk_asset_tool.git
|
url = https://github.com/MittenzHugg/bk_asset_tool.git
|
||||||
|
[submodule "tools/bk_rom_compressor"]
|
||||||
|
path = tools/bk_rom_compressor
|
||||||
|
url = https://github.com/MittenzHugg/bk_rom_compressor.git
|
||||||
|
|
66
Makefile
66
Makefile
|
@ -48,6 +48,8 @@ BK_TOOLS := tools/bk_tools
|
||||||
BK_CRC := tools/bk_crc/bk_crc
|
BK_CRC := tools/bk_crc/bk_crc
|
||||||
BK_INFLATE := $(BK_TOOLS)/bk_inflate_code
|
BK_INFLATE := $(BK_TOOLS)/bk_inflate_code
|
||||||
BK_DEFLATE := $(BK_TOOLS)/bk_deflate_code
|
BK_DEFLATE := $(BK_TOOLS)/bk_deflate_code
|
||||||
|
BK_ROM_COMPRESS := tools/bk_rom_compressor/bk_rom_compress
|
||||||
|
BK_ROM_DECOMPRESS := tools/bk_rom_compressor/bk_rom_decompress
|
||||||
BK_ASSET_TOOL := tools/bk_asset_tool/bk_asset_tool
|
BK_ASSET_TOOL := tools/bk_asset_tool/bk_asset_tool
|
||||||
ASM_PROCESSOR := $(PYTHON) $(ASM_PROCESSOR_DIR)/asm_processor.py
|
ASM_PROCESSOR := $(PYTHON) $(ASM_PROCESSOR_DIR)/asm_processor.py
|
||||||
SPLAT_INPUTS := $(PYTHON) tools/splat_inputs.py
|
SPLAT_INPUTS := $(PYTHON) tools/splat_inputs.py
|
||||||
|
@ -99,28 +101,29 @@ BIN_BUILD_DIRS := $(addprefix $(BUILD_DIR)/,$(BIN_DIRS))
|
||||||
ALL_DIRS := $(C_BUILD_DIRS) $(ASM_BUILD_DIRS) $(BIN_BUILD_DIRS) $(BUILD_DIR)
|
ALL_DIRS := $(C_BUILD_DIRS) $(ASM_BUILD_DIRS) $(BIN_BUILD_DIRS) $(BUILD_DIR)
|
||||||
|
|
||||||
# Build files
|
# Build files
|
||||||
BASEROM := baserom.$(VERSION).z64
|
BASEROM := baserom.$(VERSION).z64
|
||||||
C_OBJS := $(addprefix $(BUILD_DIR)/,$(C_SRCS:.c=.c.o))
|
DECOMPRESSED_BASEROM := decompressed.$(VERSION).z64
|
||||||
BOOT_C_OBJS := $(addprefix $(BUILD_DIR)/,$(BOOT_C_SRCS:.c=.c.o))
|
C_OBJS := $(addprefix $(BUILD_DIR)/,$(C_SRCS:.c=.c.o))
|
||||||
GLOBAL_ASM_C_OBJS := $(addprefix $(BUILD_DIR)/,$(GLOBAL_ASM_C_SRCS:.c=.c.o))
|
BOOT_C_OBJS := $(addprefix $(BUILD_DIR)/,$(BOOT_C_SRCS:.c=.c.o))
|
||||||
C_DEPS := $(C_OBJS:.o=.d)
|
GLOBAL_ASM_C_OBJS := $(addprefix $(BUILD_DIR)/,$(GLOBAL_ASM_C_SRCS:.c=.c.o))
|
||||||
ASM_OBJS := $(addprefix $(BUILD_DIR)/,$(ALL_ASM_SRCS:.s=.s.o) $(NEW_ASM_SRCS:.s=.s.o))
|
C_DEPS := $(C_OBJS:.o=.d)
|
||||||
BOOT_ASM_OBJS := $(addprefix $(BUILD_DIR)/,$(BOOT_ASM_SRCS:.s=.s.o))
|
ASM_OBJS := $(addprefix $(BUILD_DIR)/,$(ALL_ASM_SRCS:.s=.s.o) $(NEW_ASM_SRCS:.s=.s.o))
|
||||||
BIN_OBJS := $(addprefix $(BUILD_DIR)/,$(ALL_BINS:.bin=.bin.o) $(NEW_BINS:.bin=.bin.o))
|
BOOT_ASM_OBJS := $(addprefix $(BUILD_DIR)/,$(BOOT_ASM_SRCS:.s=.s.o))
|
||||||
Z64 := $(addprefix $(BUILD_DIR)/,$(BASENAME).$(VERSION).z64)
|
BIN_OBJS := $(addprefix $(BUILD_DIR)/,$(ALL_BINS:.bin=.bin.o) $(NEW_BINS:.bin=.bin.o))
|
||||||
ELF := $(Z64:.z64=.elf)
|
Z64 := $(addprefix $(BUILD_DIR)/,$(BASENAME).$(VERSION).z64)
|
||||||
LD_SCRIPT := $(BASENAME).ld
|
ELF := $(Z64:.z64=.elf)
|
||||||
BK_BOOT_LD_SCRIPT := bk_boot.ld
|
LD_SCRIPT := $(BASENAME).ld
|
||||||
ASSET_BIN := $(BUILD_DIR)/assets.bin
|
BK_BOOT_LD_SCRIPT := bk_boot.ld
|
||||||
DUMMY_CRC_OBJ := $(BUILD_DIR)/$(BIN_ROOT)/dummy_crc.bin.o
|
ASSET_BIN := $(BUILD_DIR)/assets.bin
|
||||||
ASSET_OBJS := $(BUILD_DIR)/$(BIN_ROOT)/assets.bin.o
|
DUMMY_CRC_OBJ := $(BUILD_DIR)/$(BIN_ROOT)/dummy_crc.bin.o
|
||||||
BIN_OBJS := $(filter-out $(ASSET_OBJS),$(BIN_OBJS))
|
ASSET_OBJS := $(BUILD_DIR)/$(BIN_ROOT)/assets.bin.o
|
||||||
ALL_OBJS := $(C_OBJS) $(ASM_OBJS) $(BIN_OBJS)
|
BIN_OBJS := $(filter-out $(ASSET_OBJS),$(BIN_OBJS))
|
||||||
SYMBOL_ADDRS := symbol_addrs.$(VERSION).txt
|
ALL_OBJS := $(C_OBJS) $(ASM_OBJS) $(BIN_OBJS)
|
||||||
SYMBOL_ADDR_FILES := $(filter-out $(SYMBOL_ADDRS), $(wildcard symbol_addrs.*.$(VERSION).txt))
|
SYMBOL_ADDRS := symbol_addrs.$(VERSION).txt
|
||||||
MIPS3_OBJS := $(BUILD_DIR)/$(SRC_ROOT)/core1/done/ll.c.o
|
SYMBOL_ADDR_FILES := $(filter-out $(SYMBOL_ADDRS), $(wildcard symbol_addrs.*.$(VERSION).txt))
|
||||||
BOOT_MIPS3_OBJS := $(BUILD_DIR)/$(SRC_ROOT)/done/ll.c.o
|
MIPS3_OBJS := $(BUILD_DIR)/$(SRC_ROOT)/core1/done/ll.c.o
|
||||||
BOOT_C_OBJS := $(filter-out $(BOOT_MIPS3_OBJS),$(BOOT_C_OBJS))
|
BOOT_MIPS3_OBJS := $(BUILD_DIR)/$(SRC_ROOT)/done/ll.c.o
|
||||||
|
BOOT_C_OBJS := $(filter-out $(BOOT_MIPS3_OBJS),$(BOOT_C_OBJS))
|
||||||
|
|
||||||
# Progress files
|
# Progress files
|
||||||
MAIN_PROG_CSV := progress/progress.bk_boot.csv
|
MAIN_PROG_CSV := progress/progress.bk_boot.csv
|
||||||
|
@ -188,8 +191,8 @@ $(addprefix progress-,$(OVERLAYS)) : progress-% : progress/progress.%.csv
|
||||||
@$(PROGRESS_READ) $< $(VERSION) $*
|
@$(PROGRESS_READ) $< $(VERSION) $*
|
||||||
|
|
||||||
# Verify that the roms match, also sets up diff_settings
|
# Verify that the roms match, also sets up diff_settings
|
||||||
verify: $(Z64)
|
verify: $(DECOMPRESSED_BASEROM) $(Z64)
|
||||||
@$(DIFF) decompressed.us.v10.z64 $(Z64) > /dev/null && \
|
@$(DIFF) $(DECOMPRESSED_BASEROM) $(Z64) > /dev/null && \
|
||||||
$(PRINT) "$(YELLOW) _\n _( )_\n [ ]_\n ) _ _)\n [_( )_]\n$(BLUE)$(BASENAME).$(VERSION).z64$(NO_COL): $(GREEN)OK$(NO_COL)\n" || \
|
$(PRINT) "$(YELLOW) _\n _( )_\n [ ]_\n ) _ _)\n [_( )_]\n$(BLUE)$(BASENAME).$(VERSION).z64$(NO_COL): $(GREEN)OK$(NO_COL)\n" || \
|
||||||
$(PRINT) "$(BLUE)$(BASEROM) $(RED)differs$(NO_COL)\n"
|
$(PRINT) "$(BLUE)$(BASEROM) $(RED)differs$(NO_COL)\n"
|
||||||
|
|
||||||
|
@ -291,7 +294,7 @@ $(BOOT_MIPS3_OBJS) : $(BUILD_DIR)/%.c.o : %.c | $(C_BUILD_DIRS)
|
||||||
$(OBJCOPY) --strip-unneeded $@
|
$(OBJCOPY) --strip-unneeded $@
|
||||||
|
|
||||||
# Split baserom
|
# Split baserom
|
||||||
$(BUILD_DIR)/SPLAT_TIMESTAMP: decompressed.$(VERSION).yaml $(SYMBOL_ADDRS) | $(BUILD_DIR)
|
$(BUILD_DIR)/SPLAT_TIMESTAMP: decompressed.$(VERSION).yaml $(SYMBOL_ADDRS) $(DECOMPRESSED_BASEROM) | $(BUILD_DIR)
|
||||||
$(call print1,Splitting rom:,$<)
|
$(call print1,Splitting rom:,$<)
|
||||||
@$(SPLAT) decompressed.$(VERSION).yaml
|
@$(SPLAT) decompressed.$(VERSION).yaml
|
||||||
@touch $@
|
@touch $@
|
||||||
|
@ -340,6 +343,10 @@ $(BUILD_DIR)/bk_boot.elf: $(DUMMY_CRC_OBJ) $(filter-out $(CRC_OBJS),$(MAIN_ALL_O
|
||||||
$(call print1,Linking elf:,$@)
|
$(call print1,Linking elf:,$@)
|
||||||
@$(LD) -T $(BK_BOOT_LD_SCRIPT) -Map $(ELF:.elf=.map) --no-check-sections --accept-unknown-input-arch -T undefined_syms.libultra.txt -T undefined_syms_auto.$(VERSION).txt -T undefined_syms.$(VERSION).txt -T rzip_dummy_addrs.txt -o $@
|
@$(LD) -T $(BK_BOOT_LD_SCRIPT) -Map $(ELF:.elf=.map) --no-check-sections --accept-unknown-input-arch -T undefined_syms.libultra.txt -T undefined_syms_auto.$(VERSION).txt -T undefined_syms.$(VERSION).txt -T rzip_dummy_addrs.txt -o $@
|
||||||
|
|
||||||
|
# .z64 -> decompressed .z64
|
||||||
|
$(DECOMPRESSED_BASEROM): $(BASEROM) $(BK_ROM_DECOMPRESS)
|
||||||
|
@$(BK_ROM_DECOMPRESS) $< $@
|
||||||
|
|
||||||
# .elf -> .z64
|
# .elf -> .z64
|
||||||
$(Z64) : $(ELF)
|
$(Z64) : $(ELF)
|
||||||
#$(OVERLAY_PROG_SVGS) $(MAIN_PROG_SVG) $(TOTAL_PROG_SVG) $(README_MD)
|
#$(OVERLAY_PROG_SVGS) $(MAIN_PROG_SVG) $(TOTAL_PROG_SVG) $(README_MD)
|
||||||
|
@ -364,6 +371,14 @@ $(BK_TOOLS)/%: $(BK_TOOLS)/gzip-1.2.4/gzip
|
||||||
$(BK_CRC) :
|
$(BK_CRC) :
|
||||||
g++ $@.cpp -o $@
|
g++ $@.cpp -o $@
|
||||||
|
|
||||||
|
$(BK_ROM_COMPRESS):
|
||||||
|
@$(CD) tools/bk_rom_compressor && cargo build --release
|
||||||
|
@$(CP) tools/bk_rom_compressor/target/release/bk_rom_compress $@
|
||||||
|
|
||||||
|
$(BK_ROM_DECOMPRESS):
|
||||||
|
@$(CD) tools/bk_rom_compressor && cargo build --release
|
||||||
|
@$(CP) tools/bk_rom_compressor/target/release/bk_rom_decompress $@
|
||||||
|
|
||||||
# Combined symbol addresses file
|
# Combined symbol addresses file
|
||||||
$(SYMBOL_ADDRS): $(SYMBOL_ADDR_FILES)
|
$(SYMBOL_ADDRS): $(SYMBOL_ADDR_FILES)
|
||||||
$(call print0,Combining symbol address files)
|
$(call print0,Combining symbol address files)
|
||||||
|
@ -372,6 +387,7 @@ $(SYMBOL_ADDRS): $(SYMBOL_ADDR_FILES)
|
||||||
clean:
|
clean:
|
||||||
$(call print0,Cleaning build artifacts)
|
$(call print0,Cleaning build artifacts)
|
||||||
@$(RM) -rf $(BUILD_ROOT)
|
@$(RM) -rf $(BUILD_ROOT)
|
||||||
|
@$(RM) -rf $(DECOMPRESSED_BASEROM)
|
||||||
@$(RM) -rf $(BIN_ROOT)
|
@$(RM) -rf $(BIN_ROOT)
|
||||||
@$(RM) -rf $(NONMATCHING_DIR)
|
@$(RM) -rf $(NONMATCHING_DIR)
|
||||||
@$(RM) -rf $(ASM_ROOT)/*.s
|
@$(RM) -rf $(ASM_ROOT)/*.s
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit 8136b38e5bc05588be74112f318ba0a7dc32c357
|
Loading…
Reference in New Issue