diff --git a/Makefile b/Makefile index aec5b17..7e20a49 100644 --- a/Makefile +++ b/Makefile @@ -125,7 +125,7 @@ $(BUILD_DIR)/$(GAME).elf: $(call list_o_files,game) $(foreach dir,$(ASM_DIR)/$* $(ASM_DIR)/$*/data $(SRC_DIR)/$* $(ASSETS_DIR)/$*,$(shell mkdir -p $(BUILD_DIR)/$(dir))) ### Overlays ### -overlays: ac ag cc ch cr credits dc ee eh gg gs gy1 gy2 hh hr ia la landmap pd pg ps sf sv zl +overlays: ac ag cc ch cr credits dc ee eh gg gs gy1 gy2 hh hr ia la landmap pd pg ps sf sv tl zl ac: ovlac_dirs $(BUILD_DIR)/AC.BIN $(BUILD_DIR)/AC.BIN: $(BUILD_DIR)/ovlac.elf @@ -219,6 +219,10 @@ sv: ovlsv_dirs $(BUILD_DIR)/SV.BIN $(BUILD_DIR)/SV.BIN: $(BUILD_DIR)/ovlsv.elf $(OBJCOPY) -O binary $< $@ +tl: ovltl_dirs $(BUILD_DIR)/TL.BIN +$(BUILD_DIR)/TL.BIN: $(BUILD_DIR)/ovltl.elf + $(OBJCOPY) -O binary $< $@ + zl: ovlzl_dirs $(BUILD_DIR)/ZL.BIN $(BUILD_DIR)/ZL.BIN: $(BUILD_DIR)/ovlzl.elf $(OBJCOPY) -O binary $< $@ @@ -250,7 +254,7 @@ expected: check # Assembly extraction -extract: extract_main extract_game extract_ovlac extract_ovlag extract_ovlcc extract_ovlch extract_ovlcr extract_ovlcredits extract_ovldc extract_ovlee extract_ovleh extract_ovlgg extract_ovlgs extract_ovlgy1 extract_ovlgy2 extract_ovlhh extract_ovlhr extract_ovlia extract_ovlla extract_ovllandmap extract_ovlpd extract_ovlpg extract_ovlps extract_ovlsf extract_ovlsv extract_ovlzl +extract: extract_main extract_game extract_ovlac extract_ovlag extract_ovlcc extract_ovlch extract_ovlcr extract_ovlcredits extract_ovldc extract_ovlee extract_ovleh extract_ovlgg extract_ovlgs extract_ovlgy1 extract_ovlgy2 extract_ovlhh extract_ovlhr extract_ovlia extract_ovlla extract_ovllandmap extract_ovlpd extract_ovlpg extract_ovlps extract_ovlsf extract_ovlsv extract_ovltl extract_ovlzl ## Main extract_main: @@ -286,6 +290,6 @@ checkformat: # Phony .PHONY: init, all, clean, format, checkformat, check, expected .PHONY: list_src_files, list_o_files, link -.PHONY: main game ac ag cc ch cr credits dc ee eh gg gs gy1 gy2 hh hr ia la landmap pd pg ps sf sv zl +.PHONY: main game ac ag cc ch cr credits dc ee eh gg gs gy1 gy2 hh hr ia la landmap pd pg ps sf sv tl zl .PHONY: %_dirs .PHONY: extract, extract_% diff --git a/config/medievil.check.sha b/config/medievil.check.sha index 8f01fe0..a95d8d0 100644 --- a/config/medievil.check.sha +++ b/config/medievil.check.sha @@ -23,4 +23,5 @@ ab7967451c8395c76bdc683b78d42bd60e47405d build/PG.BIN 92c871bee68855dad4229da6d15fbaaa00b802cf build/PS.BIN 3a9943f5922c2bcd8a5960bf29c738a705d15eac build/SF.BIN 7a5b3a3f15a61ebb69e1fe98893a7fa9e3289407 build/SV.BIN +b511b56db83862ed017fc72cdbb833f2e06de58e build/TL.BIN 37bbf2910f86cb3629d9dac3576017a9aac63433 build/ZL.BIN \ No newline at end of file diff --git a/config/splat.ovltl.yaml b/config/splat.ovltl.yaml new file mode 100644 index 0000000..0b2aea9 --- /dev/null +++ b/config/splat.ovltl.yaml @@ -0,0 +1,40 @@ +name: TL.BIN +sha1: b511b56db83862ed017fc72cdbb833f2e06de58e +options: + platform: psx + basename: ovltl + base_path: .. + build_path: build/ + target_path: disk/OVERLAYS/TL.BIN + asm_path: asm/ovl/tl + asset_path: assets/ovl/tl + src_path: src/ovl/tl + compiler: GCC + symbol_addrs_path: config/symbols.ovltl.txt + undefined_funcs_auto_path: config/undefined_funcs_auto.ovltl.txt + undefined_syms_auto_path: config/undefined_syms_auto.ovltl.txt + ld_script_path: config/ld/ovltl.ld + find_file_boundaries: yes + use_legacy_include_asm: no + migrate_rodata_to_functions: yes + asm_jtbl_label_macro: jlabel + section_order: + - ".rodata" + - ".text" + - ".data" + + subalign: 2 + + rodata_string_guesser_level: 2 + data_string_guesser_level: 2 + +segments: + - name: ovltl + type: code + start: 0x00000000 + vram: 0x80010000 + subsegments: + - [0x0, rodata] + - [0x80, c] + - [0x8120, data] + - [0x8F24] \ No newline at end of file diff --git a/config/symbols.ovltl.txt b/config/symbols.ovltl.txt new file mode 100644 index 0000000..e69de29 diff --git a/src/ovl/tl/80.c b/src/ovl/tl/80.c new file mode 100644 index 0000000..02cf463 --- /dev/null +++ b/src/ovl/tl/80.c @@ -0,0 +1,192 @@ +#include "common.h" + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_80010080); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_800104C4); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_800105C0); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_80010808); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_800110AC); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_800110CC); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_800113A4); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_800113D8); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_80011730); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_80011750); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_80011DB8); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_8001203C); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_80012284); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_80012300); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_8001233C); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_8001236C); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_8001262C); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_8001268C); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_8001279C); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_80012840); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_800128BC); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_80012908); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_80012944); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_800129B0); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_800136F0); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_80013CB4); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_80013D24); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_80013D8C); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_80013E58); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_80013EC4); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_800140F0); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_80014138); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_800142A8); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_80014630); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_8001466C); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_80014788); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_80014F64); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_80014FE0); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_800152AC); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_80015368); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_800153D0); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_800153F8); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_80015454); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_800154A0); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_80015664); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_80015968); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_800159FC); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_80015AA4); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_80015CC0); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_80015CE0); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_80015D10); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_80015D94); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_80015DB4); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_80015E68); + +void func_80015EDC(void) { +} + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_80015EE4); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_80015F70); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_80016058); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_800160BC); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_80016408); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_80016434); + +void func_8001643C(void) { +} + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_80016444); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_80016480); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_800164B8); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_800164F0); + +void func_80016594(void) { +} + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_8001659C); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_800165D4); + +void func_800165F8(void) { +} + +void func_80016600(void) { +} + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_80016608); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_800167C4); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_8001680C); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_80016844); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_80016878); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_800168B4); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_800168E4); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_80016938); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_80016970); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_800169B0); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_80016D34); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_80016F3C); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_800173D0); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_80017428); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_80017518); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_8001763C); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_80017B24); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_80017C94); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_80017CD8); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_80017E54); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_80017FA4); + +INCLUDE_ASM("asm/ovl/tl/nonmatchings/80", func_80018094);