From 06e1330e71dc3e5f7604aa2cefeb1a2b3f8633be Mon Sep 17 00:00:00 2001 From: Banjo Kazooie Date: Wed, 4 Sep 2024 01:30:42 -0500 Subject: [PATCH 01/14] start Pal WIP --- Makefile | 19 +- asm/core1/code_1E820.s | 57 - decompressed.pal.yaml | 2375 +++++++++++++++++++++ include/version.h | 50 + manual_syms.pal.txt | 177 ++ manual_syms.txt => manual_syms.us.v10.txt | 1 + rzip_dummy_addrs.pal.txt | 32 + rzip_dummy_addrs.txt | 32 - rzip_dummy_addrs.us.v10.txt | 32 + src/SM/code_46C0.c | 70 +- src/core1/code_0.c | 15 +- src/core1/code_1D00.c | 114 +- src/core1/code_2BD0.c | 10 +- src/core1/code_7F60.c | 8 +- src/done/bk_boot_1050.c | 6 +- src/done/overlays.c | 64 +- symbol_addrs.pal.txt | 62 + 17 files changed, 2936 insertions(+), 188 deletions(-) delete mode 100644 asm/core1/code_1E820.s create mode 100644 decompressed.pal.yaml create mode 100644 include/version.h create mode 100644 manual_syms.pal.txt rename manual_syms.txt => manual_syms.us.v10.txt (99%) create mode 100644 rzip_dummy_addrs.pal.txt delete mode 100644 rzip_dummy_addrs.txt create mode 100644 rzip_dummy_addrs.us.v10.txt create mode 100644 symbol_addrs.pal.txt diff --git a/Makefile b/Makefile index 43b3a653..1a0b544a 100644 --- a/Makefile +++ b/Makefile @@ -166,7 +166,7 @@ OPT_FLAGS := -O2 MIPSBIT := -mips2 ASFLAGS := -EB -mtune=vr4300 -march=vr4300 -mabi=32 -I include GCC_ASFLAGS := -c -x assembler-with-cpp -mabi=32 -ffreestanding -mtune=vr4300 -march=vr4300 -mfix4300 -G 0 -O -mno-shared -fno-PIC -mno-abicalls -LDFLAGS := -T $(LD_SCRIPT) -Map $(ELF:.elf=.map) --no-check-sections --accept-unknown-input-arch -T manual_syms.txt +LDFLAGS := -T $(LD_SCRIPT) -Map $(ELF:.elf=.map) --no-check-sections --accept-unknown-input-arch -T manual_syms.$(VERSION).txt BINOFLAGS := -I binary -O elf32-tradbigmips ### Rules ### @@ -186,10 +186,17 @@ $(addprefix progress-,$(OVERLAYS)) : progress-% : progress/progress.%.csv @$(PROGRESS_READ) $< $(VERSION) $* # Verify that the roms match, also sets up diff_settings +ifeq ($(VERSION), us.v10) verify: $(BASEROM) $(FINAL_Z64) @$(DIFF) $(BASEROM) $(FINAL_Z64) > /dev/null && \ $(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" +else +verify: $(DECOMPRESSED_BASEROM) $(PRELIM_Z64) + @$(DIFF) $^ > /dev/null && \ + $(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" +endif $(OVERLAY_PROG_SVGS) : progress/progress_%.svg: progress/progress.%.csv $(call print1,Creating progress svg for:,$*) @@ -293,8 +300,12 @@ $(ASSET_ROOT)/assets.yaml : $(BIN_ROOT)/assets.bin $(BK_ASSET_TOOL) $(call print1,Extracting Assets:,$@) $(BK_ASSET_TOOL) -e $< $(ASSET_ROOT) -# .yaml -> .bin -ifneq (,$(shell which cargo)) +# .yaml -> . +ifeq ($(VERSION),pal) +$(ASSET_BIN): $(BIN_ROOT)/assets.bin + $(call print2,Copying Asset Binary (install cargo to construct instead):,$<,$@) + @$(CP) $< $@ +else ifneq (,$(shell which cargo)) $(ASSET_BIN): $(ASSET_ROOT)/assets.yaml $(BK_ASSET_TOOL) $(ALL_ASSET_FILES) $(call print2,Constructing Asset Binary:,$<,$@) $(BK_ASSET_TOOL) -c $< $@ @@ -316,7 +327,7 @@ $(DECOMPRESSED_BASEROM): $(BASEROM) $(BK_ROM_DECOMPRESS) # .o -> .elf (dummy symbols) $(PRELIM_ELF): $(ALL_OBJS) $(LD_SCRIPT) $(ASSET_OBJS) $(call print1,Linking elf:,$@) - @$(LD) $(LDFLAGS) -T rzip_dummy_addrs.txt -o $@ + @$(LD) $(LDFLAGS) -T rzip_dummy_addrs.$(VERSION).txt -o $@ # .elf -> .z64 (dummy symbols) $(PRELIM_Z64) : $(PRELIM_ELF) diff --git a/asm/core1/code_1E820.s b/asm/core1/code_1E820.s deleted file mode 100644 index 0b10453e..00000000 --- a/asm/core1/code_1E820.s +++ /dev/null @@ -1,57 +0,0 @@ -.include "macro.inc" - -/* assembler directives */ -.set noat /* allow manual use of $at */ -.set noreorder /* don't insert nops after branches */ -.set gp=64 /* allow use of 64-bit general purpose registers */ - -.section .text, "ax" - -glabel func_8025C240 -/* F37A70 8025C240 3C048027 */ lui $a0, %hi(D_80276E70) -/* F37A74 8025C244 DC846E70 */ ld $a0, %lo(D_80276E70)($a0) -/* F37A78 8025C248 3C018027 */ lui $at, %hi(D_80276E70) -/* F37A7C 8025C24C 000437FC */ dsll32 $a2, $a0, 31 -/* F37A80 8025C250 00042FF8 */ dsll $a1, $a0, 31 -/* F37A84 8025C254 000637FA */ dsrl $a2, $a2, 31 -/* F37A88 8025C258 0005283E */ dsrl32 $a1, $a1, 0 -/* F37A8C 8025C25C 0004233C */ dsll32 $a0, $a0, 12 -/* F37A90 8025C260 00C53025 */ or $a2, $a2, $a1 -/* F37A94 8025C264 0004203E */ dsrl32 $a0, $a0, 0 -/* F37A98 8025C268 00C43026 */ xor $a2, $a2, $a0 -/* F37A9C 8025C26C 0006253A */ dsrl $a0, $a2, 20 -/* F37AA0 8025C270 30840FFF */ andi $a0, $a0, 0xFFF -/* F37AA4 8025C274 00862026 */ xor $a0, $a0, $a2 -/* F37AA8 8025C278 0004103C */ dsll32 $v0, $a0, 0 -/* F37AAC 8025C27C FC246E70 */ sd $a0, %lo(D_80276E70)($at) -/* F37AB0 8025C280 03E00008 */ jr $ra -/* F37AB4 8025C284 0002103F */ dsra32 $v0, $v0, 0 -endlabel func_8025C240 - -glabel func_8025C288 -/* F37AB8 8025C288 64840001 */ daddiu $a0, $a0, 0x1 -/* F37ABC 8025C28C 3C018027 */ lui $at, %hi(D_80276E70) -/* F37AC0 8025C290 FC246E70 */ sd $a0, %lo(D_80276E70)($at) -/* F37AC4 8025C294 03E00008 */ jr $ra -/* F37AC8 8025C298 24040000 */ addiu $a0, $zero, 0x0 -endlabel func_8025C288 - -glabel func_8025C29C -/* F37ACC 8025C29C DC870000 */ ld $a3, 0x0($a0) -/* F37AD0 8025C2A0 000737FC */ dsll32 $a2, $a3, 31 -/* F37AD4 8025C2A4 00072FF8 */ dsll $a1, $a3, 31 -/* F37AD8 8025C2A8 000637FA */ dsrl $a2, $a2, 31 -/* F37ADC 8025C2AC 0005283E */ dsrl32 $a1, $a1, 0 -/* F37AE0 8025C2B0 00073B3C */ dsll32 $a3, $a3, 12 -/* F37AE4 8025C2B4 00C53025 */ or $a2, $a2, $a1 -/* F37AE8 8025C2B8 0007383E */ dsrl32 $a3, $a3, 0 -/* F37AEC 8025C2BC 00C73026 */ xor $a2, $a2, $a3 -/* F37AF0 8025C2C0 00063D3A */ dsrl $a3, $a2, 20 -/* F37AF4 8025C2C4 30E70FFF */ andi $a3, $a3, 0xFFF -/* F37AF8 8025C2C8 00E63826 */ xor $a3, $a3, $a2 -/* F37AFC 8025C2CC 0007103C */ dsll32 $v0, $a3, 0 -/* F37B00 8025C2D0 FC870000 */ sd $a3, 0x0($a0) -/* F37B04 8025C2D4 03E00008 */ jr $ra -/* F37B08 8025C2D8 0002103F */ dsra32 $v0, $v0, 0 -/* F37B0C 8025C2DC 00000000 */ nop -endlabel func_8025C29C diff --git a/decompressed.pal.yaml b/decompressed.pal.yaml new file mode 100644 index 00000000..5200f1e2 --- /dev/null +++ b/decompressed.pal.yaml @@ -0,0 +1,2375 @@ +sha1: e93112b7a5da3788a8c6f99ac7f45f8a068a6df5 +options: + basename: banjo + find_file_boundaries: True + compiler: "IDO" + platform: n64 + asm_end_label: "endlabel" + cpp_args: + - "-Iinclude" + - "-Iinclude/2.0L" + - "-D_LANGUAGE_C" + generated_c_preamble: | + #include + #include "functions.h" + #include "variables.h" + undefined_syms_path: undefined_syms.pal.txt + symbol_addrs_path: symbol_addrs.pal.txt + create_undefined_funcs_auto: yes + create_undefined_syms_auto: yes + base_path: . + target_path: decompressed.pal.z64 + asset_path: bin + build_path: build/pal + libultra_symbols: True + hardware_regs: True +segments: +- name: header + type: header + start: 0x00000000 +- name: boot + type: code + start: 0x0040 + vram: 0xA4000040 + exclusive_ram_id: ipl3 + subsegments: + - [0x0040, bin, ipl3] + - [0x0B70, bin, ipl3font] +- name: entry + type: code + start: 0x1000 + vram: 0x80000400 + subsegments: + - [0x1000, hasm, entry] +- name: boot/bk_boot + type: code + start: 0x1050 + vram: 0x80000450 + subsegments: + - [0x1050, c, done/bk_boot_1050] + - [0x1150, c, done/rarezip] + - [0x12B0, c, done/inflate] + - [0x27F0, c, done/overlays] + - [0x2970, c, done/initialize] + - [0x2C00, c, done/pirawdma] + - [0x2CE0, c, done/pigetstat] + - [0x2CF0, hasm, bzero] + - [0x2D90, hasm, setsr] + - [0x2DA0, hasm, getsr] + - [0x2DB0, hasm, setfpccsr] + - [0x2DC0, c, done/sirawread] + - [0x2E10, c, done/sirawwrite] + - [0x2E60, hasm, ultra/exceptasm] + - [0x3770, hasm, writebackdcache] + - [0x37F0, hasm, invalicache] + - [0x3870, hasm, maptlbrdb] + - [0x38D0, c, done/pirawread] + - [0x3930, c, done/ll] + - [0x3BF0, hasm, ultra/parameters] + - [0x3C50, c, done/virtualtophysical] + - [0x3CD0, c, done/si] + - [0x3D00, c, done/thread] + - [0x3D40, c, done/leointerrupt] + - [0x45C0, c, done/seteventmesg] + - [0x4630, hasm, ultra/setintmask] + - [0x46D0, c, done/destroythread] + - [0x47D0, hasm, probetlb] + - [0x4890, c, done/leodiskinit] + - [0x4990, c, done/epirawdma] + - [0x4BC0, hasm, interrupt] + - [0x4C00, c, done/pimgr] + - [0x4D90, c, done/cartrominit] + - [0x4E90, c, done/createmesgqueue] + - [0x4EC0, c, done/piacs] + - [0x4F80, c, done/getthreadpri] + - [0x4FA0, c, done/setthreadpri] + - [0x5080, c, done/createthread] + - [0x51D0, c, done/devmgr] + - [0x5660, c, done/startthread] + - [0x57B0, c, done/sendmesg] + - [0x5900, c, done/recvmesg] + - [0x5A40, c, done/resetglobalintmask] + - [0x5AA0, c, done/epirawwrite] + - [0x5AF0, c, done/epirawread] + - [0x5B40, c, done/setglobalintmask] + - [0x5B90, c, done/yieldthread] + - [0x5BE0, c, done/kdebugserver] + - [0x5BE0, .data, done/inflate] + - [0x5CE0, .data, done/initialize] + - [0x5D00, .data, ultra/exceptasm] + - [0x5D20, .data, done/thread] + - [0x5D40, .data, done/pimgr] + - [0x5D70, .data, done/piacs] + - [0x5D80, .rodata, ultra/exceptasm] + - [0x5DD0, .rodata, ultra/setintmask] + - [0x5E50, .rodata, done/devmgr] + - [0x5E70, .bss, done/bk_boot_1050] + - [0x5E70, .bss, done/rarezip] + - [0x5E70, .bss, done/inflate] + - [0x5E70, .bss, done/initialize] + - [0x5E70, .bss, done/kdebugserver] + - [0x5E70, .bss, done/leointerrupt] + - [0x5E70, .bss, done/seteventmesg] + - [0x5E70, .bss, done/leodiskinit] + - [0x5E70, .bss, done/pimgr] + - [0x5E70, .bss, done/cartrominit] + - [0x5E70, .bss, done/piacs] +- name: crc + type: bin + start: 0x5E70 + align: 16 + subsegments: + - [0x5E70, bin, crc] +- name: assets + type: bin + start: 0x5E90 + subsegments: + - [0x5E90, bin, assets] +# - name: soundfont1ctl +# type: bin +# start: 0xD846C0 +# - name: soundfont1tbl +# type: bin +# start: 0xD954B0 + +# - name: soundfont2ctl +# type: bin +# start: 0xEA3EB0 +# - name: soundfont2tbl +# type: bin +# start: 0xEADE60 + +- name: core1 + dir: core1 + type: code + start: 0x00F3D980 + vram: 0x8023E620 # via https://hack64.net/wiki/doku.php?id=player_kazooie:ram_map + subalign: 4 + subsegments: + - [0xF3D980, c, code_0] + - [0xF3DFE0, c, code_660] + - [0xF3E140, c, inflate] + - [0xF3F680, c, code_1D00] # NONMATCHING + - [0xF40490, c, code_2BD0] + - [0xF40650, c, defragmanager] + - [0xF40850, c, code_2FA0] + - [0xF40A70, c, code_31C0] + - [0xF40B00, c, code_3250] + - [0xF41320, c, code_3A70] + - [0xF42F00, c, code_5650] + - [0xF44940, c, code_7090] + - [0xF44b60, c, code_72B0] + - [0xF45810, c, code_7F60] + - [0xF46500, bin, untouched] +# # - [0xF21EA0, c, code_8C50] #DONE +# # - [0xF22F80, c, code_9D30] #DONE +# # - [0xF23E00, c, code_ABB0] #DONE +# # - [0xF260B0, c, code_CE60] #DONE +# # - [0xF275B0, c, code_E360] #DONE +# # - [0xF27D40, c, code_EAF0] #DONE +# # - [0xF29C50, c,code_10A00] +# # - [0xF2AD10, c, code_11AC0] #DONE +# # - [0xF2C160, c, rumblemanager] #DONE +# # - [0xF2C890, c, code_13640] #DONE +# # - [0xF2C8D0, c, code_13680] #DONE +# # - [0xF2C920, c, overlaymanager] #DONE +# # - [0xF2CBE0, c, code_13990] +# # - [0xF2E840, hasm, code_155F0] #DONE +# # - [0xF2E880, c, overlay] #DONE +# # - [0xF2E9C0, c, code_15770] #DONE +# # - [0xF2ED80, c, code_15B30] #DONE +# # - [0xF2FCA0, c, memory] #DONE +# # - [0xF31360, c, code_18110] #DONE +# # - [0xF31460, c, code_18210] #DONE +# # - [0xF31560, c, code_18310] #DONE +# # - [0xF315A0, c, code_18350] #DONE +# # - [0xF350E0, c, code_1BE90] #DONE +# # - [0xF367E0, c, code_1D590] #DONE +# # - [0xF36810, hasm, code_1D5C0] #DONE +# # - [0xF36820, c, code_1D5D0] #DONE +# # - [0xF375B0, c, code_1E360] #DONE +# # - [0xF37930, c, code_1E6E0] #DONE +# # - [0xF37A70, hasm, code_1E820] #DONE +# # - [0xF37B10, c, audio/n_sl] #DONE +# # - [0xF37BA0, c, audio/n_synthesizer] #DONE +# # - [0xF38580, c, audio/event] #DONE +# # - [0xF38860, c, audio/n_synaddplayer] #DONE +# # - [0xF38A30, c, audio/n_synallocvoice] #DONE +# # - [0xF38C30, c, audio/n_synsetvol] #DONE +# # - [0xF38CD0, c, audio/n_synstartvoice] #DONE +# # - [0xF38D50, c, audio/n_synsetpan] #DONE +# # - [0xF38DD0, c, audio/n_synsetpitch] #DONE +# # - [0xF38E50, c, audio/n_synsetfxmix] #DONE +# # - [0xF38EE0, c, audio/n_synstopvoice] #DONE +# # - [0xF38F50, c, audio/n_synfreevoice] #DONE +# # - [0xF38FF0, c, audio/n_csplayer] #DONE +# # - [0xF3A460, c, audio/cspsetbank] #DONE +# # - [0xF3A4A0, c, audio/cspstop] #DONE +# # - [0xF3A4D0, c, audio/n_csq] #DONE +# # - [0xF3AB70, c, audio/cspsetseq] #DONE +# # - [0xF3ABB0, c, audio/cspplay] #DONE +# # - [0xF3ABE0, c, audio/cspsetvol] #DONE +# # - [0xF3AC20, c, audio/code_219D0] #DONE +# # - [0xF3AC60, c, audio/cspsettempo] #DONE +# # - [0xF3ACD0, c, audio/code_21A80] #DONE +# # - [0xF3AD00, c, audio/cspgettempo] #DONE +# # - [0xF3AD40, c, audio/code_21AF0] #DONE +# # - [0xF3ADA0, c, audio/code_21B50] #DONE +# # - [0xF3AE40, c, audio/n_syndelete] #DONE +# # - [0xF3AEA0, c, audio/n_synallocfx] #DONE +# # - [0xF3AF00, c, audio/n_reverb] #DONE +# # - [0xF3B990, c, audio/n_auxbus] #DONE +# # - [0xF3BA40, c, audio/n_drvrNew] #DONE +# # - [0xF3BFA0, c, audio/n_save] #DONE +# # - [0xF3BFF0, c, audio/n_envresample] #DONE +# # - [0xF3C090, c, audio/n_env] #DONE +# # - [0xF3CA40, c, audio/n_seqplayer] #DONE +# # - [0xF3E5B0, c, audio/n_synstartvoiceparam] #DONE +# # - [0xF3E690, c, audio/n_mainbus] #DONE +# # - [0xF3E710, c, audio/n_load] #DONE +# # - [0xF3E8D0, c, audio/n_adpcm] #DONE +# # - [0xF3EE90, c, audio/n_resample] #DONE +# # - [0xF3F070, c, audio/n_seq] #DONE +# # - [0xF3F360, c, audio/n_synsetpriority] #DONE +# # - [0xF3F370, asm, os/invaldcache] #DONE +# # - [0xF3F410, asm, os/writebackdcacheall] #DONE +# # - [0xF3F440, c, os/initialize] #DONE +# # - [0xF3F6D0, c, os/createthread] #DONE +# # - [0xF3F820, c, gu/sinf] #DONE +# # - [0xF3F9E0, c, audio/cents2ratio] #DONE +# # - [0xF3FA30, c, audio/heapinit] #DONE +# # - [0xF3FA70, hasm, ultra/parameters] #DONE +# # - [0xF3FAD0, c, os/createmesgqueue] #DONE +# # - [0xF3FB00, c, io/aisetfreq] #DONE +# # - [0xF3FC60, c, audio/sl] #DONE +# # - [0xF3FD20, c, audio/heapalloc] #DONE +# # - [0xF3FD80, c, os/recvmesg] #DONE +# # - [0xF3FEC0, c, io/aigetlen] #DONE +# # - [0xF3FED0, c, os/virtualtophysical] #DONE +# # - [0xF3FF50, c, io/aisetnextbuf] #DONE +# # - [0xF40000, c, os/pidma] #DONE +# # - [0xF40110, c, os/stopthread] #DONE +# # - [0xF401D0, c, os/startthread] #DONE +# # - [0xF40320, hasm, os/writebackdcache] #DONE +# # - [0xF403A0, hasm, invaldcache] #DONE +# # - [0xF40450, c, io/pimgr] #DONE +# # - [0xF405E0, c, os/destroythread] #DONE +# # - [0xF406E0, c, os/sendmesg] #DONE +# # - [0xF40830, c, os/settreadpri] #DONE +# # - [0xF40910, c, gu/mtxutil] #DONE +# # - [0xF40B80, c, gu/sqrtf] #DONE +# # - [0xF40B90, c, gu/cosf] #DONE +# # - [0xF40D00, hasm, ultra/setintmask] #DONE +# # - [0xF40DA0, c, io/dpsetstat] #DONE +# # - [0xF40DB0, c, io/sptask] #DONE +# # - [0xF410A0, c, io/dpgetstat] #DONE +# # - [0xF410A0, c, io/vigetcurrframebuf] #DONE +# # - [0xF410F0, c, os/stoptimer] #DONE +# # - [0xF411E0, c, os/settimer] #DONE +# # - [0xF412C0, c, ll] #DONE +# # - [0xF41580, c, io/sptaskyielded] #DONE +# # - [0xF41600, c, io/sptaskyield] #DONE +# # - [0xF41620, c, io/visetmode] #DONE +# # - [0xF41690, c, os/seteventmesg] #DONE +# # - [0xF41700, c, io/vimgr] #DONE +# # - [0xF41A60, c, io/visetspecial] #DONE +# # - [0xF41C20, c, io/viswapbuf] #DONE +# # - [0xF41C70, c, io/visetevent] #DONE +# # - [0xF41CE0, c, io/vigetnextframebuf] #DONE +# # - [0xF41D20, c, io/viblack] #DONE +# # - [0xF41D90, c, gu/ortho] #DONE +# # - [0xF41F50, c, gu/translate] #DONE +# # - [0xF41FF0, c, gu/rotate] #DONE +# # - [0xF421E0, c, io/contreaddata] #DONE +# # - [0xF42440, c, io/controller] #DONE +# # - [0xF42800, c, io/contsetch] #DONE +# # - [0xF42870, c, audio/bnkf] #DONE +# # - [0xF42AC0, c, os/gettime] #DONE +# # - [0xF42B50, c, audio/cseq] #DONE +# # - [0xF43610, c, io/motor] #DONE +# # - [0xF43C30, c, io/pfsinit] #DONE +# # - [0xF43CF0, hasm, invalicache] #DONE +# # - [0xF43D70, c, io/conteeplongwrite] #DONE +# # - [0xF43EA0, c, io/conteeplongread] #DONE +# # - [0xF43F30, c, io/piread] #DONE +# # - [0xF43F70, c, audio/copy] #DONE +# # - [0xF43FF0, c, audio/drvrNew] #DONE +# # - [0xF44790, c, audio/reverb] #DONE +# # - [0xF453E0, c, syncprintf] #DONE +# # - [0xF45420, c, audio/seq] #DONE +# # - [0xF45A40, hasm, setsr] #DONE +# # - [0xF45A50, hasm, getsr] #DONE +# # - [0xF45A60, hasm, setfpccsr] #DONE +# # - [0xF45A70, c, io/sirawread] #DONE +# # - [0xF45AC0, c, io/sirawwrite] #DONE +# # - [0xF45B10, hasm, ultra/exceptasm] #DONE +# # - [0xF46480, c, io/pirawread] #DONE +# # - [0xF464E0, hasm, interrupt] #DONE +# # - [0xF46520, c, os/thread] #DONE +# # - [0xF46560, c, audio/synthesizer] #DONE +# # - [0xF46C40, c, audio/syndelete] #DONE +# # - [0xF46C50, hasm, probetlb] #DONE +# # - [0xF46D10, c, io/ai] #DONE +# # - [0xF46D40, c, os/jammesg] #DONE +# # - [0xF46E90, c, io/pigetcmdq] #DONE +# # - [0xF46EC0, c, io/cartrominit] #DONE +# # - [0xF46FC0, c, io/leodiskinit] #DONE +# # - [0xF470C0, c, io/piacs] #DONE +# # - [0xF47180, c, os/getthreadpri] #DONE +# # - [0xF471A0, c, io/pirawdma] #DONE +# # - [0xF47280, c, io/epirawdma] #DONE +# # - [0xF474B0, c, io/devmgr] #DONE +# # - [0xF47940, hasm, bcopy] #DONE +# # - [0xF47C50, c, io/spsetstat] #DONE +# # - [0xF47C60, c, io/spsetpc] #DONE +# # - [0xF47CA0, c, io/sprawdma] #DONE +# # - [0xF47D30, c, io/sp] #DONE +# # - [0xF47D60, c, io/vi] #DONE +# # - [0xF47EA0, c, os/timerintr] #DONE +# # - [0xF482A0, hasm, setcompare] #DONE +# # - [0xF482B0, c, io/spgetstat] #DONE +# # - [0xF482C0, c, io/vigetcurrcontext] #DONE +# # - [0xF482D0, c, io/viswapcontext] #DONE +# # - [0xF48630, hasm, getcount] #DONE +# # - [0xF48640, c, gu/normalize] #DONE +# # - [0xF486D0, c, io/siacs] #DONE +# # - [0xF48790, c, io/sirawdma] #DONE +# # - [0xF48840, c, io/pfsisplug] #DONE +# # - [0xF48BB0, c, io/crc] #DONE +# # - [0xF48D30, c, io/contramwrite] #DONE +# # - [0xF490B0, c, io/contramread] #DONE +# # - [0xF49440, c, io/pfsgetstatus] #DONE +# # - [0xF49550, c, io/contpfs] #DONE +# # - [0xF4A2B0, c, io/pfschecker] #DONE +# # - [0xF4AD10, c, io/conteepwrite] #DONE +# # - [0xF4B260, c, io/conteepread] #DONE +# # - [0xF4B5C0, c, audio/filter] #DONE +# # - [0xF4B5E0, c, audio/env] #DONE +# # - [0xF4C160, c, audio/load] #DONE +# # - [0xF4CCB0, c, audio/resample] #DONE +# # - [0xF4CFB0, c, audio/auxbus] #DONE +# # - [0xF4D0C0, c, audio/mainbus] #DONE +# # - [0xF4D210, c, audio/save] #DONE +# # - [0xF4D2D0, c, io/si] #DONE +# # - [0xF4D300, c, io/leointerrupt] #DONE +# # - [0xF4DB80, c, audio/synallocfx] #DONE +# # - [0xF4DC20, c, os/resetglobalintmask] #DONE +# # - [0xF4DC80, c, io/epirawwrite] #DONE +# # - [0xF4DCD0, c, io/epirawread] #DONE +# # - [0xF4DD20, c, os/setglobalintmask] #DONE +# # - [0xF4DD70, c, os/yieldthread] #DONE +# # - [0xF4DDC0, bin, n_aspMain_text] +# # - [0xF4EA20, bin, gSPF3DEX_fifo_text] +# # - [0xF4FE50, bin, gSPL3DEX_fifo_text] + - [0xF747D0, linker_offset, DATA_START] #data Section + - [0xF747D0, .data, code_0] + - [0xF74830, .data, code_660] + - [0xF74930, .data, code_1D00] + - [0xF74A10, bin, data_37E30] #unreferenced + - [0xF74A20, .data, code_2FA0] + - [0xF74A30, .data, code_3250] + - [0xF74A40, .data, code_3A70] + - [0xF74A80, .data, code_5650] + - [0xF74AA0, .data, code_7090] + - [0xF74AB0, bin, data_37ED0] #unreferenced + - [0xF74AC0, .data, code_7F60] + - [0xF74AD0, bin, remain_core1_data] +# # - [0xF51140, .data, code_8C50] +# # - [0xF51280, .data, code_9D30] +# # - [0xF51430, .data, code_ABB0] +# # - [0xF51440, .data, code_CE60] +# # - [0xF514B0, .data, code_E360] +# # - [0xF51550, .data, code_EAF0] +# # - [0xF51560, .data, code_10A00] +# # - [0xF51570, .data, code_11AC0] +# # - [0xF51B00, .data, overlaymanager] +# # - [0xF51DA0, .data, code_13990] +# # - [0xF51DB0, .data, code_15B30] +# # - [0xF51DC0, .data, memory] +# # - [0xF51DF0, .data, code_18310] +# # - [0xF524E0, .data, code_18350] +# # - [0xF52660, .data, code_1BE90] +# # - [0xF52670, .data, code_1D5D0] +# # - [0xF52690, .data, code_1E360] +# # - [0xF526A0, .data, data_1E820] +# # - [0xF526B0, .data, audio/n_sl] +# # - [0xF526C0, .data, audio/n_drvrNew] +# # - [0xF52850, .data, audio/n_env] +# # - [0xF52950, .data, os/initialize] +# # - [0xF52970, .data, audio/sl] +# # - [0xF52980, .data, io/aisetnextbuf] +# # - [0xF52990, .data, io/pimgr] +# # - [0xF529C0, .data, io/vimgr] +# # - [0xF529E0, .data, io/controller] +# # - [0xF529F0, .data, audio/drvrNew] +# # - [0xF52B80, .data, ultra/exceptasm] +# # - [0xF52BA0, .data, os/thread] +# # - [0xF52BC0, .data, io/piacs] +# # - [0xF52BD0, .data, io/vi] +# # - [0xF52C40, .data, os/timerintr] +# # - [0xF52C50, .data, io/siacs] +# # - [0xF52C60, .data, audio/env] +# # - [0xF52D60, .data, io/vimodepallan1] +# # - [0xF52DB0, .data, io/vimodempallan1] +# # - [0xF52DB0, .data, io/vimodentsclan1] + - [0xF766D0, .rodata, code_1D00] + - [0xF766F0, .rodata, code_3250] + - [0xF76700, .rodata, code_3A70] + - [0xF76710, .rodata, code_5650] + - [0xF76770, .rodata, code_72B0] + - [0xF76790, .rodata, code_7F60] + - [0xF767B0, bin, remain_core1_rodata] +# # - [0xF52F30, .rodata, code_9D30] +# # - [0xF52F50, .rodata, code_CE60] +# # - [0xF53220, .rodata, code_EAF0] +# # - [0xF532A0, .rodata, code_10A00] +# # - [0xF539B0, .rodata, code_11AC0] +# # - [0xF539C0, .rodata, rumblemanager] +# # - [0xF539D0, .rodata, overlaymanager] +# # - [0xF53A50, .rodata, code_13990] +# # - [0xF53A70, .rodata, code_18350] +# # - [0xF53B70, .rodata, code_1BE90] +# # - [0xF53BA0, .rodata, code_1D5D0] +# # - [0xF53C00, .rodata, audio/n_synthesizer] +# # - [0xF53C10, .rodata, audio/n_csplayer] +# # - [0xF53F80, .rodata, audio/n_reverb] +# # - [0xF53FB0, .rodata, audio/n_drvrNew] +# # - [0xF53FD0, .rodata, audio/n_env] +# # - [0xF54020, .rodata, audio/n_seqplayer] +# # - [0xF543D0, .rodata, audio/n_resample] +# # - [0xF543E0, .rodata, gu/sinf] +# # - [0xF54430, .rodata, audio/cents2ratio] +# # - [0xF54440, .rodata, gu/cosf] +# # - [0xF54490, .rodata, ultra/setintmask] +# # - [0xF54510, .rodata, gu/rotate] +# # - [0xF54520, .rodata, audio/cseq] +# # - [0xF54530, .rodata, audio/drvrNew] +# # - [0xF54550, .rodata, audio/reverb] +# # - [0xF54580, .rodata, audio/seq] +# # - [0xF54590, .rodata, ultra/exceptasm] +# # - [0xF545E0, hasm, ultra/libm_vals] # Nothing in this file, just here so splat sees it's ASM +# # - [0xF545E0, .rodata, ultra/libm_vals] +# # - [0xF545F0, .rodata, audio/synthesizer] +# # - [0xF54600, .rodata, io/devmgr] +# # - [0xF54620, .rodata, audio/env] +# # - [0xF54670, .rodata, audio/resample] +# # - [0xF546B0, bin, n_aspMain_data] +# # - [0xF54960, bin, gSPF3DEX_fifo_data] +# # - [0xF55160, bin, gSPL3DEX_fifo_data] + - [0xF791D0, .bss, code_0] + - [0xF791D0, .bss, code_660] + - [0xF791D0, .bss, inflate] + - [0xF791D0, .bss, code_1D00] + - [0xF791D0, .bss, code_2BD0] + - [0xF791D0, .bss, defragmanager] + - [0xF791D0, .bss, code_31C0] + - [0xF791D0, .bss, code_5650] + - [0xF791D0, .bss, code_7090] + - [0xF791D0, .bss, code_72B0] +# # - [0xF791D0, .bss, code_8C50] +# # - [0xF791D0, .bss, code_ABB0] +# # - [0xF791D0, .bss, code_CE60] +# # - [0xF791D0, .bss, code_E360] +# # - [0xF791D0, .bss, code_EAF0] +# # - [0xF791D0, .bss, code_10A00] +# # - [0xF791D0, .bss, code_11AC0] +# # - [0xF791D0, .bss, rumblemanager] +# # - [0xF791D0, .bss, code_13640] +# # - [0xF791D0, .bss, overlaymanager] +# # - [0xF791D0, .bss, code_13990] +# # - [0xF791D0, .bss, code_15770] +# # - [0xF791D0, .bss, code_15B30] +# # - [0xF791D0, .bss, memory] +# # - [0xF791D0, .bss, code_18210] +# # - [0xF791D0, .bss, code_1D5D0] +# # - [0xF791D0, .bss, code_1E360] +# # - [0xF791D0, .bss, os/initialize] +# # - [0xF791D0, .bss, io/pimgr] +# # - [0xF791D0, .bss, io/sptask] +# # - [0xF791D0, .bss, os/seteventmesg] +# # - [0xF791D0, .bss, io/vimgr] +# # - [0xF791D0, .bss, gu/rotate] +# # - [0xF791D0, .bss, io/controller] +# # - [0xF791D0, .bss, io/motor] +# # - [0xF791D0, .bss, io/cartrominit] +# # - [0xF791D0, .bss, io/leodiskinit] +# # - [0xF791D0, .bss, io/piacs] +# # - [0xF791D0, .bss, os/timerintr] +# # - [0xF791D0, .bss, io/siacs] +# # - [0xF791D0, .bss, io/pfsisplug] +# # - [0xF791D0, .bss, io/conteepread] +# # - [0xF791D0, .bss, os/kdebugserver] +# # - [0xF791D0, .bss, io/leointerrupt] +- name: core2 + dir: core2 + type: bin + start: 0x00F791D0 +# # vram: 0x80286DB0 # via https://hack64.net/wiki/doku.php?id=player_kazooie:ram_map +# # follows_vram: core1 +# # subsegments: +# # - [0xF791D0, c, animctrl] #DONE +# # - [0xF56430, c, anim/sprite] #DONE +# # - [0xF56A40, c, animcache] #DONE +# # - [0xF56EB0, c, code_1550] #DONE +# # - [0xF57290, c, code_1930] #DONE +# # - [0xF57BA0, c, code_2240] #DONE +# # - [0xF581F0, c, ba/anim] #DONE +# # - [0xF58DE0, c, snackerctl] #DONE +# # - [0xF59330, c, code_39D0] #DONE +# # - [0xF5A120, c, ba/marker] #DONE +# # - [0xF5C490, c, code_6B30] #DONE +# # - [0xF5C9C0, c, code_7060] #DONE +# # - [0xF5E700, c, code_8DA0] #DONE +# # - [0xF5EA40, c, code_90E0] #DONE +# # - [0xF5EBF0, c, code_9290] #DONE +# # - [0xF5EDB0, c, code_9450] #DONE +# # - [0xF5F260, c, code_9900] #DONE +# # - [0xF5F530, c, code_9BD0] #DONE +# # - [0xF5FF60, c, code_A600] #DONE +# # - [0xF60040, c, statetimer] #DONE +# # - [0xF602C0, c, code_A960] #DONE +# # - [0xF603C0, c, ba/model] #DONE +# # - [0xF60FB0, c, ba/drone] #DONE +# # - [0xF611B0, c, code_B850] #DONE +# # - [0xF614B0, c, eggshatter] #DONE +# # - [0xF61680, c, code_BD20] #DONE +# # - [0xF61A40, c, ba/falldamage] #DONE +# # - [0xF61D50, c, code_C3F0] #DONE +# # - [0xF61E10, c, code_C4B0] +# # - [0xF63160, c, ba/carry] #DONE +# # - [0xF63310, c, code_D9B0] #DONE +# # - [0xF638D0, c, code_DF70] #DONE +# # - [0xF63D70, c, code_E410] #DONE +# # - [0xF63FE0, c, abilityprogress] #DONE +# # - [0xF64270, c, code_E910] #DONE +# # - [0xF647A0, c, code_EE40] #DONE +# # - [0xF648B0, c, code_EF50] #DONE +# # - [0xF656C0, c, ba/physics] #DONE +# # - [0xF66630, c, code_10CD0] #DONE +# # - [0xF66700, c, pitch] #DONE +# # - [0xF669A0, c, code_11040] #DONE +# # - [0xF66BB0, c, climb] #DONE +# # - [0xF66DC0, c, code_11460] #DONE +# # - [0xF66FC0, c, code_11660] #DONE +# # - [0xF67130, c, code_117D0] #DONE +# # - [0xF671D0, c, code_11870] #DONE +# # - [0xF674A0, c, roll] #DONE +# # - [0xF67740, c, yaw] #DONE +# # - [0xF67CC0, c, code_12360] #DONE +# # - [0xF68020, c, code_126C0] #DONE +# # - [0xF68890, c, code_12F30] +# # - [0xF68FD0, c, bsList] #DONE +# # - [0xF690E0, c, code_13780] #DONE +# # - [0xF69260, c, bsStoredState] #DONE +# # - [0xF69360, c, code_13A00] #DONE +# # - [0xF69920, c, code_13FC0] #DONE +# # - [0xF69D80, c, code_14420] #DONE +# # - [0xF6B880, c, code_15F20] #DONE +# # - [0xF6B970, c, code_16010] #DONE +# # - [0xF6C5C0, c, code_16C60] #DONE +# # - [0xF6CB50, c, code_171F0] #DONE +# # - [0xF6CDB0, c, bs/ant] #DONE +# # - [0xF6DEB0, c, bs/bBarge] #DONE +# # - [0xF6E4F0, c, bs/bbuster] #DONE +# # - [0xF6EC90, c, bs/bee] #DONE +# # - [0xF6EEC0, c, bs/beeFly] #DONE +# # - [0xF6F960, c, bs/beeMain] #DONE +# # - [0xF70B40, c, bs/bEggAss] #DONE +# # - [0xF70DB0, c, bs/bEggHead] #DONE +# # - [0xF71060, c, bs/bFlap] #DONE +# # - [0xF71730, c, bs/bFlip] #DONE +# # - [0xF71D20, c, bs/bFly] #DONE +# # - [0xF73BA0, c, bs/bLongLeg] #DONE +# # - [0xF74EE0, c, bs/bPeck] #DONE +# # - [0xF75380, c, bs/bShock] #DONE +# # - [0xF75B10, c, bs/bSwim] #DONE +# # - [0xF77190, c, bs/bTrot] #DONE +# # - [0xF78DD0, c, bs/bWhirl] #DONE +# # - [0xF79850, c, bs/carry] #DONE +# # - [0xF79C50, c, bs/claw] #DONE +# # - [0xF79F90, c, bs/climb] #DONE +# # - [0xF7A790, c, bs/croc] #DONE +# # - [0xF7C0A0, c, bs/crouch] #DONE +# # - [0xF7C7D0, c, bs/die] #DONE +# # - [0xF7CD40, c, bs/drone] #DONE +# # - [0xF7CEB0, c, bs/droneenter] #DONE +# # - [0xF7D530, c, bs/dronegoto] #DONE +# # - [0xF7D8A0, c, bs/dronelook] #DONE +# # - [0xF7DB80, c, bs/dronevanish] #DONE +# # - [0xF7E170, c, bs/dronexform] #DONE +# # - [0xF7F430, c, bs/jig] #DONE +# # - [0xF7FAD0, c, bs/jump] #DONE +# # - [0xF809A0, c, bs/ow] #DONE +# # - [0xF80BA0, c, bs/pumpkin] #DONE +# # - [0xF81FA0, c, bs/rebound] #DONE +# # - [0xF82420, c, bs/rest] #DONE +# # - [0xF828F0, c, bs/sled] #DONE +# # - [0xF82AA0, c, bs/slide] #DONE +# # - [0xF82F40, c, bs/splat] #DONE +# # - [0xF83240, c, bs/stand] #DONE +# # - [0xF83E50, c, bs/swim] #DONE +# # - [0xF849A0, c, bs/surf] #DONE +# # - [0xF84B00, c, bs/talk] #DONE +# # - [0xF84C40, c, bs/timeout] #DONE +# # - [0xF84F10, c, bs/throw] #DONE +# # - [0xF85130, c, bs/turn] #DONE +# # - [0xF85410, c, bs/twirl] #DONE +# # - [0xF856D0, c, bs/walk] #DONE +# # - [0xF867D0, c, bs/walrus] #DONE +# # - [0xF88350, c, bs/washy] #DONE +# # - [0xF88710, c, nc/cameranodelist] #DONE +# # - [0xF88BB0, c, code_33250] #DONE +# # - [0xF88BB0, c, code_33310] #DONE +# # - [0xF89050, c, code_336F0] #DONE +# # - [0xF89410, c, code_33AB0] #DONE +# # - [0xF89590, c, code_33C30] #DONE +# # - [0xF896A0, c, nc/staticCamera] #DONE +# # - [0xF898F0, c, code_33F90] #DONE +# # - [0xF89C70, c, code_34310] #DONE +# # - [0xF8A0F0, c, code_34790] #DONE +# # - [0xF8AE80, c, code_35520] #DONE +# # - [0xF8B010, c, nc/dynamicCamera] #DONE +# # - [0xF8D310, c, code_379B0] #DONE +# # - [0xF8D630, c, nc/randomCamera] #DONE +# # - [0xF8D7B0, c, code_37E50] #DONE +# # - [0xF8DAB0, c, nc/dynamicCam10] #DONE +# # - [0xF8DC40, c, nc/dynamicCamD] #DONE +# # - [0xF8DDC0, c, nc/dynamicCam5] #DONE +# # - [0xF8DF90, c, nc/dynamicCam11] #DONE +# # - [0xF8E240, c, nc/dynamicCam8] #DONE +# # - [0xF8E430, c, nc/dynamicCam4] #DONE +# # - [0xF8E8A0, c, nc/dynamicCamC] #DONE +# # - [0xF8EAF0, c, code_F8EAF0] #DONE +# # - [0xF8ED40, c, nc/dynamicCamB] #DONE +# # - [0xF8F010, c, nc/dynamicCam13] #DONE +# # - [0xF8F370, c, nc/dynamicCam9] #DONE +# # - [0xF8F850, c, nc/dynamicCam12] #DONE +# # - [0xF90280, c, nc/dynamicCam1] #DONE +# # - [0xF904A0, c, nc/dynamicCam3] #DONE +# # - [0xF90770, c, nc/dynamicCamA] #DONE +# # - [0xF90C20, c, code_3B2C0] #DONE +# # - [0xF90E30, c, nc/dynamicCamF] #DONE +# # - [0xF90F20, c, nc/firstpersoncamera] #DONE +# # - [0xF914E0, c, spawnqueue] #DONE +# # - [0xF92D30, c, ch/gameSelect] #DONE +# # - [0xF94430, c, code_3EAD0] #DONE +# # - [0xF94590, c, code_3EC30] #DONE +# # - [0xF94640, c, ch/bubble] #DONE +# # - [0xF94850, c, ch/bigbutt] #DONE +# # - [0xF95A50, c, code_400F0] #DONE +# # - [0xF96400, c, ch/jiggy] #DONE +# # - [0xF96A90, c, ch/jigsawdance] #DONE +# # - [0xF96DC0, c, code_41460] #DONE +# # - [0xF97890, c, code_41F30] #DONE +# # - [0xF97910, c, code_41FB0] #DONE +# # - [0xF98600, c, ch/musicnote] #DONE +# # - [0xF98610, c, code_42CB0] #DONE +# # - [0xF98BB0, c, code_43250] #DONE +# # - [0xF98CF0, c, ch/trainers] #DONE +# # - [0xF99160, c, code_43800] #DONE +# # - [0xF993A0, c, code_43A40] #DONE +# # - [0xF99630, c, mapspecificflags] #DONE +# # - [0xF99A10, c, ch/crab] #DONE +# # - [0xF9AC70, c, code_45310] #DONE +# # - [0xF9C240, c, ch/code_468E0] #DONE +# # - [0xF9C520, c, ch/jinjo] #DONE +# # - [0xF9D1B0, c, ch/beehive] #DONE +# # - [0xF9D530, c, code_47BD0] #DONE +# # - [0xF9EED0, c, ch/soundsource] #DONE +# # - [0xF9F3D0, c, ch/shrapnel] #DONE +# # - [0xF9FD80, c, ch/gloop] #DONE +# # - [0xFA0050, c, code_4A6F0] #DONE +# # - [0xFA16D0, c, code_4BD70] #DONE +# # - [0xFA1770, c, code_4BE10] #DONE +# # - [0xFA1980, c, code_4C020] #DONE +# # - [0xFA54E0, c, ch/wadingboots] #DONE +# # - [0xFA5870, c, ch/badShad] #DONE +# # - [0xFA5DF0, c, code_50490] #DONE +# # - [0xFA60B0, c, ch/climbBase] #DONE +# # - [0xFA6330, c, code_509D0] #DONE +# # - [0xFA7100, c, code_517A0] #DONE +# # - [0xFA72B0, c, code_51950] #DONE +# # - [0xFA75F0, c, ch/collectible] #DONE +# # - [0xFA7BF0, c, ch/mole] #DONE +# # - [0xFA8F30, c, ch/molehill] #DONE +# # - [0xFA9370, c, code_53A10] #DONE +# # - [0xFA9570, c, code_53C10] #DONE +# # - [0xFAA6B0, c, code_54D50] #DONE +# # - [0xFAAAE0, c, code_55180] #DONE +# # - [0xFAACF0, c, code_55390] #DONE +# # - [0xFAB020, c, code_556C0] #DONE +# # - [0xFAB1B0, c, code_55850] #DONE +# # - [0xFAB3F0, c, ch/overlaycopyright] #DONE +# # - [0xFAB520, c, ch/overlaypressstart] #DONE +# # - [0xFAB780, c, ch/overlaynocontroller] #DONE +# # - [0xFABA50, c, ch/bottlesbonus] #DONE +# # - [0xFAD5D0, c, code_57C70] #DONE +# # - [0xFADB30, c, code_581D0] #DONE +# # - [0xFADE30, c, ch/bottlesbonuscursor] #DONE +# # - [0xFAF0E0, c, code_59780] #DONE +# # - [0xFAF340, c, code_599E0] #DONE +# # - [0xFAF3E0, c, code_59A80] #DONE +# # - [0xFAF6A0, c, ch/snacker] #DONE +# # - [0xFB0490, c, ch/snowman] #DONE +# # - [0xFB1000, c, ch/snowball] #DONE +# # - [0xFB16F0, c, ch/snowmanhat] #DONE +# # - [0xFB1810, c, code_5BEB0] +# # - [0xFB1BA0, c, code_5C240] #DONE +# # - [0xFB21D0, c, code_5C870] #DONE +# # - [0xFB3520, c, code_5DBC0] #DONE +# # - [0xFB5460, c, code_5FB00] #DONE +# # - [0xFB56E0, c, code_5FD80] #DONE +# # - [0xFB56F0, c, code_5FD90] #DONE +# # - [0xFB8930, c, code_62FD0] #DONE +# # - [0xFB8A30, c, code_630D0] #DONE +# # - [0xFB8D70, c, code_63410] #DONE +# # - [0xFB8FF0, c, code_63690] #DONE +# # - [0xFB9130, c, code_637D0] #DONE +# # - [0xFBAE20, c, code_654C0] #DONE +# # - [0xFBBDF0, c, code_66490] #DONE +# # - [0xFBBFF0, c, vla] #DONE +# # - [0xFBC410, c, fla] #DONE +# # - [0xFBC6F0, c, code_66D90] #DONE +# # - [0xFBC910, c, code_66FB0] #DONE +# # - [0xFBCDF0, c, gc/bound] #DONE +# # - [0xFBCFB0, c, code_67650] #DONE +# # - [0xFBD300, c, particle] #DONE +# # - [0xFBF8C0, c, code_69F60] #DONE +# # - [0xFBFE10, c, code_6A4B0] +# # - [0xFC0850, c, code_6AEF0] #DONE +# # - [0xFC0990, c, code_6B030] #DONE +# # - [0xFC1D40, c, fx/ripple] #DONE +# # - [0xFC2040, c, fx/sparkle] #DONE +# # - [0xFC2680, c, code_6CD20] #DONE +# # - [0xFC2820, c, code_6CEC0] #DONE +# # - [0xFC2990, c, code_6D030] #DONE +# # - [0xFC2BD0, c, code_6D270] #DONE +# # - [0xFC2DF0, c, code_6D490] #DONE +# # - [0xFC3390, c, code_6DA30] +# # - [0xFC6590, c, code_70C30] #DONE +# # - [0xFC6880, c, code_70F20] #DONE +# # - [0xFC7180, c, code_71820] #DONE +# # - [0xFC79C0, c, code_72060] #DONE +# # - [0xFC8470, c, code_72B10] #DONE +# # - [0xFC8FA0, c, code_73640] #DONE +# # - [0xFC99F0, c, code_74090] #DONE +# # - [0xFC9BF0, c, code_74290] #DONE +# # - [0xFC9D80, c, code_74420] #DONE +# # - [0xFCA270, c, code_74910] #DONE +# # - [0xFCA830, c, code_74ED0] #DONE +# # - [0xFCADE0, c, code_75480] #DONE +# # - [0xFCB290, c, code_75930] #DONE +# # - [0xFCB7F0, c, code_75E90] #DONE +# # - [0xFCBCF0, c, fx/common1score] #DONE +# # - [0xFCBD30, c, fx/common2score] #DONE +# # - [0xFCC6F0, c, fx/honeycarrierscore] #DONE +# # - [0xFCD7B0, c, code_77E50] #DONE +# # - [0xFCDA60, c, fx/jinjoscore] #DONE +# # - [0xFCE7B0, c, fx/lifescore] #DONE +# # - [0xFCF190, c, fx/common3score] #DONE +# # - [0xFCF5E0, c, fx/healthscore] #DONE +# # - [0xFD00C0, c, fx/airscore] #DONE +# # - [0xFD08E0, c, code_7AF80] +# # - [0xFD7960, c, mapModel] #DONE +# # - [0xFD8CA0, c, code_83340] #DONE +# # - [0xFD96D0, c, gc/section] #DONE +# # - [0xFD9A30, c, gc/sky] #DONE +# # - [0xFD9DD0, c, gc/transition] #DONE +# # - [0xFDAB30, c, code_851D0] #DONE +# # - [0xFDB110, c, code_857B0] #DONE +# # - [0xFDB160, c, code_85800] #DONE +# # - [0xFDD790, c, gc/dialog] +# # - [0xFE0110, c, gc/pauseMenu] #DONE +# # - [0xFE3580, c, code_8DC20] #DONE +# # - [0xFE3BD0, c, gc/zoombox] #DONE +# # - [0xFE7770, c, code_91E10] #DONE +# # - [0xFE8F50, c, code_935F0] #DONE #chminigmae +# # - [0xFE9570, c, gc/parade] #DONE +# # - [0xFE9F80, c, code_94620] #DONE +# # - [0xFEA0E0, c, code_94780] #DONE +# # - [0xFEA380, c, code_94A20] #DONE +# # - [0xFEB010, c, code_956B0] #DONE +# # - [0xFEE610, c, code_98CB0] +# # - [0xFEF1C0, c, quizquestionaskedbitfield] #DONE +# # - [0xFEF300, c, code_999A0] #DONE +# # - [0xFEF8E0, c, jiggyscore] #DONE +# # - [0xFEFC80, c, honeycombscore] #DONE +# # - [0xFEFEE0, c, mumboscore] #DONE +# # - [0xFF00A0, c, code_9A740] #DONE +# # - [0xFF0330, c, code_9A9D0] #DONE +# # - [0xFF0660, c, levelspecificflags] #DONE +# # - [0xFF0AE0, c, code_9B180] #DONE +# # - [0xFF0FB0, c, code_9B650] #DONE +# # - [0xFF12F0, c, code_9B990] #DONE +# # - [0xFF1AD0, c, code_9C170] #DONE +# # - [0xFF2FA0, c, code_9D640] #DONE +# # - [0xFF30C0, c, code_9D760] #DONE +# # - [0xFF31C0, c, timedfuncqueue] #DONE +# # - [0xFF3CD0, c, code_9E370] +# # - [0xFFA660, c, code_A4D00] #DONE +# # - [0xFFB520, c, code_A5BC0] +# # - [0x1001560, c, code_ABC00] #DONE +# # - [0x1001E80, c, code_AC520] #DONE +# # - [0x1002A70, c, code_AD110] #DONE +# # - [0x1002F10, c, code_AD5B0] #DONE +# # - [0x1003BF0, c, code_AE290] #DONE +# # - [0x1003F30, c, skeletalanim] #DONE +# # - [0x1004700, c, code_AEDA0] +# # - [0x1006D60, c, modelRender] +# # - [0x1008EE0, c, code_B3580] #DONE +# # - [0x10093E0, c, code_B3A80] #DONE +# # - [0x100A9A0, c, code_B5040] #DONE +# # - [0x100B760, c, code_B5E00] #DONE +# # - [0x100BC10, c, code_B62B0] #DONE +# # - [0x100BFA0, c, code_B6640] #DONE +# # - [0x100C030, c, string] #DONE +# # - [0x100C5C0, c, code_B6C60] #DONE +# # - [0x100C640, c, code_B6CE0] #DONE +# # - [0x100C800, c, code_B6EA0] #DONE +# # - [0x100D480, c, code_B7B20] #DONE +# # - [0x100D8A0, c, code_B7F40] #DONE +# # - [0x100D980, c, code_B8020] #DONE +# # - [0x100D9D0, c, code_B8070] #DONE +# # - [0x100D9E0, c, code_B8080] #DONE +# # - [0x100E1C0, c, code_B8860] #DONE +# # - [0x100E9F0, c, code_B9090] #DONE +# # - [0x100F0D0, c, code_B9770] +# # - [0x1012A60, c, code_BD100] #DONE +# # - [0x1013620, c, code_BDCC0] #DONE +# # - [0x1013C20, c, code_BE2C0] #DONE +# # - [0x1014880, c, code_BEF20] +# # - [0x10164E0, c, code_C0B80] #DONE +# # - [0x1016650, c, code_C0CF0] #DONE +# # - [0x10167C0, c, code_C0E60] #DONE +# # - [0x1018580, c, animtexturecache] #DONE +# # - [0x1018890, c, code_C2F30] #DONE +# # - [0x1018B00, c, code_C31A0] #DONE +# # - [0x1018D60, c, rand] #DONE +# # - [0x10193A0, c, code_C3A40] #DONE +# # - [0x1019480, c, code_C3B20] #DONE +# # - [0x1019C80, c, code_C4320] #DONE +# # - [0x101A8A0, c, code_C4F40] #DONE +# # - [0x101ADA0, c, code_C5440] #DONE +# # - [0x101B450, c, code_C5AF0] #DONE +# # - [0x101B620, c, code_C5CC0] #DONE +# # - [0x101B860, c, code_C5F00] #DONE +# # - [0x101BB20, c, code_C61C0] #DONE +# # - [0x101BC10, c, code_C62B0] #DONE +# # - [0x101D030, c, code_C76D0] #DONE +# # - [0x101D620, c, code_C7CC0] #DONE +# # - [0x101DB90, c, code_C8230] #DONE +# # - [0x101DCC0, c, code_C8360] #DONE +# # - [0x101DDF0, c, code_C8490] #DONE +# # - [0x101E0C0, c, code_C8760] #DONE +# # - [0x101E320, c, code_C89C0] #DONE +# # - [0x101F150, c, code_C97F0] #DONE +# # - [0x101F7D0, c, code_C9E70] #DONE +# # - [0x101F860, c, code_C9F00] #DONE +# # - [0x10209B0, c, code_CB050] #DONE +# # - [0x1020F70, c, code_CB610] #DONE +# # - [0x1021200, c, code_CB8A0] #DONE +# # - [0x1021550, c, code_CBBF0] #DONE +# # - [0x1021670, c, code_CBD10] #DONE +# # - [0x1021B40, c, code_CC1E0] #DONE +# # - [0x1022A00, c, code_CD0A0] #DONE +# # - [0x1022D50, c, code_CD3F0] #DONE +# # - [0x1023040, c, code_CD6E0] #DONE +# # - [0x1024630, c, code_CECD0] #DONE +# # - [0x10249F0, c, code_CF090] #DONE +# # - [0x1024D40, c, code_CF3E0] #DONE +# # - [0x1024F50, c, code_CF5F0] #DONE +# # - [0x1025140, c, ch/clankerwhipcrack] #DONE +# # - [0x10253C0, c, ch/code_CFA60] #DONE +# # - [0x1025B20, c, ch/clucker] #DONE +# # - [0x1026600, c, code_D0CA0] #DONE +# # - [0x1027AE0, c, code_D2180] #DONE +# # - [0x1027E60, c, ch/firefx] #DONE +# # - [0x1028410, c, ch/drips] #DONE +# # - [0x1028770, c, ch/icecube] #DONE +# # - [0x10299B0, c, ch/ghost] #DONE +# # - [0x102AA50, c, ch/flotsam] #DONE +# # - [0x102B670, c, code_D5D10] #DONE +# # - [0x102B930, c, code_D5FD0] #DONE +# # - [0x102BAE0, c, code_D6180] #DONE +# # - [0x102BF60, c, code_D6600] #DONE +# # - [0x102C9A0, c, ch/termite] #DONE +# # - [0x102D670, c, ch/gravestone] #DONE +# # - [0x102E340, c, code_D89E0] +# # - [0x102F700, c, ch/whipcrack] #DONE +# # - [0x102FD00, c, code_DA3A0] #DONE +# # - [0x10300C0, c, code_DA760] #DONE +# # - [0x1030400, c, code_DAAA0] #DONE +# # - [0x1030970, c, code_DB010] #DONE +# # - [0x1031E10, c, code_DC4B0] #DONE +# # - [0x1031F60, bin, data_DC600] #unreferenced +# # - [0x1031F90, .data, code_1550] +# # - [0x1031FB0, .data, ba/anim] +# # - [0x1031FE0, .data, snackerctl] +# # - [0x1032000, .data, ba/marker] +# # - [0x1032060, .data, code_7060] +# # - [0x10320A0, .data, code_90E0] +# # - [0x1032150, .data, ba/model] +# # - [0x1032150, .data, code_B850] +# # - [0x1032170, .data, eggshatter] +# # - [0x10321C0, .data, ba/falldamage] +# # - [0x10321F0, .data, code_E910] +# # - [0x1032E10, .data, ba/physics] +# # - [0x1032E20, .data, code_117D0] +# # - [0x1032F30, .data, code_126C0] +# # - [0x1032F50, .data, code_12F30] +# # - [0x1032FF0, .data, code_14420] +# # - [0x1033330, .data, bs/ant] +# # - [0x1033360, .data, bs/bbuster] +# # - [0x1033380, .data, bs/beeFly] +# # - [0x10333B0, .data, bs/beeMain] +# # - [0x10333E0, .data, bs/bFlap] +# # - [0x10333F0, .data, bs/bFlip] +# # - [0x1033410, .data, bs/bLongLeg] +# # - [0x1033430, .data, bs/bPeck] +# # - [0x1033440, .data, bs/bShock] +# # - [0x1033450, bin, data_DDAF0] #unreferenced +# # - [0x1033460, .data, bs/bTrot] +# # - [0x10334A0, .data, bs/bWhirl] +# # - [0x10334C0, .data, bs/carry] +# # - [0x10334D0, .data, bs/croc] +# # - [0x1033500, .data, bs/drone] +# # - [0x1033580, .data, bs/dronexform] +# # - [0x10336A0, .data, bs/jump] +# # - [0x10336C0, .data, bs/pumpkin] +# # - [0x10336F0, .data, bs/stand] +# # - [0x1033710, .data, bs/swim] +# # - [0x1033740, .data, bs/walk] +# # - [0x1033790, .data, bs/walrus] +# # - [0x10337D0, .data, code_33F90] +# # - [0x1034160, .data, code_34310] +# # - [0x10341B0, .data, code_34790] +# # - [0x1034200, .data, code_35520] +# # - [0x10346A0, .data, nc/dynamicCamera] +# # - [0x1034730, .data, code_37E50] +# # - [0x1034760, .data, nc/dynamicCamD] +# # - [0x1034770, .data, nc/dynamicCamA] +# # - [0x1034790, .data, spawnqueue] +# # - [0x10347A0, .data, ch/gameSelect] +# # - [0x1034900, .data, code_3EAD0] +# # - [0x1034980, .data, code_3EC30] +# # - [0x10349B0, .data, ch/bubble] +# # - [0x10349E0, .data, ch/bigbutt] +# # - [0x1034AC0, .data, code_400F0] +# # - [0x1034C60, .data, ch/jiggy] +# # - [0x1034CA0, .data, ch/jigsawdance] +# # - [0x1034D00, .data, code_41460] +# # - [0x1034E00, .data, code_41F30] +# # - [0x1034E30, .data, code_41FB0] +# # - [0x1035620, .data, ch/musicnote] +# # - [0x1035650, .data, code_42CB0] +# # - [0x10356A0, .data, code_43250] +# # - [0x1035870, .data, ch/trainers] +# # - [0x10358C0, .data, code_43800] +# # - [0x10358F0, .data, code_43A40] +# # - [0x10359D0, .data, mapspecificflags] +# # - [0x10359E0, .data, ch/crab] +# # - [0x1035B00, .data, code_45310] +# # - [0x1035B30, .data, ch/code_468E0] +# # - [0x1035B80, .data, ch/jinjo] +# # - [0x1035C90, .data, ch/beehive] +# # - [0x1035CE0, .data, code_47BD0] +# # - [0x1035D10, .data, ch/soundsource] +# # - [0x1035D90, .data, ch/shrapnel] +# # - [0x1035E00, .data, ch/gloop] +# # - [0x1035E60, .data, code_4A6F0] +# # - [0x1035F00, .data, code_4BD70] +# # - [0x1035FC0, .data, code_4BE10] +# # - [0x1036050, .data, code_4C020] +# # - [0x10363D0, .data, ch/wadingboots] +# # - [0x1036420, .data, ch/badShad] +# # - [0x1036450, .data, code_50490] +# # - [0x10364F0, .data, ch/climbBase] +# # - [0x1036520, .data, code_509D0] +# # - [0x1036630, .data, code_517A0] +# # - [0x1036660, .data, code_51950] +# # - [0x10366D0, .data, ch/collectible] +# # - [0x1036740, .data, ch/mole] +# # - [0x10367D0, .data, ch/molehill] +# # - [0x1036840, .data, code_53A10] +# # - [0x1036870, .data, code_53C10] +# # - [0x1036900, .data, code_54D50] +# # - [0x10369B0, .data, code_55180] +# # - [0x1036A10, .data, code_55390] +# # - [0x1036A40, .data, code_556C0] +# # - [0x1036A70, .data, code_55850] +# # - [0x1036AA0, .data, ch/overlaycopyright] +# # - [0x1036AD0, .data, ch/overlaypressstart] +# # - [0x1036B20, .data, ch/overlaynocontroller] +# # - [0x1036B70, .data, ch/bottlesbonus] +# # - [0x1036CD0, .data, code_57C70] +# # - [0x1036D30, .data, code_581D0] +# # - [0x1036D80, .data, ch/bottlesbonuscursor] +# # - [0x1036E10, .data, code_59780] +# # - [0x1036F70, .data, code_59A80] +# # - [0x1036FA0, .data, ch/snacker] +# # - [0x1037020, .data, ch/snowman] +# # - [0x10370E0, .data, ch/snowball] +# # - [0x1037190, .data, ch/snowmanhat] +# # - [0x10371C0, .data, code_5C870] +# # - [0x1037200, .data, code_5DBC0] +# # - [0x1037220, .data, code_66D90] +# # - [0x1037230, .data, code_66FB0] +# # - [0x10372B0, .data, gc/bound] +# # - [0x1037300, .data, code_67650] +# # - [0x1037310, .data, particle] +# # - [0x10373A0, .data, code_6A4B0] +# # - [0x1037470, .data, code_6AEF0] +# # - [0x1037480, .data, code_6B030] +# # - [0x1037500, .data, fx/ripple] +# # - [0x10375A0, .data, fx/sparkle] +# # - [0x1037750, .data, code_6CD20] +# # - [0x10377A0, .data, code_6D030] +# # - [0x10377B0, .data, code_6D270] +# # - [0x10377C0, .data, code_6D490] +# # - [0x10379D0, .data, code_6DA30] +# # - [0x1037C50, .data, code_72060] +# # - [0x1037CB0, .data, code_73640] +# # - [0x10380F0, .data, code_74090] +# # - [0x10381A0, .data, code_74290] +# # - [0x10381D0, .data, code_74420] +# # - [0x1038200, .data, code_74910] +# # - [0x1038230, .data, code_74ED0] +# # - [0x1038260, .data, code_75480] +# # - [0x1038290, .data, code_75930] +# # - [0x10382C0, .data, code_75E90] +# # - [0x10382F0, .data, fx/common2score] +# # - [0x10389E0, .data, fx/honeycarrierscore] +# # - [0x1038A40, .data, fx/jinjoscore] +# # - [0x1038C30, .data, fx/lifescore] +# # - [0x1038C80, .data, fx/common3score] +# # - [0x10392E0, .data, fx/healthscore] +# # - [0x1039330, .data, fx/airscore] +# # - [0x1039380, .data, code_7AF80] +# # - [0x10395B0, .data, mapModel] +# # - [0x103A1D0, .data, code_83340] +# # - [0x103A1E0, .data, gc/section] +# # - [0x103A710, .data, gc/sky] +# # - [0x103AB20, .data, gc/transition] +# # - [0x103AE20, .data, code_851D0] +# # - [0x103AEA0, .data, gc/dialog] +# # - [0x103AEB0, .data, gc/pauseMenu] +# # - [0x103B000, .data, code_8DC20] +# # - [0x103B090, .data, gc/zoombox] +# # - [0x103C310, .data, code_91E10] +# # - [0x103C340, .data, code_935F0] +# # - [0x103C370, .data, gc/parade] +# # - [0x103C790, .data, code_94A20] +# # - [0x103C7A0, .data, code_956B0] +# # - [0x103C7C0, .data, code_98CB0] +# # - [0x103C7D0, .data, code_9B180] +# # - [0x103C850, .data, code_9B650] +# # - [0x103CC90, .data, code_9B990] +# # - [0x103CDF0, .data, code_9D640] +# # - [0x103CF30, .data, code_9E370] +# # - [0x103CFA0, .data, code_A4D00] +# # - [0x103D180, .data, code_A5BC0] #(file needs to be broken?) +# # - [0x103D1D0, .data, code_A5BC0] +# # - [0x103D200, .data, code_ABC00] +# # - [0x103E340, .data, code_AC520] +# # - [0x103E350, .data, code_AD110] +# # - [0x103EC20, .data, code_AD5B0] +# # - [0x103EC30, .data, code_AEDA0] +# # - [0x103ED10, .data, modelRender] +# # - [0x103F3B0, .data, code_B3A80] +# # - [0x103F3F0, .data, code_B5040] +# # - [0x103F490, .data, code_B62B0] +# # - [0x10407F0, .data, code_B6CE0] +# # - [0x1040800, .data, code_B6EA0] +# # - [0x1040830, .data, code_B7F40] +# # - [0x1040840, .data, code_B9770] +# # - [0x1040890, .data, code_BD100] +# # - [0x10408A0, .data, code_BE2C0] +# # - [0x10408B0, bin, data_EAF40] #unreferenced +# # - [0x10408C0, .data, code_C2F30] +# # - [0x10408D0, .data, code_C4320] +# # - [0x1040990, .data, code_C4F40] +# # - [0x1040A00, .data, code_C5440] +# # - [0x1040A70, .data, code_C8760] +# # - [0x1040A80, .data, code_C97F0] +# # - [0x1040F90, .data, code_C9F00] +# # - [0x1041040, .data, code_CBD10] +# # - [0x1041070, .data, code_CC1E0] +# # - [0x1041090, .data, code_CD6E0] +# # - [0x10410C0, .data, code_CECD0] +# # - [0x10410D0, .data, code_CF090] +# # - [0x1041100, .data, code_CF3E0] +# # - [0x10411C0, .data, code_CF5F0] +# # - [0x10411E0, .data, ch/clankerwhipcrack] +# # - [0x1041210, .data, ch/code_CFA60] +# # - [0x1041240, .data, ch/clucker] +# # - [0x1041270, .data, code_D0CA0] +# # - [0x1041310, .data, code_D2180] +# # - [0x1041460, .data, ch/firefx] +# # - [0x1041490, .data, ch/drips] +# # - [0x1041520, .data, ch/icecube] +# # - [0x10415B0, .data, ch/ghost] +# # - [0x1041650, .data, ch/flotsam] +# # - [0x10416F0, .data, code_D5D10] +# # - [0x1041770, .data, code_D5FD0] +# # - [0x10417F0, .data, code_D6180] +# # - [0x1041870, .data, code_D6600] +# # - [0x10418E0, .data, ch/termite] +# # - [0x1041950, .data, ch/gravestone] +# # - [0x1041A60, .data, code_D89E0] +# # - [0x1041AD0, .data, ch/whipcrack] +# # - [0x1041B00, .data, code_DA3A0] +# # - [0x1041B80, .data, code_DA760] +# # - [0x1041BB0, .data, code_DAAA0] +# # - [0x1041CB0, .data, code_DB010] +# # - [0x1042790, .data, code_DC4B0] +# # - [0x10427C0, ".rodata", animctrl] +# # - [0x10427F0, .rodata, anim/sprite] +# # - [0x1042800, .rodata, code_1930] +# # - [0x1042880, .rodata, ba/anim] +# # - [0x1042890, .rodata, snackerctl] +# # - [0x10428A0, .rodata, code_39D0] +# # - [0x1042940, .rodata, ba/marker] +# # - [0x1042D70, .rodata, code_6B30] +# # - [0x1042E60, .rodata, code_7060] +# # - [0x1042F90, .rodata, code_9450] +# # - [0x1042FC0, .rodata, code_9900] +# # - [0x1042FD0, .rodata, code_9BD0] +# # - [0x1043010, .rodata, ba/model] +# # - [0x10430C0, .rodata, ba/drone] +# # - [0x10430D0, .rodata, code_B850] +# # - [0x10430F0, .rodata, code_BD20] +# # - [0x1043110, .rodata, ba/falldamage] +# # - [0x1043130, .rodata, code_C4B0] +# # - [0x1043170, .rodata, code_D9B0] +# # - [0x1043180, .rodata, abilityprogress] +# # - [0x10431B0, .rodata, code_EF50] +# # - [0x1043350, .rodata, ba/physics] +# # - [0x10433B0, .rodata, code_10CD0] +# # - [0x10433C0, .rodata, pitch] +# # - [0x10433F0, .rodata, code_11040] +# # - [0x1043400, .rodata, climb] +# # - [0x1043410, .rodata, code_11660] +# # - [0x10435D0, .rodata, code_11870] +# # - [0x10435E0, .rodata, roll] +# # - [0x1043600, .rodata, yaw] +# # - [0x1043660, .rodata, code_12360] +# # - [0x1043690, .rodata, code_126C0] +# # - [0x10436C0, .rodata, code_12F30] +# # - [0x10436E0, .rodata, code_13FC0] +# # - [0x10436F0, .rodata, code_14420] +# # - [0x1043770, .rodata, code_16010] +# # - [0x1043BD0, .rodata, code_16C60] +# # - [0x1043C70, .rodata, bs/ant] +# # - [0x1043CA0, .rodata, bs/bBarge] +# # - [0x1043CE0, .rodata, bs/bbuster] +# # - [0x1043D20, .rodata, bs/beeFly] +# # - [0x1043D50, .rodata, bs/beeMain] +# # - [0x1043DC0, .rodata, bs/bEggAss] +# # - [0x1043DE0, .rodata, bs/bEggHead] +# # - [0x1043E00, .rodata, bs/bFlap] +# # - [0x1043E70, .rodata, bs/bFlip] +# # - [0x1043EC0, .rodata, bs/bFly] +# # - [0x1043F20, .rodata, bs/bLongLeg] +# # - [0x1043FB0, .rodata, bs/bPeck] +# # - [0x1043FE0, .rodata, bs/bShock] +# # - [0x1044000, .rodata, bs/bSwim] +# # - [0x1044070, .rodata, bs/bTrot] +# # - [0x10440E0, .rodata, bs/bWhirl] +# # - [0x1044110, .rodata, bs/carry] +# # - [0x1044130, .rodata, bs/claw] +# # - [0x1044170, .rodata, bs/climb] +# # - [0x1044180, .rodata, bs/croc] +# # - [0x10441E0, .rodata, bs/crouch] +# # - [0x1044210, .rodata, bs/die] +# # - [0x1044220, .rodata, bs/droneenter] +# # - [0x1044230, .rodata, bs/dronegoto] +# # - [0x1044240, .rodata, bs/dronelook] +# # - [0x1044250, .rodata, bs/dronevanish] +# # - [0x1044260, .rodata, bs/dronexform] +# # - [0x1044310, .rodata, bs/jig] +# # - [0x1044330, .rodata, bs/jump] +# # - [0x1044380, .rodata, bs/ow] +# # - [0x1044390, .rodata, bs/pumpkin] +# # - [0x1044410, .rodata, bs/rebound] +# # - [0x1044420, .rodata, bs/rest] +# # - [0x1044430, .rodata, bs/slide] +# # - [0x1044440, .rodata, bs/stand] +# # - [0x1044470, .rodata, bs/swim] +# # - [0x10444C0, .rodata, bs/surf] +# # - [0x10444D0, .rodata, bs/talk] +# # - [0x10444E0, .rodata, bs/timeout] +# # - [0x10444F0, .rodata, bs/throw] +# # - [0x1044500, .rodata, bs/turn] +# # - [0x1044520, .rodata, bs/twirl] +# # - [0x1044540, .rodata, bs/walk] +# # - [0x10445D0, .rodata, bs/walrus] +# # - [0x1044630, .rodata, bs/washy] +# # - [0x1044690, .rodata, nc/cameranodelist] +# # - [0x10446E0, .rodata, code_33F90] +# # - [0x1044700, .rodata, code_34310] +# # - [0x1044710, .rodata, code_34790] +# # - [0x1044740, .rodata, nc/dynamicCamera] +# # - [0x1044890, .rodata, code_37E50] +# # - [0x10448B0, .rodata, nc/dynamicCam10] +# # - [0x10448C0, .rodata, nc/dynamicCamD] +# # - [0x10448D0, .rodata, nc/dynamicCam5] +# # - [0x10448E0, .rodata, nc/dynamicCam4] +# # - [0x10448F0, .rodata, nc/dynamicCamC] +# # - [0x1044900, .rodata, code_F8EAF0] +# # - [0x1044910, .rodata, nc/dynamicCamB] +# # - [0x1044920, .rodata, nc/dynamicCam13] +# # - [0x1044930, .rodata, nc/dynamicCam9] +# # - [0x1044950, .rodata, nc/dynamicCam12] +# # - [0x1044980, .rodata, nc/dynamicCam3] +# # - [0x1044990, .rodata, nc/dynamicCamA] +# # - [0x10449A0, .rodata, spawnqueue] +# # - [0x10449F0, .rodata, ch/gameSelect] +# # - [0x1044B70, .rodata, ch/bubble] +# # - [0x1044B80, .rodata, ch/bigbutt] +# # - [0x1044C60, .rodata, code_400F0] +# # - [0x1044CC0, .rodata, ch/jiggy] +# # - [0x1044D40, .rodata, ch/jigsawdance] +# # - [0x1044DB0, .rodata, code_41460] +# # - [0x1044DE0, .rodata, code_41FB0] +# # - [0x1044E20, .rodata, ch/musicnote] +# # - [0x1044E30, .rodata, code_42CB0] +# # - [0x1044E40, .rodata, ch/trainers] +# # - [0x1044E50, .rodata, code_43800] +# # - [0x1044E60, .rodata, ch/crab] +# # - [0x1044EB0, .rodata, code_45310] +# # - [0x1044F30, .rodata, ch/jinjo] +# # - [0x1044FA0, .rodata, ch/beehive] +# # - [0x1044FB0, .rodata, code_47BD0] +# # - [0x1045010, .rodata, ch/shrapnel] +# # - [0x1045030, .rodata, ch/gloop] +# # - [0x1045040, .rodata, code_4A6F0] +# # - [0x10450F0, .rodata, code_4C020] +# # - [0x1045710, .rodata, ch/badShad] +# # - [0x1045720, .rodata, code_50490] +# # - [0x1045730, .rodata, code_509D0] +# # - [0x1045770, .rodata, code_517A0] +# # - [0x1045780, .rodata, code_51950] +# # - [0x1045790, .rodata, ch/mole] +# # - [0x1045830, .rodata, code_53C10] +# # - [0x10458A0, .rodata, code_54D50] +# # - [0x10458C0, .rodata, code_55180] +# # - [0x10458D0, .rodata, code_55390] +# # - [0x10458E0, .rodata, ch/overlaypressstart] +# # - [0x10458F0, .rodata, ch/overlaynocontroller] +# # - [0x1045900, .rodata, ch/bottlesbonus] +# # - [0x1045970, .rodata, code_57C70] +# # - [0x1045990, .rodata, code_581D0] +# # - [0x10459A0, .rodata, ch/bottlesbonuscursor] +# # - [0x1045A00, .rodata, code_599E0] +# # - [0x1045A10, .rodata, code_59A80] +# # - [0x1045A20, .rodata, ch/snacker] +# # - [0x1045A70, .rodata, ch/snowman] +# # - [0x1045AA0, .rodata, ch/snowball] +# # - [0x1045AD0, .rodata, code_5C240] +# # - [0x1045AE0, .rodata, code_5C870] +# # - [0x1045B50, .rodata, code_5FD90] +# # - [0x1045B60, .rodata, code_66FB0] +# # - [0x1045B70, .rodata, code_67650] +# # - [0x1045B80, .rodata, particle] +# # - [0x1045BA0, .rodata, code_6A4B0] +# # - [0x1045BB0, .rodata, code_6B030] +# # - [0x1045BC0, .rodata, fx/ripple] +# # - [0x1045BD0, .rodata, fx/sparkle] +# # - [0x1045BE0, .rodata, code_6CEC0] +# # - [0x1045BF0, .rodata, code_6D030] +# # - [0x1045C00, .rodata, code_6D270] +# # - [0x1045C10, .rodata, code_6DA30] +# # - [0x1045C90, .rodata, code_70F20] +# # - [0x1045CF0, .rodata, code_71820] +# # - [0x1045D10, .rodata, code_72060] +# # - [0x1045D30, .rodata, code_73640] +# # - [0x1045D60, .rodata, code_74420] +# # - [0x1045D70, .rodata, fx/common2score] +# # - [0x1045D80, .rodata, fx/honeycarrierscore] +# # - [0x1045DD0, .rodata, fx/jinjoscore] +# # - [0x1045E00, .rodata, fx/jinjoscore] +# # - [0x1045E30, .rodata, fx/common3score] +# # - [0x1045E50, .rodata, fx/healthscore] +# # - [0x1045E60, .rodata, fx/airscore] +# # - [0x1045E80, .rodata, code_7AF80] +# # - [0x1045F40, .rodata, mapModel] +# # - [0x1046100, .rodata, code_83340] +# # - [0x1046110, .rodata, gc/section] +# # - [0x1046E10, .rodata, gc/sky] +# # - [0x1046E20, .rodata, gc/transition] +# # - [0x1046E80, .rodata, code_85800] +# # - [0x1046EA0, .rodata, gc/dialog] +# # - [0x1046F10, .rodata, gc/pauseMenu] +# # - [0x1047250, .rodata, gc/zoombox] +# # - [0x1047320, .rodata, code_91E10] +# # - [0x1047360, .rodata, code_935F0] +# # - [0x1047380, .rodata, gc/parade] +# # - [0x1047700, .rodata, code_94A20] +# # - [0x1047710, .rodata, code_956B0] +# # - [0x1047720, .rodata, code_9A9D0] +# # - [0x1047750, .rodata, code_9B180] +# # - [0x1047770, .rodata, code_9C170] +# # - [0x10477C0, .rodata, code_9E370] +# # - [0x1047840, .rodata, code_A4D00] +# # - [0x1047870, .rodata, code_A5BC0] +# # - [0x1047890, .rodata, code_AD110] +# # - [0x10478B0, .rodata, skeletalanim] +# # - [0x10478C0, .rodata, code_AEDA0] +# # - [0x1047910, .rodata, modelRender] +# # - [0x1047920, .rodata, code_B3A80] +# # - [0x1047930, .rodata, string] +# # - [0x1047950, .rodata, code_B6C60] +# # - [0x1047960, .rodata, code_B6CE0] +# # - [0x1047990, .rodata, code_B9090] +# # - [0x10479C0, .rodata, code_B9770] +# # - [0x1047A50, .rodata, code_BD100] +# # - [0x1047A70, .rodata, code_BDCC0] +# # - [0x1047A90, .rodata, code_BE2C0] +# # - [0x1047AD0, .rodata, code_BEF20] +# # - [0x1047B10, .rodata, code_C0E60] +# # - [0x1047B20, .rodata, rand] +# # - [0x1047B40, .rodata, code_C3A40] +# # - [0x1047B50, .rodata, code_C4320] +# # - [0x1047B70, .rodata, code_C5AF0] +# # - [0x1047B90, .rodata, code_C5CC0] +# # - [0x1047BA0, .rodata, code_C5F00] +# # - [0x1047BD0, .rodata, code_C62B0] +# # - [0x1047C00, .rodata, code_C76D0] +# # - [0x1047C40, .rodata, code_C7CC0] +# # - [0x1047C80, .rodata, code_C8230] +# # - [0x1047C90, .rodata, code_C8360] +# # - [0x1047CA0, .rodata, code_C8490] +# # - [0x1047CC0, .rodata, code_C8760] +# # - [0x1047CD0, .rodata, code_C89C0] +# # - [0x1047D10, .rodata, code_C97F0] +# # - [0x1047D20, .rodata, code_C9F00] +# # - [0x1047D50, .rodata, code_CB050] +# # - [0x1047DC0, .rodata, code_CB610] +# # - [0x1047DE0, .rodata, code_CBD10] +# # - [0x1047E00, .rodata, code_CC1E0] +# # - [0x1047E20, .rodata, code_CD0A0] +# # - [0x1047E40, .rodata, code_CD3F0] +# # - [0x1047E50, .rodata, code_CD6E0] +# # - [0x1047E90, .rodata, code_CECD0] +# # - [0x1047EB0, .rodata, code_CF090] +# # - [0x1047EC0, .rodata, ch/clankerwhipcrack] +# # - [0x1047EE0, .rodata, ch/code_CFA60] +# # - [0x1047F30, .rodata, ch/clucker] +# # - [0x1047FD0, .rodata, code_D0CA0] +# # - [0x1048050, .rodata, code_D2180] +# # - [0x1048060, .rodata, ch/firefx] +# # - [0x10480A0, .rodata, ch/drips] +# # - [0x10480C0, .rodata, ch/icecube] +# # - [0x1048170, .rodata, ch/ghost] +# # - [0x10481E0, .rodata, ch/flotsam] +# # - [0x1048220, .rodata, code_D5D10] +# # - [0x1048230, .rodata, code_D6180] +# # - [0x1048240, .rodata, code_D6600] +# # - [0x1048280, .rodata, ch/termite] +# # - [0x10482F0, .rodata, ch/gravestone] +# # - [0x1048390, .rodata, code_D89E0] +# # - [0x10483C0, .rodata, code_D89E0] +# # - [0x1048430, .rodata, ch/whipcrack] +# # - [0x1048450, .rodata, code_DA3A0] +# # - [0x1048460, .rodata, code_DA760] +# # - [0x1048480, .rodata, code_DB010] +# # - [0x1048560, .bss, anim/sprite] +# # - [0x1048560, .bss, animcache] +# # - [0x1048560, .bss, code_1550] +# # - [0x1048560, .bss, code_1930] +# # - [0x1048560, .bss, ba/anim] +# # - [0x1048560, .bss, snackerctl] +# # - [0x1048560, .bss, code_39D0] +# # - [0x1048560, .bss, ba/marker] +# # - [0x1048560, .bss, code_6B30] +# # - [0x1048560, .bss, code_7060] +# # - [0x1048560, .bss, code_8DA0] +# # - [0x1048560, .bss, code_90E0] +# # - [0x1048560, .bss, code_9290] +# # - [0x1048560, .bss, code_9450] +# # - [0x1048560, .bss, code_9900] +# # - [0x1048560, .bss, code_9BD0] +# # - [0x1048560, .bss, code_A600] +# # - [0x1048560, .bss, statetimer] +# # - [0x1048560, .bss, ba/model] +# # - [0x1048560, .bss, ba/drone] +# # - [0x1048560, .bss, eggshatter] +# # - [0x1048560, .bss, code_BD20] +# # - [0x1048560, .bss, ba/falldamage] +# # - [0x1048560, .bss, code_C3F0] +# # - [0x1048560, .bss, code_C4B0] +# # - [0x1048560, .bss, ba/carry] +# # - [0x1048560, .bss, code_D9B0] +# # - [0x1048560, .bss, code_DF70] +# # - [0x1048560, .bss, code_E410] +# # - [0x1048560, .bss, abilityprogress] +# # - [0x1048560, .bss, code_E910] +# # - [0x1048560, .bss, code_EE40] +# # - [0x1048560, .bss, code_EF50] +# # - [0x1048560, .bss, ba/physics] +# # - [0x1048560, .bss, code_10CD0] +# # - [0x1048560, .bss, pitch] +# # - [0x1048560, .bss, code_11040] +# # - [0x1048560, .bss, climb] +# # - [0x1048560, .bss, code_11460] +# # - [0x1048560, .bss, code_11660] +# # - [0x1048560, .bss, code_117D0] +# # - [0x1048560, .bss, code_11870] +# # - [0x1048560, .bss, roll] +# # - [0x1048560, .bss, yaw] +# # - [0x1048560, .bss, code_12360] +# # - [0x1048560, .bss, code_126C0] +# # - [0x1048560, .bss, code_12F30] +# # - [0x1048560, .bss, bsList] +# # - [0x1048560, .bss, code_13780] +# # - [0x1048560, .bss, bsStoredState] +# # - [0x1048560, .bss, code_13A00] +# # - [0x1048560, .bss, code_13FC0] +# # - [0x1048560, .bss, code_14420] +# # - [0x1048560, .bss, code_15F20] +# # - [0x1048560, .bss, code_16010] +# # - [0x1048560, .bss, code_16C60] +# # - [0x1048560, .bss, code_171F0] +# # - [0x1048560, .bss, bs/ant] +# # - [0x1048560, .bss, bs/bBarge] +# # - [0x1048560, .bss, bs/bbuster] +# # - [0x1048560, .bss, bs/beeFly] +# # - [0x1048560, .bss, bs/beeMain] +# # - [0x1048560, .bss, bs/bEggAss] +# # - [0x1048560, .bss, bs/bEggHead] +# # - [0x1048560, .bss, bs/bFlap] +# # - [0x1048560, .bss, bs/bFlip] +# # - [0x1048560, .bss, bs/bFly] +# # - [0x1048560, .bss, bs/bLongLeg] +# # - [0x1048560, .bss, bs/bPeck] +# # - [0x1048560, .bss, bs/bShock] +# # - [0x1048560, .bss, bs/bSwim] +# # - [0x1048560, .bss, bs/bTrot] +# # - [0x1048560, .bss, bs/bWhirl] +# # - [0x1048560, .bss, bs/claw] +# # - [0x1048560, .bss, bs/climb] +# # - [0x1048560, .bss, bs/croc] +# # - [0x1048560, .bss, bs/crouch] +# # - [0x1048560, .bss, bs/die] +# # - [0x1048560, .bss, bs/droneenter] +# # - [0x1048560, .bss, bs/dronegoto] +# # - [0x1048560, .bss, bs/dronevanish] +# # - [0x1048560, .bss, bs/dronexform] +# # - [0x1048560, .bss, bs/jig] +# # - [0x1048560, .bss, bs/jump] +# # - [0x1048560, .bss, bs/ow] +# # - [0x1048560, .bss, bs/pumpkin] +# # - [0x1048560, .bss, bs/rebound] +# # - [0x1048560, .bss, bs/sled] +# # - [0x1048560, .bss, bs/slide] +# # - [0x1048560, .bss, bs/splat] +# # - [0x1048560, .bss, bs/stand] +# # - [0x1048560, .bss, bs/swim] +# # - [0x1048560, .bss, bs/surf] +# # - [0x1048560, .bss, bs/talk] +# # - [0x1048560, .bss, bs/throw] +# # - [0x1048560, .bss, bs/turn] +# # - [0x1048560, .bss, bs/twirl] +# # - [0x1048560, .bss, bs/walk] +# # - [0x1048560, .bss, bs/walrus] +# # - [0x1048560, .bss, bs/washy] +# # - [0x1048560, .bss, nc/cameranodelist] +# # - [0x1048560, .bss, code_33C30] +# # - [0x1048560, .bss, nc/staticCamera] +# # - [0x1048560, .bss, code_34310] +# # - [0x1048560, .bss, code_34790] +# # - [0x1048560, .bss, code_35520] +# # - [0x1048560, .bss, nc/dynamicCamera] +# # - [0x1048560, .bss, code_379B0] +# # - [0x1048560, .bss, nc/randomCamera] +# # - [0x1048560, .bss, code_37E50] +# # - [0x1048560, .bss, nc/dynamicCam10] +# # - [0x1048560, .bss, nc/dynamicCam5] +# # - [0x1048560, .bss, nc/dynamicCam11] +# # - [0x1048560, .bss, nc/dynamicCam8] +# # - [0x1048560, .bss, nc/dynamicCam4] +# # - [0x1048560, .bss, nc/dynamicCamC] +# # - [0x1048560, .bss, code_F8EAF0] +# # - [0x1048560, .bss, nc/dynamicCamB] +# # - [0x1048560, .bss, nc/dynamicCam13] +# # - [0x1048560, .bss, nc/dynamicCam9] +# # - [0x1048560, .bss, nc/dynamicCam12] +# # - [0x1048560, .bss, nc/dynamicCam3] +# # - [0x1048560, .bss, code_3B2C0] +# # - [0x1048560, .bss, nc/dynamicCamF] +# # - [0x1048560, .bss, nc/firstpersoncamera] +# # - [0x1048560, .bss, ch/gameSelect] +# # - [0x1048560, .bss, code_41460] +# # - [0x1048560, .bss, code_41FB0] +# # - [0x1048560, .bss, code_42CB0] +# # - [0x1048560, .bss, mapspecificflags] +# # - [0x1048560, .bss, code_47BD0] +# # - [0x1048560, .bss, code_4A6F0] +# # - [0x1048560, .bss, code_4C020] +# # - [0x1048560, .bss, ch/badShad] +# # - [0x1048560, .bss, ch/climbBase] +# # - [0x1048560, .bss, code_55390] +# # - [0x1048560, .bss, code_556C0] +# # - [0x1048560, .bss, code_55850] +# # - [0x1048560, .bss, ch/overlaycopyright] +# # - [0x1048560, .bss, ch/overlaypressstart] +# # - [0x1048560, .bss, ch/overlaynocontroller] +# # - [0x1048560, .bss, ch/bottlesbonus] +# # - [0x1048560, .bss, code_57C70] +# # - [0x1048560, .bss, code_581D0] +# # - [0x1048560, .bss, ch/bottlesbonuscursor] +# # - [0x1048560, .bss, code_59A80] +# # - [0x1048560, .bss, ch/snacker] +# # - [0x1048560, .bss, ch/snowball] +# # - [0x1048560, .bss, code_5BEB0] +# # - [0x1048560, .bss, code_5C240] +# # - [0x1048560, .bss, code_5C870] +# # - [0x1048560, .bss, code_5DBC0] +# # - [0x1048560, .bss, code_5FD90] +# # - [0x1048560, .bss, code_637D0] +# # - [0x1048560, .bss, code_654C0] +# # - [0x1048560, .bss, code_66D90] +# # - [0x1048560, .bss, gc/bound] +# # - [0x1048560, .bss, code_67650] +# # - [0x1048560, .bss, particle] +# # - [0x1048560, .bss, code_69F60] +# # - [0x1048560, .bss, code_6AEF0] +# # - [0x1048560, .bss, code_6B030] +# # - [0x1048560, .bss, fx/ripple] +# # - [0x1048560, .bss, code_6CD20] +# # - [0x1048560, .bss, code_6CEC0] +# # - [0x1048560, .bss, code_6D030] +# # - [0x1048560, .bss, code_6D270] +# # - [0x1048560, .bss, code_6DA30] +# # - [0x1048560, .bss, code_6DA30] +# # - [0x1048560, .bss, code_70C30] +# # - [0x1048560, .bss, code_72060] +# # - [0x1048560, .bss, code_72B10] +# # - [0x1048560, .bss, code_73640] +# # - [0x1048560, .bss, code_74420] +# # - [0x1048560, .bss, code_74910] +# # - [0x1048560, .bss, code_74ED0] +# # - [0x1048560, .bss, code_75480] +# # - [0x1048560, .bss, code_75930] +# # - [0x1048560, .bss, code_75E90] +# # - [0x1048560, .bss, fx/common1score] +# # - [0x1048560, .bss, fx/honeycarrierscore] +# # - [0x1048560, .bss, fx/jinjoscore] +# # - [0x1048560, .bss, fx/lifescore] +# # - [0x1048560, .bss, fx/healthscore] +# # - [0x1048560, .bss, fx/airscore] +# # - [0x1048560, .bss, code_7AF80] +# # - [0x1048560, .bss, mapModel] +# # - [0x1048560, .bss, code_83340] +# # - [0x1048560, .bss, gc/section] +# # - [0x1048560, .bss, gc/sky] +# # - [0x1048560, .bss, gc/transition] +# # - [0x1048560, .bss, code_851D0] +# # - [0x1048560, .bss, code_857B0] +# # - [0x1048560, .bss, code_85800] +# # - [0x1048560, .bss, gc/dialog] +# # - [0x1048560, .bss, gc/pauseMenu] +# # - [0x1048560, .bss, code_8DC20] +# # - [0x1048560, .bss, gc/zoombox] +# # - [0x1048560, .bss, code_91E10] +# # - [0x1048560, .bss, gc/parade] +# # - [0x1048560, .bss, code_94620] +# # - [0x1048560, .bss, code_94780] +# # - [0x1048560, .bss, code_956B0] +# # - [0x1048560, .bss, code_98CB0] +# # - [0x1048560, .bss, quizquestionaskedbitfield] +# # - [0x1048560, .bss, code_999A0] +# # - [0x1048560, .bss, jiggyscore] +# # - [0x1048560, .bss, honeycombscore] +# # - [0x1048560, .bss, mumboscore] +# # - [0x1048560, .bss, code_9A740] +# # - [0x1048560, .bss, code_9A9D0] +# # - [0x1048560, .bss, levelspecificflags] +# # - [0x1048560, .bss, code_9B180] +# # - [0x1048560, .bss, code_9B650] +# # - [0x1048560, .bss, code_9B990] +# # - [0x1048560, .bss, code_9C170] +# # - [0x1048560, .bss, timedfuncqueue] +# # - [0x1048560, .bss, code_9E370] +# # - [0x1048560, .bss, code_A4D00] +# # - [0x1048560, .bss, code_A5BC0] +# # - [0x1048560, .bss, code_ABC00] +# # - [0x1048560, .bss, code_AC520] +# # - [0x1048560, .bss, code_AD110] +# # - [0x1048560, .bss, code_AD5B0] +# # - [0x1048560, .bss, code_AE290] +# # - [0x1048560, .bss, code_AEDA0] +# # - [0x1048560, .bss, modelRender] +# # - [0x1048560, .bss, code_B3A80] +# # - [0x1048560, .bss, code_B5040] +# # - [0x1048560, .bss, code_B5E00] +# # - [0x1048560, .bss, code_B62B0] +# # - [0x1048560, .bss, code_B6C60] +# # - [0x1048560, .bss, code_B6CE0] +# # - [0x1048560, .bss, code_B6EA0] +# # - [0x1048560, .bss, code_B8020] +# # - [0x1048560, .bss, code_B8860] +# # - [0x1048560, .bss, code_B9770] +# # - [0x1048560, .bss, code_BD100] +# # - [0x1048560, .bss, code_BDCC0] +# # - [0x1048560, .bss, code_BEF20] +# # - [0x1048560, .bss, code_C0E60] +# # - [0x1048560, .bss, animtexturecache] +# # - [0x1048560, .bss, code_C2F30] +# # - [0x1048560, .bss, rand] +# # - [0x1048560, .bss, code_C4320] +# # - [0x1048560, .bss, code_C4F40] +# # - [0x1048560, .bss, code_C5440] +# # - [0x1048560, .bss, code_C89C0] +# # - [0x1048560, .bss, code_C97F0] +# # - [0x1048560, .bss, code_C9E70] +# # - [0x1048560, .bss, code_C9F00] +# # - [0x1048560, .bss, code_CB8A0] +# # - [0x1048560, .bss, code_CBBF0] +# # - [0x1048560, .bss, code_CD0A0] +# # - [0x1048560, .bss, code_CD6E0] +# - name: CC +# dir: CC +# type: bin +# start: 0x0106C980 +# # vram: 0x803863F0 +# # follows_vram: core2 +# # exclusive_ram_id: overlay +# # subsegments: +# # - [0x1048560, c, code_0] +# # - [0x1048A90, c, code_530] #Done +# # - [0x1049150, c, code_BF0] #Done +# # - [0x1049680, c, ch/tooth] #Done +# # - [0x1049920, c, code_13C0] #DONE +# # - [0x1049F10, c, code_19B0] #Done +# # - [0x104A0F0, c, code_1B90] #Done +# # - [0x104A4D0, c, code_1F70] #DONE +# # - [0x104B690, c, ch/sawblade] #Done +# # - [0x104B960, c, code_3400] #Done +# # - [0x104BC10, .data, code_0] +# # - [0x104BC40, .data, code_530] +# # - [0x104BC70, .data, code_BF0] +# # - [0x104BCC0, .data, ch/tooth] +# # - [0x104BD50, .data, crc] +# # - [0x104BD60, .data, code_1B90] +# # - [0x104BD70, .data, code_1F70] +# # - [0x104BDA0, .data, ch/sawblade] +# # - [0x104BFB0, .data, code_3400] +# # - [0x104C020, .rodata, code_0] +# # - [0x104C070, .rodata, code_530] +# # - [0x104C080, .rodata, ch/tooth] +# # - [0x104C090, .rodata, code_1B90] +# # - [0x104C0A0, .rodata, code_1F70] +# # - [0x104C0E0, .bss, bss_pad] +# # - [0x104C0E0, .bss, code_BF0] +# # - [0x104C0E0, .bss, code_1B90] +# # - [0x104C0E0, .bss, code_1F70] +# - name: GV +# dir: GV +# type: bin +# start: 0x01070500 +# # vram: 0x803863F0 +# # follows_vram: core2 +# # exclusive_ram_id: overlay +# # subsegments: +# # - [0x104C0E0, c, ch/toots] #DONE +# # - [0x104C310, c, ch/ancientone] #DONE +# # - [0x104CE40, c, ch/gobi1] #DONE +# # - [0x104D650, c, ch/gobi2] #DONE +# # - [0x104DF60, c, ch/gobi3] #DONE +# # - [0x104E5B0, c, ch/gobirope] #DONE +# # - [0x104E810, c, ch/gobirock] #DONE +# # - [0x104EC60, c, ch/trunker] #DONE +# # - [0x104EFC0, c, code_2EE0] #DONE +# # - [0x104F1A0, c, ch/sarcophagus] #DONE +# # - [0x104F710, c, code_3630] #DONE +# # - [0x104FB80, c, code_3AA0] #DONE +# # - [0x104FBF0, c, code_3B10] #DONE +# # - [0x104FC90, c, code_3BB0] #DONE +# # - [0x104FE70, c, code_3D90] #DONE +# # - [0x1050490, c, code_43B0] #DONE +# # - [0x1050820, c, code_4740] #DONE +# # - [0x1051650, c, code_5570] #DONE +# # - [0x10522C0, c, code_61E0] #DONE +# # - [0x1052450, c, code_6370] #DONE +# # - [0x1053060, c, code_6F80] #DONE +# # - [0x1053140, c, code_7060] #DONE +# # - [0x1053610, c, ch/histup] #DONE +# # - [0x1053E30, c, code_7D50] #DONE +# # - [0x1053E90, c, code_7DB0] #DONE +# # - [0x10540A0, c, code_7FC0] #DONE +# # - [0x10540D0, c, code_7FF0] #DONE +# # - [0x1055210, c, ch/mazectrl] #DONE +# # - [0x1055940, c, ch/buriedpyramid] #DONE +# # - [0x1055C50, c, code_9B70] #DONE +# # - [0x1055CF0, c, code_9C10] #DONE +# # - [0x1055E90, c, matchinggame] #DONE +# # - [0x1056570, c, waterctrl] #DONE +# # - [0x10568C0, .data, ch/toots] +# # - [0x1056910, .data, ch/ancientone] +# # - [0x1056970, .data, ch/gobi1] +# # - [0x10569A0, .data, ch/gobi2] +# # - [0x10569F0, .data, ch/gobi3] +# # - [0x1056A20, .data, ch/gobirope] +# # - [0x1056A50, .data, ch/gobirock] +# # - [0x1056A80, .data, ch/trunker] +# # - [0x1056AB0, .data, code_2EE0] +# # - [0x1056AF0, .data, ch/sarcophagus] +# # - [0x1056B90, .data, code_3630] +# # - [0x1056BF0, .data, code_3AA0] +# # - [0x1056C20, .data, code_3B10] +# # - [0x1056C30, .data, code_3BB0] +# # - [0x1056C90, .data, code_3D90] +# # - [0x1056CF0, .data, code_43B0] +# # - [0x1056D30, .data, code_4740] +# # - [0x1056E10, .data, code_5570] +# # - [0x1056E80, .data, code_61E0] +# # - [0x1056EE0, .data, code_6370] +# # - [0x1056F50, .data, code_6F80] +# # - [0x1056F80, .data, code_7060] +# # - [0x1056FD0, .data, ch/histup] +# # - [0x1057030, .data, code_7DB0] +# # - [0x1057070, .data, code_7FC0] +# # - [0x10570D0, .data, code_7FF0] +# # - [0x10572B0, .data, ch/mazectrl] +# # - [0x1057310, .data, ch/buriedpyramid] +# # - [0x1057340, .data, matchinggame] +# # - [0x10573E0, .rodata, ch/ancientone] +# # - [0x1057400, .rodata, ch/gobi1] +# # - [0x1057410, .rodata, ch/gobi2] +# # - [0x1057430, .rodata, ch/gobi3] +# # - [0x1057470, .rodata, ch/gobirock] +# # - [0x1057480, .rodata, ch/sarcophagus] +# # - [0x1057490, .rodata, code_3BB0] +# # - [0x10574A0, .rodata, code_3D90] +# # - [0x10574B0, .rodata, code_43B0] +# # - [0x10574C0, .rodata, code_4740] +# # - [0x1057530, .rodata, code_5570] +# # - [0x1057580, .rodata, code_6370] +# # - [0x10575E0, .rodata, code_7060] +# # - [0x1057600, .rodata, ch/histup] +# # - [0x1057630, .rodata, code_7FF0] +# # - [0x1057690, .rodata, ch/mazectrl] +# # - [0x10576B0, .rodata, ch/buriedpyramid] +# # - [0x10576F0, .rodata, matchinggame] +# # - [0x1057700, .rodata, waterctrl] +# # - [0x1057710, .bss, bss_pad] +# # - [0x1057710, .bss, ch/toots] +# # - [0x1057710, .bss, ch/gobi1] +# # - [0x1057710, .bss, ch/gobi2] +# # - [0x1057710, .bss, ch/gobirock] +# # - [0x1057710, .bss, code_4740] +# # - [0x1057710, .bss, code_5570] +# # - [0x1057710, .bss, code_61E0] +# # - [0x1057710, .bss, code_6F80] +# # - [0x1057710, .bss, code_7D50] +# # - [0x1057710, .bss, code_7FF0] +# # - [0x1057710, .bss, code_9C10] +# # - [0x1057710, .bss, matchinggame] +# # - [0x1057710, .bss, waterctrl] +# - name: MMM +# dir: MMM +# type: bin +# start: 0x0107BB30 +# # vram: 0x803863F0 +# # follows_vram: core2 +# # exclusive_ram_id: overlay +# # subsegments: +# # - [0x1057710, c, ch/loggo] #DONE +# # - [0x1057C80, c, ch/napper] #DONE +# # - [0x10584D0, c, code_DC0] #DONE +# # - [0x1058730, c, ch/motzhand] #DONE +# # - [0x1058DC0, c, code_16B0] #DONE +# # - [0x1059750, c, code_2040] #DONE +# # - [0x105A670, c, code_2F60] #DONE +# # - [0x105A830, c, code_3120] #DONE +# # - [0x105AB30, c, code_3420] #DONE +# # - [0x105B460, c, crc] #DONE +# # - [0x105B460, c, code_3D50] #DONE +# # - [0x105BEE0, c, code_47D0] #DONE +# # - [0x105C710, c, code_5000] #DONE +# # - [0x105CD00, .data, ch/loggo] +# # - [0x105CD40, .data, ch/napper] +# # - [0x105CD70, .data, code_DC0] +# # - [0x105CDB0, .data, ch/motzhand] +# # - [0x105CDF0, .data, code_16B0] +# # - [0x105CF00, .data, code_2040] +# # - [0x105D150, .data, code_2F60] +# # - [0x105D240, .data, code_3420] +# # - [0x105D510, .data, code_3D50] +# # - [0x105D620, .data, crc] +# # - [0x105D630, .data, code_5000] +# # - [0x105D660, .rodata, ch/loggo] +# # - [0x105D690, .rodata, ch/napper] +# # - [0x105D6B0, .rodata, ch/motzhand] +# # - [0x105D6D0, .rodata, code_16B0] +# # - [0x105D720, .rodata, code_2040] +# # - [0x105D760, .rodata, code_3120] +# # - [0x105D770, .rodata, code_3420] +# # - [0x105D780, .rodata, code_3D50] +# # - [0x105D7A0, .rodata, code_47D0] +# # - [0x105D7D0, .rodata, code_5000] +# # - [0x105D7E0, .bss, bss_pad] +# # - [0x105D7E0, .bss, code_2040] +# # - [0x105D7E0, .bss, code_3120] +# # - [0x105D7E0, .bss, code_3420] +# # - [0x105D7E0, .bss, code_3D50] +# - name: TTC +# dir: TTC +# type: bin +# start: 0x01081C00 +# # vram: 0x803863F0 +# # follows_vram: core2 +# # exclusive_ram_id: overlay +# # subsegments: +# # - [0x105D7E0, c, ch/clam] #DONE +# # - [0x105E880, c, ch/blubber] #DONE +# # - [0x105F1B0, c, ch/nipper] #DONE +# # - [0x105FEB0, c, code_26D0] #DONE +# # - [0x1060360, c, ch/leaky] #DONE +# # - [0x1060820, c, code_3040] #DONE +# # - [0x10608B0, c, ch/lockup] #DONE +# # - [0x1060DB0, c, ch/treasurehunt] #DONE +# # - [0x1061610, c, code_3E30] #DONE +# # - [0x10633B0, c, ch/treasure] #DONE +# # - [0x10637A0, .data, ch/clam] +# # - [0x10638D0, .data, ch/blubber] +# # - [0x1063930, .data, ch/nipper] +# # - [0x10639D0, .data, code_26D0] +# # - [0x1063AF0, .data, ch/leaky] +# # - [0x1063B40, .data, code_3040] +# # - [0x1063B50, .data, ch/lockup] +# # - [0x1063C10, .data, ch/treasurehunt] +# # - [0x1063D70, .data, code_3E30] +# # - [0x1064080, .data, ch/treasure] +# # - [0x10640D0, .rodata, ch/clam] +# # - [0x1064130, .rodata, ch/blubber] +# # - [0x1064160, .rodata, ch/nipper] +# # - [0x1064180, .rodata, code_26D0] +# # - [0x10641C0, .rodata, ch/leaky] +# # - [0x10641E0, .rodata, ch/lockup] +# # - [0x1064210, .rodata, ch/treasurehunt] +# # - [0x1064240, .rodata, code_3E30] +# # - [0x1064A90, .rodata, ch/treasure] +# # - [0x1064AE0, .bss, code_3040] +# # - [0x1064AE0, .bss, ch/treasurehunt] +# # - [0x1064AE0, .bss, code_3E30] +# - name: MM +# dir: MM +# type: code +# start: 0x01088F00 +# # vram: 0x803863F0 +# # follows_vram: core2 +# # exclusive_ram_id: overlay +# # subsegments: +# # - [0x1064AE0, c, ch/orangepad] +# # - [0x1065050, c, ch/hut] +# # - [0x1065390, c, ch/chimpystump] +# # - [0x10655C0, c, ch/conga] +# # - [0x10665B0, c, crc] +# # - [0x1066680, c, ch/orange] +# # - [0x10669F0, c, ch/lmonkey] #chimpy +# # - [0x1066FA0, c, code_24C0] +# # - [0x1067090, c, ch/grublin] +# # - [0x1067220, c, ch/jujuhitbox] +# # - [0x10676C0, c, ch/juju] +# # - [0x1067F80, .data, ch/orangepad] +# # - [0x1067FB0, .data, ch/hut] +# # - [0x1068010, .data, ch/chimpystump] +# # - [0x1068040, .data, ch/conga] +# # - [0x10680B0, .data, crc] +# # - [0x10680C0, .data, ch/orange] +# # - [0x1068100, .data, ch/lmonkey] +# # - [0x1068150, .data, ch/grublin] +# # - [0x10681D0, .data, ch/jujuhitbox] +# # - [0x1068200, .data, ch/juju] +# # - [0x1068230, .rodata, ch/orangepad] +# # - [0x1068240, .rodata, ch/hut] +# # - [0x1068250, .rodata, ch/conga] +# # - [0x10682D0, .rodata, ch/orange] +# # - [0x10682F0, .rodata, ch/lmonkey] +# # - [0x1068340, .rodata, ch/grublin] +# # - [0x1068350, .rodata, ch/jujuhitbox] +# # - [0x1068360, .rodata, ch/juju] +# # - [0x1068370, .bss, ch/hut] +# # - [0x1068370, .bss, ch/juju] +# - name: BGS +# dir: BGS +# type: code +# start: 0x0108C790 +# # vram: 0x803863F0 +# # follows_vram: core2 +# # exclusive_ram_id: overlay +# # # after: core2-data +# # subsegments: +# # - [0x1068370, c, ch/flibbit] #DONE +# # - [0x1069960, c, ch/pinkegg] #DONE +# # - [0x1069C10, c, ch/croctus] #DONE +# # - [0x106A5E0, c, ch/code_2270] #DONE +# # - [0x106B3A0, c, code_3030] #DONE +# # - [0x106B790, c, code_3420] +# # - [0x106D0E0, c, ch/yumblie] #DONE +# # - [0x106D970, c, ch/mrvile] #DONE +# # - [0x106EAA0, c, ch/frogminigame] #DONE +# # - [0x106F160, c, ch/yellowflibbit] #DONE +# # - [0x10709B0, c, ch/mudhut] #DONE +# # - [0x1070DD0, c, ch/code_8A60] #DONE +# # - [0x1071160, c, code_8DF0] #DONE +# # - [0x10713F0, c, ch/tanktup] +# # - [0x1071AC0, c, code_9750] #DONE +# # - [0x1071C30, c, ch/bigalligator] #DONE +# # - [0x1071C90, c, ch/leafboat] #DONE +# # - [0x1072610, .data, ch/flibbit] +# # - [0x1072640, .data, ch/pinkegg] +# # - [0x1072730, .data, ch/croctus] +# # - [0x10727B0, .data, ch/code_2270] +# # - [0x1072800, .data, code_3030] +# # - [0x10728E0, .data, code_3420] +# # - [0x10729C0, .data, ch/yumblie] +# # - [0x10729F0, .data, ch/mrvile] +# # - [0x1072A30, .data, ch/frogminigame] +# # - [0x1072A60, .data, ch/yellowflibbit] +# # - [0x1072AA0, .data, crc] +# # - [0x1072AB0, .data, ch/mudhut] +# # - [0x1072B10, .data, ch/code_8A60] +# # - [0x1072BA0, .data, ch/tanktup] +# # - [0x1072BD0, .data, code_9750] +# # - [0x1072CF0, .data, ch/bigalligator] +# # - [0x1072D20, .data, ch/leafboat] +# # - [0x1072D50, .rodata, ch/flibbit] +# # - [0x1072E60, .rodata, ch/croctus] +# # - [0x1072EF0, .rodata, ch/code_2270] +# # - [0x1072F60, .rodata, code_3030] +# # - [0x1072F70, .rodata, code_3420] +# # - [0x1072F90, .rodata, ch/yumblie] +# # - [0x1072FC0, .rodata, ch/mrvile] +# # - [0x1073010, .rodata, ch/frogminigame] +# # - [0x1073020, .rodata, ch/yellowflibbit] +# # - [0x1073110, .rodata, ch/mudhut] +# # - [0x1073120, .rodata, ch/code_8A60] +# # - [0x1073130, .rodata, ch/tanktup] +# # - [0x1073140, .rodata, code_9750] +# # - [0x1073150, .rodata, ch/leafboat] +# # - [0x10731B0, .bss, bss_pad] +# # - [0x10731B0, .bss, ch/frogminigame] +# - name: RBB +# dir: RBB +# type: code +# start: 0x010975D0 +# # vram: 0x803863F0 +# # follows_vram: core2 +# # exclusive_ram_id: overlay +# # subsegments: +# # - [0x10731B0, c, ch/eggtoll1] +# # - [0x10737F0, c, code_640] +# # - [0x1073E50, c, code_CA0] +# # - [0x1074720, c, code_1570] +# # - [0x1075170, c, ch/grimlet] +# # - [0x1075990, c, ch/cog] +# # - [0x1075C20, c, ch/axle] +# # - [0x1076040, c, ch/enginefan] +# # - [0x1076660, c, ch/enginefanswitch] +# # - [0x1076850, c, ch/propellor] +# # - [0x1076E60, c, ch/propellorswitch] +# # - [0x10772A0, c, ch/engineparts] +# # - [0x1077980, c, ch/whistleswitch] +# # - [0x1077E20, c, ch/whistle] +# # - [0x1078210, c, ch/whistlectrl] +# # - [0x10784A0, c, ch/anchorswitch] +# # - [0x1078640, c, ch/dolphin] +# # - [0x1078C60, c, ch/anchor] +# # - [0x1078DC0, c, ch/anchorctrl] +# # - [0x10790C0, c, ch/rarewareflag] +# # - [0x1079130, c, ch/bossboombox] +# # - [0x107AC10, c, ch/bossboomboxctrl] +# # - [0x107ACD0, c, ch/bellbuoy] +# # - [0x107B180, c, ch/rowboat] +# # - [0x107B6D0, c, ch/boombox] +# # - [0x107C820, c, code_9670] +# # - [0x107C9F0, c, code_9840] +# # - [0x107CBA0, c, propellorctrl] +# # - [0x107CE10, .data, ch/eggtoll1] +# # - [0x107CE90, .data, code_640] +# # - [0x107CFC0, .data, code_CA0] +# # - [0x107D030, .data, code_1570] +# # - [0x107D140, .data, ch/grimlet] +# # - [0x107D170, .data, ch/cog] +# # - [0x107D1F0, .data, ch/axle] +# # - [0x107D2F0, .data, ch/enginefan] +# # - [0x107D470, .data, ch/enginefanswitch] +# # - [0x107D4A0, .data, ch/propellor] +# # - [0x107D4E0, .data, ch/propellorswitch] +# # - [0x107D520, .data, ch/engineparts] +# # - [0x107D630, .data, ch/whistleswitch] +# # - [0x107D710, .data, ch/whistle] +# # - [0x107D810, .data, ch/whistlectrl] +# # - [0x107D840, .data, ch/anchorswitch] +# # - [0x107D870, .data, ch/dolphin] +# # - [0x107D8A0, .data, ch/anchor] +# # - [0x107D8D0, .data, ch/anchorctrl] +# # - [0x107D900, .data, ch/rarewareflag] +# # - [0x107D930, .data, ch/bossboombox] +# # - [0x107DAB0, .data, ch/bossboomboxctrl] +# # - [0x107DAE0, .data, ch/bellbuoy] +# # - [0x107DB10, .data, ch/rowboat] +# # - [0x107DB40, .data, ch/boombox] +# # - [0x107DBC0, .data, code_9670] +# # - [0x107DBF0, .data, code_9840] +# # - [0x107DC40, .rodata, code_640] +# # - [0x107DC50, .rodata, code_CA0] +# # - [0x107DC70, .rodata, code_1570] +# # - [0x107DCD0, .rodata, ch/grimlet] +# # - [0x107DD30, .rodata, ch/axle] +# # - [0x107DD40, .rodata, ch/enginefanswitch] +# # - [0x107DD50, .rodata, ch/propellor] +# # - [0x107DD70, .rodata, ch/propellorswitch] +# # - [0x107DD80, .rodata, ch/whistle] +# # - [0x107DD90, .rodata, ch/whistlectrl] +# # - [0x107DDB0, .rodata, ch/dolphin] +# # - [0x107DE80, .rodata, ch/anchor] +# # - [0x107DE90, .rodata, ch/anchorctrl] +# # - [0x107DEA0, .rodata, ch/bossboombox] +# # - [0x107DF30, .rodata, ch/bellbuoy] +# # - [0x107DF60, .rodata, ch/rowboat] +# # - [0x107DFB0, .rodata, ch/boombox] +# # - [0x107E020, .rodata, code_9670] +# # - [0x107E030, .bss, bss_pad] +# # - [0x107E030, .bss, ch/bossboombox] +# # - [0x107E030, .bss, ch/boombox] +# # - [0x107E030, .bss, ch/boombox] +# # - [0x107E030, .bss, code_9670] +# # - [0x107E030, .bss, propellorctrl] +# - name: FP +# dir: FP +# type: code +# start: 0x010A2470 +# # vram: 0x803863F0 +# # follows_vram: core2 +# # exclusive_ram_id: overlay +# # subsegments: +# # - [0x107E030, c, ch/scarfsled] #DONE +# # - [0x107E500, c, ch/racesled] #DONE +# # - [0x107E7C0, c, ch/snowmanbutton] #DONE +# # - [0x107EA70, c, ch/xmastree] #DONE +# # - [0x107F220, c, ch/boggy1] #DONE +# # - [0x107FA10, c, code_19E0] #DONE +# # - [0x1080020, c, code_1FF0] #DONE +# # - [0x1080380, c, ch/boggy2] #DONE +# # - [0x1081E30, c, ch/bearcub] #DONE +# # - [0x1082430, c, sirslushgame] #DONE +# # - [0x1082600, c, snowmanbuttongame] #DONE +# # - [0x10827A0, c, racectrl] #DONE +# # - [0x1083CF0, c, ch/twinkly] +# # - [0x1084B10, c, ch/twinklybox] #DONE +# # - [0x10859B0, c, ch/twinklymuncher] #DONE +# # - [0x1086360, c, ch/xmastreeswitch] #DONE +# # - [0x1086810, c, ch/xmastreestar] #DONE +# # - [0x1086D30, c, ch/present] #DONE +# # - [0x1086E50, c, ch/wozza] #DONE +# # - [0x1087B40, c, ch/wozzasjig] #DONE +# # - [0x1087ED0, c, ch/boggy3] #DONE +# # - [0x10881F0, c, code_A1C0] #DONE +# # - [0x1088270, c, ch/cavewozza] #DONE +# # - [0x1088530, c, ch/xmastreeice] #DONE +# # - [0x10888B0, c, ch/xmastreeeggtoll] #DONE +# # - [0x1088C00, c, code_ABD0] #DONE +# # - [0x1089500, c, code_B4D0] #DONE +# # - [0x1089630, .data, ch/scarfsled] +# # - [0x1089680, .data, ch/racesled] +# # - [0x10896D0, .data, ch/snowmanbutton] +# # - [0x1089790, .data, ch/xmastree] +# # - [0x10897C0, .data, ch/boggy1] +# # - [0x1089840, .data, code_19E0] +# # - [0x1089880, .data, code_1FF0] +# # - [0x10898C0, .data, ch/boggy2] +# # - [0x1089A30, .data, ch/bearcub] +# # - [0x1089AF0, .data, sirslushgame] +# # - [0x1089B00, .data, snowmanbuttongame] +# # - [0x1089B10, .data, racectrl] +# # - [0x1089B90, .data, ch/twinkly] +# # - [0x1089D00, .data, ch/twinklybox] +# # - [0x1089FD0, .data, ch/twinklymuncher] +# # - [0x108A040, .data, ch/xmastreeswitch] +# # - [0x108A0B0, .data, ch/xmastreestar] +# # - [0x108A0E0, .data, ch/present] +# # - [0x108A160, .data, ch/wozza] +# # - [0x108A200, .data, ch/wozzasjig] +# # - [0x108A2C0, .data, ch/boggy3] +# # - [0x108A300, .data, code_A1C0] +# # - [0x108A330, .data, ch/cavewozza] +# # - [0x108A370, .data, ch/xmastreeice] +# # - [0x108A480, .data, ch/xmastreeeggtoll] +# # - [0x108A520, .data, code_ABD0] +# # - [0x108A7C0, .rodata, ch/scarfsled] +# # - [0x108A7D0, .rodata, ch/xmastree] +# # - [0x108A830, .rodata, ch/boggy1] +# # - [0x108A850, .rodata, code_19E0] +# # - [0x108A860, .rodata, code_1FF0] +# # - [0x108A870, .rodata, ch/boggy2] +# # - [0x108A950, .rodata, ch/bearcub] +# # - [0x108A970, .rodata, racectrl] +# # - [0x108A9C0, .rodata, ch/twinkly] +# # - [0x108AA40, .rodata, ch/twinklybox] +# # - [0x108AA80, .rodata, ch/twinklymuncher] +# # - [0x108AAB0, .rodata, ch/xmastreestar] +# # - [0x108AAC0, .rodata, ch/wozza] +# # - [0x108AB10, .rodata, ch/wozzasjig] +# # - [0x108AB30, .rodata, ch/xmastreeice] +# # - [0x108AB40, .rodata, ch/xmastreeeggtoll] +# # - [0x108AB50, .bss, bss_pad] +# # - [0x108AB50, .bss, ch/boggy2] +# # - [0x108AB50, .bss, sirslushgame] +# # - [0x108AB50, .bss, snowmanbuttongame] +# # - [0x108AB50, .bss, racectrl] +# # - [0x108AB50, .bss, ch/xmastreestar] +# # - [0x108AB50, .bss, code_B4D0] +# - name: SM +# dir: SM +# type: bin +# start: 0x010AEF90 +# # vram: 0x803863F0 +# # follows_vram: core2 +# # exclusive_ram_id: overlay +# # subsegments: +# # - [0x108AB50, c, code_0] +# # - [0x108AC40, c, code_F0] +# # - [0x108B100, c, code_5B0] +# # - [0x108B740, c, code_BF0] +# # - [0x108B8B0, c, ch/attacktutorial] +# # - [0x108C070, c, ch/vegetables] +# # - [0x108D450, c, code_2900] +# # - [0x108D4E0, c, code_2990] +# # - [0x108EB10, c, code_3FC0] +# # - [0x108EBC0, c, code_4070] +# # - [0x108F020, c, code_44D0] +# # - [0x108F210, c, code_46C0] +# # - [0x108F220, .data, code_0] +# # - [0x108F240, .data, code_F0] +# # - [0x108F250, .data, code_5B0] +# # - [0x108F350, .data, code_BF0] +# # - [0x108F380, .data, ch/attacktutorial] +# # - [0x108F3B0, .data, ch/vegetables] +# # - [0x108F6C0, .data, code_2990] +# # - [0x108F750, .data, code_3FC0] +# # - [0x108F810, .data, code_4070] +# # - [0x108F840, .data, code_44D0] +# # - [0x108F870, .rodata, code_5B0] +# # - [0x108F890, .rodata, ch/attacktutorial] +# # - [0x108F930, .rodata, ch/vegetables] +# # - [0x108F960, .rodata, code_2990] +# # - [0x108FA70, .rodata, code_44D0] +# # - [0x108FA80, .bss, code_F0] +# - name: cutscenes +# dir: cutscenes +# type: bin +# start: 0x010B4170 +# # vram: 0x803863F0 +# # follows_vram: core2 +# # exclusive_ram_id: overlay +# # subsegments: +# # - [0x108FA80, c, code_0] +# # - [0x1095B70, c, code_60F0] #DONE +# # - [0x10961B0, c, code_6730] #DONE +# # - [0x1096470, c, code_69F0] #DONE +# # - [0x1096710, c, code_6C90] #DONE +# # - [0x10969E0, .data, code_0] +# # - [0x1097320, .data, code_60F0] +# # - [0x1097D90, .data, code_6730] +# # - [0x1097E30, .data, code_69F0] +# # - [0x1097F20, .data, code_6C90] +# # - [0x1097FC0, .rodata, code_0] +# # - [0x1098040, .rodata, code_6730] +# # - [0x1098050, .rodata, code_69F0] +# # - [0x1098060, .rodata, code_6C90] +# # - [0x1098070, .bss, bss_pad] +# - name: lair +# dir: lair +# type: code +# start: 0x010BC760 +# # vram: 0x803863F0 +# # follows_vram: core2 +# # exclusive_ram_id: overlay +# # subsegments: +# # - [0x1098070, c, code_0] #DONE +# # - [0x109C310, c, ch/cauldron] #DONE +# # - [0x109D6B0, c, ch/brentilda] #DONE +# # - [0x109DF40, c, code_5ED0] #DONE +# # - [0x10A0760, c, code_86F0] #DONE +# # - [0x10A1CB0, c, code_9C40] #DONE +# # - [0x10A21E0, c, code_A170] #DONE +# # - [0x10A24A0, c, code_A430] #DONE +# # - [0x10A2510, c, code_A4A0] #DONE +# # - [0x10A2880, c, code_A810] #DONE +# # - [0x10A2DE0, c, code_AD70] #DONE +# # - [0x10A3C40, c, code_BBD0] #DONE +# # - [0x10A4230, c, code_C1C0] #DONE +# # - [0x10A4730, c, code_C6C0] #DONE +# # - [0x10A4930, .data, code_0] +# # - [0x10A51A0, .data, ch/cauldron] +# # - [0x10A5390, .data, ch/brentilda] +# # - [0x10A53E0, .data, code_5ED0] +# # - [0x10A6430, .data, code_86F0] +# # - [0x10A64E0, .data, code_9C40] +# # - [0x10A6560, .data, code_A170] +# # - [0x10A6600, .data, code_A430] +# # - [0x10A6630, .data, code_A4A0] +# # - [0x10A6700, .data, code_A810] +# # - [0x10A6730, .data, code_AD70] +# # - [0x10A6860, .data, code_BBD0] +# # - [0x10A6940, .data, code_C1C0] +# # - [0x10A69A0, .data, code_C6C0] +# # - [0x10A69D0, .rodata, code_0] +# # - [0x10A6C80, .rodata, ch/cauldron] +# # - [0x10A6D10, .rodata, ch/brentilda] +# # - [0x10A6D40, .rodata, code_5ED0] +# # - [0x10A6E50, .rodata, code_86F0] +# # - [0x10A6EC0, .rodata, code_9C40] +# # - [0x10A6EF0, .rodata, code_A4A0] +# # - [0x10A6F30, .rodata, code_A810] +# # - [0x10A6F50, .rodata, code_AD70] +# # - [0x10A6F70, .rodata, code_BBD0] +# # - [0x10A6FB0, .rodata, code_C1C0] +# # - [0x10A6FC0, .rodata, code_C6C0] +# # - [0x10A6FD0, .bss, bss_pad] +# # - [0x10A6FD0, .bss, code_0] +# # - [0x10A6FD0, .bss, code_A810] +# - name: fight +# dir: fight +# type: bin +# start: 0x010CB6C0 +# # vram: 0x803863F0 +# # follows_vram: core2 +# # exclusive_ram_id: overlay +# # subsegments: +# # - [0x10A6FD0, c, code_0] #DONE +# # - [0x10A7150, c, chfinalboss] +# # - [0x10ACEA0, c, chbossjinjo] #DONE +# # - [0x10ADE60, c, chbossjinjobase] #DONE +# # - [0x10AE550, c, chstonejinjo] #DONE +# # - [0x10AEBB0, c, chjinjonatorbase] #DONE +# # - [0x10AF360, c, chspellbarrier] #DONE +# # - [0x10AF770, c, chspellfireball] #DONE +# # - [0x10B0820, c, code_9850] #DONE +# # - [0x10B0D10, c, chjinjonator] #DONE +# # - [0x10B1EA0, c, chbossshadow] #DONE +# # - [0x10B1F60, .data, chfinalboss] +# # - [0x10B23F0, .data, chbossjinjo] +# # - [0x10B2570, .data, chbossjinjobase] +# # - [0x10B25D0, .data, chstonejinjo] +# # - [0x10B2620, .data, chjinjonatorbase] +# # - [0x10B26B0, .data, chspellbarrier] +# # - [0x10B26E0, .data, chspellfireball] +# # - [0x10B29A0, .data, code_9850] +# # - [0x10B2B90, .data, chjinjonator] +# # - [0x10B2C70, .data, chbossshadow] +# # - [0x10B2CA0, .rodata, chfinalboss] +# # - [0x10B3060, .rodata, chbossjinjo] +# # - [0x10B3110, .rodata, chbossjinjobase] +# # - [0x10B3120, .rodata, chstonejinjo] +# # - [0x10B3160, .rodata, chjinjonatorbase] +# # - [0x10B3190, .rodata, chspellbarrier] +# # - [0x10B31A0, .rodata, chspellfireball] +# # - [0x10B31F0, .rodata, code_9850] +# # - [0x10B3200, .rodata, chjinjonator] +# # - [0x10B3310, .rodata, chbossshadow] +# # - [0x10B3320, .bss, code_0] +# # - [0x10B3320, .bss, chfinalboss] +# # - [0x10B3320, .bss, chspellfireball] +# # - [0x10B3320, .bss, chjinjonator] +# - name: CCW +# dir: CCW +# type: bin +# start: 0x010D7A90 +# vram: 0x803863F0 +# # follows_vram: core2 +# exclusive_ram_id: overlay +# subsegments: + # - [0x10B3320, c, code_0] #DONE + # - [0x10B3480, c, code_160] #DONE + # - [0x10B3C70, c, code_950] #DONE + # - [0x10B47D0, c, code_14B0] #DONE + # - [0x10B4E40, c, code_1B20] #DONE + # - [0x10B54C0, c, code_21A0] #DONE + # - [0x10B5590, c, code_2270] #DONE + # - [0x10B5E20, c, code_2B00] #DONE + # - [0x10B6370, c, code_3050] #DONE + # - [0x10B6630, c, code_3310] #DONE + # - [0x10B70C0, c, code_3DA0] #DONE + # - [0x10B7850, c, code_4530] #DONE + # - [0x10B7C80, c, code_4960] #DONE + # - [0x10B8020, c, code_4D00] #DONE + # - [0x10B83F0, c, code_50D0] #DONE + # - [0x10B8860, c, code_5540] #DONE + # - [0x10B8F10, c, code_5BF0] #DONE + # - [0x10B9500, c, code_61E0] #DONE + # - [0x10B9940, c, code_6620] #DONE + # - [0x10B9DE0, c, code_6AC0] #DONE + # - [0x10BA1E0, c, code_6EC0] #DONE + # - [0x10BA440, c, code_7120] #DONE + # - [0x10BA890, c, code_7570] #DONE + # - [0x10BA9E0, c, code_76C0] #DONE + # - [0x10BAEE0, c, code_7BC0] #DONE + # - [0x10BAF10, c, code_7BF0] #DONE + # - [0x10BB370, c, ch/grublinhood] #DONE + # - [0x10BB990, c, ch/vacationtexttrigger] #DONE + # - [0x10BBA80, .data, code_0] + # - [0x10BBAD0, .data, code_160] + # - [0x10BBB00, .data, code_950] + # - [0x10BBB30, .data, code_14B0] + # - [0x10BBB70, .data, code_1B20] + # - [0x10BBBD0, .data, code_21A0] + # - [0x10BBC00, .data, code_2270] + # - [0x10BBC40, .data, code_2B00] + # - [0x10BBDA0, .data, code_3050] + # - [0x10BBDD0, .data, code_3310] + # - [0x10BC090, .data, code_3DA0] + # - [0x10BC0C0, .data, code_4530] + # - [0x10BC160, .data, code_4960] + # - [0x10BC1A0, .data, code_4D00] + # - [0x10BC230, .data, code_50D0] + # - [0x10BC280, .data, code_5540] + # - [0x10BC2B0, .data, code_5BF0] + # - [0x10BC390, .data, code_61E0] + # - [0x10BC3C0, .data, code_6620] + # - [0x10BC400, .data, code_6AC0] + # - [0x10BC530, .data, code_6EC0] + # - [0x10BC570, .data, code_7120] + # - [0x10BC620, .data, code_7570] + # - [0x10BC650, .data, code_76C0] + # - [0x10BC7E0, .data, code_7BC0] + # - [0x10BC820, .data, code_7BF0] + # - [0x10BC860, .data, ch/grublinhood] + # - [0x10BC930, .data, ch/vacationtexttrigger] + # - [0x10BC960, .rodata, code_160] + # - [0x10BC980, .rodata, code_950] + # - [0x10BC9E0, .rodata, code_1B20] + # - [0x10BCA10, .rodata, code_2270] + # - [0x10BCA40, .rodata, code_2B00] + # - [0x10BCA70, .rodata, code_3310] + # - [0x10BCA90, .rodata, code_3DA0] + # - [0x10BCAD0, .rodata, code_4530] + # - [0x10BCB10, .rodata, code_4960] + # - [0x10BCB20, .rodata, code_4D00] + # - [0x10BCB50, .rodata, code_50D0] + # - [0x10BCB90, .rodata, code_5540] + # - [0x10BCBB0, .rodata, code_5BF0] + # - [0x10BCBF0, .rodata, code_61E0] + # - [0x10BCC10, .rodata, code_6620] + # - [0x10BCC20, .rodata, code_6AC0] + # - [0x10BCC40, .rodata, code_76C0] + # - [0x10BCC50, .rodata, code_7BF0] + # - [0x10BCC60, .rodata, ch/grublinhood] + # - [0x10BCD00, .bss, bss_pad] + # - [0x10BCD00, .bss, code_3310] +- name: emptyLvl + dir: emptyLvl + type: code + start: 0x010E1470 + vram: 0x803863F0 + # follows_vram: core2 + exclusive_ram_id: overlay + subsegments: + - [0x010E1470, c, code_0] + - [0x010E1480, .data, code_0] + - [0x010E1490, .bss, code_0] +- [0x010E1490] # end of ROM diff --git a/include/version.h b/include/version.h new file mode 100644 index 00000000..bed81f3d --- /dev/null +++ b/include/version.h @@ -0,0 +1,50 @@ +#ifndef __BANJO_KAZOOIE_VERSION_H__ +#define __BANJO_KAZOOIE_VERSION_H__ + +//These values of `VERSION` match the values defined via the Makefile +#define VERSION_USA_1_0 0 +#define VERSION_PAL 1 +#define VERSION_USA_1_1 2 +#define VERSION_JP 3 + +#if VERSION == VERSION_USA_1_0 +#define USA10_EXCLUSIVE(body) body +#else +#define USA10_EXCLUSIVE(body) +#endif + +#if VERSION == VERSION_PAL +#define PAL_EXCLUSIVE(body) body +#else +#define PAL_EXCLUSIVE(body) +#endif + +#if VERSION == VERSION_USA_1_1 +#define USA11_EXCLUSIVE(body) body +#else +#define USA11_EXCLUSIVE(body) +#endif + +#if VERSION == VERSION_JP +#define JP_EXCLUSIVE(body) body +#else +#define JP_EXCLUSIVE(body) +#endif + +#if VERSION == VERSION_USA_1_0 +#define VER_SELECT(usa0, pal, usa1, jp) usa0 +#elif VERSION == VERSION_PAL +#define VER_SELECT(usa0, pal, usa1, jp) pal +#elif VERSION == VERSION_USA_1_1 +#define VER_SELECT(usa0, pal, usa1, jp) usa1 +#elif VERSION == VERSION_JP +#define VER_SELECT(usa0, pal, usa1, jp) jp +#endif + +#if VERSION == VERSION_PAL +#define FRAMERATE 50 +#else +#define FRAMERATE 60 +#endif + +#endif // __BANJO_KAZOOIE_VERSION_H__ diff --git a/manual_syms.pal.txt b/manual_syms.pal.txt new file mode 100644 index 00000000..aaf6b727 --- /dev/null +++ b/manual_syms.pal.txt @@ -0,0 +1,177 @@ +/* Microcode renames to match ucode.h names */ +/* +n_aspMainTextStart = _binary_bin_core1_n_aspMain_text_bin_start; +n_aspMainTextEnd = _binary_bin_core1_n_aspMain_text_bin_end; +gSPF3DEX_fifoTextStart = _binary_bin_core1_gSPF3DEX_fifo_text_bin_start; +gSPF3DEX_fifoTextEnd = _binary_bin_core1_gSPF3DEX_fifo_text_bin_end; +gSPL3DEX_fifoTextStart = _binary_bin_core1_gSPL3DEX_fifo_text_bin_start; +gSPL3DEX_fifoTextEnd = _binary_bin_core1_gSPL3DEX_fifo_text_bin_end; +n_aspMainDataStart = _binary_bin_core1_n_aspMain_data_bin_start; +n_aspMainDataEnd = _binary_bin_core1_n_aspMain_data_bin_end; +gSPF3DEX_fifoDataStart = _binary_bin_core1_gSPF3DEX_fifo_data_bin_start; +gSPF3DEX_fifoDataEnd = _binary_bin_core1_gSPF3DEX_fifo_data_bin_end; +gSPL3DEX_fifoDataStart = _binary_bin_core1_gSPL3DEX_fifo_data_bin_start; +gSPL3DEX_fifoDataEnd = _binary_bin_core1_gSPL3DEX_fifo_data_bin_end; +*/ + +/* Fixed-address buffers */ +D_8000E800 = 0x8000E800; +D_8002D500 = 0x8002D500; +D_8023DA00 = 0x8023DA00; /* confirm */ +func_8023DA20 = 0x8023E620; +D_803FBE00 = 0x803FBE00; +D_803FFE00 = 0x803FFE00; +D_803FFE10 = 0x803FFE10; +gOverlayTable = 0x803FFE10; +D_803A5D00 = 0x803A5D00; /* framebuffers */ + +/* Renames for the boot segment */ +boot_D_8002D500 = D_8002D500; +boot_core1_VRAM = core1_VRAM; +boot_D_803FBE00 = D_803FBE00; +boot_D_803FFE00 = D_803FFE00; +boot_gOverlayTable = gOverlayTable; +boot_func_8023DA20 = func_8023DA20; + +/* Temporary Correct*/ +D_80000300 = 0x80000300; +func_8024BE30 = 0x8024BAC0; +func_8024C428 = 0x8024C078; +viewport_get_position_vec3f = 0x8024c21c; +veiwport_get_position_vec3w = 0x8024c240; +viewport_get_rotation_vec3f = 0x8024c3b4; +func_8024E71C = 0x8024e36c; +pfsManager_update = 0x8024e418; +pfsManager_init = 0x8024ecac; +musicInstruments_init = 0x8024f130; +func_80250650 = 0x802502a0; +rumbleManager_80250C08 = 0x80250858; +rumbleManager_init = 0x802508d4; +overlayManagerloadCore2 = 0x80250f58; +func_802535A8 = 0x802531f8; +func_80254008 = 0x80253c58; +func_80254028 = 0x80253c78; +func_8025425C = 0x80253eac; +heap_init = 0x80254360; +malloc = 0x802548f8; +free = 0x80254d40; +func_80255198 = 0x80254de8; +func_80255524 = 0x80255174; +func_80255ACC = 0x8025571c; +write_file_blocks = 0x80255780; +func_80255C30 = 0x80255880; +func_80255CD8 = 0x80255928; +func_80255D44 = 0x80255994; +ml_dotProduct_vec3f = 0x80255c84; +ml_distance_vec3f = 0x80255cb4; +ml_vec3f_normalize_copy = 0x80256008; +ml_vec3f_normalize = 0x802560a0; +ml_vec3f_set_length_copy = 0x80256230; +ml_vec3f_yaw_rotate_copy = 0x80256550; +ml_init = 0x80257074; +ml_sin_deg = 0x8025840c; +ml_cos_deg = 0x8025843c; +ml_vec3f_copy = 0x802587f4; +ml_vec3f_diff_copy = 0x80258810; +ml_vec3f_diff = 0x80258844; +ml_vec3f_add = 0x80258898; +func_8025AFB0 = 0x8025AC00; +sns_find_and_parse_payload = 0x8025ae30; +sns_write_payload_over_heap = 0x8025b350; +DEBUG_use_special_bootmap = 0x8025b460; +n_alInit = 0x8025bf70; +n_alAudioFrame = 0x8025c118; +alEvtqPostEvent = 0x8025ca4c; +alEvtqNextEvent = 0x8025cb70; +alEvtqNew = 0x8025cbfc; +n_alSynAddSndPlayer = 0x8025cd80; +n_alSynAllocVoice = 0x8025ce58; +n_alSynSetVol = 0x8025d050; +n_alSynStartVoice = 0x8025d0f0; +n_alSynSetPan = 0x8025d170; +n_alSynSetPitch = 0x8025d1f0; +n_alSynSetFXMix = 0x8025d270; +n_alSynStopVoice = 0x8025d300; +n_alSynFreeVoice = 0x8025d370; +bzero = 0x80263790; +osWriteBackDCacheAll = 0x80263830; +__osInitialize_common = 0x80263860; +osCreateThread = 0x80263b50; +sinf = 0x80263ca0; +guMtxIdentF = 0x80264e30; +alCents2Ratio = 0x80263e60; +alHeapInit = 0x80263eb0; +osCreateMesgQueue = 0x80263ef0; +osAiSetFrequency = 0x80263f20; +alUnlink = 0x80264080; +alLink = 0x802640b0; +alHeapDBAlloc = 0x80264140; +osRecvMesg = 0x802641a0; +osAiGetLength = 0x802642e0; +osVirtualToPhysical = 0x802642f0; +osAiSetNextBuffer = 0x80264370; +osPiStartDma = 0x80264420; +osStopThread = 0x80264530; +osStartThread = 0x802645f0; +osWritebackDCache = 0x80264740; +osInvalDCache = 0x802647C0; +osCreatePiManager = 0x80264870; +osDestroyThread = 0x80264a00; +osSendMesg = 0x80264b00; +osSetThreadPri = 0x80264c50; +guMtxF2L = 0x80264d30; +gu_sqrtf = 0x80264fa0; +cosf = 0x80264fb0; +osSetIntMask = 0x80265120; + +framebuffer_width = 0x802762d8; +framebuffer_height = 0x802762dc; +n_syn = 0x80276bd4; +osViClock = 0x80276e78; + +core2_TEXT_START = 0x80286db0; +spawnQueue_func_802C3A18 = 0x802C3898; +spawnQueue_flush = 0x802c38b8; +mapSpecificFlags_validateCRC1 = 0x802cb1cc; +func_802E3580 = 0x802E3770; +func_802E35D0 = 0x802E37C0; +func_802E35D8 = 0x802E37c8; +func_802E3F8C = 0x802E417c; +func_802E4170 = 0x802E4360; +func_802E4214 = 0x802E4404; +func_802E4424 = 0x802E4614; +game_defrag = 0x802e4ac8; +getGameMode = 0x802e4bec; +func_80309B48 = 0x80309ce8; +gctransition_reset = 0x8030c07c; +func_8030D90C = 0x8030daac; +func_8030DA44 = 0x8030dbe4; +sfxsource_setSfxId = 0x8030dc20; +sfxsource_setSampleRate = 0x8030dc5c; +func_8030DBB4 = 0x8030dd54; +func_8030E2C4 = 0x8030e464; +func_8030E6A4 = 0x8030e844; +func_8030ED70 = 0x8030ef10; +func_8030E394 = 0x8030e534; +func_8031C44C = 0x8031c82c; +func_8031C5AC = 0x8031c98c; +func_8031C5D4 = 0x8031c9b4; +func_8031C618 = 0x8031c9f8; +func_8031C638 = 0x8031ca18; +func_80320240 = 0x80320630; +func_8032056C = 0x8032095C; +func_80320B98 = 0x80320f88; +func_80320C94 = 0x80321084; +func_80320DB0 = 0x803211a0; +levelSpecificFlags_validateCRC1 = 0x8032243c; +func_80323240 = 0x80323690; +marker_getActor = 0x80329db0; +sfxInstruments_init = 0x80335670; +assetCache_init = 0x8033bfd4; +func_8033BD6C = 0x8033C1BC; +time_getDelta = 0x8033e1ec; +func_8033EF58 = 0x8033f3a8; +func_8034C630 = 0x8034ca90; +func_8034E698 = 0x8034eaf8; + +/* Temporary */ diff --git a/manual_syms.txt b/manual_syms.us.v10.txt similarity index 99% rename from manual_syms.txt rename to manual_syms.us.v10.txt index 4cc3d756..d1b2f670 100644 --- a/manual_syms.txt +++ b/manual_syms.us.v10.txt @@ -29,3 +29,4 @@ boot_D_803FBE00 = D_803FBE00; boot_D_803FFE00 = D_803FFE00; boot_gOverlayTable = gOverlayTable; boot_func_8023DA20 = func_8023DA20; + diff --git a/rzip_dummy_addrs.pal.txt b/rzip_dummy_addrs.pal.txt new file mode 100644 index 00000000..b0e7d6dc --- /dev/null +++ b/rzip_dummy_addrs.pal.txt @@ -0,0 +1,32 @@ +boot_core1_rzip_ROM_START = 0xF3D980; +boot_core1_rzip_ROM_END = 0xF5BEC0; +boot_core2_rzip_ROM_START = 0xF5BEC0; +boot_core2_rzip_ROM_END = 0xFC8460; +boot_CC_rzip_ROM_START = 0xFC8460; +boot_CC_rzip_ROM_END = 0xFCA3C0; +boot_MMM_rzip_ROM_START = 0xFCA3C0; +boot_MMM_rzip_ROM_END = 0xFCD5C0; +boot_GV_rzip_ROM_START = 0xFCD5C0; +boot_GV_rzip_ROM_END = 0xFD2CC0; +boot_TTC_rzip_ROM_START = 0xFD2CC0; +boot_TTC_rzip_ROM_END = 0xFD6900; +boot_MM_rzip_ROM_START = 0xFD6900; +boot_MM_rzip_ROM_END = 0xFD8930; +boot_BGS_rzip_ROM_START = 0xFD8930; +boot_BGS_rzip_ROM_END = 0xFDDE80; +boot_RBB_rzip_ROM_START = 0xFDDE80; +boot_RBB_rzip_ROM_END = 0xFE3060; +boot_FP_rzip_ROM_START = 0xFE3060; +boot_FP_rzip_ROM_END = 0xFE8CA0; +boot_CCW_rzip_ROM_START = 0xFFA830; +boot_CCW_rzip_ROM_END = 0xFFF090; +boot_SM_rzip_ROM_START = 0xFE8CA0; +boot_SM_rzip_ROM_END = 0xFEB540; +boot_cutscenes_rzip_ROM_START = 0xFEB540; +boot_cutscenes_rzip_ROM_END = 0xFED780; +boot_lair_rzip_ROM_START = 0xFED780; +boot_lair_rzip_ROM_END = 0xFF4A50; +boot_fight_rzip_ROM_START = 0xFF4A50; +boot_fight_rzip_ROM_END = 0xFFA830; +boot_emptyLvl_rzip_ROM_START = 0xFFF090; +boot_emptyLvl_rzip_ROM_END = 0xFFF0B0; \ No newline at end of file diff --git a/rzip_dummy_addrs.txt b/rzip_dummy_addrs.txt deleted file mode 100644 index 9baca249..00000000 --- a/rzip_dummy_addrs.txt +++ /dev/null @@ -1,32 +0,0 @@ -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.us.v10.txt b/rzip_dummy_addrs.us.v10.txt new file mode 100644 index 00000000..a5f545de --- /dev/null +++ b/rzip_dummy_addrs.us.v10.txt @@ -0,0 +1,32 @@ +boot_core1_rzip_ROM_START = 0xF19250; +boot_core1_rzip_ROM_END = 0xF37F90; +boot_core2_rzip_ROM_START = 0xF37F90; +boot_core2_rzip_ROM_END = 0xFA3FD0; +boot_CC_rzip_ROM_START =0xFA3FD0; +boot_CC_rzip_ROM_END = 0xFA5F50; +boot_MMM_rzip_ROM_START = 0xFA5F50; +boot_MMM_rzip_ROM_END = 0xFA9150; +boot_GV_rzip_ROM_START = 0xFA9150; +boot_GV_rzip_ROM_END = 0xFAE860; +boot_TTC_rzip_ROM_START = 0xFAE860; +boot_TTC_rzip_ROM_END = 0xFB24A0; +boot_MM_rzip_ROM_START = 0xFB24A0; +boot_MM_rzip_ROM_END = 0xFB44E0; +boot_BGS_rzip_ROM_START = 0xFB44E0; +boot_BGS_rzip_ROM_END = 0xFB9A30; +boot_RBB_rzip_ROM_START = 0xFB9A30; +boot_RBB_rzip_ROM_END = 0xFBEBE0; +boot_FP_rzip_ROM_START = 0xFBEBE0; +boot_FP_rzip_ROM_END = 0xFC4810; +boot_CCW_rzip_ROM_START = 0xFD6190; +boot_CCW_rzip_ROM_END = 0xFDAA10; +boot_SM_rzip_ROM_START = 0xFC4810; +boot_SM_rzip_ROM_END = 0xFC6F20; +boot_cutscenes_rzip_ROM_START = 0xFC6F20; +boot_cutscenes_rzip_ROM_END = 0xFC9150; +boot_lair_rzip_ROM_START = 0xFC9150; +boot_lair_rzip_ROM_END = 0xFD0420; +boot_fight_rzip_ROM_START = 0xFD0420; +boot_fight_rzip_ROM_END = 0xFD6190; +boot_emptyLvl_rzip_ROM_START = 0xFDAA10; +boot_emptyLvl_rzip_ROM_END = 0xFDAA30; diff --git a/src/SM/code_46C0.c b/src/SM/code_46C0.c index d00ade88..061a6c9a 100644 --- a/src/SM/code_46C0.c +++ b/src/SM/code_46C0.c @@ -12,44 +12,44 @@ u8 D_8038BFC2; int func_8038AAB0(void){return 0;} #elif VERSION == PAL -void func_8038AAB0(s32 arg0, s32 arg1){ - if(arg1 < 0){ - func_8031A844(); - } - else{ - D_8038BFC2 = arg1; - func_8038B4D0(3); - } -} +// void func_8038AAB0(s32 arg0, s32 arg1){ +// if(arg1 < 0){ +// func_8031A844(); +// } +// else{ +// D_8038BFC2 = arg1; +// func_8038B4D0(3); +// } +// } // #pragma GLOBAL_ASM("asm/nonmatchings/SM/code_46C0/func_8038A8F0.s") -void func_8038A8F0(s32 arg0) { - u8 temp_v0; +// void func_8038A8F0(s32 arg0) { +// u8 temp_v0; - switch (arg0) { /* irregular */ - case 1: - D_8038BFC1 = 1; - func_80319400(); - break; - case 2: - D_8038BFC8->unk0 = (s32) D_8038BD38; - D_8038BFC8->unk4 = (s32) D_8038BD3C; - D_8038BFC8->unk10 = (s32) D_8038BD40; - D_8038BFC8->unk20 = (s32) D_8038BD44; - D_8038BFC8->unk30 = (s32) D_8038BD48; - func_8031A5E4(&D_8038BD30, &D_8038BD34, (void *)0x8038BFC8, 0xA, &D_8038B490); - break; - case 3: - temp_v0 = *(u8 *)0x8038BFC2; - if (temp_v0 != 0) { - func_8031B9A4(temp_v0 - 1, 0x80390000); - } - func_802FAF44(0); - D_8038BFC1 = 0; - break; - } - D_8038BFC0 = (s8) arg0; -} +// switch (arg0) { /* irregular */ +// case 1: +// D_8038BFC1 = 1; +// func_80319400(); +// break; +// case 2: +// D_8038BFC8->unk0 = (s32) D_8038BD38; +// D_8038BFC8->unk4 = (s32) D_8038BD3C; +// D_8038BFC8->unk10 = (s32) D_8038BD40; +// D_8038BFC8->unk20 = (s32) D_8038BD44; +// D_8038BFC8->unk30 = (s32) D_8038BD48; +// func_8031A5E4(&D_8038BD30, &D_8038BD34, (void *)0x8038BFC8, 0xA, &D_8038B490); +// break; +// case 3: +// temp_v0 = *(u8 *)0x8038BFC2; +// if (temp_v0 != 0) { +// func_8031B9A4(temp_v0 - 1, 0x80390000); +// } +// func_802FAF44(0); +// D_8038BFC1 = 0; +// break; +// } +// D_8038BFC0 = (s8) arg0; +// } // #pragma GLOBAL_ASM("asm/nonmatchings/SM/code_46C0/func_8038A9E4.s") diff --git a/src/core1/code_0.c b/src/core1/code_0.c index 809965f9..e73c1d2b 100644 --- a/src/core1/code_0.c +++ b/src/core1/code_0.c @@ -1,13 +1,16 @@ #include #include "functions.h" #include "variables.h" - +#include "version.h" #include "gc/gctransition.h" void func_8023E00C(enum map_e); void func_8023DFF0(s32); +#if VERSION == VERSION_PAL + extern s32 D_80000300; +#endif s32 D_80275610 = 0; s32 D_80275614 = 0; @@ -16,10 +19,9 @@ u32 D_8027561C[] = { 0x9, 0x4, 0xA, 0x3, 0xB, 0x2, 0xC, 0x5, 0x0, 0x1, 0x6, 0xD, -1 }; -u32 D_80275650 = 0xAD019D3C; //SM_DATA_CRC_1 -u32 D_80275654 = 0xD381B72F; //SM_DATA_CRC_2 -char D_80275658[] = "HjunkDire:218755"; - +u32 D_80275650 = VER_SELECT(0xAD019D3C, 0xA371A8F3, 0, 0); //SM_DATA_CRC_1 +u32 D_80275654 = VER_SELECT(0xD381B72F, 0xD0709154, 0, 0); //SM_DATA_CRC_2 +char D_80275658[] = VER_SELECT("HjunkDire:218755", "HjunkDire:300875", "HjunkDire:", "HjunkDire:"); /* .bss */ u32 D_8027A130; @@ -99,6 +101,9 @@ void func_8023DBDC(void){ } void core1_init(void){ +#if VERSION == VERSION_PAL + D_80000300 = 0; +#endif func_80255C30(); func_8023E00C(func_8023DBA4()); rarezip_init(); //initialize decompressor's huft table diff --git a/src/core1/code_1D00.c b/src/core1/code_1D00.c index e88dea9f..e3a5e46a 100644 --- a/src/core1/code_1D00.c +++ b/src/core1/code_1D00.c @@ -1,9 +1,12 @@ #include #include "functions.h" #include "variables.h" +#include "version.h" #include "2.0L/PR/sched.h" #include "n_libaudio.h" +#define AUDIO_HEAP_SIZE VER_SELECT(0x21000, 0x23A00, 0x21000, 0x21000) + extern void n_alInit(N_ALGlobals *, ALSynConfig *); typedef struct AudioInfo_s { @@ -144,12 +147,12 @@ struct { } audioManager; u8 pad_8027C178[0xE78]; ALHeap D_8027CFF0; -u8 * D_8027D000; +u8 * D_8027D000; s32 D_8027D004; OSMesgQueue D_8027D008; -OSMesg D_8027D020[50]; +OSMesg D_8027D020[3000/FRAMERATE]; OSIoMesg D_8027D0E8; -Struct_core1_1D00_4 D_8027D100[50]; +Struct_core1_1D00_4 D_8027D100[3000/FRAMERATE]; struct { u8 unk0; Struct_1D00_3 *unk4; @@ -282,11 +285,16 @@ void func_8023FA64(ALSeqpConfig *arg0) { } void audioManager_init(void){ - D_8027D000 = (u8 *) malloc(0x21000); - bzero(D_8027D000, 0x21000); - alHeapInit(&D_8027CFF0, D_8027D000, 0x21000); + D_8027D000 = (u8 *) malloc(AUDIO_HEAP_SIZE); + bzero(D_8027D000, AUDIO_HEAP_SIZE); + alHeapInit(&D_8027CFF0, D_8027D000, AUDIO_HEAP_SIZE); +#if VERSION == VERSION_USA_1_0 if(osTvType != OS_TV_NTSC) osViClock = 0x2e6025c; +#elif VERSION == VERSION_PAL +PAL_EXCLUSIVE( + osViClock = 0x2f5b2d2; +) audioManager_create(); sfxInstruments_init(); musicInstruments_init(); @@ -297,10 +305,10 @@ void audioManager_create(void) { int i; f32 var_f0; - osCreateMesgQueue(&D_8027D008, D_8027D020, 50); + osCreateMesgQueue(&D_8027D008, D_8027D020, 3000/FRAMERATE); osCreateMesgQueue(&audioManager.audioReplyMsgQ, audioManager.audioReplyMsgBuf, 8); //audioReplyMesgQueue osCreateMesgQueue(&audioManager.audioFrameMsgQ, audioManager.audioFrameMsgBuf, 8); - var_f0 = 733.333313f; + var_f0 = 44000.0f/FRAMERATE; D_8027DD74 = (s32)var_f0; if ((f32) D_8027DD74 < var_f0) { D_8027DD74++; @@ -321,14 +329,14 @@ void audioManager_create(void) { D_8027D5C0[0].unk0.next = NULL; for(i = 0; i < 89; i++){ alLink((ALLink *)&D_8027D5C0[i+1], (ALLink *)&D_8027D5C0[i]); - D_8027D5C0[i].unk10 = alHeapDBAlloc(0, 0, D_8027DD50.heap, 1, 0x200); + D_8027D5C0[i].unk10 = alHeapDBAlloc(0, 0, D_8027DD50.heap, 1, VER_SELECT(0x200, 0x270, 0x200, 0x200)); } - D_8027D5C0[i].unk10 = alHeapDBAlloc(0, 0, D_8027DD50.heap, 1, 0x200); - + D_8027D5C0[i].unk10 = alHeapDBAlloc(0, 0, D_8027DD50.heap, 1, VER_SELECT(0x200, 0x270, 0x200, 0x200)); for(i = 0; i < 2; i++){ - audioManager.ACMDList[i] = malloc(20000); + audioManager.ACMDList[i] = malloc(1200000/FRAMERATE); } - D_8027DD80 = 2500; + + D_8027DD80 = 150000/FRAMERATE; for(i = 0; i < 3; i++){ audioManager.audioInfo[i] = alHeapDBAlloc(0, 0, D_8027DD50.heap, 1, 0x10); audioManager.audioInfo[i]->unk8 = 0; @@ -368,7 +376,11 @@ bool audioManager_handleFrameMsg(AudioInfo *info, AudioInfo *prev_info){ s16 *outbuffer; Acmd *sp38; s32 sp34; +#if VERSION == VERSION_USA_1_0 s32 sp30 = 0; +#else + s32 sp30; +#endif f32 pad; outbuffer = (s16 *)osVirtualToPhysical(info->data); @@ -377,13 +389,15 @@ bool audioManager_handleFrameMsg(AudioInfo *info, AudioInfo *prev_info){ if(prev_info){ sp30 = osAiSetNextBuffer(prev_info->data, prev_info->frameSamples*4); }//L8024003C + +#if VERSION == VERSION_USA_1_0 if(sp30 == -1){ func_80247F24(2, 0x7d2); func_80247F9C(prev_info->frameSamples); func_80247F9C(info->frameSamples); func_802483D8(); - - } + } +#endif if((D_80275770 >= 0x139) & !D_80275778){ info->frameSamples = D_8027DD78; @@ -401,12 +415,14 @@ bool audioManager_handleFrameMsg(AudioInfo *info, AudioInfo *prev_info){ sp38 = n_alAudioFrame(audioManager.ACMDList[D_8027DCD0], &sp34, outbuffer, info->frameSamples); +#if VERSION == VERSION_USA_1_0 if(D_8027DD80 < sp34){ func_80247F24(2, 2000); func_80247F9C(sp34); func_80247F9C(D_8027DD80); func_802483D8(); } +#endif if(sp34 == 0){ return 0; @@ -426,6 +442,7 @@ void audioManager_handleDoneMsg(AudioInfo *info) } } +#if VERSION == VERSION_USA_1_0 s32 func_80240204(s32 addr, s32 len, void *state){ void *sp44; s32 sp40; @@ -479,6 +496,63 @@ s32 func_80240204(s32 addr, s32 len, void *state){ osPiStartDma(&D_8027D100[D_8027DCCC++], 1, 0, addr, sp44, 0x200U, &D_8027D008); return osVirtualToPhysical(sp44) + sp40; } +#elif VERSION == VERSION_PAL +#ifndef NONMATCHING +s32 func_80240204(s32 addr, s32 len, void *state); +#pragma GLOBAL_ASM("asm/nonmatchings/core1/code_1D00/func_80240204.s") +#else +s32 func_80240204(s32 addr, s32 len, void *state){ + void *sp44; + s32 sp40; + Struct_1D00_3 *phi_s0; + Struct_1D00_3 *phi_v0; + s32 new_var; + Struct_1D00_3 *sp30; + + phi_v0 = D_8027D5B0.unk4; + sp30 = NULL; + for(phi_s0 = phi_v0; phi_s0 != NULL; phi_s0 = phi_s0->unk0.next) { + sp40 = (phi_s0->unk8 + 0x270); + if ((phi_s0->unk8 > addr)) break; + + sp30 = phi_s0; + if ((addr + len) <= sp40) { + phi_s0->unkC = (s32) D_8027DCC8; + return osVirtualToPhysical(phi_s0->unk10 + (addr - phi_s0->unk8)); + } + } + phi_s0 = D_8027D5B0.unk8; + if (phi_s0 == NULL) { + return osVirtualToPhysical(phi_v0); + } + D_8027D5B0.unk8 = phi_s0->unk0.next; + alUnlink(phi_s0); + if (sp30 != NULL) { + alLink(phi_s0, sp30); + } else { + phi_v0 = D_8027D5B0.unk4; + if (phi_v0 != NULL) { + D_8027D5B0.unk4 = phi_s0; + phi_s0->unk0.next = (ALLink *)phi_v0; + phi_s0->unk0.prev = NULL; + phi_v0->unk0.prev = (ALLink *)phi_s0; + } else { + D_8027D5B0.unk4 = phi_s0; + phi_s0->unk0.next = NULL; + phi_s0->unk0.prev = NULL; + } + } + + new_var = addr & 1; + addr = addr - new_var; + phi_s0->unk8 = addr; + phi_s0->unkC = (s32) D_8027DCC8; + sp44 = phi_s0->unk10; + osPiStartDma(&D_8027D100[D_8027DCCC++], 1, 0, phi_s0->unk8, phi_s0->unk10, 0x270U, &D_8027D008); + return osVirtualToPhysical(sp44) + new_var; +} +#endif +#endif void *func_802403B8(void *state) { if (D_8027D5B0.unk0 == 0) { @@ -498,12 +572,17 @@ void func_802403F0(void) { sp40 = NULL; for(phi_s0 = 0; phi_s0 < D_8027DCCC; phi_s0++){ + +#if VERSION == VERSION_USA_1_0 if (osRecvMesg(&D_8027D008, &sp40, 0) == -1) { func_80247F24(2, 0x7D5); func_80247F9C(D_8027DCCC); func_80247F9C(phi_s0); func_802483D8(); } +#else + osRecvMesg(&D_8027D008, &sp40, 0); +#endif } phi_s0_2 = D_8027D5B0.unk4; while(phi_s0_2 != NULL){ @@ -527,6 +606,11 @@ void func_802403F0(void) { D_8027DCC8 += 1; } +#if VERSION == VERSION_PAL +void *audioManager_getThread_PAL(void){ + return &audioManager.thread; +} + void audioManager_stopThread(void){ if(D_80275774){ D_80275774 = 0; diff --git a/src/core1/code_2BD0.c b/src/core1/code_2BD0.c index 13b56978..f358c09f 100644 --- a/src/core1/code_2BD0.c +++ b/src/core1/code_2BD0.c @@ -1,6 +1,8 @@ #include #include "functions.h" #include "variables.h" +#include "version.h" + OSIoMesg D_8027E090; struct { @@ -13,7 +15,7 @@ OSMesgQueue D_8027E108; //g_PimgrMesgQueue void func_802405F0(u32 * arg0, s32 arg1, s32 size){ s32 block_cnt; s32 block_remainder; - s32 block_size = 0x20000; + s32 block_size = VER_SELECT(0x20000, 0x8000, 0, 0); int i; osWritebackDCache(arg0, size); @@ -21,10 +23,10 @@ void func_802405F0(u32 * arg0, s32 arg1, s32 size){ block_remainder = size % block_size; for(i = 0; i < block_cnt; i++){ - osPiStartDma(&D_8027E090, OS_MESG_PRI_NORMAL, OS_READ, arg1, arg0, 0x20000, &D_8027E0A8.queue); + osPiStartDma(&D_8027E090, OS_MESG_PRI_NORMAL, OS_READ, arg1, arg0, VER_SELECT(0x20000, 0x8000, 0, 0), &D_8027E0A8.queue); osRecvMesg(&D_8027E0A8.queue, NULL, 1); - arg1 += 0x20000; - arg0 += 0x8000; + arg1 += VER_SELECT(0x20000, 0x8000, 0, 0); + arg0 += VER_SELECT(0x8000, 0x2000, 0, 0); } osPiStartDma(&D_8027E090, OS_MESG_PRI_NORMAL, OS_READ, arg1, arg0, block_remainder, &D_8027E0A8.queue); diff --git a/src/core1/code_7F60.c b/src/core1/code_7F60.c index 6f2381e7..57e10ce8 100644 --- a/src/core1/code_7F60.c +++ b/src/core1/code_7F60.c @@ -1,10 +1,16 @@ #include #include "functions.h" #include "variables.h" +#include "version.h" static void _guMtxIdentF(float mf[4][4]); -u8 D_80275900[] = {0xCF, 0xAD, 0xA2, 0x90, 0x93, 0x4A, 0x83, 0xF1}; +#if VERSION == VERSION_USA_1_0 +u8 D_80275900[8] = {0xCF, 0xAD, 0xA2, 0x90, 0x93, 0x4A, 0x83, 0xF1}; +#elif VERSION == VERSION_PAL +u8 D_80275900[8] = {0xD3, 0x9E, 0xA6, 0x20, 0xC7, 0x7E, 0xD5, 0xC6}; +#endif + f32 D_80275908 = BAD_DTOR; static s32 guFToFix32(f32 arg0){ diff --git a/src/done/bk_boot_1050.c b/src/done/bk_boot_1050.c index 924c77a3..206bcfa6 100644 --- a/src/done/bk_boot_1050.c +++ b/src/done/bk_boot_1050.c @@ -9,8 +9,8 @@ u64 gEntryStack[ENTRY_STACK_LEN_U64]; -extern u8 core1_us_v10_rzip_ROM_START[]; -extern u8 core1_us_v10_rzip_ROM_END[]; +extern u8 core1_rzip_ROM_START[]; +extern u8 core1_rzip_ROM_END[]; extern u8 D_8002D500; extern u8 core1_VRAM; extern u32 D_803FFE00[4]; @@ -25,7 +25,7 @@ void func_80000450(s32 arg0){ tmp = &D_8002D500; dst = &core1_VRAM; osInitialize(); - osPiRawStartDma(OS_READ, core1_us_v10_rzip_ROM_START, tmp, core1_us_v10_rzip_ROM_END - core1_us_v10_rzip_ROM_START); + osPiRawStartDma(OS_READ, core1_rzip_ROM_START, tmp, core1_rzip_ROM_END - core1_rzip_ROM_START); while(osPiGetStatus() & PI_STATUS_DMA_BUSY); func_8000055C(); func_80000594(&tmp, &dst); diff --git a/src/done/overlays.c b/src/done/overlays.c index 7db4666c..bb8c6b85 100644 --- a/src/done/overlays.c +++ b/src/done/overlays.c @@ -3,42 +3,42 @@ #include "variables.h" #define OVERLAY(ovl, _) \ - extern u8 ovl##_us_v10_rzip_ROM_START[]; \ - extern u8 ovl##_us_v10_rzip_ROM_END[]; + extern u8 ovl##_rzip_ROM_START[]; \ + extern u8 ovl##_rzip_ROM_END[]; #include #undef OVERLAY // This doesn't match as macros, even if two macros are used per overlay. // Look into autogenerating this table in the long run for a cleaner solution. void overlay_table_init(void) { - gOverlayTable[ 0].start = core2_us_v10_rzip_ROM_START; - gOverlayTable[ 0].end = core2_us_v10_rzip_ROM_END; - gOverlayTable[ 1].start = emptyLvl_us_v10_rzip_ROM_START; - gOverlayTable[ 1].end = emptyLvl_us_v10_rzip_ROM_END; - gOverlayTable[ 2].start = CC_us_v10_rzip_ROM_START; - gOverlayTable[ 2].end = CC_us_v10_rzip_ROM_END; - gOverlayTable[ 3].start = MMM_us_v10_rzip_ROM_START; - gOverlayTable[ 3].end = MMM_us_v10_rzip_ROM_END; - gOverlayTable[ 4].start = GV_us_v10_rzip_ROM_START; - gOverlayTable[ 4].end = GV_us_v10_rzip_ROM_END; - gOverlayTable[ 5].start = TTC_us_v10_rzip_ROM_START; - gOverlayTable[ 5].end = TTC_us_v10_rzip_ROM_END; - gOverlayTable[ 6].start = MM_us_v10_rzip_ROM_START; - gOverlayTable[ 6].end = MM_us_v10_rzip_ROM_END; - gOverlayTable[ 7].start = BGS_us_v10_rzip_ROM_START; - gOverlayTable[ 7].end = BGS_us_v10_rzip_ROM_END; - gOverlayTable[ 8].start = RBB_us_v10_rzip_ROM_START; - gOverlayTable[ 8].end = RBB_us_v10_rzip_ROM_END; - gOverlayTable[ 9].start = FP_us_v10_rzip_ROM_START; - gOverlayTable[ 9].end = FP_us_v10_rzip_ROM_END; - gOverlayTable[10].start = CCW_us_v10_rzip_ROM_START; - gOverlayTable[10].end = CCW_us_v10_rzip_ROM_END; - gOverlayTable[11].start = SM_us_v10_rzip_ROM_START; - gOverlayTable[11].end = SM_us_v10_rzip_ROM_END; - gOverlayTable[12].start = cutscenes_us_v10_rzip_ROM_START; - gOverlayTable[12].end = cutscenes_us_v10_rzip_ROM_END; - gOverlayTable[13].start = lair_us_v10_rzip_ROM_START; - gOverlayTable[13].end = lair_us_v10_rzip_ROM_END; - gOverlayTable[14].start = fight_us_v10_rzip_ROM_START; - gOverlayTable[14].end = fight_us_v10_rzip_ROM_END; + gOverlayTable[ 0].start = core2_rzip_ROM_START; + gOverlayTable[ 0].end = core2_rzip_ROM_END; + gOverlayTable[ 1].start = emptyLvl_rzip_ROM_START; + gOverlayTable[ 1].end = emptyLvl_rzip_ROM_END; + gOverlayTable[ 2].start = CC_rzip_ROM_START; + gOverlayTable[ 2].end = CC_rzip_ROM_END; + gOverlayTable[ 3].start = MMM_rzip_ROM_START; + gOverlayTable[ 3].end = MMM_rzip_ROM_END; + gOverlayTable[ 4].start = GV_rzip_ROM_START; + gOverlayTable[ 4].end = GV_rzip_ROM_END; + gOverlayTable[ 5].start = TTC_rzip_ROM_START; + gOverlayTable[ 5].end = TTC_rzip_ROM_END; + gOverlayTable[ 6].start = MM_rzip_ROM_START; + gOverlayTable[ 6].end = MM_rzip_ROM_END; + gOverlayTable[ 7].start = BGS_rzip_ROM_START; + gOverlayTable[ 7].end = BGS_rzip_ROM_END; + gOverlayTable[ 8].start = RBB_rzip_ROM_START; + gOverlayTable[ 8].end = RBB_rzip_ROM_END; + gOverlayTable[ 9].start = FP_rzip_ROM_START; + gOverlayTable[ 9].end = FP_rzip_ROM_END; + gOverlayTable[10].start = CCW_rzip_ROM_START; + gOverlayTable[10].end = CCW_rzip_ROM_END; + gOverlayTable[11].start = SM_rzip_ROM_START; + gOverlayTable[11].end = SM_rzip_ROM_END; + gOverlayTable[12].start = cutscenes_rzip_ROM_START; + gOverlayTable[12].end = cutscenes_rzip_ROM_END; + gOverlayTable[13].start = lair_rzip_ROM_START; + gOverlayTable[13].end = lair_rzip_ROM_END; + gOverlayTable[14].start = fight_rzip_ROM_START; + gOverlayTable[14].end = fight_rzip_ROM_END; } diff --git a/symbol_addrs.pal.txt b/symbol_addrs.pal.txt new file mode 100644 index 00000000..d436dd59 --- /dev/null +++ b/symbol_addrs.pal.txt @@ -0,0 +1,62 @@ +D_5E90 = 0x5E90; +D_D846C0 = 0xD846C0; +D_D954B0 = 0xD954B0; +D_EA3EB0 = 0xEA3EB0; +D_EADE60 = 0xEADE60; +osRomBase = 0x80000308; +bzero = 0x800020F0; +__osSetSR = 0x80002190; +__osGetSR = 0x800021A0; +__osSetFpcCsr = 0x800021B0; +osWritebackDCache = 0x80002B70; +osInvalICache = 0x80002BF0; +osMapTLBRdb = 0x80002C70; +__osProbeTLB = 0x80003BD0; +__osDisableInt = 0x80003FC0; +__osRestoreInt = 0x80003FE0; +bk_boot_BSS_START = 0x80005270; +___osGetSR = 0x8025AFE0; +bzero = 0x80263B40; +osWriteBackDCacheAll = 0x80263BE0; +osVirtualToPhysical = 0x802646A0; +osRecvMesg = 0x80264550; +osPiStartDma = 0x802647D0; +osWritebackDCache = 0x80264AF0; +osInvalDCache = 0x80264B70; +osDestroyThread = 0x80264DB0; +osSetThreadPri = 0x80265000; +osSetIntMask = 0x802654D0; +osInvalICache = 0x802684C0; +__osSetSR = 0x8026A210; +__osGetSR = 0x8026A220; +__osSetFpcCsr = 0x8026A230; +__osEnqueueAndYield = 0x8026A90C; +__osEnqueueThread = 0x8026AA0C; +__osPopThread = 0x8026AA54; +__osDispatchThread = 0x8026AA64; +__osCleanupThread = 0x8026ABE0; +osMapTLBRdb = 0x8026ABF0; +__osDisableInt = 0x8026ACB0; +__osRestoreInt = 0x8026ACD0; +__osProbeTLB = 0x8026B420; +bcopy = 0x8026C110; +__osSetCompare = 0x8026CA70; +osGetCount = 0x8026CE00; +__osShutdown = 0x8027712C; +__OSGlobalIntMask = 0x80277130; +__osRunQueue = 0x80277378; +__osRunningThread = 0x80277380; +__osFaultedThread = 0x80277384; +__osRcpImTable = 0x80278C60; +__libm_qnan_f = 0x80278DB0; + +func_80240204 = 0x80240D80; +alUnlink = 0x80264080; +alLink = 0x802640b0; +osVirtualToPhysical = 0x802642f0; +osPiStartDma = 0x80264420; +D_8027D008 = 0x8027cd48; +D_8027D5B0 = 0x8027D408; +D_8027DCC8 = 0x8027DB20; +D_8027DCCC = 0x8027DB24; +D_8027D100 = 0x8027CE68; \ No newline at end of file From 5593309d999d940aeb7fe478ecddbe296b61acb1 Mon Sep 17 00:00:00 2001 From: Banjo Kazooie Date: Wed, 4 Sep 2024 20:12:37 -0500 Subject: [PATCH 02/14] core1/code_8C50 --- decompressed.pal.yaml | 22 +++++++++++----------- manual_syms.pal.txt | 30 ++++++++++++++++++++++++------ src/core1/code_1D00.c | 4 ++-- src/core1/code_8C50.c | 32 ++++++++++++++++++++++++++++++-- 4 files changed, 67 insertions(+), 21 deletions(-) diff --git a/decompressed.pal.yaml b/decompressed.pal.yaml index 5200f1e2..65b57882 100644 --- a/decompressed.pal.yaml +++ b/decompressed.pal.yaml @@ -160,8 +160,8 @@ segments: - [0xF44940, c, code_7090] - [0xF44b60, c, code_72B0] - [0xF45810, c, code_7F60] - - [0xF46500, bin, untouched] -# # - [0xF21EA0, c, code_8C50] #DONE + - [0xF46500, c, code_8C50] + - [0xF475C0, bin, untouched] # # - [0xF22F80, c, code_9D30] #DONE # # - [0xF23E00, c, code_ABB0] #DONE # # - [0xF260B0, c, code_CE60] #DONE @@ -358,9 +358,9 @@ segments: # # - [0xF4DCD0, c, io/epirawread] #DONE # # - [0xF4DD20, c, os/setglobalintmask] #DONE # # - [0xF4DD70, c, os/yieldthread] #DONE -# # - [0xF4DDC0, bin, n_aspMain_text] -# # - [0xF4EA20, bin, gSPF3DEX_fifo_text] -# # - [0xF4FE50, bin, gSPL3DEX_fifo_text] + - [0xF71750, bin, n_aspMain_text] + - [0xF723B0, bin, gSPF3DEX_fifo_text] + - [0xF737E0, bin, gSPL3DEX_fifo_text] - [0xF747D0, linker_offset, DATA_START] #data Section - [0xF747D0, .data, code_0] - [0xF74830, .data, code_660] @@ -373,8 +373,8 @@ segments: - [0xF74AA0, .data, code_7090] - [0xF74AB0, bin, data_37ED0] #unreferenced - [0xF74AC0, .data, code_7F60] - - [0xF74AD0, bin, remain_core1_data] -# # - [0xF51140, .data, code_8C50] + - [0xF74AD0, .data, code_8C50] + - [0xF74C60, bin, remain_core1_data] # # - [0xF51280, .data, code_9D30] # # - [0xF51430, .data, code_ABB0] # # - [0xF51440, .data, code_CE60] @@ -453,9 +453,9 @@ segments: # # - [0xF54600, .rodata, io/devmgr] # # - [0xF54620, .rodata, audio/env] # # - [0xF54670, .rodata, audio/resample] -# # - [0xF546B0, bin, n_aspMain_data] -# # - [0xF54960, bin, gSPF3DEX_fifo_data] -# # - [0xF55160, bin, gSPL3DEX_fifo_data] + - [0xF77F20, bin, n_aspMain_data] + - [0xF781D0, bin, gSPF3DEX_fifo_data] + - [0xF789D0, bin, gSPL3DEX_fifo_data] - [0xF791D0, .bss, code_0] - [0xF791D0, .bss, code_660] - [0xF791D0, .bss, inflate] @@ -466,7 +466,7 @@ segments: - [0xF791D0, .bss, code_5650] - [0xF791D0, .bss, code_7090] - [0xF791D0, .bss, code_72B0] -# # - [0xF791D0, .bss, code_8C50] + - [0xF791D0, .bss, code_8C50] # # - [0xF791D0, .bss, code_ABB0] # # - [0xF791D0, .bss, code_CE60] # # - [0xF791D0, .bss, code_E360] diff --git a/manual_syms.pal.txt b/manual_syms.pal.txt index aaf6b727..689bdc26 100644 --- a/manual_syms.pal.txt +++ b/manual_syms.pal.txt @@ -1,5 +1,4 @@ /* Microcode renames to match ucode.h names */ -/* n_aspMainTextStart = _binary_bin_core1_n_aspMain_text_bin_start; n_aspMainTextEnd = _binary_bin_core1_n_aspMain_text_bin_end; gSPF3DEX_fifoTextStart = _binary_bin_core1_gSPF3DEX_fifo_text_bin_start; @@ -12,9 +11,9 @@ gSPF3DEX_fifoDataStart = _binary_bin_core1_gSPF3DEX_fifo_data_bin_start; gSPF3DEX_fifoDataEnd = _binary_bin_core1_gSPF3DEX_fifo_data_bin_end; gSPL3DEX_fifoDataStart = _binary_bin_core1_gSPL3DEX_fifo_data_bin_start; gSPL3DEX_fifoDataEnd = _binary_bin_core1_gSPL3DEX_fifo_data_bin_end; -*/ /* Fixed-address buffers */ +D_80000300 = 0x80000300; D_8000E800 = 0x8000E800; D_8002D500 = 0x8002D500; D_8023DA00 = 0x8023DA00; /* confirm */ @@ -34,8 +33,9 @@ boot_gOverlayTable = gOverlayTable; boot_func_8023DA20 = func_8023DA20; /* Temporary Correct*/ -D_80000300 = 0x80000300; +func_8024BDAC = 0x8024ba3c; func_8024BE30 = 0x8024BAC0; +func_8024BFAC = 0x8024bc18; func_8024C428 = 0x8024C078; viewport_get_position_vec3f = 0x8024c21c; veiwport_get_position_vec3w = 0x8024c240; @@ -43,10 +43,12 @@ viewport_get_rotation_vec3f = 0x8024c3b4; func_8024E71C = 0x8024e36c; pfsManager_update = 0x8024e418; pfsManager_init = 0x8024ecac; +pfsManager_getStartReadData = 0x8024ee00; musicInstruments_init = 0x8024f130; func_80250650 = 0x802502a0; rumbleManager_80250C08 = 0x80250858; rumbleManager_init = 0x802508d4; +rumbleManager_80250FC0 = 0x80250c10; overlayManagerloadCore2 = 0x80250f58; func_802535A8 = 0x802531f8; func_80254008 = 0x80253c58; @@ -61,6 +63,7 @@ func_80255ACC = 0x8025571c; write_file_blocks = 0x80255780; func_80255C30 = 0x80255880; func_80255CD8 = 0x80255928; +func_80255D0C = 0x8025595c; func_80255D44 = 0x80255994; ml_dotProduct_vec3f = 0x80255c84; ml_distance_vec3f = 0x80255cb4; @@ -76,7 +79,9 @@ ml_vec3f_diff_copy = 0x80258810; ml_vec3f_diff = 0x80258844; ml_vec3f_add = 0x80258898; func_8025AFB0 = 0x8025AC00; +func_8025AFB8 = 0x8025ac08; sns_find_and_parse_payload = 0x8025ae30; +___osGetSR = 0x8025ac30; sns_write_payload_over_heap = 0x8025b350; DEBUG_use_special_bootmap = 0x8025b460; n_alInit = 0x8025bf70; @@ -98,7 +103,6 @@ osWriteBackDCacheAll = 0x80263830; __osInitialize_common = 0x80263860; osCreateThread = 0x80263b50; sinf = 0x80263ca0; -guMtxIdentF = 0x80264e30; alCents2Ratio = 0x80263e60; alHeapInit = 0x80263eb0; osCreateMesgQueue = 0x80263ef0; @@ -120,13 +124,27 @@ osDestroyThread = 0x80264a00; osSendMesg = 0x80264b00; osSetThreadPri = 0x80264c50; guMtxF2L = 0x80264d30; +guMtxIdentF = 0x80264e30; gu_sqrtf = 0x80264fa0; cosf = 0x80264fb0; osSetIntMask = 0x80265120; - +osDpSetStatus = 0x802651c0; +osSpTaskLoad = 0x802652ec; +osSpTaskStartGo = 0x8026547c; +osDpGetStatus = 0x802654c0; +osViGetCurrentFramebuffer = 0x802654d0; +osStopTimer = 0x80265510; +osSetTimer = 0x80265600; +__d_to_ull = 0x80265718; +__ull_to_d = 0x80265884; +osSpTaskYielded = 0x802658f0; +osSpTaskYield = 0x80265970; +osViSetMode = 0x80265990; +osSetEventMesg = 0x80265a00; framebuffer_width = 0x802762d8; framebuffer_height = 0x802762dc; n_syn = 0x80276bd4; +osClockRate = 0x80276e70; osViClock = 0x80276e78; core2_TEXT_START = 0x80286db0; @@ -174,4 +192,4 @@ func_8033EF58 = 0x8033f3a8; func_8034C630 = 0x8034ca90; func_8034E698 = 0x8034eaf8; -/* Temporary */ +/* Temporary */ \ No newline at end of file diff --git a/src/core1/code_1D00.c b/src/core1/code_1D00.c index e3a5e46a..bf022604 100644 --- a/src/core1/code_1D00.c +++ b/src/core1/code_1D00.c @@ -292,9 +292,8 @@ void audioManager_init(void){ if(osTvType != OS_TV_NTSC) osViClock = 0x2e6025c; #elif VERSION == VERSION_PAL -PAL_EXCLUSIVE( osViClock = 0x2f5b2d2; -) +#endif audioManager_create(); sfxInstruments_init(); musicInstruments_init(); @@ -610,6 +609,7 @@ void func_802403F0(void) { void *audioManager_getThread_PAL(void){ return &audioManager.thread; } +#endif void audioManager_stopThread(void){ if(D_80275774){ diff --git a/src/core1/code_8C50.c b/src/core1/code_8C50.c index 64f8958a..fba5eacb 100644 --- a/src/core1/code_8C50.c +++ b/src/core1/code_8C50.c @@ -1,7 +1,7 @@ #include #include "functions.h" #include "variables.h" - +#include "version.h" typedef struct { s32 unk0; @@ -283,7 +283,11 @@ void func_80246D78(void){ if(D_802806D0){ osStopTimer(&D_802806B0); +#if VERSION == VERSION_USA_1_0 osSetTimer(&D_802806B0, ((osClockRate / 60)* 2) / 3, 0, &D_8027FB60, CORE1_8C50_EVENT_CONT_TIMER); +#elif VERSION == VERSION_PAL + osSetTimer(&D_802806B0, ((osClockRate / 60.0)* 2) / 3, 0, &D_8027FB60, CORE1_8C50_EVENT_CONT_TIMER); +#endif } } @@ -389,16 +393,40 @@ void func_8024730C(void){ {640, 1024, 0x2501FF, 0xE0204, 2} } }; - +#if VERSION == VERSION_PAL + static OSViMode D_80275A48 = { + OS_VI_PAL_LPN1, /* type */ + { + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | 0x3200, /*ctrl*/ + 320, /*width*/ + 0x404233A, /*burst*/ + 0x271, /*vSync*/ + 0x150C69, /* hSync*/ + 0xC6F0C6E, /* leap*/ + 0x800300, /* hStart*/ + 0, /* xScale*/ + 0, /* vCurrent*/ + }, + { + {640, 1024, 0x5F0239, 0x9026B, 2}, + {640, 1024, 0x5F0239, 0x9026B, 2} + } + }; +#endif static s32 D_802806D4; if(!D_802806D4){ D_802806D4 = TRUE; +#if VERSION == VERSION_USA_1_0 if(osTvType != OS_TV_NTSC){ osViSetMode(&D_802759A8); } else { osViSetMode(&D_802759F8); } +#elif VERSION == VERSION_PAL + // if(&D_802759A8){} + osViSetMode(&D_80275A48); +#endif rumbleManager_80250FC0(); //stop controller motors do{ osDpSetStatus(DPC_STATUS_FLUSH); From 4fce59f41ef124acf1977e3fbf5e5951037b313a Mon Sep 17 00:00:00 2001 From: Banjo Kazooie Date: Wed, 4 Sep 2024 23:13:08 -0500 Subject: [PATCH 03/14] pal up to core1/code_E360 --- decompressed.pal.yaml | 31 +++++++++++++-------------- manual_syms.pal.txt | 49 ++++++++++++++++++++++++++++++++++++++----- src/core1/code_9D30.c | 4 +++- src/core1/code_E360.c | 34 ++++++++++++++++++++++++++---- 4 files changed, 92 insertions(+), 26 deletions(-) diff --git a/decompressed.pal.yaml b/decompressed.pal.yaml index 65b57882..ceaf6dce 100644 --- a/decompressed.pal.yaml +++ b/decompressed.pal.yaml @@ -161,11 +161,10 @@ segments: - [0xF44b60, c, code_72B0] - [0xF45810, c, code_7F60] - [0xF46500, c, code_8C50] - - [0xF475C0, bin, untouched] -# # - [0xF22F80, c, code_9D30] #DONE -# # - [0xF23E00, c, code_ABB0] #DONE -# # - [0xF260B0, c, code_CE60] #DONE -# # - [0xF275B0, c, code_E360] #DONE + - [0xF475C0, c, code_ABB0] + - [0xF49870, c, code_CE60] + - [0xF4AD70, c, code_E360] + - [0xF4B4C0, bin, untouched] # # - [0xF27D40, c, code_EAF0] #DONE # # - [0xF29C50, c,code_10A00] # # - [0xF2AD10, c, code_11AC0] #DONE @@ -374,11 +373,11 @@ segments: - [0xF74AB0, bin, data_37ED0] #unreferenced - [0xF74AC0, .data, code_7F60] - [0xF74AD0, .data, code_8C50] - - [0xF74C60, bin, remain_core1_data] -# # - [0xF51280, .data, code_9D30] -# # - [0xF51430, .data, code_ABB0] -# # - [0xF51440, .data, code_CE60] -# # - [0xF514B0, .data, code_E360] + - [0xF74C60, .data, code_ABB0] + - [0xF74C70, .data, code_CE60] + - [0xF74CE0, .data, code_E360] + - [0xF74DD0, bin, remain_core1_data] + # # - [0xF51550, .data, code_EAF0] # # - [0xF51560, .data, code_10A00] # # - [0xF51570, .data, code_11AC0] @@ -418,9 +417,9 @@ segments: - [0xF76710, .rodata, code_5650] - [0xF76770, .rodata, code_72B0] - [0xF76790, .rodata, code_7F60] - - [0xF767B0, bin, remain_core1_rodata] -# # - [0xF52F30, .rodata, code_9D30] -# # - [0xF52F50, .rodata, code_CE60] + # - [0xF767B0, .rodata, code_9D30] + - [0xF767B0, .rodata, code_CE60] + - [0xF76A80, bin, remain_core1_rodata] # # - [0xF53220, .rodata, code_EAF0] # # - [0xF532A0, .rodata, code_10A00] # # - [0xF539B0, .rodata, code_11AC0] @@ -467,9 +466,9 @@ segments: - [0xF791D0, .bss, code_7090] - [0xF791D0, .bss, code_72B0] - [0xF791D0, .bss, code_8C50] -# # - [0xF791D0, .bss, code_ABB0] -# # - [0xF791D0, .bss, code_CE60] -# # - [0xF791D0, .bss, code_E360] + - [0xF791D0, .bss, code_ABB0] + - [0xF791D0, .bss, code_CE60] + - [0xF791D0, .bss, code_E360] # # - [0xF791D0, .bss, code_EAF0] # # - [0xF791D0, .bss, code_10A00] # # - [0xF791D0, .bss, code_11AC0] diff --git a/manual_syms.pal.txt b/manual_syms.pal.txt index 689bdc26..3d82986a 100644 --- a/manual_syms.pal.txt +++ b/manual_syms.pal.txt @@ -33,10 +33,6 @@ boot_gOverlayTable = gOverlayTable; boot_func_8023DA20 = func_8023DA20; /* Temporary Correct*/ -func_8024BDAC = 0x8024ba3c; -func_8024BE30 = 0x8024BAC0; -func_8024BFAC = 0x8024bc18; -func_8024C428 = 0x8024C078; viewport_get_position_vec3f = 0x8024c21c; veiwport_get_position_vec3w = 0x8024c240; viewport_get_rotation_vec3f = 0x8024c3b4; @@ -45,11 +41,15 @@ pfsManager_update = 0x8024e418; pfsManager_init = 0x8024ecac; pfsManager_getStartReadData = 0x8024ee00; musicInstruments_init = 0x8024f130; +func_80250034 = 0x8024fc84; +func_80250530 = 0x80250180; func_80250650 = 0x802502a0; rumbleManager_80250C08 = 0x80250858; rumbleManager_init = 0x802508d4; rumbleManager_80250FC0 = 0x80250c10; +spriteGetFramePtr = 0x80250d18; overlayManagerloadCore2 = 0x80250f58; +func_80253034 = 0x80252c84; func_802535A8 = 0x802531f8; func_80254008 = 0x80253c58; func_80254028 = 0x80253c78; @@ -72,18 +72,29 @@ ml_vec3f_normalize = 0x802560a0; ml_vec3f_set_length_copy = 0x80256230; ml_vec3f_yaw_rotate_copy = 0x80256550; ml_init = 0x80257074; +ml_map_f = 0x80257768; +func_802585E0 = 0x80258230; ml_sin_deg = 0x8025840c; ml_cos_deg = 0x8025843c; ml_vec3f_copy = 0x802587f4; ml_vec3f_diff_copy = 0x80258810; ml_vec3f_diff = 0x80258844; ml_vec3f_add = 0x80258898; +func_8025A104 = 0x80259d54; +func_8025A55C = 0x8025a1ac; +func_8025A6CC = 0x8025a31c; +func_8025A864 = 0x8025a4b4; +func_8025A9D4 = 0x8025a624; +func_8025ABB8 = 0x8025a808; +func_8025AD7C = 0x8025a9cc; +func_8025ADBC = 0x8025aa0c; func_8025AFB0 = 0x8025AC00; func_8025AFB8 = 0x8025ac08; sns_find_and_parse_payload = 0x8025ae30; ___osGetSR = 0x8025ac30; sns_write_payload_over_heap = 0x8025b350; DEBUG_use_special_bootmap = 0x8025b460; +sns_get_item_state = 0x8025b470; n_alInit = 0x8025bf70; n_alAudioFrame = 0x8025c118; alEvtqPostEvent = 0x8025ca4c; @@ -141,6 +152,12 @@ osSpTaskYielded = 0x802658f0; osSpTaskYield = 0x80265970; osViSetMode = 0x80265990; osSetEventMesg = 0x80265a00; +osCreateViManager = 0x80265a70; +osViSetSpecialFeatures = 0x80265dd0; +osViSwapBuffer = 0x80265f90; +osViSetEvent = 0x80265fe0; +osViGetNextFramebuffer = 0x80266050; +osViBlack = 0x80266090; framebuffer_width = 0x802762d8; framebuffer_height = 0x802762dc; n_syn = 0x80276bd4; @@ -148,9 +165,17 @@ osClockRate = 0x80276e70; osViClock = 0x80276e78; core2_TEXT_START = 0x80286db0; +player_getPosition = 0x8028e7c4; +player_getPosition_s32 = 0x8028e95c; +func_8028EE84 = 0x8028eca4; +func_8028F22C = 0x8028f04c; spawnQueue_func_802C3A18 = 0x802C3898; spawnQueue_flush = 0x802c38b8; +func_802C5A30 = 0x802c5b20; +mapSpecificFlags_get = 0x802caeb8; mapSpecificFlags_validateCRC1 = 0x802cb1cc; +func_802D686C = 0x802d6a4c; +chmole_learnedAllSpiralMountainAbilities = 0x802da678; func_802E3580 = 0x802E3770; func_802E35D0 = 0x802E37C0; func_802E35D8 = 0x802E37c8; @@ -160,7 +185,13 @@ func_802E4214 = 0x802E4404; func_802E4424 = 0x802E4614; game_defrag = 0x802e4ac8; getGameMode = 0x802e4bec; +func_802F9AA8 = 0x802f9c88; +func_802F9F80 = 0x802fa160; +func_802F9FD0 = 0x802fa1b0; +func_802FA060 = 0x802fa240; func_80309B48 = 0x80309ce8; +func_80309D58 = 0x80309ef8; +gctransition_8030BDC0 = 0x8030bf60; gctransition_reset = 0x8030c07c; func_8030D90C = 0x8030daac; func_8030DA44 = 0x8030dbe4; @@ -177,19 +208,27 @@ func_8031C5D4 = 0x8031c9b4; func_8031C618 = 0x8031c9f8; func_8031C638 = 0x8031ca18; func_80320240 = 0x80320630; +func_803203FC = 0x803207ec; func_8032056C = 0x8032095C; func_80320B98 = 0x80320f88; func_80320C94 = 0x80321084; func_80320DB0 = 0x803211a0; +jiggyscore_isCollected = 0x803213d0; +levelSpecificFlags_get = 0x803222d4; levelSpecificFlags_validateCRC1 = 0x8032243c; +func_8032274C = 0x80322b4c; +func_80322758 = 0x80322b58; func_80323240 = 0x80323690; marker_getActor = 0x80329db0; +map_get = 0x80334d10; sfxInstruments_init = 0x80335670; assetCache_init = 0x8033bfd4; func_8033BD6C = 0x8033C1BC; time_getDelta = 0x8033e1ec; func_8033EF58 = 0x8033f3a8; +func_8033EFB0 = 0x8033f400; func_8034C630 = 0x8034ca90; func_8034E698 = 0x8034eaf8; -/* Temporary */ \ No newline at end of file +/* Temporary */ + diff --git a/src/core1/code_9D30.c b/src/core1/code_9D30.c index cb9187a9..3031ca4d 100644 --- a/src/core1/code_9D30.c +++ b/src/core1/code_9D30.c @@ -2,7 +2,9 @@ #include "functions.h" #include "variables.h" +#include "version.h" +#if VERSION == VERSION_USA_1_0 extern u16 D_803A5D00[2][0xF660]; //framebuffer extern s32 framebuffer_width; //framebuffer width extern s32 framebuffer_height; //framebuffer height @@ -437,4 +439,4 @@ s32 func_802485BC(void){ void func_802485C8(UNK_TYPE(s32) arg0){ } - +#endif diff --git a/src/core1/code_E360.c b/src/core1/code_E360.c index 9a6054a7..b4937222 100644 --- a/src/core1/code_E360.c +++ b/src/core1/code_E360.c @@ -1,7 +1,7 @@ #include #include "functions.h" #include "variables.h" - +#include "version.h" void func_8024BF94(s32 arg0); @@ -52,6 +52,27 @@ OSViMode D_80275CD0 = { } }; +#if VERSION == VERSION_PAL +OSViMode D_PAL_80275CD0 = { + OS_VI_PAL_LPN1, + { + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | 0x3100, /*ctrl*/ + 292, /* width*/ + 0x404233A, /* burst*/ + 0x271, /* vSync*/ + 0x150C69, /* hSync*/ + 0xC6F0C6E, /* leap */ + 0x9802E1, /* hstart */ + 0x200, /* xScale */ + 0x0, /* vCurrent */ + }, + { + {0x248, 0x350, 0x48024C, 0x9026B, 2}, + {0x248, 0x350, 0x48024C, 0x9026B, 2}, + } +}; +#endif + // 42200000 3FAD097B 41F00000 457A0000 // C3A68832 DDC3A724 00000000 00000000 @@ -65,7 +86,7 @@ OSMesg D_80280788[10]; OSMesgQueue D_802807B0; OSMesg D_802807C8[1]; OSMesgQueue D_802807D0; -OSMesg D_802807E8[60]; +OSMesg D_802807E8[FRAMERATE]; volatile s32 D_802808D8; s32 D_802808DC; OSThread D_802808E0; @@ -108,17 +129,20 @@ void func_8024BE30(void){ func_8024C428(); osCreateViManager(0xfe); +#if VERSION == VERSION_USA_1_0 if(osTvType != OS_TV_NTSC) osViSetMode(&D_80275CD0); //PAL else osViSetMode(&D_80275C80); //NTSC - +#elif VERSION == VERSION_PAL + osViSetMode(&D_PAL_80275CD0); //PAL +#endif osViSetSpecialFeatures(OS_VI_DITHER_FILTER_ON); osViSetSpecialFeatures(OS_VI_GAMMA_OFF); osViSwapBuffer(&D_803A5D00); osCreateMesgQueue(&D_80280770, D_80280788, 10); osCreateMesgQueue(&D_802807B0, D_802807C8, 1); - osCreateMesgQueue(&D_802807D0, D_802807E8, 60); + osCreateMesgQueue(&D_802807D0, D_802807E8, FRAMERATE); osViSetEvent(&D_80280770,NULL,1); D_80280720 = 0; D_80280724 = 1; @@ -207,7 +231,9 @@ void func_8024C2F8(void *arg0){ func_80247380(); D_802808D8++; if(D_802808D8 == 420){ +#if VERSION == VERSION_USA_1_0 func_802485BC(); +#endif } osSendMesg(&D_802807D0, NULL, OS_MESG_NOBLOCK); From 17a0530ff8d1f0d48205697a02006fcd6b02ba48 Mon Sep 17 00:00:00 2001 From: Banjo Kazooie Date: Thu, 5 Sep 2024 00:43:07 -0500 Subject: [PATCH 04/14] PAL: up to core1/rumblemanager.c --- decompressed.pal.yaml | 50 +++++++++++++-------------- manual_syms.pal.txt | 72 +++++++++++++++++++++++++++++++-------- src/core1/code_10A00.c | 11 ++++-- src/core1/code_11AC0.c | 18 ++++++---- src/core1/rumblemanager.c | 3 +- 5 files changed, 105 insertions(+), 49 deletions(-) diff --git a/decompressed.pal.yaml b/decompressed.pal.yaml index ceaf6dce..d7f93fc3 100644 --- a/decompressed.pal.yaml +++ b/decompressed.pal.yaml @@ -132,12 +132,12 @@ segments: # type: bin # start: 0xD954B0 -# - name: soundfont2ctl -# type: bin -# start: 0xEA3EB0 -# - name: soundfont2tbl -# type: bin -# start: 0xEADE60 +- name: soundfont2ctl + type: bin + start: 0xEC85E0 +- name: soundfont2tbl + type: bin + start: 0xED2590 - name: core1 dir: core1 @@ -164,11 +164,11 @@ segments: - [0xF475C0, c, code_ABB0] - [0xF49870, c, code_CE60] - [0xF4AD70, c, code_E360] - - [0xF4B4C0, bin, untouched] -# # - [0xF27D40, c, code_EAF0] #DONE -# # - [0xF29C50, c,code_10A00] -# # - [0xF2AD10, c, code_11AC0] #DONE -# # - [0xF2C160, c, rumblemanager] #DONE + - [0xF4B4C0, c, code_EAF0] + - [0xF4D3D0, c, code_10A00] + - [0xF4E490, c, code_11AC0] + - [0xF4F890, c, rumblemanager] + - [0xF50010, bin, untouched] # # - [0xF2C890, c, code_13640] #DONE # # - [0xF2C8D0, c, code_13680] #DONE # # - [0xF2C920, c, overlaymanager] #DONE @@ -376,11 +376,10 @@ segments: - [0xF74C60, .data, code_ABB0] - [0xF74C70, .data, code_CE60] - [0xF74CE0, .data, code_E360] - - [0xF74DD0, bin, remain_core1_data] - -# # - [0xF51550, .data, code_EAF0] -# # - [0xF51560, .data, code_10A00] -# # - [0xF51570, .data, code_11AC0] + - [0xF74DD0, .data, code_EAF0] + - [0xF74DE0, .data, code_10A00] + - [0xF74DF0, .data, code_11AC0] + - [0xF75380, bin, remain_core1_data] # # - [0xF51B00, .data, overlaymanager] # # - [0xF51DA0, .data, code_13990] # # - [0xF51DB0, .data, code_15B30] @@ -417,13 +416,12 @@ segments: - [0xF76710, .rodata, code_5650] - [0xF76770, .rodata, code_72B0] - [0xF76790, .rodata, code_7F60] - # - [0xF767B0, .rodata, code_9D30] - [0xF767B0, .rodata, code_CE60] - - [0xF76A80, bin, remain_core1_rodata] -# # - [0xF53220, .rodata, code_EAF0] -# # - [0xF532A0, .rodata, code_10A00] -# # - [0xF539B0, .rodata, code_11AC0] -# # - [0xF539C0, .rodata, rumblemanager] + - [0xF76A80, .rodata, code_EAF0] + - [0xF76B00, .rodata, code_10A00] + - [0xF77210, .rodata, code_11AC0] + - [0xF77220, .rodata, rumblemanager] + - [0xF77230, bin, remain_core1_rodata] # # - [0xF539D0, .rodata, overlaymanager] # # - [0xF53A50, .rodata, code_13990] # # - [0xF53A70, .rodata, code_18350] @@ -469,10 +467,10 @@ segments: - [0xF791D0, .bss, code_ABB0] - [0xF791D0, .bss, code_CE60] - [0xF791D0, .bss, code_E360] -# # - [0xF791D0, .bss, code_EAF0] -# # - [0xF791D0, .bss, code_10A00] -# # - [0xF791D0, .bss, code_11AC0] -# # - [0xF791D0, .bss, rumblemanager] + - [0xF791D0, .bss, code_EAF0] + - [0xF791D0, .bss, code_10A00] + - [0xF791D0, .bss, code_11AC0] + - [0xF791D0, .bss, rumblemanager] # # - [0xF791D0, .bss, code_13640] # # - [0xF791D0, .bss, overlaymanager] # # - [0xF791D0, .bss, code_13990] diff --git a/manual_syms.pal.txt b/manual_syms.pal.txt index 3d82986a..6accc255 100644 --- a/manual_syms.pal.txt +++ b/manual_syms.pal.txt @@ -33,27 +33,19 @@ boot_gOverlayTable = gOverlayTable; boot_func_8023DA20 = func_8023DA20; /* Temporary Correct*/ -viewport_get_position_vec3f = 0x8024c21c; -veiwport_get_position_vec3w = 0x8024c240; -viewport_get_rotation_vec3f = 0x8024c3b4; -func_8024E71C = 0x8024e36c; -pfsManager_update = 0x8024e418; -pfsManager_init = 0x8024ecac; -pfsManager_getStartReadData = 0x8024ee00; -musicInstruments_init = 0x8024f130; -func_80250034 = 0x8024fc84; -func_80250530 = 0x80250180; -func_80250650 = 0x802502a0; -rumbleManager_80250C08 = 0x80250858; -rumbleManager_init = 0x802508d4; -rumbleManager_80250FC0 = 0x80250c10; spriteGetFramePtr = 0x80250d18; overlayManagerloadCore2 = 0x80250f58; +mlMtxGet = 0x80251000; +mlMtxIdent = 0x8025175c; +mlMtxRotPitch = 0x802518c8; +mlMtxRotYaw = 0x802519d4; +func_8025235C = 0x80251fac; func_80253034 = 0x80252c84; func_802535A8 = 0x802531f8; func_80254008 = 0x80253c58; func_80254028 = 0x80253c78; func_8025425C = 0x80253eac; +memcpy = 0x80254258; heap_init = 0x80254360; malloc = 0x802548f8; free = 0x80254d40; @@ -70,12 +62,15 @@ ml_distance_vec3f = 0x80255cb4; ml_vec3f_normalize_copy = 0x80256008; ml_vec3f_normalize = 0x802560a0; ml_vec3f_set_length_copy = 0x80256230; +ml_vec3f_pitch_rotate_copy = 0x802564bc; ml_vec3f_yaw_rotate_copy = 0x80256550; +func_80256E24 = 0x80256a74; ml_init = 0x80257074; ml_map_f = 0x80257768; func_802585E0 = 0x80258230; ml_sin_deg = 0x8025840c; ml_cos_deg = 0x8025843c; +mlNormalizeAngle = 0x8025846c; ml_vec3f_copy = 0x802587f4; ml_vec3f_diff_copy = 0x80258810; ml_vec3f_diff = 0x80258844; @@ -109,6 +104,21 @@ n_alSynSetPitch = 0x8025d1f0; n_alSynSetFXMix = 0x8025d270; n_alSynStopVoice = 0x8025d300; n_alSynFreeVoice = 0x8025d370; +n_alCSPNew = 0x8025e70c; +alCSPSetBank = 0x8025e880; +alCSPStop = 0x8025e8c0; +n_alCSeqNew = 0x8025ed0c; +alCSPSetSeq = 0x8025ef90; +alCSPPlay = 0x8025efd0; +alCSPSetVol = 0x8025f000; +func_8025F3F0 = 0x8025f040; +alCSPSetTempo = 0x8025f080; +func_8025F4A0 = 0x8025f0f0; +alCSPGetTempo = 0x8025f120; +func_8025F510 = 0x8025f160; +func_8025F570 = 0x8025f1c0; +func_8025F5C0 = 0x8025f210; + bzero = 0x80263790; osWriteBackDCacheAll = 0x80263830; __osInitialize_common = 0x80263860; @@ -158,6 +168,22 @@ osViSwapBuffer = 0x80265f90; osViSetEvent = 0x80265fe0; osViGetNextFramebuffer = 0x80266050; osViBlack = 0x80266090; +guOrtho = 0x80266254; +guTranslate = 0x80266308; +guRotate = 0x802664f4; +osContStartReadData = 0x80266550; +osContGetReadData = 0x80266614; +osContInit = 0x802667b0; +osContSetCh = 0x80266b70; +alBnkfNew = 0x80266ce4; +osGetTime = 0x80266e30; +alCSeqGetTicks = 0x8026769c; +osMotorStop = 0x80267980; +osMotorStart = 0x80267ae8; +osMotorInit = 0x80267dd0; +osPfsInit = 0x80267fa0; + +D_80276574 = 0x802762c4; framebuffer_width = 0x802762d8; framebuffer_height = 0x802762dc; n_syn = 0x80276bd4; @@ -168,6 +194,7 @@ core2_TEXT_START = 0x80286db0; player_getPosition = 0x8028e7c4; player_getPosition_s32 = 0x8028e95c; func_8028EE84 = 0x8028eca4; +player_is_present = 0x8028eff4; func_8028F22C = 0x8028f04c; spawnQueue_func_802C3A18 = 0x802C3898; spawnQueue_flush = 0x802c38b8; @@ -176,21 +203,26 @@ mapSpecificFlags_get = 0x802caeb8; mapSpecificFlags_validateCRC1 = 0x802cb1cc; func_802D686C = 0x802d6a4c; chmole_learnedAllSpiralMountainAbilities = 0x802da678; +chOverlayNoController_spawn = 0x802dd1e8; +chOverlayNoController_func_802DD040 = 0x802dd220; func_802E3580 = 0x802E3770; func_802E35D0 = 0x802E37C0; func_802E35D8 = 0x802E37c8; func_802E3F8C = 0x802E417c; func_802E4170 = 0x802E4360; func_802E4214 = 0x802E4404; +func_802E4384 = 0x802e4574; func_802E4424 = 0x802E4614; game_defrag = 0x802e4ac8; getGameMode = 0x802e4bec; +func_802E4A08 = 0x802e4bf8; func_802F9AA8 = 0x802f9c88; func_802F9F80 = 0x802fa160; func_802F9FD0 = 0x802fa1b0; func_802FA060 = 0x802fa240; func_80309B48 = 0x80309ce8; func_80309D58 = 0x80309ef8; +gctransition_done = 0x8030bf38; gctransition_8030BDC0 = 0x8030bf60; gctransition_reset = 0x8030c07c; func_8030D90C = 0x8030daac; @@ -209,6 +241,7 @@ func_8031C618 = 0x8031c9f8; func_8031C638 = 0x8031ca18; func_80320240 = 0x80320630; func_803203FC = 0x803207ec; +func_803204E4 = 0x803208d4; func_8032056C = 0x8032095C; func_80320B98 = 0x80320f88; func_80320C94 = 0x80321084; @@ -219,16 +252,27 @@ levelSpecificFlags_validateCRC1 = 0x8032243c; func_8032274C = 0x80322b4c; func_80322758 = 0x80322b58; func_80323240 = 0x80323690; +timedFunc_set_3 = 0x803253b4; marker_getActor = 0x80329db0; map_get = 0x80334d10; sfxInstruments_init = 0x80335670; +assetcache_release = 0x8033b828; +func_8033B788 = 0x8033bbd8; +assetcache_get = 0x8033bbe8; assetCache_init = 0x8033bfd4; func_8033BD6C = 0x8033C1BC; +func_8033DD04 = 0x8033e154; +func_8033DD90 = 0x8033e1e0; time_getDelta = 0x8033e1ec; func_8033EF58 = 0x8033f3a8; func_8033EFB0 = 0x8033f400; +demo_readInput = 0x8034a334; +randf = 0x8034a7e0; func_8034C630 = 0x8034ca90; func_8034E698 = 0x8034eaf8; +D_803727F4 = 0x80372d74; +D_80379B90 = 0x8037A560; /* Temporary */ + diff --git a/src/core1/code_10A00.c b/src/core1/code_10A00.c index 858af440..01692e67 100644 --- a/src/core1/code_10A00.c +++ b/src/core1/code_10A00.c @@ -2,6 +2,8 @@ #include "functions.h" #include "variables.h" +#include "version.h" + extern s32 D_803727F4; extern struct { @@ -30,8 +32,13 @@ typedef struct { extern s32 D_80276574; /* .data */ -s32 D_80275D30 = 0xC3A68832; //WHAT IS THIS? -s32 D_80275D34 = 0xDDC3A724; //WHAT IS THIS? +#if VERSION == VERSION_USA_1_0 + s32 D_80275D30 = 0xC3A68832; //WHAT IS THIS? + s32 D_80275D34 = 0xDDC3A724; //WHAT IS THIS? +#elif VERSION == VERSION_PAL + s32 D_80275D30 = 0xED7BCDB7; //WHAT IS THIS? + s32 D_80275D34 = 0xF82DC7AC; //WHAT IS THIS? +#endif s32 D_80275D38 = 0; /* .bss */ diff --git a/src/core1/code_11AC0.c b/src/core1/code_11AC0.c index cfa70c3d..280d51b0 100644 --- a/src/core1/code_11AC0.c +++ b/src/core1/code_11AC0.c @@ -5,6 +5,8 @@ #include "music.h" #include "n_libaudio.h" +#include "version.h" + extern void func_8025F570(ALCSPlayer *, u8); extern void func_8025F510(ALCSPlayer *, u8, u8); extern void func_8025F5C0(ALCSPlayer *, u8); @@ -266,7 +268,11 @@ ALBank *music_get_sound_bank(void){ void func_8024F764(s32 arg0){//music track load if(D_802820E0[arg0] == NULL){ func_8033B788(); +#if VERSION == VERSION_USA_1_0 D_802820E0[arg0] = assetcache_get(arg0 + 0x1516); +#elif VERSION == VERSION_PAL + D_802820E0[arg0] = assetcache_get(arg0 + 0xd74); +#endif } } @@ -532,8 +538,8 @@ void func_80250200(s32 arg0, s16 chan, s16 arg2, f32 arg3){ mask = osSetIntMask(OS_IM_NONE); tmpf = (!func_80250074(arg0))? func_8025F4A0(sp28, chan) :127.0f; - if(arg3 < 0.0333333351f){ - arg3 = 0.0333333351f; + if(arg3 < (2.0f/FRAMERATE)){ + arg3 = (2.0f/FRAMERATE); } for(i = 0; i< 0x20; i++){ @@ -543,7 +549,7 @@ void func_80250200(s32 arg0, s16 chan, s16 arg2, f32 arg3){ D_80282110[i].unk0 = arg0; D_80282110[i].chan = chan; D_80282110[i].unk8 = tmpf; - D_80282110[i].unkC = (arg2 - tmpf)/((arg3 * 60.0f)/2); + D_80282110[i].unkC = (arg2 - tmpf)/((arg3 * (float)FRAMERATE)/2); D_80282110[i].unk10 = arg2; osSetIntMask(mask); return; @@ -561,8 +567,8 @@ void func_80250360(s32 arg0, s32 arg1, f32 arg2){ sp24 = func_802500CC(arg0); sp1C = osSetIntMask(1); tempo = alCSPGetTempo(sp24); - if( arg2 < 0.0333333351f){ - arg2 = 0.0333333351f; + if( arg2 < (2.0f/FRAMERATE)){ + arg2 = (2.0f/FRAMERATE); } for(i = 0; i < 0x20; i++){ if(D_80282110[i].unk8 == D_80282110[i].unk10 @@ -571,7 +577,7 @@ void func_80250360(s32 arg0, s32 arg1, f32 arg2){ D_80282110[i].unk0 = arg0; D_80282110[i].chan = -1; D_80282110[i].unk8 = tempo; - D_80282110[i].unkC = (arg1 - tempo)/((arg2 * 60.0f)/2); + D_80282110[i].unkC = (arg1 - tempo)/((arg2 * (float)FRAMERATE)/2); D_80282110[i].unk10 = arg1; osSetIntMask(sp1C); return; diff --git a/src/core1/rumblemanager.c b/src/core1/rumblemanager.c index dd6af1e6..c9d9533f 100644 --- a/src/core1/rumblemanager.c +++ b/src/core1/rumblemanager.c @@ -2,6 +2,7 @@ #include "functions.h" #include "variables.h" +#include "version.h" void func_8024F35C(s32); @@ -68,7 +69,7 @@ void __rumbleUpdate(void *arg0) { do{ osRecvMesg(&D_80282390, NULL, 1); D_802827E0++; - if (!D_802823B0 && ((D_802827E0 % 60) == 0)) { + if (!D_802823B0 && ((D_802827E0 % FRAMERATE) == 0)) { func_80250930(); } prev_state = rumble_state; From b1b21a82ac9f0d1ad03854d67d8cbfab16ebf1bf Mon Sep 17 00:00:00 2001 From: Banjo Kazooie Date: Thu, 5 Sep 2024 20:17:24 -0500 Subject: [PATCH 05/14] PAL: match core1/code_13640.c --- decompressed.pal.yaml | 6 +++--- manual_syms.pal.txt | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/decompressed.pal.yaml b/decompressed.pal.yaml index d7f93fc3..49ed6b7c 100644 --- a/decompressed.pal.yaml +++ b/decompressed.pal.yaml @@ -168,8 +168,8 @@ segments: - [0xF4D3D0, c, code_10A00] - [0xF4E490, c, code_11AC0] - [0xF4F890, c, rumblemanager] - - [0xF50010, bin, untouched] -# # - [0xF2C890, c, code_13640] #DONE + - [0xF50010, c, code_13640] + - [0xF50050, bin, untouched] # # - [0xF2C8D0, c, code_13680] #DONE # # - [0xF2C920, c, overlaymanager] #DONE # # - [0xF2CBE0, c, code_13990] @@ -471,7 +471,7 @@ segments: - [0xF791D0, .bss, code_10A00] - [0xF791D0, .bss, code_11AC0] - [0xF791D0, .bss, rumblemanager] -# # - [0xF791D0, .bss, code_13640] + - [0xF791D0, .bss, code_13640] # # - [0xF791D0, .bss, overlaymanager] # # - [0xF791D0, .bss, code_13990] # # - [0xF791D0, .bss, code_15770] diff --git a/manual_syms.pal.txt b/manual_syms.pal.txt index 6accc255..b7ce9a56 100644 --- a/manual_syms.pal.txt +++ b/manual_syms.pal.txt @@ -193,7 +193,7 @@ osViClock = 0x80276e78; core2_TEXT_START = 0x80286db0; player_getPosition = 0x8028e7c4; player_getPosition_s32 = 0x8028e95c; -func_8028EE84 = 0x8028eca4; +player_getWaterState = 0x8028eca4; player_is_present = 0x8028eff4; func_8028F22C = 0x8028f04c; spawnQueue_func_802C3A18 = 0x802C3898; From fd186e3b9ffbfa89d2d1d069bac881d00b7ccd6f Mon Sep 17 00:00:00 2001 From: Banjo Kazooie Date: Thu, 5 Sep 2024 20:18:30 -0500 Subject: [PATCH 06/14] PAL: match core1/code_13680.c --- decompressed.pal.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/decompressed.pal.yaml b/decompressed.pal.yaml index 49ed6b7c..a3471b2b 100644 --- a/decompressed.pal.yaml +++ b/decompressed.pal.yaml @@ -169,8 +169,8 @@ segments: - [0xF4E490, c, code_11AC0] - [0xF4F890, c, rumblemanager] - [0xF50010, c, code_13640] - - [0xF50050, bin, untouched] -# # - [0xF2C8D0, c, code_13680] #DONE + - [0xF50050, c, code_13680] + - [0xF500a0, bin, untouched] # # - [0xF2C920, c, overlaymanager] #DONE # # - [0xF2CBE0, c, code_13990] # # - [0xF2E840, hasm, code_155F0] #DONE From 6d0b4b7e5d62665279658583243f3571bce9c3bc Mon Sep 17 00:00:00 2001 From: Banjo Kazooie Date: Thu, 5 Sep 2024 22:06:51 -0500 Subject: [PATCH 07/14] PAL: match core1/overlaymanager --- decompressed.pal.yaml | 37 +++++----- manual_syms.pal.txt | 157 +++++++++++++++++++++++++++++++++++++++++- 2 files changed, 175 insertions(+), 19 deletions(-) diff --git a/decompressed.pal.yaml b/decompressed.pal.yaml index a3471b2b..972a0bae 100644 --- a/decompressed.pal.yaml +++ b/decompressed.pal.yaml @@ -170,8 +170,8 @@ segments: - [0xF4F890, c, rumblemanager] - [0xF50010, c, code_13640] - [0xF50050, c, code_13680] - - [0xF500a0, bin, untouched] -# # - [0xF2C920, c, overlaymanager] #DONE + - [0xF500a0, c, overlaymanager] + - [0xF50360, bin, untouched] # # - [0xF2CBE0, c, code_13990] # # - [0xF2E840, hasm, code_155F0] #DONE # # - [0xF2E880, c, overlay] #DONE @@ -379,8 +379,8 @@ segments: - [0xF74DD0, .data, code_EAF0] - [0xF74DE0, .data, code_10A00] - [0xF74DF0, .data, code_11AC0] - - [0xF75380, bin, remain_core1_data] -# # - [0xF51B00, .data, overlaymanager] + - [0xF75380, .data, overlaymanager] + - [0xF75620, bin, remain_core1_data] # # - [0xF51DA0, .data, code_13990] # # - [0xF51DB0, .data, code_15B30] # # - [0xF51DC0, .data, memory] @@ -421,8 +421,8 @@ segments: - [0xF76B00, .rodata, code_10A00] - [0xF77210, .rodata, code_11AC0] - [0xF77220, .rodata, rumblemanager] - - [0xF77230, bin, remain_core1_rodata] -# # - [0xF539D0, .rodata, overlaymanager] + - [0xF77230, .rodata, overlaymanager] + - [0xF772b0, bin, remain_core1_rodata] # # - [0xF53A50, .rodata, code_13990] # # - [0xF53A70, .rodata, code_18350] # # - [0xF53B70, .rodata, code_1BE90] @@ -472,7 +472,7 @@ segments: - [0xF791D0, .bss, code_11AC0] - [0xF791D0, .bss, rumblemanager] - [0xF791D0, .bss, code_13640] -# # - [0xF791D0, .bss, overlaymanager] + - [0xF791D0, .bss, overlaymanager] # # - [0xF791D0, .bss, code_13990] # # - [0xF791D0, .bss, code_15770] # # - [0xF791D0, .bss, code_15B30] @@ -499,11 +499,16 @@ segments: # # - [0xF791D0, .bss, io/leointerrupt] - name: core2 dir: core2 - type: bin + type: code start: 0x00F791D0 -# # vram: 0x80286DB0 # via https://hack64.net/wiki/doku.php?id=player_kazooie:ram_map -# # follows_vram: core1 -# # subsegments: + vram: 0x80286DB0 # via https://hack64.net/wiki/doku.php?id=player_kazooie:ram_map + follows_vram: core1 + subsegments: + - [0xF791D0, linker_offset, TEXT_START] #text Section + - [0xF791D0, bin, untouched] + - [0x1055E20, linker_offset, TEXT_END] #text Section + - [0x1055E20, linker_offset, DATA_START] #text Section + - [0x1055E20, bin, untouched_data] # # - [0xF791D0, c, animctrl] #DONE # # - [0xF56430, c, anim/sprite] #DONE # # - [0xF56A40, c, animcache] #DONE @@ -1625,10 +1630,10 @@ segments: # # - [0x1048560, .bss, code_CBBF0] # # - [0x1048560, .bss, code_CD0A0] # # - [0x1048560, .bss, code_CD6E0] -# - name: CC -# dir: CC -# type: bin -# start: 0x0106C980 +- name: CC + dir: CC + type: bin + start: 0x0106C980 # # vram: 0x803863F0 # # follows_vram: core2 # # exclusive_ram_id: overlay @@ -2362,7 +2367,7 @@ segments: dir: emptyLvl type: code start: 0x010E1470 - vram: 0x803863F0 + vram: 0x80386DD0 # follows_vram: core2 exclusive_ram_id: overlay subsegments: diff --git a/manual_syms.pal.txt b/manual_syms.pal.txt index b7ce9a56..2d76b73c 100644 --- a/manual_syms.pal.txt +++ b/manual_syms.pal.txt @@ -33,19 +33,20 @@ boot_gOverlayTable = gOverlayTable; boot_func_8023DA20 = func_8023DA20; /* Temporary Correct*/ -spriteGetFramePtr = 0x80250d18; -overlayManagerloadCore2 = 0x80250f58; mlMtxGet = 0x80251000; mlMtxIdent = 0x8025175c; mlMtxRotPitch = 0x802518c8; mlMtxRotYaw = 0x802519d4; func_8025235C = 0x80251fac; func_80253034 = 0x80252c84; +overlay_load = 0x80252Ca0; func_802535A8 = 0x802531f8; func_80254008 = 0x80253c58; func_80254028 = 0x80253c78; func_8025425C = 0x80253eac; memcpy = 0x80254258; +heap_get_size = 0x80254320; +func_802546DC = 0x8025432c; heap_init = 0x80254360; malloc = 0x802548f8; free = 0x80254d40; @@ -190,6 +191,7 @@ n_syn = 0x80276bd4; osClockRate = 0x80276e70; osViClock = 0x80276e78; +core2_VRAM = 0x80286db0; core2_TEXT_START = 0x80286db0; player_getPosition = 0x8028e7c4; player_getPosition_s32 = 0x8028e95c; @@ -272,7 +274,156 @@ func_8034C630 = 0x8034ca90; func_8034E698 = 0x8034eaf8; D_803727F4 = 0x80372d74; D_80379B90 = 0x8037A560; +core2_TEXT_END = 0x80363a00; +core2_DATA_START = 0x80363a00; +core2_RODATA_END = 0x8037A560; +core2_BSS_START = 0x8037A560; +core2_BSS_END = 0x80386dd0; +core2_VRAM_END = 0x80386dd0; + +CC_VRAM = 0x80386dd0; +CC_VRAM_END = 0x8038a9e0; +CC_ROM_START = 0x0106c980; +CC_ROM_END = 0x01070500; +CC_TEXT_START = 0x80386dd0; +CC_TEXT_END = 0x8038a480; +CC_DATA_START = 0x8038a480; +CC_RODATA_END = 0x8038a950; +CC_BSS_START = 0x8038a950; +CC_BSS_END = 0x8038a9e0; + +MMM_VRAM = 0x80386dd0; +MMM_VRAM_END = 0x8038cf10; +MMM_ROM_START = 0x0107bb30; +MMM_ROM_END = 0x01081c00; +MMM_TEXT_START = 0x80386dd0; +MMM_TEXT_END = 0x8038c3c0; +MMM_DATA_START = 0x8038c3c0; +MMM_RODATA_END = 0x8038cea0; +MMM_BSS_START = 0x8038cea0; +MMM_BSS_END = 0x8038cf10; + +GV_VRAM = 0x80386dd0; +GV_VRAM_END = 0x803924f0; +GV_ROM_START = 0x01070500; +GV_ROM_END = 0x0107bb30; +GV_TEXT_START = 0x80386dd0; +GV_TEXT_END = 0x803915b0; +GV_DATA_START = 0x803915b0; +GV_RODATA_END = 0x80392400; +GV_BSS_START = 0x80392400; +GV_BSS_END = 0x803924f0; + +TTC_VRAM = 0x80386dd0; +TTC_VRAM_END = 0x8038e120; +TTC_ROM_START = 0x01081c00; +TTC_ROM_END = 0x01088f00; +TTC_TEXT_START = 0x80386dd0; +TTC_TEXT_END = 0x8038CD90; +TTC_DATA_START = 0x8038CD90; +TTC_RODATA_END = 0x8038E0D0; +TTC_BSS_START = 0x8038E0D0; +TTC_BSS_END = 0x8038e120; + +MM_VRAM = 0x80386dd0; +MM_VRAM_END = 0x8038a680; +MM_ROM_START = 0x01088f00; +MM_ROM_END = 0x0108c790; +MM_TEXT_START = 0x80386dd0; +MM_TEXT_END = 0x8038a270; +MM_DATA_START = 0x8038a270; +MM_RODATA_END = 0x8038a660; +MM_BSS_START = 0x8038a660; +MM_BSS_END = 0x8038a680; + +BGS_VRAM = 0x80386DD0; +BGS_TEXT_START = 0x80386DD0; +BGS_ROM_START = 0x0108c790; +BGS_TEXT_END = 0x80391070; +BGS_DATA_START = 0x80391070; +BGS_RODATA_END = 0x80391C10; +BGS_BSS_START = 0x80391C10; +BGS_BSS_END = 0x80391C30; +BGS_VRAM_END = 0x80391C30; +BGS_ROM_END = 0x010975d0; + +RBB_VRAM = 0x80386DD0; +RBB_VRAM_END = 0x80391cd0; +RBB_ROM_START = 0x010975d0; +RBB_ROM_END = 0x010a2470; +RBB_TEXT_START = 0x80386DD0; +RBB_TEXT_END = 0x80390a50; +RBB_DATA_START = 0x80390a50; +RBB_RODATA_END = 0x80391c70; +RBB_BSS_START = 0x80391c70; +RBB_BSS_END = 0x80391cd0; + +FP_VRAM = 0x80386dd0; +FP_VRAM_END = 0x80393fd0; +FP_ROM_START = 0x010a2470; +FP_ROM_END = 0x010aef90; +FP_TEXT_START = 0x80386dd0; +FP_TEXT_END = 0x803923d0; +FP_DATA_START = 0x803923d0; +FP_RODATA_END = 0x803938f0; +FP_BSS_START = 0x803938f0; +FP_BSS_END = 0x80393fd0; + +CCW_VRAM = 0x80386dd0; +CCW_VRAM_END = 0x803907d0; +CCW_ROM_START = 0x010d7A90; +CCW_ROM_END = 0x010e1470; +CCW_TEXT_START = 0x80386dd0; +CCW_TEXT_END = 0x8038f530; +CCW_DATA_START = 0x8038f530; +CCW_RODATA_END = 0x803907b0; +CCW_BSS_START = 0x803907b0; +CCW_BSS_END = 0x803907d0; + +SM_VRAM = 0x80386dd0; +SM_VRAM_END = 0x8038c010; +SM_ROM_START = 0x010aef90; +SM_ROM_END = 0x010b4170; +SM_TEXT_START = 0x80386dd0; +SM_TEXT_END = 0x8038b6e0; +SM_DATA_START = 0x8038b6e0; +SM_RODATA_END = 0x8038bfb0; +SM_BSS_START = 0x8038bfb0; +SM_BSS_END = 0x8038c010; + +cutscenes_VRAM = 0x80386dd0; +cutscenes_VRAM_END = 0x8038f3d0; +cutscenes_ROM_START = 0x010b4170; +cutscenes_ROM_END = 0x010bc760; +cutscenes_TEXT_START = 0x80386dd0; +cutscenes_TEXT_END = 0x8038dd30; +cutscenes_DATA_START = 0x8038dd30; +cutscenes_RODATA_END = 0x8038f3c0; +cutscenes_BSS_START = 0x8038f3c0; +cutscenes_BSS_END = 0x8038f3d0; + +lair_VRAM = 0x80386dd0; +lair_VRAM_END = 0x80395e50; +lair_ROM_START = 0x010bc760; +lair_ROM_END = 0x010cb6c0; +lair_TEXT_START = 0x80386dd0; +lair_TEXT_END = 0x80393690; +lair_DATA_START = 0x80393690; +lair_RODATA_END = 0x80395d30; +lair_BSS_START = 0x80395d30; +lair_BSS_END = 0x80395e50; + +fight_VRAM = 0x80386dd0; +fight_VRAM_END = 0x80393390; +fight_ROM_START = 0x010cb6c0; +fight_ROM_END = 0x010d7a90; +fight_TEXT_START = 0x80386dd0; +fight_TEXT_END = 0x80391de0; +fight_DATA_START = 0x80391de0; +fight_RODATA_END = 0x803931a0; +fight_BSS_START = 0x803931a0; +fight_BSS_END = 0x80393390; + /* Temporary */ - From 64c9d1eca870f4a403622103a13250656a2a87bd Mon Sep 17 00:00:00 2001 From: Banjo Kazooie Date: Thu, 5 Sep 2024 22:26:30 -0500 Subject: [PATCH 08/14] PAL: match upto core1/code_15770 --- decompressed.pal.yaml | 22 +++++++++++----------- manual_syms.pal.txt | 10 ++++------ src/core1/code_13990.c | 13 ++++++++----- 3 files changed, 23 insertions(+), 22 deletions(-) diff --git a/decompressed.pal.yaml b/decompressed.pal.yaml index 972a0bae..9e4f156c 100644 --- a/decompressed.pal.yaml +++ b/decompressed.pal.yaml @@ -171,11 +171,11 @@ segments: - [0xF50010, c, code_13640] - [0xF50050, c, code_13680] - [0xF500a0, c, overlaymanager] - - [0xF50360, bin, untouched] -# # - [0xF2CBE0, c, code_13990] -# # - [0xF2E840, hasm, code_155F0] #DONE -# # - [0xF2E880, c, overlay] #DONE -# # - [0xF2E9C0, c, code_15770] #DONE + - [0xF50360, c, code_13990] + - [0xF51FC0, hasm, code_155F0] + - [0xF52000, c, overlay] + - [0xF52140, c, code_15770] + - [0xF52500, bin, untouched] # # - [0xF2ED80, c, code_15B30] #DONE # # - [0xF2FCA0, c, memory] #DONE # # - [0xF31360, c, code_18110] #DONE @@ -380,8 +380,8 @@ segments: - [0xF74DE0, .data, code_10A00] - [0xF74DF0, .data, code_11AC0] - [0xF75380, .data, overlaymanager] - - [0xF75620, bin, remain_core1_data] -# # - [0xF51DA0, .data, code_13990] + - [0xF75620, .data, code_13990] + - [0xF75630, bin, remain_core1_data] # # - [0xF51DB0, .data, code_15B30] # # - [0xF51DC0, .data, memory] # # - [0xF51DF0, .data, code_18310] @@ -422,8 +422,8 @@ segments: - [0xF77210, .rodata, code_11AC0] - [0xF77220, .rodata, rumblemanager] - [0xF77230, .rodata, overlaymanager] - - [0xF772b0, bin, remain_core1_rodata] -# # - [0xF53A50, .rodata, code_13990] + - [0xF772B0, .rodata, code_13990] + - [0xF772D0, bin, remain_core1_rodata] # # - [0xF53A70, .rodata, code_18350] # # - [0xF53B70, .rodata, code_1BE90] # # - [0xF53BA0, .rodata, code_1D5D0] @@ -473,8 +473,8 @@ segments: - [0xF791D0, .bss, rumblemanager] - [0xF791D0, .bss, code_13640] - [0xF791D0, .bss, overlaymanager] -# # - [0xF791D0, .bss, code_13990] -# # - [0xF791D0, .bss, code_15770] + - [0xF791D0, .bss, code_13990] + - [0xF791D0, .bss, code_15770] # # - [0xF791D0, .bss, code_15B30] # # - [0xF791D0, .bss, memory] # # - [0xF791D0, .bss, code_18210] diff --git a/manual_syms.pal.txt b/manual_syms.pal.txt index 2d76b73c..082f09ca 100644 --- a/manual_syms.pal.txt +++ b/manual_syms.pal.txt @@ -33,11 +33,7 @@ boot_gOverlayTable = gOverlayTable; boot_func_8023DA20 = func_8023DA20; /* Temporary Correct*/ -mlMtxGet = 0x80251000; -mlMtxIdent = 0x8025175c; -mlMtxRotPitch = 0x802518c8; -mlMtxRotYaw = 0x802519d4; -func_8025235C = 0x80251fac; +func_80253010 = 0x80252c60; func_80253034 = 0x80252c84; overlay_load = 0x80252Ca0; func_802535A8 = 0x802531f8; @@ -183,6 +179,8 @@ osMotorStop = 0x80267980; osMotorStart = 0x80267ae8; osMotorInit = 0x80267dd0; osPfsInit = 0x80267fa0; +osInvalICache = 0x80268060; + D_80276574 = 0x802762c4; framebuffer_width = 0x802762d8; @@ -257,6 +255,7 @@ func_80323240 = 0x80323690; timedFunc_set_3 = 0x803253b4; marker_getActor = 0x80329db0; map_get = 0x80334d10; +func_80335134 = 0x80335584; sfxInstruments_init = 0x80335670; assetcache_release = 0x8033b828; func_8033B788 = 0x8033bbd8; @@ -426,4 +425,3 @@ fight_BSS_END = 0x80393390; /* Temporary */ - diff --git a/src/core1/code_13990.c b/src/core1/code_13990.c index 086bf7a5..05687f95 100644 --- a/src/core1/code_13990.c +++ b/src/core1/code_13990.c @@ -2,18 +2,21 @@ #include "functions.h" #include "variables.h" +#include "version.h" + #include "ml/mtx.h" void _guRotateF(Mtx*, f32, f32, f32, f32); f32 func_80263FF0(f32); f32 cosf(f32); -#ifndef CORE2_DATA_CRC2 - #define CORE2_DATA_CRC2 0x84D7B4F8 +#if VERSION == VERSION_USA_1_0 + s32 D_80276570 = 0xFF62C2B8; //WHAT IS THIS? + s32 D_80276574 = 0x84D7B4F8; //CORE2_DATA_CRC2 +#elif VERSION == VERSION_PAL + s32 D_80276570 = 0xF71CBE76; //WHAT IS THIS? + s32 D_80276574 = 0xA2B6F47C; //CORE2_DATA_CRC2 #endif - -s32 D_80276570 = 0xFF62C2B8; //WHAT IS THIS? -s32 D_80276574 = CORE2_DATA_CRC2; f32 D_80276578 = BAD_DTOR; f32 D_8027657C = BAD_DTOR; From 057a22e8effb6e8131d24ddc05411fe3f07a805d Mon Sep 17 00:00:00 2001 From: Banjo Kazooie Date: Sat, 7 Sep 2024 01:54:12 -0500 Subject: [PATCH 09/14] PAL: match up through core1/audio/copy --- decompressed.pal.yaml | 521 +++++++++++++++++++++-------------------- manual_syms.pal.txt | 284 ++++++++++------------ src/core1/code_0.c | 2 +- src/core1/code_18350.c | 6 + src/core1/code_1BE90.c | 11 +- src/core1/ll.c | 45 ++++ src/core1/memory.c | 7 +- symbol_addrs.pal.txt | 31 ++- 8 files changed, 464 insertions(+), 443 deletions(-) diff --git a/decompressed.pal.yaml b/decompressed.pal.yaml index 9e4f156c..709d0a64 100644 --- a/decompressed.pal.yaml +++ b/decompressed.pal.yaml @@ -175,188 +175,188 @@ segments: - [0xF51FC0, hasm, code_155F0] - [0xF52000, c, overlay] - [0xF52140, c, code_15770] - - [0xF52500, bin, untouched] -# # - [0xF2ED80, c, code_15B30] #DONE -# # - [0xF2FCA0, c, memory] #DONE -# # - [0xF31360, c, code_18110] #DONE -# # - [0xF31460, c, code_18210] #DONE -# # - [0xF31560, c, code_18310] #DONE -# # - [0xF315A0, c, code_18350] #DONE -# # - [0xF350E0, c, code_1BE90] #DONE -# # - [0xF367E0, c, code_1D590] #DONE -# # - [0xF36810, hasm, code_1D5C0] #DONE -# # - [0xF36820, c, code_1D5D0] #DONE -# # - [0xF375B0, c, code_1E360] #DONE -# # - [0xF37930, c, code_1E6E0] #DONE -# # - [0xF37A70, hasm, code_1E820] #DONE -# # - [0xF37B10, c, audio/n_sl] #DONE -# # - [0xF37BA0, c, audio/n_synthesizer] #DONE -# # - [0xF38580, c, audio/event] #DONE -# # - [0xF38860, c, audio/n_synaddplayer] #DONE -# # - [0xF38A30, c, audio/n_synallocvoice] #DONE -# # - [0xF38C30, c, audio/n_synsetvol] #DONE -# # - [0xF38CD0, c, audio/n_synstartvoice] #DONE -# # - [0xF38D50, c, audio/n_synsetpan] #DONE -# # - [0xF38DD0, c, audio/n_synsetpitch] #DONE -# # - [0xF38E50, c, audio/n_synsetfxmix] #DONE -# # - [0xF38EE0, c, audio/n_synstopvoice] #DONE -# # - [0xF38F50, c, audio/n_synfreevoice] #DONE -# # - [0xF38FF0, c, audio/n_csplayer] #DONE -# # - [0xF3A460, c, audio/cspsetbank] #DONE -# # - [0xF3A4A0, c, audio/cspstop] #DONE -# # - [0xF3A4D0, c, audio/n_csq] #DONE -# # - [0xF3AB70, c, audio/cspsetseq] #DONE -# # - [0xF3ABB0, c, audio/cspplay] #DONE -# # - [0xF3ABE0, c, audio/cspsetvol] #DONE -# # - [0xF3AC20, c, audio/code_219D0] #DONE -# # - [0xF3AC60, c, audio/cspsettempo] #DONE -# # - [0xF3ACD0, c, audio/code_21A80] #DONE -# # - [0xF3AD00, c, audio/cspgettempo] #DONE -# # - [0xF3AD40, c, audio/code_21AF0] #DONE -# # - [0xF3ADA0, c, audio/code_21B50] #DONE -# # - [0xF3AE40, c, audio/n_syndelete] #DONE -# # - [0xF3AEA0, c, audio/n_synallocfx] #DONE -# # - [0xF3AF00, c, audio/n_reverb] #DONE -# # - [0xF3B990, c, audio/n_auxbus] #DONE -# # - [0xF3BA40, c, audio/n_drvrNew] #DONE -# # - [0xF3BFA0, c, audio/n_save] #DONE -# # - [0xF3BFF0, c, audio/n_envresample] #DONE -# # - [0xF3C090, c, audio/n_env] #DONE -# # - [0xF3CA40, c, audio/n_seqplayer] #DONE -# # - [0xF3E5B0, c, audio/n_synstartvoiceparam] #DONE -# # - [0xF3E690, c, audio/n_mainbus] #DONE -# # - [0xF3E710, c, audio/n_load] #DONE -# # - [0xF3E8D0, c, audio/n_adpcm] #DONE -# # - [0xF3EE90, c, audio/n_resample] #DONE -# # - [0xF3F070, c, audio/n_seq] #DONE -# # - [0xF3F360, c, audio/n_synsetpriority] #DONE -# # - [0xF3F370, asm, os/invaldcache] #DONE -# # - [0xF3F410, asm, os/writebackdcacheall] #DONE -# # - [0xF3F440, c, os/initialize] #DONE -# # - [0xF3F6D0, c, os/createthread] #DONE -# # - [0xF3F820, c, gu/sinf] #DONE -# # - [0xF3F9E0, c, audio/cents2ratio] #DONE -# # - [0xF3FA30, c, audio/heapinit] #DONE -# # - [0xF3FA70, hasm, ultra/parameters] #DONE -# # - [0xF3FAD0, c, os/createmesgqueue] #DONE -# # - [0xF3FB00, c, io/aisetfreq] #DONE -# # - [0xF3FC60, c, audio/sl] #DONE -# # - [0xF3FD20, c, audio/heapalloc] #DONE -# # - [0xF3FD80, c, os/recvmesg] #DONE -# # - [0xF3FEC0, c, io/aigetlen] #DONE -# # - [0xF3FED0, c, os/virtualtophysical] #DONE -# # - [0xF3FF50, c, io/aisetnextbuf] #DONE -# # - [0xF40000, c, os/pidma] #DONE -# # - [0xF40110, c, os/stopthread] #DONE -# # - [0xF401D0, c, os/startthread] #DONE -# # - [0xF40320, hasm, os/writebackdcache] #DONE -# # - [0xF403A0, hasm, invaldcache] #DONE -# # - [0xF40450, c, io/pimgr] #DONE -# # - [0xF405E0, c, os/destroythread] #DONE -# # - [0xF406E0, c, os/sendmesg] #DONE -# # - [0xF40830, c, os/settreadpri] #DONE -# # - [0xF40910, c, gu/mtxutil] #DONE -# # - [0xF40B80, c, gu/sqrtf] #DONE -# # - [0xF40B90, c, gu/cosf] #DONE -# # - [0xF40D00, hasm, ultra/setintmask] #DONE -# # - [0xF40DA0, c, io/dpsetstat] #DONE -# # - [0xF40DB0, c, io/sptask] #DONE -# # - [0xF410A0, c, io/dpgetstat] #DONE -# # - [0xF410A0, c, io/vigetcurrframebuf] #DONE -# # - [0xF410F0, c, os/stoptimer] #DONE -# # - [0xF411E0, c, os/settimer] #DONE -# # - [0xF412C0, c, ll] #DONE -# # - [0xF41580, c, io/sptaskyielded] #DONE -# # - [0xF41600, c, io/sptaskyield] #DONE -# # - [0xF41620, c, io/visetmode] #DONE -# # - [0xF41690, c, os/seteventmesg] #DONE -# # - [0xF41700, c, io/vimgr] #DONE -# # - [0xF41A60, c, io/visetspecial] #DONE -# # - [0xF41C20, c, io/viswapbuf] #DONE -# # - [0xF41C70, c, io/visetevent] #DONE -# # - [0xF41CE0, c, io/vigetnextframebuf] #DONE -# # - [0xF41D20, c, io/viblack] #DONE -# # - [0xF41D90, c, gu/ortho] #DONE -# # - [0xF41F50, c, gu/translate] #DONE -# # - [0xF41FF0, c, gu/rotate] #DONE -# # - [0xF421E0, c, io/contreaddata] #DONE -# # - [0xF42440, c, io/controller] #DONE -# # - [0xF42800, c, io/contsetch] #DONE -# # - [0xF42870, c, audio/bnkf] #DONE -# # - [0xF42AC0, c, os/gettime] #DONE -# # - [0xF42B50, c, audio/cseq] #DONE -# # - [0xF43610, c, io/motor] #DONE -# # - [0xF43C30, c, io/pfsinit] #DONE -# # - [0xF43CF0, hasm, invalicache] #DONE -# # - [0xF43D70, c, io/conteeplongwrite] #DONE -# # - [0xF43EA0, c, io/conteeplongread] #DONE -# # - [0xF43F30, c, io/piread] #DONE -# # - [0xF43F70, c, audio/copy] #DONE -# # - [0xF43FF0, c, audio/drvrNew] #DONE -# # - [0xF44790, c, audio/reverb] #DONE -# # - [0xF453E0, c, syncprintf] #DONE -# # - [0xF45420, c, audio/seq] #DONE -# # - [0xF45A40, hasm, setsr] #DONE -# # - [0xF45A50, hasm, getsr] #DONE -# # - [0xF45A60, hasm, setfpccsr] #DONE -# # - [0xF45A70, c, io/sirawread] #DONE -# # - [0xF45AC0, c, io/sirawwrite] #DONE -# # - [0xF45B10, hasm, ultra/exceptasm] #DONE -# # - [0xF46480, c, io/pirawread] #DONE -# # - [0xF464E0, hasm, interrupt] #DONE -# # - [0xF46520, c, os/thread] #DONE -# # - [0xF46560, c, audio/synthesizer] #DONE -# # - [0xF46C40, c, audio/syndelete] #DONE -# # - [0xF46C50, hasm, probetlb] #DONE -# # - [0xF46D10, c, io/ai] #DONE -# # - [0xF46D40, c, os/jammesg] #DONE -# # - [0xF46E90, c, io/pigetcmdq] #DONE -# # - [0xF46EC0, c, io/cartrominit] #DONE -# # - [0xF46FC0, c, io/leodiskinit] #DONE -# # - [0xF470C0, c, io/piacs] #DONE -# # - [0xF47180, c, os/getthreadpri] #DONE -# # - [0xF471A0, c, io/pirawdma] #DONE -# # - [0xF47280, c, io/epirawdma] #DONE -# # - [0xF474B0, c, io/devmgr] #DONE -# # - [0xF47940, hasm, bcopy] #DONE -# # - [0xF47C50, c, io/spsetstat] #DONE -# # - [0xF47C60, c, io/spsetpc] #DONE -# # - [0xF47CA0, c, io/sprawdma] #DONE -# # - [0xF47D30, c, io/sp] #DONE -# # - [0xF47D60, c, io/vi] #DONE -# # - [0xF47EA0, c, os/timerintr] #DONE -# # - [0xF482A0, hasm, setcompare] #DONE -# # - [0xF482B0, c, io/spgetstat] #DONE -# # - [0xF482C0, c, io/vigetcurrcontext] #DONE -# # - [0xF482D0, c, io/viswapcontext] #DONE -# # - [0xF48630, hasm, getcount] #DONE -# # - [0xF48640, c, gu/normalize] #DONE -# # - [0xF486D0, c, io/siacs] #DONE -# # - [0xF48790, c, io/sirawdma] #DONE -# # - [0xF48840, c, io/pfsisplug] #DONE -# # - [0xF48BB0, c, io/crc] #DONE -# # - [0xF48D30, c, io/contramwrite] #DONE -# # - [0xF490B0, c, io/contramread] #DONE -# # - [0xF49440, c, io/pfsgetstatus] #DONE -# # - [0xF49550, c, io/contpfs] #DONE -# # - [0xF4A2B0, c, io/pfschecker] #DONE -# # - [0xF4AD10, c, io/conteepwrite] #DONE -# # - [0xF4B260, c, io/conteepread] #DONE -# # - [0xF4B5C0, c, audio/filter] #DONE -# # - [0xF4B5E0, c, audio/env] #DONE -# # - [0xF4C160, c, audio/load] #DONE -# # - [0xF4CCB0, c, audio/resample] #DONE -# # - [0xF4CFB0, c, audio/auxbus] #DONE -# # - [0xF4D0C0, c, audio/mainbus] #DONE -# # - [0xF4D210, c, audio/save] #DONE -# # - [0xF4D2D0, c, io/si] #DONE -# # - [0xF4D300, c, io/leointerrupt] #DONE -# # - [0xF4DB80, c, audio/synallocfx] #DONE -# # - [0xF4DC20, c, os/resetglobalintmask] #DONE -# # - [0xF4DC80, c, io/epirawwrite] #DONE -# # - [0xF4DCD0, c, io/epirawread] #DONE -# # - [0xF4DD20, c, os/setglobalintmask] #DONE -# # - [0xF4DD70, c, os/yieldthread] #DONE + - [0xF52500, c, code_15B30] + - [0xF53420, c, memory] + - [0xF54AE0, c, code_18110] + - [0xF54BE0, c, code_18210] + - [0xF54CE0, c, code_18310] + - [0xF54D20, c, code_18350] + - [0xF58860, c, code_1BE90] + - [0xF59F60, c, code_1D590] + - [0xF59F90, hasm, code_1D5C0] + - [0xF59FA0, c, code_1D5D0] + - [0xF5AD30, c, code_1E360] + - [0xF5B0B0, c, code_1E6E0] + - [0xF5B1F0, hasm, code_1E820] + - [0xF5B290, c, audio/n_sl] + - [0xF5B320, c, audio/n_synthesizer] + - [0xF5BD00, c, audio/event] + - [0xF5BFE0, c, audio/n_synaddplayer] + - [0xF5C1B0, c, audio/n_synallocvoice] + - [0xF5C3B0, c, audio/n_synsetvol] + - [0xF5C450, c, audio/n_synstartvoice] + - [0xF5C4D0, c, audio/n_synsetpan] + - [0xF5C550, c, audio/n_synsetpitch] + - [0xF5C5D0, c, audio/n_synsetfxmix] + - [0xF5C660, c, audio/n_synstopvoice] + - [0xF5C6D0, c, audio/n_synfreevoice] + - [0xF5C770, c, audio/n_csplayer] + - [0xF5DBE0, c, audio/cspsetbank] + - [0xF5DC20, c, audio/cspstop] + - [0xF5DC50, c, audio/n_csq] + - [0xF5E2F0, c, audio/cspsetseq] + - [0xF5E330, c, audio/cspplay] + - [0xF5E360, c, audio/cspsetvol] + - [0xF5E3A0, c, audio/code_219D0] + - [0xF5E3E0, c, audio/cspsettempo] + - [0xF5E450, c, audio/code_21A80] + - [0xF5E480, c, audio/cspgettempo] + - [0xF5E4C0, c, audio/code_21AF0] + - [0xF5E520, c, audio/code_21B50] + - [0xF5E5C0, c, audio/n_syndelete] + - [0xF5E620, c, audio/n_synallocfx] + - [0xF5E680, c, audio/n_reverb] + - [0xF5F110, c, audio/n_auxbus] + - [0xF5F1C0, c, audio/n_drvrNew] + - [0xF5F720, c, audio/n_save] + - [0xF5F770, c, audio/n_envresample] + - [0xF5F810, c, audio/n_env] + - [0xF601C0, c, audio/n_seqplayer] + - [0xF61D30, c, audio/n_synstartvoiceparam] + - [0xF61E10, c, audio/n_mainbus] + - [0xF61E90, c, audio/n_load] + - [0xF62050, c, audio/n_adpcm] + - [0xF62610, c, audio/n_resample] + - [0xF627F0, c, audio/n_seq] + - [0xF62AE0, c, audio/n_synsetpriority] + - [0xF62AF0, asm, os/invaldcache] + - [0xF62B90, asm, os/writebackdcacheall] + - [0xF62BC0, c, os/initialize] + - [0xF62E50, hasm, ultra/parameters] + - [0xF62EB0, c, os/createthread] + - [0xF63000, c, gu/sinf] + - [0xF631C0, c, audio/cents2ratio] + - [0xF63210, c, audio/heapinit] + - [0xF63250, c, os/createmesgqueue] + - [0xF63280, c, io/aisetfreq] + - [0xF633E0, c, audio/sl] + - [0xF634A0, c, audio/heapalloc] + - [0xF63500, c, os/recvmesg] + - [0xF63640, c, io/aigetlen] + - [0xF63650, c, os/virtualtophysical] + - [0xF636D0, c, io/aisetnextbuf] + - [0xF63780, c, os/pidma] + - [0xF63890, c, os/stopthread] + - [0xF63950, c, os/startthread] + - [0xF63AA0, hasm, os/writebackdcache] + - [0xF63B20, hasm, invaldcache] + - [0xF63BD0, c, io/pimgr] + - [0xF63D60, c, os/destroythread] + - [0xF63E60, c, os/sendmesg] + - [0xF63FB0, c, os/settreadpri] + - [0xF64090, c, gu/mtxutil] + - [0xF64300, c, gu/sqrtf] + - [0xF64310, c, gu/cosf] + - [0xF64480, hasm, ultra/setintmask] + - [0xF64520, c, io/dpsetstat] + - [0xF64530, c, io/sptask] + - [0xF64820, c, io/dpgetstat] + - [0xF64830, c, io/vigetcurrframebuf] + - [0xF64870, c, os/stoptimer] + - [0xF64960, c, os/settimer] + - [0xF64A40, c, ll] + - [0xF64C50, c, io/sptaskyielded] + - [0xF64CD0, c, io/sptaskyield] + - [0xF64CF0, c, io/visetmode] + - [0xF64D60, c, os/seteventmesg] + - [0xF64DD0, c, io/vimgr] + - [0xF65130, c, io/visetspecial] + - [0xF652F0, c, io/viswapbuf] + - [0xF65340, c, io/visetevent] + - [0xF653B0, c, io/vigetnextframebuf] + - [0xF653F0, c, io/viblack] + - [0xF65460, c, gu/ortho] + - [0xF65620, c, gu/translate] + - [0xF656C0, c, gu/rotate] + - [0xF658B0, c, io/contreaddata] + - [0xF65B10, c, io/controller] + - [0xF65ED0, c, io/contsetch] + - [0xF65F40, c, audio/bnkf] + - [0xF66190, c, os/gettime] + - [0xF66220, c, audio/cseq] + - [0xF66CE0, c, io/motor] + - [0xF67300, c, io/pfsinit] + - [0xF673C0, hasm, invalicache] + - [0xF67440, c, io/conteeplongwrite] + - [0xF67570, c, io/conteeplongread] + - [0xF67600, c, io/piread] + - [0xF67640, c, audio/copy] + - [0xF676C0, bin, untouched] + # - [0xF43FF0, c, audio/drvrNew] + # - [0xF44790, c, audio/reverb] + # - [0xF453E0, c, syncprintf] + # - [0xF45420, c, audio/seq] + # - [0xF45A40, hasm, setsr] + # - [0xF45A50, hasm, getsr] + # - [0xF45A60, hasm, setfpccsr] + # - [0xF45A70, c, io/sirawread] + # - [0xF45AC0, c, io/sirawwrite] + # - [0xF45B10, hasm, ultra/exceptasm] + # - [0xF46480, c, io/pirawread] + # - [0xF464E0, hasm, interrupt] + # - [0xF46520, c, os/thread] + # - [0xF46560, c, audio/synthesizer] + # - [0xF46C40, c, audio/syndelete] + # - [0xF46C50, hasm, probetlb] + # - [0xF46D10, c, io/ai] + # - [0xF46D40, c, os/jammesg] + # - [0xF46E90, c, io/pigetcmdq] + # - [0xF46EC0, c, io/cartrominit] + # - [0xF46FC0, c, io/leodiskinit] + # - [0xF470C0, c, io/piacs] + # - [0xF47180, c, os/getthreadpri] + # - [0xF471A0, c, io/pirawdma] + # - [0xF47280, c, io/epirawdma] + # - [0xF474B0, c, io/devmgr] + # - [0xF47940, hasm, bcopy] + # - [0xF47C50, c, io/spsetstat] + # - [0xF47C60, c, io/spsetpc] + # - [0xF47CA0, c, io/sprawdma] + # - [0xF47D30, c, io/sp] + # - [0xF47D60, c, io/vi] + # - [0xF47EA0, c, os/timerintr] + # - [0xF482A0, hasm, setcompare] + # - [0xF482B0, c, io/spgetstat] + # - [0xF482C0, c, io/vigetcurrcontext] + # - [0xF482D0, c, io/viswapcontext] + # - [0xF48630, hasm, getcount] + # - [0xF48640, c, gu/normalize] + # - [0xF486D0, c, io/siacs] + # - [0xF48790, c, io/sirawdma] + # - [0xF48840, c, io/pfsisplug] + # - [0xF48BB0, c, io/crc] + # - [0xF48D30, c, io/contramwrite] + # - [0xF490B0, c, io/contramread] + # - [0xF49440, c, io/pfsgetstatus] + # - [0xF49550, c, io/contpfs] + # - [0xF4A2B0, c, io/pfschecker] + # - [0xF4AD10, c, io/conteepwrite] + # - [0xF4B260, c, io/conteepread] + # - [0xF4B5C0, c, audio/filter] + # - [0xF4B5E0, c, audio/env] + # - [0xF4C160, c, audio/load] + # - [0xF4CCB0, c, audio/resample] + # - [0xF4CFB0, c, audio/auxbus] + # - [0xF4D0C0, c, audio/mainbus] + # - [0xF4D210, c, audio/save] + # - [0xF4D2D0, c, io/si] + # - [0xF4D300, c, io/leointerrupt] + # - [0xF4DB80, c, audio/synallocfx] + # - [0xF4DC20, c, os/resetglobalintmask] + # - [0xF4DC80, c, io/epirawwrite] + # - [0xF4DCD0, c, io/epirawread] + # - [0xF4DD20, c, os/setglobalintmask] + # - [0xF4DD70, c, os/yieldthread] - [0xF71750, bin, n_aspMain_text] - [0xF723B0, bin, gSPF3DEX_fifo_text] - [0xF737E0, bin, gSPL3DEX_fifo_text] @@ -381,35 +381,35 @@ segments: - [0xF74DF0, .data, code_11AC0] - [0xF75380, .data, overlaymanager] - [0xF75620, .data, code_13990] - - [0xF75630, bin, remain_core1_data] -# # - [0xF51DB0, .data, code_15B30] -# # - [0xF51DC0, .data, memory] -# # - [0xF51DF0, .data, code_18310] -# # - [0xF524E0, .data, code_18350] -# # - [0xF52660, .data, code_1BE90] -# # - [0xF52670, .data, code_1D5D0] -# # - [0xF52690, .data, code_1E360] -# # - [0xF526A0, .data, data_1E820] -# # - [0xF526B0, .data, audio/n_sl] -# # - [0xF526C0, .data, audio/n_drvrNew] -# # - [0xF52850, .data, audio/n_env] -# # - [0xF52950, .data, os/initialize] -# # - [0xF52970, .data, audio/sl] -# # - [0xF52980, .data, io/aisetnextbuf] -# # - [0xF52990, .data, io/pimgr] -# # - [0xF529C0, .data, io/vimgr] -# # - [0xF529E0, .data, io/controller] -# # - [0xF529F0, .data, audio/drvrNew] -# # - [0xF52B80, .data, ultra/exceptasm] -# # - [0xF52BA0, .data, os/thread] -# # - [0xF52BC0, .data, io/piacs] -# # - [0xF52BD0, .data, io/vi] -# # - [0xF52C40, .data, os/timerintr] -# # - [0xF52C50, .data, io/siacs] -# # - [0xF52C60, .data, audio/env] -# # - [0xF52D60, .data, io/vimodepallan1] -# # - [0xF52DB0, .data, io/vimodempallan1] -# # - [0xF52DB0, .data, io/vimodentsclan1] + - [0xF75630, .data, code_15B30] + - [0xF75640, .data, memory] + - [0xF75670, .data, code_18310] + - [0xF75D60, .data, code_18350] + - [0xF75EE0, .data, code_1BE90] + - [0xF75EF0, .data, code_1D5D0] + - [0xF75F10, .data, code_1E360] + - [0xF75F20, .data, data_1E820] + - [0xF75F30, .data, audio/n_sl] + - [0xF75F40, .data, audio/n_drvrNew] + - [0xF760D0, .data, audio/n_env] + - [0xF761D0, .data, os/initialize] + - [0xF761F0, .data, audio/sl] + - [0xF76200, .data, io/aisetnextbuf] + - [0xF76210, .data, io/pimgr] + - [0xF76240, .data, io/vimgr] + - [0xF76260, .data, io/controller] + - [0xF76270, bin, remain_core1_data] + # - [0xF529F0, .data, audio/drvrNew] + # - [0xF52B80, .data, ultra/exceptasm] + # - [0xF52BA0, .data, os/thread] + # - [0xF52BC0, .data, io/piacs] + # - [0xF52BD0, .data, io/vi] + # - [0xF52C40, .data, os/timerintr] + # - [0xF52C50, .data, io/siacs] + # - [0xF52C60, .data, audio/env] + # - [0xF52D60, .data, io/vimodepallan1] + # - [0xF52DB0, .data, io/vimodempallan1] + # - [0xF52DB0, .data, io/vimodentsclan1] - [0xF766D0, .rodata, code_1D00] - [0xF766F0, .rodata, code_3250] - [0xF76700, .rodata, code_3A70] @@ -423,33 +423,34 @@ segments: - [0xF77220, .rodata, rumblemanager] - [0xF77230, .rodata, overlaymanager] - [0xF772B0, .rodata, code_13990] - - [0xF772D0, bin, remain_core1_rodata] -# # - [0xF53A70, .rodata, code_18350] -# # - [0xF53B70, .rodata, code_1BE90] -# # - [0xF53BA0, .rodata, code_1D5D0] -# # - [0xF53C00, .rodata, audio/n_synthesizer] -# # - [0xF53C10, .rodata, audio/n_csplayer] -# # - [0xF53F80, .rodata, audio/n_reverb] -# # - [0xF53FB0, .rodata, audio/n_drvrNew] -# # - [0xF53FD0, .rodata, audio/n_env] -# # - [0xF54020, .rodata, audio/n_seqplayer] -# # - [0xF543D0, .rodata, audio/n_resample] -# # - [0xF543E0, .rodata, gu/sinf] -# # - [0xF54430, .rodata, audio/cents2ratio] -# # - [0xF54440, .rodata, gu/cosf] -# # - [0xF54490, .rodata, ultra/setintmask] -# # - [0xF54510, .rodata, gu/rotate] -# # - [0xF54520, .rodata, audio/cseq] -# # - [0xF54530, .rodata, audio/drvrNew] -# # - [0xF54550, .rodata, audio/reverb] -# # - [0xF54580, .rodata, audio/seq] -# # - [0xF54590, .rodata, ultra/exceptasm] -# # - [0xF545E0, hasm, ultra/libm_vals] # Nothing in this file, just here so splat sees it's ASM -# # - [0xF545E0, .rodata, ultra/libm_vals] -# # - [0xF545F0, .rodata, audio/synthesizer] -# # - [0xF54600, .rodata, io/devmgr] -# # - [0xF54620, .rodata, audio/env] -# # - [0xF54670, .rodata, audio/resample] + - [0xF772D0, .rodata, code_18350] + - [0xF773D0, .rodata, code_1BE90] + - [0xF77400, .rodata, code_1D5D0] + - [0xF77460, .rodata, audio/n_synthesizer] + - [0xF77470, .rodata, audio/n_csplayer] + - [0xF777E0, .rodata, audio/n_reverb] + - [0xF77810, .rodata, audio/n_drvrNew] + - [0xF77830, .rodata, audio/n_env] + - [0xF77880, .rodata, audio/n_seqplayer] + - [0xF77C30, .rodata, audio/n_resample] + - [0xF77C40, .rodata, gu/sinf] + - [0xF77C90, .rodata, audio/cents2ratio] + - [0xF77CA0, .rodata, gu/cosf] + - [0xF77CF0, .rodata, ultra/setintmask] + - [0xF77D70, .rodata, ll] + - [0xF77D80, .rodata, gu/rotate] + - [0xF77D90, .rodata, audio/cseq] + - [0xF77DA0, bin, remain_core1_rodata] + # - [0xF54530, .rodata, audio/drvrNew] + # - [0xF54550, .rodata, audio/reverb] + # - [0xF54580, .rodata, audio/seq] + # - [0xF54590, .rodata, ultra/exceptasm] + # - [0xF545E0, hasm, ultra/libm_vals] # Nothing in this file, just here so splat sees it's ASM + # - [0xF545E0, .rodata, ultra/libm_vals] + # - [0xF545F0, .rodata, audio/synthesizer] + # - [0xF54600, .rodata, io/devmgr] + # - [0xF54620, .rodata, audio/env] + # - [0xF54670, .rodata, audio/resample] - [0xF77F20, bin, n_aspMain_data] - [0xF781D0, bin, gSPF3DEX_fifo_data] - [0xF789D0, bin, gSPL3DEX_fifo_data] @@ -475,28 +476,28 @@ segments: - [0xF791D0, .bss, overlaymanager] - [0xF791D0, .bss, code_13990] - [0xF791D0, .bss, code_15770] -# # - [0xF791D0, .bss, code_15B30] -# # - [0xF791D0, .bss, memory] -# # - [0xF791D0, .bss, code_18210] -# # - [0xF791D0, .bss, code_1D5D0] -# # - [0xF791D0, .bss, code_1E360] -# # - [0xF791D0, .bss, os/initialize] -# # - [0xF791D0, .bss, io/pimgr] -# # - [0xF791D0, .bss, io/sptask] -# # - [0xF791D0, .bss, os/seteventmesg] -# # - [0xF791D0, .bss, io/vimgr] -# # - [0xF791D0, .bss, gu/rotate] -# # - [0xF791D0, .bss, io/controller] -# # - [0xF791D0, .bss, io/motor] -# # - [0xF791D0, .bss, io/cartrominit] -# # - [0xF791D0, .bss, io/leodiskinit] -# # - [0xF791D0, .bss, io/piacs] -# # - [0xF791D0, .bss, os/timerintr] -# # - [0xF791D0, .bss, io/siacs] -# # - [0xF791D0, .bss, io/pfsisplug] -# # - [0xF791D0, .bss, io/conteepread] -# # - [0xF791D0, .bss, os/kdebugserver] -# # - [0xF791D0, .bss, io/leointerrupt] + - [0xF791D0, .bss, code_15B30] + - [0xF791D0, .bss, memory] + - [0xF791D0, .bss, code_18210] + - [0xF791D0, .bss, code_1D5D0] + - [0xF791D0, .bss, code_1E360] + - [0xF791D0, .bss, os/initialize] + - [0xF791D0, .bss, io/pimgr] + - [0xF791D0, .bss, io/sptask] + - [0xF791D0, .bss, os/seteventmesg] + - [0xF791D0, .bss, io/vimgr] + - [0xF791D0, .bss, gu/rotate] + - [0xF791D0, .bss, io/controller] + - [0xF791D0, .bss, io/motor] + # - [0xF791D0, .bss, io/cartrominit] + # - [0xF791D0, .bss, io/leodiskinit] + # - [0xF791D0, .bss, io/piacs] + # - [0xF791D0, .bss, os/timerintr] + # - [0xF791D0, .bss, io/siacs] + # - [0xF791D0, .bss, io/pfsisplug] + # - [0xF791D0, .bss, io/conteepread] + # - [0xF791D0, .bss, os/kdebugserver] + # - [0xF791D0, .bss, io/leointerrupt] - name: core2 dir: core2 type: code diff --git a/manual_syms.pal.txt b/manual_syms.pal.txt index 082f09ca..70761365 100644 --- a/manual_syms.pal.txt +++ b/manual_syms.pal.txt @@ -13,16 +13,15 @@ gSPL3DEX_fifoDataStart = _binary_bin_core1_gSPL3DEX_fifo_data_bin_start; gSPL3DEX_fifoDataEnd = _binary_bin_core1_gSPL3DEX_fifo_data_bin_end; /* Fixed-address buffers */ -D_80000300 = 0x80000300; -D_8000E800 = 0x8000E800; -D_8002D500 = 0x8002D500; -D_8023DA00 = 0x8023DA00; /* confirm */ -func_8023DA20 = 0x8023E620; -D_803FBE00 = 0x803FBE00; -D_803FFE00 = 0x803FFE00; -D_803FFE10 = 0x803FFE10; -gOverlayTable = 0x803FFE10; -D_803A5D00 = 0x803A5D00; /* framebuffers */ +D_8000E800 = 0x8000E800; +D_8002D500 = 0x8002D500; +D_8023DA00 = 0x8023E600; /* confirm */ +func_8023DA20 = 0x8023E620; +D_803FBE00 = 0x803FBE00; +D_803FFE00 = 0x803FFE00; +D_803FFE10 = 0x803FFE10; +gOverlayTable = 0x803FFE10; +D_803A5D00 = 0x803A5D00; /* framebuffers */ /* Renames for the boot segment */ boot_D_8002D500 = D_8002D500; @@ -32,165 +31,97 @@ boot_D_803FFE00 = D_803FFE00; boot_gOverlayTable = gOverlayTable; boot_func_8023DA20 = func_8023DA20; +/* Temporary*/ /* Temporary Correct*/ -func_80253010 = 0x80252c60; -func_80253034 = 0x80252c84; -overlay_load = 0x80252Ca0; -func_802535A8 = 0x802531f8; -func_80254008 = 0x80253c58; -func_80254028 = 0x80253c78; -func_8025425C = 0x80253eac; -memcpy = 0x80254258; -heap_get_size = 0x80254320; -func_802546DC = 0x8025432c; -heap_init = 0x80254360; -malloc = 0x802548f8; -free = 0x80254d40; -func_80255198 = 0x80254de8; -func_80255524 = 0x80255174; -func_80255ACC = 0x8025571c; -write_file_blocks = 0x80255780; -func_80255C30 = 0x80255880; -func_80255CD8 = 0x80255928; -func_80255D0C = 0x8025595c; -func_80255D44 = 0x80255994; -ml_dotProduct_vec3f = 0x80255c84; -ml_distance_vec3f = 0x80255cb4; -ml_vec3f_normalize_copy = 0x80256008; -ml_vec3f_normalize = 0x802560a0; -ml_vec3f_set_length_copy = 0x80256230; -ml_vec3f_pitch_rotate_copy = 0x802564bc; -ml_vec3f_yaw_rotate_copy = 0x80256550; -func_80256E24 = 0x80256a74; -ml_init = 0x80257074; -ml_map_f = 0x80257768; -func_802585E0 = 0x80258230; -ml_sin_deg = 0x8025840c; -ml_cos_deg = 0x8025843c; -mlNormalizeAngle = 0x8025846c; -ml_vec3f_copy = 0x802587f4; -ml_vec3f_diff_copy = 0x80258810; -ml_vec3f_diff = 0x80258844; -ml_vec3f_add = 0x80258898; -func_8025A104 = 0x80259d54; -func_8025A55C = 0x8025a1ac; -func_8025A6CC = 0x8025a31c; -func_8025A864 = 0x8025a4b4; -func_8025A9D4 = 0x8025a624; -func_8025ABB8 = 0x8025a808; -func_8025AD7C = 0x8025a9cc; -func_8025ADBC = 0x8025aa0c; -func_8025AFB0 = 0x8025AC00; -func_8025AFB8 = 0x8025ac08; -sns_find_and_parse_payload = 0x8025ae30; -___osGetSR = 0x8025ac30; -sns_write_payload_over_heap = 0x8025b350; -DEBUG_use_special_bootmap = 0x8025b460; -sns_get_item_state = 0x8025b470; -n_alInit = 0x8025bf70; -n_alAudioFrame = 0x8025c118; -alEvtqPostEvent = 0x8025ca4c; -alEvtqNextEvent = 0x8025cb70; -alEvtqNew = 0x8025cbfc; -n_alSynAddSndPlayer = 0x8025cd80; -n_alSynAllocVoice = 0x8025ce58; -n_alSynSetVol = 0x8025d050; -n_alSynStartVoice = 0x8025d0f0; -n_alSynSetPan = 0x8025d170; -n_alSynSetPitch = 0x8025d1f0; -n_alSynSetFXMix = 0x8025d270; -n_alSynStopVoice = 0x8025d300; -n_alSynFreeVoice = 0x8025d370; -n_alCSPNew = 0x8025e70c; -alCSPSetBank = 0x8025e880; -alCSPStop = 0x8025e8c0; -n_alCSeqNew = 0x8025ed0c; -alCSPSetSeq = 0x8025ef90; -alCSPPlay = 0x8025efd0; -alCSPSetVol = 0x8025f000; -func_8025F3F0 = 0x8025f040; -alCSPSetTempo = 0x8025f080; -func_8025F4A0 = 0x8025f0f0; -alCSPGetTempo = 0x8025f120; -func_8025F510 = 0x8025f160; -func_8025F570 = 0x8025f1c0; -func_8025F5C0 = 0x8025f210; - -bzero = 0x80263790; -osWriteBackDCacheAll = 0x80263830; -__osInitialize_common = 0x80263860; -osCreateThread = 0x80263b50; -sinf = 0x80263ca0; -alCents2Ratio = 0x80263e60; -alHeapInit = 0x80263eb0; -osCreateMesgQueue = 0x80263ef0; -osAiSetFrequency = 0x80263f20; -alUnlink = 0x80264080; -alLink = 0x802640b0; -alHeapDBAlloc = 0x80264140; -osRecvMesg = 0x802641a0; -osAiGetLength = 0x802642e0; -osVirtualToPhysical = 0x802642f0; -osAiSetNextBuffer = 0x80264370; -osPiStartDma = 0x80264420; -osStopThread = 0x80264530; -osStartThread = 0x802645f0; -osWritebackDCache = 0x80264740; -osInvalDCache = 0x802647C0; -osCreatePiManager = 0x80264870; -osDestroyThread = 0x80264a00; -osSendMesg = 0x80264b00; -osSetThreadPri = 0x80264c50; -guMtxF2L = 0x80264d30; -guMtxIdentF = 0x80264e30; -gu_sqrtf = 0x80264fa0; -cosf = 0x80264fb0; -osSetIntMask = 0x80265120; -osDpSetStatus = 0x802651c0; -osSpTaskLoad = 0x802652ec; -osSpTaskStartGo = 0x8026547c; -osDpGetStatus = 0x802654c0; -osViGetCurrentFramebuffer = 0x802654d0; -osStopTimer = 0x80265510; -osSetTimer = 0x80265600; -__d_to_ull = 0x80265718; -__ull_to_d = 0x80265884; -osSpTaskYielded = 0x802658f0; -osSpTaskYield = 0x80265970; -osViSetMode = 0x80265990; -osSetEventMesg = 0x80265a00; -osCreateViManager = 0x80265a70; -osViSetSpecialFeatures = 0x80265dd0; -osViSwapBuffer = 0x80265f90; -osViSetEvent = 0x80265fe0; -osViGetNextFramebuffer = 0x80266050; -osViBlack = 0x80266090; -guOrtho = 0x80266254; -guTranslate = 0x80266308; -guRotate = 0x802664f4; -osContStartReadData = 0x80266550; -osContGetReadData = 0x80266614; -osContInit = 0x802667b0; -osContSetCh = 0x80266b70; -alBnkfNew = 0x80266ce4; -osGetTime = 0x80266e30; -alCSeqGetTicks = 0x8026769c; -osMotorStop = 0x80267980; -osMotorStart = 0x80267ae8; -osMotorInit = 0x80267dd0; -osPfsInit = 0x80267fa0; -osInvalICache = 0x80268060; +_init_lpfilter = 0x80268620; +_doModFunc = 0x80268b00; +rmonPrintf = 0x8026976c; +alSeqSetLoc = 0x802697ac; +alSeqGetTicks = 0x802697c8; +__alSeqNextDelta = 0x80269c00; +__osSetSR = 0x80269db0; +__osGetSR = 0x80269dc0; +__osSetFpcCsr = 0x80269dd0; +__osSiRawReadIo = 0x80269de0; +__osSiRawWriteIo = 0x80269e30; +func_8026A2E0 = 0x80269e80; +__osEnqueueAndYield = 0x8026a4ac; +__osEnqueueThread = 0x8026a5ac; +__osPopThread = 0x8026a5f4; +__osDispatchThread = 0x8026a604; +__osCleanupThread = 0x8026A780; +osMapTLBRdb = 0x8026a790; +osPiRawReadIo = 0x8026a7f0; +__ull_div = 0x8026a8b8; +__ll_mul = 0x8026a9b8; +__osDisableInt = 0x8026ab10; +__osDequeueThread = 0x8026ab50; +__osRestoreInt = 0x8026ab30; +alSynNew = 0x8026af70; +alSynDelete = 0x8026b270; +__osProbeTLB = 0x8026b280; +__osAiDeviceBusy = 0x8026b340; +osJamMesg = 0x8026b370; +osPiGetCmdQueue = 0x8026b4c0; +__osPiCreateAccessQueue = 0x8026b6f0; +__osPiGetAccess = 0x8026b740; +__osPiRelAccess = 0x8026b784; +osGetThreadPri = 0x8026b7b0; +osPiRawStartDma = 0x8026B7D0; +osEPiRawStartDma = 0x8026b8b0; +__osDevMgrMain = 0x8026bae0; +bcopy = 0x8026bf70; +__osSpSetStatus = 0x8026c280; +__osSpDeviceBusy = 0x8026c360; +__osSpRawStartDma = 0x8026c2d0; +__osSpSetPc = 0x8026c290; +__osViInit = 0x8026c390; +__osTimerServicesInit = 0x8026c4d0; +__osTimerInterrupt = 0x8026c55c; +__osSetTimerIntr = 0x8026c6d4; +__osInsertTimer = 0x8026c748; +__osSetCompare = 0x8026c8d0; +__osSpGetStatus = 0x8026c8e0; +__osViGetCurrentContext = 0x8026c8f0; +__osViSwapContext = 0x8026c900; +osGetCount = 0x8026cc60; +guNormalize = 0x8026cc70; +__osSiCreateAccessQueue = 0x8026cd00; +__osSiGetAccess = 0x8026cd50; +__osSiRelAccess = 0x8026cd94; +__osSiRawStartDma = 0x8026cdc0; +__osContAddressCrc = 0x8026d1e0; +__osContRamWrite = 0x8026d360; +__osContRamRead = 0x8026d6e0; +__osPfsGetStatus = 0x8026da70; +__osGetId = 0x8026e1f4; +osPfsChecker = 0x8026e8e0; +osEepromWrite = 0x8026f340; +osEepromRead = 0x8026f890; -D_80276574 = 0x802762c4; -framebuffer_width = 0x802762d8; -framebuffer_height = 0x802762dc; -n_syn = 0x80276bd4; -osClockRate = 0x80276e70; -osViClock = 0x80276e78; +__osThreadTail = 0x802770c0; +__osRunQueue = 0x802770c8; +__osActiveQueue = 0x802770cc; +__osRunningThread = 0x802770d0; +__osPiAccessQueueEnabled = 0x802770e0; +__osViCurr = 0x80277150; +__osViNext = 0x80277154; +__osTimerList = 0x80277160; +__libm_qnan_f = 0x80278AF0; +__osPiDevMgr = 0x80276eb0; +CartRomHandle = 0x80285A00; +LeoDiskHandle = 0x80285A80; +__osPiAccessQueue = 0x80285b08; +__osCurrentTime = 0x80285b40; +__osBaseCounter = 0x80285b48; +__osViIntrCount = 0x80285b4c; +__osPfsPifRam = 0x80285b80; core2_VRAM = 0x80286db0; core2_TEXT_START = 0x80286db0; +animCache_flushStale = 0x80287f40; +animBinCache_flushStale = 0x8028855c; player_getPosition = 0x8028e7c4; player_getPosition_s32 = 0x8028e95c; player_getWaterState = 0x8028eca4; @@ -214,17 +145,33 @@ func_802E4214 = 0x802E4404; func_802E4384 = 0x802e4574; func_802E4424 = 0x802E4614; game_defrag = 0x802e4ac8; +func_802E49E0 = 0x802e4bd0; getGameMode = 0x802e4bec; func_802E4A08 = 0x802e4bf8; +func_802E6820 = 0x802e6a04; +freelist_clear = 0x802edc20; +freelist_at = 0x802edc5c; +freelist_size = 0x802edc74; +freelist_next = 0x802edc84; +freelist_elementIsAlive = 0x802eddf8; +freelist_free = 0x802ede44; +freelist_new = 0x802ede64; +freelist_freeElement = 0x802edebc; +freelist_defrag = 0x802edee0; +func_802F1294 = 0x802f1474; +printbuffer_defrag = 0x802f560c; func_802F9AA8 = 0x802f9c88; func_802F9F80 = 0x802fa160; func_802F9FD0 = 0x802fa1b0; func_802FA060 = 0x802fa240; func_80309B48 = 0x80309ce8; func_80309D58 = 0x80309ef8; +func_8030A850 = 0x8030a9f0; gctransition_done = 0x8030bf38; gctransition_8030BDC0 = 0x8030bf60; gctransition_reset = 0x8030c07c; +func_8030C704 = 0x8030c8a4; +func_8030C710 = 0x8030c8b0; func_8030D90C = 0x8030daac; func_8030DA44 = 0x8030dbe4; sfxsource_setSfxId = 0x8030dc20; @@ -252,27 +199,38 @@ levelSpecificFlags_validateCRC1 = 0x8032243c; func_8032274C = 0x80322b4c; func_80322758 = 0x80322b58; func_80323240 = 0x80323690; +timedFunc_set_1 = 0x80325334; +timedFunc_set_2 = 0x80325370; timedFunc_set_3 = 0x803253b4; marker_getActor = 0x80329db0; +func_8032AD7C = 0x8032b1d4; +func_803306C8 = 0x80330b18; map_get = 0x80334d10; func_80335134 = 0x80335584; sfxInstruments_init = 0x80335670; assetcache_release = 0x8033b828; +assetcache_update_ptr = 0x8033b9c4; +func_8033B61C = 0x8033ba6c; func_8033B788 = 0x8033bbd8; assetcache_get = 0x8033bbe8; assetCache_init = 0x8033bfd4; func_8033BD6C = 0x8033C1BC; +func_8033BD8C = 0x8033c1dc; +savedata_8033CA9C = 0x8033ceec; +savedata_8033CE40 = 0x8033d15c; func_8033DD04 = 0x8033e154; func_8033DD90 = 0x8033e1e0; time_getDelta = 0x8033e1ec; func_8033EF58 = 0x8033f3a8; func_8033EFB0 = 0x8033f400; +func_8033F000 = 0x8033f450; demo_readInput = 0x8034a334; randf = 0x8034a7e0; func_8034C630 = 0x8034ca90; func_8034E698 = 0x8034eaf8; D_803727F4 = 0x80372d74; D_80379B90 = 0x8037A560; + core2_TEXT_END = 0x80363a00; core2_DATA_START = 0x80363a00; core2_RODATA_END = 0x8037A560; diff --git a/src/core1/code_0.c b/src/core1/code_0.c index 98d718b9..252a1f21 100644 --- a/src/core1/code_0.c +++ b/src/core1/code_0.c @@ -102,7 +102,7 @@ void func_8023DBDC(void){ void core1_init(void){ #if VERSION == VERSION_PAL - D_80000300 = 0; + osTvType = 0; #endif func_80255C30(); func_8023E00C(func_8023DBA4()); diff --git a/src/core1/code_18350.c b/src/core1/code_18350.c index 336d2147..aa4c2067 100644 --- a/src/core1/code_18350.c +++ b/src/core1/code_18350.c @@ -1,10 +1,16 @@ #include #include "functions.h" #include "variables.h" +#include "version.h" /* .data*/ +#if VERSION == VERSION_USA_1_0 u32 D_80276CB0 = 0xD22FFFD8; //WHAT IS THIS? u32 D_80276CB4 = 0xDEFEF692; //WHAT IS THIS? +#elif VERSION == VERSION_PAL +u32 D_80276CB0 = 0x90FA97CB; //WHAT IS THIS? +u32 D_80276CB4 = 0x8D96D002; //WHAT IS THIS? +#endif u16 *D_80276CB8 = NULL; //! ml_acosPrecValTblPtr //! Might not be 90, but 91 or 92? Initial lowerIdx is OOB if 90 f32 ml_acosValTbl[90] = { //D_80276CBC diff --git a/src/core1/code_1BE90.c b/src/core1/code_1BE90.c index be7cb5f5..2b3bf856 100644 --- a/src/core1/code_1BE90.c +++ b/src/core1/code_1BE90.c @@ -2,7 +2,7 @@ #include "functions.h" #include "variables.h" - +#include "version.h" extern func_8024FDDC(u8, s32); @@ -540,19 +540,20 @@ void func_8025AB00(void){ } void comusic_8025AB44(enum comusic_e comusic_id, s32 arg1, s32 arg2){ - func_8025AC20(comusic_id, arg1, arg2, 0.0f, "comusic.c", 0x39e); + func_8025AC20(comusic_id, arg1, arg2, 0.0f, "comusic.c", VER_SELECT(0x39e, 0x39f, 0, 0)); + } void comusic_8025AB78(enum comusic_e comusic_id, s32 arg1, s32 arg2, s32 arg3){ - func_8025AC7C(comusic_id, arg1, arg2, 0.0f, arg3, "comusic.c", 0x3a3); + func_8025AC7C(comusic_id, arg1, arg2, 0.0f, arg3, "comusic.c", VER_SELECT(0x3a3, 0x3a4, 0, 0)); } void func_8025ABB8(enum comusic_e comusic_id, s32 arg1, s32 arg2, s32 arg3){ - func_8025AC7C(comusic_id, arg1, arg2, 0.0f, (s32)&(__find_track(comusic_id)->unk1C[arg3]), "comusic.c", 0x3aa); + func_8025AC7C(comusic_id, arg1, arg2, 0.0f, (s32)&(__find_track(comusic_id)->unk1C[arg3]), "comusic.c", VER_SELECT(0x3aa, 0x3ab,0,0)); } void func_8025AC20(enum comusic_e comusic_id, s32 arg1, s32 arg2, f32 arg3, char* arg4, s32 char5){ - func_8025AC7C(comusic_id, arg1, arg2, 0.0f, (s32) __find_track(comusic_id)->unk1C, "comusic.c", 0x3b1); + func_8025AC7C(comusic_id, arg1, arg2, 0.0f, (s32) __find_track(comusic_id)->unk1C, "comusic.c", VER_SELECT(0x3b1, 0x3b2,0,0)); } void func_8025AC7C(enum comusic_e comusic_id, s32 arg1, s32 arg2, f32 arg3, s32 arg4, char* arg5, s32 arg6){ diff --git a/src/core1/ll.c b/src/core1/ll.c index a50fc92d..c257d1b4 100644 --- a/src/core1/ll.c +++ b/src/core1/ll.c @@ -1,3 +1,5 @@ +#include "version.h" +#if VERSION == VERSION_USA_1_0 unsigned long long __ull_rshift(unsigned long long a0, unsigned long long a1) { return a0 >> a1; @@ -51,3 +53,46 @@ long long __ll_rshift(long long a0, long long a1) { return a0 >> a1; } + +#elif VERSION == VERSION_PAL + +long long __d_to_ll(double a0) +{ + return a0; +} + +long long __f_to_ll(float a0) +{ + return a0; +} + +unsigned long long __d_to_ull(double a0) +{ + return a0; +} + +unsigned long long __f_to_ull(float a0) +{ + return a0; +} + +double __ll_to_d(long long a0) +{ + return a0; +} + +float __ll_to_f(long long a0) +{ + return a0; +} + +double __ull_to_d(unsigned long long a0) +{ + return a0; +} + +float __ull_to_f(unsigned long long a0) +{ + return a0; +} +#endif \ No newline at end of file diff --git a/src/core1/memory.c b/src/core1/memory.c index c0c3d9a9..507259a2 100644 --- a/src/core1/memory.c +++ b/src/core1/memory.c @@ -2,7 +2,7 @@ #include "functions.h" #include "variables.h" #include "SnS.h" - +#include "version.h" /* * Every chunk of allocated memory is prefixed with a HeapHeader. * @@ -16,9 +16,12 @@ extern void func_80253010(void *dest, void *src, s32 size); #define chunkSize(s) ((u32)(s)->next - (u32)(s) - sizeof(HeapHeader)) +#if VERSION == VERSION_USA_1_0 #define HEAP_SIZE 0x210520 +#elif VERSION == VERSION_PAL +#define HEAP_SIZE 0x211120 +#endif #define LAST_HEAP_BLOCK HEAP_SIZE/sizeof(EmptyHeapBlock) - 1 - typedef enum { HEAP_BLOCK_EMPTY = 0, HEAP_BLOCK_USED = 1, diff --git a/symbol_addrs.pal.txt b/symbol_addrs.pal.txt index d436dd59..885c19de 100644 --- a/symbol_addrs.pal.txt +++ b/symbol_addrs.pal.txt @@ -15,18 +15,18 @@ __osProbeTLB = 0x80003BD0; __osDisableInt = 0x80003FC0; __osRestoreInt = 0x80003FE0; bk_boot_BSS_START = 0x80005270; -___osGetSR = 0x8025AFE0; -bzero = 0x80263B40; -osWriteBackDCacheAll = 0x80263BE0; -osVirtualToPhysical = 0x802646A0; -osRecvMesg = 0x80264550; -osPiStartDma = 0x802647D0; -osWritebackDCache = 0x80264AF0; -osInvalDCache = 0x80264B70; -osDestroyThread = 0x80264DB0; -osSetThreadPri = 0x80265000; -osSetIntMask = 0x802654D0; -osInvalICache = 0x802684C0; +func_80253010 = 0x80252c60; +func_80253034 = 0x80252c84; +___osGetSR = 0x8025AC30; +func_8025C29C = 0x8025beec; +bzero = 0x80263790; +osWriteBackDCacheAll = 0x80263830; +osWritebackDCache = 0x80264740; +osInvalDCache = 0x802647C0; +osSetIntMask = 0x80265120; +osInvalICache = 0x80268060; + + __osSetSR = 0x8026A210; __osGetSR = 0x8026A220; __osSetFpcCsr = 0x8026A230; @@ -42,6 +42,13 @@ __osProbeTLB = 0x8026B420; bcopy = 0x8026C110; __osSetCompare = 0x8026CA70; osGetCount = 0x8026CE00; + + +D_80276E70 = 0x80276bc0; + + + + __osShutdown = 0x8027712C; __OSGlobalIntMask = 0x80277130; __osRunQueue = 0x80277378; From 5fad9018057319a96d3f9e6fc735a7a1241e3f33 Mon Sep 17 00:00:00 2001 From: Banjo Kazooie Date: Sat, 7 Sep 2024 20:18:59 -0500 Subject: [PATCH 10/14] update asm-processor --- tools/asm-processor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/asm-processor b/tools/asm-processor index 56ecf52f..ba74fff4 160000 --- a/tools/asm-processor +++ b/tools/asm-processor @@ -1 +1 @@ -Subproject commit 56ecf52f2c7977af411461f6425624d8f625fc43 +Subproject commit ba74fff47c78f9243d5c5365222ad75b4d9c4eb3 From 3f210f38b8445b92429c9318786943172d51c8d8 Mon Sep 17 00:00:00 2001 From: Banjo Kazooie Date: Sat, 7 Sep 2024 20:24:53 -0500 Subject: [PATCH 11/14] implement pal CI --- .gitlab-ci.yml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 3c539533..e1a24aa1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -70,3 +70,27 @@ build-test-us10: - echo "Calculated SHA1 - $FILE_SHA1" - echo "Expected SHA1 - $BASEROM_US10_SHA1" - if [ "${FILE_SHA1}" != "${BASEROM_US10_SHA1}" ]; then echo "Checksum verification failed"; exit 1; else echo "Checksum verification passed"; fi + +# Try to compile the code inside the image to make sure it works (run docker container) +build-test-pal: + stage: test + image: + name: $CI_REGISTRY_IMAGE:latest + entrypoint: [""] + before_script: + - curl -L "$BASEROM_PAL_URL" -o baserom.pal.enc.z64 + - openssl enc -d -aes-256-cbc -in baserom.pal.enc.z64 -out baserom.pal.z64 -k "$BASEROM_PAL_KEY" + - FILE_SHA1=$(sha1sum baserom.pal.z64 | awk '{ print $1 }') + - echo "Calculated SHA1 - $FILE_SHA1" + - echo "Expected SHA1 - $BASEROM_PAL_SHA1" + - if [ "${FILE_SHA1}" != "${BASEROM_PAL_SHA1}" ]; then echo "Checksum verification failed"; exit 1; else echo "Checksum verification passed"; fi + script: + # Compile the code + - make VERSION=pal + # Check if the resulting decompressed ROM is the same as the expected one + # ToDo: compare compressed ROMs once tooling is in place + - DECOMP_SHA1=$(sha1sum decompressed.pal.z64 | awk '{ print $1 }') + - FILE_SHA1=$(sha1sum build/pal/banjo.pal.prelim.z64 | awk '{ print $1 }') + - echo "Calculated SHA1 - $FILE_SHA1" + - echo "Expected SHA1 - $DECOMP_SHA1" + - if [ "${FILE_SHA1}" != "${DECOMP_SHA1}" ]; then echo "Checksum verification failed"; exit 1; else echo "Checksum verification passed"; fi From 359ec6a3a8142832d1bbd77f4153475b9ed68ce7 Mon Sep 17 00:00:00 2001 From: Banjo Kazooie Date: Sat, 7 Sep 2024 21:40:07 -0500 Subject: [PATCH 12/14] update rom compressor --- tools/bk_rom_compressor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/bk_rom_compressor b/tools/bk_rom_compressor index 48ac16ba..d5470e83 160000 --- a/tools/bk_rom_compressor +++ b/tools/bk_rom_compressor @@ -1 +1 @@ -Subproject commit 48ac16ba5bb0f3e926a7634c4837bf87a58cbbb5 +Subproject commit d5470e83bde854c31b1449279ad53fb16ce10c28 From 37a987d9e6f46f61aa813a51c7c5fd348de0bc9e Mon Sep 17 00:00:00 2001 From: Banjo Kazooie Date: Sun, 8 Sep 2024 13:45:56 -0500 Subject: [PATCH 13/14] fix borken pal symbols --- manual_syms.pal.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/manual_syms.pal.txt b/manual_syms.pal.txt index 70761365..72e11dfa 100644 --- a/manual_syms.pal.txt +++ b/manual_syms.pal.txt @@ -137,9 +137,9 @@ chmole_learnedAllSpiralMountainAbilities = 0x802da678; chOverlayNoController_spawn = 0x802dd1e8; chOverlayNoController_func_802DD040 = 0x802dd220; func_802E3580 = 0x802E3770; -func_802E35D0 = 0x802E37C0; +dummy_func_802E35D0 = 0x802E37C0; func_802E35D8 = 0x802E37c8; -func_802E3F8C = 0x802E417c; +game_draw = 0x802E417c; func_802E4170 = 0x802E4360; func_802E4214 = 0x802E4404; func_802E4384 = 0x802e4574; @@ -171,7 +171,7 @@ gctransition_done = 0x8030bf38; gctransition_8030BDC0 = 0x8030bf60; gctransition_reset = 0x8030c07c; func_8030C704 = 0x8030c8a4; -func_8030C710 = 0x8030c8b0; +scissorBox_setSmall = 0x8030c8b0; func_8030D90C = 0x8030daac; func_8030DA44 = 0x8030dbe4; sfxsource_setSfxId = 0x8030dc20; @@ -221,7 +221,7 @@ savedata_8033CE40 = 0x8033d15c; func_8033DD04 = 0x8033e154; func_8033DD90 = 0x8033e1e0; time_getDelta = 0x8033e1ec; -func_8033EF58 = 0x8033f3a8; +allocUnusedBlock = 0x8033f3a8; func_8033EFB0 = 0x8033f400; func_8033F000 = 0x8033f450; demo_readInput = 0x8034a334; From d1f8a8dd795b812077401c82a5b60d623134057d Mon Sep 17 00:00:00 2001 From: Banjo Kazooie Date: Sun, 8 Sep 2024 13:51:10 -0500 Subject: [PATCH 14/14] fix compressor version mismatch --- tools/bk_rom_compressor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/bk_rom_compressor b/tools/bk_rom_compressor index d5470e83..272180b5 160000 --- a/tools/bk_rom_compressor +++ b/tools/bk_rom_compressor @@ -1 +1 @@ -Subproject commit d5470e83bde854c31b1449279ad53fb16ce10c28 +Subproject commit 272180b527b01c0023dc2ab02bdfdfd373670906