From 3cdef97cb8648cf5a5f2151938c5fa8d66056751 Mon Sep 17 00:00:00 2001 From: Pheenoh Date: Fri, 17 Mar 2023 21:05:06 -0600 Subject: [PATCH] d_file_select, JASResArcLoader, d_a_obj_stone, d_a_obj_stone_mark (#309) * setup TU * JASResArcLoader OK * d_a_obj_stoneMark work * some funcs in d_a_obj_stoneMark * many changes * quat, d_a_obj_stone, d_a_alink, fix python script, tidy makefile * d_file_select functions + pr cleanup --- Makefile | 58 +- Progress.md | 16 +- ...axSize__15JASResArcLoaderFPC10JKRArchive.s | 34 - ...Size__15JASResArcLoaderFPC10JKRArchiveUs.s | 16 - ...ArcLoaderFP10JKRArchiveUsPUcUlPFUlUl_vUl.s | 24 - ...adResourceCallback__15JASResArcLoaderFPv.s | 43 - .../ToNameMove2__14dFile_select_cFv.s | 50 - .../ToNameMove__14dFile_select_cFv.s | 44 - .../fileRecScaleAnm__14dFile_select_cFv.s | 20 - .../headerTxtChangeAnm__14dFile_select_cFv.s | 62 - ...uAlpahAnmInit__14dFile_select_cFUcUcUcUc.s | 18 - asm/dolphin/mtx/quat/PSQUATMultiply.s | 24 - ...ault_callback_scroll__FUsP9OSContextUlUl.s | 258 ---- .../CheckCreateHeap__FP10fopAc_ac_c.s | 9 - .../CreateHeap__12daObjStone_cFv.s | 33 - .../d_a_obj_stone/CrrPos__12daObjStone_cFv.s | 51 - .../d_a_obj_stone/_delete__12daObjStone_cFv.s | 30 - .../daObjStone_Create__FP10fopAc_ac_c.s | 9 - .../daObjStone_Delete__FP12daObjStone_c.s | 9 - .../daObjStone_Draw__FP12daObjStone_c.s | 9 - .../daObjStone_Execute__FP12daObjStone_c.s | 9 - .../d_a_obj_stone/draw__12daObjStone_cFv.s | 50 - .../initBaseMtx__12daObjStone_cFv.s | 42 - .../init_modeDrop__12daObjStone_cFv.s | 17 - .../init_modePutWait__12daObjStone_cFv.s | 21 - .../init_modeWait__12daObjStone_cFv.s | 14 - .../init_modeWalk__12daObjStone_cFv.s | 15 - .../init_modeYogan__12daObjStone_cFv.s | 25 - .../modeBreak__12daObjStone_cFv.s | 12 - .../modePutWait__12daObjStone_cFv.s | 5 - .../modeWait__12daObjStone_cFv.s | 41 - .../modeYogan__12daObjStone_cFv.s | 41 - .../setBaseMtx__12daObjStone_cFv.s | 55 - .../_delete__12daObjSMark_cFv.s | 14 - .../daObjSMark_Create__FP10fopAc_ac_c.s | 9 - .../daObjSMark_Delete__FP12daObjSMark_c.s | 9 - .../daObjSMark_Draw__FP12daObjSMark_c.s | 9 - .../initBaseMtx__12daObjSMark_cFv.s | 9 - .../setBaseMtx__12daObjSMark_cFv.s | 19 - include/JSystem/J2DGraph/J2DAnimation.h | 4 + include/JSystem/J2DGraph/J2DPane.h | 3 +- include/JSystem/J3DGraphAnimator/J3DModel.h | 10 +- include/JSystem/JAudio2/JASResArcLoader.h | 40 +- include/JSystem/JKernel/JKRArchive.h | 1 + include/JSystem/JKernel/JKRHeap.h | 4 + include/JSystem/JUtility/JUTException.h | 4 + include/JSystem/JUtility/JUTNameTab.h | 2 +- include/SSystem/SComponent/c_cc_d.h | 1 + include/SSystem/SComponent/c_math.h | 4 + include/SSystem/SComponent/c_sxyz.h | 2 +- include/d/a/d_a_alink.h | 4 +- include/d/bg/d_bg_s_acch.h | 3 + include/d/cc/d_cc_d.h | 1 + include/d/com/d_com_inf_game.h | 9 + include/d/d_lib.h | 3 + include/d/file/d_file_select.h | 463 +++++++ include/d/save/d_save.h | 528 ++++---- include/f_op/f_op_actor.h | 2 +- include/f_op/f_op_actor_mng.h | 34 +- include/m_Do/m_Do_machine_exception.h | 1 + include/m_Do/m_Do_mtx.h | 8 + .../rel/d/a/obj/d_a_obj_stone/d_a_obj_stone.h | 74 ++ .../obj/d_a_obj_stoneMark/d_a_obj_stoneMark.h | 19 + libs/JSystem/J3DGraphAnimator/J3DModel.cpp | 34 +- libs/JSystem/J3DGraphBase/J3DPacket.cpp | 2 +- libs/JSystem/JAudio2/JASResArcLoader.cpp | 132 +- libs/dolphin/mtx/quat.c | 93 +- rel/d/a/obj/d_a_obj_stone/d_a_obj_stone.cpp | 1154 +++++++++-------- .../d_a_obj_stoneMark/d_a_obj_stoneMark.cpp | 292 ++--- src/d/a/d_a_alink.cpp | 22 +- src/d/a/d_a_alink_boom.inc | 2 +- src/d/a/d_a_alink_canoe.inc | 2 +- src/d/a/d_a_alink_link.inc | 12 +- src/d/d_lib.cpp | 7 +- src/d/file/d_file_select.cpp | 1005 ++++++-------- src/d/s/d_s_name.cpp | 1 + src/m_Do/m_Do_ext.cpp | 18 +- src/m_Do/m_Do_machine.cpp | 68 +- tools/tp.py | 10 +- 79 files changed, 2315 insertions(+), 2996 deletions(-) delete mode 100644 asm/JSystem/JAudio2/JASResArcLoader/getResMaxSize__15JASResArcLoaderFPC10JKRArchive.s delete mode 100644 asm/JSystem/JAudio2/JASResArcLoader/getResSize__15JASResArcLoaderFPC10JKRArchiveUs.s delete mode 100644 asm/JSystem/JAudio2/JASResArcLoader/loadResourceAsync__15JASResArcLoaderFP10JKRArchiveUsPUcUlPFUlUl_vUl.s delete mode 100644 asm/JSystem/JAudio2/JASResArcLoader/loadResourceCallback__15JASResArcLoaderFPv.s delete mode 100644 asm/d/file/d_file_select/ToNameMove2__14dFile_select_cFv.s delete mode 100644 asm/d/file/d_file_select/ToNameMove__14dFile_select_cFv.s delete mode 100644 asm/d/file/d_file_select/fileRecScaleAnm__14dFile_select_cFv.s delete mode 100644 asm/d/file/d_file_select/headerTxtChangeAnm__14dFile_select_cFv.s delete mode 100644 asm/d/file/d_file_select/menuWakuAlpahAnmInit__14dFile_select_cFUcUcUcUc.s delete mode 100644 asm/dolphin/mtx/quat/PSQUATMultiply.s delete mode 100644 asm/m_Do/m_Do_machine/fault_callback_scroll__FUsP9OSContextUlUl.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/CheckCreateHeap__FP10fopAc_ac_c.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/CreateHeap__12daObjStone_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/CrrPos__12daObjStone_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/_delete__12daObjStone_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/daObjStone_Create__FP10fopAc_ac_c.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/daObjStone_Delete__FP12daObjStone_c.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/daObjStone_Draw__FP12daObjStone_c.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/daObjStone_Execute__FP12daObjStone_c.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/draw__12daObjStone_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/initBaseMtx__12daObjStone_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/init_modeDrop__12daObjStone_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/init_modePutWait__12daObjStone_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/init_modeWait__12daObjStone_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/init_modeWalk__12daObjStone_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/init_modeYogan__12daObjStone_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/modeBreak__12daObjStone_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/modePutWait__12daObjStone_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/modeWait__12daObjStone_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/modeYogan__12daObjStone_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/setBaseMtx__12daObjStone_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark/_delete__12daObjSMark_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark/daObjSMark_Create__FP10fopAc_ac_c.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark/daObjSMark_Delete__FP12daObjSMark_c.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark/daObjSMark_Draw__FP12daObjSMark_c.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark/initBaseMtx__12daObjSMark_cFv.s delete mode 100644 asm/rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark/setBaseMtx__12daObjSMark_cFv.s diff --git a/Makefile b/Makefile index 5e25e43c8a..bef737c3f1 100644 --- a/Makefile +++ b/Makefile @@ -19,9 +19,9 @@ TARGET_COL := wii TARGET := dolzel2 -BUILD_PATH := build -BUILD_DIR := $(BUILD_PATH)/$(TARGET) -TARGET_ISO := $(BUILD_DIR)/dolzel2.iso +BUILD_PATH := build +BUILD_DIR := $(BUILD_PATH)/$(TARGET) +TARGET_ISO := $(BUILD_DIR)/dolzel2.iso SRC_DIRS := $(shell find src/ libs/ -type f -name '*.cpp') ASM_DIRS := $(shell find asm/ -type f -name '*.s') @@ -30,11 +30,11 @@ ASM_DIRS := $(shell find asm/ -type f -name '*.s') LDSCRIPT := $(BUILD_DIR)/ldscript.lcf # Outputs -DOL := $(BUILD_DIR)/main.dol -DOL_SHIFT := $(BUILD_DIR)/main_shift.dol -ELF := $(DOL:.dol=.elf) -ELF_SHIFT := $(DOL_SHIFT:.dol=.elf) -MAP := $(BUILD_DIR)/dolzel2.map +DOL := $(BUILD_DIR)/main.dol +DOL_SHIFT := $(BUILD_DIR)/main_shift.dol +ELF := $(DOL:.dol=.elf) +ELF_SHIFT := $(DOL_SHIFT:.dol=.elf) +MAP := $(BUILD_DIR)/dolzel2.map # include list of object files include obj_files.mk @@ -67,21 +67,21 @@ else SHA1SUM := sha1sum endif -AS := $(DEVKITPPC)/bin/powerpc-eabi-as -OBJCOPY := $(DEVKITPPC)/bin/powerpc-eabi-objcopy -STRIP := $(DEVKITPPC)/bin/powerpc-eabi-strip -CC := $(WINE) tools/mwcc_compiler/$(MWCC_VERSION)/mwcceppc_modded.exe -DOLPHIN_LIB_CC := $(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe -FRANK_CC := $(WINE) tools/mwcc_compiler/1.2.5e/mwcceppc.exe -LD := $(WINE_LD) tools/mwcc_compiler/$(MWCC_VERSION)/mwldeppc.exe -ELF2DOL := $(BUILD_PATH)/elf2dol -YAZ0 := $(BUILD_PATH)/yaz0.so -PYTHON := python3 -ICONV := iconv -DOXYGEN := doxygen -MAKEREL := tools/makerel.py -FRANK := tools/frank.py -IMAGENAME := gz2e01.iso +AS := $(DEVKITPPC)/bin/powerpc-eabi-as +OBJCOPY := $(DEVKITPPC)/bin/powerpc-eabi-objcopy +STRIP := $(DEVKITPPC)/bin/powerpc-eabi-strip +CC := $(WINE) tools/mwcc_compiler/$(MWCC_VERSION)/mwcceppc_modded.exe +DOLPHIN_LIB_CC := $(WINE) tools/mwcc_compiler/1.2.5/mwcceppc.exe +FRANK_CC := $(WINE) tools/mwcc_compiler/1.2.5e/mwcceppc.exe +LD := $(WINE_LD) tools/mwcc_compiler/$(MWCC_VERSION)/mwldeppc.exe +ELF2DOL := $(BUILD_PATH)/elf2dol +YAZ0 := $(BUILD_PATH)/yaz0.so +PYTHON := python3 +ICONV := iconv +DOXYGEN := doxygen +MAKEREL := tools/makerel.py +FRANK := tools/frank.py +IMAGENAME := gz2e01.iso # Options INCLUDES := -i include -i include/dolphin/ -i src @@ -101,13 +101,13 @@ DEPFLAGS := $(if $(DISABLE_DEPS),,-MD) $(BUILD_DIR)/src/init.o: CFLAGS := -Cpp_exceptions off -proc gekko -fp hard -O4,p -nodefaults -str pool,readonly,reuse -RTTI off -maxerrors 5 -enum int $(INCLUDES) # __start.c needs mwcc 1.2.5 and O4,p -$(BUILD_DIR)/src/__start.o: CFLAGS := -Cpp_exceptions off -proc gekko -fp hard -O4,p -nodefaults -str pool,readonly,reuse -RTTI off -maxerrors 5 -enum int $(INCLUDES) -$(BUILD_DIR)/src/__start.o: MWCC_VERSION := 1.2.5 -$(BUILD_DIR)/src/__start.o: CC := $(WINE) tools/mwcc_compiler/$(MWCC_VERSION)/mwcceppc.exe +$(BUILD_DIR)/src/__start.o: CFLAGS := -Cpp_exceptions off -proc gekko -fp hard -O4,p -nodefaults -str pool,readonly,reuse -RTTI off -maxerrors 5 -enum int $(INCLUDES) +$(BUILD_DIR)/src/__start.o: MWCC_VERSION := 1.2.5 +$(BUILD_DIR)/src/__start.o: CC := $(WINE) tools/mwcc_compiler/$(MWCC_VERSION)/mwcceppc.exe # elf2dol needs to know these in order to calculate sbss correctly. -SDATA_PDHR := 9 -SBSS_PDHR := 10 +SDATA_PDHR := 9 +SBSS_PDHR := 10 #------------------------------------------------------------------------------- # Recipes @@ -221,7 +221,7 @@ rungame: game iso: game @$(PYTHON) tools/packageISO.py $(BUILD_DIR)/game/ $(TARGET_ISO) -# + $(BUILD_DIR)/%.o: %.c $(BUILD_DIR)/%.d @mkdir -p $(@D) @echo building... $< diff --git a/Progress.md b/Progress.md index 77aba0bdbb..1bd8025c11 100644 --- a/Progress.md +++ b/Progress.md @@ -7,22 +7,22 @@ Section | Percentage | Decompiled (bytes) | Total (bytes) .init | 97.972973% | 9280 | 9472 .extab | 100.000000% | 96 | 96 .extabindex | 100.000000% | 96 | 96 -.text | 25.741830% | 925808 | 3596512 +.text | 25.784308% | 927344 | 3596544 .ctors | 100.000000% | 448 | 448 .dtors | 100.000000% | 32 | 32 .rodata | 100.000000% | 193856 | 193856 .data | 100.000000% | 197632 | 197632 .sdata | 100.000000% | 1408 | 1408 .sdata2 | 100.000000% | 20832 | 20832 -Total | 33.570377% | 1349744 | 4020640 +Total | 33.608312% | 1351280 | 4020672 ## Total Section | Percentage | Decompiled (bytes) | Total (bytes) ---|---|---|--- -main.dol | 33.570377% | 1349744 | 4020640 -RELs | 33.387651% | 3839688 | 11500324 -Total | 33.434985% | 5189432 | 15520964 +main.dol | 33.608312% | 1351280 | 4020672 +RELs | 33.406154% | 3841816 | 11500324 +Total | 33.458523% | 5193096 | 15520996 ## RELs @@ -609,8 +609,8 @@ d_a_obj_ss_drink | 36.026542% | 3692 | 10248 d_a_obj_ss_item | 38.313378% | 2944 | 7684 d_a_obj_stairBlock | 45.129643% | 2576 | 5708 d_a_obj_stick | 43.708609% | 2376 | 5436 -d_a_obj_stone | 26.135237% | 5272 | 20172 -d_a_obj_stoneMark | 52.549020% | 1072 | 2040 +d_a_obj_stone | 35.435257% | 7148 | 20172 +d_a_obj_stoneMark | 64.901961% | 1324 | 2040 d_a_obj_stopper | 31.675996% | 3848 | 12148 d_a_obj_stopper2 | 38.987342% | 1848 | 4740 d_a_obj_suisya | 49.914821% | 1172 | 2348 @@ -785,4 +785,4 @@ d_a_vrbox2 | 34.977578% | 2184 | 6244 d_a_warp_bug | 54.940711% | 1112 | 2024 d_a_ykgr | 44.400631% | 2252 | 5072 f_pc_profile_lst | 100.000000% | 28156 | 28156 -Total | 33.387651% | 3839688 | 11500324 +Total | 33.406154% | 3841816 | 11500324 diff --git a/asm/JSystem/JAudio2/JASResArcLoader/getResMaxSize__15JASResArcLoaderFPC10JKRArchive.s b/asm/JSystem/JAudio2/JASResArcLoader/getResMaxSize__15JASResArcLoaderFPC10JKRArchive.s deleted file mode 100644 index e0a6838c0c..0000000000 --- a/asm/JSystem/JAudio2/JASResArcLoader/getResMaxSize__15JASResArcLoaderFPC10JKRArchive.s +++ /dev/null @@ -1,34 +0,0 @@ -lbl_80290C04: -/* 80290C04 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80290C08 7C 08 02 A6 */ mflr r0 -/* 80290C0C 90 01 00 24 */ stw r0, 0x24(r1) -/* 80290C10 39 61 00 20 */ addi r11, r1, 0x20 -/* 80290C14 48 0D 15 C5 */ bl _savegpr_28 -/* 80290C18 7C 7C 1B 78 */ mr r28, r3 -/* 80290C1C 80 63 00 44 */ lwz r3, 0x44(r3) -/* 80290C20 83 E3 00 08 */ lwz r31, 8(r3) -/* 80290C24 3B C0 00 00 */ li r30, 0 -/* 80290C28 3B A0 00 00 */ li r29, 0 -/* 80290C2C 48 00 00 2C */ b lbl_80290C58 -lbl_80290C30: -/* 80290C30 7F 83 E3 78 */ mr r3, r28 -/* 80290C34 7F A4 EB 78 */ mr r4, r29 -/* 80290C38 48 04 5A 4D */ bl findIdxResource__10JKRArchiveCFUl -/* 80290C3C 28 03 00 00 */ cmplwi r3, 0 -/* 80290C40 41 82 00 14 */ beq lbl_80290C54 -/* 80290C44 80 03 00 0C */ lwz r0, 0xc(r3) -/* 80290C48 7C 1E 00 40 */ cmplw r30, r0 -/* 80290C4C 40 80 00 08 */ bge lbl_80290C54 -/* 80290C50 7C 1E 03 78 */ mr r30, r0 -lbl_80290C54: -/* 80290C54 3B BD 00 01 */ addi r29, r29, 1 -lbl_80290C58: -/* 80290C58 7C 1D F8 40 */ cmplw r29, r31 -/* 80290C5C 41 80 FF D4 */ blt lbl_80290C30 -/* 80290C60 7F C3 F3 78 */ mr r3, r30 -/* 80290C64 39 61 00 20 */ addi r11, r1, 0x20 -/* 80290C68 48 0D 15 BD */ bl _restgpr_28 -/* 80290C6C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80290C70 7C 08 03 A6 */ mtlr r0 -/* 80290C74 38 21 00 20 */ addi r1, r1, 0x20 -/* 80290C78 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASResArcLoader/getResSize__15JASResArcLoaderFPC10JKRArchiveUs.s b/asm/JSystem/JAudio2/JASResArcLoader/getResSize__15JASResArcLoaderFPC10JKRArchiveUs.s deleted file mode 100644 index ef7320e805..0000000000 --- a/asm/JSystem/JAudio2/JASResArcLoader/getResSize__15JASResArcLoaderFPC10JKRArchiveUs.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_80290BD0: -/* 80290BD0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80290BD4 7C 08 02 A6 */ mflr r0 -/* 80290BD8 90 01 00 14 */ stw r0, 0x14(r1) -/* 80290BDC 48 04 5B 95 */ bl findIdResource__10JKRArchiveCFUs -/* 80290BE0 28 03 00 00 */ cmplwi r3, 0 -/* 80290BE4 40 82 00 0C */ bne lbl_80290BF0 -/* 80290BE8 38 60 00 00 */ li r3, 0 -/* 80290BEC 48 00 00 08 */ b lbl_80290BF4 -lbl_80290BF0: -/* 80290BF0 80 63 00 0C */ lwz r3, 0xc(r3) -lbl_80290BF4: -/* 80290BF4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80290BF8 7C 08 03 A6 */ mtlr r0 -/* 80290BFC 38 21 00 10 */ addi r1, r1, 0x10 -/* 80290C00 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASResArcLoader/loadResourceAsync__15JASResArcLoaderFP10JKRArchiveUsPUcUlPFUlUl_vUl.s b/asm/JSystem/JAudio2/JASResArcLoader/loadResourceAsync__15JASResArcLoaderFP10JKRArchiveUsPUcUlPFUlUl_vUl.s deleted file mode 100644 index 8b56a4e6bc..0000000000 --- a/asm/JSystem/JAudio2/JASResArcLoader/loadResourceAsync__15JASResArcLoaderFP10JKRArchiveUsPUcUlPFUlUl_vUl.s +++ /dev/null @@ -1,24 +0,0 @@ -lbl_80290D18: -/* 80290D18 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 80290D1C 7C 08 02 A6 */ mflr r0 -/* 80290D20 90 01 00 34 */ stw r0, 0x34(r1) -/* 80290D24 90 61 00 08 */ stw r3, 8(r1) -/* 80290D28 B0 81 00 0C */ sth r4, 0xc(r1) -/* 80290D2C 90 A1 00 10 */ stw r5, 0x10(r1) -/* 80290D30 90 C1 00 14 */ stw r6, 0x14(r1) -/* 80290D34 38 00 00 00 */ li r0, 0 -/* 80290D38 90 01 00 18 */ stw r0, 0x18(r1) -/* 80290D3C 90 01 00 1C */ stw r0, 0x1c(r1) -/* 80290D40 90 01 00 20 */ stw r0, 0x20(r1) -/* 80290D44 90 E1 00 18 */ stw r7, 0x18(r1) -/* 80290D48 91 01 00 1C */ stw r8, 0x1c(r1) -/* 80290D4C 4B FF F1 B1 */ bl getThreadPointer__6JASDvdFv -/* 80290D50 3C 80 80 29 */ lis r4, loadResourceCallback__15JASResArcLoaderFPv@ha /* 0x80290C7C@ha */ -/* 80290D54 38 84 0C 7C */ addi r4, r4, loadResourceCallback__15JASResArcLoaderFPv@l /* 0x80290C7C@l */ -/* 80290D58 38 A1 00 08 */ addi r5, r1, 8 -/* 80290D5C 38 C0 00 1C */ li r6, 0x1c -/* 80290D60 4B FF ED FD */ bl sendCmdMsg__13JASTaskThreadFPFPv_vPCvUl -/* 80290D64 80 01 00 34 */ lwz r0, 0x34(r1) -/* 80290D68 7C 08 03 A6 */ mtlr r0 -/* 80290D6C 38 21 00 30 */ addi r1, r1, 0x30 -/* 80290D70 4E 80 00 20 */ blr diff --git a/asm/JSystem/JAudio2/JASResArcLoader/loadResourceCallback__15JASResArcLoaderFPv.s b/asm/JSystem/JAudio2/JASResArcLoader/loadResourceCallback__15JASResArcLoaderFPv.s deleted file mode 100644 index fb5ab383a8..0000000000 --- a/asm/JSystem/JAudio2/JASResArcLoader/loadResourceCallback__15JASResArcLoaderFPv.s +++ /dev/null @@ -1,43 +0,0 @@ -lbl_80290C7C: -/* 80290C7C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80290C80 7C 08 02 A6 */ mflr r0 -/* 80290C84 90 01 00 14 */ stw r0, 0x14(r1) -/* 80290C88 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80290C8C 93 C1 00 08 */ stw r30, 8(r1) -/* 80290C90 7C 7E 1B 78 */ mr r30, r3 -/* 80290C94 80 63 00 00 */ lwz r3, 0(r3) -/* 80290C98 80 9E 00 08 */ lwz r4, 8(r30) -/* 80290C9C 80 BE 00 0C */ lwz r5, 0xc(r30) -/* 80290CA0 A0 DE 00 04 */ lhz r6, 4(r30) -/* 80290CA4 48 04 52 9D */ bl readResource__10JKRArchiveFPvUlUs -/* 80290CA8 7C 7F 1B 78 */ mr r31, r3 -/* 80290CAC 81 9E 00 10 */ lwz r12, 0x10(r30) -/* 80290CB0 28 0C 00 00 */ cmplwi r12, 0 -/* 80290CB4 41 82 00 10 */ beq lbl_80290CC4 -/* 80290CB8 80 9E 00 14 */ lwz r4, 0x14(r30) -/* 80290CBC 7D 89 03 A6 */ mtctr r12 -/* 80290CC0 4E 80 04 21 */ bctrl -lbl_80290CC4: -/* 80290CC4 28 1F 00 00 */ cmplwi r31, 0 -/* 80290CC8 40 82 00 20 */ bne lbl_80290CE8 -/* 80290CCC 80 7E 00 18 */ lwz r3, 0x18(r30) -/* 80290CD0 28 03 00 00 */ cmplwi r3, 0 -/* 80290CD4 41 82 00 2C */ beq lbl_80290D00 -/* 80290CD8 38 80 FF FF */ li r4, -1 -/* 80290CDC 38 A0 00 01 */ li r5, 1 -/* 80290CE0 48 0A DD 15 */ bl OSSendMessage -/* 80290CE4 48 00 00 1C */ b lbl_80290D00 -lbl_80290CE8: -/* 80290CE8 80 7E 00 18 */ lwz r3, 0x18(r30) -/* 80290CEC 28 03 00 00 */ cmplwi r3, 0 -/* 80290CF0 41 82 00 10 */ beq lbl_80290D00 -/* 80290CF4 38 80 00 00 */ li r4, 0 -/* 80290CF8 38 A0 00 01 */ li r5, 1 -/* 80290CFC 48 0A DC F9 */ bl OSSendMessage -lbl_80290D00: -/* 80290D00 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80290D04 83 C1 00 08 */ lwz r30, 8(r1) -/* 80290D08 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80290D0C 7C 08 03 A6 */ mtlr r0 -/* 80290D10 38 21 00 10 */ addi r1, r1, 0x10 -/* 80290D14 4E 80 00 20 */ blr diff --git a/asm/d/file/d_file_select/ToNameMove2__14dFile_select_cFv.s b/asm/d/file/d_file_select/ToNameMove2__14dFile_select_cFv.s deleted file mode 100644 index 7110d0ec8c..0000000000 --- a/asm/d/file/d_file_select/ToNameMove2__14dFile_select_cFv.s +++ /dev/null @@ -1,50 +0,0 @@ -lbl_801872C4: -/* 801872C4 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 801872C8 7C 08 02 A6 */ mflr r0 -/* 801872CC 90 01 00 24 */ stw r0, 0x24(r1) -/* 801872D0 39 61 00 20 */ addi r11, r1, 0x20 -/* 801872D4 48 1D AE FD */ bl _savegpr_26 -/* 801872D8 7C 7A 1B 78 */ mr r26, r3 -/* 801872DC 48 00 5F 81 */ bl headerTxtChangeAnm__14dFile_select_cFv -/* 801872E0 7C 7B 1B 78 */ mr r27, r3 -/* 801872E4 7F 43 D3 78 */ mr r3, r26 -/* 801872E8 48 00 8E 3D */ bl nameMoveAnm__14dFile_select_cFv -/* 801872EC 7C 7C 1B 78 */ mr r28, r3 -/* 801872F0 7F 43 D3 78 */ mr r3, r26 -/* 801872F4 48 00 6E CD */ bl errorMoveAnm__14dFile_select_cFv -/* 801872F8 7C 7D 1B 78 */ mr r29, r3 -/* 801872FC 7F 43 D3 78 */ mr r3, r26 -/* 80187300 48 00 1A 39 */ bl yesnoMenuMoveAnm__14dFile_select_cFv -/* 80187304 7C 7E 1B 78 */ mr r30, r3 -/* 80187308 7F 43 D3 78 */ mr r3, r26 -/* 8018730C 48 00 62 69 */ bl ketteiTxtDispAnm__14dFile_select_cFv -/* 80187310 7C 7F 1B 78 */ mr r31, r3 -/* 80187314 7F 43 D3 78 */ mr r3, r26 -/* 80187318 48 00 61 05 */ bl modoruTxtDispAnm__14dFile_select_cFv -/* 8018731C 57 60 06 3E */ clrlwi r0, r27, 0x18 -/* 80187320 28 00 00 01 */ cmplwi r0, 1 -/* 80187324 40 82 00 48 */ bne lbl_8018736C -/* 80187328 57 80 06 3E */ clrlwi r0, r28, 0x18 -/* 8018732C 28 00 00 01 */ cmplwi r0, 1 -/* 80187330 40 82 00 3C */ bne lbl_8018736C -/* 80187334 57 A0 06 3E */ clrlwi r0, r29, 0x18 -/* 80187338 28 00 00 01 */ cmplwi r0, 1 -/* 8018733C 40 82 00 30 */ bne lbl_8018736C -/* 80187340 57 C0 06 3E */ clrlwi r0, r30, 0x18 -/* 80187344 28 00 00 01 */ cmplwi r0, 1 -/* 80187348 40 82 00 24 */ bne lbl_8018736C -/* 8018734C 57 E0 06 3E */ clrlwi r0, r31, 0x18 -/* 80187350 28 00 00 01 */ cmplwi r0, 1 -/* 80187354 40 82 00 18 */ bne lbl_8018736C -/* 80187358 54 60 06 3E */ clrlwi r0, r3, 0x18 -/* 8018735C 28 00 00 01 */ cmplwi r0, 1 -/* 80187360 40 82 00 0C */ bne lbl_8018736C -/* 80187364 38 00 00 0F */ li r0, 0xf -/* 80187368 98 1A 02 6F */ stb r0, 0x26f(r26) -lbl_8018736C: -/* 8018736C 39 61 00 20 */ addi r11, r1, 0x20 -/* 80187370 48 1D AE AD */ bl _restgpr_26 -/* 80187374 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80187378 7C 08 03 A6 */ mtlr r0 -/* 8018737C 38 21 00 20 */ addi r1, r1, 0x20 -/* 80187380 4E 80 00 20 */ blr diff --git a/asm/d/file/d_file_select/ToNameMove__14dFile_select_cFv.s b/asm/d/file/d_file_select/ToNameMove__14dFile_select_cFv.s deleted file mode 100644 index 7713da604a..0000000000 --- a/asm/d/file/d_file_select/ToNameMove__14dFile_select_cFv.s +++ /dev/null @@ -1,44 +0,0 @@ -lbl_8018721C: -/* 8018721C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80187220 7C 08 02 A6 */ mflr r0 -/* 80187224 90 01 00 24 */ stw r0, 0x24(r1) -/* 80187228 39 61 00 20 */ addi r11, r1, 0x20 -/* 8018722C 48 1D AF A9 */ bl _savegpr_27 -/* 80187230 7C 7B 1B 78 */ mr r27, r3 -/* 80187234 48 00 60 29 */ bl headerTxtChangeAnm__14dFile_select_cFv -/* 80187238 7C 7C 1B 78 */ mr r28, r3 -/* 8018723C 7F 63 DB 78 */ mr r3, r27 -/* 80187240 48 00 8E E5 */ bl nameMoveAnm__14dFile_select_cFv -/* 80187244 7C 7D 1B 78 */ mr r29, r3 -/* 80187248 7F 63 DB 78 */ mr r3, r27 -/* 8018724C 4B FF FA 61 */ bl menuMoveAnm__14dFile_select_cFv -/* 80187250 7C 7E 1B 78 */ mr r30, r3 -/* 80187254 7F 63 DB 78 */ mr r3, r27 -/* 80187258 48 00 8B C1 */ bl fileRecScaleAnm__14dFile_select_cFv -/* 8018725C 7C 7F 1B 78 */ mr r31, r3 -/* 80187260 7F 63 DB 78 */ mr r3, r27 -/* 80187264 48 00 8D 39 */ bl fileInfoScaleAnm__14dFile_select_cFv -/* 80187268 57 80 06 3E */ clrlwi r0, r28, 0x18 -/* 8018726C 28 00 00 01 */ cmplwi r0, 1 -/* 80187270 40 82 00 3C */ bne lbl_801872AC -/* 80187274 57 A0 06 3E */ clrlwi r0, r29, 0x18 -/* 80187278 28 00 00 01 */ cmplwi r0, 1 -/* 8018727C 40 82 00 30 */ bne lbl_801872AC -/* 80187280 57 C0 06 3E */ clrlwi r0, r30, 0x18 -/* 80187284 28 00 00 01 */ cmplwi r0, 1 -/* 80187288 40 82 00 24 */ bne lbl_801872AC -/* 8018728C 57 E0 06 3E */ clrlwi r0, r31, 0x18 -/* 80187290 28 00 00 01 */ cmplwi r0, 1 -/* 80187294 40 82 00 18 */ bne lbl_801872AC -/* 80187298 54 60 06 3E */ clrlwi r0, r3, 0x18 -/* 8018729C 28 00 00 01 */ cmplwi r0, 1 -/* 801872A0 40 82 00 0C */ bne lbl_801872AC -/* 801872A4 38 00 00 0F */ li r0, 0xf -/* 801872A8 98 1B 02 6F */ stb r0, 0x26f(r27) -lbl_801872AC: -/* 801872AC 39 61 00 20 */ addi r11, r1, 0x20 -/* 801872B0 48 1D AF 71 */ bl _restgpr_27 -/* 801872B4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 801872B8 7C 08 03 A6 */ mtlr r0 -/* 801872BC 38 21 00 20 */ addi r1, r1, 0x20 -/* 801872C0 4E 80 00 20 */ blr diff --git a/asm/d/file/d_file_select/fileRecScaleAnm__14dFile_select_cFv.s b/asm/d/file/d_file_select/fileRecScaleAnm__14dFile_select_cFv.s deleted file mode 100644 index 12158a02f8..0000000000 --- a/asm/d/file/d_file_select/fileRecScaleAnm__14dFile_select_cFv.s +++ /dev/null @@ -1,20 +0,0 @@ -lbl_8018FE18: -/* 8018FE18 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8018FE1C 7C 08 02 A6 */ mflr r0 -/* 8018FE20 90 01 00 14 */ stw r0, 0x14(r1) -/* 8018FE24 7C 65 1B 78 */ mr r5, r3 -/* 8018FE28 88 03 02 65 */ lbz r0, 0x265(r3) -/* 8018FE2C 54 00 10 3A */ slwi r0, r0, 2 -/* 8018FE30 7C 65 02 14 */ add r3, r5, r0 -/* 8018FE34 80 63 00 BC */ lwz r3, 0xbc(r3) -/* 8018FE38 3C 80 80 43 */ lis r4, g_fsHIO@ha /* 0x8042C9EC@ha */ -/* 8018FE3C 38 84 C9 EC */ addi r4, r4, g_fsHIO@l /* 0x8042C9EC@l */ -/* 8018FE40 88 84 00 05 */ lbz r4, 5(r4) -/* 8018FE44 C0 25 00 C8 */ lfs f1, 0xc8(r5) -/* 8018FE48 C0 45 00 D4 */ lfs f2, 0xd4(r5) -/* 8018FE4C 38 A0 00 00 */ li r5, 0 -/* 8018FE50 48 0C 49 7D */ bl scaleAnime__8CPaneMgrFsffUc -/* 8018FE54 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8018FE58 7C 08 03 A6 */ mtlr r0 -/* 8018FE5C 38 21 00 10 */ addi r1, r1, 0x10 -/* 8018FE60 4E 80 00 20 */ blr diff --git a/asm/d/file/d_file_select/headerTxtChangeAnm__14dFile_select_cFv.s b/asm/d/file/d_file_select/headerTxtChangeAnm__14dFile_select_cFv.s deleted file mode 100644 index 19923b239c..0000000000 --- a/asm/d/file/d_file_select/headerTxtChangeAnm__14dFile_select_cFv.s +++ /dev/null @@ -1,62 +0,0 @@ -lbl_8018D25C: -/* 8018D25C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8018D260 7C 08 02 A6 */ mflr r0 -/* 8018D264 90 01 00 24 */ stw r0, 0x24(r1) -/* 8018D268 39 61 00 20 */ addi r11, r1, 0x20 -/* 8018D26C 48 1D 4F 6D */ bl _savegpr_28 -/* 8018D270 7C 7F 1B 78 */ mr r31, r3 -/* 8018D274 88 03 02 1D */ lbz r0, 0x21d(r3) -/* 8018D278 28 00 00 00 */ cmplwi r0, 0 -/* 8018D27C 41 82 00 0C */ beq lbl_8018D288 -/* 8018D280 38 60 00 01 */ li r3, 1 -/* 8018D284 48 00 00 A8 */ b lbl_8018D32C -lbl_8018D288: -/* 8018D288 3B 80 00 00 */ li r28, 0 -/* 8018D28C 88 1F 02 1C */ lbz r0, 0x21c(r31) -/* 8018D290 54 00 10 3A */ slwi r0, r0, 2 -/* 8018D294 7C 7F 02 14 */ add r3, r31, r0 -/* 8018D298 80 63 02 0C */ lwz r3, 0x20c(r3) -/* 8018D29C 3C 80 80 43 */ lis r4, g_fsHIO@ha /* 0x8042C9EC@ha */ -/* 8018D2A0 3B A4 C9 EC */ addi r29, r4, g_fsHIO@l /* 0x8042C9EC@l */ -/* 8018D2A4 88 9D 00 07 */ lbz r4, 7(r29) -/* 8018D2A8 38 A0 00 FF */ li r5, 0xff -/* 8018D2AC 38 C0 00 00 */ li r6, 0 -/* 8018D2B0 38 E0 00 00 */ li r7, 0 -/* 8018D2B4 48 0C 85 C5 */ bl alphaAnime__13CPaneMgrAlphaFsUcUcUc -/* 8018D2B8 7C 7E 1B 78 */ mr r30, r3 -/* 8018D2BC 88 1F 02 1C */ lbz r0, 0x21c(r31) -/* 8018D2C0 68 00 00 01 */ xori r0, r0, 1 -/* 8018D2C4 54 00 10 3A */ slwi r0, r0, 2 -/* 8018D2C8 7C 7F 02 14 */ add r3, r31, r0 -/* 8018D2CC 80 63 02 0C */ lwz r3, 0x20c(r3) -/* 8018D2D0 88 9D 00 07 */ lbz r4, 7(r29) -/* 8018D2D4 38 A0 00 00 */ li r5, 0 -/* 8018D2D8 38 C0 00 FF */ li r6, 0xff -/* 8018D2DC 38 E0 00 00 */ li r7, 0 -/* 8018D2E0 48 0C 85 99 */ bl alphaAnime__13CPaneMgrAlphaFsUcUcUc -/* 8018D2E4 3C 80 80 43 */ lis r4, g_meter2_info@ha /* 0x80430188@ha */ -/* 8018D2E8 38 84 01 88 */ addi r4, r4, g_meter2_info@l /* 0x80430188@l */ -/* 8018D2EC A8 84 00 94 */ lha r4, 0x94(r4) -/* 8018D2F0 57 C0 06 3E */ clrlwi r0, r30, 0x18 -/* 8018D2F4 28 00 00 01 */ cmplwi r0, 1 -/* 8018D2F8 40 82 00 30 */ bne lbl_8018D328 -/* 8018D2FC 54 60 06 3E */ clrlwi r0, r3, 0x18 -/* 8018D300 28 00 00 01 */ cmplwi r0, 1 -/* 8018D304 40 82 00 24 */ bne lbl_8018D328 -/* 8018D308 2C 04 00 00 */ cmpwi r4, 0 -/* 8018D30C 40 82 00 1C */ bne lbl_8018D328 -/* 8018D310 88 1F 02 1C */ lbz r0, 0x21c(r31) -/* 8018D314 68 00 00 01 */ xori r0, r0, 1 -/* 8018D318 98 1F 02 1C */ stb r0, 0x21c(r31) -/* 8018D31C 38 00 00 01 */ li r0, 1 -/* 8018D320 98 1F 02 1D */ stb r0, 0x21d(r31) -/* 8018D324 3B 80 00 01 */ li r28, 1 -lbl_8018D328: -/* 8018D328 7F 83 E3 78 */ mr r3, r28 -lbl_8018D32C: -/* 8018D32C 39 61 00 20 */ addi r11, r1, 0x20 -/* 8018D330 48 1D 4E F5 */ bl _restgpr_28 -/* 8018D334 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8018D338 7C 08 03 A6 */ mtlr r0 -/* 8018D33C 38 21 00 20 */ addi r1, r1, 0x20 -/* 8018D340 4E 80 00 20 */ blr diff --git a/asm/d/file/d_file_select/menuWakuAlpahAnmInit__14dFile_select_cFUcUcUcUc.s b/asm/d/file/d_file_select/menuWakuAlpahAnmInit__14dFile_select_cFUcUcUcUc.s deleted file mode 100644 index b28c1f9550..0000000000 --- a/asm/d/file/d_file_select/menuWakuAlpahAnmInit__14dFile_select_cFUcUcUcUc.s +++ /dev/null @@ -1,18 +0,0 @@ -lbl_8018D884: -/* 8018D884 38 00 00 00 */ li r0, 0 -/* 8018D888 54 89 06 3E */ clrlwi r9, r4, 0x18 -/* 8018D88C 54 84 15 BA */ rlwinm r4, r4, 2, 0x16, 0x1d -/* 8018D890 7D 03 22 14 */ add r8, r3, r4 -/* 8018D894 80 88 03 64 */ lwz r4, 0x364(r8) -/* 8018D898 B0 04 00 16 */ sth r0, 0x16(r4) -/* 8018D89C 80 88 03 70 */ lwz r4, 0x370(r8) -/* 8018D8A0 B0 04 00 16 */ sth r0, 0x16(r4) -/* 8018D8A4 80 88 03 7C */ lwz r4, 0x37c(r8) -/* 8018D8A8 B0 04 00 16 */ sth r0, 0x16(r4) -/* 8018D8AC 7C 63 4A 14 */ add r3, r3, r9 -/* 8018D8B0 98 A3 03 88 */ stb r5, 0x388(r3) -/* 8018D8B4 98 C3 03 8B */ stb r6, 0x38b(r3) -/* 8018D8B8 98 E3 03 8E */ stb r7, 0x38e(r3) -/* 8018D8BC 80 68 03 94 */ lwz r3, 0x394(r8) -/* 8018D8C0 B0 03 00 6A */ sth r0, 0x6a(r3) -/* 8018D8C4 4E 80 00 20 */ blr diff --git a/asm/dolphin/mtx/quat/PSQUATMultiply.s b/asm/dolphin/mtx/quat/PSQUATMultiply.s deleted file mode 100644 index 93475ab0e6..0000000000 --- a/asm/dolphin/mtx/quat/PSQUATMultiply.s +++ /dev/null @@ -1,24 +0,0 @@ -lbl_80347418: -/* 80347418 E0 03 00 00 */ psq_l f0, 0(r3), 0, 0 /* qr0 */ -/* 8034741C E0 23 00 08 */ psq_l f1, 8(r3), 0, 0 /* qr0 */ -/* 80347420 E0 44 00 00 */ psq_l f2, 0(r4), 0, 0 /* qr0 */ -/* 80347424 10 A0 00 50 */ ps_neg f5, f0 -/* 80347428 E0 64 00 08 */ psq_l f3, 8(r4), 0, 0 /* qr0 */ -/* 8034742C 10 C0 08 50 */ ps_neg f6, f1 -/* 80347430 10 85 04 60 */ ps_merge01 f4, f5, f0 -/* 80347434 10 E1 00 98 */ ps_muls0 f7, f1, f2 -/* 80347438 10 A5 00 98 */ ps_muls0 f5, f5, f2 -/* 8034743C 10 26 0C 60 */ ps_merge01 f1, f6, f1 -/* 80347440 11 04 00 9A */ ps_muls1 f8, f4, f2 -/* 80347444 10 E4 38 DC */ ps_madds0 f7, f4, f3, f7 -/* 80347448 10 41 00 9A */ ps_muls1 f2, f1, f2 -/* 8034744C 10 A1 28 DC */ ps_madds0 f5, f1, f3, f5 -/* 80347450 11 06 40 DE */ ps_madds1 f8, f6, f3, f8 -/* 80347454 10 E7 3C A0 */ ps_merge10 f7, f7, f7 -/* 80347458 10 40 10 DE */ ps_madds1 f2, f0, f3, f2 -/* 8034745C 10 A5 2C A0 */ ps_merge10 f5, f5, f5 -/* 80347460 10 E7 10 2A */ ps_add f7, f7, f2 -/* 80347464 F0 E5 00 00 */ psq_st f7, 0(r5), 0, 0 /* qr0 */ -/* 80347468 10 A5 40 28 */ ps_sub f5, f5, f8 -/* 8034746C F0 A5 00 08 */ psq_st f5, 8(r5), 0, 0 /* qr0 */ -/* 80347470 4E 80 00 20 */ blr diff --git a/asm/m_Do/m_Do_machine/fault_callback_scroll__FUsP9OSContextUlUl.s b/asm/m_Do/m_Do_machine/fault_callback_scroll__FUsP9OSContextUlUl.s deleted file mode 100644 index 87c2d34be6..0000000000 --- a/asm/m_Do/m_Do_machine/fault_callback_scroll__FUsP9OSContextUlUl.s +++ /dev/null @@ -1,258 +0,0 @@ -lbl_8000B95C: -/* 8000B95C 94 21 FF 30 */ stwu r1, -0xd0(r1) -/* 8000B960 7C 08 02 A6 */ mflr r0 -/* 8000B964 90 01 00 D4 */ stw r0, 0xd4(r1) -/* 8000B968 39 61 00 D0 */ addi r11, r1, 0xd0 -/* 8000B96C 48 35 68 6D */ bl _savegpr_28 -/* 8000B970 83 8D 8F 88 */ lwz r28, sErrorManager__12JUTException(r13) -/* 8000B974 83 ED 8F 9C */ lwz r31, sConsole__12JUTException(r13) -/* 8000B978 7F FE FB 78 */ mr r30, r31 -/* 8000B97C 80 04 01 98 */ lwz r0, 0x198(r4) -/* 8000B980 54 08 00 3A */ rlwinm r8, r0, 0, 0, 0x1d -/* 8000B984 3C 60 80 00 */ lis r3, 0x8000 /* 0x8000000C@ha */ -/* 8000B988 38 03 00 0C */ addi r0, r3, 0x000C /* 0x8000000C@l */ -/* 8000B98C 7C 08 00 40 */ cmplw r8, r0 -/* 8000B990 41 80 00 3C */ blt lbl_8000B9CC -/* 8000B994 3C 60 83 00 */ lis r3, 0x8300 /* 0x82FFFFFF@ha */ -/* 8000B998 38 03 FF FF */ addi r0, r3, 0xFFFF /* 0x82FFFFFF@l */ -/* 8000B99C 7C 08 00 40 */ cmplw r8, r0 -/* 8000B9A0 40 80 00 2C */ bge lbl_8000B9CC -/* 8000B9A4 7F E3 FB 78 */ mr r3, r31 -/* 8000B9A8 3C 80 80 37 */ lis r4, m_Do_m_Do_machine__stringBase0@ha /* 0x80373DE8@ha */ -/* 8000B9AC 38 84 3D E8 */ addi r4, r4, m_Do_m_Do_machine__stringBase0@l /* 0x80373DE8@l */ -/* 8000B9B0 38 84 01 A1 */ addi r4, r4, 0x1a1 -/* 8000B9B4 80 A8 FF F4 */ lwz r5, -0xc(r8) -/* 8000B9B8 80 C8 FF F8 */ lwz r6, -8(r8) -/* 8000B9BC 80 E8 FF FC */ lwz r7, -4(r8) -/* 8000B9C0 81 08 00 00 */ lwz r8, 0(r8) -/* 8000B9C4 4C C6 31 82 */ crclr 6 -/* 8000B9C8 48 2D C1 F1 */ bl print_f__10JUTConsoleFPCce -lbl_8000B9CC: -/* 8000B9CC 38 61 00 10 */ addi r3, r1, 0x10 -/* 8000B9D0 38 80 00 00 */ li r4, 0 -/* 8000B9D4 48 2D 4D 09 */ bl __ct__10JUTGamePadFQ210JUTGamePad8EPadPort -/* 8000B9D8 38 01 00 10 */ addi r0, r1, 0x10 -/* 8000B9DC 90 1C 00 84 */ stw r0, 0x84(r28) -/* 8000B9E0 38 00 FF FF */ li r0, -1 -/* 8000B9E4 90 1C 00 88 */ stw r0, 0x88(r28) -/* 8000B9E8 7F 83 E3 78 */ mr r3, r28 -/* 8000B9EC 48 2D 75 2D */ bl isEnablePad__12JUTExceptionCFv -/* 8000B9F0 54 60 06 3E */ clrlwi r0, r3, 0x18 -/* 8000B9F4 7C 00 00 34 */ cntlzw r0, r0 -/* 8000B9F8 54 00 DE 3F */ rlwinm. r0, r0, 0x1b, 0x18, 0x1f -/* 8000B9FC 40 82 02 30 */ bne lbl_8000BC2C -/* 8000BA00 7F E3 FB 78 */ mr r3, r31 -/* 8000BA04 3C 80 80 37 */ lis r4, m_Do_m_Do_machine__stringBase0@ha /* 0x80373DE8@ha */ -/* 8000BA08 38 84 3D E8 */ addi r4, r4, m_Do_m_Do_machine__stringBase0@l /* 0x80373DE8@l */ -/* 8000BA0C 38 84 01 BF */ addi r4, r4, 0x1bf -/* 8000BA10 48 2D C2 29 */ bl print__10JUTConsoleFPCc -/* 8000BA14 7F E3 FB 78 */ mr r3, r31 -/* 8000BA18 3C 80 80 37 */ lis r4, m_Do_m_Do_machine__stringBase0@ha /* 0x80373DE8@ha */ -/* 8000BA1C 38 84 3D E8 */ addi r4, r4, m_Do_m_Do_machine__stringBase0@l /* 0x80373DE8@l */ -/* 8000BA20 38 84 01 EB */ addi r4, r4, 0x1eb -/* 8000BA24 48 2D C2 15 */ bl print__10JUTConsoleFPCc -/* 8000BA28 80 6D 8F F0 */ lwz r3, sManager__17JUTConsoleManager(r13) -/* 8000BA2C 38 80 00 01 */ li r4, 1 -/* 8000BA30 48 2D CA 21 */ bl drawDirect__17JUTConsoleManagerCFb -/* 8000BA34 48 33 1C D5 */ bl OSEnableInterrupts -/* 8000BA38 3B E0 00 00 */ li r31, 0 -/* 8000BA3C 3B A0 00 00 */ li r29, 0 -lbl_8000BA40: -/* 8000BA40 38 61 00 08 */ addi r3, r1, 8 -/* 8000BA44 38 81 00 0C */ addi r4, r1, 0xc -/* 8000BA48 4B FF FD 21 */ bl exceptionReadPad__FPUlPUl -/* 8000BA4C 88 0D 8F 81 */ lbz r0, sResetSwitchPushing__Q210JUTGamePad13C3ButtonReset+0x1(r13) -/* 8000BA50 28 00 00 00 */ cmplwi r0, 0 -/* 8000BA54 41 82 00 14 */ beq lbl_8000BA68 -/* 8000BA58 38 60 00 01 */ li r3, 1 -/* 8000BA5C 38 80 00 00 */ li r4, 0 -/* 8000BA60 38 A0 00 00 */ li r5, 0 -/* 8000BA64 48 33 3E 49 */ bl OSResetSystem -lbl_8000BA68: -/* 8000BA68 38 60 00 00 */ li r3, 0 -/* 8000BA6C 80 01 00 08 */ lwz r0, 8(r1) -/* 8000BA70 28 00 10 00 */ cmplwi r0, 0x1000 -/* 8000BA74 40 82 00 10 */ bne lbl_8000BA84 -/* 8000BA78 7F C3 F3 78 */ mr r3, r30 -/* 8000BA7C 48 00 C6 D1 */ bl exception_addition__FP10JUTConsole -/* 8000BA80 38 60 00 01 */ li r3, 1 -lbl_8000BA84: -/* 8000BA84 80 01 00 08 */ lwz r0, 8(r1) -/* 8000BA88 28 00 00 10 */ cmplwi r0, 0x10 -/* 8000BA8C 40 82 00 80 */ bne lbl_8000BB0C -/* 8000BA90 80 8D 8C 38 */ lwz r4, systemConsole__9JFWSystem(r13) -/* 8000BA94 80 6D 8F F0 */ lwz r3, sManager__17JUTConsoleManager(r13) -/* 8000BA98 80 03 00 10 */ lwz r0, 0x10(r3) -/* 8000BA9C 7C 00 20 40 */ cmplw r0, r4 -/* 8000BAA0 41 82 00 58 */ beq lbl_8000BAF8 -/* 8000BAA4 7C 9E 23 78 */ mr r30, r4 -/* 8000BAA8 C0 02 81 00 */ lfs f0, lit_3940(r2) -/* 8000BAAC D0 04 00 50 */ stfs f0, 0x50(r4) -/* 8000BAB0 C0 02 81 04 */ lfs f0, lit_3941(r2) -/* 8000BAB4 D0 04 00 54 */ stfs f0, 0x54(r4) -/* 8000BAB8 38 00 00 08 */ li r0, 8 -/* 8000BABC 90 04 00 40 */ stw r0, 0x40(r4) -/* 8000BAC0 38 00 00 20 */ li r0, 0x20 -/* 8000BAC4 90 04 00 44 */ stw r0, 0x44(r4) -/* 8000BAC8 38 00 00 17 */ li r0, 0x17 -/* 8000BACC 90 04 00 48 */ stw r0, 0x48(r4) -/* 8000BAD0 80 04 00 48 */ lwz r0, 0x48(r4) -/* 8000BAD4 80 64 00 24 */ lwz r3, 0x24(r4) -/* 8000BAD8 7C 00 18 40 */ cmplw r0, r3 -/* 8000BADC 40 81 00 08 */ ble lbl_8000BAE4 -/* 8000BAE0 90 64 00 48 */ stw r3, 0x48(r4) -lbl_8000BAE4: -/* 8000BAE4 38 00 00 01 */ li r0, 1 -/* 8000BAE8 98 04 00 68 */ stb r0, 0x68(r4) -/* 8000BAEC 38 00 00 03 */ li r0, 3 -/* 8000BAF0 90 04 00 58 */ stw r0, 0x58(r4) -/* 8000BAF4 48 00 00 08 */ b lbl_8000BAFC -lbl_8000BAF8: -/* 8000BAF8 83 CD 8F 9C */ lwz r30, sConsole__12JUTException(r13) -lbl_8000BAFC: -/* 8000BAFC 80 6D 8F F0 */ lwz r3, sManager__17JUTConsoleManager(r13) -/* 8000BB00 7F C4 F3 78 */ mr r4, r30 -/* 8000BB04 48 2D C9 C1 */ bl setDirectConsole__17JUTConsoleManagerFP10JUTConsole -/* 8000BB08 38 60 00 01 */ li r3, 1 -lbl_8000BB0C: -/* 8000BB0C 80 01 00 08 */ lwz r0, 8(r1) -/* 8000BB10 28 00 01 00 */ cmplwi r0, 0x100 -/* 8000BB14 40 82 00 14 */ bne lbl_8000BB28 -/* 8000BB18 7F C3 F3 78 */ mr r3, r30 -/* 8000BB1C 80 9E 00 24 */ lwz r4, 0x24(r30) -/* 8000BB20 48 2D C5 89 */ bl scroll__10JUTConsoleFi -/* 8000BB24 38 60 00 01 */ li r3, 1 -lbl_8000BB28: -/* 8000BB28 80 01 00 08 */ lwz r0, 8(r1) -/* 8000BB2C 28 00 02 00 */ cmplwi r0, 0x200 -/* 8000BB30 40 82 00 18 */ bne lbl_8000BB48 -/* 8000BB34 7F C3 F3 78 */ mr r3, r30 -/* 8000BB38 80 1E 00 24 */ lwz r0, 0x24(r30) -/* 8000BB3C 7C 80 00 D0 */ neg r4, r0 -/* 8000BB40 48 2D C5 69 */ bl scroll__10JUTConsoleFi -/* 8000BB44 38 60 00 01 */ li r3, 1 -lbl_8000BB48: -/* 8000BB48 80 01 00 0C */ lwz r0, 0xc(r1) -/* 8000BB4C 28 00 00 08 */ cmplwi r0, 8 -/* 8000BB50 40 82 00 4C */ bne lbl_8000BB9C -/* 8000BB54 7F C3 F3 78 */ mr r3, r30 -/* 8000BB58 2C 1F 00 03 */ cmpwi r31, 3 -/* 8000BB5C 40 80 00 0C */ bge lbl_8000BB68 -/* 8000BB60 38 80 FF FF */ li r4, -1 -/* 8000BB64 48 00 00 24 */ b lbl_8000BB88 -lbl_8000BB68: -/* 8000BB68 2C 1F 00 05 */ cmpwi r31, 5 -/* 8000BB6C 40 80 00 0C */ bge lbl_8000BB78 -/* 8000BB70 38 80 FF FE */ li r4, -2 -/* 8000BB74 48 00 00 14 */ b lbl_8000BB88 -lbl_8000BB78: -/* 8000BB78 2C 1F 00 07 */ cmpwi r31, 7 -/* 8000BB7C 38 80 FF F8 */ li r4, -8 -/* 8000BB80 40 80 00 08 */ bge lbl_8000BB88 -/* 8000BB84 38 80 FF FC */ li r4, -4 -lbl_8000BB88: -/* 8000BB88 48 2D C5 21 */ bl scroll__10JUTConsoleFi -/* 8000BB8C 38 60 00 01 */ li r3, 1 -/* 8000BB90 3B A0 00 00 */ li r29, 0 -/* 8000BB94 3B FF 00 01 */ addi r31, r31, 1 -/* 8000BB98 48 00 00 5C */ b lbl_8000BBF4 -lbl_8000BB9C: -/* 8000BB9C 28 00 00 04 */ cmplwi r0, 4 -/* 8000BBA0 40 82 00 4C */ bne lbl_8000BBEC -/* 8000BBA4 7F C3 F3 78 */ mr r3, r30 -/* 8000BBA8 2C 1D 00 03 */ cmpwi r29, 3 -/* 8000BBAC 40 80 00 0C */ bge lbl_8000BBB8 -/* 8000BBB0 38 80 00 01 */ li r4, 1 -/* 8000BBB4 48 00 00 24 */ b lbl_8000BBD8 -lbl_8000BBB8: -/* 8000BBB8 2C 1D 00 05 */ cmpwi r29, 5 -/* 8000BBBC 40 80 00 0C */ bge lbl_8000BBC8 -/* 8000BBC0 38 80 00 02 */ li r4, 2 -/* 8000BBC4 48 00 00 14 */ b lbl_8000BBD8 -lbl_8000BBC8: -/* 8000BBC8 2C 1D 00 07 */ cmpwi r29, 7 -/* 8000BBCC 38 80 00 08 */ li r4, 8 -/* 8000BBD0 40 80 00 08 */ bge lbl_8000BBD8 -/* 8000BBD4 38 80 00 04 */ li r4, 4 -lbl_8000BBD8: -/* 8000BBD8 48 2D C4 D1 */ bl scroll__10JUTConsoleFi -/* 8000BBDC 38 60 00 01 */ li r3, 1 -/* 8000BBE0 3B E0 00 00 */ li r31, 0 -/* 8000BBE4 3B BD 00 01 */ addi r29, r29, 1 -/* 8000BBE8 48 00 00 0C */ b lbl_8000BBF4 -lbl_8000BBEC: -/* 8000BBEC 3B E0 00 00 */ li r31, 0 -/* 8000BBF0 3B A0 00 00 */ li r29, 0 -lbl_8000BBF4: -/* 8000BBF4 54 60 06 3E */ clrlwi r0, r3, 0x18 -/* 8000BBF8 28 00 00 01 */ cmplwi r0, 1 -/* 8000BBFC 40 82 00 24 */ bne lbl_8000BC20 -/* 8000BC00 48 34 1C BD */ bl VIGetRetraceCount -/* 8000BC04 7C 7C 1B 78 */ mr r28, r3 -lbl_8000BC08: -/* 8000BC08 48 34 1C B5 */ bl VIGetRetraceCount -/* 8000BC0C 7C 1C 18 40 */ cmplw r28, r3 -/* 8000BC10 41 82 FF F8 */ beq lbl_8000BC08 -/* 8000BC14 80 6D 8F F0 */ lwz r3, sManager__17JUTConsoleManager(r13) -/* 8000BC18 38 80 00 01 */ li r4, 1 -/* 8000BC1C 48 2D C8 35 */ bl drawDirect__17JUTConsoleManagerCFb -lbl_8000BC20: -/* 8000BC20 38 60 00 1E */ li r3, 0x1e -/* 8000BC24 48 2D 7D 5D */ bl waitTime__12JUTExceptionFl -/* 8000BC28 4B FF FE 18 */ b lbl_8000BA40 -lbl_8000BC2C: -/* 8000BC2C 7F E3 FB 78 */ mr r3, r31 -/* 8000BC30 48 00 C5 1D */ bl exception_addition__FP10JUTConsole -/* 8000BC34 80 6D 8F F0 */ lwz r3, sManager__17JUTConsoleManager(r13) -/* 8000BC38 38 80 00 01 */ li r4, 1 -/* 8000BC3C 48 2D C8 15 */ bl drawDirect__17JUTConsoleManagerCFb -lbl_8000BC40: -/* 8000BC40 7F E3 FB 78 */ mr r3, r31 -/* 8000BC44 80 1F 00 24 */ lwz r0, 0x24(r31) -/* 8000BC48 7C 80 00 D0 */ neg r4, r0 -/* 8000BC4C 48 2D C4 5D */ bl scroll__10JUTConsoleFi -/* 8000BC50 80 6D 8F F0 */ lwz r3, sManager__17JUTConsoleManager(r13) -/* 8000BC54 38 80 00 01 */ li r4, 1 -/* 8000BC58 48 2D C7 F9 */ bl drawDirect__17JUTConsoleManagerCFb -/* 8000BC5C 38 60 07 D0 */ li r3, 0x7d0 -/* 8000BC60 48 2D 7D 21 */ bl waitTime__12JUTExceptionFl -lbl_8000BC64: -/* 8000BC64 83 DF 00 48 */ lwz r30, 0x48(r31) -/* 8000BC68 48 00 00 50 */ b lbl_8000BCB8 -lbl_8000BC6C: -/* 8000BC6C 7F E3 FB 78 */ mr r3, r31 -/* 8000BC70 38 80 00 01 */ li r4, 1 -/* 8000BC74 48 2D C4 35 */ bl scroll__10JUTConsoleFi -/* 8000BC78 80 6D 8F F0 */ lwz r3, sManager__17JUTConsoleManager(r13) -/* 8000BC7C 38 80 00 01 */ li r4, 1 -/* 8000BC80 48 2D C7 D1 */ bl drawDirect__17JUTConsoleManagerCFb -/* 8000BC84 83 9F 00 48 */ lwz r28, 0x48(r31) -/* 8000BC88 7F E3 FB 78 */ mr r3, r31 -/* 8000BC8C 48 2D C5 1D */ bl getLineOffset__10JUTConsoleCFv -/* 8000BC90 7C 7D 1B 78 */ mr r29, r3 -/* 8000BC94 7F E3 FB 78 */ mr r3, r31 -/* 8000BC98 48 2D C4 ED */ bl getUsedLine__10JUTConsoleCFv -/* 8000BC9C 7C 7C 18 50 */ subf r3, r28, r3 -/* 8000BCA0 38 03 00 01 */ addi r0, r3, 1 -/* 8000BCA4 7C 00 E8 40 */ cmplw r0, r29 -/* 8000BCA8 40 81 00 18 */ ble lbl_8000BCC0 -/* 8000BCAC 38 60 00 14 */ li r3, 0x14 -/* 8000BCB0 48 2D 7C D1 */ bl waitTime__12JUTExceptionFl -/* 8000BCB4 3B DE FF FF */ addi r30, r30, -1 -lbl_8000BCB8: -/* 8000BCB8 28 1E 00 00 */ cmplwi r30, 0 -/* 8000BCBC 40 82 FF B0 */ bne lbl_8000BC6C -lbl_8000BCC0: -/* 8000BCC0 38 60 0B B8 */ li r3, 0xbb8 -/* 8000BCC4 48 2D 7C BD */ bl waitTime__12JUTExceptionFl -/* 8000BCC8 83 9F 00 48 */ lwz r28, 0x48(r31) -/* 8000BCCC 7F E3 FB 78 */ mr r3, r31 -/* 8000BCD0 48 2D C4 D9 */ bl getLineOffset__10JUTConsoleCFv -/* 8000BCD4 7C 7D 1B 78 */ mr r29, r3 -/* 8000BCD8 7F E3 FB 78 */ mr r3, r31 -/* 8000BCDC 48 2D C4 A9 */ bl getUsedLine__10JUTConsoleCFv -/* 8000BCE0 7C 7C 18 50 */ subf r3, r28, r3 -/* 8000BCE4 38 03 00 01 */ addi r0, r3, 1 -/* 8000BCE8 7C 00 E8 40 */ cmplw r0, r29 -/* 8000BCEC 40 81 FF 54 */ ble lbl_8000BC40 -/* 8000BCF0 4B FF FF 74 */ b lbl_8000BC64 diff --git a/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/CheckCreateHeap__FP10fopAc_ac_c.s b/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/CheckCreateHeap__FP10fopAc_ac_c.s deleted file mode 100644 index a0d2064c4c..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/CheckCreateHeap__FP10fopAc_ac_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80CE93A4: -/* 80CE93A4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80CE93A8 7C 08 02 A6 */ mflr r0 -/* 80CE93AC 90 01 00 14 */ stw r0, 0x14(r1) -/* 80CE93B0 48 00 04 11 */ bl CreateHeap__12daObjStone_cFv -/* 80CE93B4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80CE93B8 7C 08 03 A6 */ mtlr r0 -/* 80CE93BC 38 21 00 10 */ addi r1, r1, 0x10 -/* 80CE93C0 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/CreateHeap__12daObjStone_cFv.s b/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/CreateHeap__12daObjStone_cFv.s deleted file mode 100644 index f5109165df..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/CreateHeap__12daObjStone_cFv.s +++ /dev/null @@ -1,33 +0,0 @@ -lbl_80CE97C0: -/* 80CE97C0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80CE97C4 7C 08 02 A6 */ mflr r0 -/* 80CE97C8 90 01 00 14 */ stw r0, 0x14(r1) -/* 80CE97CC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80CE97D0 7C 7F 1B 78 */ mr r31, r3 -/* 80CE97D4 88 03 09 06 */ lbz r0, 0x906(r3) -/* 80CE97D8 54 00 10 3A */ slwi r0, r0, 2 -/* 80CE97DC 3C 60 80 CF */ lis r3, l_arcName@ha /* 0x80CECC74@ha */ -/* 80CE97E0 38 63 CC 74 */ addi r3, r3, l_arcName@l /* 0x80CECC74@l */ -/* 80CE97E4 7C 63 00 2E */ lwzx r3, r3, r0 -/* 80CE97E8 3C 80 80 CF */ lis r4, l_bmdIdx@ha /* 0x80CECAB4@ha */ -/* 80CE97EC 38 84 CA B4 */ addi r4, r4, l_bmdIdx@l /* 0x80CECAB4@l */ -/* 80CE97F0 7C 84 00 2E */ lwzx r4, r4, r0 -/* 80CE97F4 3C A0 80 40 */ lis r5, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80CE97F8 38 A5 61 C0 */ addi r5, r5, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80CE97FC 3C A5 00 02 */ addis r5, r5, 2 -/* 80CE9800 38 C0 00 80 */ li r6, 0x80 -/* 80CE9804 38 A5 C2 F8 */ addi r5, r5, -15624 -/* 80CE9808 4B 35 2A E5 */ bl getRes__14dRes_control_cFPCclP11dRes_info_ci -/* 80CE980C 3C 80 00 08 */ lis r4, 8 -/* 80CE9810 3C A0 11 00 */ lis r5, 0x1100 /* 0x11000084@ha */ -/* 80CE9814 38 A5 00 84 */ addi r5, r5, 0x0084 /* 0x11000084@l */ -/* 80CE9818 4B 32 B4 3D */ bl mDoExt_J3DModel__create__FP12J3DModelDataUlUl -/* 80CE981C 90 7F 05 70 */ stw r3, 0x570(r31) -/* 80CE9820 80 7F 05 70 */ lwz r3, 0x570(r31) -/* 80CE9824 30 03 FF FF */ addic r0, r3, -1 -/* 80CE9828 7C 60 19 10 */ subfe r3, r0, r3 -/* 80CE982C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80CE9830 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80CE9834 7C 08 03 A6 */ mtlr r0 -/* 80CE9838 38 21 00 10 */ addi r1, r1, 0x10 -/* 80CE983C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/CrrPos__12daObjStone_cFv.s b/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/CrrPos__12daObjStone_cFv.s deleted file mode 100644 index 7d8bf836b2..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/CrrPos__12daObjStone_cFv.s +++ /dev/null @@ -1,51 +0,0 @@ -lbl_80CEC1AC: -/* 80CEC1AC 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80CEC1B0 7C 08 02 A6 */ mflr r0 -/* 80CEC1B4 90 01 00 24 */ stw r0, 0x24(r1) -/* 80CEC1B8 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 80CEC1BC 93 C1 00 18 */ stw r30, 0x18(r1) -/* 80CEC1C0 7C 7E 1B 78 */ mr r30, r3 -/* 80CEC1C4 3B E0 00 00 */ li r31, 0 -/* 80CEC1C8 38 60 00 00 */ li r3, 0 -/* 80CEC1CC C0 5E 04 D0 */ lfs f2, 0x4d0(r30) -/* 80CEC1D0 D0 41 00 08 */ stfs f2, 8(r1) -/* 80CEC1D4 C0 3E 04 D4 */ lfs f1, 0x4d4(r30) -/* 80CEC1D8 D0 21 00 0C */ stfs f1, 0xc(r1) -/* 80CEC1DC C0 1E 04 D8 */ lfs f0, 0x4d8(r30) -/* 80CEC1E0 D0 01 00 10 */ stfs f0, 0x10(r1) -/* 80CEC1E4 88 1E 09 07 */ lbz r0, 0x907(r30) -/* 80CEC1E8 28 00 00 02 */ cmplwi r0, 2 -/* 80CEC1EC 40 82 00 14 */ bne lbl_80CEC200 -/* 80CEC1F0 3B E0 00 01 */ li r31, 1 -/* 80CEC1F4 D0 41 00 08 */ stfs f2, 8(r1) -/* 80CEC1F8 D0 21 00 0C */ stfs f1, 0xc(r1) -/* 80CEC1FC D0 01 00 10 */ stfs f0, 0x10(r1) -lbl_80CEC200: -/* 80CEC200 88 1E 09 07 */ lbz r0, 0x907(r30) -/* 80CEC204 28 00 00 03 */ cmplwi r0, 3 -/* 80CEC208 40 82 00 08 */ bne lbl_80CEC210 -/* 80CEC20C 38 60 00 01 */ li r3, 1 -lbl_80CEC210: -/* 80CEC210 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 80CEC214 40 82 00 18 */ bne lbl_80CEC22C -/* 80CEC218 38 7E 05 74 */ addi r3, r30, 0x574 -/* 80CEC21C 3C 80 80 40 */ lis r4, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80CEC220 38 84 61 C0 */ addi r4, r4, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80CEC224 38 84 0F 38 */ addi r4, r4, 0xf38 -/* 80CEC228 4B 38 A8 85 */ bl CrrPos__9dBgS_AcchFR4dBgS -lbl_80CEC22C: -/* 80CEC22C 57 E0 06 3F */ clrlwi. r0, r31, 0x18 -/* 80CEC230 41 82 00 1C */ beq lbl_80CEC24C -/* 80CEC234 C0 01 00 08 */ lfs f0, 8(r1) -/* 80CEC238 D0 1E 04 D0 */ stfs f0, 0x4d0(r30) -/* 80CEC23C C0 01 00 0C */ lfs f0, 0xc(r1) -/* 80CEC240 D0 1E 04 D4 */ stfs f0, 0x4d4(r30) -/* 80CEC244 C0 01 00 10 */ lfs f0, 0x10(r1) -/* 80CEC248 D0 1E 04 D8 */ stfs f0, 0x4d8(r30) -lbl_80CEC24C: -/* 80CEC24C 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 80CEC250 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 80CEC254 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80CEC258 7C 08 03 A6 */ mtlr r0 -/* 80CEC25C 38 21 00 20 */ addi r1, r1, 0x20 -/* 80CEC260 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/_delete__12daObjStone_cFv.s b/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/_delete__12daObjStone_cFv.s deleted file mode 100644 index 6f1a27b832..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/_delete__12daObjStone_cFv.s +++ /dev/null @@ -1,30 +0,0 @@ -lbl_80CEC948: -/* 80CEC948 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80CEC94C 7C 08 02 A6 */ mflr r0 -/* 80CEC950 90 01 00 14 */ stw r0, 0x14(r1) -/* 80CEC954 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80CEC958 7C 7F 1B 78 */ mr r31, r3 -/* 80CEC95C 38 7F 09 70 */ addi r3, r31, 0x970 -/* 80CEC960 4B 5D 16 99 */ bl deleteObject__14Z2SoundObjBaseFv -/* 80CEC964 A0 9F 04 94 */ lhz r4, 0x494(r31) -/* 80CEC968 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80CEC96C 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80CEC970 88 1F 04 BA */ lbz r0, 0x4ba(r31) -/* 80CEC974 7C 05 07 74 */ extsb r5, r0 -/* 80CEC978 4B 34 8D 3D */ bl offActor__10dSv_info_cFii -/* 80CEC97C 7F E3 FB 78 */ mr r3, r31 -/* 80CEC980 38 80 00 01 */ li r4, 1 -/* 80CEC984 4B FF FE 59 */ bl effect_delete__12daObjStone_cFb -/* 80CEC988 38 7F 05 68 */ addi r3, r31, 0x568 -/* 80CEC98C 88 1F 09 06 */ lbz r0, 0x906(r31) -/* 80CEC990 54 00 10 3A */ slwi r0, r0, 2 -/* 80CEC994 3C 80 80 CF */ lis r4, l_arcName@ha /* 0x80CECC74@ha */ -/* 80CEC998 38 84 CC 74 */ addi r4, r4, l_arcName@l /* 0x80CECC74@l */ -/* 80CEC99C 7C 84 00 2E */ lwzx r4, r4, r0 -/* 80CEC9A0 4B 34 06 69 */ bl dComIfG_resDelete__FP30request_of_phase_process_classPCc -/* 80CEC9A4 38 60 00 01 */ li r3, 1 -/* 80CEC9A8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80CEC9AC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80CEC9B0 7C 08 03 A6 */ mtlr r0 -/* 80CEC9B4 38 21 00 10 */ addi r1, r1, 0x10 -/* 80CEC9B8 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/daObjStone_Create__FP10fopAc_ac_c.s b/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/daObjStone_Create__FP10fopAc_ac_c.s deleted file mode 100644 index ef1e82bd8c..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/daObjStone_Create__FP10fopAc_ac_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80CECA1C: -/* 80CECA1C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80CECA20 7C 08 02 A6 */ mflr r0 -/* 80CECA24 90 01 00 14 */ stw r0, 0x14(r1) -/* 80CECA28 4B FF CE 19 */ bl create__12daObjStone_cFv -/* 80CECA2C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80CECA30 7C 08 03 A6 */ mtlr r0 -/* 80CECA34 38 21 00 10 */ addi r1, r1, 0x10 -/* 80CECA38 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/daObjStone_Delete__FP12daObjStone_c.s b/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/daObjStone_Delete__FP12daObjStone_c.s deleted file mode 100644 index 67431e6d80..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/daObjStone_Delete__FP12daObjStone_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80CEC9FC: -/* 80CEC9FC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80CECA00 7C 08 02 A6 */ mflr r0 -/* 80CECA04 90 01 00 14 */ stw r0, 0x14(r1) -/* 80CECA08 4B FF FF 41 */ bl _delete__12daObjStone_cFv -/* 80CECA0C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80CECA10 7C 08 03 A6 */ mtlr r0 -/* 80CECA14 38 21 00 10 */ addi r1, r1, 0x10 -/* 80CECA18 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/daObjStone_Draw__FP12daObjStone_c.s b/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/daObjStone_Draw__FP12daObjStone_c.s deleted file mode 100644 index ad206ba92f..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/daObjStone_Draw__FP12daObjStone_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80CEC9BC: -/* 80CEC9BC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80CEC9C0 7C 08 02 A6 */ mflr r0 -/* 80CEC9C4 90 01 00 14 */ stw r0, 0x14(r1) -/* 80CEC9C8 4B FF FE C1 */ bl draw__12daObjStone_cFv -/* 80CEC9CC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80CEC9D0 7C 08 03 A6 */ mtlr r0 -/* 80CEC9D4 38 21 00 10 */ addi r1, r1, 0x10 -/* 80CEC9D8 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/daObjStone_Execute__FP12daObjStone_c.s b/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/daObjStone_Execute__FP12daObjStone_c.s deleted file mode 100644 index df572d68cb..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/daObjStone_Execute__FP12daObjStone_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80CEC9DC: -/* 80CEC9DC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80CEC9E0 7C 08 02 A6 */ mflr r0 -/* 80CEC9E4 90 01 00 14 */ stw r0, 0x14(r1) -/* 80CEC9E8 4B FF D1 B9 */ bl execute__12daObjStone_cFv -/* 80CEC9EC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80CEC9F0 7C 08 03 A6 */ mtlr r0 -/* 80CEC9F4 38 21 00 10 */ addi r1, r1, 0x10 -/* 80CEC9F8 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/draw__12daObjStone_cFv.s b/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/draw__12daObjStone_cFv.s deleted file mode 100644 index 618d4d8dab..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/draw__12daObjStone_cFv.s +++ /dev/null @@ -1,50 +0,0 @@ -lbl_80CEC888: -/* 80CEC888 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80CEC88C 7C 08 02 A6 */ mflr r0 -/* 80CEC890 90 01 00 24 */ stw r0, 0x24(r1) -/* 80CEC894 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 80CEC898 7C 7F 1B 78 */ mr r31, r3 -/* 80CEC89C 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */ -/* 80CEC8A0 38 63 CA 54 */ addi r3, r3, g_env_light@l /* 0x8042CA54@l */ -/* 80CEC8A4 38 80 00 08 */ li r4, 8 -/* 80CEC8A8 38 BF 04 D0 */ addi r5, r31, 0x4d0 -/* 80CEC8AC 38 DF 01 0C */ addi r6, r31, 0x10c -/* 80CEC8B0 4B 4B 6F 15 */ bl settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c -/* 80CEC8B4 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */ -/* 80CEC8B8 38 63 CA 54 */ addi r3, r3, g_env_light@l /* 0x8042CA54@l */ -/* 80CEC8BC 80 9F 05 70 */ lwz r4, 0x570(r31) -/* 80CEC8C0 80 84 00 04 */ lwz r4, 4(r4) -/* 80CEC8C4 38 BF 01 0C */ addi r5, r31, 0x10c -/* 80CEC8C8 4B 4B 84 D9 */ bl setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c -/* 80CEC8CC 80 7F 05 70 */ lwz r3, 0x570(r31) -/* 80CEC8D0 4B 32 13 F5 */ bl mDoExt_modelUpdateDL__FP8J3DModel -/* 80CEC8D4 80 1F 05 24 */ lwz r0, 0x524(r31) -/* 80CEC8D8 28 00 00 00 */ cmplwi r0, 0 -/* 80CEC8DC 40 82 00 54 */ bne lbl_80CEC930 -/* 80CEC8E0 88 1F 09 06 */ lbz r0, 0x906(r31) -/* 80CEC8E4 54 00 10 3A */ slwi r0, r0, 2 -/* 80CEC8E8 3C 60 80 CF */ lis r3, l_shadow_size@ha /* 0x80CECB60@ha */ -/* 80CEC8EC 38 63 CB 60 */ addi r3, r3, l_shadow_size@l /* 0x80CECB60@l */ -/* 80CEC8F0 7C 43 04 2E */ lfsx f2, r3, r0 -/* 80CEC8F4 C0 1F 04 D0 */ lfs f0, 0x4d0(r31) -/* 80CEC8F8 D0 01 00 08 */ stfs f0, 8(r1) -/* 80CEC8FC C0 1F 04 D4 */ lfs f0, 0x4d4(r31) -/* 80CEC900 D0 01 00 0C */ stfs f0, 0xc(r1) -/* 80CEC904 C0 1F 04 D8 */ lfs f0, 0x4d8(r31) -/* 80CEC908 D0 01 00 10 */ stfs f0, 0x10(r1) -/* 80CEC90C 38 61 00 08 */ addi r3, r1, 8 -/* 80CEC910 C0 3F 06 0C */ lfs f1, 0x60c(r31) -/* 80CEC914 38 9F 06 64 */ addi r4, r31, 0x664 -/* 80CEC918 38 A0 00 00 */ li r5, 0 -/* 80CEC91C 3C C0 80 CF */ lis r6, lit_3845@ha /* 0x80CECBB8@ha */ -/* 80CEC920 C0 66 CB B8 */ lfs f3, lit_3845@l(r6) /* 0x80CECBB8@l */ -/* 80CEC924 3C C0 80 42 */ lis r6, mSimpleTexObj__21dDlst_shadowControl_c@ha /* 0x804248D0@ha */ -/* 80CEC928 38 C6 48 D0 */ addi r6, r6, mSimpleTexObj__21dDlst_shadowControl_c@l /* 0x804248D0@l */ -/* 80CEC92C 4B 34 07 89 */ bl dComIfGd_setSimpleShadow__FP4cXyzffR13cBgS_PolyInfosfP9_GXTexObj -lbl_80CEC930: -/* 80CEC930 38 60 00 01 */ li r3, 1 -/* 80CEC934 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 80CEC938 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80CEC93C 7C 08 03 A6 */ mtlr r0 -/* 80CEC940 38 21 00 20 */ addi r1, r1, 0x20 -/* 80CEC944 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/initBaseMtx__12daObjStone_cFv.s b/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/initBaseMtx__12daObjStone_cFv.s deleted file mode 100644 index 46046a7734..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/initBaseMtx__12daObjStone_cFv.s +++ /dev/null @@ -1,42 +0,0 @@ -lbl_80CE93C4: -/* 80CE93C4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80CE93C8 7C 08 02 A6 */ mflr r0 -/* 80CE93CC 90 01 00 14 */ stw r0, 0x14(r1) -/* 80CE93D0 3C 80 80 43 */ lis r4, Zero__4cXyz@ha /* 0x80430CF4@ha */ -/* 80CE93D4 C4 04 0C F4 */ lfsu f0, Zero__4cXyz@l(r4) /* 0x80430CF4@l */ -/* 80CE93D8 D0 03 09 10 */ stfs f0, 0x910(r3) -/* 80CE93DC C0 04 00 04 */ lfs f0, 4(r4) -/* 80CE93E0 D0 03 09 14 */ stfs f0, 0x914(r3) -/* 80CE93E4 C0 04 00 08 */ lfs f0, 8(r4) -/* 80CE93E8 D0 03 09 18 */ stfs f0, 0x918(r3) -/* 80CE93EC 38 00 00 00 */ li r0, 0 -/* 80CE93F0 B0 03 09 1C */ sth r0, 0x91c(r3) -/* 80CE93F4 3C 80 80 3A */ lis r4, ZeroQuat@ha /* 0x803A7240@ha */ -/* 80CE93F8 C4 04 72 40 */ lfsu f0, ZeroQuat@l(r4) /* 0x803A7240@l */ -/* 80CE93FC D0 03 09 30 */ stfs f0, 0x930(r3) -/* 80CE9400 C0 04 00 04 */ lfs f0, 4(r4) -/* 80CE9404 D0 03 09 34 */ stfs f0, 0x934(r3) -/* 80CE9408 C0 04 00 08 */ lfs f0, 8(r4) -/* 80CE940C D0 03 09 38 */ stfs f0, 0x938(r3) -/* 80CE9410 C0 04 00 0C */ lfs f0, 0xc(r4) -/* 80CE9414 D0 03 09 3C */ stfs f0, 0x93c(r3) -/* 80CE9418 C0 03 09 30 */ lfs f0, 0x930(r3) -/* 80CE941C D0 03 09 20 */ stfs f0, 0x920(r3) -/* 80CE9420 C0 03 09 34 */ lfs f0, 0x934(r3) -/* 80CE9424 D0 03 09 24 */ stfs f0, 0x924(r3) -/* 80CE9428 C0 03 09 38 */ lfs f0, 0x938(r3) -/* 80CE942C D0 03 09 28 */ stfs f0, 0x928(r3) -/* 80CE9430 C0 03 09 3C */ lfs f0, 0x93c(r3) -/* 80CE9434 D0 03 09 2C */ stfs f0, 0x92c(r3) -/* 80CE9438 80 83 05 70 */ lwz r4, 0x570(r3) -/* 80CE943C C0 03 04 EC */ lfs f0, 0x4ec(r3) -/* 80CE9440 D0 04 00 18 */ stfs f0, 0x18(r4) -/* 80CE9444 C0 03 04 F0 */ lfs f0, 0x4f0(r3) -/* 80CE9448 D0 04 00 1C */ stfs f0, 0x1c(r4) -/* 80CE944C C0 03 04 F4 */ lfs f0, 0x4f4(r3) -/* 80CE9450 D0 04 00 20 */ stfs f0, 0x20(r4) -/* 80CE9454 48 00 00 15 */ bl setBaseMtx__12daObjStone_cFv -/* 80CE9458 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80CE945C 7C 08 03 A6 */ mtlr r0 -/* 80CE9460 38 21 00 10 */ addi r1, r1, 0x10 -/* 80CE9464 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/init_modeDrop__12daObjStone_cFv.s b/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/init_modeDrop__12daObjStone_cFv.s deleted file mode 100644 index 3895d19ecc..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/init_modeDrop__12daObjStone_cFv.s +++ /dev/null @@ -1,17 +0,0 @@ -lbl_80CEB0B8: -/* 80CEB0B8 80 03 07 C8 */ lwz r0, 0x7c8(r3) -/* 80CEB0BC 60 00 00 01 */ ori r0, r0, 1 -/* 80CEB0C0 90 03 07 C8 */ stw r0, 0x7c8(r3) -/* 80CEB0C4 80 03 07 F4 */ lwz r0, 0x7f4(r3) -/* 80CEB0C8 60 00 00 01 */ ori r0, r0, 1 -/* 80CEB0CC 90 03 07 F4 */ stw r0, 0x7f4(r3) -/* 80CEB0D0 80 03 05 5C */ lwz r0, 0x55c(r3) -/* 80CEB0D4 54 00 07 34 */ rlwinm r0, r0, 0, 0x1c, 0x1a -/* 80CEB0D8 90 03 05 5C */ stw r0, 0x55c(r3) -/* 80CEB0DC 38 00 00 00 */ li r0, 0 -/* 80CEB0E0 90 03 09 0C */ stw r0, 0x90c(r3) -/* 80CEB0E4 C0 03 04 D4 */ lfs f0, 0x4d4(r3) -/* 80CEB0E8 D0 03 09 44 */ stfs f0, 0x944(r3) -/* 80CEB0EC 38 00 00 01 */ li r0, 1 -/* 80CEB0F0 98 03 09 07 */ stb r0, 0x907(r3) -/* 80CEB0F4 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/init_modePutWait__12daObjStone_cFv.s b/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/init_modePutWait__12daObjStone_cFv.s deleted file mode 100644 index 40eddd1ab8..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/init_modePutWait__12daObjStone_cFv.s +++ /dev/null @@ -1,21 +0,0 @@ -lbl_80CEAF88: -/* 80CEAF88 80 03 07 C8 */ lwz r0, 0x7c8(r3) -/* 80CEAF8C 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e -/* 80CEAF90 90 03 07 C8 */ stw r0, 0x7c8(r3) -/* 80CEAF94 80 03 07 F4 */ lwz r0, 0x7f4(r3) -/* 80CEAF98 60 00 00 01 */ ori r0, r0, 1 -/* 80CEAF9C 90 03 07 F4 */ stw r0, 0x7f4(r3) -/* 80CEAFA0 80 03 05 5C */ lwz r0, 0x55c(r3) -/* 80CEAFA4 60 00 00 10 */ ori r0, r0, 0x10 -/* 80CEAFA8 90 03 05 5C */ stw r0, 0x55c(r3) -/* 80CEAFAC 88 03 09 06 */ lbz r0, 0x906(r3) -/* 80CEAFB0 54 00 10 3A */ slwi r0, r0, 2 -/* 80CEAFB4 3C 80 80 CF */ lis r4, l_initial_offsetY@ha /* 0x80CECB14@ha */ -/* 80CEAFB8 38 84 CB 14 */ addi r4, r4, l_initial_offsetY@l /* 0x80CECB14@l */ -/* 80CEAFBC 7C 04 04 2E */ lfsx f0, r4, r0 -/* 80CEAFC0 D0 03 09 40 */ stfs f0, 0x940(r3) -/* 80CEAFC4 38 00 00 00 */ li r0, 0 -/* 80CEAFC8 90 03 09 0C */ stw r0, 0x90c(r3) -/* 80CEAFCC 38 00 00 03 */ li r0, 3 -/* 80CEAFD0 98 03 09 07 */ stb r0, 0x907(r3) -/* 80CEAFD4 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/init_modeWait__12daObjStone_cFv.s b/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/init_modeWait__12daObjStone_cFv.s deleted file mode 100644 index 60ee53a128..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/init_modeWait__12daObjStone_cFv.s +++ /dev/null @@ -1,14 +0,0 @@ -lbl_80CEAFE8: -/* 80CEAFE8 80 03 07 C8 */ lwz r0, 0x7c8(r3) -/* 80CEAFEC 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e -/* 80CEAFF0 90 03 07 C8 */ stw r0, 0x7c8(r3) -/* 80CEAFF4 80 03 07 F4 */ lwz r0, 0x7f4(r3) -/* 80CEAFF8 60 00 00 01 */ ori r0, r0, 1 -/* 80CEAFFC 90 03 07 F4 */ stw r0, 0x7f4(r3) -/* 80CEB000 80 03 05 5C */ lwz r0, 0x55c(r3) -/* 80CEB004 60 00 00 10 */ ori r0, r0, 0x10 -/* 80CEB008 90 03 05 5C */ stw r0, 0x55c(r3) -/* 80CEB00C 38 00 00 00 */ li r0, 0 -/* 80CEB010 90 03 09 0C */ stw r0, 0x90c(r3) -/* 80CEB014 98 03 09 07 */ stb r0, 0x907(r3) -/* 80CEB018 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/init_modeWalk__12daObjStone_cFv.s b/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/init_modeWalk__12daObjStone_cFv.s deleted file mode 100644 index bf18037e10..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/init_modeWalk__12daObjStone_cFv.s +++ /dev/null @@ -1,15 +0,0 @@ -lbl_80CEB6E8: -/* 80CEB6E8 80 03 07 C8 */ lwz r0, 0x7c8(r3) -/* 80CEB6EC 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e -/* 80CEB6F0 90 03 07 C8 */ stw r0, 0x7c8(r3) -/* 80CEB6F4 80 03 07 F4 */ lwz r0, 0x7f4(r3) -/* 80CEB6F8 60 00 00 01 */ ori r0, r0, 1 -/* 80CEB6FC 90 03 07 F4 */ stw r0, 0x7f4(r3) -/* 80CEB700 80 03 05 5C */ lwz r0, 0x55c(r3) -/* 80CEB704 60 00 00 10 */ ori r0, r0, 0x10 -/* 80CEB708 90 03 05 5C */ stw r0, 0x55c(r3) -/* 80CEB70C 38 00 00 00 */ li r0, 0 -/* 80CEB710 90 03 09 0C */ stw r0, 0x90c(r3) -/* 80CEB714 38 00 00 04 */ li r0, 4 -/* 80CEB718 98 03 09 07 */ stb r0, 0x907(r3) -/* 80CEB71C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/init_modeYogan__12daObjStone_cFv.s b/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/init_modeYogan__12daObjStone_cFv.s deleted file mode 100644 index 969ecad0ea..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/init_modeYogan__12daObjStone_cFv.s +++ /dev/null @@ -1,25 +0,0 @@ -lbl_80CEBE24: -/* 80CEBE24 3C 80 80 CF */ lis r4, l_bmdIdx@ha /* 0x80CECAB4@ha */ -/* 80CEBE28 38 A4 CA B4 */ addi r5, r4, l_bmdIdx@l /* 0x80CECAB4@l */ -/* 80CEBE2C 80 03 07 C8 */ lwz r0, 0x7c8(r3) -/* 80CEBE30 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e -/* 80CEBE34 90 03 07 C8 */ stw r0, 0x7c8(r3) -/* 80CEBE38 80 03 07 F4 */ lwz r0, 0x7f4(r3) -/* 80CEBE3C 60 00 00 01 */ ori r0, r0, 1 -/* 80CEBE40 90 03 07 F4 */ stw r0, 0x7f4(r3) -/* 80CEBE44 88 03 09 06 */ lbz r0, 0x906(r3) -/* 80CEBE48 54 00 10 3A */ slwi r0, r0, 2 -/* 80CEBE4C 38 85 00 60 */ addi r4, r5, 0x60 -/* 80CEBE50 7C 04 04 2E */ lfsx f0, r4, r0 -/* 80CEBE54 D0 03 09 40 */ stfs f0, 0x940(r3) -/* 80CEBE58 38 00 00 00 */ li r0, 0 -/* 80CEBE5C 90 03 09 0C */ stw r0, 0x90c(r3) -/* 80CEBE60 C0 05 01 5C */ lfs f0, 0x15c(r5) -/* 80CEBE64 D0 03 05 30 */ stfs f0, 0x530(r3) -/* 80CEBE68 C0 05 01 60 */ lfs f0, 0x160(r5) -/* 80CEBE6C D0 03 05 34 */ stfs f0, 0x534(r3) -/* 80CEBE70 C0 03 07 40 */ lfs f0, 0x740(r3) -/* 80CEBE74 D0 03 04 D4 */ stfs f0, 0x4d4(r3) -/* 80CEBE78 38 00 00 06 */ li r0, 6 -/* 80CEBE7C 98 03 09 07 */ stb r0, 0x907(r3) -/* 80CEBE80 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/modeBreak__12daObjStone_cFv.s b/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/modeBreak__12daObjStone_cFv.s deleted file mode 100644 index 60a7fe345e..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/modeBreak__12daObjStone_cFv.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_80CEC180: -/* 80CEC180 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80CEC184 7C 08 02 A6 */ mflr r0 -/* 80CEC188 90 01 00 14 */ stw r0, 0x14(r1) -/* 80CEC18C 80 83 09 0C */ lwz r4, 0x90c(r3) -/* 80CEC190 38 04 00 01 */ addi r0, r4, 1 -/* 80CEC194 90 03 09 0C */ stw r0, 0x90c(r3) -/* 80CEC198 4B 32 DA E5 */ bl fopAcM_delete__FP10fopAc_ac_c -/* 80CEC19C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80CEC1A0 7C 08 03 A6 */ mtlr r0 -/* 80CEC1A4 38 21 00 10 */ addi r1, r1, 0x10 -/* 80CEC1A8 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/modePutWait__12daObjStone_cFv.s b/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/modePutWait__12daObjStone_cFv.s deleted file mode 100644 index 3474868506..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/modePutWait__12daObjStone_cFv.s +++ /dev/null @@ -1,5 +0,0 @@ -lbl_80CEAFD8: -/* 80CEAFD8 80 83 09 0C */ lwz r4, 0x90c(r3) -/* 80CEAFDC 38 04 00 01 */ addi r0, r4, 1 -/* 80CEAFE0 90 03 09 0C */ stw r0, 0x90c(r3) -/* 80CEAFE4 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/modeWait__12daObjStone_cFv.s b/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/modeWait__12daObjStone_cFv.s deleted file mode 100644 index ad0ab9c738..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/modeWait__12daObjStone_cFv.s +++ /dev/null @@ -1,41 +0,0 @@ -lbl_80CEB01C: -/* 80CEB01C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80CEB020 7C 08 02 A6 */ mflr r0 -/* 80CEB024 90 01 00 14 */ stw r0, 0x14(r1) -/* 80CEB028 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80CEB02C 93 C1 00 08 */ stw r30, 8(r1) -/* 80CEB030 7C 7E 1B 78 */ mr r30, r3 -/* 80CEB034 3C 80 80 CF */ lis r4, l_bmdIdx@ha /* 0x80CECAB4@ha */ -/* 80CEB038 3B E4 CA B4 */ addi r31, r4, l_bmdIdx@l /* 0x80CECAB4@l */ -/* 80CEB03C 80 83 09 0C */ lwz r4, 0x90c(r3) -/* 80CEB040 38 04 00 01 */ addi r0, r4, 1 -/* 80CEB044 90 03 09 0C */ stw r0, 0x90c(r3) -/* 80CEB048 C0 23 05 2C */ lfs f1, 0x52c(r3) -/* 80CEB04C C0 1F 01 40 */ lfs f0, 0x140(r31) -/* 80CEB050 EC 01 00 32 */ fmuls f0, f1, f0 -/* 80CEB054 D0 03 05 2C */ stfs f0, 0x52c(r3) -/* 80CEB058 38 9E 07 8C */ addi r4, r30, 0x78c -/* 80CEB05C 4B 32 F6 71 */ bl fopAcM_posMoveF__FP10fopAc_ac_cPC4cXyz -/* 80CEB060 38 7E 09 40 */ addi r3, r30, 0x940 -/* 80CEB064 88 1E 09 06 */ lbz r0, 0x906(r30) -/* 80CEB068 54 00 10 3A */ slwi r0, r0, 2 -/* 80CEB06C 38 9F 00 68 */ addi r4, r31, 0x68 -/* 80CEB070 7C 24 04 2E */ lfsx f1, r4, r0 -/* 80CEB074 C0 5F 01 44 */ lfs f2, 0x144(r31) -/* 80CEB078 4B 58 56 C9 */ bl cLib_chaseF__FPfff -/* 80CEB07C 80 1E 09 0C */ lwz r0, 0x90c(r30) -/* 80CEB080 28 00 00 05 */ cmplwi r0, 5 -/* 80CEB084 40 81 00 1C */ ble lbl_80CEB0A0 -/* 80CEB088 7F C3 F3 78 */ mr r3, r30 -/* 80CEB08C 48 00 15 31 */ bl checkRollAngle__12daObjStone_cFv -/* 80CEB090 2C 03 00 00 */ cmpwi r3, 0 -/* 80CEB094 41 82 00 0C */ beq lbl_80CEB0A0 -/* 80CEB098 7F C3 F3 78 */ mr r3, r30 -/* 80CEB09C 48 00 06 4D */ bl init_modeWalk__12daObjStone_cFv -lbl_80CEB0A0: -/* 80CEB0A0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80CEB0A4 83 C1 00 08 */ lwz r30, 8(r1) -/* 80CEB0A8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80CEB0AC 7C 08 03 A6 */ mtlr r0 -/* 80CEB0B0 38 21 00 10 */ addi r1, r1, 0x10 -/* 80CEB0B4 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/modeYogan__12daObjStone_cFv.s b/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/modeYogan__12daObjStone_cFv.s deleted file mode 100644 index b5893be239..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/modeYogan__12daObjStone_cFv.s +++ /dev/null @@ -1,41 +0,0 @@ -lbl_80CEBE84: -/* 80CEBE84 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80CEBE88 7C 08 02 A6 */ mflr r0 -/* 80CEBE8C 90 01 00 24 */ stw r0, 0x24(r1) -/* 80CEBE90 39 61 00 20 */ addi r11, r1, 0x20 -/* 80CEBE94 4B 67 63 49 */ bl _savegpr_29 -/* 80CEBE98 7C 7D 1B 78 */ mr r29, r3 -/* 80CEBE9C C0 43 07 40 */ lfs f2, 0x740(r3) -/* 80CEBEA0 3C 80 80 CF */ lis r4, lit_5074@ha /* 0x80CECC18@ha */ -/* 80CEBEA4 C0 24 CC 18 */ lfs f1, lit_5074@l(r4) /* 0x80CECC18@l */ -/* 80CEBEA8 C0 03 04 D4 */ lfs f0, 0x4d4(r3) -/* 80CEBEAC EC 01 00 2A */ fadds f0, f1, f0 -/* 80CEBEB0 FC 02 00 40 */ fcmpo cr0, f2, f0 -/* 80CEBEB4 7C 00 00 26 */ mfcr r0 -/* 80CEBEB8 54 1E 17 FE */ rlwinm r30, r0, 2, 0x1f, 0x1f -/* 80CEBEBC 80 03 05 A0 */ lwz r0, 0x5a0(r3) -/* 80CEBEC0 54 1F CF FE */ rlwinm r31, r0, 0x19, 0x1f, 0x1f -/* 80CEBEC4 C0 23 05 2C */ lfs f1, 0x52c(r3) -/* 80CEBEC8 3C 80 80 CF */ lis r4, lit_5075@ha /* 0x80CECC1C@ha */ -/* 80CEBECC C0 04 CC 1C */ lfs f0, lit_5075@l(r4) /* 0x80CECC1C@l */ -/* 80CEBED0 EC 01 00 32 */ fmuls f0, f1, f0 -/* 80CEBED4 D0 03 05 2C */ stfs f0, 0x52c(r3) -/* 80CEBED8 38 80 00 00 */ li r4, 0 -/* 80CEBEDC 4B 32 E7 F1 */ bl fopAcM_posMoveF__FP10fopAc_ac_cPC4cXyz -/* 80CEBEE0 28 1E 00 00 */ cmplwi r30, 0 -/* 80CEBEE4 40 82 00 0C */ bne lbl_80CEBEF0 -/* 80CEBEE8 28 1F 00 00 */ cmplwi r31, 0 -/* 80CEBEEC 41 82 00 0C */ beq lbl_80CEBEF8 -lbl_80CEBEF0: -/* 80CEBEF0 7F A3 EB 78 */ mr r3, r29 -/* 80CEBEF4 4B 32 DD 89 */ bl fopAcM_delete__FP10fopAc_ac_c -lbl_80CEBEF8: -/* 80CEBEF8 80 7D 09 0C */ lwz r3, 0x90c(r29) -/* 80CEBEFC 38 03 00 01 */ addi r0, r3, 1 -/* 80CEBF00 90 1D 09 0C */ stw r0, 0x90c(r29) -/* 80CEBF04 39 61 00 20 */ addi r11, r1, 0x20 -/* 80CEBF08 4B 67 63 21 */ bl _restgpr_29 -/* 80CEBF0C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80CEBF10 7C 08 03 A6 */ mtlr r0 -/* 80CEBF14 38 21 00 20 */ addi r1, r1, 0x20 -/* 80CEBF18 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/setBaseMtx__12daObjStone_cFv.s b/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/setBaseMtx__12daObjStone_cFv.s deleted file mode 100644 index 3d81038e1d..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/setBaseMtx__12daObjStone_cFv.s +++ /dev/null @@ -1,55 +0,0 @@ -lbl_80CE9468: -/* 80CE9468 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80CE946C 7C 08 02 A6 */ mflr r0 -/* 80CE9470 90 01 00 14 */ stw r0, 0x14(r1) -/* 80CE9474 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80CE9478 7C 7F 1B 78 */ mr r31, r3 -/* 80CE947C 38 7F 09 20 */ addi r3, r31, 0x920 -/* 80CE9480 38 9F 09 30 */ addi r4, r31, 0x930 -/* 80CE9484 7C 65 1B 78 */ mr r5, r3 -/* 80CE9488 4B 65 DF 91 */ bl PSQUATMultiply -/* 80CE948C 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 80CE9490 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 80CE9494 C0 3F 04 D0 */ lfs f1, 0x4d0(r31) -/* 80CE9498 C0 5F 04 D4 */ lfs f2, 0x4d4(r31) -/* 80CE949C C0 1F 09 40 */ lfs f0, 0x940(r31) -/* 80CE94A0 EC 42 00 2A */ fadds f2, f2, f0 -/* 80CE94A4 C0 7F 04 D8 */ lfs f3, 0x4d8(r31) -/* 80CE94A8 4B 65 D4 41 */ bl PSMTXTrans -/* 80CE94AC 38 7F 09 20 */ addi r3, r31, 0x920 -/* 80CE94B0 4B 32 3A CD */ bl quatM__14mDoMtx_stack_cFPC10Quaternion -/* 80CE94B4 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 80CE94B8 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 80CE94BC A8 9F 04 E4 */ lha r4, 0x4e4(r31) -/* 80CE94C0 A8 BF 04 E6 */ lha r5, 0x4e6(r31) -/* 80CE94C4 A8 DF 04 E8 */ lha r6, 0x4e8(r31) -/* 80CE94C8 4B 32 2D D9 */ bl mDoMtx_ZXYrotM__FPA4_fsss -/* 80CE94CC 38 7F 09 00 */ addi r3, r31, 0x900 -/* 80CE94D0 4B 32 3A 75 */ bl ZXYrotM__14mDoMtx_stack_cFRC5csXyz -/* 80CE94D4 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 80CE94D8 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 80CE94DC 80 9F 05 70 */ lwz r4, 0x570(r31) -/* 80CE94E0 38 84 00 24 */ addi r4, r4, 0x24 -/* 80CE94E4 4B 65 CF CD */ bl PSMTXCopy -/* 80CE94E8 C0 1F 09 20 */ lfs f0, 0x920(r31) -/* 80CE94EC D0 1F 09 30 */ stfs f0, 0x930(r31) -/* 80CE94F0 C0 1F 09 24 */ lfs f0, 0x924(r31) -/* 80CE94F4 D0 1F 09 34 */ stfs f0, 0x934(r31) -/* 80CE94F8 C0 1F 09 28 */ lfs f0, 0x928(r31) -/* 80CE94FC D0 1F 09 38 */ stfs f0, 0x938(r31) -/* 80CE9500 C0 1F 09 2C */ lfs f0, 0x92c(r31) -/* 80CE9504 D0 1F 09 3C */ stfs f0, 0x93c(r31) -/* 80CE9508 3C 60 80 3A */ lis r3, ZeroQuat@ha /* 0x803A7240@ha */ -/* 80CE950C C4 03 72 40 */ lfsu f0, ZeroQuat@l(r3) /* 0x803A7240@l */ -/* 80CE9510 D0 1F 09 20 */ stfs f0, 0x920(r31) -/* 80CE9514 C0 03 00 04 */ lfs f0, 4(r3) -/* 80CE9518 D0 1F 09 24 */ stfs f0, 0x924(r31) -/* 80CE951C C0 03 00 08 */ lfs f0, 8(r3) -/* 80CE9520 D0 1F 09 28 */ stfs f0, 0x928(r31) -/* 80CE9524 C0 03 00 0C */ lfs f0, 0xc(r3) -/* 80CE9528 D0 1F 09 2C */ stfs f0, 0x92c(r31) -/* 80CE952C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80CE9530 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80CE9534 7C 08 03 A6 */ mtlr r0 -/* 80CE9538 38 21 00 10 */ addi r1, r1, 0x10 -/* 80CE953C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark/_delete__12daObjSMark_cFv.s b/asm/rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark/_delete__12daObjSMark_cFv.s deleted file mode 100644 index 5c3a1400bd..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark/_delete__12daObjSMark_cFv.s +++ /dev/null @@ -1,14 +0,0 @@ -lbl_8059A33C: -/* 8059A33C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8059A340 7C 08 02 A6 */ mflr r0 -/* 8059A344 90 01 00 14 */ stw r0, 0x14(r1) -/* 8059A348 3C 80 80 5A */ lis r4, l_arcName@ha /* 0x8059A410@ha */ -/* 8059A34C 38 84 A4 10 */ addi r4, r4, l_arcName@l /* 0x8059A410@l */ -/* 8059A350 80 84 00 00 */ lwz r4, 0(r4) -/* 8059A354 38 63 05 68 */ addi r3, r3, 0x568 -/* 8059A358 4B A9 2C B1 */ bl dComIfG_resDelete__FP30request_of_phase_process_classPCc -/* 8059A35C 38 60 00 01 */ li r3, 1 -/* 8059A360 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8059A364 7C 08 03 A6 */ mtlr r0 -/* 8059A368 38 21 00 10 */ addi r1, r1, 0x10 -/* 8059A36C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark/daObjSMark_Create__FP10fopAc_ac_c.s b/asm/rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark/daObjSMark_Create__FP10fopAc_ac_c.s deleted file mode 100644 index 941944da4f..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark/daObjSMark_Create__FP10fopAc_ac_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_8059A3B0: -/* 8059A3B0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8059A3B4 7C 08 02 A6 */ mflr r0 -/* 8059A3B8 90 01 00 14 */ stw r0, 0x14(r1) -/* 8059A3BC 4B FF FD AD */ bl create__12daObjSMark_cFv -/* 8059A3C0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8059A3C4 7C 08 03 A6 */ mtlr r0 -/* 8059A3C8 38 21 00 10 */ addi r1, r1, 0x10 -/* 8059A3CC 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark/daObjSMark_Delete__FP12daObjSMark_c.s b/asm/rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark/daObjSMark_Delete__FP12daObjSMark_c.s deleted file mode 100644 index d95003f89c..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark/daObjSMark_Delete__FP12daObjSMark_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_8059A390: -/* 8059A390 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8059A394 7C 08 02 A6 */ mflr r0 -/* 8059A398 90 01 00 14 */ stw r0, 0x14(r1) -/* 8059A39C 4B FF FF A1 */ bl _delete__12daObjSMark_cFv -/* 8059A3A0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8059A3A4 7C 08 03 A6 */ mtlr r0 -/* 8059A3A8 38 21 00 10 */ addi r1, r1, 0x10 -/* 8059A3AC 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark/daObjSMark_Draw__FP12daObjSMark_c.s b/asm/rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark/daObjSMark_Draw__FP12daObjSMark_c.s deleted file mode 100644 index ab23993ecc..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark/daObjSMark_Draw__FP12daObjSMark_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_8059A370: -/* 8059A370 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8059A374 7C 08 02 A6 */ mflr r0 -/* 8059A378 90 01 00 14 */ stw r0, 0x14(r1) -/* 8059A37C 4B FF FF 51 */ bl draw__12daObjSMark_cFv -/* 8059A380 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8059A384 7C 08 03 A6 */ mtlr r0 -/* 8059A388 38 21 00 10 */ addi r1, r1, 0x10 -/* 8059A38C 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark/initBaseMtx__12daObjSMark_cFv.s b/asm/rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark/initBaseMtx__12daObjSMark_cFv.s deleted file mode 100644 index 1d83e0d5f6..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark/initBaseMtx__12daObjSMark_cFv.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_8059A018: -/* 8059A018 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8059A01C 7C 08 02 A6 */ mflr r0 -/* 8059A020 90 01 00 14 */ stw r0, 0x14(r1) -/* 8059A024 48 00 00 15 */ bl setBaseMtx__12daObjSMark_cFv -/* 8059A028 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8059A02C 7C 08 03 A6 */ mtlr r0 -/* 8059A030 38 21 00 10 */ addi r1, r1, 0x10 -/* 8059A034 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark/setBaseMtx__12daObjSMark_cFv.s b/asm/rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark/setBaseMtx__12daObjSMark_cFv.s deleted file mode 100644 index b31c49d2f1..0000000000 --- a/asm/rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark/setBaseMtx__12daObjSMark_cFv.s +++ /dev/null @@ -1,19 +0,0 @@ -lbl_8059A038: -/* 8059A038 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8059A03C 7C 08 02 A6 */ mflr r0 -/* 8059A040 90 01 00 14 */ stw r0, 0x14(r1) -/* 8059A044 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8059A048 7C 7F 1B 78 */ mr r31, r3 -/* 8059A04C 38 7F 04 D0 */ addi r3, r31, 0x4d0 -/* 8059A050 4B A7 2D 15 */ bl transS__14mDoMtx_stack_cFRC4cXyz -/* 8059A054 38 7F 04 E4 */ addi r3, r31, 0x4e4 -/* 8059A058 4B A7 2E ED */ bl ZXYrotM__14mDoMtx_stack_cFRC5csXyz -/* 8059A05C 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */ -/* 8059A060 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */ -/* 8059A064 38 9F 07 E4 */ addi r4, r31, 0x7e4 -/* 8059A068 4B DA C4 49 */ bl PSMTXCopy -/* 8059A06C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8059A070 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8059A074 7C 08 03 A6 */ mtlr r0 -/* 8059A078 38 21 00 10 */ addi r1, r1, 0x10 -/* 8059A07C 4E 80 00 20 */ blr diff --git a/include/JSystem/J2DGraph/J2DAnimation.h b/include/JSystem/J2DGraph/J2DAnimation.h index 5974961dac..1cb44c0f04 100644 --- a/include/JSystem/J2DGraph/J2DAnimation.h +++ b/include/JSystem/J2DGraph/J2DAnimation.h @@ -124,7 +124,11 @@ public: mTranslateValues = pTranslateValues; mKind = KIND_TRANSFORM; } + #ifdef __dt__15J2DAnmTransformFv_DEFINED + /* 80184370 */ virtual ~J2DAnmTransform(); + #else /* 80184370 */ virtual ~J2DAnmTransform() {} + #endif /* 80191130 */ virtual void getTransform(u16, J3DTransformInfo*) const; /* 0x10 */ f32* mScaleValues; diff --git a/include/JSystem/J2DGraph/J2DPane.h b/include/JSystem/J2DGraph/J2DPane.h index fe6649981b..7d4832d8eb 100644 --- a/include/JSystem/J2DGraph/J2DPane.h +++ b/include/JSystem/J2DGraph/J2DPane.h @@ -94,8 +94,7 @@ public: /* vt 0x70 */ virtual void setAnimation(J2DAnmTevRegKey* anm) {} /* vt 0x74 */ virtual void setAnimation(J2DAnmVisibilityFull* anm) {} /* vt 0x78 */ virtual void setAnimation(J2DAnmVtxColor* anm) {} - /* vt 0x7C */ virtual const J2DAnmTransform* - animationTransform(const J2DAnmTransform* transform); + /* vt 0x7C */ virtual const J2DAnmTransform* animationTransform(const J2DAnmTransform* transform); /* vt 0x80 */ virtual void setVisibileAnimation(J2DAnmVisibilityFull* visibility); /* vt 0x84 */ virtual void setAnimationVF(J2DAnmVisibilityFull* visibility); /* vt 0x88 */ virtual void setVtxColorAnimation(J2DAnmVtxColor* vtx_color); diff --git a/include/JSystem/J3DGraphAnimator/J3DModel.h b/include/JSystem/J3DGraphAnimator/J3DModel.h index 3c20380ef5..80176968f8 100644 --- a/include/JSystem/J3DGraphAnimator/J3DModel.h +++ b/include/JSystem/J3DGraphAnimator/J3DModel.h @@ -11,8 +11,14 @@ #include "dolphin/types.h" enum J3DMdlFlag { - /* 0x4 */ J3DMdlFlag_SkinPosCpu = 0x4, - /* 0x8 */ J3DMdlFlag_SkinNrmCpu = 0x8, + /* 0x00001 */ J3DMdlFlag_Unk00001 = 0x1, + /* 0x00002 */ J3DMdlFlag_Unk00002 = 0x2, + /* 0x00004 */ J3DMdlFlag_SkinPosCpu = 0x4, + /* 0x00008 */ J3DMdlFlag_SkinNrmCpu = 0x8, + /* 0x00010 */ J3DMdlFlag_Unk00010 = 0x10, + /* 0x20000 */ J3DMdlFlag_Unk20000 = 0x20000, + /* 0x40000 */ J3DMdlFlag_Unk40000 = 0x40000, + /* 0x80000 */ J3DMdlFlag_Unk80000 = 0x80000, }; struct J3DUnkCalc1 { diff --git a/include/JSystem/JAudio2/JASResArcLoader.h b/include/JSystem/JAudio2/JASResArcLoader.h index 32050268a6..8e32fb6b06 100644 --- a/include/JSystem/JAudio2/JASResArcLoader.h +++ b/include/JSystem/JAudio2/JASResArcLoader.h @@ -1,6 +1,44 @@ #ifndef JASRESARCLOADER_H #define JASRESARCLOADER_H -#include "dolphin/types.h" +#include "JSystem/JKernel/JKRArchive.h" + +namespace JASResArcLoader { + /* 80290BD0 */ size_t getResSize(JKRArchive const*, u16); + /* 80290C04 */ size_t getResMaxSize(JKRArchive const*); + /* 80290C7C */ static void loadResourceCallback(void*); + /* 80290D18 */ int loadResourceAsync(JKRArchive*, u16, u8*, u32, void (*)(u32, u32), u32); +}; + + + +// from pikmin2 +typedef void (*LoadCallback)(u32, u32); + +enum ResArcMessage { + RESARCMSG_Error = -1, + RESARCMSG_Success = 0, +}; + +struct CallbackArgs { + inline CallbackArgs(u16 id, u8* buf, u32 size, JKRArchive* archive) + : mArchive(archive) + , mID(id) + , mBuffer(buf) + , mBufferSize(size) + , mCallback(0) + , mCallbackArg(0) + , mQueue(0) + { + } + + JKRArchive* mArchive; // _00 + u16 mID; // _04 + u8* mBuffer; // _08 + u32 mBufferSize; // _0C + LoadCallback mCallback; // _10 + u32 mCallbackArg; // _14, arg to pass to mCallback along with readResource result + OSMessageQueue* mQueue; // _18 +}; #endif /* JASRESARCLOADER_H */ diff --git a/include/JSystem/JKernel/JKRArchive.h b/include/JSystem/JKernel/JKRArchive.h index b339fb71ef..2583da20b8 100644 --- a/include/JSystem/JKernel/JKRArchive.h +++ b/include/JSystem/JKernel/JKRArchive.h @@ -84,6 +84,7 @@ public: // was needed for open__14JKRAramArchiveFl u8 getCompressFlag() const { return (getFlags() & 0x04); } bool isYAZ0Compressed() const { return (getFlags() & 0x80) != 0; } + u32 getSize() const { return data_size; } }; enum EMountMode { diff --git a/include/JSystem/JKernel/JKRHeap.h b/include/JSystem/JKernel/JKRHeap.h index 927ee8d6e8..4d8f196f90 100644 --- a/include/JSystem/JKernel/JKRHeap.h +++ b/include/JSystem/JKernel/JKRHeap.h @@ -236,4 +236,8 @@ inline s32 JKRResizeMemBlock(JKRHeap* heap, void* ptr, u32 size) { return JKRHeap::resize(ptr, size, heap); } +inline JKRHeap* JKRGetRootHeap() { + return JKRHeap::getRootHeap(); +} + #endif /* JKRHEAP_H */ diff --git a/include/JSystem/JUtility/JUTException.h b/include/JSystem/JUtility/JUTException.h index 447e1483aa..e03079cd50 100644 --- a/include/JSystem/JUtility/JUTException.h +++ b/include/JSystem/JUtility/JUTException.h @@ -98,6 +98,10 @@ public: mGamePadPort = JUTGamePad::Port_Unknown; } + static void setMapFile(const char* map) { + appendMapFile(map); + } + private: static OSMessageQueue sMessageQueue; static const char* sCpuExpName[17]; diff --git a/include/JSystem/JUtility/JUTNameTab.h b/include/JSystem/JUtility/JUTNameTab.h index e539c6f08c..d6c17bdddb 100644 --- a/include/JSystem/JUtility/JUTNameTab.h +++ b/include/JSystem/JUtility/JUTNameTab.h @@ -20,7 +20,7 @@ class JUTNameTab { public: JUTNameTab(); JUTNameTab(const ResNTAB* pNameTable); - virtual ~JUTNameTab() {} + virtual ~JUTNameTab() {}; void setResource(const ResNTAB* pNameTable); s32 getIndex(char const*) const; diff --git a/include/SSystem/SComponent/c_cc_d.h b/include/SSystem/SComponent/c_cc_d.h index f37db70369..f01ab4d0d1 100644 --- a/include/SSystem/SComponent/c_cc_d.h +++ b/include/SSystem/SComponent/c_cc_d.h @@ -457,6 +457,7 @@ public: void OnCoSetBit() { mObjCo.OnSPrmBit(1); } void OffAtVsPlayerBit() { mObjAt.OffSPrmBit(0xC); } void OnAtVsPlayerBit() { mObjAt.OnSPrmBit(0xC); } + void OnCoSPrmBit(u32 flag) { mObjCo.OnSPrmBit(flag); } }; // Size = 0x40 diff --git a/include/SSystem/SComponent/c_math.h b/include/SSystem/SComponent/c_math.h index 86330cc7d3..8369f5238a 100644 --- a/include/SSystem/SComponent/c_math.h +++ b/include/SSystem/SComponent/c_math.h @@ -29,6 +29,10 @@ inline s16 cM_deg2s(f32 val) { return val * 182.04445f; } +inline s16 i_cM_deg2s(f32 val) { + return val; +} + inline f32 cM_fsin(f32 v) { return JMASSin(cM_rad2s(v)); } diff --git a/include/SSystem/SComponent/c_sxyz.h b/include/SSystem/SComponent/c_sxyz.h index c595b8f495..7395f7e142 100644 --- a/include/SSystem/SComponent/c_sxyz.h +++ b/include/SSystem/SComponent/c_sxyz.h @@ -7,7 +7,7 @@ class csXyz : public SVec { public: static const csXyz Zero; - /* 80018BD0 */ ~csXyz() {} + /* 80018BD0 */ ~csXyz() {}; /* inline */ csXyz() {} /* inline */ csXyz(const csXyz& other) : SVec(other){}; /* 802673F4 */ csXyz(s16, s16, s16); diff --git a/include/d/a/d_a_alink.h b/include/d/a/d_a_alink.h index 5404009a9f..d05a1591c6 100644 --- a/include/d/a/d_a_alink.h +++ b/include/d/a/d_a_alink.h @@ -3142,7 +3142,7 @@ public: return checkHookshotReadyAnime() || checkHookshotShootAnime(); } BOOL checkBoomerangReadyAnime() const { - return (mEquipItem == BOOMERANG || mEquipItem == 0x102) && checkUpperAnime(0x54); + return (mEquipItem == BOOMERANG || mEquipItem == noentry71) && checkUpperAnime(0x54); } bool checkDkCaught2Anime() const { return checkUpperAnime(0x262); } BOOL checkCopyRodThrowAnime() const { return mEquipItem == COPY_ROD && checkUpperAnime(0x53); } @@ -3181,7 +3181,7 @@ public: bool swordButton() { return itemButtonCheck(8); } daPy_actorKeep_c* getThrowBoomerangAcKeep() { return &mThrowBoomerangAcKeep; } s32 getStartRoomNo() { return fopAcM_GetParam(this) & 0x3F; } - bool checkFisingRodLure() const { return mEquipItem == 0x105; } + bool checkFisingRodLure() const { return mEquipItem == noentry73; } bool doTrigger() const { return mItemTrigger & BTN_A; } bool swordTrigger() { return itemTriggerCheck(BTN_B); } bool peepSubjectCancelTrigger() { return itemTriggerCheck(0x8); } diff --git a/include/d/bg/d_bg_s_acch.h b/include/d/bg/d_bg_s_acch.h index 2f474c8f67..b2b4210101 100644 --- a/include/d/bg/d_bg_s_acch.h +++ b/include/d/bg/d_bg_s_acch.h @@ -121,6 +121,7 @@ public: void SetLin() { m_lin.SetStartEnd(*pm_old_pos, *pm_pos); } bool ChkGroundFind() { return m_flags & GROUND_FIND; } bool ChkGroundHit() { return m_flags & GROUND_HIT; } + bool ChkGroundLanding() { return m_flags & GROUND_LANDING; } void ClrGroundLanding() { m_flags &= ~GROUND_LANDING; } void ClrGroundAway() { m_flags &= ~GROUND_AWAY; } void ClrWallHit() { m_flags &= ~WALL_HIT; } @@ -136,6 +137,8 @@ public: void SetWaterHit() { m_flags |= WATER_HIT; } void ClrWaterIn() { m_flags &= ~WATER_IN; } void SetWaterIn() { m_flags |= WATER_IN; } + const u32 MaskWaterIn() { return m_flags & WATER_IN; } + const bool ChkWaterIn() { return MaskWaterIn();} void ClrGroundFind() { m_flags &= ~GROUND_FIND; } u32 MaskRoofHit() { return m_flags & ROOF_HIT; } bool ChkRoofHit() { return MaskRoofHit(); } diff --git a/include/d/cc/d_cc_d.h b/include/d/cc/d_cc_d.h index 5c8ed40c72..66c7217599 100644 --- a/include/d/cc/d_cc_d.h +++ b/include/d/cc/d_cc_d.h @@ -346,6 +346,7 @@ public: void SetAtRVec(cXyz& vec) { mGObjAt.SetRVec(vec); } void SetTgHitPos(cXyz& pos) { mGObjTg.SetHitPos(pos); } void SetAtHitPos(cXyz& pos) { mGObjAt.SetHitPos(pos); } + u32 GetTgHitObjHitSeID(int i_soundID) { return getHitSeID(GetTgHitObjSe(),i_soundID); } static u32 const m_hitSeID[24]; diff --git a/include/d/com/d_com_inf_game.h b/include/d/com/d_com_inf_game.h index 033dd088de..3d2e298d6c 100644 --- a/include/d/com/d_com_inf_game.h +++ b/include/d/com/d_com_inf_game.h @@ -937,6 +937,10 @@ inline void dComIfGs_setCollectClothes(u8 i_clothesNo) { g_dComIfG_gameInfo.info.getPlayer().getCollect().setCollect(COLLECT_CLOTHING, i_clothesNo); } +inline void dComIfGs_setCardToMemory(char* card_ptr,int dataNum) { + g_dComIfG_gameInfo.info.card_to_memory(card_ptr,dataNum); +} + inline void dComIfGs_setRodTypeLevelUp() { g_dComIfG_gameInfo.info.getPlayer().getItem().setRodTypeLevelUp(); } @@ -1008,6 +1012,7 @@ inline void dComIfGs_offSwitch(int i_no, int i_roomNo) { g_dComIfG_gameInfo.info.offSwitch(i_no, i_roomNo); } + inline BOOL dComIfGs_isSwitch(int i_no, int i_roomNo) { return g_dComIfG_gameInfo.info.isSwitch(i_no, i_roomNo); } @@ -1479,6 +1484,10 @@ inline BOOL dComIfGs_isActor(int i_no, int i_roomNo) { return g_dComIfG_gameInfo.info.isActor(i_no, i_roomNo); } +inline void dComIfGs_offActor(int i_no, int i_roomNo) { + g_dComIfG_gameInfo.info.offActor(i_no,i_roomNo); +} + inline void dComIfGs_putSave(int i_stageNo) { g_dComIfG_gameInfo.info.putSave(i_stageNo); } diff --git a/include/d/d_lib.h b/include/d/d_lib.h index 0f87597d27..7a54285045 100644 --- a/include/d/d_lib.h +++ b/include/d/d_lib.h @@ -3,6 +3,7 @@ #include "dolphin/types.h" #include "dolphin/os/OS.h" +#include "dolphin/mtx/quat.h" struct JKRAramArchive; u32 dLib_getExpandSizeFromAramArchive(JKRAramArchive* arc, char const* resName); @@ -81,4 +82,6 @@ struct dLib_time_c { static bool m_timeStopped; }; +extern Quaternion ZeroQuat; + #endif /* D_D_LIB_H */ diff --git a/include/d/file/d_file_select.h b/include/d/file/d_file_select.h index bf6f18282e..f223124fcc 100644 --- a/include/d/file/d_file_select.h +++ b/include/d/file/d_file_select.h @@ -2,5 +2,468 @@ #define D_FILE_D_FILE_SELECT_H #include "dolphin/types.h" +#include "d/com/d_com_inf_game.h" +#include "m_Do/m_Do_MemCard.h" +#include "d/file/d_file_sel_warning.h" +#include "d/d_name.h" +#include "d/msg/d_msg_string.h" +#include "JSystem/J3DGraphLoader/J3DModelLoader.h" +#include "JSystem/J3DGraphLoader/J3DAnmLoader.h" + +class dDlst_FileSel_c { +public: + /* 8018DEBC */ void draw(); + /* 8019135C */ ~dDlst_FileSel_c(); + + /* 0x00 */ void* vtable; + /* 0x04 */ J2DScreen* mpScreen; +}; + +struct dFile_select3D_c { + /* 801902F0 */ dFile_select3D_c(); + /* 80190380 */ ~dFile_select3D_c(); + /* 801903DC */ void _create(u8, u8); + /* 8019049C */ void _delete(); + /* 801904A0 */ void freeHeap(); + /* 801904E4 */ void _move(); + /* 801905A8 */ void draw(); + /* 8019065C */ void setJ3D(char const*, char const*, char const*); + /* 8019095C */ void set_mtx(); + /* 80190A14 */ void animePlay(); + /* 80190B44 */ void animeEntry(); + /* 80190BA8 */ void createMaskModel(); + /* 80190D68 */ void createMirrorModel(); + /* 80190FE8 */ void toItem3Dpos(f32, f32, f32, cXyz*); + /* 801910D4 */ void calcViewMtx(f32 (*)[4]); +}; + +struct dDlst_FileSelYn_c { + /* 8018E0C0 */ void draw(); + /* 801911F4 */ ~dDlst_FileSelYn_c(); + + /* 0x00 */ void* vtable; + /* 0x04 */ J2DScreen* mpScreen; + /* 0x08 */ u8 field_0x08[4]; +}; + +struct dDlst_FileSelDt_c { + /* 8018DEF4 */ void draw(); + /* 801912E4 */ ~dDlst_FileSelDt_c(); + + /* 0x00 */ void* vtable; + /* 0x04 */ J2DScreen* mpScreen; + /* 0x08 */ J2DPane* mpPane; + /* 0x0C */ u8 field_0x0c[4]; +}; + +struct dDlst_FileSelCp_c { + /* 8018DFFC */ void draw(); + /* 8019126C */ ~dDlst_FileSelCp_c(); + + /* 0x00 */ void* vtable; + /* 0x04 */ J2DScreen* mpScreen; + /* 0x08 */ bool field_0x08; + /* 0x0C */ J2DPane* mpPane1; + /* 0x10 */ J2DPane* mpPane2; +}; + +struct dDlst_FileSel3m_c { + /* 8018E0F8 */ void draw(); + /* 8019117C */ ~dDlst_FileSel3m_c(); + + /* 0x00 */ void* vtable; + /* 0x04 */ J2DScreen* mpScreen; +}; + +struct dFile_info_c { + /* 80192434 */ dFile_info_c(JKRArchive*, u8); + /* 80192954 */ void setSaveData(dSv_save_c*, int, u8); + /* 80192D60 */ void _draw(); +}; + +// temp struct in order to get matches +class dFs_HIO_c_tmp { +public: + /* 0x0000 */ void* vtable; + /* 0x0004 */ s8 field_0x0004; + /* 0x0005 */ u8 field_0x0005; + /* 0x0006 */ u8 field_0x0006; + /* 0x0007 */ u8 field_0x0007; + /* 0x0008 */ u8 field_0x0008; + /* 0x0009 */ u8 field_0x0009; + /* 0x000A */ u8 field_0x000a; + /* 0x000B */ u8 field_0x000b; + /* 0x000C */ u8 field_0x000c; + /* 0x000D */ u8 field_0x000d; + /* 0x000E */ u8 field_0x000e[2]; + /* 0x0010 */ float field_0x0010; + /* 0x0014 */ float field_0x0014; + /* 0x0018 */ float field_0x0018; + /* 0x001C */ u8 field_0x001c; + /* 0x001D */ u8 field_0x001d; + /* 0x001E */ u8 field_0x001e; + /* 0x001F */ u8 field_0x001f; + /* 0x0020 */ u8 field_0x0020; + /* 0x0021 */ u8 field_0x0021; + /* 0x0022 */ u8 field_0x0022; + /* 0x0023 */ u8 field_0x0023; +}; + +class dFs_HIO_c { +public: + /* 801835F8 */ dFs_HIO_c(); + /* 801913E0 */ virtual ~dFs_HIO_c(); + + /* 0x0000 */ // void* vtable; + /* 0x0004 */ s8 field_0x0004; + /* 0x0005 */ u8 field_0x0005; + /* 0x0006 */ u8 field_0x0006; + /* 0x0007 */ u8 field_0x0007; + /* 0x0008 */ u8 field_0x0008; + /* 0x0009 */ u8 field_0x0009; + /* 0x000A */ u8 field_0x000a; + /* 0x000B */ u8 field_0x000b; + /* 0x000C */ u8 field_0x000c; + /* 0x000D */ u8 field_0x000d; + /* 0x000E */ u8 field_0x000e[2]; + /* 0x0010 */ float field_0x0010; + /* 0x0014 */ float field_0x0014; + /* 0x0018 */ float field_0x0018; + /* 0x001C */ u8 field_0x001c; + /* 0x001D */ u8 field_0x001d; + /* 0x001E */ u8 field_0x001e; + /* 0x001F */ u8 field_0x001f; + /* 0x0020 */ u8 field_0x0020; + /* 0x0021 */ u8 field_0x0021; + /* 0x0022 */ u8 field_0x0022; + /* 0x0023 */ u8 field_0x0023; +}; + +class dFile_select_c { +public: + /* 8018366C */ dFile_select_c(JKRArchive*); + /* 8018375C */ ~dFile_select_c(); + /* 801843CC */ void _create(); + /* 801844FC */ void _move(); + /* 80184664 */ void selFileWakuAnm(); + /* 801848A0 */ void bookIconAnm(); + /* 8018499C */ void selCopyFileWakuAnm(); + /* 80184A48 */ void copyBookIconAnm(); + /* 80184B44 */ void dataDelEffAnm(); + /* 80184BFC */ void dataCopyEffAnm(); + /* 80184CB4 */ void selectDataBaseMoveAnmInitSet(int, int); + /* 80184D4C */ void selectDataBaseMoveAnm(); + /* 80184E38 */ void dataSelectInAnmSet(); + /* 80185040 */ void dataSelectIn(); + /* 80185230 */ void dataSelectInit(); + /* 801853C4 */ void dataSelect(); + /* 80185508 */ void dataSelectStart(); + /* 80185994 */ void selectDataMoveAnmInitSet(int, int); + /* 80185AAC */ void selectDataMoveAnm(); + /* 80185C2C */ void dataSelectAnmSet(); + /* 80185DE0 */ void dataSelectMoveAnime(); + /* 80186088 */ void makeRecInfo(u8); + /* 801864DC */ void selectDataOpenMove(); + /* 80186638 */ void selectDataNameMove(); + /* 801866C8 */ void selectDataOpenEraseMove(); + /* 80186774 */ void menuSelect(); + /* 801868EC */ void menuSelectStart(); + /* 80186A80 */ void menuSelectCansel(); + /* 80186B48 */ void menuMoveAnmInitSet(int, int); + /* 80186CAC */ bool menuMoveAnm(); + /* 80186E14 */ void menuSelectAnmSet(); + /* 80186F98 */ void menuSelectMoveAnm(); + /* 8018721C */ void ToNameMove(); + /* 801872C4 */ void ToNameMove2(); + /* 80187384 */ void nameInputWait(); + /* 801873BC */ void nameInput(); + /* 801874F8 */ void nameToDataSelectMove(); + /* 8018759C */ void nameInputFade(); + /* 801876A0 */ void nameInput2Move(); + /* 8018774C */ void nameInput2(); + /* 80187824 */ void backNameInputMove0(); + /* 80187908 */ void backNameInputMove(); + /* 801879B8 */ void ToCopyPaneMove(); + /* 80187ADC */ void ToErasePaneMove(); + /* 80187B44 */ void backSelectMove(); + /* 80187BE8 */ void copySelMoveAnmInitSet(int, int); + /* 80187DB8 */ void setSaveDataForCopySel(); + /* 80187ED4 */ void copyDataToSelect(); + /* 8018801C */ void copyDataToSelectStart(); + /* 80188234 */ void copyDataToSelectCansel(); + /* 8018832C */ void copyDataToSelectMoveAnmSet(); + /* 801884D0 */ void copyDataToSelectMoveAnm(); + /* 80188834 */ void copySelectWakuAlpahAnmInit(u8, u8, u8, u8); + /* 80188878 */ void copySelectWakuAlpahAnm(u8); + /* 80188950 */ void getCptoNum(u8); + /* 80188994 */ void copyToSelBack(); + /* 80188B54 */ void copyToSelPaneMove(); + /* 80188BBC */ void yesnoMenuMoveAnmInitSet(int, int); + /* 80188D38 */ bool yesnoMenuMoveAnm(); + /* 80188ED0 */ void yesnoSelectMoveAnm(); + /* 8018912C */ void yesnoCursorShow(); + /* 8018929C */ void YesNoSelect(); + /* 801893E4 */ void yesNoSelectStart(); + /* 8018978C */ void yesnoSelectAnmSet(); + /* 80189904 */ void yesnoCancelAnmSet(); + /* 80189A24 */ void YesNoCancelMove(); + /* 80189BA8 */ void yesNoCursorMoveAnm(); + /* 80189C14 */ void CmdExecPaneMove0(); + /* 80189E28 */ void CommandExec(); + /* 80189F68 */ void DataEraseWait(); + /* 80189FFC */ void DataEraseWait2(); + /* 8018A194 */ void ErasePaneMoveOk(); + /* 8018A2DC */ void ErasePaneMoveOk2(); + /* 8018A3B0 */ void eraseEndBackSelectWait(); + /* 8018A444 */ void eraseEndBackSelect(); + /* 8018A4D0 */ void DataCopyWait(); + /* 8018A564 */ void DataCopyWait2(); + /* 8018A6F8 */ void copyPaneMoveOk(); + /* 8018A868 */ void copyPaneMoveOk2(); + /* 8018A960 */ void ErrorMsgPaneMove(); + /* 8018AAC4 */ void backDatSelPaneMove(); + /* 8018AC3C */ void backDatSelWait(); + /* 8018AD38 */ void backDatSelWait2(); + /* 8018AD9C */ void nextModeWait(); + /* 8018ADA0 */ void screenSet(); + /* 8018BF2C */ void screenSetCopySel(); + /* 8018C524 */ void screenSetYesNo(); + /* 8018C8F4 */ void screenSet3Menu(); + /* 8018CCD0 */ void screenSetDetail(); + /* 8018CE38 */ void setWakuAnm(); + /* 8018CF50 */ void displayInit(); + /* 8018D044 */ void setSaveData(); + /* 8018D0E4 */ void headerTxtSet(u16, u8, u8); + /* 8018D25C */ bool headerTxtChangeAnm(); + /* 8018D344 */ void modoruTxtChange(u8); + /* 8018D3A0 */ void modoruTxtDispAnmInit(u8); + /* 8018D41C */ bool modoruTxtDispAnm(); + /* 8018D4F8 */ void ketteiTxtDispAnmInit(u8); + /* 8018D574 */ bool ketteiTxtDispAnm(); + /* 8018D650 */ void selectWakuAlpahAnmInit(u8, u8, u8, u8); + /* 8018D68C */ void selectWakuAlpahAnm(u8); + /* 8018D764 */ void selFileCursorShow(); + /* 8018D884 */ void menuWakuAlpahAnmInit(u8, u8, u8, u8); + /* 8018D8C8 */ void menuWakuAlpahAnm(u8); + /* 8018DA10 */ void menuCursorShow(); + /* 8018DB80 */ void yesnoWakuAlpahAnmInit(u8, u8, u8, u8); + /* 8018DBCC */ void yesnoWakuAlpahAnm(u8); + /* 8018DD38 */ void _draw(); + /* 8018E130 */ void errorMoveAnmInitSet(int, int); + /* 8018E1C0 */ bool errorMoveAnm(); + /* 8018E2B4 */ void errDispInitSet(int, int); + /* 8018E4CC */ void MemCardCheckMain(); + /* 8018E504 */ void MemCardStatCheck(); + /* 8018E7C4 */ void MemCardLoadWait(); + /* 8018E93C */ void MemCardErrMsgWaitKey(); + /* 8018E9B0 */ void noFileSpaceDispInit(); + /* 8018E9D4 */ void MemCardNoFileSpaceDisp(); + /* 8018EA3C */ void iplSelDispInit(); + /* 8018EA90 */ void MemCardGotoIPLSelectDisp(); + /* 8018EB10 */ void MemCardGotoIPLSelect(); + /* 8018EBCC */ void MemCardGotoIPL(); + /* 8018EC4C */ void noSaveSelDispInit(); + /* 8018ECBC */ void MemCardNoSaveSelDisp(); + /* 8018ED80 */ void MemCardErrMsgWaitNoSaveSel(); + /* 8018EF5C */ void formatYesSelDispInitSet(); + /* 8018EFAC */ void formatNoSelDispInitSet(); + /* 8018EFFC */ void MemCardFormatYesSelDisp(); + /* 8018F080 */ void MemCardFormatNoSelDisp(); + /* 8018F128 */ void MemCardErrMsgWaitFormatSel(); + /* 8018F17C */ void formatYesSel2DispInitSet(); + /* 8018F1CC */ void MemCardErrMsgWaitFormatSel2(); + /* 8018F228 */ void MemCardFormatYesSel2Disp(); + /* 8018F2A4 */ void MemCardFormat(); + /* 8018F304 */ void MemCardFormatWait(); + /* 8018F374 */ void MemCardFormatCheck(); + /* 8018F400 */ void MemCardMakeGameFileSel(); + /* 8018F488 */ void MemCardMakeGameFileSelDisp(); + /* 8018F580 */ void MemCardMakeGameFile(); + /* 8018F5E0 */ void MemCardMakeGameFileWait(); + /* 8018F650 */ void MemCardMakeGameFileCheck(); + /* 8018F6DC */ void MemCardMsgWindowInitOpen(); + /* 8018F8D8 */ void MemCardMsgWindowOpen(); + /* 8018F974 */ void MemCardMsgWindowClose(); + /* 8018FA2C */ void errYesNoSelect(); + /* 8018FB80 */ void errCurMove(u8); + /* 8018FBF8 */ void MemCardErrYesNoCursorMoveAnm(); + /* 8018FC64 */ void errorTxtSet(u16); + /* 8018FD30 */ void errorTxtChangeAnm(); + /* 8018FE18 */ bool fileRecScaleAnm(); + /* 8018FE64 */ void fileRecScaleAnmInitSet2(f32, f32); + /* 8018FEF4 */ void fileRecScaleAnm2(); + /* 8018FF9C */ bool fileInfoScaleAnm(); + /* 80190074 */ void nameMoveAnmInitSet(int, int); + /* 80190124 */ bool nameMoveAnm(); + /* 80190208 */ void MemCardSaveDataClear(); + /* 80190254 */ void setInitSaveData(); + /* 801902B8 */ void dataSave(); + + bool getFadeFlag() { return mFadeFlag; } + int isDataNew(u8 i) { return mDataNew[i]; } + int isSelectEnd() { return mSelectEnd; } + u8 getSelectNum() { return mSelectNum; } + void setUseType(u8 type) { mUseType = type; } + + /* 0x0000 */ void* vtable; + /* 0x0004 */ u8 field_0x04[4]; + /* 0x0008 */ JKRArchive* mpArchive; + /* 0x000C */ dFile_select3D_c* mpFileSelect3d; + /* 0x0010 */ dDlst_FileSel_c mFileSelectDlst; + /* 0x0018 */ JUTFont* mpMessageFont; + /* 0x001C */ JUTFont* mpSubFont; + /* 0x0020 */ dMsgString_c* mpMessageString; + /* 0x0024 */ dDlst_FileSelDt_c mFileSelDeleteDlst; + /* 0x0034 */ dDlst_FileSelCp_c mFileSelCopyDlst; + /* 0x0048 */ dDlst_FileSelYn_c mFileSelYesNoDlst; + /* 0x0054 */ dDlst_FileSel3m_c mFileSel3mDlst; + /* 0x005C */ u8 field_0x00[4]; + /* 0x0060 */ dSelect_cursor_c* mpCursor1; + /* 0x0064 */ dSelect_cursor_c* mpCursor2; + /* 0x0068 */ dName_c* mpName; + /* 0x006C */ dFile_warning_c* mpFileWarning; + /* 0x0070 */ u8 field_0x70[0xc]; + /* 0x007C */ dFile_info_c* mpFileInfo[2]; + /* 0x0084 */ J2DAnmBase* mpAnmBase[7]; + /* 0x00A0 */ u8 field_0xa0[4]; + /* 0x00A4 */ CPaneMgr* mpPaneMgr1; + /* 0x00A8 */ u8 field_0xa8[0xbc-0xa8]; + /* 0x00BC */ CPaneMgr* mpPaneMgrs[4]; + /* 0x00CC */ u8 field_0x00cc[8]; + /* 0x00D4 */ float field_0x00d4; + /* 0x00D8 */ u8 field_0xd8[0x108 - 0xd8]; + /* 0x0108 */ bool field_0x108; + /* 0x0109 */ bool field_0x109; + /* 0x010A */ u8 field_0x10a[2]; + /* 0x010C */ J2DPane* mpPane; + /* 0x0110 */ int field_0x0110; + /* 0x0110 */ int field_0x0114; + /* 0x0118 */ J2DPane* field_0x0118; + /* 0x011C */ J2DPane* field_0x011c; + /* 0x0120 */ int field_0x0120; + /* 0x0124 */ int field_0x0124; + /* 0x0128 */ bool field_0x0128; + /* 0x0129 */ u8 field_0x0129[0x012C - 0x0129]; + /* 0x012C */ J2DPane* field_0x012c; + /* 0x0130 */ int field_0x0130; + /* 0x0134 */ int field_0x0134; + /* 0x0138 */ u8 field_0x0138[0x014A - 0x0138]; + /* 0x014A */ bool field_0x014a; + /* 0x014B */ bool field_0x014b; + /* 0x014C */ u8 field_0x014C[0x0188 - 0x014C]; + /* 0x0188 */ CPaneMgr* field_0x0188[3]; + /* 0x0194 */ u8 field_0x0194[0x01C8 - 0x0194]; + /* 0x01C8 */ J2DAnmBase* field_0x01c8; + /* 0x01CC */ u8 field_0x01CC[0x01D0 - 0x01CC]; + /* 0x01D0 */ J2DAnmBase* field_0x01d0; + /* 0x01D4 */ u8 field_0x01D4[0x01D8 - 0x01D4]; + /* 0x01D8 */ J2DAnmBase* field_0x01d8; + /* 0x01DC */ u8 field_0x01DC[0x01E0 - 0x01DC]; + /* 0x01E0 */ J2DAnmBase* field_0x01e0; + /* 0x01E4 */ u8 field_0x01E4[0x01E8 - 0x01E4]; + /* 0x01E8 */ J2DAnmBase* field_0x01e8; + /* 0x01EC */ u8 field_0x01EC[0x01F0 - 0x01EC]; + /* 0x01F0 */ J2DAnmBase* field_0x01f0; + /* 0x01F4 */ u8 field_0x01F4[0x01F8 - 0x01F4]; + /* 0x01F8 */ J2DAnmBase* field_0x01f8; + /* 0x01FC */ u8 field_0x01FC[0x0200 - 0x01FC]; + /* 0x0200 */ J2DAnmBase* field_0x0200; + /* 0x0204 */ u8 field_0x0204[8]; + /* 0x020C */ CPaneMgrAlpha* field_0x020c; + /* 0x0210 */ u8 field_0x0210[0x021C - 0x0210]; + /* 0x021C */ u8 field_0x021c; + /* 0x021D */ u8 field_0x021d; + /* 0x021E */ u8 field_0x021e[0x0238 - 0x021E]; + /* 0x0238 */ CPaneMgrAlpha* field_0x0238; + /* 0x023C */ CPaneMgrAlpha* field_0x023c; + /* 0x0240 */ CPaneMgrAlpha* field_0x0240; + /* 0x0244 */ CPaneMgrAlpha* field_0x0244; + /* 0x0248 */ u8 field_0x0248[0x024A - 0x0248]; + /* 0x024A */ bool field_0x024a; + /* 0x024B */ u8 field_0x024B[0x0250 - 0x024B]; + /* 0x0250 */ char* field_0x0250; + /* 0x0254 */ STControl* mStick; + /* 0x0258 */ u8 mDataNew[3]; + /* 0x025B */ u8 field_0x025b; + /* 0x025C */ u8 field_0x025c[0x0264 - 0x025C]; + /* 0x0264 */ u8 field_0x0264; + /* 0x0265 */ u8 mSelectNum; + /* 0x0266 */ u8 field_0x0266; + /* 0x0267 */ u8 field_0x0267; + /* 0x0268 */ u8 field_0x0268[0x026A - 0x0268]; + /* 0x026A */ u8 field_0x026a; + /* 0x026B */ u8 field_0x026b[0x026e - 0x026b]; + /* 0x026E */ u8 field_0x026e; + /* 0x026F */ u8 field_0x026f; + /* 0x0270 */ bool mSelectEnd; + /* 0x0271 */ u8 field_0x0271[0x0283 - 0x0271]; + /* 0x0283 */ bool field_0x0283; + /* 0x0284 */ u8 field_0x0284[0x029C - 0x0284]; + /* 0x029C */ J2DAnmBase* field_0x029c; + /* 0x02A0 */ J2DAnmBase* field_0x02a0; + /* 0x02A4 */ u8 field_0x02A4[0x02E8 - 0x02A4]; + /* 0x02E8 */ J2DAnmBase* field_0x02e8; + /* 0x02EC */ u8 field_0x02EC[0x02F0 - 0x02EC]; + /* 0x02F0 */ J2DAnmBase* field_0x02f0; + /* 0x02F4 */ u8 field_0x02F4[0x02F8 - 0x02F4]; + /* 0x02F8 */ J2DAnmBase* field_0x02f8; + /* 0x02FC */ u8 field_0x02FC[0x0300 - 0x02FC]; + /* 0x0300 */ J2DAnmBase* field_0x0300; + /* 0x0304 */ u8 field_0x0304[0x0308 - 0x0304]; + /* 0x0308 */ J2DAnmBase* field_0x0308; + /* 0x030C */ u8 field_0x030C[0x0310 - 0x030C]; + /* 0x0310 */ J2DAnmBase* field_0x0310; + /* 0x0314 */ J2DAnmBase* field_0x0314; + /* 0x0318 */ J2DAnmBase* field_0x0318; + /* 0x031C */ J2DAnmBase* field_0x031c; + /* 0x0320 */ J2DAnmBase* field_0x0320; + /* 0x0324 */ u8 field_0x0324[0x0328 - 0x0324]; + /* 0x0328 */ J2DAnmTransform* field_0x0328; // actually J2DAnmVtxColor? + /* 0x032C */ J2DAnmTransform* field_0x032c; + /* 0x0330 */ J2DAnmBase* field_0x0330; + /* 0x0334 */ u8 field_0x0334[0x0338 - 0x0334]; + /* 0x0338 */ J2DAnmBase* field_0x0338; + /* 0x033C */ u8 field_0x033c[4]; + /* 0x0340 */ CPaneMgrAlpha* field_0x0340; + /* 0x0344 */ u8 field_0x0344[8]; + /* 0x034C */ s32 field_0x034c; + /* 0x0350 */ u8 field_0x0350[8]; + /* 0x0358 */ int field_0x0358; + /* 0x035C */ int field_0x035c; + /* 0x0360 */ bool field_0x0360; + /* 0x0361 */ u8 field_0x0361[3]; + /* 0x0364 */ CPaneMgrAlpha* mpPaneAlpha1; + /* 0x0368 */ u8 field_0x0368[8]; + /* 0x0370 */ CPaneMgrAlpha* mpPaneAlpha2; + /* 0x0374 */ u8 field_0x0374[8]; + /* 0x037C */ CPaneMgrAlpha* mpPaneAlpha3; + /* 0x0380 */ u8 field_0x0380[8]; + /* 0x0388 */ u8 field_0x0388; + /* 0x0389 */ u8 field_0x0389; + /* 0x038A */ u8 field_0x038a; + /* 0x038B */ u8 field_0x038b; + /* 0x038C */ u8 field_0x038c; + /* 0x038D */ u8 field_0x038d; + /* 0x038E */ u8 field_0x038e; + /* 0x038F */ u8 field_0x038f; + /* 0x0390 */ u8 field_0x0390[4]; + /* 0x0394 */ CPaneMgr* mpPaneMgr2; + /* 0x0398 */ u8 field_0x0398[0x03A0 - 0x0398]; + /* 0x03A0 */ J2DAnmBase* field_0x03a0; + /* 0x03A4 */ u8 field_0x03A4[0x03A8 - 0x03A4]; + /* 0x03A8 */ CPaneMgr* field_0x03a8; + /* 0x03AC */ s16 field_0x03ac; + /* 0x03AE */ u8 field_0x03AE[0x03B0 - 0x03AE]; + /* 0x03B0 */ u8 mUseType; + /* 0x03B1 */ u8 field_0x03b1[7]; + /* 0x03B8 */ char mpMemCard; + /* 0x03B9 */ u8 field_0x03b9[3]; + /* 0x03BC */ u8 field_0x03bc[0x2374 - 0x3BC]; + /* 0x2374 */ bool mFadeFlag; + /* 0x2375 */ bool mHasDrawn; + /* 0x2376 */ u8 field_0x2376[0x2378 - 0x2376]; + /* 0x2378 */ J2DPicture* field_0x2378; +}; +STATIC_ASSERT(sizeof(dFile_select_c) == 0x237C); #endif /* D_FILE_D_FILE_SELECT_H */ diff --git a/include/d/save/d_save.h b/include/d/save/d_save.h index b008503a7a..532c728910 100644 --- a/include/d/save/d_save.h +++ b/include/d/save/d_save.h @@ -60,266 +60,274 @@ enum ItemSlots { }; enum ItemTable { - /* 0x00 */ HEART, - /* 0x01 */ GREEN_RUPEE, - /* 0x02 */ BLUE_RUPEE, - /* 0x03 */ YELLOW_RUPEE, - /* 0x04 */ RED_RUPEE, - /* 0x05 */ PURPLE_RUPEE, - /* 0x06 */ ORANGE_RUPEE, - /* 0x07 */ SILVER_RUPEE, - /* 0x08 */ S_MAGIC, - /* 0x09 */ L_MAGIC, - /* 0x0A */ BOMB_5, - /* 0x0B */ BOMB_10, - /* 0x0C */ BOMB_20, - /* 0x0D */ BOMB_30, - /* 0x0E */ ARROW_10, - /* 0x0F */ ARROW_20, - /* 0x10 */ ARROW_30, - /* 0x11 */ ARROW_1, - /* 0x12 */ PACHINKO_SHOT, - /* 0x13 */ noentry1, - /* 0x14 */ noentry2, - /* 0x15 */ noentry3, - /* 0x16 */ WATER_BOMB_5, - /* 0x17 */ WATER_BOMB_10, - /* 0x18 */ WATER_BOMB_20, - /* 0x19 */ WATER_BOMB_30, - /* 0x1A */ BOMB_INSECT_5, - /* 0x1B */ BOMB_INSECT_10, - /* 0x1C */ BOMB_INSECT_20, - /* 0x1D */ BOMB_INSECT_30, - /* 0x1E */ RECOVERY_FAILY, - /* 0x1F */ TRIPLE_HEART, - /* 0x20 */ SMALL_KEY, - /* 0x21 */ KAKERA_HEART, - /* 0x22 */ UTAWA_HEART, - /* 0x23 */ MAP, - /* 0x24 */ COMPUS, - /* 0x25 */ DUNGEON_EXIT, - /* 0x26 */ BOSS_KEY, - /* 0x27 */ DUNGEON_BACK, - /* 0x28 */ SWORD, - /* 0x29 */ MASTER_SWORD, - /* 0x2A */ WOOD_SHIELD, - /* 0x2B */ SHIELD, - /* 0x2C */ HYLIA_SHIELD, - /* 0x2D */ TKS_LETTER, - /* 0x2E */ WEAR_CASUAL, - /* 0x2F */ WEAR_KOKIRI, - /* 0x30 */ ARMOR, - /* 0x31 */ WEAR_ZORA, - /* 0x32 */ MAGIC_LV1, - /* 0x33 */ DUNGEON_EXIT_2, - /* 0x34 */ WALLET_LV1, - /* 0x35 */ WALLET_LV2, - /* 0x36 */ WALLET_LV3, - /* 0x37 */ noentry4, - /* 0x38 */ noentry5, - /* 0x39 */ noentry6, - /* 0x3A */ noentry7, - /* 0x3B */ noentry8, - /* 0x3C */ noentry9, - /* 0x3D */ ZORAS_JEWEL, - /* 0x3E */ HAWK_EYE, - /* 0x3F */ WOOD_STICK, - /* 0x40 */ BOOMERANG, - /* 0x41 */ SPINNER, - /* 0x42 */ IRONBALL, - /* 0x43 */ BOW, - /* 0x44 */ HOOKSHOT, - /* 0x45 */ HVY_BOOTS, - /* 0x46 */ COPY_ROD, - /* 0x47 */ W_HOOKSHOT, - /* 0x48 */ KANTERA, - /* 0x49 */ LIGHT_SWORD, - /* 0x4A */ FISHING_ROD_1, - /* 0x4B */ PACHINKO, - /* 0x4C */ COPY_ROD_2, - /* 0x4D */ noentry10, - /* 0x4E */ noentry11, - /* 0x4F */ BOMB_BAG_LV2, - /* 0x50 */ BOMB_BAG_LV1, - /* 0x51 */ BOMB_IN_BAG, - /* 0x52 */ noentry12, - /* 0x53 */ LIGHT_ARROW, - /* 0x54 */ ARROW_LV1, - /* 0x55 */ ARROW_LV2, - /* 0x56 */ ARROW_LV3, - /* 0x57 */ noentry13, - /* 0x58 */ LURE_ROD, - /* 0x59 */ BOMB_ARROW, - /* 0x5A */ HAWK_ARROW, - /* 0x5B */ BEE_ROD, - /* 0x5C */ JEWEL_ROD, - /* 0x5D */ WORM_ROD, - /* 0x5E */ JEWEL_BEE_ROD, - /* 0x5F */ JEWEL_WORM_ROD, - /* 0x60 */ EMPTY_BOTTLE, - /* 0x61 */ RED_BOTTLE, - /* 0x62 */ GREEN_BOTTLE, - /* 0x63 */ BLUE_BOTTLE, - /* 0x64 */ MILK_BOTTLE, - /* 0x65 */ HALF_MILK_BOTTLE, - /* 0x66 */ OIL_BOTTLE, - /* 0x67 */ WATER_BOTTLE, - /* 0x68 */ OIL_BOTTLE_2, - /* 0x69 */ RED_BOTTLE_2, - /* 0x6A */ UGLY_SOUP, - /* 0x6B */ HOT_SPRING, - /* 0x6C */ FAIRY, - /* 0x6D */ HOT_SPRING_2, - /* 0x6E */ OIL2, - /* 0x6F */ OIL, - /* 0x70 */ NORMAL_BOMB, - /* 0x71 */ WATER_BOMB, - /* 0x72 */ POKE_BOMB, - /* 0x73 */ FAIRY_DROP, - /* 0x74 */ WORM, - /* 0x75 */ DROP_BOTTLE, - /* 0x76 */ BEE_CHILD, - /* 0x77 */ CHUCHU_RARE, - /* 0x78 */ CHUCHU_RED, - /* 0x79 */ CHUCHU_BLUE, - /* 0x7A */ CHUCHU_GREEN, - /* 0x7B */ CHUCHU_YELLOW, - /* 0x7C */ CHUCHU_PURPLE, - /* 0x7D */ LV1_SOUP, - /* 0x7E */ LV2_SOUP, - /* 0x7F */ LV3_SOUP, - /* 0x80 */ LETTER, - /* 0x81 */ BILL, - /* 0x82 */ WOOD_STATUE, - /* 0x83 */ IRIAS_PENDANT, - /* 0x84 */ HORSE_FLUTE, - /* 0x85 */ noentry14, - /* 0x86 */ noentry15, - /* 0x87 */ noentry16, - /* 0x88 */ noentry17, - /* 0x89 */ noentry18, - /* 0x8A */ noentry19, - /* 0x8B */ noentry20, - /* 0x8C */ noentry21, - /* 0x8D */ noentry22, - /* 0x8E */ noentry23, - /* 0x8F */ noentry24, - /* 0x90 */ RAFRELS_MEMO, - /* 0x91 */ ASHS_SCRIBBLING, - /* 0x92 */ noentry25, - /* 0x93 */ noentry26, - /* 0x94 */ noentry27, - /* 0x95 */ noentry28, - /* 0x96 */ noentry29, - /* 0x97 */ noentry30, - /* 0x98 */ noentry31, - /* 0x99 */ noentry32, - /* 0x9A */ noentry33, - /* 0x9B */ noentry34, - /* 0x9C */ CHUCHU_YELLOW2, - /* 0x9D */ OIL_BOTTLE3, - /* 0x9E */ SHOP_BEE_CHILD, - /* 0x9F */ CHUCHU_BLACK, - /* 0xA0 */ LIGHT_DROP, - /* 0xA1 */ DROP_CONTAINER, - /* 0xA2 */ DROP_CONTAINER02, - /* 0xA3 */ DROP_CONTAINER03, - /* 0xA4 */ FILLED_CONTAINER, - /* 0xA5 */ MIRROR_PIECE_2, - /* 0xA6 */ MIRROR_PIECE_3, - /* 0xA7 */ MIRROR_PIECE_4, - /* 0xA8 */ noentry35, - /* 0xA9 */ noentry36, - /* 0xAA */ noentry37, - /* 0xAB */ noentry38, - /* 0xAC */ noentry39, - /* 0xAD */ noentry40, - /* 0xAE */ noentry41, - /* 0xAF */ noentry42, - /* 0xB0 */ SMELL_YELIA_POUCH, - /* 0xB1 */ SMELL_PUMPKIN, - /* 0xB2 */ SMELL_POH, - /* 0xB3 */ SMELL_FISH, - /* 0xB4 */ SMELL_CHILDREN, - /* 0xB5 */ SMELL_MEDICINE, - /* 0xB6 */ noentry43, - /* 0xB7 */ noentry44, - /* 0xB8 */ noentry45, - /* 0xB9 */ noentry46, - /* 0xBA */ noentry47, - /* 0xBB */ noentry48, - /* 0xBC */ noentry49, - /* 0xBD */ noentry50, - /* 0xBE */ noentry51, - /* 0xBF */ noentry52, - /* 0xC0 */ M_BEETLE, - /* 0xC1 */ F_BEETLE, - /* 0xC2 */ M_BUTTERFLY, - /* 0xC3 */ F_BUTTERFLY, - /* 0xC4 */ M_STAG_BEETLE, - /* 0xC5 */ F_STAG_BEETLE, - /* 0xC6 */ M_GRASSHOPPER, - /* 0xC7 */ F_GRASSHOPPER, - /* 0xC8 */ M_NANAFUSHI, - /* 0xC9 */ F_NANAFUSHI, - /* 0xCA */ M_DANGOMUSHI, - /* 0xCB */ F_DANGOMUSHI, - /* 0xCC */ M_MANTIS, - /* 0xCD */ F_MANTIS, - /* 0xCE */ M_LADYBUG, - /* 0xCF */ F_LADYBUG, - /* 0xD0 */ M_SNAIL, - /* 0xD1 */ F_SNAIL, - /* 0xD2 */ M_DRAGONFLY, - /* 0xD3 */ F_DRAGONFLY, - /* 0xD4 */ M_ANT, - /* 0xD5 */ F_ANT, - /* 0xD6 */ M_MAYFLY, - /* 0xD7 */ F_MAYFLY, - /* 0xD8 */ noentry53, - /* 0xD9 */ noentry54, - /* 0xDA */ noentry55, - /* 0xDB */ noentry56, - /* 0xDC */ noentry57, - /* 0xDD */ noentry58, - /* 0xDE */ noentry59, - /* 0xDF */ noentry60, - /* 0xE0 */ POU_SPIRIT, - /* 0xE1 */ noentry61, - /* 0xE2 */ noentry62, - /* 0xE3 */ noentry63, - /* 0xE4 */ noentry64, - /* 0xE5 */ noentry65, - /* 0xE6 */ noentry66, - /* 0xE7 */ noentry67, - /* 0xE8 */ noentry68, - /* 0xE9 */ ANCIENT_DOCUMENT, - /* 0xEA */ AIR_LETTER, - /* 0xEB */ ANCIENT_DOCUMENT2, - /* 0xEC */ LV7_DUNGEON_EXIT, - /* 0xED */ LINKS_SAVINGS, - /* 0xEE */ SMALL_KEY2, - /* 0xEF */ POU_FIRE1, - /* 0xF0 */ POU_FIRE2, - /* 0xF1 */ POU_FIRE3, - /* 0xF2 */ POU_FIRE4, - /* 0xF3 */ BOSSRIDER_KEY, - /* 0xF4 */ TOMATO_PUREE, - /* 0xF5 */ TASTE, - /* 0xF6 */ LV5_BOSS_KEY, - /* 0xF7 */ SURFBOARD, - /* 0xF8 */ KANTERA2, - /* 0xF9 */ L2_KEY_PIECES1, - /* 0xFA */ L2_KEY_PIECES2, - /* 0xFB */ L2_KEY_PIECES3, - /* 0xFC */ KEY_OF_CARAVAN, - /* 0xFD */ LV2_BOSS_KEY, - /* 0xFE */ KEY_OF_FILONE, - /* 0xFF */ NO_ITEM -}; - -enum EquipItem { - /* 0x103 */ EQUIP_SWORD = 0x103, + /* 0x0000 */ HEART, + /* 0x0001 */ GREEN_RUPEE, + /* 0x0002 */ BLUE_RUPEE, + /* 0x0003 */ YELLOW_RUPEE, + /* 0x0004 */ RED_RUPEE, + /* 0x0005 */ PURPLE_RUPEE, + /* 0x0006 */ ORANGE_RUPEE, + /* 0x0007 */ SILVER_RUPEE, + /* 0x0008 */ S_MAGIC, + /* 0x0009 */ L_MAGIC, + /* 0x000A */ BOMB_5, + /* 0x000B */ BOMB_10, + /* 0x000C */ BOMB_20, + /* 0x000D */ BOMB_30, + /* 0x000E */ ARROW_10, + /* 0x000F */ ARROW_20, + /* 0x0010 */ ARROW_30, + /* 0x0011 */ ARROW_1, + /* 0x0012 */ PACHINKO_SHOT, + /* 0x0013 */ noentry1, + /* 0x0014 */ noentry2, + /* 0x0015 */ noentry3, + /* 0x0016 */ WATER_BOMB_5, + /* 0x0017 */ WATER_BOMB_10, + /* 0x0018 */ WATER_BOMB_20, + /* 0x0019 */ WATER_BOMB_30, + /* 0x001A */ BOMB_INSECT_5, + /* 0x001B */ BOMB_INSECT_10, + /* 0x001C */ BOMB_INSECT_20, + /* 0x001D */ BOMB_INSECT_30, + /* 0x001E */ RECOVERY_FAILY, + /* 0x001F */ TRIPLE_HEART, + /* 0x0020 */ SMALL_KEY, + /* 0x0021 */ KAKERA_HEART, + /* 0x0022 */ UTAWA_HEART, + /* 0x0023 */ MAP, + /* 0x0024 */ COMPUS, + /* 0x0025 */ DUNGEON_EXIT, + /* 0x0026 */ BOSS_KEY, + /* 0x0027 */ DUNGEON_BACK, + /* 0x0028 */ SWORD, + /* 0x0029 */ MASTER_SWORD, + /* 0x002A */ WOOD_SHIELD, + /* 0x002B */ SHIELD, + /* 0x002C */ HYLIA_SHIELD, + /* 0x002D */ TKS_LETTER, + /* 0x002E */ WEAR_CASUAL, + /* 0x002F */ WEAR_KOKIRI, + /* 0x0030 */ ARMOR, + /* 0x0031 */ WEAR_ZORA, + /* 0x0032 */ MAGIC_LV1, + /* 0x0033 */ DUNGEON_EXIT_2, + /* 0x0034 */ WALLET_LV1, + /* 0x0035 */ WALLET_LV2, + /* 0x0036 */ WALLET_LV3, + /* 0x0037 */ noentry4, + /* 0x0038 */ noentry5, + /* 0x0039 */ noentry6, + /* 0x003A */ noentry7, + /* 0x003B */ noentry8, + /* 0x003C */ noentry9, + /* 0x003D */ ZORAS_JEWEL, + /* 0x003E */ HAWK_EYE, + /* 0x003F */ WOOD_STICK, + /* 0x0040 */ BOOMERANG, + /* 0x0041 */ SPINNER, + /* 0x0042 */ IRONBALL, + /* 0x0043 */ BOW, + /* 0x0044 */ HOOKSHOT, + /* 0x0045 */ HVY_BOOTS, + /* 0x0046 */ COPY_ROD, + /* 0x0047 */ W_HOOKSHOT, + /* 0x0048 */ KANTERA, + /* 0x0049 */ LIGHT_SWORD, + /* 0x004A */ FISHING_ROD_1, + /* 0x004B */ PACHINKO, + /* 0x004C */ COPY_ROD_2, + /* 0x004D */ noentry10, + /* 0x004E */ noentry11, + /* 0x004F */ BOMB_BAG_LV2, + /* 0x0050 */ BOMB_BAG_LV1, + /* 0x0051 */ BOMB_IN_BAG, + /* 0x0052 */ noentry12, + /* 0x0053 */ LIGHT_ARROW, + /* 0x0054 */ ARROW_LV1, + /* 0x0055 */ ARROW_LV2, + /* 0x0056 */ ARROW_LV3, + /* 0x0057 */ noentry13, + /* 0x0058 */ LURE_ROD, + /* 0x0059 */ BOMB_ARROW, + /* 0x005A */ HAWK_ARROW, + /* 0x005B */ BEE_ROD, + /* 0x005C */ JEWEL_ROD, + /* 0x005D */ WORM_ROD, + /* 0x005E */ JEWEL_BEE_ROD, + /* 0x005F */ JEWEL_WORM_ROD, + /* 0x0060 */ EMPTY_BOTTLE, + /* 0x0061 */ RED_BOTTLE, + /* 0x0062 */ GREEN_BOTTLE, + /* 0x0063 */ BLUE_BOTTLE, + /* 0x0064 */ MILK_BOTTLE, + /* 0x0065 */ HALF_MILK_BOTTLE, + /* 0x0066 */ OIL_BOTTLE, + /* 0x0067 */ WATER_BOTTLE, + /* 0x0068 */ OIL_BOTTLE_2, + /* 0x0069 */ RED_BOTTLE_2, + /* 0x006A */ UGLY_SOUP, + /* 0x006B */ HOT_SPRING, + /* 0x006C */ FAIRY, + /* 0x006D */ HOT_SPRING_2, + /* 0x006E */ OIL2, + /* 0x006F */ OIL, + /* 0x0070 */ NORMAL_BOMB, + /* 0x0071 */ WATER_BOMB, + /* 0x0072 */ POKE_BOMB, + /* 0x0073 */ FAIRY_DROP, + /* 0x0074 */ WORM, + /* 0x0075 */ DROP_BOTTLE, + /* 0x0076 */ BEE_CHILD, + /* 0x0077 */ CHUCHU_RARE, + /* 0x0078 */ CHUCHU_RED, + /* 0x0079 */ CHUCHU_BLUE, + /* 0x007A */ CHUCHU_GREEN, + /* 0x007B */ CHUCHU_YELLOW, + /* 0x007C */ CHUCHU_PURPLE, + /* 0x007D */ LV1_SOUP, + /* 0x007E */ LV2_SOUP, + /* 0x007F */ LV3_SOUP, + /* 0x0080 */ LETTER, + /* 0x0081 */ BILL, + /* 0x0082 */ WOOD_STATUE, + /* 0x0083 */ IRIAS_PENDANT, + /* 0x0084 */ HORSE_FLUTE, + /* 0x0085 */ noentry14, + /* 0x0086 */ noentry15, + /* 0x0087 */ noentry16, + /* 0x0088 */ noentry17, + /* 0x0089 */ noentry18, + /* 0x008A */ noentry19, + /* 0x008B */ noentry20, + /* 0x008C */ noentry21, + /* 0x008D */ noentry22, + /* 0x008E */ noentry23, + /* 0x008F */ noentry24, + /* 0x0090 */ RAFRELS_MEMO, + /* 0x0091 */ ASHS_SCRIBBLING, + /* 0x0092 */ noentry25, + /* 0x0093 */ noentry26, + /* 0x0094 */ noentry27, + /* 0x0095 */ noentry28, + /* 0x0096 */ noentry29, + /* 0x0097 */ noentry30, + /* 0x0098 */ noentry31, + /* 0x0099 */ noentry32, + /* 0x009A */ noentry33, + /* 0x009B */ noentry34, + /* 0x009C */ CHUCHU_YELLOW2, + /* 0x009D */ OIL_BOTTLE3, + /* 0x009E */ SHOP_BEE_CHILD, + /* 0x009F */ CHUCHU_BLACK, + /* 0x00A0 */ LIGHT_DROP, + /* 0x00A1 */ DROP_CONTAINER, + /* 0x00A2 */ DROP_CONTAINER02, + /* 0x00A3 */ DROP_CONTAINER03, + /* 0x00A4 */ FILLED_CONTAINER, + /* 0x00A5 */ MIRROR_PIECE_2, + /* 0x00A6 */ MIRROR_PIECE_3, + /* 0x00A7 */ MIRROR_PIECE_4, + /* 0x00A8 */ noentry35, + /* 0x00A9 */ noentry36, + /* 0x00AA */ noentry37, + /* 0x00AB */ noentry38, + /* 0x00AC */ noentry39, + /* 0x00AD */ noentry40, + /* 0x00AE */ noentry41, + /* 0x00AF */ noentry42, + /* 0x00B0 */ SMELL_YELIA_POUCH, + /* 0x00B1 */ SMELL_PUMPKIN, + /* 0x00B2 */ SMELL_POH, + /* 0x00B3 */ SMELL_FISH, + /* 0x00B4 */ SMELL_CHILDREN, + /* 0x00B5 */ SMELL_MEDICINE, + /* 0x00B6 */ noentry43, + /* 0x00B7 */ noentry44, + /* 0x00B8 */ noentry45, + /* 0x00B9 */ noentry46, + /* 0x00BA */ noentry47, + /* 0x00BB */ noentry48, + /* 0x00BC */ noentry49, + /* 0x00BD */ noentry50, + /* 0x00BE */ noentry51, + /* 0x00BF */ noentry52, + /* 0x00C0 */ M_BEETLE, + /* 0x00C1 */ F_BEETLE, + /* 0x00C2 */ M_BUTTERFLY, + /* 0x00C3 */ F_BUTTERFLY, + /* 0x00C4 */ M_STAG_BEETLE, + /* 0x00C5 */ F_STAG_BEETLE, + /* 0x00C6 */ M_GRASSHOPPER, + /* 0x00C7 */ F_GRASSHOPPER, + /* 0x00C8 */ M_NANAFUSHI, + /* 0x00C9 */ F_NANAFUSHI, + /* 0x00CA */ M_DANGOMUSHI, + /* 0x00CB */ F_DANGOMUSHI, + /* 0x00CC */ M_MANTIS, + /* 0x00CD */ F_MANTIS, + /* 0x00CE */ M_LADYBUG, + /* 0x00CF */ F_LADYBUG, + /* 0x00D0 */ M_SNAIL, + /* 0x00D1 */ F_SNAIL, + /* 0x00D2 */ M_DRAGONFLY, + /* 0x00D3 */ F_DRAGONFLY, + /* 0x00D4 */ M_ANT, + /* 0x00D5 */ F_ANT, + /* 0x00D6 */ M_MAYFLY, + /* 0x00D7 */ F_MAYFLY, + /* 0x00D8 */ noentry53, + /* 0x00D9 */ noentry54, + /* 0x00DA */ noentry55, + /* 0x00DB */ noentry56, + /* 0x00DC */ noentry57, + /* 0x00DD */ noentry58, + /* 0x00DE */ noentry59, + /* 0x00DF */ noentry60, + /* 0x00E0 */ POU_SPIRIT, + /* 0x00E1 */ noentry61, + /* 0x00E2 */ noentry62, + /* 0x00E3 */ noentry63, + /* 0x00E4 */ noentry64, + /* 0x00E5 */ noentry65, + /* 0x00E6 */ noentry66, + /* 0x00E7 */ noentry67, + /* 0x00E8 */ noentry68, + /* 0x00E9 */ ANCIENT_DOCUMENT, + /* 0x00EA */ AIR_LETTER, + /* 0x00EB */ ANCIENT_DOCUMENT2, + /* 0x00EC */ LV7_DUNGEON_EXIT, + /* 0x00ED */ LINKS_SAVINGS, + /* 0x00EE */ SMALL_KEY2, + /* 0x00EF */ POU_FIRE1, + /* 0x00F0 */ POU_FIRE2, + /* 0x00F1 */ POU_FIRE3, + /* 0x00F2 */ POU_FIRE4, + /* 0x00F3 */ BOSSRIDER_KEY, + /* 0x00F4 */ TOMATO_PUREE, + /* 0x00F5 */ TASTE, + /* 0x00F6 */ LV5_BOSS_KEY, + /* 0x00F7 */ SURFBOARD, + /* 0x00F8 */ KANTERA2, + /* 0x00F9 */ L2_KEY_PIECES1, + /* 0x00FA */ L2_KEY_PIECES2, + /* 0x00FB */ L2_KEY_PIECES3, + /* 0x00FC */ KEY_OF_CARAVAN, + /* 0x00FD */ LV2_BOSS_KEY, + /* 0x00FE */ KEY_OF_FILONE, + /* 0x00FF */ NO_ITEM, + /* 0x0100 */ noentry69, + /* 0x0101 */ noentry70, + /* 0x0102 */ noentry71, + /* 0x0103 */ EQUIP_SWORD, + /* 0x0104 */ noentry72, + /* 0x0105 */ noentry73, + /* 0x0106 */ noentry74, + /* 0x0107 */ noentry75, + /* 0x0108 */ noentry76, + /* 0x0109 */ noentry77, + /* 0x010A */ noentry78, + /* 0x010B */ noentry79, }; enum CollectItem { diff --git a/include/f_op/f_op_actor.h b/include/f_op/f_op_actor.h index dbe347e096..947b66da7e 100644 --- a/include/f_op/f_op_actor.h +++ b/include/f_op/f_op_actor.h @@ -107,7 +107,7 @@ public: /* 0x497 */ u8 mCullType; /* 0x498 */ u8 mDemoActorId; /* 0x499 */ s8 mSubtype; - /* 0x49A */ u8 field_0x49a; + /* 0x49A */ u8 mCarryType; /* 0x49C */ u32 mStatus; /* 0x4A0 */ u32 mCondition; /* 0x4A4 */ u32 mParentPcId; diff --git a/include/f_op/f_op_actor_mng.h b/include/f_op/f_op_actor_mng.h index ccc70027ab..6439a94ee6 100644 --- a/include/f_op/f_op_actor_mng.h +++ b/include/f_op/f_op_actor_mng.h @@ -80,9 +80,14 @@ class fopAcM_gc_c { public: static dBgS_GndChk* getGroundCheck() { return (dBgS_GndChk*)&mGndCheck; } static bool gndCheck(const cXyz*); - static u8 mGndCheck[84]; + static u8 mGndCheck[84]; // this is dBgS_GndChk but all static data in the TU probably needs to be setup first (otherwise causes a reordering problem with the __sinit function) static f32 mGroundY; + // strange issue where f_op_actor_mng.h can't find the dComIfG_Bgsp() inline even when you include the header + // static bool getTriPla(cM3dGPla* pPlane) { + // return dComIfG_Bgsp().GetTriPla(mGndCheck,pPlane); + // } + static f32 getGroundY() { return mGroundY; } }; @@ -129,13 +134,15 @@ inline u32 fopAcM_checkCarryNow(fopAc_ac_c* pActor) { } enum fopAcM_CARRY { - fopAcM_CARRY_HEAVY = 2, - fopAcM_CARRY_SIDE = 4, - fopAcM_CARRY_TYPE_8 = 8, + /* 0x01 */ fopAcM_CARRY_TYPE_1 = 1, + /* 0x02 */ fopAcM_CARRY_HEAVY = 2, + /* 0x04 */ fopAcM_CARRY_SIDE = 4, + /* 0x08 */ fopAcM_CARRY_TYPE_8 = 8, + /* 0x10 */ fopAcM_CARRY_LIGHT = 16, // guess based on context }; inline u32 fopAcM_CheckCarryType(fopAc_ac_c* actor, fopAcM_CARRY type) { - return actor->field_0x49a & type; + return actor->mCarryType & type; } inline u32 fopAcM_checkHookCarryNow(fopAc_ac_c* pActor) { @@ -242,6 +249,10 @@ inline void fopAcM_SetGravity(fopAc_ac_c* actor, f32 gravity) { actor->mGravity = gravity; } +inline void fopAcM_SetMaxFallSpeed(fopAc_ac_c* actor, f32 speed) { + actor->mMaxFallSpeed = speed; +} + inline void fopAcM_SetMtx(fopAc_ac_c* actor, MtxP m) { actor->mCullMtx = m; } @@ -258,6 +269,10 @@ inline void fopAcM_SetStatus(fopAc_ac_c* actor, u32 status) { actor->mStatus = status; } +inline void fopAcM_SetModel(fopAc_ac_c* actor, J3DModel* model) { + actor->model = model; +} + inline fopAcM_prm_class* fopAcM_GetAppend(void* actor) { return (fopAcM_prm_class*)fpcM_GetAppend(actor); } @@ -293,6 +308,7 @@ inline dJntCol_c* fopAcM_GetJntCol(fopAc_ac_c* i_actor) { inline void dComIfGs_onSwitch(int i_no, int i_roomNo); inline void dComIfGs_offSwitch(int i_no, int i_roomNo); inline BOOL dComIfGs_isSwitch(int i_no, int i_roomNo); +inline void dComIfGs_offActor(int i_no, int i_roomNo); inline void i_fopAcM_onSwitch(const fopAc_ac_c* pActor, int sw) { return dComIfGs_onSwitch(sw, fopAcM_GetHomeRoomNo(pActor)); @@ -582,6 +598,14 @@ inline void fopAcM_seStartCurrentLevel(const fopAc_ac_c* actor, u32 sfxID, u32 p i_mDoAud_seStartLevel(sfxID, &actor->current.pos, param_2, dComIfGp_getReverb(roomNo)); } +inline void fopAcM_offActor(fopAc_ac_c* pActor, u32 flag) { + dComIfGs_offActor(flag,fopAcM_GetHomeRoomNo(pActor)); +} + +inline void fopAcM_OnCarryType(fopAc_ac_c* pActor, fopAcM_CARRY param_2) { + pActor->mCarryType |= param_2; +} + extern "C" { void fopAcM_initManager__Fv(void); void fopAcM_CreateAppend__Fv(void); diff --git a/include/m_Do/m_Do_machine_exception.h b/include/m_Do/m_Do_machine_exception.h index 1c98c7980e..6d81404a7c 100644 --- a/include/m_Do/m_Do_machine_exception.h +++ b/include/m_Do/m_Do_machine_exception.h @@ -2,6 +2,7 @@ #define M_DO_M_DO_MACHINE_EXCEPTION_H #include "dolphin/types.h" +#include "dolphin/gx/GX.h" struct JUTConsole; diff --git a/include/m_Do/m_Do_mtx.h b/include/m_Do/m_Do_mtx.h index ac0f4b29e9..2d66ab19ce 100644 --- a/include/m_Do/m_Do_mtx.h +++ b/include/m_Do/m_Do_mtx.h @@ -65,6 +65,14 @@ inline void mDoMtx_multVecZero(MtxP param_0, Vec* param_1) { param_1->z = param_0[2][3]; } +inline void mDoMtx_quatMultiply(const Quaternion* a, const Quaternion* b, Quaternion* ab) { + PSQUATMultiply(a,b,ab); +} + +inline void mDoMtx_quatSlerp(const Quaternion* a, const Quaternion* b, Quaternion* ab, f32 param_4) { + C_QUATSlerp(a,b,ab,param_4); +} + class mDoMtx_stack_c { public: /* 8000CCC8 */ static bool push(); diff --git a/include/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone.h b/include/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone.h index 92a18fb097..fa880eb032 100644 --- a/include/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone.h +++ b/include/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone.h @@ -2,5 +2,79 @@ #define D_A_OBJ_STONE_H #include "dolphin/types.h" +#include "d/com/d_com_inf_game.h" + +enum { + OBJ_STONE_TYPE_SMALL = 0, + OBJ_STONE_TYPE_BIG = 1 +}; + +class daObjStone_c : public fopAc_ac_c { +public: + u8 getType() { return fopAcM_GetParamBit(this,0,4); } + u8 getItemType() { return fopAcM_GetParamBit(this,4,2); } + u8 getItemNo() { return fopAcM_GetParamBit(this,8,8); } + u8 getItemBit() { return fopAcM_GetParamBit(this,16,8); } + + /* 80CE93C4 */ void initBaseMtx(); + /* 80CE9468 */ void setBaseMtx(); + /* 80CE9540 */ int Create(); + /* 80CE97C0 */ bool CreateHeap(); + /* 80CE9840 */ int create(); + /* 80CE9BA0 */ int execute(); + /* 80CE9CF8 */ void mode_proc_call(); + /* 80CEAF88 */ void init_modePutWait(); + /* 80CEAFD8 */ void modePutWait(); + /* 80CEAFE8 */ void init_modeWait(); + /* 80CEB01C */ void modeWait(); + /* 80CEB0B8 */ void init_modeDrop(); + /* 80CEB0F8 */ void modeDrop(); + /* 80CEB35C */ void init_modeCarry(); + /* 80CEB480 */ void modeCarry(); + /* 80CEB6E8 */ void init_modeWalk(); + /* 80CEB720 */ void modeWalk(); + /* 80CEBCDC */ void init_modePushWolfNonBreak(); + /* 80CEBE24 */ void init_modeYogan(); + /* 80CEBE84 */ void modeYogan(); + /* 80CEBF1C */ void init_modeBreak(); + /* 80CEC180 */ void modeBreak(); + /* 80CEC1AC */ void CrrPos(); + /* 80CEC264 */ void createItem(); + /* 80CEC33C */ void calcRotBaseMtx(s16*); + /* 80CEC5BC */ int checkRollAngle(); + /* 80CEC6D8 */ void set_carry_eff(); + /* 80CEC7DC */ void effect_delete(bool); + /* 80CEC888 */ int draw(); + /* 80CEC948 */ int _delete(); + + /* 0x0568 */ request_of_phase_process_class mPhase; + /* 0x0570 */ J3DModel* mpModel; + /* 0x0574 */ dBgS_ObjAcch mChkObj; + /* 0x074C */ dBgS_AcchCir mChkCircle; + /* 0x078C */ dCcD_Stts mStatus; + /* 0x07C8 */ dCcD_Sph mCollider; + /* 0x0900 */ csXyz mShapeAngle; + /* 0x0906 */ u8 mStoneType; // 0: small rock, 1: big rock + /* 0x0907 */ u8 field_0x0907; + /* 0x0908 */ u8 field_0x0908; + /* 0x090C */ u32 mMode; // maybe a better name for this + /* 0x0910 */ cXyz field_0x0910; + /* 0x091C */ u16 field_0x091c; + /* 0x091E */ u8 field_0x091E[0x0920 - 0x091E]; + /* 0x0920 */ Quaternion field_0x0920; + /* 0x0930 */ Quaternion field_0x0930; + /* 0x0940 */ f32 mInitialOffsetY; + /* 0x0944 */ f32 mLastPosY; + /* 0x0948 */ f32 mLastSpeedY; // maybe a better name for this + /* 0x094C */ u8 field_0x094c; + /* 0x094C */ u8 field_0x094d; + /* 0x094E */ bool mIsInWater; + /* 0x094F */ u8 field_0x094f; + /* 0x0950 */ u8 field_0x0950; + /* 0x0951 */ u8 field_0x0951[0x0960 - 0x0951]; + /* 0x0960 */ u32 field_0x0960; + /* 0x0964 */ JPABaseEmitter* field_0x0964[3]; + /* 0x0970 */ Z2SoundObjSimple mSound; +}; #endif /* D_A_OBJ_STONE_H */ diff --git a/include/rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark.h b/include/rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark.h index 57d2459a9f..a96de02ae2 100644 --- a/include/rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark.h +++ b/include/rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark.h @@ -2,5 +2,24 @@ #define D_A_OBJ_STONEMARK_H #include "dolphin/types.h" +#include "d/com/d_com_inf_game.h" + + +class daObjSMark_c : public fopAc_ac_c { +public: + /* 8059A018 */ void initBaseMtx(); + /* 8059A038 */ void setBaseMtx(); + /* 8059A080 */ int Create(); + /* 8059A168 */ int create(); + /* 8059A2CC */ int draw(); + /* 8059A33C */ int _delete(); + + /* 0x0568 */ request_of_phase_process_class mpPhase; + /* 0x0570 */ GXTexObj mTexObj; + /* 0x0590 */ dBgS_ObjAcch mObjAcch; + /* 0x0768 */ dBgS_AcchCir mAcchCir; + /* 0x07A8 */ dCcD_Stts mStts; + /* 0x07E4 */ Mtx mCullMtx; +}; #endif /* D_A_OBJ_STONEMARK_H */ diff --git a/libs/JSystem/J3DGraphAnimator/J3DModel.cpp b/libs/JSystem/J3DGraphAnimator/J3DModel.cpp index 52d2a992dd..37df3184ac 100644 --- a/libs/JSystem/J3DGraphAnimator/J3DModel.cpp +++ b/libs/JSystem/J3DGraphAnimator/J3DModel.cpp @@ -155,7 +155,7 @@ SECTION_DATA extern void* __vt__12J3DMtxBuffer[3] = { /* 80327184-80327300 321AC4 017C+00 0/0 3/3 0/0 .text * entryModelData__8J3DModelFP12J3DModelDataUlUl */ -s32 J3DModel::entryModelData(J3DModelData* p_modelData, u32 param_1, u32 param_2) { +s32 J3DModel::entryModelData(J3DModelData* p_modelData, u32 modelFlag, u32 mtxBufferFlag) { mModelData = p_modelData; mMtxBuffer = new J3DMtxBuffer(); @@ -163,37 +163,37 @@ s32 J3DModel::entryModelData(J3DModelData* p_modelData, u32 param_1, u32 param_2 return 4; } - switch (mMtxBuffer->create(p_modelData, param_2)) { + switch (mMtxBuffer->create(p_modelData, mtxBufferFlag)) { case 0: switch (createShapePacket(p_modelData)) { case 0: - switch (createMatPacket(p_modelData, param_1)) { + switch (createMatPacket(p_modelData, modelFlag)) { case 0: mVertexBuffer.setVertexData(&p_modelData->getVertexData()); prepareShapePackets(); - if (param_1 & 0x1) { - onFlag(0x1); + if (modelFlag & J3DMdlFlag_Unk00001) { + onFlag(J3DMdlFlag_Unk00001); } - if (param_1 & 0x2) { - onFlag(0x2); + if (modelFlag & J3DMdlFlag_Unk00002) { + onFlag(J3DMdlFlag_Unk00002); } - if (param_1 & 0x10) { - onFlag(0x10); + if (modelFlag & J3DMdlFlag_Unk00010) { + onFlag(J3DMdlFlag_Unk00010); } - if (param_1 & 0x20000) { - onFlag(0x20000); + if (modelFlag & J3DMdlFlag_Unk20000) { + onFlag(J3DMdlFlag_Unk20000); } - if (param_1 & 0x40000) { - onFlag(0x40000); + if (modelFlag & J3DMdlFlag_Unk40000) { + onFlag(J3DMdlFlag_Unk40000); } - if (param_1 & 0x80000) { - onFlag(0x80000); + if (modelFlag & J3DMdlFlag_Unk80000) { + onFlag(J3DMdlFlag_Unk80000); } - if (param_1 & J3DMdlFlag_SkinPosCpu) { + if (modelFlag & J3DMdlFlag_SkinPosCpu) { onFlag(J3DMdlFlag_SkinPosCpu); } - if (param_1 & J3DMdlFlag_SkinNrmCpu) { + if (modelFlag & J3DMdlFlag_SkinNrmCpu) { onFlag(J3DMdlFlag_SkinNrmCpu); } return 0; diff --git a/libs/JSystem/J3DGraphBase/J3DPacket.cpp b/libs/JSystem/J3DGraphBase/J3DPacket.cpp index 109074b753..85f799d080 100644 --- a/libs/JSystem/J3DGraphBase/J3DPacket.cpp +++ b/libs/JSystem/J3DGraphBase/J3DPacket.cpp @@ -326,7 +326,7 @@ J3DShapePacket::~J3DShapePacket() {} #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm u32 J3DShapePacket::calcDifferedBufferSize(u32 param_0) { +asm u32 J3DShapePacket::calcDifferedBufferSize(u32 flag) { nofralloc #include "asm/JSystem/J3DGraphBase/J3DPacket/calcDifferedBufferSize__14J3DShapePacketFUl.s" } diff --git a/libs/JSystem/JAudio2/JASResArcLoader.cpp b/libs/JSystem/JAudio2/JASResArcLoader.cpp index 1197c9f5b6..22ce0d1ca6 100644 --- a/libs/JSystem/JAudio2/JASResArcLoader.cpp +++ b/libs/JSystem/JAudio2/JASResArcLoader.cpp @@ -1,100 +1,70 @@ -// -// Generated By: dol2asm -// Translation Unit: JASResArcLoader -// +/** + * JASResArcLoader.cpp + * JAS - Resource Archive Loader + */ #include "JSystem/JAudio2/JASResArcLoader.h" -#include "dol2asm.h" -#include "dolphin/types.h" +#include "JSystem/JAudio2/JASDvdThread.h" -// -// Types: -// - -struct JKRArchive { - /* 802D5F40 */ void readResource(void*, u32, u16); - /* 802D6684 */ void findIdxResource(u32) const; - /* 802D6770 */ void findIdResource(u16) const; -}; - -struct JASTaskThread { - /* 8028FB5C */ void sendCmdMsg(void (*)(void*), void const*, u32); -}; - -struct JASResArcLoader { - /* 80290BD0 */ void getResSize(JKRArchive const*, u16); - /* 80290C04 */ void getResMaxSize(JKRArchive const*); - /* 80290C7C */ void loadResourceCallback(void*); - /* 80290D18 */ void loadResourceAsync(JKRArchive*, u16, u8*, u32, void (*)(u32, u32), u32); -}; - -// -// Forward References: -// - -extern "C" void getResSize__15JASResArcLoaderFPC10JKRArchiveUs(); -extern "C" void getResMaxSize__15JASResArcLoaderFPC10JKRArchive(); -extern "C" void loadResourceCallback__15JASResArcLoaderFPv(); -extern "C" void loadResourceAsync__15JASResArcLoaderFP10JKRArchiveUsPUcUlPFUlUl_vUl(); - -// -// External References: -// - -extern "C" void sendCmdMsg__13JASTaskThreadFPFPv_vPCvUl(); -extern "C" void getThreadPointer__6JASDvdFv(); -extern "C" void readResource__10JKRArchiveFPvUlUs(); -extern "C" void findIdxResource__10JKRArchiveCFUl(); -extern "C" void findIdResource__10JKRArchiveCFUs(); -extern "C" void OSSendMessage(); -extern "C" void _savegpr_28(); -extern "C" void _restgpr_28(); - -// -// Declarations: -// /* 80290BD0-80290C04 28B510 0034+00 0/0 2/2 0/0 .text * getResSize__15JASResArcLoaderFPC10JKRArchiveUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASResArcLoader::getResSize(JKRArchive const* param_0, u16 param_1) { - nofralloc -#include "asm/JSystem/JAudio2/JASResArcLoader/getResSize__15JASResArcLoaderFPC10JKRArchiveUs.s" +size_t JASResArcLoader::getResSize(JKRArchive const* i_archiveP, u16 i_resourceID) { + JKRArchive::SDIFileEntry* file = i_archiveP->findIdResource(i_resourceID); + + if (file == 0) { + return 0; + } + + return file->data_size; } -#pragma pop /* 80290C04-80290C7C 28B544 0078+00 0/0 1/1 0/0 .text * getResMaxSize__15JASResArcLoaderFPC10JKRArchive */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASResArcLoader::getResMaxSize(JKRArchive const* param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JASResArcLoader/getResMaxSize__15JASResArcLoaderFPC10JKRArchive.s" +size_t JASResArcLoader::getResMaxSize(JKRArchive const* i_archiveP) { + u32 maxSize, index; + u32 fileEntries = i_archiveP->countFile(); + + for (maxSize = 0, index = 0; index < fileEntries; index++) { + JKRArchive::SDIFileEntry* file = i_archiveP->findIdxResource(index); + if (file) { + if (maxSize < file->data_size) { + maxSize = file->data_size; + } + } + } + + return maxSize; } -#pragma pop /* 80290C7C-80290D18 28B5BC 009C+00 1/1 0/0 0/0 .text loadResourceCallback__15JASResArcLoaderFPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASResArcLoader::loadResourceCallback(void* param_0) { - nofralloc -#include "asm/JSystem/JAudio2/JASResArcLoader/loadResourceCallback__15JASResArcLoaderFPv.s" +static void JASResArcLoader::loadResourceCallback(void* args) { + CallbackArgs* castedArgs = static_cast(args); + u32 readResult = castedArgs->mArchive->readResource(castedArgs->mBuffer, castedArgs->mBufferSize, castedArgs->mID); + if (castedArgs->mCallback) { + castedArgs->mCallback(readResult, castedArgs->mCallbackArg); + } + + if (readResult == 0) { + if (castedArgs->mQueue) { + OSSendMessage(castedArgs->mQueue, (void*)RESARCMSG_Error, OS_MESSAGE_BLOCK); + } + } else { + if (castedArgs->mQueue) { + OSSendMessage(castedArgs->mQueue, (void*)RESARCMSG_Success, OS_MESSAGE_BLOCK); + } + } } -#pragma pop /* 80290D18-80290D74 28B658 005C+00 0/0 1/1 0/0 .text * loadResourceAsync__15JASResArcLoaderFP10JKRArchiveUsPUcUlPFUlUl_vUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JASResArcLoader::loadResourceAsync(JKRArchive* param_0, u16 param_1, u8* param_2, - u32 param_3, void (*param_4)(u32, u32), u32 param_5) { - nofralloc -#include "asm/JSystem/JAudio2/JASResArcLoader/loadResourceAsync__15JASResArcLoaderFP10JKRArchiveUsPUcUlPFUlUl_vUl.s" + +int JASResArcLoader::loadResourceAsync(JKRArchive* archive, u16 id, u8* buffer, u32 size, LoadCallback callback, u32 cbArg) +{ + CallbackArgs args(id, buffer, size, archive); + args.mCallback = callback; + args.mCallbackArg = cbArg; + + return JASDvd::getThreadPointer()->sendCmdMsg(&loadResourceCallback, (void*)&args, sizeof(CallbackArgs)); } -#pragma pop diff --git a/libs/dolphin/mtx/quat.c b/libs/dolphin/mtx/quat.c index 484aa625f2..309b0534f9 100644 --- a/libs/dolphin/mtx/quat.c +++ b/libs/dolphin/mtx/quat.c @@ -1,23 +1,41 @@ -// -// Generated By: dol2asm -// Translation Unit: quat -// +/** + * quat.c + * Dolphin - Matrix Quaternion Functions + */ #include "dolphin/mtx/quat.h" #include "MSL_C/math.h" #include "dol2asm.h" -// -// Declarations: -// - /* 80347418-80347474 341D58 005C+00 0/0 0/0 2/2 .text PSQUATMultiply */ #pragma push #pragma optimization_level 0 -#pragma optimizewithasm off -asm void PSQUATMultiply(const Quaternion* a, const Quaternion* b, Quaternion* ab) { +asm void PSQUATMultiply(register const Quaternion* a, register const Quaternion* b, register Quaternion* ab) { nofralloc -#include "asm/dolphin/mtx/quat/PSQUATMultiply.s" + + psq_l f0, 0(a), 0, 0 + psq_l f1, 8(a), 0, 0 + psq_l f2, 0(b), 0, 0 + ps_neg f5, f0 + psq_l f3, 8(b), 0, 0 + ps_neg f6, f1 + ps_merge01 f4, f5, f0 + ps_muls0 f7, f1, f2 + ps_muls0 f5, f5, f2 + ps_merge01 f1, f6, f1 + ps_muls1 f8, f4, f2 + ps_madds0 f7, f4, f3, f7 + ps_muls1 f2, f1, f2 + ps_madds0 f5, f1, f3, f5 + ps_madds1 f8, f6, f3, f8 + ps_merge10 f7, f7, f7 + ps_madds1 f2, f0, f3, f2 + ps_merge10 f5, f5, f5 + ps_add f7, f7, f2 + psq_st f7, 0(ab), 0, 0 + ps_sub f5, f5, f8 + psq_st f5, 8(ab), 0, 0 + blr } #pragma pop @@ -37,6 +55,26 @@ SECTION_SDATA2 static f32 lit_133 = 1.0f; SECTION_SDATA2 static f32 lit_135 = 0.5f; /* 80347474-80347500 341DB4 008C+00 0/0 1/1 0/0 .text C_QUATRotAxisRad */ +#ifdef NONMATCHING +// matches with literals +void C_QUATRotAxisRad(Quaternion* q, const Vec* axis, f32 rad) { + f32 tmp,tmp2,tmp3; + Vec dst; + + tmp = rad; + PSVECNormalize(axis,&dst); + + tmp2 = tmp * 0.5f; + tmp3 = sinf(tmp* 0.5f); + tmp = tmp3; + tmp3 = cosf(tmp2); + + q->x = tmp * dst.x; + q->y = tmp * dst.y; + q->z = tmp * dst.z; + q->w = tmp3; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -45,12 +83,44 @@ asm void C_QUATRotAxisRad(Quaternion* q, const Vec* axis, f32 rad) { #include "asm/dolphin/mtx/quat/C_QUATRotAxisRad.s" } #pragma pop +#endif /* ############################################################################################## */ /* 8045655C-80456560 004B5C 0004+00 1/1 0/0 0/0 .sdata2 @261 */ SECTION_SDATA2 static f32 lit_261 = 0.9999899864196777f; /* 80347500-80347674 341E40 0174+00 0/0 0/0 2/2 .text C_QUATSlerp */ +#ifdef NONMATCHING +// matches with literals +void C_QUATSlerp(const Quaternion* p, const Quaternion* q, Quaternion* r, f32 t) { + f32 ratioA, ratioB; + + f32 value = 1.0f; + f32 cosHalfTheta = p->x*q->x + p->y*q->y + p->z*q->z + p->w*q->w; + + if (cosHalfTheta < 0.0f) { + cosHalfTheta = -cosHalfTheta; + value = -value; + } + + if (cosHalfTheta <= 0.9999899864196777f) { + f32 halfTheta = acosf(cosHalfTheta); + f32 sinHalfTheta = sinf(halfTheta); + + ratioA = sinf((1.0f - t) * halfTheta) / sinHalfTheta; + ratioB = sinf(t * halfTheta) / sinHalfTheta; + value *= ratioB; + } else { + ratioA = 1.0f - t; + value *= t; + } + + r->x = (ratioA * p->x) + (value * q->x); + r->y = (ratioA * p->y) + (value * q->y); + r->z = (ratioA * p->z) + (value * q->z); + r->w = (ratioA * p->w) + (value * q->w); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -59,3 +129,4 @@ asm void C_QUATSlerp(const Quaternion* p, const Quaternion* q, Quaternion* r, f3 #include "asm/dolphin/mtx/quat/C_QUATSlerp.s" } #pragma pop +#endif \ No newline at end of file diff --git a/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone.cpp b/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone.cpp index 57ba9e499c..809ebaab01 100644 --- a/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone.cpp +++ b/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone.cpp @@ -1,263 +1,16 @@ -// -// Generated By: dol2asm -// Translation Unit: d_a_obj_stone -// +/** + * d_a_obj_stone.cpp + * Actor - Object Stone + * + * Small and large rocks + * + */ #include "rel/d/a/obj/d_a_obj_stone/d_a_obj_stone.h" #include "dol2asm.h" #include "dolphin/types.h" - -// -// Types: -// - -struct request_of_phase_process_class {}; - -struct csXyz { - /* 802673F4 */ csXyz(s16, s16, s16); -}; - -struct Quaternion {}; - -struct mDoMtx_stack_c { - /* 8000CF44 */ void ZXYrotM(csXyz const&); - /* 8000CF7C */ void quatM(Quaternion const*); - - static u8 now[48]; -}; - -struct fopAc_ac_c { - /* 80018B64 */ fopAc_ac_c(); -}; - -struct Vec {}; - -struct cXyz { - /* 80266B34 */ void operator-(Vec const&) const; - /* 80266B84 */ void operator*(f32) const; - /* 80266FDC */ void normalizeRS(); - - static f32 Zero[3]; - static u8 BaseX[12]; -}; - -struct fopAcM_gc_c { - /* 8001DCBC */ void gndCheck(cXyz const*); - - static u8 mGndCheck[84]; - static f32 mGroundY; -}; - -struct daObjStone_c { - /* 80CE93C4 */ void initBaseMtx(); - /* 80CE9468 */ void setBaseMtx(); - /* 80CE9540 */ void Create(); - /* 80CE97C0 */ void CreateHeap(); - /* 80CE9840 */ void create(); - /* 80CE9BA0 */ void execute(); - /* 80CE9CF8 */ void mode_proc_call(); - /* 80CEAF88 */ void init_modePutWait(); - /* 80CEAFD8 */ void modePutWait(); - /* 80CEAFE8 */ void init_modeWait(); - /* 80CEB01C */ void modeWait(); - /* 80CEB0B8 */ void init_modeDrop(); - /* 80CEB0F8 */ void modeDrop(); - /* 80CEB35C */ void init_modeCarry(); - /* 80CEB480 */ void modeCarry(); - /* 80CEB6E8 */ void init_modeWalk(); - /* 80CEB720 */ void modeWalk(); - /* 80CEBCDC */ void init_modePushWolfNonBreak(); - /* 80CEBE24 */ void init_modeYogan(); - /* 80CEBE84 */ void modeYogan(); - /* 80CEBF1C */ void init_modeBreak(); - /* 80CEC180 */ void modeBreak(); - /* 80CEC1AC */ void CrrPos(); - /* 80CEC264 */ void createItem(); - /* 80CEC33C */ void calcRotBaseMtx(s16*); - /* 80CEC5BC */ void checkRollAngle(); - /* 80CEC6D8 */ void set_carry_eff(); - /* 80CEC7DC */ void effect_delete(bool); - /* 80CEC888 */ void draw(); - /* 80CEC948 */ void _delete(); -}; - -struct dSv_info_c { - /* 800356B4 */ void offActor(int, int); -}; - -struct dKy_tevstr_c {}; - -struct J3DModelData {}; - -struct dScnKy_env_light_c { - /* 801A37C4 */ void settingTevStruct(int, cXyz*, dKy_tevstr_c*); - /* 801A4DA0 */ void setLightTevColorType_MAJI(J3DModelData*, dKy_tevstr_c*); -}; - -struct dRes_info_c {}; - -struct dRes_control_c { - /* 8003C2EC */ void getRes(char const*, s32, dRes_info_c*, int); -}; - -struct JPABaseEmitter {}; - -struct dPa_modelEcallBack { - /* 8004AC00 */ void setModel(JPABaseEmitter*, J3DModelData*, dKy_tevstr_c const&, u8, void*, u8, - u8); - - static u8 mEcallback[4]; -}; - -struct dPa_levelEcallBack {}; - -struct _GXColor {}; - -struct dPa_control_c { - struct level_c { - /* 8004B8B4 */ void forceOnEventMove(u32); - }; - - /* 8004CA90 */ void set(u8, u16, cXyz const*, dKy_tevstr_c const*, csXyz const*, cXyz const*, - u8, dPa_levelEcallBack*, s8, _GXColor const*, _GXColor const*, - cXyz const*, f32); -}; - -struct dDlst_shadowControl_c { - static u8 mSimpleTexObj[32]; -}; - -struct dCcD_Stts { - /* 80083860 */ void Init(int, int, fopAc_ac_c*); -}; - -struct dCcD_SrcSph {}; - -struct dCcD_Sph { - /* 80084A34 */ void Set(dCcD_SrcSph const&); -}; - -struct dCcD_GStts { - /* 80083760 */ dCcD_GStts(); - /* 80CE9A64 */ ~dCcD_GStts(); -}; - -struct dCcD_GObjInf { - /* 80083A28 */ dCcD_GObjInf(); - /* 800842C0 */ void ChkAtHit(); - /* 80084460 */ void ChkTgHit(); - /* 800844F8 */ void GetTgHitObj(); - /* 8008457C */ void GetTgHitObjSe(); - /* 800845B0 */ void getHitSeID(u8, int); -}; - -struct dCcD_GAtTgCoCommonBase { - /* 80083688 */ void GetAc(); -}; - -struct dBgS_PolyPassChk { - /* 80078E68 */ void SetObj(); - /* 80078E74 */ void ClrObj(); - /* 80078EBC */ void SetBomb(); -}; - -struct dBgS_ObjGndChk { - /* 80CEAF10 */ ~dBgS_ObjGndChk(); -}; - -struct dBgS_ObjAcch { - /* 80CE9B30 */ ~dBgS_ObjAcch(); -}; - -struct dBgS_GndChk { - /* 8007757C */ dBgS_GndChk(); - /* 800775F0 */ ~dBgS_GndChk(); -}; - -struct dBgS_AcchCir { - /* 80075EAC */ dBgS_AcchCir(); - /* 80075F58 */ void SetWall(f32, f32); - /* 80CE9AC0 */ ~dBgS_AcchCir(); -}; - -struct cBgS_PolyInfo { - /* 802680B0 */ ~cBgS_PolyInfo(); -}; - -struct dBgS { - /* 80074E50 */ void GetPolyAtt0(cBgS_PolyInfo const&); -}; - -struct dBgS_Acch { - /* 80075F94 */ ~dBgS_Acch(); - /* 800760A0 */ dBgS_Acch(); - /* 80076248 */ void Set(cXyz*, cXyz*, fopAc_ac_c*, int, dBgS_AcchCir*, cXyz*, csXyz*, csXyz*); - /* 80076AAC */ void CrrPos(dBgS&); -}; - -struct cM3dGSph { - /* 8026F648 */ void SetC(cXyz const&); - /* 8026F708 */ void SetR(f32); - /* 80CE99D4 */ ~cM3dGSph(); -}; - -struct cM3dGPla { - /* 80CE935C */ ~cM3dGPla(); -}; - -struct cM3dGCir { - /* 8026EF18 */ ~cM3dGCir(); -}; - -struct cM3dGAab { - /* 80CE9A1C */ ~cM3dGAab(); -}; - -struct cCcD_Obj {}; - -struct cCcS { - /* 80264BA8 */ void Set(cCcD_Obj*); -}; - -struct cCcD_GStts { - /* 80CECA3C */ ~cCcD_GStts(); -}; - -struct cBgS_GndChk { - /* 80267D28 */ void SetPos(cXyz const*); -}; - -struct cBgS { - /* 800744A0 */ void GroundCross(cBgS_GndChk*); - /* 80074744 */ void GetTriPla(cBgS_PolyInfo const&, cM3dGPla*) const; -}; - -struct _GXTexObj {}; - -struct Z2SoundObjSimple { - /* 802BE844 */ Z2SoundObjSimple(); -}; - -struct Z2SoundObjBase { - /* 802BDFF8 */ void deleteObject(); - /* 802BE4A4 */ void startCollisionSE(u32, u32, Z2SoundObjBase*); -}; - -struct JAISoundID {}; - -struct Z2SeMgr { - /* 802AB984 */ void seStart(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8); -}; - -struct Z2AudioMgr { - static u8 mAudioMgrPtr[4 + 4 /* padding */]; -}; - -struct JMath { - static u8 sincosTable_[65536]; -}; - -struct J3DModel {}; +#include "SSystem/SComponent/c_math.h" +#include "JSystem/JMath/JMath.h" // // Forward References: @@ -391,14 +144,6 @@ extern "C" void deleteObject__14Z2SoundObjBaseFv(); extern "C" void startCollisionSE__14Z2SoundObjBaseFUlUlP14Z2SoundObjBase(); extern "C" void __ct__16Z2SoundObjSimpleFv(); extern "C" void __dl__FPv(); -extern "C" void PSMTXCopy(); -extern "C" void PSMTXTrans(); -extern "C" void PSMTXMultVec(); -extern "C" void PSVECAdd(); -extern "C" void PSVECSquareMag(); -extern "C" void C_VECReflect(); -extern "C" void PSQUATMultiply(); -extern "C" void C_QUATSlerp(); extern "C" void __ptmf_scall(); extern "C" void _savegpr_19(); extern "C" void _savegpr_25(); @@ -410,9 +155,6 @@ extern "C" void _restgpr_25(); extern "C" void _restgpr_26(); extern "C" void _restgpr_27(); extern "C" void _restgpr_29(); -extern "C" extern void* g_fopAc_Method[8]; -extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */]; -extern "C" extern u8 ZeroQuat[16]; extern "C" extern void* __vt__8dCcD_Sph[36]; extern "C" extern void* __vt__9dCcD_Stts[11]; extern "C" extern void* __vt__12cCcD_SphAttr[25]; @@ -420,13 +162,10 @@ extern "C" extern void* __vt__14cCcD_ShapeAttr[22]; extern "C" extern void* __vt__9cCcD_Stts[8]; extern "C" u8 now__14mDoMtx_stack_c[48]; extern "C" u8 mGndCheck__11fopAcM_gc_c[84]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; extern "C" u8 mSimpleTexObj__21dDlst_shadowControl_c[32]; -extern "C" extern u8 g_env_light[4880]; extern "C" f32 Zero__4cXyz[3]; extern "C" u8 BaseX__4cXyz[12]; extern "C" u8 sincosTable___5JMath[65536]; -extern "C" extern u32 __float_nan; extern "C" f32 mGroundY__11fopAcM_gc_c; extern "C" u8 mEcallback__18dPa_modelEcallBack[4]; extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; @@ -438,19 +177,26 @@ extern "C" extern u8 data_80CECE10[4]; /* ############################################################################################## */ /* 80CECAB4-80CECABC 000000 0008+00 14/14 0/0 0/0 .rodata l_bmdIdx */ -SECTION_RODATA static u8 const l_bmdIdx[8] = { - 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, +const static int l_bmdIdx[2] = { + 3, + 3 }; COMPILER_STRIP_GATE(0x80CECAB4, &l_bmdIdx); /* 80CECABC-80CECAFC 000008 0040+00 0/1 0/0 0/0 .rodata l_sph_src */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const l_sph_src[64] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, - 0xD8, 0xFA, 0xFD, 0xFF, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x79, 0x12, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x08, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x48, 0x00, 0x00, +const static dCcD_SrcSph l_sph_src = { + { + {0, {{AT_TYPE_THROW_OBJ, 0x03, 0x13}, {3640327679, 0x11}, 0x79}}, + {dCcD_SE_THROW_OBJ, 0, 0, 0, {0x08}}, + {dCcD_SE_NONE, 0x02, 0, 0, {0x03}}, + {0}, + }, + { + {0.0f, 0.0f, 0.0f}, + 50.0f, + }, }; COMPILER_STRIP_GATE(0x80CECABC, &l_sph_src); #pragma pop @@ -458,8 +204,10 @@ COMPILER_STRIP_GATE(0x80CECABC, &l_sph_src); /* 80CECAFC-80CECB04 000048 0008+00 0/3 0/0 0/0 .rodata l_r */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const l_r[8] = { - 0x41, 0xF0, 0x00, 0x00, 0x42, 0x48, 0x00, 0x00, +// radius +const static f32 l_r[2] = { + 30.0f, + 50.0f, }; COMPILER_STRIP_GATE(0x80CECAFC, &l_r); #pragma pop @@ -467,8 +215,9 @@ COMPILER_STRIP_GATE(0x80CECAFC, &l_r); /* 80CECB04-80CECB0C 000050 0008+00 0/1 0/0 0/0 .rodata l_rolling_speedF */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const l_rolling_speedF[8] = { - 0x41, 0x10, 0x00, 0x00, 0x41, 0x10, 0x00, 0x00, +const static f32 l_rolling_speedF[2] = { + 9.0f, + 9.0f }; COMPILER_STRIP_GATE(0x80CECB04, &l_rolling_speedF); #pragma pop @@ -476,40 +225,43 @@ COMPILER_STRIP_GATE(0x80CECB04, &l_rolling_speedF); /* 80CECB0C-80CECB14 000058 0008+00 0/0 0/0 0/0 .rodata l_rolling_time */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const l_rolling_time[8] = { - 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x17, +const static u32 l_rolling_time[2] = { + 0x0000001E, + 0x00000017, }; COMPILER_STRIP_GATE(0x80CECB0C, &l_rolling_time); #pragma pop /* 80CECB14-80CECB1C 000060 0008+00 1/2 0/0 0/0 .rodata l_initial_offsetY */ -SECTION_RODATA static u8 const l_initial_offsetY[8] = { - 0x41, 0x20, 0x00, 0x00, 0x41, 0xA0, 0x00, 0x00, +const static f32 l_initial_offsetY[2] = { + 10.0f, + 20.0f }; COMPILER_STRIP_GATE(0x80CECB14, &l_initial_offsetY); /* 80CECB1C-80CECB24 000068 0008+00 0/3 0/0 0/0 .rodata l_put_offsetY */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const l_put_offsetY[8] = { - 0x41, 0xA0, 0x00, 0x00, 0x41, 0xF0, 0x00, 0x00, +const static f32 l_put_offsetY[2] = { + 20.0f, + 30.0f }; COMPILER_STRIP_GATE(0x80CECB1C, &l_put_offsetY); #pragma pop /* 80CECB24-80CECB28 000070 0002+02 1/2 0/0 0/0 .rodata l_weight */ -SECTION_RODATA static u16 const l_weight[1 + 1 /* padding */] = { - 0x78C8, - /* padding */ - 0x0000, +const static u8 l_weight[2] = { + 0x78, + 0xC8 }; COMPILER_STRIP_GATE(0x80CECB24, &l_weight); /* 80CECB28-80CECB30 000074 0008+00 0/1 0/0 0/0 .rodata l_speedH */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const l_speedH[8] = { - 0x42, 0x10, 0x00, 0x00, 0x42, 0x2C, 0x00, 0x00, +const static f32 l_speedH[2] = { + 36.0f, + 43.0f, }; COMPILER_STRIP_GATE(0x80CECB28, &l_speedH); #pragma pop @@ -517,8 +269,9 @@ COMPILER_STRIP_GATE(0x80CECB28, &l_speedH); /* 80CECB30-80CECB38 00007C 0008+00 0/1 0/0 0/0 .rodata l_speedV */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const l_speedV[8] = { - 0x41, 0xD8, 0x00, 0x00, 0x41, 0xB0, 0x00, 0x00, +const static f32 l_speedV[2] = { + 27.0f, + 22.0f, }; COMPILER_STRIP_GATE(0x80CECB30, &l_speedV); #pragma pop @@ -526,8 +279,9 @@ COMPILER_STRIP_GATE(0x80CECB30, &l_speedV); /* 80CECB38-80CECB40 000084 0008+00 0/1 0/0 0/0 .rodata l_water_speedH */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const l_water_speedH[8] = { - 0x40, 0xA0, 0x00, 0x00, 0x40, 0xA0, 0x00, 0x00, +const static f32 l_water_speedH[2] = { + 5.0f, + 5.0f, }; COMPILER_STRIP_GATE(0x80CECB38, &l_water_speedH); #pragma pop @@ -535,8 +289,9 @@ COMPILER_STRIP_GATE(0x80CECB38, &l_water_speedH); /* 80CECB40-80CECB48 00008C 0008+00 0/1 0/0 0/0 .rodata l_water_speedV */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const l_water_speedV[8] = { - 0x40, 0xA0, 0x00, 0x00, 0x40, 0xA0, 0x00, 0x00, +const static f32 l_water_speedV[2] = { + 5.0f, + 5.0f, }; COMPILER_STRIP_GATE(0x80CECB40, &l_water_speedV); #pragma pop @@ -544,8 +299,9 @@ COMPILER_STRIP_GATE(0x80CECB40, &l_water_speedV); /* 80CECB48-80CECB50 000094 0008+00 0/1 0/0 0/0 .rodata l_water_resist */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const l_water_resist[8] = { - 0x3C, 0xA3, 0xD7, 0x0A, 0x3C, 0xA3, 0xD7, 0x0A, +const static f32 l_water_resist[2] = { + 0.02f, + 0.02f, }; COMPILER_STRIP_GATE(0x80CECB48, &l_water_resist); #pragma pop @@ -553,8 +309,9 @@ COMPILER_STRIP_GATE(0x80CECB48, &l_water_resist); /* 80CECB50-80CECB58 00009C 0008+00 0/1 0/0 0/0 .rodata l_water_walk_resist */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const l_water_walk_resist[8] = { - 0x3E, 0x19, 0x99, 0x9A, 0x3E, 0x19, 0x99, 0x9A, +const static f32 l_water_walk_resist[2] = { + 0.15f, + 0.15f, }; COMPILER_STRIP_GATE(0x80CECB50, &l_water_walk_resist); #pragma pop @@ -562,23 +319,26 @@ COMPILER_STRIP_GATE(0x80CECB50, &l_water_walk_resist); /* 80CECB58-80CECB60 0000A4 0008+00 0/2 0/0 0/0 .rodata l_buoyancy */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const l_buoyancy[8] = { - 0x40, 0xBC, 0xCC, 0xCD, 0x40, 0xBC, 0xCC, 0xCD, +const static f32 l_buoyancy[2] = { + 5.9f, + 5.9f, }; COMPILER_STRIP_GATE(0x80CECB58, &l_buoyancy); #pragma pop /* 80CECB60-80CECB68 0000AC 0008+00 1/1 0/0 0/0 .rodata l_shadow_size */ -SECTION_RODATA static u8 const l_shadow_size[8] = { - 0x42, 0x20, 0x00, 0x00, 0x42, 0x82, 0x00, 0x00, +const static f32 l_shadow_size[2] = { + 40.0f, + 65.0f }; COMPILER_STRIP_GATE(0x80CECB60, &l_shadow_size); /* 80CECB68-80CECB70 0000B4 0008+00 0/1 0/0 0/0 .rodata l_wpillar_scl */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const l_wpillar_scl[8] = { - 0x3F, 0x26, 0x66, 0x66, 0x3F, 0x8C, 0xCC, 0xCD, +const static f32 l_wpillar_scl[2] = { + 0.65f, + 1.1f, }; COMPILER_STRIP_GATE(0x80CECB68, &l_wpillar_scl); #pragma pop @@ -586,8 +346,9 @@ COMPILER_STRIP_GATE(0x80CECB68, &l_wpillar_scl); /* 80CECB70-80CECB78 0000BC 0008+00 0/1 0/0 0/0 .rodata l_hamon_scl */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const l_hamon_scl[8] = { - 0x3F, 0x33, 0x33, 0x33, 0x3F, 0x99, 0x99, 0x9A, +const static f32 l_hamon_scl[2] = { + 0.7f, + 1.2f, }; COMPILER_STRIP_GATE(0x80CECB70, &l_hamon_scl); #pragma pop @@ -595,8 +356,9 @@ COMPILER_STRIP_GATE(0x80CECB70, &l_hamon_scl); /* 80CECB78-80CECB80 0000C4 0008+00 0/1 0/0 0/0 .rodata l_yogan_eff_scl */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const l_yogan_eff_scl[8] = { - 0x3F, 0x19, 0x99, 0x9A, 0x3F, 0x8C, 0xCC, 0xCD, +const static f32 l_yogan_eff_scl[2] = { + 0.6f, + 1.1f, }; COMPILER_STRIP_GATE(0x80CECB78, &l_yogan_eff_scl); #pragma pop @@ -604,8 +366,9 @@ COMPILER_STRIP_GATE(0x80CECB78, &l_yogan_eff_scl); /* 80CECB80-80CECB88 0000CC 0008+00 0/1 0/0 0/0 .rodata l_wall_h */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const l_wall_h[8] = { - 0x41, 0xF0, 0x00, 0x00, 0x42, 0x48, 0x00, 0x00, +const static f32 l_wall_h[2] = { + 30.0f, + 50.0f, }; COMPILER_STRIP_GATE(0x80CECB80, &l_wall_h); #pragma pop @@ -613,8 +376,9 @@ COMPILER_STRIP_GATE(0x80CECB80, &l_wall_h); /* 80CECB88-80CECB90 0000D4 0008+00 0/1 0/0 0/0 .rodata l_wall_r */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const l_wall_r[8] = { - 0x41, 0xF0, 0x00, 0x00, 0x42, 0x48, 0x00, 0x00, +const static f32 l_wall_r[2] = { + 30.0f, + 50.0f }; COMPILER_STRIP_GATE(0x80CECB88, &l_wall_r); #pragma pop @@ -622,14 +386,20 @@ COMPILER_STRIP_GATE(0x80CECB88, &l_wall_r); /* 80CECB90-80CECB94 0000DC 0004+00 0/1 0/0 0/0 .rodata l_rot_angle */ #pragma push #pragma force_active on -SECTION_RODATA static u32 const l_rot_angle = 0x00230012; +const static s16 l_rot_angle[2] = { + 35, + 18 +}; COMPILER_STRIP_GATE(0x80CECB90, &l_rot_angle); #pragma pop /* 80CECB94-80CECB98 0000E0 0004+00 0/1 0/0 0/0 .rodata l_walk_rot_angle */ #pragma push #pragma force_active on -SECTION_RODATA static u32 const l_walk_rot_angle = 0x00280028; +const static s16 l_walk_rot_angle[2] = { + 40, + 40 +}; COMPILER_STRIP_GATE(0x80CECB94, &l_walk_rot_angle); #pragma pop @@ -672,13 +442,6 @@ SECTION_RODATA static u8 const lit_3749[8] = { COMPILER_STRIP_GATE(0x80CECBAC, &lit_3749); #pragma pop -/* 80CECC3C-80CECC3C 000188 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80CECC3C = "D_Srock"; -SECTION_DEAD static char const* const stringBase_80CECC44 = "D_Brock"; -#pragma pop - /* 80CECC54-80CECC60 000000 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */ SECTION_DATA static u8 cNullVec__6Z2Calc[12] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -698,9 +461,9 @@ SECTION_DATA static u32 lit_1787[1 + 4 /* padding */] = { #pragma pop /* 80CECC74-80CECC7C -00001 0008+00 3/3 0/0 0/0 .data l_arcName */ -SECTION_DATA static void* l_arcName[2] = { - (void*)&d_a_obj_stone__stringBase0, - (void*)(((char*)&d_a_obj_stone__stringBase0) + 0x8), +static char* l_arcName[2] = { + "D_Srock", // small rock + "D_Brock", // big rock }; /* 80CECC7C-80CECC88 -00001 000C+00 0/1 0/0 0/0 .data @4015 */ @@ -787,25 +550,35 @@ SECTION_DATA static u8 l_func[84] = { #pragma pop /* 80CECD24-80CECD44 -00001 0020+00 1/0 0/0 0/0 .data l_daObjStone_Method */ -SECTION_DATA static void* l_daObjStone_Method[8] = { - (void*)daObjStone_Create__FP10fopAc_ac_c, - (void*)daObjStone_Delete__FP12daObjStone_c, - (void*)daObjStone_Execute__FP12daObjStone_c, - (void*)NULL, - (void*)daObjStone_Draw__FP12daObjStone_c, - (void*)NULL, - (void*)NULL, - (void*)NULL, +static actor_method_class l_daObjStone_Method = { + (process_method_func)daObjStone_Create__FP10fopAc_ac_c, + (process_method_func)daObjStone_Delete__FP12daObjStone_c, + (process_method_func)daObjStone_Execute__FP12daObjStone_c, + (process_method_func)0, + (process_method_func)daObjStone_Draw__FP12daObjStone_c }; /* 80CECD44-80CECD74 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Stone */ -SECTION_DATA extern void* g_profile_Obj_Stone[12] = { - (void*)0xFFFFFFFD, (void*)0x0008FFFD, - (void*)0x02FD0000, (void*)&g_fpcLf_Method, - (void*)0x00000990, (void*)NULL, - (void*)NULL, (void*)&g_fopAc_Method, - (void*)0x01FF0000, (void*)&l_daObjStone_Method, - (void*)0x00040100, (void*)0x00170000, +extern actor_process_profile_definition g_profile_Obj_Stone = { + -3, // mLayerID + 8, // mListID + -3, // mListPrio + PROC_Obj_Stone, // mProcName + 0, // padding + &g_fpcLf_Method.mBase, // mSubMtd + sizeof(daObjStone_c), // mSize + 0, // mSizeOther + 0, // mParameters + &g_fopAc_Method.base, // mSubMtd + 0x01FF, // mPriority + 0, // padding + 0, // padding + &l_daObjStone_Method, // mSubMtd + 0x00040100, // mStatus + 0, // mActorType + 23, // mCullType + 0, // padding + 0, // padding }; /* 80CECD74-80CECDA4 000120 0030+00 2/2 0/0 0/0 .data __vt__14dBgS_ObjGndChk */ @@ -880,6 +653,24 @@ SECTION_DATA extern void* __vt__8cM3dGPla[3] = { }; /* 80CE9078-80CE935C 000078 02E4+00 1/1 0/0 0/0 .text bound__FP4cXyzRC13cBgS_PolyInfof */ +#ifdef NONMATCHING +// matches with literals +static f32 bound(cXyz* param_0, cBgS_PolyInfo const& param_1, f32 param_2) { + cM3dGPla plane; + f32 ret; + if (dComIfG_Bgsp().GetTriPla(param_1,&plane)) { + cXyz pos; + f32 abs = param_0->abs(); + + C_VECReflect(param_0,(Vec*)&plane,&pos); + *param_0 = pos * abs * param_2; + + return param_0->absXZ(); + } else { + return 0.0f; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -888,46 +679,45 @@ static asm void bound(cXyz* param_0, cBgS_PolyInfo const& param_1, f32 param_2) #include "asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/bound__FP4cXyzRC13cBgS_PolyInfof.s" } #pragma pop +#endif /* 80CE935C-80CE93A4 00035C 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGPlaFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm cM3dGPla::~cM3dGPla() { +// asm cM3dGPla::~cM3dGPla() { +extern "C" asm void __dt__8cM3dGPlaFv() { nofralloc #include "asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/__dt__8cM3dGPlaFv.s" } #pragma pop /* 80CE93A4-80CE93C4 0003A4 0020+00 1/1 0/0 0/0 .text CheckCreateHeap__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void CheckCreateHeap(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/CheckCreateHeap__FP10fopAc_ac_c.s" +static bool CheckCreateHeap(fopAc_ac_c* i_this) { + return static_cast(i_this)->CreateHeap(); } -#pragma pop /* 80CE93C4-80CE9468 0003C4 00A4+00 1/1 0/0 0/0 .text initBaseMtx__12daObjStone_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjStone_c::initBaseMtx() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/initBaseMtx__12daObjStone_cFv.s" +void daObjStone_c::initBaseMtx() { + field_0x0910 = cXyz::Zero; + field_0x091c = 0; + field_0x0930 = ZeroQuat; + field_0x0920 = field_0x0930; + mpModel->setBaseScale(mScale); + setBaseMtx(); } -#pragma pop /* 80CE9468-80CE9540 000468 00D8+00 2/2 0/0 0/0 .text setBaseMtx__12daObjStone_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjStone_c::setBaseMtx() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/setBaseMtx__12daObjStone_cFv.s" +void daObjStone_c::setBaseMtx() { + mDoMtx_quatMultiply(&field_0x0920,&field_0x0930,&field_0x0920); + mDoMtx_stack_c::transS(current.pos.x,current.pos.y+mInitialOffsetY,current.pos.z); + mDoMtx_stack_c::quatM(&field_0x0920); + mDoMtx_stack_c::ZXYrotM(shape_angle.x,shape_angle.y,shape_angle.z); + mDoMtx_stack_c::ZXYrotM(mShapeAngle); + mpModel->i_setBaseTRMtx(mDoMtx_stack_c::get()); + field_0x0930 = field_0x0920; + field_0x0920 = ZeroQuat; } -#pragma pop /* ############################################################################################## */ /* 80CECBB4-80CECBB8 000100 0004+00 0/1 0/0 0/0 .rodata @3844 */ @@ -942,40 +732,128 @@ SECTION_RODATA static f32 const lit_3845 = 1.0f; COMPILER_STRIP_GATE(0x80CECBB8, &lit_3845); /* 80CE9540-80CE97C0 000540 0280+00 1/1 0/0 0/0 .text Create__12daObjStone_cFv */ +#ifdef NONMATCHING +// matches with literals +int daObjStone_c::Create() { + mShapeAngle = shape_angle; + shape_angle.setall(0); + + fopAcM_SetMtx(this,mpModel->getBaseTRMtx()); + + // set chkCirlce wall bounds + mChkCircle.SetWall(l_wall_h[mStoneType],l_wall_r[mStoneType]); + + // setup chkobj + mChkObj.Set(&fopAcM_GetPosition_p(this),&fopAcM_GetOldPosition_p(this),this,1,&mChkCircle,&fopAcM_GetSpeed_p(this),0,0); + mChkObj.SetWtrChkMode(2); + mChkObj.ClrObj(); + mChkObj.SetBomb(); + + mStatus.Init(l_weight[mStoneType],0xFF,this); + + // setup collider + mCollider.Set(l_sph_src); + mCollider.SetR(l_r[mStoneType]); + mCollider.SetStts(&mStatus); + + if (mStoneType == OBJ_STONE_TYPE_SMALL) { + mCollider.SetAtAtp(2); + } + + fopAcM_setCullSizeSphere(this,0.0f,0.0f,0.0f,l_r[mStoneType]*1.2f); + cLib_onBit(mAttentionInfo.mFlags,16); + mAttentionInfo.field_0x4[0] = 0x2A; + fopAcM_OnCarryType(this,fopAcM_CARRY_LIGHT); + + cXyz other_pos = current.pos; + + mChkObj.CrrPos(dComIfG_Bgsp()); + current.pos = other_pos; + mInitialOffsetY = 0.0f; + field_0x094d = 0x1E; + + // Set heavy carry type if big stone + if (mStoneType == OBJ_STONE_TYPE_BIG) { + fopAcM_OnCarryType(this,fopAcM_CARRY_HEAVY); + } + + init_modePutWait(); + initBaseMtx(); + + u8 stoneType = mStoneType; + + cXyz pos = current.pos; + pos.y += 1.0f; + + // Create the mark actor that goes under the stone + fopAcM_createChild(PROC_Obj_StoneMark,fopAcM_GetID(this),stoneType,&pos,fopAcM_GetRoomNo(this),&shape_angle,&mScale,-1,0); + + mSound.init(¤t.pos,1); + mLastPosY = current.pos.y; + + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daObjStone_c::Create() { +asm int daObjStone_c::Create() { nofralloc #include "asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/Create__12daObjStone_cFv.s" } #pragma pop +#endif /* 80CE97C0-80CE9840 0007C0 0080+00 1/1 0/0 0/0 .text CreateHeap__12daObjStone_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjStone_c::CreateHeap() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/CreateHeap__12daObjStone_cFv.s" +bool daObjStone_c::CreateHeap() { + mpModel = mDoExt_J3DModel__create((J3DModelData*)dComIfG_getObjectRes(l_arcName[mStoneType],l_bmdIdx[mStoneType]),0x80000,0x11000084); + return mpModel != NULL; } -#pragma pop /* 80CE9840-80CE99D4 000840 0194+00 1/1 0/0 0/0 .text create__12daObjStone_cFv */ +#ifdef NONMATCHING +// matches, but too many destructors being generated +int daObjStone_c::create() { + if (!fopAcM_CheckCondition(this, 8)) { + new (this) daObjStone_c(); + fopAcM_OnCondition(this, 8); + } + + mStoneType = getType(); + + int phase = dComIfG_resLoad(&mPhase,l_arcName[mStoneType]); + + if (phase == cPhs_COMPLEATE_e) { + // Allocate solid heap on GAME and load rock's model into it + if (!fopAcM_entrySolidHeap(this,(heapCallbackFunc)CheckCreateHeap,0x860)) { + return cPhs_ERROR_e; + } + + // Load everything else? + if (!Create()) { + return cPhs_ERROR_e; + } + } + + return phase; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daObjStone_c::create() { +asm int daObjStone_c::create() { nofralloc #include "asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/func_80CE9840.s" } #pragma pop +#endif /* 80CE99D4-80CE9A1C 0009D4 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGSphFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm cM3dGSph::~cM3dGSph() { +// asm cM3dGSph::~cM3dGSph() { +extern "C" asm void __dt__8cM3dGSphFv() { nofralloc #include "asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/__dt__8cM3dGSphFv.s" } @@ -985,7 +863,8 @@ asm cM3dGSph::~cM3dGSph() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm cM3dGAab::~cM3dGAab() { +// asm cM3dGAab::~cM3dGAab() { +extern "C" asm void __dt__8cM3dGAabFv() { nofralloc #include "asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/__dt__8cM3dGAabFv.s" } @@ -995,7 +874,8 @@ asm cM3dGAab::~cM3dGAab() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dCcD_GStts::~dCcD_GStts() { +// asm dCcD_GStts::~dCcD_GStts() { +extern "C" asm void __dt__10dCcD_GSttsFv() { nofralloc #include "asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/__dt__10dCcD_GSttsFv.s" } @@ -1005,7 +885,8 @@ asm dCcD_GStts::~dCcD_GStts() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dBgS_AcchCir::~dBgS_AcchCir() { +// asm dBgS_AcchCir::~dBgS_AcchCir() { +extern "C" asm void __dt__12dBgS_AcchCirFv() { nofralloc #include "asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/__dt__12dBgS_AcchCirFv.s" } @@ -1015,7 +896,8 @@ asm dBgS_AcchCir::~dBgS_AcchCir() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dBgS_ObjAcch::~dBgS_ObjAcch() { +// asm dBgS_ObjAcch::~dBgS_ObjAcch() { +extern "C" asm void __dt__12dBgS_ObjAcchFv() { nofralloc #include "asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/__dt__12dBgS_ObjAcchFv.s" } @@ -1027,14 +909,44 @@ SECTION_RODATA static f32 const lit_4010 = -6.0f; COMPILER_STRIP_GATE(0x80CECBBC, &lit_4010); /* 80CE9BA0-80CE9CF8 000BA0 0158+00 1/1 0/0 0/0 .text execute__12daObjStone_cFv */ +#ifdef NONMATCHING +// matches but cXyz destructor being generated after this function +int daObjStone_c::execute() { + cXyz pos; + + mStatus.SetWeight(l_weight[this->mStoneType]); + fopAcM_SetGravity(this,FLOAT_LABEL(lit_4010)); + mode_proc_call(); + + if (mCollider.ChkTgHit() && mCollider.GetTgHitObj()) { + mSound.startCollisionSE(mCollider.GetTgHitObjHitSeID(1),2,0); + } + + mSound.framework(0,dComIfGp_getReverb(fopAcM_GetRoomNo(this))); + mAttentionInfo.mPosition = current.pos; + mEyePos = mAttentionInfo.mPosition; + + setBaseMtx(); + pos = current.pos; + pos.y += mInitialOffsetY; + + mCollider.SetC(pos); + dComIfG_Ccsp()->Set(&mCollider); + mChkObj.OffLineCheck(); + field_0x094f = mIsInWater; + effect_delete(false); + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daObjStone_c::execute() { +asm int daObjStone_c::execute() { nofralloc #include "asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/execute__12daObjStone_cFv.s" } #pragma pop +#endif /* ############################################################################################## */ /* 80CECBC0-80CECBC4 00010C 0004+00 0/1 0/0 0/0 .rodata @4632 */ @@ -1139,7 +1051,8 @@ asm void daObjStone_c::mode_proc_call() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dBgS_ObjGndChk::~dBgS_ObjGndChk() { +// asm dBgS_ObjGndChk::~dBgS_ObjGndChk() { +extern "C" asm void __dt__14dBgS_ObjGndChkFv() { nofralloc #include "asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/__dt__14dBgS_ObjGndChkFv.s" } @@ -1147,34 +1060,28 @@ asm dBgS_ObjGndChk::~dBgS_ObjGndChk() { /* 80CEAF88-80CEAFD8 001F88 0050+00 1/1 0/0 0/0 .text init_modePutWait__12daObjStone_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjStone_c::init_modePutWait() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/init_modePutWait__12daObjStone_cFv.s" +void daObjStone_c::init_modePutWait() { + mCollider.OffAtSPrmBit(1); + mCollider.OnCoSPrmBit(1); + cLib_onBit(mAttentionInfo.mFlags,16); + mInitialOffsetY = l_initial_offsetY[mStoneType]; + mMode = 0; + field_0x0907 = 3; } -#pragma pop /* 80CEAFD8-80CEAFE8 001FD8 0010+00 1/0 0/0 0/0 .text modePutWait__12daObjStone_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjStone_c::modePutWait() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/modePutWait__12daObjStone_cFv.s" +void daObjStone_c::modePutWait() { + mMode++; } -#pragma pop /* 80CEAFE8-80CEB01C 001FE8 0034+00 2/2 0/0 0/0 .text init_modeWait__12daObjStone_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjStone_c::init_modeWait() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/init_modeWait__12daObjStone_cFv.s" +void daObjStone_c::init_modeWait() { + mCollider.OffAtSPrmBit(1); + mCollider.OnCoSPrmBit(1); + cLib_onBit(mAttentionInfo.mFlags,16); + mMode = 0; + field_0x0907 = 0; } -#pragma pop /* ############################################################################################## */ /* 80CECBF4-80CECBF8 000140 0004+00 0/1 0/0 0/0 .rodata @4678 */ @@ -1192,26 +1099,62 @@ COMPILER_STRIP_GATE(0x80CECBF8, &lit_4679); #pragma pop /* 80CEB01C-80CEB0B8 00201C 009C+00 1/0 0/0 0/0 .text modeWait__12daObjStone_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjStone_c::modeWait() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/modeWait__12daObjStone_cFv.s" +void daObjStone_c::modeWait() { + mMode++; + speedF *= FLOAT_LABEL(lit_4678); + + fopAcM_posMoveF(this,mStatus.GetCCMoveP()); + cLib_chaseF(&mInitialOffsetY,l_put_offsetY[mStoneType],FLOAT_LABEL(lit_4679)); + + if (mMode > 5 && checkRollAngle()) { + init_modeWalk(); + } } -#pragma pop /* 80CEB0B8-80CEB0F8 0020B8 0040+00 1/1 0/0 0/0 .text init_modeDrop__12daObjStone_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjStone_c::init_modeDrop() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/init_modeDrop__12daObjStone_cFv.s" +void daObjStone_c::init_modeDrop() { + mCollider.OnAtSPrmBit(1); + mCollider.OnCoSPrmBit(1); + cLib_offBit(mAttentionInfo.mFlags,16); + mMode = 0; + mLastPosY = current.pos.y; + field_0x0907 = 1; } -#pragma pop /* 80CEB0F8-80CEB35C 0020F8 0264+00 1/0 0/0 0/0 .text modeDrop__12daObjStone_cFv */ +#ifdef NONMATCHING +// matches with literals +void daObjStone_c::modeDrop() { + cXyz pos2, pos; + mMode++; + mChkObj.OnLineCheck(); + + if (mIsInWater != 0) { + mCollider.OffAtSPrmBit(1); + mChkObj.ChkGroundHit() ? cLib_onBit(mAttentionInfo.mFlags,16) : cLib_offBit(mAttentionInfo.mFlags,16); + + pos2.x = speedF * cM_ssin(current.angle.y); + pos2.y = speed.y; + pos2.z = speedF * cM_scos(current.angle.y); + + pos = pos2; + pos.x = -pos.x * l_water_resist[mStoneType]; + pos.y = -pos.y * l_water_resist[mStoneType]; + pos.z = -pos.z * l_water_resist[mStoneType]; + + + pos2 += pos; + speedF = sqrtf(pos2.x*pos2.x + pos2.z*pos2.z); + speed.y = pos2.y; + + fopAcM_SetGravity(this,-6.0f + l_buoyancy[mStoneType]); + } + + fopAcM_posMoveF(this,mStatus.GetCCMoveP()); + mLastSpeedY = speed.y; + calcRotBaseMtx(0); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1220,8 +1163,28 @@ asm void daObjStone_c::modeDrop() { #include "asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/modeDrop__12daObjStone_cFv.s" } #pragma pop +#endif /* 80CEB35C-80CEB480 00235C 0124+00 1/1 0/0 0/0 .text init_modeCarry__12daObjStone_cFv */ +#ifdef NONMATCHING +// matches with literals +void daObjStone_c::init_modeCarry() { + mCollider.OffCoSPrmBit(1); + mCollider.OffAtSPrmBit(1); + fopAcM_SetModel(this,mpModel); + mMode = 0; + field_0x0950 = field_0x0907; + if (mIsInWater == 0) { + if (mStoneType == OBJ_STONE_TYPE_BIG) { + fopAcM_seStart(this,Z2SE_OBJ_CMN_L_ROCK_LIFT,0); // literals inline + } else { + fopAcM_seStart(this,Z2SE_OBJ_CMN_ROCK_LIFT,0); // literals inline + } + } + + field_0x0907 = 2; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1230,6 +1193,7 @@ asm void daObjStone_c::init_modeCarry() { #include "asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/init_modeCarry__12daObjStone_cFv.s" } #pragma pop +#endif /* ############################################################################################## */ /* 80CECBFC-80CECC00 000148 0004+00 0/1 0/0 0/0 .rodata @4829 */ @@ -1240,6 +1204,71 @@ COMPILER_STRIP_GATE(0x80CECBFC, &lit_4829); #pragma pop /* 80CEB480-80CEB6E8 002480 0268+00 1/0 0/0 0/0 .text modeCarry__12daObjStone_cFv */ +#ifdef NONMATCHING +// matches with literals +void daObjStone_c::modeCarry() { + mMode++; + + if (mMode == 8 && mStoneType == OBJ_STONE_TYPE_SMALL) { + mInitialOffsetY = l_r[mStoneType]; + set_carry_eff(); + } + + if (mMode == 17 && mStoneType == OBJ_STONE_TYPE_BIG) { + mInitialOffsetY = l_r[mStoneType]; + set_carry_eff(); + } + + if (field_0x0908 == 0) { + if (mStoneType == OBJ_STONE_TYPE_BIG) { + if (mMode == 21) { + createItem(); + field_0x0908 = 1; + } + } else if (mMode == 14) { + createItem(); + field_0x0908 = 1; + } + } + + if ((mStoneType == OBJ_STONE_TYPE_SMALL && mMode > 8) || (mStoneType == OBJ_STONE_TYPE_BIG && mMode > 17)) { + f32 frame_rate = daPy_getLinkPlayerActorClass()->getBaseAnimeFrameRate() * 0.25f; + mDoMtx_quatSlerp(&field_0x0930, &ZeroQuat, &field_0x0930, frame_rate); + } + + if (!fopAcM_checkCarryNow(this)) { + if (speedF != 0.0f) { + mChkObj.CrrPos(dComIfG_Bgsp()); + mIsInWater = mChkObj.ChkWaterIn(); + + if (!mIsInWater) { + speedF = l_speedH[mStoneType]; + speed.y = l_speedV[mStoneType]; + } else { + speedF = l_water_speedH[mStoneType]; + speed.y = l_water_speedV[mStoneType]; + + if (speed.y < -10.0f) + speed.y = -10.0f; + + if (speed.y > 10.0f) + speed.y = 10.0f; + + if (speedF > 10.0f) + speedF = 10.0f; + } + mInitialOffsetY = l_r[mStoneType]; + init_modeDrop(); + } else { + mLastPosY = current.pos.y; + init_modeWait(); + } + + model = 0; + } + +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1248,16 +1277,16 @@ asm void daObjStone_c::modeCarry() { #include "asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/modeCarry__12daObjStone_cFv.s" } #pragma pop +#endif /* 80CEB6E8-80CEB720 0026E8 0038+00 2/2 0/0 0/0 .text init_modeWalk__12daObjStone_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjStone_c::init_modeWalk() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/init_modeWalk__12daObjStone_cFv.s" +void daObjStone_c::init_modeWalk() { + mCollider.OffAtSPrmBit(1); + mCollider.OnCoSPrmBit(1); + cLib_onBit(mAttentionInfo.mFlags,16); + mMode = 0; + field_0x0907 = 4; } -#pragma pop /* ############################################################################################## */ /* 80CECC00-80CECC04 00014C 0004+00 0/2 0/0 0/0 .rodata @5018 */ @@ -1300,6 +1329,28 @@ asm void daObjStone_c::modeWalk() { /* 80CEBCDC-80CEBE24 002CDC 0148+00 1/1 0/0 0/0 .text init_modePushWolfNonBreak__12daObjStone_cFv */ +#ifdef NONMATCHING +// matches with literals +void daObjStone_c::init_modePushWolfNonBreak() { + mCollider.OffAtSPrmBit(1); + mCollider.OnCoSPrmBit(1); + fopAcM_cancelCarryNow(this); + current.angle.y = daPy_getPlayerActorClass()->current.angle.y; + speedF = l_rolling_speedF[mStoneType]; + field_0x0950 = field_0x0907; + mMode = 0; + + if (mIsInWater == 0) { + if (mStoneType == OBJ_STONE_TYPE_BIG) { + fopAcM_seStart(this,Z2SE_OBJ_CMN_L_ROCK_ROLL,0); // literals inline + } else { + fopAcM_seStart(this,Z2SE_OBJ_CMN_ROCK_ROLL,0); // literals inline + } + } + + field_0x0907 = 4; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1308,6 +1359,7 @@ asm void daObjStone_c::init_modePushWolfNonBreak() { #include "asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/init_modePushWolfNonBreak__12daObjStone_cFv.s" } #pragma pop +#endif /* ############################################################################################## */ /* 80CECC10-80CECC14 00015C 0004+00 0/1 0/0 0/0 .rodata @5063 */ @@ -1325,14 +1377,16 @@ COMPILER_STRIP_GATE(0x80CECC14, &lit_5064); #pragma pop /* 80CEBE24-80CEBE84 002E24 0060+00 1/1 0/0 0/0 .text init_modeYogan__12daObjStone_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjStone_c::init_modeYogan() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/init_modeYogan__12daObjStone_cFv.s" +void daObjStone_c::init_modeYogan() { + mCollider.OffAtSPrmBit(1); + mCollider.OnCoSPrmBit(1); + mInitialOffsetY = l_initial_offsetY[mStoneType]; + mMode = 0; + fopAcM_SetGravity(this,FLOAT_LABEL(lit_5063)); + fopAcM_SetMaxFallSpeed(this,FLOAT_LABEL(lit_5064)); + current.pos.y = mChkObj.m_wtr.GetHeight(); + field_0x0907 = 6; } -#pragma pop /* ############################################################################################## */ /* 80CECC18-80CECC1C 000164 0004+00 1/1 0/0 0/0 .rodata @5074 */ @@ -1344,33 +1398,34 @@ SECTION_RODATA static f32 const lit_5075 = 13.0f / 20.0f; COMPILER_STRIP_GATE(0x80CECC1C, &lit_5075); /* 80CEBE84-80CEBF1C 002E84 0098+00 1/0 0/0 0/0 .text modeYogan__12daObjStone_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjStone_c::modeYogan() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/modeYogan__12daObjStone_cFv.s" +void daObjStone_c::modeYogan() { + f32 height = mChkObj.m_wtr.GetHeight(); + f32 pos_y = FLOAT_LABEL(lit_5074) + current.pos.y; + + bool pos_check = height > pos_y; + bool gnd_landing = mChkObj.ChkGroundLanding(); + + speedF *= FLOAT_LABEL(lit_5075); + fopAcM_posMoveF(this,0); + + if (pos_check || gnd_landing) { + fopAcM_delete(this); + } + + mMode++; } -#pragma pop /* ############################################################################################## */ /* 80CECC20-80CECC2C 00016C 0006+06 0/1 0/0 0/0 .rodata l_eff_id$5089 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const l_eff_id[6 + 6 /* padding */] = { +const static u8 l_eff_id[10] = { 0x85, 0x9B, 0x85, 0x9C, 0x85, 0x9D, - /* padding */ - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, }; COMPILER_STRIP_GATE(0x80CECC20, &l_eff_id); #pragma pop @@ -1392,26 +1447,57 @@ asm void daObjStone_c::init_modeBreak() { #pragma pop /* 80CEC180-80CEC1AC 003180 002C+00 1/0 0/0 0/0 .text modeBreak__12daObjStone_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjStone_c::modeBreak() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/modeBreak__12daObjStone_cFv.s" +void daObjStone_c::modeBreak() { + mMode++; + fopAcM_delete(this); } -#pragma pop /* 80CEC1AC-80CEC264 0031AC 00B8+00 1/1 0/0 0/0 .text CrrPos__12daObjStone_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjStone_c::CrrPos() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/CrrPos__12daObjStone_cFv.s" +void daObjStone_c::CrrPos() { + bool check1 = false; + bool check2 = false; + + cXyz pos = current.pos; + u8 mode = field_0x0907; + + + if (mode == 2) { + check1 = true; + pos = current.pos; + + } + + if (field_0x0907 == 3) { + check2 = true; + } + + if (!check2) { + mChkObj.CrrPos(dComIfG_Bgsp()); + } + + if (check1) { + current.pos = pos; + } } -#pragma pop /* 80CEC264-80CEC33C 003264 00D8+00 3/3 0/0 0/0 .text createItem__12daObjStone_cFv */ +#ifdef NONMATCHING +// matches but generates extra destructor +void daObjStone_c::createItem() { + int item_no = getItemNo(); + int item_bit = getItemBit(); + + csXyz angle(0,orig.angle.y,0); + u8 item_type = getItemType(); + + if (item_type == 0) { + cXyz pos(orig.pos); + fopAcM_createItem(&pos,item_no,item_bit,fopAcM_GetHomeRoomNo(this),&angle,0,8); + } else { + fopAcM_createItemFromTable(&orig.pos,item_no,item_bit,fopAcM_GetHomeRoomNo(this),&angle,8,0,0,0,false); + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1420,6 +1506,7 @@ asm void daObjStone_c::createItem() { #include "asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/createItem__12daObjStone_cFv.s" } #pragma pop +#endif /* ############################################################################################## */ /* 80CECC2C-80CECC34 000178 0008+00 0/1 0/0 0/0 .rodata @5256 */ @@ -1443,34 +1530,77 @@ asm void daObjStone_c::calcRotBaseMtx(s16* param_0) { #pragma pop /* 80CEC5BC-80CEC6D8 0035BC 011C+00 1/1 0/0 0/0 .text checkRollAngle__12daObjStone_cFv */ +#ifdef NONMATCHING +// matches but cM3dGPla dtor will be generated in wrong place until TU is finished (due to bound function float literal inlines) +int daObjStone_c::checkRollAngle() { + cXyz pos = current.pos; + pos.y += FLOAT_LABEL(lit_4644); + cM3dGPla plane; + + bool gnd_chk = fopAcM_gc_c::gndCheck(&pos); + bool triPla = dComIfG_Bgsp().GetTriPla(*(dBgS_GndChk*)&fopAcM_gc_c::mGndCheck,&plane); // there's an inline here but it can be used until fopAcM_gc_c::mGndCheck is properly setup + f32 ground_y = fopAcM_gc_c::getGroundY(); + + if (gnd_chk && FLOAT_LABEL(lit_4637) != ground_y && triPla) { + f32 tmp2 = cM_scos(i_cM_deg2s(FLOAT_LABEL(lit_5018))); // not sure what happened here. debug implies there's a multiply happening in cM_deg2s, but retail has no such instructions + + cXyz pos2 = plane.mNormal; + + if (pos2.y < tmp2) { + return 1; + } + + } + + return 0; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daObjStone_c::checkRollAngle() { +asm int daObjStone_c::checkRollAngle() { nofralloc #include "asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/checkRollAngle__12daObjStone_cFv.s" } #pragma pop +#endif /* ############################################################################################## */ /* 80CECC34-80CECC3C 000180 0006+02 0/1 0/0 0/0 .rodata l_carry_eff_id$5307 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const l_carry_eff_id[6 + 2 /* padding */] = { - 0x85, - 0x9E, - 0x85, - 0x9F, - 0x85, - 0xA0, - /* padding */ - 0x00, - 0x00, +const static u16 l_carry_eff_id[3] = { + 0x859E, + 0x859F, + 0x85A0 }; COMPILER_STRIP_GATE(0x80CECC34, &l_carry_eff_id); #pragma pop /* 80CEC6D8-80CEC7DC 0036D8 0104+00 1/1 0/0 0/0 .text set_carry_eff__12daObjStone_cFv */ +#ifdef NONMATCHING +// matches with literals +void daObjStone_c::set_carry_eff() { + cXyz pos; + + if (mStoneType == 1) { + pos.setAll(FLOAT_LABEL(lit_3845)); + } else { + pos.setAll(FLOAT_LABEL(lit_4634)); + } + + if (field_0x0950 == 3) { + for (int i = 0; i < 3; i++) { + field_0x0964[i] = dComIfGp_particle_set(l_carry_eff_id[i], + ¤t.pos,0,&pos,0xFF,0,0xFFFFFFFF, + 0,0,0); // float literal inline + if (field_0x0964[i] != 0) { + field_0x0964[i]->becomeImmortalEmitter(); + } + } + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1479,6 +1609,7 @@ asm void daObjStone_c::set_carry_eff() { #include "asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/set_carry_eff__12daObjStone_cFv.s" } #pragma pop +#endif /* 80CEC7DC-80CEC888 0037DC 00AC+00 2/2 0/0 0/0 .text effect_delete__12daObjStone_cFb */ #pragma push @@ -1491,73 +1622,66 @@ asm void daObjStone_c::effect_delete(bool param_0) { #pragma pop /* 80CEC888-80CEC948 003888 00C0+00 1/1 0/0 0/0 .text draw__12daObjStone_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjStone_c::draw() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/draw__12daObjStone_cFv.s" +int daObjStone_c::draw() { + g_env_light.settingTevStruct(8,¤t.pos,&mTevStr); + g_env_light.setLightTevColorType_MAJI(mpModel,&mTevStr); + mDoExt_modelUpdateDL(mpModel); + + if (!model) { + f32 shadow_size = l_shadow_size[mStoneType]; + GXTexObj* pTex = dDlst_shadowControl_c::getSimpleTex(); + cXyz pos = current.pos; + + dComIfGd_setSimpleShadow(&pos, + mChkObj.GetGroundH(), + shadow_size, + mChkObj.m_gnd, + 0, + FLOAT_LABEL(lit_3845), + pTex); + } + return 1; } -#pragma pop /* 80CEC948-80CEC9BC 003948 0074+00 1/1 0/0 0/0 .text _delete__12daObjStone_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjStone_c::_delete() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/_delete__12daObjStone_cFv.s" +int daObjStone_c::_delete() { + mSound.deleteObject(); + u16 setid = fopAcM_GetSetId(this); + fopAcM_offActor(this,setid); + effect_delete(true); + dComIfG_resDelete(&mPhase,l_arcName[mStoneType]); + return 1; } -#pragma pop /* 80CEC9BC-80CEC9DC 0039BC 0020+00 1/0 0/0 0/0 .text daObjStone_Draw__FP12daObjStone_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daObjStone_Draw(daObjStone_c* param_0) { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/daObjStone_Draw__FP12daObjStone_c.s" +static int daObjStone_Draw(daObjStone_c* i_this) { + return i_this->draw(); } -#pragma pop /* 80CEC9DC-80CEC9FC 0039DC 0020+00 1/0 0/0 0/0 .text daObjStone_Execute__FP12daObjStone_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daObjStone_Execute(daObjStone_c* param_0) { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/daObjStone_Execute__FP12daObjStone_c.s" +static int daObjStone_Execute(daObjStone_c* i_this) { + return i_this->execute(); } -#pragma pop /* 80CEC9FC-80CECA1C 0039FC 0020+00 1/0 0/0 0/0 .text daObjStone_Delete__FP12daObjStone_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daObjStone_Delete(daObjStone_c* param_0) { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/daObjStone_Delete__FP12daObjStone_c.s" +static int daObjStone_Delete(daObjStone_c* i_this) { + return i_this->_delete(); } -#pragma pop /* 80CECA1C-80CECA3C 003A1C 0020+00 1/0 0/0 0/0 .text daObjStone_Create__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daObjStone_Create(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/daObjStone_Create__FP10fopAc_ac_c.s" +static int daObjStone_Create(fopAc_ac_c* param_0) { + return static_cast(param_0)->create(); } -#pragma pop /* 80CECA3C-80CECA84 003A3C 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm cCcD_GStts::~cCcD_GStts() { +// asm cCcD_GStts::~cCcD_GStts() { +extern "C" asm void __dt__10cCcD_GSttsFv() { nofralloc #include "asm/rel/d/a/obj/d_a_obj_stone/d_a_obj_stone/__dt__10cCcD_GSttsFv.s" } diff --git a/rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark.cpp b/rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark.cpp index 21d14582bb..e294b9e19a 100644 --- a/rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark.cpp +++ b/rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark.cpp @@ -1,81 +1,15 @@ -// -// Generated By: dol2asm -// Translation Unit: d_a_obj_stoneMark -// +/** + * d_a_obj_stoneMark.cpp + * Actor - Object Stone Mark + * + * Visual mark under the stone actor (d_a_obj_stone) + * + */ #include "rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark.h" #include "dol2asm.h" #include "dolphin/types.h" - -// -// Types: -// - -struct request_of_phase_process_class {}; - -struct csXyz {}; - -struct cXyz {}; - -struct mDoMtx_stack_c { - /* 8000CD64 */ void transS(cXyz const&); - /* 8000CF44 */ void ZXYrotM(csXyz const&); - - static u8 now[48]; -}; - -struct fopAc_ac_c { - /* 80018B64 */ fopAc_ac_c(); -}; - -struct daObjSMark_c { - /* 8059A018 */ void initBaseMtx(); - /* 8059A038 */ void setBaseMtx(); - /* 8059A080 */ void Create(); - /* 8059A168 */ void create(); - /* 8059A2CC */ void draw(); - /* 8059A33C */ void _delete(); -}; - -struct dRes_info_c {}; - -struct dRes_control_c { - /* 8003C2EC */ void getRes(char const*, s32, dRes_info_c*, int); -}; - -struct dCcD_GStts { - /* 80083760 */ dCcD_GStts(); -}; - -struct dBgS_PolyPassChk { - /* 80078E68 */ void SetObj(); -}; - -struct dBgS_ObjAcch { - /* 8059A25C */ ~dBgS_ObjAcch(); -}; - -struct dBgS_AcchCir { - /* 80075EAC */ dBgS_AcchCir(); - /* 80075F58 */ void SetWall(f32, f32); -}; - -struct dBgS {}; - -struct dBgS_Acch { - /* 80075F94 */ ~dBgS_Acch(); - /* 800760A0 */ dBgS_Acch(); - /* 80076248 */ void Set(cXyz*, cXyz*, fopAc_ac_c*, int, dBgS_AcchCir*, cXyz*, csXyz*, csXyz*); - /* 80076AAC */ void CrrPos(dBgS&); -}; - -struct cBgS_PolyInfo {}; - -struct _GXTlutObj {}; - -struct _GXTexObj {}; - -struct ResTIMG {}; +#include "m_Do/m_Do_lib.h" // // Forward References: @@ -94,6 +28,7 @@ extern "C" static void daObjSMark_Create__FP10fopAc_ac_c(); extern "C" static void func_8059A3D0(); extern "C" static void func_8059A3D8(); extern "C" extern char const* const d_a_obj_stoneMark__stringBase0; +extern void* __vt__12dBgS_ObjAcch[9]; // // External References: @@ -117,41 +52,28 @@ extern "C" void CrrPos__9dBgS_AcchFR4dBgS(); extern "C" void SetObj__16dBgS_PolyPassChkFv(); extern "C" void __ct__10dCcD_GSttsFv(); extern "C" void __dl__FPv(); -extern "C" void PSMTXCopy(); extern "C" void _savegpr_29(); extern "C" void _restgpr_29(); -extern "C" extern void* g_fopAc_Method[8]; -extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */]; extern "C" extern void* __vt__9dCcD_Stts[11]; extern "C" extern void* __vt__9cCcD_Stts[8]; extern "C" u8 now__14mDoMtx_stack_c[48]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; -extern "C" extern u8 g_env_light[4880]; + // // Declarations: // /* 8059A018-8059A038 000078 0020+00 1/1 0/0 0/0 .text initBaseMtx__12daObjSMark_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjSMark_c::initBaseMtx() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark/initBaseMtx__12daObjSMark_cFv.s" +void daObjSMark_c::initBaseMtx() { + setBaseMtx(); } -#pragma pop /* 8059A038-8059A080 000098 0048+00 1/1 0/0 0/0 .text setBaseMtx__12daObjSMark_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjSMark_c::setBaseMtx() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark/setBaseMtx__12daObjSMark_cFv.s" +void daObjSMark_c::setBaseMtx() { + mDoMtx_stack_c::transS(current.pos); + mDoMtx_stack_c::ZXYrotM(shape_angle); + PSMTXCopy((MtxP)&mDoMtx_stack_c::now,(MtxP)&mCullMtx); } -#pragma pop - /* ############################################################################################## */ /* 8059A3E8-8059A3EC 000000 0004+00 2/2 0/0 0/0 .rodata @3642 */ SECTION_RODATA static u8 const lit_3642[4] = { @@ -183,69 +105,69 @@ SECTION_DEAD static char const* const stringBase_8059A404 = "A_IwaAto"; #pragma pop /* 8059A410-8059A414 -00001 0004+00 3/3 0/0 0/0 .data l_arcName */ -SECTION_DATA static void* l_arcName = (void*)&d_a_obj_stoneMark__stringBase0; +static char* l_arcName = "A_IwaAto"; /* 8059A080-8059A168 0000E0 00E8+00 1/1 0/0 0/0 .text Create__12daObjSMark_cFv */ +#ifdef NONMATCHING +// matches with literals +int daObjSMark_c::Create() { + initBaseMtx(); + fopAcM_SetMtx(this,(MtxP)&mCullMtx); + fopAcM_setCullSizeSphere(this,0.0f,0.0f,0.0f,100.0f); + mAcchCir.SetWall(30.0f,30.0f); + mObjAcch.Set(&fopAcM_GetPosition_p(this),&fopAcM_GetOldPosition_p(this),this,1,&mAcchCir,&fopAcM_GetSpeed_p(this),0,0); + mObjAcch.CrrPos(dComIfG_Bgsp()); + mDoLib_setResTimgObj((ResTIMG*)dComIfG_getObjectRes(l_arcName,3),&mTexObj,0,0); + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daObjSMark_c::Create() { +asm int daObjSMark_c::Create() { nofralloc #include "asm/rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark/Create__12daObjSMark_cFv.s" } #pragma pop +#endif -/* ############################################################################################## */ -/* 8059A414-8059A434 -00001 0020+00 1/0 0/0 0/0 .data l_daObjSMark_Method */ -SECTION_DATA static void* l_daObjSMark_Method[8] = { - (void*)daObjSMark_Create__FP10fopAc_ac_c, - (void*)daObjSMark_Delete__FP12daObjSMark_c, - (void*)NULL, - (void*)NULL, - (void*)daObjSMark_Draw__FP12daObjSMark_c, - (void*)NULL, - (void*)NULL, - (void*)NULL, -}; -/* 8059A434-8059A464 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_StoneMark */ -SECTION_DATA extern void* g_profile_Obj_StoneMark[12] = { - (void*)0xFFFFFFFD, (void*)0x0007FFFD, - (void*)0x01710000, (void*)&g_fpcLf_Method, - (void*)0x00000814, (void*)NULL, - (void*)NULL, (void*)&g_fopAc_Method, - (void*)0x02160000, (void*)&l_daObjSMark_Method, - (void*)0x00040100, (void*)0x00170000, -}; - -/* 8059A464-8059A488 000054 0024+00 2/2 0/0 0/0 .data __vt__12dBgS_ObjAcch */ -SECTION_DATA extern void* __vt__12dBgS_ObjAcch[9] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__12dBgS_ObjAcchFv, - (void*)NULL, - (void*)NULL, - (void*)func_8059A3D8, - (void*)NULL, - (void*)NULL, - (void*)func_8059A3D0, -}; /* 8059A168-8059A25C 0001C8 00F4+00 1/1 0/0 0/0 .text create__12daObjSMark_cFv */ +#ifdef NONMATCHING +// matches, but has issues with weak labels being used +int daObjSMark_c::create() { + if (!fopAcM_CheckCondition(this, 8)) { + new (this) daObjSMark_c(); + fopAcM_OnCondition(this, 8); + } + + int phase = dComIfG_resLoad(&mpPhase,l_arcName); + if (phase == cPhs_COMPLEATE_e){ + if (!Create()) { + return cPhs_ERROR_e; + } + } + + return phase; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daObjSMark_c::create() { +asm int daObjSMark_c::create() { nofralloc #include "asm/rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark/func_8059A168.s" } #pragma pop +#endif /* 8059A25C-8059A2CC 0002BC 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dBgS_ObjAcch::~dBgS_ObjAcch() { +// asm dBgS_ObjAcch::~dBgS_ObjAcch() { +extern "C" asm void __dt__12dBgS_ObjAcchFv() { nofralloc #include "asm/rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark/__dt__12dBgS_ObjAcchFv.s" } @@ -255,9 +177,11 @@ asm dBgS_ObjAcch::~dBgS_ObjAcch() { /* 8059A3F4-8059A3FC 00000C 0008+00 0/1 0/0 0/0 .rodata l_shadow_size$3714 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const l_shadow_size[8] = { - 0x42, 0x5C, 0x00, 0x00, 0x42, 0xAA, 0x00, 0x00, +static const f32 l_shadow_size[2] = { + 55.0f, + 85.0f }; + COMPILER_STRIP_GATE(0x8059A3F4, &l_shadow_size); #pragma pop @@ -276,57 +200,51 @@ COMPILER_STRIP_GATE(0x8059A400, &lit_3719); #pragma pop /* 8059A2CC-8059A33C 00032C 0070+00 1/1 0/0 0/0 .text draw__12daObjSMark_cFv */ +#ifdef NONMATCHING +// matches with literals +int daObjSMark_c::draw() { + dComIfGd_setSimpleShadow(¤t.pos, + mObjAcch.GetGroundH(), + l_shadow_size[fopAcM_GetParam(this) & 0xFF], + mObjAcch.m_gnd, + shape_angle.y, + ((f32)-0.6 - g_env_light.field_0x1238 * (f32)0.4), + &this->mTexObj); + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daObjSMark_c::draw() { +asm int daObjSMark_c::draw() { nofralloc #include "asm/rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark/draw__12daObjSMark_cFv.s" } #pragma pop +#endif /* 8059A33C-8059A370 00039C 0034+00 1/1 0/0 0/0 .text _delete__12daObjSMark_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daObjSMark_c::_delete() { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark/_delete__12daObjSMark_cFv.s" +int daObjSMark_c::_delete() { + dComIfG_resDelete(&mpPhase,l_arcName); + return 1; } -#pragma pop - /* 8059A370-8059A390 0003D0 0020+00 1/0 0/0 0/0 .text daObjSMark_Draw__FP12daObjSMark_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daObjSMark_Draw(daObjSMark_c* param_0) { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark/daObjSMark_Draw__FP12daObjSMark_c.s" +static int daObjSMark_Draw(daObjSMark_c* i_this) { + return i_this->draw(); } -#pragma pop /* 8059A390-8059A3B0 0003F0 0020+00 1/0 0/0 0/0 .text daObjSMark_Delete__FP12daObjSMark_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daObjSMark_Delete(daObjSMark_c* param_0) { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark/daObjSMark_Delete__FP12daObjSMark_c.s" +static int daObjSMark_Delete(daObjSMark_c* i_this) { + return i_this->_delete(); } -#pragma pop /* 8059A3B0-8059A3D0 000410 0020+00 1/0 0/0 0/0 .text daObjSMark_Create__FP10fopAc_ac_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daObjSMark_Create(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/obj/d_a_obj_stoneMark/d_a_obj_stoneMark/daObjSMark_Create__FP10fopAc_ac_c.s" +static int daObjSMark_Create(fopAc_ac_c* i_this) { + return static_cast(i_this)->create(); } -#pragma pop /* 8059A3D0-8059A3D8 000430 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */ #pragma push @@ -349,3 +267,49 @@ static asm void func_8059A3D8() { #pragma pop /* 8059A404-8059A404 00001C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ + +/* ############################################################################################## */ +/* 8059A414-8059A434 -00001 0020+00 1/0 0/0 0/0 .data l_daObjSMark_Method */ +static actor_method_class l_daObjSMark_Method = { + (process_method_func)daObjSMark_Create__FP10fopAc_ac_c, + (process_method_func)daObjSMark_Delete__FP12daObjSMark_c, + (process_method_func)0, + (process_method_func)0, + (process_method_func)daObjSMark_Draw__FP12daObjSMark_c +}; + +/* 8059A434-8059A464 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_StoneMark */ +extern actor_process_profile_definition g_profile_Obj_StoneMark = { + -3, // mLayerID + 7, // mListID + -3, // mListPrio + PROC_Obj_StoneMark, // mProcName + 0, // padding + &g_fpcLf_Method.mBase, // mSubMtd + sizeof(daObjSMark_c), // mSize + 0, // mSizeOther + 0, // mParameters + &g_fopAc_Method.base, // mSubMtd + 0x0216, // mPriority + 0, // padding + 0, // padding + &l_daObjSMark_Method, // mSubMtd + 0x00040100, // mStatus + 0, // mActorType + 23, // mCullType + 0, // padding + 0 // padding +}; + +/* 8059A464-8059A488 000054 0024+00 2/2 0/0 0/0 .data __vt__12dBgS_ObjAcch */ +SECTION_DATA extern void* __vt__12dBgS_ObjAcch[9] = { + (void*)NULL /* RTTI */, + (void*)NULL, + (void*)__dt__12dBgS_ObjAcchFv, + (void*)NULL, + (void*)NULL, + (void*)func_8059A3D8, + (void*)NULL, + (void*)NULL, + (void*)func_8059A3D0, +}; diff --git a/src/d/a/d_a_alink.cpp b/src/d/a/d_a_alink.cpp index 8bdc9c40ff..f8503a5df4 100644 --- a/src/d/a/d_a_alink.cpp +++ b/src/d/a/d_a_alink.cpp @@ -12285,12 +12285,12 @@ void daAlink_c::setSelectEquipItem(int param_0) { } if (checkWoodSwordEquip()) { - if (mEquipItem == 0x103 || param_0 != 0) { + if (mEquipItem == EQUIP_SWORD || param_0 != 0) { mSwordModel->getModelData()->getMaterialNodePointer(1)->getShape()->hide(); } else { mSwordModel->getModelData()->getMaterialNodePointer(1)->getShape()->show(); } - } else if (mEquipItem == 0x103 || param_0 != 0) { + } else if (mEquipItem == EQUIP_SWORD || param_0 != 0) { mSwordModel->getModelData()->getMaterialNodePointer(0)->getShape()->show(); } else { mSwordModel->getModelData()->getMaterialNodePointer(0)->getShape()->hide(); @@ -13911,7 +13911,7 @@ const daAlink_BckData* daAlink_c::getMainBckData(daAlink_c::daAlink_ANM i_anmID) return &m_mainBckShield[i_anmID]; } - if ((mEquipItem == 0x103 && i_anmID < 0x15 && i_anmID >= 0x10) || + if ((mEquipItem == EQUIP_SWORD && i_anmID < 0x15 && i_anmID >= 0x10) || (i_anmID == ANM_SWIM_WAIT && mEquipItem != NO_ITEM)) { return &m_mainBckSword[i_anmID - 0x10]; @@ -15569,7 +15569,7 @@ asm int daAlink_c::checkItemActionInitStart() { /* 800B7090-800B7168 0B19D0 00D8+00 1/1 0/0 0/0 .text checkItemChangeAutoAction__9daAlink_cFv */ int daAlink_c::checkItemChangeAutoAction() { if (i_checkResetFlg0(RFLG0_UNK_80)) { - if (mEquipItem == 0x103) { + if (mEquipItem == EQUIP_SWORD) { if (i_checkModeFlg(0x40000)) { return 0; } @@ -16030,9 +16030,9 @@ void daAlink_c::allUnequip(int param_0) { itemEquip(KANTERA); i_onNoResetFlg1(FLG1_UNK_40); return; - } else if (mEquipItem == 0x103) { + } else if (mEquipItem == EQUIP_SWORD) { swordUnequip(); - } else if (mEquipItem == 0x102) { + } else if (mEquipItem == noentry71) { deleteEquipItem(0, 0); field_0x2060->initOldFrameMorf(lit_7808, 0, 35); } else { @@ -16072,7 +16072,7 @@ BOOL daAlink_c::checkItemChangeFromButton() { if (doTrigger() && i_dComIfGp_getDoStatus() == 4) { if (mEquipItem != KANTERA && i_checkNoResetFlg2(FLG2_UNK_1)) { offKandelaarModel(); - } else if (mSwordFlourishTimer != 0 && mEquipItem == 0x103 && + } else if (mSwordFlourishTimer != 0 && mEquipItem == EQUIP_SWORD && !checkWoodSwordEquip() && !i_checkModeFlg(0x402)) { return procSwordUnequipSpInit(); @@ -16246,7 +16246,7 @@ int daAlink_c::checkNextAction(int param_0) { setSpeedAndAngleAtn(); } else if (((!checkUpperReadyThrowAnime() || mFastShotTime != 0) || (checkBoomerangThrowAnime() && - (mThrowBoomerangAcKeep.getActor() != NULL || mEquipItem == 0x102 || + (mThrowBoomerangAcKeep.getActor() != NULL || mEquipItem == noentry71 || i_checkNoResetFlg1(FLG1_UNK_2)))) || (checkCopyRodThrowAnime() && (mCopyRodAcKeep.getActor() != NULL || i_checkNoResetFlg1(FLG1_UNK_10000)))) @@ -17059,7 +17059,7 @@ void daAlink_c::setLastSceneMode(u32* o_mode) { *o_mode |= 0x200000; } - if (mEquipItem == 0x103) { + if (mEquipItem == EQUIP_SWORD) { *o_mode |= 0x28000000; } else if (mEquipItem < NO_ITEM) { *o_mode |= mEquipItem << 0x18; @@ -17531,7 +17531,7 @@ BOOL daAlink_c::setItemModel() { return 1; } - if (mEquipItem == 0x103) { + if (mEquipItem == EQUIP_SWORD) { setSwordModel(); return 1; } @@ -18300,7 +18300,7 @@ void daAlink_c::commonProcInit(daAlink_c::daAlink_PROC i_procID) { i_dComIfGp_clearPlayerStatus1(0,0x7fb7b78); cancelHookshotShot(); - if (mEquipItem == 0x109) { + if (mEquipItem == noentry77) { deleteEquipItem(0, 0); } diff --git a/src/d/a/d_a_alink_boom.inc b/src/d/a/d_a_alink_boom.inc index d93b25eb7d..7985708fa6 100644 --- a/src/d/a/d_a_alink_boom.inc +++ b/src/d/a/d_a_alink_boom.inc @@ -141,7 +141,7 @@ BOOL daAlink_c::checkBoomerangAnime() const { /* 800E04AC-800E04E8 0DADEC 003C+00 13/13 0/0 0/0 .text checkBoomerangThrowAnime__9daAlink_cCFv */ BOOL daAlink_c::checkBoomerangThrowAnime() const { - return (mEquipItem == BOOMERANG || i_checkNoResetFlg1(FLG1_UNK_2) || mEquipItem == 0x102) && + return (mEquipItem == BOOMERANG || i_checkNoResetFlg1(FLG1_UNK_2) || mEquipItem == noentry71) && checkUpperAnime(0x53); } diff --git a/src/d/a/d_a_alink_canoe.inc b/src/d/a/d_a_alink_canoe.inc index 856f426dcd..e3557ac28e 100644 --- a/src/d/a/d_a_alink_canoe.inc +++ b/src/d/a/d_a_alink_canoe.inc @@ -109,7 +109,7 @@ BOOL daAlink_c::checkFishingRodGrab(fopAc_ac_c* param_0) const { /* 800F3EB8-800F3F38 0EE7F8 0080+00 0/0 0/0 2/2 .text * checkCanoePaddleGrab__9daAlink_cCFP10fopAc_ac_c */ BOOL daAlink_c::checkCanoePaddleGrab(fopAc_ac_c* param_0) const { - return mEquipItem == 0x10B && checkCanoeRideOwn(param_0); + return mEquipItem == noentry79 && checkCanoeRideOwn(param_0); } /* 800F3F38-800F3FC4 0EE878 008C+00 0/0 0/0 1/1 .text checkCanoeFishingRodGrabOrPut__9daAlink_cCFv diff --git a/src/d/a/d_a_alink_link.inc b/src/d/a/d_a_alink_link.inc index ea2fb7b208..55c8ec1dca 100644 --- a/src/d/a/d_a_alink_link.inc +++ b/src/d/a/d_a_alink_link.inc @@ -972,7 +972,7 @@ int daAlink_c::procBackJump() { offModeFlg(0x2000); } - if (checkCutTurnInput() && mEquipItem == 0x103) { + if (checkCutTurnInput() && mEquipItem == EQUIP_SWORD) { field_0x3198 = getCutTurnDirection(); } @@ -1031,7 +1031,7 @@ int daAlink_c::procBackJumpLand() { checkNextAction(0); } } else if (frameCtrl->getFrame() > daAlinkHIO_backJump_c0::m.mLandAnm.mCheckFrame) { - if (mEquipItem == 0x103 && (field_0x3198 != 2 || checkCutTurnInput())) { + if (mEquipItem == EQUIP_SWORD && (field_0x3198 != 2 || checkCutTurnInput())) { return procCutTurnInit(1, field_0x3198); } @@ -1795,7 +1795,7 @@ int daAlink_c::execute() { if (dComIfGp_event_runCheck()) { field_0x3184 = dComIfGp_evmng_getMyStaffId("Alink", this, 0); - if (mEvtInfo.checkCommandDoor() && !dComIfGp_event_chkEventFlag(4) && mEquipItem == 0x102) { + if (mEvtInfo.checkCommandDoor() && !dComIfGp_event_chkEventFlag(4) && mEquipItem == noentry71) { deleteEquipItem(FALSE, FALSE); } } @@ -1870,7 +1870,7 @@ int daAlink_c::execute() { field_0x2f9d = 0; field_0x2fc1 = 6; - if (!checkSwordGet() && mEquipItem == 0x103) { + if (!checkSwordGet() && mEquipItem == EQUIP_SWORD) { deleteEquipItem(FALSE, FALSE); } @@ -2068,7 +2068,7 @@ int daAlink_c::execute() { } } - if (checkEndResetFlg0(ERFLG0_UNK_1000000) && mEquipItem == 0x103) { + if (checkEndResetFlg0(ERFLG0_UNK_1000000) && mEquipItem == EQUIP_SWORD) { mSwordFlourishTimer = daAlinkHIO_cut_c0::m.mFlourishTime; } @@ -3648,7 +3648,7 @@ s32 daAlink_c::getItemID() const { /* 800D0370-800D038C 0CACB0 001C+00 1/0 0/0 0/0 .text getGrabActorID__9daAlink_cCFv */ s32 daAlink_c::getGrabActorID() const { - if (mEquipItem == 0x102) { + if (mEquipItem == noentry71) { return mItemAcKeep.getID(); } else { return mGrabItemAcKeep.getID(); diff --git a/src/d/d_lib.cpp b/src/d/d_lib.cpp index 1716be27b7..1f95b31806 100644 --- a/src/d/d_lib.cpp +++ b/src/d/d_lib.cpp @@ -77,8 +77,11 @@ extern "C" u8 now__14mDoMtx_stack_c[48]; /* ############################################################################################## */ /* 803A7240-803A7250 004360 0010+00 0/0 0/0 6/6 .data ZeroQuat */ -SECTION_DATA extern u8 ZeroQuat[16] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, +Quaternion ZeroQuat = { + 0.0f, + 0.0f, + 0.0f, + 1.0f }; /* 803A7250-803A7260 004370 0010+00 0/0 1/1 0/0 .data __vt__10CSTControl */ diff --git a/src/d/file/d_file_select.cpp b/src/d/file/d_file_select.cpp index 8e4a48d54f..ad00d8473a 100644 --- a/src/d/file/d_file_select.cpp +++ b/src/d/file/d_file_select.cpp @@ -1,557 +1,15 @@ -// -// Generated By: dol2asm -// Translation Unit: d/file/d_file_select -// +/** + * d_file_select.cpp + * dolzel2 - Quest Log Management (File Select Menu) + */ + +// temp hack to get the TU to match +#define __dt__15J2DAnmTransformFv_DEFINED #include "d/file/d_file_select.h" #include "dol2asm.h" #include "dolphin/types.h" -// -// Types: -// - -struct mDoRst { - static u8 mResetData[4 + 4 /* padding */]; -}; - -struct mDoMtx_stack_c { - static u8 now[48]; -}; - -struct mDoMemCd_Ctrl_c { - /* 800169B4 */ void load(); - /* 80016AB0 */ void LoadSync(void*, u32, u32); - /* 80016B58 */ void save(void*, u32, u32); - /* 80016CE0 */ void SaveSync(); - /* 80016D74 */ void getStatus(u32); - /* 80016E58 */ void command_format(); - /* 80016F2C */ void FormatSync(); -}; - -struct mDoGph_gInf_c { - static u8 mFadeColor[4]; - static u8 mFader[4]; -}; - -struct J3DMaterialTable {}; - -struct J3DModelData {}; - -struct J3DAnmTevRegKey { - /* 8032B87C */ void searchUpdateMaterialID(J3DModelData*); -}; - -struct mDoExt_brkAnm { - /* 8000D70C */ void init(J3DMaterialTable*, J3DAnmTevRegKey*, int, int, f32, s16, s16); - /* 8000D7A8 */ void entry(J3DMaterialTable*, f32); -}; - -struct J3DAnmTransform {}; - -struct mDoExt_bckAnm { - /* 8000D7DC */ void init(J3DAnmTransform*, int, int, f32, s16, s16, bool); - /* 8000D9CC */ void entry(J3DModelData*, f32); -}; - -struct mDoExt_baseAnm { - /* 8000D428 */ void play(); -}; - -struct mDoCPd_c { - static u8 m_cpadInfo[256]; -}; - -struct dSv_save_c {}; - -struct dSv_player_get_item_c { - /* 80033EC8 */ void isFirstBit(u8) const; -}; - -struct dSv_player_collect_c { - /* 8003424C */ void isCollectCrystal(u8) const; - /* 80034290 */ void isCollectMirror(u8) const; -}; - -struct dSv_info_c { - /* 80034FCC */ void init(); - /* 80035A04 */ void card_to_memory(char*, int); - /* 80035BD0 */ void initdata_to_card(char*, int); -}; - -struct dSv_event_c { - /* 800349BC */ void isEventBit(u16) const; -}; - -struct J2DAnmTextureSRTKey { - /* 80184274 */ ~J2DAnmTextureSRTKey(); -}; - -struct JGeometry { - template - struct TBox2 {}; - /* TBox2 */ - struct TBox2__template0 {}; -}; - -struct J2DPane { - /* 8018BF28 */ void setAnimation(J2DAnmTextureSRTKey*); - /* 802F5E88 */ J2DPane(u64, JGeometry::TBox2 const&); - /* 802F6714 */ void insertChild(J2DPane*, J2DPane*); - /* 802F7FCC */ void animationTransform(); -}; - -struct JKRArchive {}; - -struct dSelect_cursor_c { - /* 80194220 */ dSelect_cursor_c(u8, f32, JKRArchive*); - /* 801950F4 */ void setPos(f32, f32, J2DPane*, bool); - /* 801951B0 */ void setParam(f32, f32, f32, f32, f32); - /* 801952A0 */ void setAlphaRate(f32); -}; - -struct dKy_tevstr_c {}; - -struct cXyz { - static f32 Zero[3]; -}; - -struct dScnKy_env_light_c { - /* 801A37C4 */ void settingTevStruct(int, cXyz*, dKy_tevstr_c*); - /* 801A4DA0 */ void setLightTevColorType_MAJI(J3DModelData*, dKy_tevstr_c*); -}; - -struct dName_c { - /* 8024E408 */ dName_c(J2DPane*); - /* 8024E7A4 */ void initial(); - /* 8024E7EC */ void showIcon(); - /* 8024E9A0 */ void _move(); - /* 80250560 */ void _draw(); -}; - -struct JUtility { - struct TColor {}; -}; - -struct J2DTextBox { - /* 80186C84 */ void setWhite(JUtility::TColor); - /* 80300658 */ void getStringPtr() const; - /* 80300660 */ void setString(char const*, ...); - /* 8030074C */ void setString(s16, char const*, ...); -}; - -struct JUTFont {}; - -struct COutFont_c {}; - -struct dMsgString_c { - /* 80191B6C */ void getString(u32, J2DTextBox*, J2DTextBox*, JUTFont*, COutFont_c*, u8); - /* 80249C20 */ dMsgString_c(); - /* 80249D28 */ ~dMsgString_c(); -}; - -struct dMsgStringBase_c { - /* 80249768 */ void getStringLocal(u32, J2DTextBox*, J2DTextBox*, JUTFont*, COutFont_c*, u8); -}; - -struct JMSMesgEntry_c {}; - -struct dMeter2Info_c { - /* 8021C238 */ void decMsgKeyWaitTimer(); - /* 8021C250 */ void getString(u32, char*, JMSMesgEntry_c*); -}; - -struct dFs_HIO_c { - /* 801835F8 */ dFs_HIO_c(); - /* 801913E0 */ ~dFs_HIO_c(); -}; - -struct dFile_warning_c { - /* 80191BAC */ dFile_warning_c(JKRArchive*, u8); - /* 80191F18 */ void _move(); - /* 801920B8 */ void openInit(); - /* 8019210C */ void closeInit(); - /* 80192160 */ void init(); - /* 80192190 */ void _draw(); -}; - -struct dFile_select_c { - /* 8018366C */ dFile_select_c(JKRArchive*); - /* 8018375C */ ~dFile_select_c(); - /* 801843CC */ void _create(); - /* 801844FC */ void _move(); - /* 80184664 */ void selFileWakuAnm(); - /* 801848A0 */ void bookIconAnm(); - /* 8018499C */ void selCopyFileWakuAnm(); - /* 80184A48 */ void copyBookIconAnm(); - /* 80184B44 */ void dataDelEffAnm(); - /* 80184BFC */ void dataCopyEffAnm(); - /* 80184CB4 */ void selectDataBaseMoveAnmInitSet(int, int); - /* 80184D4C */ void selectDataBaseMoveAnm(); - /* 80184E38 */ void dataSelectInAnmSet(); - /* 80185040 */ void dataSelectIn(); - /* 80185230 */ void dataSelectInit(); - /* 801853C4 */ void dataSelect(); - /* 80185508 */ void dataSelectStart(); - /* 80185994 */ void selectDataMoveAnmInitSet(int, int); - /* 80185AAC */ void selectDataMoveAnm(); - /* 80185C2C */ void dataSelectAnmSet(); - /* 80185DE0 */ void dataSelectMoveAnime(); - /* 80186088 */ void makeRecInfo(u8); - /* 801864DC */ void selectDataOpenMove(); - /* 80186638 */ void selectDataNameMove(); - /* 801866C8 */ void selectDataOpenEraseMove(); - /* 80186774 */ void menuSelect(); - /* 801868EC */ void menuSelectStart(); - /* 80186A80 */ void menuSelectCansel(); - /* 80186B48 */ void menuMoveAnmInitSet(int, int); - /* 80186CAC */ void menuMoveAnm(); - /* 80186E14 */ void menuSelectAnmSet(); - /* 80186F98 */ void menuSelectMoveAnm(); - /* 8018721C */ void ToNameMove(); - /* 801872C4 */ void ToNameMove2(); - /* 80187384 */ void nameInputWait(); - /* 801873BC */ void nameInput(); - /* 801874F8 */ void nameToDataSelectMove(); - /* 8018759C */ void nameInputFade(); - /* 801876A0 */ void nameInput2Move(); - /* 8018774C */ void nameInput2(); - /* 80187824 */ void backNameInputMove0(); - /* 80187908 */ void backNameInputMove(); - /* 801879B8 */ void ToCopyPaneMove(); - /* 80187ADC */ void ToErasePaneMove(); - /* 80187B44 */ void backSelectMove(); - /* 80187BE8 */ void copySelMoveAnmInitSet(int, int); - /* 80187DB8 */ void setSaveDataForCopySel(); - /* 80187ED4 */ void copyDataToSelect(); - /* 8018801C */ void copyDataToSelectStart(); - /* 80188234 */ void copyDataToSelectCansel(); - /* 8018832C */ void copyDataToSelectMoveAnmSet(); - /* 801884D0 */ void copyDataToSelectMoveAnm(); - /* 80188834 */ void copySelectWakuAlpahAnmInit(u8, u8, u8, u8); - /* 80188878 */ void copySelectWakuAlpahAnm(u8); - /* 80188950 */ void getCptoNum(u8); - /* 80188994 */ void copyToSelBack(); - /* 80188B54 */ void copyToSelPaneMove(); - /* 80188BBC */ void yesnoMenuMoveAnmInitSet(int, int); - /* 80188D38 */ void yesnoMenuMoveAnm(); - /* 80188ED0 */ void yesnoSelectMoveAnm(); - /* 8018912C */ void yesnoCursorShow(); - /* 8018929C */ void YesNoSelect(); - /* 801893E4 */ void yesNoSelectStart(); - /* 8018978C */ void yesnoSelectAnmSet(); - /* 80189904 */ void yesnoCancelAnmSet(); - /* 80189A24 */ void YesNoCancelMove(); - /* 80189BA8 */ void yesNoCursorMoveAnm(); - /* 80189C14 */ void CmdExecPaneMove0(); - /* 80189E28 */ void CommandExec(); - /* 80189F68 */ void DataEraseWait(); - /* 80189FFC */ void DataEraseWait2(); - /* 8018A194 */ void ErasePaneMoveOk(); - /* 8018A2DC */ void ErasePaneMoveOk2(); - /* 8018A3B0 */ void eraseEndBackSelectWait(); - /* 8018A444 */ void eraseEndBackSelect(); - /* 8018A4D0 */ void DataCopyWait(); - /* 8018A564 */ void DataCopyWait2(); - /* 8018A6F8 */ void copyPaneMoveOk(); - /* 8018A868 */ void copyPaneMoveOk2(); - /* 8018A960 */ void ErrorMsgPaneMove(); - /* 8018AAC4 */ void backDatSelPaneMove(); - /* 8018AC3C */ void backDatSelWait(); - /* 8018AD38 */ void backDatSelWait2(); - /* 8018AD9C */ void nextModeWait(); - /* 8018ADA0 */ void screenSet(); - /* 8018BF2C */ void screenSetCopySel(); - /* 8018C524 */ void screenSetYesNo(); - /* 8018C8F4 */ void screenSet3Menu(); - /* 8018CCD0 */ void screenSetDetail(); - /* 8018CE38 */ void setWakuAnm(); - /* 8018CF50 */ void displayInit(); - /* 8018D044 */ void setSaveData(); - /* 8018D0E4 */ void headerTxtSet(u16, u8, u8); - /* 8018D25C */ void headerTxtChangeAnm(); - /* 8018D344 */ void modoruTxtChange(u8); - /* 8018D3A0 */ void modoruTxtDispAnmInit(u8); - /* 8018D41C */ void modoruTxtDispAnm(); - /* 8018D4F8 */ void ketteiTxtDispAnmInit(u8); - /* 8018D574 */ void ketteiTxtDispAnm(); - /* 8018D650 */ void selectWakuAlpahAnmInit(u8, u8, u8, u8); - /* 8018D68C */ void selectWakuAlpahAnm(u8); - /* 8018D764 */ void selFileCursorShow(); - /* 8018D884 */ void menuWakuAlpahAnmInit(u8, u8, u8, u8); - /* 8018D8C8 */ void menuWakuAlpahAnm(u8); - /* 8018DA10 */ void menuCursorShow(); - /* 8018DB80 */ void yesnoWakuAlpahAnmInit(u8, u8, u8, u8); - /* 8018DBCC */ void yesnoWakuAlpahAnm(u8); - /* 8018DD38 */ void _draw(); - /* 8018E130 */ void errorMoveAnmInitSet(int, int); - /* 8018E1C0 */ void errorMoveAnm(); - /* 8018E2B4 */ void errDispInitSet(int, int); - /* 8018E4CC */ void MemCardCheckMain(); - /* 8018E504 */ void MemCardStatCheck(); - /* 8018E7C4 */ void MemCardLoadWait(); - /* 8018E93C */ void MemCardErrMsgWaitKey(); - /* 8018E9B0 */ void noFileSpaceDispInit(); - /* 8018E9D4 */ void MemCardNoFileSpaceDisp(); - /* 8018EA3C */ void iplSelDispInit(); - /* 8018EA90 */ void MemCardGotoIPLSelectDisp(); - /* 8018EB10 */ void MemCardGotoIPLSelect(); - /* 8018EBCC */ void MemCardGotoIPL(); - /* 8018EC4C */ void noSaveSelDispInit(); - /* 8018ECBC */ void MemCardNoSaveSelDisp(); - /* 8018ED80 */ void MemCardErrMsgWaitNoSaveSel(); - /* 8018EF5C */ void formatYesSelDispInitSet(); - /* 8018EFAC */ void formatNoSelDispInitSet(); - /* 8018EFFC */ void MemCardFormatYesSelDisp(); - /* 8018F080 */ void MemCardFormatNoSelDisp(); - /* 8018F128 */ void MemCardErrMsgWaitFormatSel(); - /* 8018F17C */ void formatYesSel2DispInitSet(); - /* 8018F1CC */ void MemCardErrMsgWaitFormatSel2(); - /* 8018F228 */ void MemCardFormatYesSel2Disp(); - /* 8018F2A4 */ void MemCardFormat(); - /* 8018F304 */ void MemCardFormatWait(); - /* 8018F374 */ void MemCardFormatCheck(); - /* 8018F400 */ void MemCardMakeGameFileSel(); - /* 8018F488 */ void MemCardMakeGameFileSelDisp(); - /* 8018F580 */ void MemCardMakeGameFile(); - /* 8018F5E0 */ void MemCardMakeGameFileWait(); - /* 8018F650 */ void MemCardMakeGameFileCheck(); - /* 8018F6DC */ void MemCardMsgWindowInitOpen(); - /* 8018F8D8 */ void MemCardMsgWindowOpen(); - /* 8018F974 */ void MemCardMsgWindowClose(); - /* 8018FA2C */ void errYesNoSelect(); - /* 8018FB80 */ void errCurMove(u8); - /* 8018FBF8 */ void MemCardErrYesNoCursorMoveAnm(); - /* 8018FC64 */ void errorTxtSet(u16); - /* 8018FD30 */ void errorTxtChangeAnm(); - /* 8018FE18 */ void fileRecScaleAnm(); - /* 8018FE64 */ void fileRecScaleAnmInitSet2(f32, f32); - /* 8018FEF4 */ void fileRecScaleAnm2(); - /* 8018FF9C */ void fileInfoScaleAnm(); - /* 80190074 */ void nameMoveAnmInitSet(int, int); - /* 80190124 */ void nameMoveAnm(); - /* 80190208 */ void MemCardSaveDataClear(); - /* 80190254 */ void setInitSaveData(); - /* 801902B8 */ void dataSave(); -}; - -struct dFile_select3D_c { - /* 801902F0 */ dFile_select3D_c(); - /* 80190380 */ ~dFile_select3D_c(); - /* 801903DC */ void _create(u8, u8); - /* 8019049C */ void _delete(); - /* 801904A0 */ void freeHeap(); - /* 801904E4 */ void _move(); - /* 801905A8 */ void draw(); - /* 8019065C */ void setJ3D(char const*, char const*, char const*); - /* 8019095C */ void set_mtx(); - /* 80190A14 */ void animePlay(); - /* 80190B44 */ void animeEntry(); - /* 80190BA8 */ void createMaskModel(); - /* 80190D68 */ void createMirrorModel(); - /* 80190FE8 */ void toItem3Dpos(f32, f32, f32, cXyz*); - /* 801910D4 */ void calcViewMtx(f32 (*)[4]); -}; - -struct dFile_info_c { - /* 80192434 */ dFile_info_c(JKRArchive*, u8); - /* 80192954 */ void setSaveData(dSv_save_c*, int, u8); - /* 80192D60 */ void _draw(); -}; - -struct dDlst_base_c {}; - -struct dDlst_list_c { - /* 80056794 */ void set(dDlst_base_c**&, dDlst_base_c**&, dDlst_base_c*); -}; - -struct dDlst_FileSel_c { - /* 8018DEBC */ void draw(); - /* 8019135C */ ~dDlst_FileSel_c(); -}; - -struct dDlst_FileSelYn_c { - /* 8018E0C0 */ void draw(); - /* 801911F4 */ ~dDlst_FileSelYn_c(); -}; - -struct dDlst_FileSelDt_c { - /* 8018DEF4 */ void draw(); - /* 801912E4 */ ~dDlst_FileSelDt_c(); -}; - -struct dDlst_FileSelCp_c { - /* 8018DFFC */ void draw(); - /* 8019126C */ ~dDlst_FileSelCp_c(); -}; - -struct dDlst_FileSel3m_c { - /* 8018E0F8 */ void draw(); - /* 8019117C */ ~dDlst_FileSel3m_c(); -}; - -struct dComIfG_play_c { - /* 8002B2C8 */ void itemInit(); -}; - -struct JAISoundID {}; - -struct Vec {}; - -struct Z2SeMgr { - /* 802AB984 */ void seStart(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8); - /* 802AC50C */ void seStartLevel(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8); -}; - -struct Z2AudioMgr { - static u8 mAudioMgrPtr[4 + 4 /* padding */]; -}; - -struct STControl { - /* 80032044 */ STControl(s16, s16, s16, s16, f32, f32, s16, s16); - /* 8003219C */ void checkTrigger(); - /* 8003242C */ void checkLeftTrigger(); - /* 800324A8 */ void checkRightTrigger(); - /* 80032524 */ void checkUpTrigger(); - /* 800325A0 */ void checkDownTrigger(); -}; - -struct ResTLUT {}; - -struct ResTIMG {}; - -struct JUTNameTab { - /* 80191134 */ ~JUTNameTab(); -}; - -struct JKRSolidHeap { - /* 802D0BF4 */ void adjustSize(); -}; - -struct JKRHeap {}; - -struct JKRFileLoader { - /* 802D4270 */ void getGlbResource(char const*, JKRFileLoader*); -}; - -struct JKRExpHeap {}; - -struct JFWDisplay { - static u8 sManager[4]; -}; - -struct J3DVertexBuffer { - /* 80310FD8 */ void init(); -}; - -struct J3DTransformInfo {}; - -struct J3DTexNoAnm { - /* 8003B1F8 */ ~J3DTexNoAnm(); - /* 8003B240 */ J3DTexNoAnm(); -}; - -struct J3DTexMtxAnm { - /* 8003B264 */ ~J3DTexMtxAnm(); - /* 8003B2A0 */ J3DTexMtxAnm(); -}; - -struct J3DTevKColorAnm { - /* 8003B150 */ ~J3DTevKColorAnm(); - /* 8003B18C */ J3DTevKColorAnm(); -}; - -struct J3DTevColorAnm { - /* 8003B1A4 */ ~J3DTevColorAnm(); - /* 8003B1E0 */ J3DTevColorAnm(); -}; - -struct J3DModelLoaderDataBase { - /* 803346BC */ void load(void const*, u32); -}; - -struct J3DModel { - /* 80327100 */ void initialize(); - /* 80327184 */ void entryModelData(J3DModelData*, u32, u32); -}; - -struct J3DMaterialAnm { - /* 8032C320 */ void initialize(); -}; - -struct J3DMatColorAnm { - /* 8003B2B8 */ ~J3DMatColorAnm(); - /* 8003B2F4 */ J3DMatColorAnm(); -}; - -struct J3DLightObj { - /* 80018C0C */ J3DLightObj(); -}; - -struct J3DLightInfo { - /* 803256C4 */ void operator=(J3DLightInfo const&); -}; - -struct J3DFrameCtrl { - /* 803283FC */ void init(s16); -}; - -struct J3DAnmLoaderDataBaseFlag {}; - -struct J3DAnmLoaderDataBase { - /* 80337B40 */ void load(void const*, J3DAnmLoaderDataBaseFlag); -}; - -struct J2DGrafContext {}; - -struct J2DScreen { - /* 802F8498 */ J2DScreen(); - /* 802F8648 */ void setPriority(char const*, u32, JKRArchive*); - /* 802F8ED4 */ void draw(f32, f32, J2DGrafContext const*); - /* 802F9690 */ void animation(); -}; - -struct J2DPicture { - /* 8018BEE0 */ void setBlackWhite(JUtility::TColor, JUtility::TColor); - /* 802FC800 */ J2DPicture(u64, JGeometry::TBox2 const&, ResTIMG const*, ResTLUT const*); -}; - -struct J2DAnmTransform { - /* 80184370 */ ~J2DAnmTransform(); - /* 80191130 */ void getTransform(u16, J3DTransformInfo*) const; -}; - -struct J2DAnmTevRegKey { - /* 801841EC */ ~J2DAnmTevRegKey(); -}; - -struct J2DAnmLoaderDataBase { - /* 80308A6C */ void load(void const*); -}; - -struct J2DAnmColor { - /* 801842FC */ ~J2DAnmColor(); -}; - -struct J2DAnmBase { - /* 800569B0 */ void searchUpdateMaterialID(J2DScreen*); -}; - -struct CPaneMgrAlpha { - /* 802553FC */ CPaneMgrAlpha(J2DScreen*, u64, u8, JKRExpHeap*); - /* 802555C8 */ void show(); - /* 80255608 */ void hide(); - /* 80255878 */ void alphaAnime(s16, u8, u8, u8); -}; - -struct CPaneMgr { - /* 80253984 */ CPaneMgr(J2DScreen*, u64, u8, JKRExpHeap*); - /* 80253B2C */ void reinit(); - /* 802547CC */ void scaleAnime(s16, f32, f32, u8); - /* 802548BC */ void colorAnime(s16, JUtility::TColor, JUtility::TColor, JUtility::TColor, - JUtility::TColor, u8); - /* 80254EBC */ void getGlobalVtxCenter(J2DPane*, bool, s16); -}; // // Forward References: @@ -758,7 +216,6 @@ extern "C" extern char const* const d_file_d_file_select__stringBase0; // External References: // -SECTION_INIT void memcpy(); extern "C" void mDoMtx_XYZrotM__FPA4_fsss(); extern "C" void mDoMtx_lookAt__FPA4_fPC3VecPC3VecPC3Vecs(); extern "C" void play__14mDoExt_baseAnmFv(); @@ -877,13 +334,6 @@ extern "C" void searchUpdateMaterialID__15J3DAnmTevRegKeyFP12J3DModelData(); extern "C" void initialize__14J3DMaterialAnmFv(); extern "C" void load__22J3DModelLoaderDataBaseFPCvUl(); extern "C" void load__20J3DAnmLoaderDataBaseFPCv24J3DAnmLoaderDataBaseFlag(); -extern "C" void PSMTXCopy(); -extern "C" void PSMTXConcat(); -extern "C" void PSMTXInverse(); -extern "C" void PSMTXTrans(); -extern "C" void PSMTXScale(); -extern "C" void PSMTXMultVec(); -extern "C" void DVDGetDriveStatus(); extern "C" void __register_global_object(); extern "C" void __construct_array(); extern "C" void __ptmf_test(); @@ -905,9 +355,6 @@ extern "C" void _restgpr_27(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); extern "C" void __div2i(); -extern "C" void strcpy(); -extern "C" void tan(); -extern "C" extern u8 const j3dDefaultLightInfo[52]; extern "C" extern u8 const __ptmf_null[12 + 4 /* padding */]; extern "C" extern void* __vt__12J3DFrameCtrl[3]; extern "C" extern void* __vt__12dDlst_base_c[3]; @@ -919,14 +366,8 @@ extern "C" extern void* __vt__8J3DModel[9]; extern "C" extern void* __vt__14J3DMaterialAnm[4]; extern "C" u8 m_cpadInfo__8mDoCPd_c[256]; extern "C" u8 now__14mDoMtx_stack_c[48]; -extern "C" extern u8 g_mDoMemCd_control[8192]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; -extern "C" extern u8 g_env_light[4880]; -extern "C" extern u8 g_meter2_info[248]; extern "C" f32 Zero__4cXyz[3]; -extern "C" extern u8 j3dSys[284]; extern "C" u8 mFadeColor__13mDoGph_gInf_c[4]; -extern "C" extern u32 g_blackColor; extern "C" u8 mFader__13mDoGph_gInf_c[4]; extern "C" u8 mResetData__6mDoRst[4 + 4 /* padding */]; extern "C" u8 sManager__10JFWDisplay[4]; @@ -1001,39 +442,31 @@ SECTION_DATA static u8 SelEndFrameTbl[12] = { }; /* 803BA86C-803BA878 01798C 000C+00 7/7 0/0 0/0 .data SelOpenStartFrameTbl */ -SECTION_DATA static u8 SelOpenStartFrameTbl[12] = { - 0x00, 0x00, 0x00, 0xF8, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x02, 0x88, +SECTION_DATA static u32 SelOpenStartFrameTbl[3] = { + 0x000000F8, + 0x000001C0, + 0x00000288, }; /* 803BA878-803BA884 017998 000C+00 7/7 0/0 0/0 .data SelOpenEndFrameTbl */ -SECTION_DATA static u8 SelOpenEndFrameTbl[12] = { - 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x01, 0xCC, 0x00, 0x00, 0x02, 0x93, +SECTION_DATA static u32 SelOpenEndFrameTbl[3] = { + 0x00000103, + 0x000001CC, + 0x00000293, }; /* 803BA884-803BA890 0179A4 000C+00 5/5 0/0 0/0 .data MenuSelStartFrameTbl */ -SECTION_DATA static u8 MenuSelStartFrameTbl[12] = { - 0x00, 0x00, 0x07, 0xCD, 0x00, 0x00, 0x03, 0x82, 0x00, 0x00, 0x03, 0x90, +SECTION_DATA static u32 MenuSelStartFrameTbl[3] = { + 0x000007CD, + 0x00000382, + 0x00000390, }; /* 803BA890-803BA8A0 0179B0 000C+04 3/3 0/0 0/0 .data MenuSelEndFrameTbl */ -SECTION_DATA static u8 MenuSelEndFrameTbl[12 + 4 /* padding */] = { - 0x00, - 0x00, - 0x07, - 0xDB, - 0x00, - 0x00, - 0x03, - 0x8E, - 0x00, - 0x00, - 0x03, - 0x82, - /* padding */ - 0x00, - 0x00, - 0x00, - 0x00, +SECTION_DATA static u32 MenuSelEndFrameTbl[4] = { + 0x000007DB, + 0x0000038E, + 0x00000382, }; /* 803BA8A0-803BA8B8 0179C0 0018+00 0/2 0/0 0/0 .data l_tagName13 */ @@ -2336,6 +1769,30 @@ SECTION_DATA extern void* __vt__9dFs_HIO_c[3 + 1 /* padding */] = { SECTION_SDATA2 static f32 lit_3812 = 111.0f / 100.0f; /* 801835F8-8018366C 17DF38 0074+00 1/1 0/0 0/0 .text __ct__9dFs_HIO_cFv */ +#ifdef NONMATCHING +// matches with literals +dFs_HIO_c::dFs_HIO_c() { + field_0x0006 = 5; + field_0x0007 = 5; + field_0x000a = 60; + field_0x0008 = 5; + field_0x0009 = 15; + field_0x0005 = 5; + field_0x000b = 15; + field_0x000d = 15; + field_0x000c = 90; + field_0x0010 = 1.11f; + field_0x0014 = 1.11f; + field_0x0018 = 1.11f; + field_0x001c = 0; + field_0x001d = 0; + field_0x001e = 0; + field_0x001f = 0; + field_0x0020 = 0; + field_0x0021 = 0; + field_0x0022 = 0; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -2344,8 +1801,17 @@ asm dFs_HIO_c::dFs_HIO_c() { #include "asm/d/file/d_file_select/__ct__9dFs_HIO_cFv.s" } #pragma pop +#endif /* 8018366C-8018375C 17DFAC 00F0+00 0/0 1/1 0/0 .text __ct__14dFile_select_cFP10JKRArchive */ +#ifdef NONMATCHING +// inheritance/vtable mess needs to be fixed first +dFile_select_c::dFile_select_c(JKRArchive* i_archiveP) { + mpArchive = i_archiveP; + mpMessageFont = mDoExt_getMesgFont(); + mpSubFont = mDoExt_getSubFont(); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -2354,6 +1820,7 @@ asm dFile_select_c::dFile_select_c(JKRArchive* param_0) { #include "asm/d/file/d_file_select/__ct__14dFile_select_cFP10JKRArchive.s" } #pragma pop +#endif /* 8018375C-801841EC 17E09C 0A90+00 1/0 0/0 0/0 .text __dt__14dFile_select_cFv */ #pragma push @@ -2369,7 +1836,8 @@ asm dFile_select_c::~dFile_select_c() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm J2DAnmTevRegKey::~J2DAnmTevRegKey() { +// asm J2DAnmTevRegKey::~J2DAnmTevRegKey() { +extern "C" asm void __dt__15J2DAnmTevRegKeyFv() { nofralloc #include "asm/d/file/d_file_select/__dt__15J2DAnmTevRegKeyFv.s" } @@ -2379,7 +1847,8 @@ asm J2DAnmTevRegKey::~J2DAnmTevRegKey() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm J2DAnmTextureSRTKey::~J2DAnmTextureSRTKey() { +// asm J2DAnmTextureSRTKey::~J2DAnmTextureSRTKey() { +extern "C" asm void __dt__19J2DAnmTextureSRTKeyFv() { nofralloc #include "asm/d/file/d_file_select/__dt__19J2DAnmTextureSRTKeyFv.s" } @@ -2389,7 +1858,8 @@ asm J2DAnmTextureSRTKey::~J2DAnmTextureSRTKey() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm J2DAnmColor::~J2DAnmColor() { +// asm J2DAnmColor::~J2DAnmColor() { +extern "C" asm void __dt__11J2DAnmColorFv() { nofralloc #include "asm/d/file/d_file_select/__dt__11J2DAnmColorFv.s" } @@ -2399,7 +1869,8 @@ asm J2DAnmColor::~J2DAnmColor() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm J2DAnmTransform::~J2DAnmTransform() { +// asm J2DAnmTransform::~J2DAnmTransform() { +extern "C" asm void __dt__15J2DAnmTransformFv() { nofralloc #include "asm/d/file/d_file_select/__dt__15J2DAnmTransformFv.s" } @@ -2410,7 +1881,7 @@ asm J2DAnmTransform::~J2DAnmTransform() { static u8 lit_3807[12]; /* 8042C9EC-8042CA10 05970C 0024+00 35/35 0/0 0/0 .bss g_fsHIO */ -static u8 g_fsHIO[36]; +static dFs_HIO_c_tmp g_fsHIO; /* 8045392C-80453930 001F2C 0004+00 1/1 0/0 0/0 .sdata2 @4165 */ SECTION_SDATA2 static f32 lit_4165 = 9.0f / 10.0f; @@ -2423,6 +1894,13 @@ SECTION_SDATA2 static f32 lit_4166[1 + 1 /* padding */] = { }; /* 801843CC-801844FC 17ED0C 0130+00 0/0 1/1 0/0 .text _create__14dFile_select_cFv */ +#ifdef NONMATCHING +void dFile_select_c::_create() { + mDoGph_gInf_c::setFadeColor(static_cast(g_blackColor)); + mStick = new STControl(); + g_fsHIO.field_0x0004 = -1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -2431,6 +1909,7 @@ asm void dFile_select_c::_create() { #include "asm/d/file/d_file_select/_create__14dFile_select_cFv.s" } #pragma pop +#endif /* 801844FC-80184664 17EE3C 0168+00 0/0 1/1 0/0 .text _move__14dFile_select_cFv */ #pragma push @@ -2705,6 +2184,36 @@ asm void dFile_select_c::selectDataOpenEraseMove() { #pragma pop /* 80186774-801868EC 1810B4 0178+00 1/0 0/0 0/0 .text menuSelect__14dFile_select_cFv */ +#ifdef NONMATCHING +// matches with literals +void dFile_select_c::menuSelect() { + mStick->checkTrigger(); + + if (mDoCPd_c::getTrigA(PAD_1)) { + menuSelectStart(); + } else { + if (mDoCPd_c::getTrigB(PAD_1)) { + menuSelectCansel(); + } else { + if (mStick->checkRightTrigger()) { + if (field_0x0258[mSelectNum] == 0 && field_0x0267 != 0) { + mDoAud_seStart(Z2SE_SY_MENU_CURSOR_COMMON,0,0,0); + field_0x0266 = field_0x0267; + field_0x0267--; + menuSelectAnmSet(); + field_0x026f = 9; + } + } else if (mStick->checkLeftTrigger() && field_0x0258[mSelectNum] == 0 && field_0x0267 != 2) { + mDoAud_seStart(Z2SE_SY_MENU_CURSOR_COMMON,0,0,0); + field_0x0266 = field_0x0267; + field_0x0267++; + menuSelectAnmSet(); + field_0x026f = 9; + } + } + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -2713,9 +2222,41 @@ asm void dFile_select_c::menuSelect() { #include "asm/d/file/d_file_select/menuSelect__14dFile_select_cFv.s" } #pragma pop +#endif /* 801868EC-80186A80 18122C 0194+00 1/1 0/0 0/0 .text menuSelectStart__14dFile_select_cFv */ +#ifdef NONMATCHING +// matches with literals +void dFile_select_c::menuSelectStart() { + mDoAud_seStart(Z2SE_SY_CURSOR_OK,0,0,0); + + if (field_0x0267 == 1) { + dComIfGs_setCardToMemory(&mpMemCard,mSelectNum); + field_0x0270 = 1; + field_0x026f = 0x2e; + dComIfGs_setDataNum(mSelectNum); + } + else if (field_0x0267 == 0) { + mpCursor1->setAlphaRate(0.0f); + yesnoMenuMoveAnmInitSet(0x473,0x47d); + headerTxtSet(0x49, 0,0); + field_0x026e = 1; + field_0x026f = 12; + } + else if (field_0x0267 == 2) { + field_0x026a = mSelectNum; + menuMoveAnmInitSet(0x329,799); + headerTxtSet(0x44,0,0); + mpCursor1->setAlphaRate(0.0f); + selectDataMoveAnmInitSet(SelOpenEndFrameTbl[mSelectNum],SelOpenStartFrameTbl[mSelectNum]); + selectWakuAlpahAnmInit(mSelectNum,0,255,g_fsHIO.field_0x0008); + copySelMoveAnmInitSet(0xd1f,0xd29); + field_0x026e = 0; + field_0x026f = 11; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -2724,8 +2265,22 @@ asm void dFile_select_c::menuSelectStart() { #include "asm/d/file/d_file_select/menuSelectStart__14dFile_select_cFv.s" } #pragma pop +#endif /* 80186A80-80186B48 1813C0 00C8+00 1/1 0/0 0/0 .text menuSelectCansel__14dFile_select_cFv */ +#ifdef NONMATCHING +// matches with literals +void dFile_select_c::menuSelectCansel() { + mDoAud_seStart(Z2SE_SY_CURSOR_CANCEL,0,0,0); + int idx = mSelectNum; + selectDataMoveAnmInitSet(SelOpenEndFrameTbl[idx],SelOpenStartFrameTbl[idx]); + menuMoveAnmInitSet(0x329,799); + modoruTxtDispAnmInit(0); + headerTxtSet(0x43,1,0); + mpCursor1->setAlphaRate(0.0); + field_0x026f = 0xd; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -2734,8 +2289,33 @@ asm void dFile_select_c::menuSelectCansel() { #include "asm/d/file/d_file_select/menuSelectCansel__14dFile_select_cFv.s" } #pragma pop +#endif /* 80186B48-80186C84 181488 013C+00 8/8 0/0 0/0 .text menuMoveAnmInitSet__14dFile_select_cFii */ +#ifdef NONMATCHING +// getPanePtr() calling function past end of vtable? +void dFile_select_c::menuMoveAnmInitSet(int param_0, int param_1) { + if (param_0 == 799) { + field_0x0283 = true; + + for (int i = 0; i < 3; i++) { + if (i == field_0x0267) { + JUtility::TColor black = JUtility::TColor(255,255,255,255); + (&mpPaneMgr2)[i]->getPanePtr()->setAnimation((J2DAnmVtxColor*)&black); + } else { + JUtility::TColor darkGrey = JUtility::TColor(150,150,150,255); + (&mpPaneMgr2)[i]->getPanePtr()->setAnimation((J2DAnmVtxColor*)&darkGrey); + } + } + } + + field_0x0118->setAnimation(field_0x0328); + field_0x0358 = param_0; + field_0x035c = param_1; + field_0x0328->setFrame(field_0x0358); + field_0x0118->animationTransform(); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -2744,12 +2324,14 @@ asm void dFile_select_c::menuMoveAnmInitSet(int param_0, int param_1) { #include "asm/d/file/d_file_select/menuMoveAnmInitSet__14dFile_select_cFii.s" } #pragma pop +#endif /* 80186C84-80186CAC 1815C4 0028+00 0/0 1/0 0/0 .text setWhite__10J2DTextBoxFQ28JUtility6TColor */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void J2DTextBox::setWhite(JUtility::TColor param_0) { +// asm void J2DTextBox::setWhite(JUtility::TColor param_0) { +extern "C" asm void setWhite__10J2DTextBoxFQ28JUtility6TColor() { nofralloc #include "asm/d/file/d_file_select/setWhite__10J2DTextBoxFQ28JUtility6TColor.s" } @@ -2759,13 +2341,33 @@ asm void J2DTextBox::setWhite(JUtility::TColor param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dFile_select_c::menuMoveAnm() { +asm bool dFile_select_c::menuMoveAnm() { nofralloc #include "asm/d/file/d_file_select/menuMoveAnm__14dFile_select_cFv.s" } #pragma pop /* 80186E14-80186F98 181754 0184+00 1/1 0/0 0/0 .text menuSelectAnmSet__14dFile_select_cFv */ +#ifdef NONMATCHING +// matches with literals +void dFile_select_c::menuSelectAnmSet() { + if (field_0x0267 != 0xFF) { + (&field_0x0340)[field_0x0267]->getPanePtr()->setAnimation(field_0x0328); + (&field_0x034c)[field_0x0267] = MenuSelEndFrameTbl[field_0x0267]; + field_0x0328->setFrame((&field_0x034c)[field_0x0267]); + (&field_0x0340)[field_0x0267]->getPanePtr()->animationTransform(); + } + + if (field_0x0266 != 0xFF) { + (&field_0x0340)[field_0x0266]->getPanePtr()->setAnimation(field_0x032c); + (&field_0x034c)[field_0x0266] = MenuSelStartFrameTbl[field_0x0266]; + field_0x032c->setFrame((&field_0x034c)[field_0x0266]); + (&field_0x0340)[field_0x0266]->getPanePtr()->animationTransform(); + menuWakuAlpahAnmInit(field_0x0266,0xFF,0,g_fsHIO.field_0x0008); + mpCursor1->setAlphaRate(0.0f); + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -2775,6 +2377,7 @@ asm void dFile_select_c::menuSelectAnmSet() { } #pragma pop +#endif /* 80186F98-8018721C 1818D8 0284+00 1/0 0/0 0/0 .text menuSelectMoveAnm__14dFile_select_cFv */ #pragma push #pragma optimization_level 0 @@ -2786,24 +2389,33 @@ asm void dFile_select_c::menuSelectMoveAnm() { #pragma pop /* 8018721C-801872C4 181B5C 00A8+00 1/0 0/0 0/0 .text ToNameMove__14dFile_select_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dFile_select_c::ToNameMove() { - nofralloc -#include "asm/d/file/d_file_select/ToNameMove__14dFile_select_cFv.s" +void dFile_select_c::ToNameMove() { + bool headerTxtChange = headerTxtChangeAnm(); + bool nameMove = nameMoveAnm(); + bool menuMove = menuMoveAnm(); + bool fileRecScale = fileRecScaleAnm(); + bool fileInfoScale = fileInfoScaleAnm(); + + if (headerTxtChange == true && nameMove == true && menuMove == true && + (fileRecScale == true && fileInfoScale == true)) { + field_0x026f = 15; + } } -#pragma pop /* 801872C4-80187384 181C04 00C0+00 1/0 0/0 0/0 .text ToNameMove2__14dFile_select_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dFile_select_c::ToNameMove2() { - nofralloc -#include "asm/d/file/d_file_select/ToNameMove2__14dFile_select_cFv.s" +void dFile_select_c::ToNameMove2() { + bool headerTxtChange = headerTxtChangeAnm(); + bool nameMove = nameMoveAnm(); + bool errorMove = errorMoveAnm(); + bool yesnoMenuMove = yesnoMenuMoveAnm(); + bool ketteiTxtDisp = ketteiTxtDispAnm(); + bool returnTxtDisp = modoruTxtDispAnm(); + + if (headerTxtChange == true && nameMove == true && errorMove == true && + (yesnoMenuMove == true && ketteiTxtDisp == true && returnTxtDisp == true)) { + field_0x026f = 15; + } } -#pragma pop /* 80187384-801873BC 181CC4 0038+00 1/0 0/0 0/0 .text nameInputWait__14dFile_select_cFv */ @@ -3085,7 +2697,7 @@ asm void dFile_select_c::yesnoMenuMoveAnmInitSet(int param_0, int param_1) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dFile_select_c::yesnoMenuMoveAnm() { +asm bool dFile_select_c::yesnoMenuMoveAnm() { nofralloc #include "asm/d/file/d_file_select/yesnoMenuMoveAnm__14dFile_select_cFv.s" } @@ -3423,7 +3035,8 @@ asm void J2DPicture::setBlackWhite(JUtility::TColor param_0, JUtility::TColor pa /* 8018BF28-8018BF2C 186868 0004+00 0/0 4/0 0/0 .text * setAnimation__7J2DPaneFP19J2DAnmTextureSRTKey */ -void J2DPane::setAnimation(J2DAnmTextureSRTKey* param_0) { +// void J2DPane::setAnimation(J2DAnmTextureSRTKey* param_0) { +extern "C" void setAnimation__7J2DPaneFP19J2DAnmTextureSRTKey() { /* empty function */ } @@ -3554,14 +3167,25 @@ asm void dFile_select_c::headerTxtSet(u16 param_0, u8 param_1, u8 param_2) { #pragma pop /* 8018D25C-8018D344 187B9C 00E8+00 21/21 0/0 0/0 .text headerTxtChangeAnm__14dFile_select_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dFile_select_c::headerTxtChangeAnm() { - nofralloc -#include "asm/d/file/d_file_select/headerTxtChangeAnm__14dFile_select_cFv.s" +bool dFile_select_c::headerTxtChangeAnm() { + if (field_0x021d != 0) { + return true; + } else { + bool ret = false; + + bool alphaAnime1 = (&field_0x020c)[field_0x021c]->alphaAnime(g_fsHIO.field_0x0007,0xFF,0,0); + bool alphaAnime2 = (&field_0x020c)[field_0x021c^1]->alphaAnime(g_fsHIO.field_0x0007,0,0xFF,0); + int msgKeyWaitTimer = dMeter2Info_getMsgKeyWaitTimer(); + + if (alphaAnime1 == true && alphaAnime2 == true && msgKeyWaitTimer == 0) { + field_0x021c ^= 1; + field_0x021d = 1; + ret = true; + } + + return ret; + } } -#pragma pop /* 8018D344-8018D3A0 187C84 005C+00 7/7 0/0 0/0 .text modoruTxtChange__14dFile_select_cFUc */ #pragma push @@ -3588,7 +3212,7 @@ asm void dFile_select_c::modoruTxtDispAnmInit(u8 param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dFile_select_c::modoruTxtDispAnm() { +asm bool dFile_select_c::modoruTxtDispAnm() { nofralloc #include "asm/d/file/d_file_select/modoruTxtDispAnm__14dFile_select_cFv.s" } @@ -3609,7 +3233,7 @@ asm void dFile_select_c::ketteiTxtDispAnmInit(u8 param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dFile_select_c::ketteiTxtDispAnm() { +asm bool dFile_select_c::ketteiTxtDispAnm() { nofralloc #include "asm/d/file/d_file_select/ketteiTxtDispAnm__14dFile_select_cFv.s" } @@ -3648,14 +3272,15 @@ asm void dFile_select_c::selFileCursorShow() { /* 8018D884-8018D8C8 1881C4 0044+00 1/1 0/0 0/0 .text * menuWakuAlpahAnmInit__14dFile_select_cFUcUcUcUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dFile_select_c::menuWakuAlpahAnmInit(u8 param_0, u8 param_1, u8 param_2, u8 param_3) { - nofralloc -#include "asm/d/file/d_file_select/menuWakuAlpahAnmInit__14dFile_select_cFUcUcUcUc.s" +void dFile_select_c::menuWakuAlpahAnmInit(u8 i_idx, u8 param_1, u8 param_2, u8 param_3) { + (&mpPaneAlpha1)[i_idx]->alphaAnimeStart(0); + (&mpPaneAlpha2)[i_idx]->alphaAnimeStart(0); + (&mpPaneAlpha3)[i_idx]->alphaAnimeStart(0); + (&field_0x0388)[i_idx] = param_1; + (&field_0x038b)[i_idx] = param_2; + (&field_0x038e)[i_idx] = param_3; + (&mpPaneMgr2)[i_idx]->colorAnimeStart(0); } -#pragma pop /* 8018D8C8-8018DA10 188208 0148+00 1/1 0/0 0/0 .text menuWakuAlpahAnm__14dFile_select_cFUc */ #pragma push @@ -3703,7 +3328,8 @@ asm void dFile_select_c::yesnoWakuAlpahAnm(u8 param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dFile_select_c::_draw() { +// asm void dFile_select_c::_draw() { +extern "C" asm void _draw__14dFile_select_cFv() { nofralloc #include "asm/d/file/d_file_select/_draw__14dFile_select_cFv.s" } @@ -3770,14 +3396,42 @@ asm void dFile_select_c::errorMoveAnmInitSet(int param_0, int param_1) { #pragma pop /* 8018E1C0-8018E2B4 188B00 00F4+00 5/5 0/0 0/0 .text errorMoveAnm__14dFile_select_cFv */ +#ifdef NONMATCHING +// matches with literals +bool dFile_select_c::errorMoveAnm() { + if (field_0x0130 != field_0x0134) { + if (field_0x0130 < field_0x0134) { + field_0x0130 +=2; + + if (field_0x0130 > field_0x0134) + field_0x0130 = field_0x0134; + } else { + field_0x0130 -= 2; + + if (field_0x0130 < field_0x0134) + field_0x0130 = field_0x0134; + } + + mpAnmBase[3]->setFrame(field_0x0130); + field_0x012c->animationTransform(); + return false; + } else { + field_0x012c->setAnimation((J2DAnmTransform*)0); + field_0x0134 == 0xb2b ? field_0x014a = true : field_0x014a = false; + field_0x014b = false; + return true; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dFile_select_c::errorMoveAnm() { +asm bool dFile_select_c::errorMoveAnm() { nofralloc #include "asm/d/file/d_file_select/errorMoveAnm__14dFile_select_cFv.s" } #pragma pop +#endif /* 8018E2B4-8018E4CC 188BF4 0218+00 1/1 0/0 0/0 .text errDispInitSet__14dFile_select_cFii */ @@ -4184,14 +3838,10 @@ asm void dFile_select_c::errorTxtChangeAnm() { /* 8018FE18-8018FE64 18A758 004C+00 1/1 0/0 0/0 .text fileRecScaleAnm__14dFile_select_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dFile_select_c::fileRecScaleAnm() { - nofralloc -#include "asm/d/file/d_file_select/fileRecScaleAnm__14dFile_select_cFv.s" +bool dFile_select_c::fileRecScaleAnm() { + // mpPaneMgrs might be typed wrong? + return mpPaneMgrs[mSelectNum]->scaleAnime(g_fsHIO.field_0x0005,*(f32*)&mpPaneMgrs[3],field_0x00d4,0); } -#pragma pop /* 8018FE64-8018FEF4 18A7A4 0090+00 2/2 0/0 0/0 .text fileRecScaleAnmInitSet2__14dFile_select_cFff */ @@ -4215,14 +3865,46 @@ asm void dFile_select_c::fileRecScaleAnm2() { #pragma pop /* 8018FF9C-80190074 18A8DC 00D8+00 1/1 0/0 0/0 .text fileInfoScaleAnm__14dFile_select_cFv */ +#ifdef NONMATCHING +// matches with literals +bool dFile_select_c::fileInfoScaleAnm() { + bool ret; + + if (field_0x0110 != field_0x0114) { + if (field_0x0110 < field_0x0114) { + field_0x0110 += 2; + + if (field_0x0110 > field_0x0114) + field_0x0110 = field_0x0114; + } else { + field_0x0110 -= 2; + + if (field_0x0110 < field_0x0114) + field_0x0110 = field_0x0114; + } + + mpAnmBase[6]->setFrame(field_0x0110); + mpPane->animationTransform(); + ret = false; + } + + if (field_0x0110 == field_0x0114) { + mpPane->setAnimation((J2DAnmTransform*)0); + ret = true; + } + + return ret; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dFile_select_c::fileInfoScaleAnm() { +asm bool dFile_select_c::fileInfoScaleAnm() { nofralloc #include "asm/d/file/d_file_select/fileInfoScaleAnm__14dFile_select_cFv.s" } #pragma pop +#endif /* 80190074-80190124 18A9B4 00B0+00 5/5 0/0 0/0 .text nameMoveAnmInitSet__14dFile_select_cFii */ #pragma push @@ -4235,14 +3917,46 @@ asm void dFile_select_c::nameMoveAnmInitSet(int param_0, int param_1) { #pragma pop /* 80190124-80190208 18AA64 00E4+00 9/9 0/0 0/0 .text nameMoveAnm__14dFile_select_cFv */ +#ifdef NONMATCHING +// matches with literals +bool dFile_select_c::nameMoveAnm() { + if (field_0x0120 != field_0x0124) { + if (field_0x0120 < field_0x0124) { + field_0x0120 += 2; + + if (field_0x0120 > field_0x0124) { + field_0x0120 = field_0x0124; + } + } else { + field_0x0120 -= 2; + + if (field_0x0120 < field_0x0124) { + field_0x0120 = field_0x0124; + } + } + mpAnmBase[4]->setFrame(field_0x0120); + field_0x011c->animationTransform(); + return false; + } else { + field_0x011c->setAnimation((J2DAnmTransform*)0); + + if (field_0x0124 == 0xd1f) { + field_0x0128 = false; + mFileSelCopyDlst.field_0x08 = false; + } + return true; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dFile_select_c::nameMoveAnm() { +asm bool dFile_select_c::nameMoveAnm() { nofralloc #include "asm/d/file/d_file_select/nameMoveAnm__14dFile_select_cFv.s" } #pragma pop +#endif /* 80190208-80190254 18AB48 004C+00 1/0 0/0 0/0 .text MemCardSaveDataClear__14dFile_select_cFv */ #pragma push @@ -4526,7 +4240,8 @@ void J2DAnmTransform::getTransform(u16 param_0, J3DTransformInfo* param_1) const #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm JUTNameTab::~JUTNameTab() { +// asm JUTNameTab::~JUTNameTab() { +extern "C" asm void __dt__10JUTNameTabFv() { nofralloc #include "asm/d/file/d_file_select/__dt__10JUTNameTabFv.s" } @@ -4576,7 +4291,8 @@ asm dDlst_FileSelDt_c::~dDlst_FileSelDt_c() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dDlst_FileSel_c::~dDlst_FileSel_c() { +// asm dDlst_FileSel_c::~dDlst_FileSel_c() { +extern "C" asm void __dt__15dDlst_FileSel_cFv() { nofralloc #include "asm/d/file/d_file_select/__dt__15dDlst_FileSel_cFv.s" } @@ -4612,8 +4328,9 @@ REGISTER_CTORS(0x80191428, __sinit_d_file_select_cpp); #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMsgString_c::getString(u32 param_0, J2DTextBox* param_1, J2DTextBox* param_2, - JUTFont* param_3, COutFont_c* param_4, u8 param_5) { +// asm void dMsgString_c::getString(u32 param_0, J2DTextBox* param_1, J2DTextBox* param_2, +// JUTFont* param_3, COutFont_c* param_4, u8 param_5) { +extern "C" asm void getString__12dMsgString_cFUlP10J2DTextBoxP10J2DTextBoxP7JUTFontP10COutFont_cUc() { nofralloc #include "asm/d/file/d_file_select/getString__12dMsgString_cFUlP10J2DTextBoxP10J2DTextBoxP7JUTFontP10COutFont_cUc.s" } diff --git a/src/d/s/d_s_name.cpp b/src/d/s/d_s_name.cpp index abdc4a0cfc..f883b4d7af 100644 --- a/src/d/s/d_s_name.cpp +++ b/src/d/s/d_s_name.cpp @@ -6,6 +6,7 @@ #include "d/s/d_s_name.h" #include "d/com/d_com_inf_game.h" #include "d/d_procname.h" +// #include "d/file/d_file_select.h" #include "dol2asm.h" #include "dolphin/types.h" #include "f_op/f_op_overlap_mng.h" diff --git a/src/m_Do/m_Do_ext.cpp b/src/m_Do/m_Do_ext.cpp index 4786fe3639..598019f247 100644 --- a/src/m_Do/m_Do_ext.cpp +++ b/src/m_Do/m_Do_ext.cpp @@ -3530,26 +3530,28 @@ asm void mDoExt_removeSubFont() { /* 80014C54-80014D5C 00F594 0108+00 3/3 14/14 445/445 .text * mDoExt_J3DModel__create__FP12J3DModelDataUlUl */ -J3DModel* mDoExt_J3DModel__create(J3DModelData* i_modelData, u32 param_1, u32 param_2) { +J3DModel* mDoExt_J3DModel__create(J3DModelData* i_modelData, u32 modelFlag, u32 differedDlistFlag) { if (i_modelData != NULL) { J3DModel* model = new J3DModel(); if (model != NULL) { + // Update the modelFlag if the model data passed in has a shared dlist object if (i_modelData->getMaterialNodePointer(0)->getSharedDisplayListObj() != NULL) { if (i_modelData->isLocked()) { - param_1 = 0x20000; - } else if (param_1 == 0x20000) { - param_1 |= 0x40000; + modelFlag = J3DMdlFlag_Unk20000; + } else if (modelFlag == J3DMdlFlag_Unk20000) { + modelFlag |= J3DMdlFlag_Unk40000; } else { - param_1 = 0x80000; + modelFlag = J3DMdlFlag_Unk80000; } } - if (!model->entryModelData(i_modelData, param_1, 1)) { - if (param_1 == 0x80000 && model->newDifferedDisplayList(param_2)) { + // Set up the model + if (!model->entryModelData(i_modelData, modelFlag, 1)) { + if (modelFlag == J3DMdlFlag_Unk80000 && model->newDifferedDisplayList(differedDlistFlag)) { return NULL; } - + model->lock(); return model; } diff --git a/src/m_Do/m_Do_machine.cpp b/src/m_Do/m_Do_machine.cpp index 76d3692098..aea467d0dc 100644 --- a/src/m_Do/m_Do_machine.cpp +++ b/src/m_Do/m_Do_machine.cpp @@ -8,14 +8,11 @@ #include "JSystem/JKernel/JKRAram.h" #include "JSystem/JKernel/JKRAramStream.h" #include "JSystem/JKernel/JKRDvdAramRipper.h" -#include "JSystem/JUtility/JUTAssert.h" -#include "JSystem/JUtility/JUTDbPrint.h" #include "JSystem/JUtility/JUTException.h" #include "SSystem/SComponent/c_API_controller_pad.h" #include "SSystem/SComponent/c_malloc.h" #include "SSystem/SComponent/c_math.h" #include "dol2asm.h" -#include "dolphin/types.h" #include "m_Do/m_Do_DVDError.h" #include "m_Do/m_Do_MemCard.h" #include "m_Do/m_Do_dvd_thread.h" @@ -46,8 +43,6 @@ extern "C" void* mRenderModeObj__15mDoMch_render_c[1 + 1 /* padding */]; // External References: // -extern "C" void OSReportDisable(); -extern "C" void OSReportEnable(); extern "C" void mDoExt_createAssertHeap__FP7JKRHeap(); extern "C" void mDoExt_createDbPrintHeap__FUlP7JKRHeap(); extern "C" void mDoExt_getDbPrintHeap__Fv(); @@ -65,9 +60,7 @@ extern "C" void mDoRst_reset__FiUli(); extern "C" void create__9mDoDvdThdFl(); extern "C" void mDoDvdErr_ThdInit__Fv(); extern "C" void ThdInit__15mDoMemCd_Ctrl_cFv(); -extern "C" void exception_addition__FP10JUTConsole(); extern "C" void init__3cMlFP7JKRHeap(); -extern "C" void cAPICPad_recalibrate__Fv(); extern "C" void cM_initRnd__Fiii(); extern "C" void firstInit__9JFWSystemFv(); extern "C" void init__9JFWSystemFv(); @@ -124,10 +117,6 @@ extern "C" u8 systemConsole__9JFWSystem[4]; extern "C" u8 sSystemHeap__7JKRHeap[4]; extern "C" u8 sRootHeap__7JKRHeap[4]; extern "C" u8 sDebugPrint__10JUTDbPrint[4 + 4 /* padding */]; -extern "C" extern bool sResetSwitchPushing__Q210JUTGamePad13C3ButtonReset; -extern "C" u8 sErrorManager__12JUTException[4]; -extern "C" u8 sConsole__12JUTException[4]; -extern "C" u8 sManager__17JUTConsoleManager[4]; // // Declarations: @@ -387,26 +376,7 @@ void myExceptionCallback(u16, OSContext*, u32, u32) { VIFlush(); } -/* ############################################################################################## */ -/* 80373DE8-80373DE8 000448 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80373F89 = "(SRR0-3):%08X %08X %08X %08X\n"; -SECTION_DEAD static char const* const stringBase_80373FA7 = - "PUSH START BUTTON TO ADDITIONAL INFOMATION\n"; -SECTION_DEAD static char const* const stringBase_80373FD3 = - "--------------------------------------\n"; -#pragma pop - -/* 80451B00-80451B04 000100 0004+00 1/1 0/0 0/0 .sdata2 @3940 */ -SECTION_SDATA2 static f32 lit_3940 = 8.0f; - -/* 80451B04-80451B08 000104 0004+00 1/1 0/0 0/0 .sdata2 @3941 */ -SECTION_SDATA2 static f32 lit_3941 = 6.0f; - /* 8000B95C-8000BCF4 00629C 0398+00 1/1 0/0 0/0 .text fault_callback_scroll__FUsP9OSContextUlUl */ -#ifdef NONMATCHING -// Everything matches but there are issues with dead section static void fault_callback_scroll(u16, OSContext* p_context, u32, u32) { JUTException* manager = JUTException::getManager(); JUTConsole* exConsole = manager->getConsole(); @@ -523,41 +493,17 @@ static void fault_callback_scroll(u16, OSContext* p_context, u32, u32) { } while (true); } while (true); } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void fault_callback_scroll(u16 param_0, OSContext* param_1, u32 param_2, u32 param_3) { - nofralloc -#include "asm/m_Do/m_Do_machine/fault_callback_scroll__FUsP9OSContextUlUl.s" -} -#pragma pop -#endif + +// originally used in my_PrintHeap, but the function body was removed in retail +const char* my_PrintHeapSring = "\x1B[32m%-24s = size=%d KB\n\x1B[m"; /* 8000BCF4-8000BCF8 006634 0004+00 1/1 0/0 0/0 .text my_PrintHeap__FPCcUl */ static void my_PrintHeap(char const* heapName, u32 heapSize) { - /* empty function */ + return; } -/* ############################################################################################## */ -/* 80373DE8-80373DE8 000448 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80373FFB = "" - "\x1B" - "[32m%-24s = size=%d KB\n" - "\x1B" - "[m"; -SECTION_DEAD static char const* const stringBase_80374017 = "" - "\x1B" - "[32m%-24s = %08x-%08x size=%d KB\n" - "\x1B" - "[m"; -#pragma pop - /* 8000BCF8-8000BD44 006638 004C+00 1/1 0/0 0/0 .text my_SysPrintHeap__FPCcPvUl */ void my_SysPrintHeap(char const* message, void* start, u32 size) { - // "32m%-24s = %08x-%08x size=%d KB\n" OSReport_System("\x1b[32m%-24s = %08x-%08x size=%d KB\n\x1b[m", message, start, (u32)start + size, size / 1024); } @@ -577,7 +523,7 @@ SECTION_DEAD static char const* const stringBase_8037409E = "/map/Final/Release/ #pragma pop /* 803A2F60-803A2F9C 000080 003C+00 1/0 0/0 0/0 .data g_ntscZeldaIntDf */ -SECTION_DATA static _GXRenderModeObj g_ntscZeldaIntDf = { +static _GXRenderModeObj g_ntscZeldaIntDf = { 0, 608, 448, @@ -605,7 +551,7 @@ SECTION_DATA static _GXRenderModeObj g_ntscZeldaIntDf = { }; /* 803A2F9C-803A2FD8 0000BC 003C+00 1/1 1/1 0/0 .data g_ntscZeldaProg */ -SECTION_DATA extern _GXRenderModeObj g_ntscZeldaProg = { +extern _GXRenderModeObj g_ntscZeldaProg = { 2, 608, 448, @@ -634,7 +580,7 @@ SECTION_DATA extern _GXRenderModeObj g_ntscZeldaProg = { /* 804505A0-804505A8 -00001 0004+04 1/1 3/3 0/0 .sdata mRenderModeObj__15mDoMch_render_c */ -SECTION_SDATA GXRenderModeObj* mDoMch_render_c::mRenderModeObj = &g_ntscZeldaIntDf; +GXRenderModeObj* mDoMch_render_c::mRenderModeObj = &g_ntscZeldaIntDf; /* 8000BD44-8000C0CC 006684 0388+00 0/0 2/1 0/0 .text mDoMch_Create__Fv */ // reg alloc r30 - r31 diff --git a/tools/tp.py b/tools/tp.py index 21c07bf69d..250d6c7b67 100644 --- a/tools/tp.py +++ b/tools/tp.py @@ -130,7 +130,13 @@ def expected_copy(debug: bool, build_path: Path, expected_path: Path): default=DEFAULT_TOOLS_PATH, required=True, ) -def setup(debug: bool, game_path: Path, tools_path: Path): +@click.option( + "--yaz0-encoder", + type=str, + default="native", + required=False, +) +def setup(debug: bool, game_path: Path, tools_path: Path, yaz0_encoder: str): """Setup project""" if debug: @@ -326,7 +332,7 @@ def setup(debug: bool, game_path: Path, tools_path: Path): import extract_game_assets previous_dir = os.getcwd() os.chdir(str(game_path.absolute())) - extract_game_assets.extract("../" + str(iso)) + extract_game_assets.extract("../" + str(iso),yaz0_encoder) os.chdir(previous_dir) except ImportError as ex: _handle_import_error(ex)