diff --git a/Makefile b/Makefile index fd4c74c3..62d960da 100644 --- a/Makefile +++ b/Makefile @@ -208,7 +208,7 @@ endef ### Flags ### # Build tool flags -CFLAGS := -c -Wab,-r4300_mul -non_shared -G 0 -Xfullwarn -Xcpluscomm $(OPT_FLAGS) $(MIPSBIT) -D_FINALROM -DF3DEX_GBI -DVERSION='$(C_VERSION)' +CFLAGS := -c -Wab,-r4300_mul -non_shared -G 0 -Xcpluscomm $(OPT_FLAGS) $(MIPSBIT) -D_FINALROM -DF3DEX_GBI -DVERSION='$(C_VERSION)' CFLAGS += -woff 649,654,838,807 CFLAGS += $(IN_CFLAGS) CPPFLAGS := -D_FINALROM -DN_MICRO @@ -303,7 +303,7 @@ define overlay_rules # split overlay $(BUILD_DIR)/$(1)_SPLAT_TIMESTAMP : $(SUBYAML)/$(1).$(VERSION).yaml $(BUILD_DIR)/$(1).$(VERSION).bin $(SYMBOL_ADDRS) $(call print1,Splitting bin:,$$<) - $(SPLAT) --target $(BUILD_DIR)/$(1).$(VERSION).bin $(SUBYAML)/$(1).$(VERSION).yaml --basedir . + $(SPLAT) $(SUBYAML)/$(1).$(VERSION).yaml @touch $$@ @touch $(1).ld # Dummy target to make sure extraction happens before compilation, mainly for extracted asm @@ -464,7 +464,7 @@ $(OVERLAY_CODE_BINS) : $(BUILD_DIR)/%.code : $(BUILD_DIR)/%.full $(BUILD_DIR)/%. $(call print2,Converting overlay code:,$<,$@) @head -c $(shell {\ text_offset=0x$$(nm $(BUILD_DIR)/$*.elf | grep $*_TEXT_START | head -c 8) ;\ - data_offset=0x$$(nm $(BUILD_DIR)/$*.elf | grep $*_DATA_START | head -c 8) ;\ + data_offset=0x$$(nm $(BUILD_DIR)/$*.elf | grep $*_DATA_START | sort -r | head -c 8) ;\ echo $$(($$data_offset - $$text_offset)) ;\ }) $< > $@ # @$(OBJCOPY) -I elf32-tradbigmips -O binary --only-section .$*_code --only-section .$*_mips3 $< $@ @@ -474,7 +474,7 @@ $(OVERLAY_DATA_BINS) : $(BUILD_DIR)/%.data : $(BUILD_DIR)/%.full $(BUILD_DIR)/%. $(call print2,Converting overlay data:,$<,$@) @tail -c +$(shell {\ text_offset=0x$$(nm $(BUILD_DIR)/$*.elf | grep $*_TEXT_START | head -c 8) ;\ - data_offset=0x$$(nm $(BUILD_DIR)/$*.elf | grep $*_DATA_START | head -c 8) ;\ + data_offset=0x$$(nm $(BUILD_DIR)/$*.elf | grep $*_DATA_START | sort -r | head -c 8) ;\ echo $$(($$data_offset - $$text_offset + 1)) ;\ }) $< > $@ # @$(OBJCOPY) -I elf32-tradbigmips -O binary --only-section .$*_data --only-section .*_data_* $< $@ diff --git a/README.md b/README.md index 30cb8fc4..90324d8b 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# banjo (88.0773%) +# banjo (88.8665%) diff --git a/progress/progress_core1.svg b/progress/progress_core1.svg index d0776a78..df6aa487 100644 --- a/progress/progress_core1.svg +++ b/progress/progress_core1.svg @@ -9,7 +9,7 @@ - + @@ -17,7 +17,7 @@ core1 - 67.6862% - 67.6862% + 73.1238% + 73.1238% \ No newline at end of file diff --git a/progress/progress_total.svg b/progress/progress_total.svg index f675b77f..7e8889db 100644 --- a/progress/progress_total.svg +++ b/progress/progress_total.svg @@ -9,7 +9,7 @@ - + @@ -17,7 +17,7 @@ Banjo-Kazooie (us.v10) - 88.0773% - 88.0773% + 88.8665% + 88.8665% \ No newline at end of file diff --git a/src/core1/code_34B70.c b/src/core1/code_34B70.c deleted file mode 100644 index 3867a006..00000000 --- a/src/core1/code_34B70.c +++ /dev/null @@ -1,90 +0,0 @@ -#include -#include "functions.h" -#include "variables.h" - - -#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_34B70/func_80272590.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_34B70/func_8027275C.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_34B70/func_80272790.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_34B70/func_802727E8.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_34B70/func_8027285C.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_34B70/func_80272898.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_34B70/func_802728B0.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_34B70/func_80272B6C.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_34B70/func_80272D00.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_34B70/func_80272F78.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_34B70/func_80273198.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_34B70/func_802731F0.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_34B70/func_802731F8.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_34B70/func_80273484.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_34B70/func_80273490.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_34B70/func_802734A4.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_34B70/func_802734B8.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_34B70/func_802734C0.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_34B70/func_802734C8.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_34B70/func_80273504.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_34B70/func_80274148.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_34B70/func_80274170.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_34B70/func_802741C8.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_34B70/func_802745B0.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_34B70/func_802745BC.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_34B70/func_80274618.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_34B70/func_80274A80.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_34B70/func_80274A8C.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_34B70/func_80274AA0.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_34B70/func_80274AB4.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_34B70/func_80274ABC.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_34B70/func_80274AC4.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_34B70/func_80274B34.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_34B70/func_80274D98.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_34B70/func_80274DFC.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_34B70/func_80274E24.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_34B70/func_80274E6C.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_34B70/func_80274E7C.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_34B70/func_80274EB8.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_34B70/func_802754A8.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_34B70/func_8027552C.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_34B70/func_80275578.s") - -#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_34B70/func_802755A0.s") diff --git a/src/core1/code_8C50.c b/src/core1/code_8C50.c index f703192a..0bfe03bb 100644 --- a/src/core1/code_8C50.c +++ b/src/core1/code_8C50.c @@ -20,13 +20,13 @@ void func_80247224(void); #define CORE1_8C50_EVENT_CONT_TIMER 13 /* .extern */ -extern void (*func_80272590)(void); -extern void (*func_802731F0)(void); -extern u64 D_80274620[]; +extern u8 D_80272590[]; +extern u8 D_802731F0[]; +extern u8 D_80274620[]; -extern u64 D_80278E80[]; //ucode_data -extern u64 D_80279130[]; -extern u64 D_80279930[]; +extern u8 D_80278E80[]; //ucode_data +extern u8 D_80279130[]; +extern u8 D_80279930[]; /* .data */ OSTask D_80275910 = { @@ -120,7 +120,7 @@ void func_80246744(OSMesg arg0){ void func_80246794(Struct_Core1_8C50_s * arg0){ func_80255D0C(&D_80275910.t.ucode_boot, &D_80275910.t.ucode_boot_size); - D_80275910.t.ucode = &func_80272590; + D_80275910.t.ucode = D_80272590; D_80275910.t.ucode_data = D_80278E80; D_80275910.t.data_ptr = (void*) arg0->unk8; D_80275910.t.data_size = (arg0->unkC - arg0->unk8) >> 3 << 3; @@ -134,7 +134,7 @@ void func_80246794(Struct_Core1_8C50_s * arg0){ void func_80246844(Struct_Core1_8C50_s * arg0){ func_80255D0C(&D_80275950.t.ucode_boot, &D_80275950.t.ucode_boot_size); - D_80275950.t.ucode = &func_802731F0; + D_80275950.t.ucode = D_802731F0; D_80275950.t.ucode_data = D_80279130; D_80275950.t.data_ptr = (void*) arg0->unk8; D_80275950.t.data_size = (arg0->unkC - arg0->unk8) >> 3 << 3; diff --git a/subyaml/BGS.us.v10.yaml b/subyaml/BGS.us.v10.yaml index bd9ac3ac..0891c422 100644 --- a/subyaml/BGS.us.v10.yaml +++ b/subyaml/BGS.us.v10.yaml @@ -17,7 +17,7 @@ options: symbol_addrs_path: symbol_addrs.us.v10.txt undefined_funcs_auto_path: undefined_funcs_auto.BGS.us.v10.txt undefined_syms_auto_path: undefined_syms_auto.BGS.us.v10.txt - base_path: . + base_path: .. target_path: build/us.v10/BGS.us.v10.bin asset_path: bin build_path: build/us.v10 diff --git a/subyaml/CC.us.v10.yaml b/subyaml/CC.us.v10.yaml index 3a931021..af566890 100644 --- a/subyaml/CC.us.v10.yaml +++ b/subyaml/CC.us.v10.yaml @@ -17,7 +17,7 @@ options: symbol_addrs_path: symbol_addrs.us.v10.txt undefined_funcs_auto_path: undefined_funcs_auto.CC.us.v10.txt undefined_syms_auto_path: undefined_syms_auto.CC.us.v10.txt - base_path: . + base_path: .. target_path: build/us.v10/CC.us.v10.bin asset_path: bin build_path: build/us.v10 diff --git a/subyaml/CCW.us.v10.yaml b/subyaml/CCW.us.v10.yaml index 6a9379b4..4a71ce16 100644 --- a/subyaml/CCW.us.v10.yaml +++ b/subyaml/CCW.us.v10.yaml @@ -17,7 +17,7 @@ options: symbol_addrs_path: symbol_addrs.us.v10.txt undefined_funcs_auto_path: undefined_funcs_auto.CCW.us.v10.txt undefined_syms_auto_path: undefined_syms_auto.CCW.us.v10.txt - base_path: . + base_path: .. target_path: build/us.v10/CCW.us.v10.bin asset_path: bin build_path: build/us.v10 diff --git a/subyaml/FP.us.v10.yaml b/subyaml/FP.us.v10.yaml index 965b5fb5..4bc2b07c 100644 --- a/subyaml/FP.us.v10.yaml +++ b/subyaml/FP.us.v10.yaml @@ -17,7 +17,7 @@ options: symbol_addrs_path: symbol_addrs.us.v10.txt undefined_funcs_auto_path: undefined_funcs_auto.FP.us.v10.txt undefined_syms_auto_path: undefined_syms_auto.FP.us.v10.txt - base_path: . + base_path: .. target_path: build/us.v10/FP.us.v10.bin asset_path: bin build_path: build/us.v10 diff --git a/subyaml/GV.us.v10.yaml b/subyaml/GV.us.v10.yaml index d55a6f6a..6c92041b 100644 --- a/subyaml/GV.us.v10.yaml +++ b/subyaml/GV.us.v10.yaml @@ -17,7 +17,7 @@ options: symbol_addrs_path: symbol_addrs.us.v10.txt undefined_funcs_auto_path: undefined_funcs_auto.GV.us.v10.txt undefined_syms_auto_path: undefined_syms_auto.GV.us.v10.txt - base_path: . + base_path: .. target_path: build/us.v10/GV.us.v10.bin asset_path: bin build_path: build/us.v10 diff --git a/subyaml/MM.us.v10.yaml b/subyaml/MM.us.v10.yaml index 58746c1e..36009a0a 100644 --- a/subyaml/MM.us.v10.yaml +++ b/subyaml/MM.us.v10.yaml @@ -17,7 +17,7 @@ options: symbol_addrs_path: symbol_addrs.us.v10.txt undefined_funcs_auto_path: undefined_funcs_auto.MM.us.v10.txt undefined_syms_auto_path: undefined_syms_auto.MM.us.v10.txt - base_path: . + base_path: .. target_path: build/us.v10/MM.us.v10.bin asset_path: bin build_path: build/us.v10 diff --git a/subyaml/MMM.us.v10.yaml b/subyaml/MMM.us.v10.yaml index 35c4d379..5d0d0a5d 100644 --- a/subyaml/MMM.us.v10.yaml +++ b/subyaml/MMM.us.v10.yaml @@ -17,7 +17,7 @@ options: symbol_addrs_path: symbol_addrs.us.v10.txt undefined_funcs_auto_path: undefined_funcs_auto.MMM.us.v10.txt undefined_syms_auto_path: undefined_syms_auto.MMM.us.v10.txt - base_path: . + base_path: .. target_path: build/us.v10/MMM.us.v10.bin asset_path: bin build_path: build/us.v10 diff --git a/subyaml/RBB.us.v10.yaml b/subyaml/RBB.us.v10.yaml index 795de35d..dc5a1e26 100644 --- a/subyaml/RBB.us.v10.yaml +++ b/subyaml/RBB.us.v10.yaml @@ -17,7 +17,7 @@ options: symbol_addrs_path: symbol_addrs.us.v10.txt undefined_funcs_auto_path: undefined_funcs_auto.RBB.us.v10.txt undefined_syms_auto_path: undefined_syms_auto.RBB.us.v10.txt - base_path: . + base_path: .. target_path: build/us.v10/RBB.us.v10.bin asset_path: bin build_path: build/us.v10 diff --git a/subyaml/SM.pal.yaml b/subyaml/SM.pal.yaml index 62db85d6..f6a25a21 100644 --- a/subyaml/SM.pal.yaml +++ b/subyaml/SM.pal.yaml @@ -17,7 +17,7 @@ options: symbol_addrs_path: symbol_addrs.pal.txt undefined_funcs_auto_path: undefined_funcs_auto.SM.pal.txt undefined_syms_auto_path: undefined_syms_auto.SM.pal.txt - base_path: . + base_path: .. target_path: build/pal/SM.pal.bin asset_path: bin build_path: build/pal diff --git a/subyaml/SM.us.v10.yaml b/subyaml/SM.us.v10.yaml index deb063e6..7e7832f9 100644 --- a/subyaml/SM.us.v10.yaml +++ b/subyaml/SM.us.v10.yaml @@ -17,7 +17,7 @@ options: symbol_addrs_path: symbol_addrs.us.v10.txt undefined_funcs_auto_path: undefined_funcs_auto.SM.us.v10.txt undefined_syms_auto_path: undefined_syms_auto.SM.us.v10.txt - base_path: . + base_path: .. target_path: build/us.v10/SM.us.v10.bin asset_path: bin build_path: build/us.v10 diff --git a/subyaml/TTC.us.v10.yaml b/subyaml/TTC.us.v10.yaml index 10f695a3..346613fb 100644 --- a/subyaml/TTC.us.v10.yaml +++ b/subyaml/TTC.us.v10.yaml @@ -17,7 +17,7 @@ options: symbol_addrs_path: symbol_addrs.us.v10.txt undefined_funcs_auto_path: undefined_funcs_auto.TTC.us.v10.txt undefined_syms_auto_path: undefined_syms_auto.TTC.us.v10.txt - base_path: . + base_path: .. target_path: build/us.v10/TTC.us.v10.bin asset_path: bin build_path: build/us.v10 diff --git a/subyaml/core1.us.v10.yaml b/subyaml/core1.us.v10.yaml index bc68339e..12f38871 100644 --- a/subyaml/core1.us.v10.yaml +++ b/subyaml/core1.us.v10.yaml @@ -17,7 +17,7 @@ options: symbol_addrs_path: symbol_addrs.us.v10.txt undefined_funcs_auto_path: undefined_funcs_auto.core1.us.v10.txt undefined_syms_auto_path: undefined_syms_auto.core1.us.v10.txt - base_path: . + base_path: .. target_path: build/us.v10/core1.us.v10.bin asset_path: bin build_path: build/us.v10 @@ -232,7 +232,10 @@ segments: - [0x34A80, c, done/io/epirawread] #DONE - [0x34AD0, c, done/os/setglobalintmask] #DONE - [0x34B20, c, done/os/yieldthread] #DONE - - [0x34B70, c, code_34B70] #mips3 + - [0x34B70, bin, n_aspMain_text] + - [0x357D0, bin, gSPF3DEX_fifo_text] + - [0x36C00, bin, gSPL3DEX_fifo_text] + - [0x37BF0, linker_offset, DATA_START] #data Section - [0x37BF0, bin, data_37BF0] #data Section - [0x37C50, .data, code_660] - [0x37D50, .data, code_1D00] @@ -298,7 +301,9 @@ segments: - [0x3B3B0, .rodata, done/io/devmgr] - [0x3B3D0, .rodata, done/audio/env] - [0x3B420, .rodata, done/audio/resample] - - [0x3B460, bin, data_3B460] + - [0x3B460, bin, n_aspMain_data] + - [0x3B710, bin, gSPF3DEX_fifo_data] + - [0x3BF10, bin, gSPL3DEX_fifo_data] - [0x3c710, .bss, code_0] - [0x3c710, .bss, code_660] - [0x3c710, .bss, inflate] diff --git a/subyaml/core2.us.v10.yaml b/subyaml/core2.us.v10.yaml index 78e598da..d76923ac 100644 --- a/subyaml/core2.us.v10.yaml +++ b/subyaml/core2.us.v10.yaml @@ -17,7 +17,7 @@ options: symbol_addrs_path: symbol_addrs.us.v10.txt undefined_funcs_auto_path: undefined_funcs_auto.core2.us.v10.txt undefined_syms_auto_path: undefined_syms_auto.core2.us.v10.txt - base_path: . + base_path: .. target_path: build/us.v10/core2.us.v10.bin asset_path: bin build_path: build/us.v10 diff --git a/subyaml/cutscenes.us.v10.yaml b/subyaml/cutscenes.us.v10.yaml index 62541f7e..f594e022 100644 --- a/subyaml/cutscenes.us.v10.yaml +++ b/subyaml/cutscenes.us.v10.yaml @@ -17,7 +17,7 @@ options: symbol_addrs_path: symbol_addrs.us.v10.txt undefined_funcs_auto_path: undefined_funcs_auto.cutscenes.us.v10.txt undefined_syms_auto_path: undefined_syms_auto.cutscenes.us.v10.txt - base_path: . + base_path: .. target_path: build/us.v10/cutscenes.us.v10.bin asset_path: bin build_path: build/us.v10 diff --git a/subyaml/fight.us.v10.yaml b/subyaml/fight.us.v10.yaml index 9573cd4e..4173bf34 100644 --- a/subyaml/fight.us.v10.yaml +++ b/subyaml/fight.us.v10.yaml @@ -18,7 +18,7 @@ options: symbol_addrs_path: symbol_addrs.us.v10.txt undefined_funcs_auto_path: undefined_funcs_auto.fight.us.v10.txt undefined_syms_auto_path: undefined_syms_auto.fight.us.v10.txt - base_path: . + base_path: .. target_path: build/us.v10/fight.us.v10.bin asset_path: bin build_path: build/us.v10 diff --git a/subyaml/fight.us.v12.yaml b/subyaml/fight.us.v12.yaml index 46070456..9898c83f 100644 --- a/subyaml/fight.us.v12.yaml +++ b/subyaml/fight.us.v12.yaml @@ -18,7 +18,7 @@ options: symbol_addrs_path: symbol_addrs.us.v10.txt undefined_funcs_auto_path: undefined_funcs_auto.fight.us.v10.txt undefined_syms_auto_path: undefined_syms_auto.fight.us.v10.txt - base_path: . + base_path: .. target_path: build/us.v10/fight.us.v10.bin asset_path: bin build_path: build/us.v10 diff --git a/subyaml/lair.us.v10.yaml b/subyaml/lair.us.v10.yaml index 1ec0d09c..2d8c27e1 100644 --- a/subyaml/lair.us.v10.yaml +++ b/subyaml/lair.us.v10.yaml @@ -17,7 +17,7 @@ options: symbol_addrs_path: symbol_addrs.us.v10.txt undefined_funcs_auto_path: undefined_funcs_auto.lair.us.v10.txt undefined_syms_auto_path: undefined_syms_auto.lair.us.v10.txt - base_path: . + base_path: .. target_path: build/us.v10/lair.us.v10.bin asset_path: bin build_path: build/us.v10 diff --git a/tools/n64splat b/tools/n64splat index 2a94bfca..2b7cbe56 160000 --- a/tools/n64splat +++ b/tools/n64splat @@ -1 +1 @@ -Subproject commit 2a94bfcabcbda111920a7795086317678ac8a399 +Subproject commit 2b7cbe565f9205f2a5eaf6eadd33a21f13417108 diff --git a/tools/splat_inputs.py b/tools/splat_inputs.py index e3064f85..85a3cef8 100755 --- a/tools/splat_inputs.py +++ b/tools/splat_inputs.py @@ -12,8 +12,8 @@ def main(config_path): config = yaml.load(f.read(), Loader=yaml.SafeLoader) options.initialize(config, config_path, None, None) - options.set("modes", []) - options.set("verbose", False) + options.opts.modes = [] + options.opts.verbose = False all_segments = initialize_segments(config["segments"])