diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 0000000000..1504ede58d --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1,22 @@ +# See here for image contents: https://github.com/microsoft/vscode-dev-containers/tree/v0.245.2/containers/ubuntu/.devcontainer/base.Dockerfile + +# [Choice] Ubuntu version (use ubuntu-22.04 or ubuntu-18.04 on local arm64/Apple Silicon): ubuntu-22.04, ubuntu-20.04, ubuntu-18.04 +ARG VARIANT="jammy" +FROM mcr.microsoft.com/vscode/devcontainers/base:0-${VARIANT} + +RUN dpkg --add-architecture i386 && apt-get update && export DEBIAN_FRONTEND=noninteractive \ + && apt-get -y install --no-install-recommends build-essential cmake python3-pip wine wine32 + +USER vscode + +# Install DevkitPPC +WORKDIR /tmp +RUN wget https://apt.devkitpro.org/install-devkitpro-pacman +RUN chmod +x ./install-devkitpro-pacman +RUN yes | sudo ./install-devkitpro-pacman +RUN sudo chmod +x ./install-devkitpro-pacman +RUN sudo ./install-devkitpro-pacman +RUN sudo dkp-pacman -Syu --noconfirm +WORKDIR /etc +RUN sudo ln -sf /proc/self/mounts mtab +RUN sudo dkp-pacman -S --noconfirm gamecube-dev wii-dev \ No newline at end of file diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000000..30d298c512 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,29 @@ +// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at: +// https://github.com/microsoft/vscode-dev-containers/tree/v0.245.2/containers/ubuntu +{ + "name": "Ubuntu", + "build": { + "dockerfile": "Dockerfile", + // Update 'VARIANT' to pick an Ubuntu version: jammy / ubuntu-22.04, focal / ubuntu-20.04, bionic /ubuntu-18.04 + // Use ubuntu-22.04 or ubuntu-18.04 on local arm64/Apple Silicon. + "args": { "VARIANT": "ubuntu-22.04" } + }, + + "extensions": [ + "ms-vscode.cpptools-extension-pack", + "mhutchie.git-graph" + ], + + // Use 'forwardPorts' to make a list of ports inside the container available locally. + // "forwardPorts": [], + + // Use 'postCreateCommand' to run commands after the container is created. + "updateContentCommand": "python3 -m pip install --user -r tools/requirements.txt", + "postCreateCommand": "./tp setup || echo \"\\nMake sure you put the compiler in the appropriate folder and copied the ISO in the right folder.\\nThen run \\\"./tp setup\\\" again.\\n\"", + + // Comment out to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root. + "remoteUser": "vscode", + "features": { + "python": "3.8" + } +} diff --git a/asm/d/a/d_a_player/checkBombItem__9daPy_py_cFi.s b/asm/d/a/d_a_player/checkBombItem__9daPy_py_cFi.s deleted file mode 100644 index fcec17fd46..0000000000 --- a/asm/d/a/d_a_player/checkBombItem__9daPy_py_cFi.s +++ /dev/null @@ -1,19 +0,0 @@ -lbl_8015EA48: -/* 8015EA48 38 A0 00 01 */ li r5, 1 -/* 8015EA4C 7C A6 2B 78 */ mr r6, r5 -/* 8015EA50 38 03 FF 90 */ addi r0, r3, -112 -/* 8015EA54 38 80 FF FF */ li r4, -1 -/* 8015EA58 7C 00 28 10 */ subfc r0, r0, r5 -/* 8015EA5C 7C 04 01 90 */ subfze r0, r4 -/* 8015EA60 54 00 06 3F */ clrlwi. r0, r0, 0x18 -/* 8015EA64 40 82 00 08 */ bne lbl_8015EA6C -/* 8015EA68 38 C0 00 00 */ li r6, 0 -lbl_8015EA6C: -/* 8015EA6C 54 C0 06 3F */ clrlwi. r0, r6, 0x18 -/* 8015EA70 40 82 00 10 */ bne lbl_8015EA80 -/* 8015EA74 2C 03 00 72 */ cmpwi r3, 0x72 -/* 8015EA78 41 82 00 08 */ beq lbl_8015EA80 -/* 8015EA7C 38 A0 00 00 */ li r5, 0 -lbl_8015EA80: -/* 8015EA80 54 A3 06 3E */ clrlwi r3, r5, 0x18 -/* 8015EA84 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_player/checkWoodShieldEquip__9daPy_py_cFv.s b/asm/d/a/d_a_player/checkWoodShieldEquip__9daPy_py_cFv.s deleted file mode 100644 index fa9c3daccc..0000000000 --- a/asm/d/a/d_a_player/checkWoodShieldEquip__9daPy_py_cFv.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_8015F3C4: -/* 8015F3C4 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8015F3C8 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8015F3CC 88 63 00 15 */ lbz r3, 0x15(r3) -/* 8015F3D0 38 80 00 01 */ li r4, 1 -/* 8015F3D4 38 03 FF D6 */ addi r0, r3, -42 -/* 8015F3D8 54 00 04 3E */ clrlwi r0, r0, 0x10 -/* 8015F3DC 38 60 FF FF */ li r3, -1 -/* 8015F3E0 7C 00 20 10 */ subfc r0, r0, r4 -/* 8015F3E4 7C 03 01 90 */ subfze r0, r3 -/* 8015F3E8 54 00 06 3F */ clrlwi. r0, r0, 0x18 -/* 8015F3EC 40 82 00 08 */ bne lbl_8015F3F4 -/* 8015F3F0 38 80 00 00 */ li r4, 0 -lbl_8015F3F4: -/* 8015F3F4 54 83 06 3E */ clrlwi r3, r4, 0x18 -/* 8015F3F8 4E 80 00 20 */ blr diff --git a/asm/d/a/d_a_player/wolfGrabSubjectNoDraw__9daPy_py_cFP10fopAc_ac_c.s b/asm/d/a/d_a_player/wolfGrabSubjectNoDraw__9daPy_py_cFP10fopAc_ac_c.s deleted file mode 100644 index c5fcbeda46..0000000000 --- a/asm/d/a/d_a_player/wolfGrabSubjectNoDraw__9daPy_py_cFP10fopAc_ac_c.s +++ /dev/null @@ -1,23 +0,0 @@ -lbl_8015F60C: -/* 8015F60C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8015F610 7C 08 02 A6 */ mflr r0 -/* 8015F614 90 01 00 14 */ stw r0, 0x14(r1) -/* 8015F618 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8015F61C 3B E0 00 00 */ li r31, 0 -/* 8015F620 3C 80 80 40 */ lis r4, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8015F624 38 84 61 C0 */ addi r4, r4, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8015F628 80 84 5D B4 */ lwz r4, 0x5db4(r4) -/* 8015F62C 80 04 05 74 */ lwz r0, 0x574(r4) -/* 8015F630 54 00 01 8D */ rlwinm. r0, r0, 0, 6, 6 -/* 8015F634 41 82 00 14 */ beq lbl_8015F648 -/* 8015F638 4B FF FF 25 */ bl linkGrabSubjectNoDraw__9daPy_py_cFP10fopAc_ac_c -/* 8015F63C 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 8015F640 41 82 00 08 */ beq lbl_8015F648 -/* 8015F644 3B E0 00 01 */ li r31, 1 -lbl_8015F648: -/* 8015F648 7F E3 FB 78 */ mr r3, r31 -/* 8015F64C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8015F650 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8015F654 7C 08 03 A6 */ mtlr r0 -/* 8015F658 38 21 00 10 */ addi r1, r1, 0x10 -/* 8015F65C 4E 80 00 20 */ blr diff --git a/asm/d/d_insect/__ct__9dInsect_cFv.s b/asm/d/d_insect/__ct__9dInsect_cFv.s deleted file mode 100644 index fdfb6ae8d3..0000000000 --- a/asm/d/d_insect/__ct__9dInsect_cFv.s +++ /dev/null @@ -1,27 +0,0 @@ -lbl_8015E010: -/* 8015E010 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8015E014 7C 08 02 A6 */ mflr r0 -/* 8015E018 90 01 00 14 */ stw r0, 0x14(r1) -/* 8015E01C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8015E020 7C 7F 1B 78 */ mr r31, r3 -/* 8015E024 4B EB AB 41 */ bl __ct__10fopAc_ac_cFv -/* 8015E028 3C 60 80 3C */ lis r3, __vt__9dInsect_c@ha /* 0x803BA078@ha */ -/* 8015E02C 38 03 A0 78 */ addi r0, r3, __vt__9dInsect_c@l /* 0x803BA078@l */ -/* 8015E030 90 1F 05 68 */ stw r0, 0x568(r31) -/* 8015E034 38 00 FF FF */ li r0, -1 -/* 8015E038 90 1F 05 88 */ stw r0, 0x588(r31) -/* 8015E03C 38 60 00 00 */ li r3, 0 -/* 8015E040 98 7F 05 6C */ stb r3, 0x56c(r31) -/* 8015E044 38 00 00 01 */ li r0, 1 -/* 8015E048 98 1F 05 6D */ stb r0, 0x56d(r31) -/* 8015E04C 90 7F 05 8C */ stw r3, 0x58c(r31) -/* 8015E050 38 00 00 D6 */ li r0, 0xd6 -/* 8015E054 98 1F 05 80 */ stb r0, 0x580(r31) -/* 8015E058 98 7F 05 84 */ stb r3, 0x584(r31) -/* 8015E05C 98 7F 05 85 */ stb r3, 0x585(r31) -/* 8015E060 7F E3 FB 78 */ mr r3, r31 -/* 8015E064 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8015E068 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8015E06C 7C 08 03 A6 */ mtlr r0 -/* 8015E070 38 21 00 10 */ addi r1, r1, 0x10 -/* 8015E074 4E 80 00 20 */ blr diff --git a/asm/d/d_timer/_draw__8dTimer_cFv.s b/asm/d/d_timer/_draw__8dTimer_cFv.s deleted file mode 100644 index 43b5d69091..0000000000 --- a/asm/d/d_timer/_draw__8dTimer_cFv.s +++ /dev/null @@ -1,36 +0,0 @@ -lbl_8025D33C: -/* 8025D33C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8025D340 7C 08 02 A6 */ mflr r0 -/* 8025D344 90 01 00 14 */ stw r0, 0x14(r1) -/* 8025D348 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8025D34C 7C 7F 1B 78 */ mr r31, r3 -/* 8025D350 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8025D354 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8025D358 88 03 5E B5 */ lbz r0, 0x5eb5(r3) -/* 8025D35C 28 00 00 00 */ cmplwi r0, 0 -/* 8025D360 40 82 00 20 */ bne lbl_8025D380 -/* 8025D364 4B FD AE C9 */ bl getStatus__12dMsgObject_cFv -/* 8025D368 54 60 04 3E */ clrlwi r0, r3, 0x10 -/* 8025D36C 20 60 00 01 */ subfic r3, r0, 1 -/* 8025D370 30 03 FF FF */ addic r0, r3, -1 -/* 8025D374 7C 00 19 10 */ subfe r0, r0, r3 -/* 8025D378 54 00 06 3F */ clrlwi. r0, r0, 0x18 -/* 8025D37C 41 82 00 0C */ beq lbl_8025D388 -lbl_8025D380: -/* 8025D380 38 60 00 01 */ li r3, 1 -/* 8025D384 48 00 00 24 */ b lbl_8025D3A8 -lbl_8025D388: -/* 8025D388 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8025D38C 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8025D390 38 63 5F 64 */ addi r3, r3, 0x5f64 -/* 8025D394 38 83 01 B4 */ addi r4, r3, 0x1b4 -/* 8025D398 38 A3 01 B8 */ addi r5, r3, 0x1b8 -/* 8025D39C 80 DF 00 FC */ lwz r6, 0xfc(r31) -/* 8025D3A0 4B DF 93 F5 */ bl set__12dDlst_list_cFRPP12dDlst_base_cRPP12dDlst_base_cP12dDlst_base_c -/* 8025D3A4 38 60 00 01 */ li r3, 1 -lbl_8025D3A8: -/* 8025D3A8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8025D3AC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8025D3B0 7C 08 03 A6 */ mtlr r0 -/* 8025D3B4 38 21 00 10 */ addi r1, r1, 0x10 -/* 8025D3B8 4E 80 00 20 */ blr diff --git a/asm/d/d_timer/dTimer_Create__FP9msg_class.s b/asm/d/d_timer/dTimer_Create__FP9msg_class.s deleted file mode 100644 index 3903844761..0000000000 --- a/asm/d/d_timer/dTimer_Create__FP9msg_class.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80260F6C: -/* 80260F6C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80260F70 7C 08 02 A6 */ mflr r0 -/* 80260F74 90 01 00 14 */ stw r0, 0x14(r1) -/* 80260F78 4B FF BA 95 */ bl _create__8dTimer_cFv -/* 80260F7C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80260F80 7C 08 03 A6 */ mtlr r0 -/* 80260F84 38 21 00 10 */ addi r1, r1, 0x10 -/* 80260F88 4E 80 00 20 */ blr diff --git a/asm/d/d_timer/dTimer_Delete__FP8dTimer_c.s b/asm/d/d_timer/dTimer_Delete__FP8dTimer_c.s deleted file mode 100644 index 31eefdc49e..0000000000 --- a/asm/d/d_timer/dTimer_Delete__FP8dTimer_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80260F4C: -/* 80260F4C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80260F50 7C 08 02 A6 */ mflr r0 -/* 80260F54 90 01 00 14 */ stw r0, 0x14(r1) -/* 80260F58 4B FF C4 65 */ bl _delete__8dTimer_cFv -/* 80260F5C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80260F60 7C 08 03 A6 */ mtlr r0 -/* 80260F64 38 21 00 10 */ addi r1, r1, 0x10 -/* 80260F68 4E 80 00 20 */ blr diff --git a/asm/d/d_timer/dTimer_Draw__FP8dTimer_c.s b/asm/d/d_timer/dTimer_Draw__FP8dTimer_c.s deleted file mode 100644 index 5ec8f86c70..0000000000 --- a/asm/d/d_timer/dTimer_Draw__FP8dTimer_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80260F04: -/* 80260F04 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80260F08 7C 08 02 A6 */ mflr r0 -/* 80260F0C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80260F10 4B FF C4 2D */ bl _draw__8dTimer_cFv -/* 80260F14 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80260F18 7C 08 03 A6 */ mtlr r0 -/* 80260F1C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80260F20 4E 80 00 20 */ blr diff --git a/asm/d/d_timer/dTimer_Execute__FP8dTimer_c.s b/asm/d/d_timer/dTimer_Execute__FP8dTimer_c.s deleted file mode 100644 index 0e2487c1eb..0000000000 --- a/asm/d/d_timer/dTimer_Execute__FP8dTimer_c.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80260F24: -/* 80260F24 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80260F28 7C 08 02 A6 */ mflr r0 -/* 80260F2C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80260F30 4B FF BF D5 */ bl _execute__8dTimer_cFv -/* 80260F34 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80260F38 7C 08 03 A6 */ mtlr r0 -/* 80260F3C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80260F40 4E 80 00 20 */ blr diff --git a/asm/d/d_timer/dTimer_createGetIn2D__Fl4cXyz.s b/asm/d/d_timer/dTimer_createGetIn2D__Fl4cXyz.s deleted file mode 100644 index 4fcbdc3bfb..0000000000 --- a/asm/d/d_timer/dTimer_createGetIn2D__Fl4cXyz.s +++ /dev/null @@ -1,37 +0,0 @@ -lbl_80261100: -/* 80261100 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 80261104 7C 08 02 A6 */ mflr r0 -/* 80261108 90 01 00 34 */ stw r0, 0x34(r1) -/* 8026110C 93 E1 00 2C */ stw r31, 0x2c(r1) -/* 80261110 93 C1 00 28 */ stw r30, 0x28(r1) -/* 80261114 7C 9E 23 78 */ mr r30, r4 -/* 80261118 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8026111C 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80261120 3B E3 0F 38 */ addi r31, r3, 0xf38 -/* 80261124 7F E3 FB 78 */ mr r3, r31 -/* 80261128 4B DC BA B5 */ bl getTimerPtr__14dComIfG_play_cFv -/* 8026112C 28 03 00 00 */ cmplwi r3, 0 -/* 80261130 41 82 00 3C */ beq lbl_8026116C -/* 80261134 7F C3 F3 78 */ mr r3, r30 -/* 80261138 38 81 00 14 */ addi r4, r1, 0x14 -/* 8026113C 4B DB 41 D5 */ bl mDoLib_project__FP3VecP3Vec -/* 80261140 C0 01 00 14 */ lfs f0, 0x14(r1) -/* 80261144 D0 01 00 08 */ stfs f0, 8(r1) -/* 80261148 C0 01 00 18 */ lfs f0, 0x18(r1) -/* 8026114C D0 01 00 0C */ stfs f0, 0xc(r1) -/* 80261150 C0 01 00 1C */ lfs f0, 0x1c(r1) -/* 80261154 D0 01 00 10 */ stfs f0, 0x10(r1) -/* 80261158 7F E3 FB 78 */ mr r3, r31 -/* 8026115C 4B DC BA 81 */ bl getTimerPtr__14dComIfG_play_cFv -/* 80261160 38 81 00 08 */ addi r4, r1, 8 -/* 80261164 48 00 02 79 */ bl createGetIn__8dTimer_cF4cXyz -/* 80261168 48 00 00 08 */ b lbl_80261170 -lbl_8026116C: -/* 8026116C 38 60 00 00 */ li r3, 0 -lbl_80261170: -/* 80261170 83 E1 00 2C */ lwz r31, 0x2c(r1) -/* 80261174 83 C1 00 28 */ lwz r30, 0x28(r1) -/* 80261178 80 01 00 34 */ lwz r0, 0x34(r1) -/* 8026117C 7C 08 03 A6 */ mtlr r0 -/* 80261180 38 21 00 30 */ addi r1, r1, 0x30 -/* 80261184 4E 80 00 20 */ blr diff --git a/asm/d/d_timer/dTimer_createStart2D__FlUs.s b/asm/d/d_timer/dTimer_createStart2D__FlUs.s deleted file mode 100644 index 14aa760253..0000000000 --- a/asm/d/d_timer/dTimer_createStart2D__FlUs.s +++ /dev/null @@ -1,29 +0,0 @@ -lbl_80261188: -/* 80261188 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8026118C 7C 08 02 A6 */ mflr r0 -/* 80261190 90 01 00 14 */ stw r0, 0x14(r1) -/* 80261194 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80261198 93 C1 00 08 */ stw r30, 8(r1) -/* 8026119C 7C 9E 23 78 */ mr r30, r4 -/* 802611A0 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 802611A4 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 802611A8 3B E3 0F 38 */ addi r31, r3, 0xf38 -/* 802611AC 7F E3 FB 78 */ mr r3, r31 -/* 802611B0 4B DC BA 2D */ bl getTimerPtr__14dComIfG_play_cFv -/* 802611B4 28 03 00 00 */ cmplwi r3, 0 -/* 802611B8 41 82 00 1C */ beq lbl_802611D4 -/* 802611BC 7F E3 FB 78 */ mr r3, r31 -/* 802611C0 4B DC BA 1D */ bl getTimerPtr__14dComIfG_play_cFv -/* 802611C4 80 63 00 FC */ lwz r3, 0xfc(r3) -/* 802611C8 7F C4 F3 78 */ mr r4, r30 -/* 802611CC 4B FF F3 A9 */ bl createStart__21dDlst_TimerScrnDraw_cFUs -/* 802611D0 48 00 00 08 */ b lbl_802611D8 -lbl_802611D4: -/* 802611D4 38 60 00 00 */ li r3, 0 -lbl_802611D8: -/* 802611D8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802611DC 83 C1 00 08 */ lwz r30, 8(r1) -/* 802611E0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802611E4 7C 08 03 A6 */ mtlr r0 -/* 802611E8 38 21 00 10 */ addi r1, r1, 0x10 -/* 802611EC 4E 80 00 20 */ blr diff --git a/asm/d/d_timer/dTimer_createStockTimer__Fv.s b/asm/d/d_timer/dTimer_createStockTimer__Fv.s deleted file mode 100644 index 683b3d6c38..0000000000 --- a/asm/d/d_timer/dTimer_createStockTimer__Fv.s +++ /dev/null @@ -1,56 +0,0 @@ -lbl_80261034: -/* 80261034 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80261038 7C 08 02 A6 */ mflr r0 -/* 8026103C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80261040 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80261044 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80261048 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8026104C 3B E3 0F 38 */ addi r31, r3, 0xf38 -/* 80261050 7F E3 FB 78 */ mr r3, r31 -/* 80261054 4B DC BB 69 */ bl getTimerMode__14dComIfG_play_cFv -/* 80261058 2C 03 FF FF */ cmpwi r3, -1 -/* 8026105C 41 82 00 8C */ beq lbl_802610E8 -/* 80261060 7F E3 FB 78 */ mr r3, r31 -/* 80261064 4B DC BB 59 */ bl getTimerMode__14dComIfG_play_cFv -/* 80261068 2C 03 00 03 */ cmpwi r3, 3 -/* 8026106C 41 82 00 14 */ beq lbl_80261080 -/* 80261070 7F E3 FB 78 */ mr r3, r31 -/* 80261074 4B DC BB 49 */ bl getTimerMode__14dComIfG_play_cFv -/* 80261078 2C 03 00 04 */ cmpwi r3, 4 -/* 8026107C 40 82 00 34 */ bne lbl_802610B0 -lbl_80261080: -/* 80261080 38 7F 3E C8 */ addi r3, r31, 0x3ec8 -/* 80261084 3C 80 80 3A */ lis r4, d_d_timer__stringBase0@ha /* 0x8039A3D8@ha */ -/* 80261088 38 84 A3 D8 */ addi r4, r4, d_d_timer__stringBase0@l /* 0x8039A3D8@l */ -/* 8026108C 38 84 00 A4 */ addi r4, r4, 0xa4 -/* 80261090 48 10 79 05 */ bl strcmp -/* 80261094 2C 03 00 00 */ cmpwi r3, 0 -/* 80261098 41 82 00 18 */ beq lbl_802610B0 -/* 8026109C 7F E3 FB 78 */ mr r3, r31 -/* 802610A0 38 80 FF FF */ li r4, -1 -/* 802610A4 4B DC BB 11 */ bl setTimerMode__14dComIfG_play_cFi -/* 802610A8 38 60 FF FF */ li r3, -1 -/* 802610AC 48 00 00 40 */ b lbl_802610EC -lbl_802610B0: -/* 802610B0 7F E3 FB 78 */ mr r3, r31 -/* 802610B4 4B DC BB 19 */ bl getTimerType__14dComIfG_play_cFv -/* 802610B8 7C 66 1B 78 */ mr r6, r3 -/* 802610BC 38 60 03 15 */ li r3, 0x315 -/* 802610C0 38 80 00 0A */ li r4, 0xa -/* 802610C4 38 A0 00 00 */ li r5, 0 -/* 802610C8 38 E0 00 00 */ li r7, 0 -/* 802610CC C0 22 B5 A0 */ lfs f1, lit_5544(r2) -/* 802610D0 C0 42 B5 A4 */ lfs f2, lit_5545(r2) -/* 802610D4 C0 62 B5 A8 */ lfs f3, lit_5546(r2) -/* 802610D8 C0 82 B5 AC */ lfs f4, lit_5547(r2) -/* 802610DC 39 00 00 00 */ li r8, 0 -/* 802610E0 4B DB EB E1 */ bl fop_Timer_create__FsUcUlUcUcffffPFPv_i -/* 802610E4 48 00 00 08 */ b lbl_802610EC -lbl_802610E8: -/* 802610E8 38 60 FF FF */ li r3, -1 -lbl_802610EC: -/* 802610EC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802610F0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802610F4 7C 08 03 A6 */ mtlr r0 -/* 802610F8 38 21 00 10 */ addi r1, r1, 0x10 -/* 802610FC 4E 80 00 20 */ blr diff --git a/asm/d/d_timer/dTimer_createTimer__FlUlUcUcffff.s b/asm/d/d_timer/dTimer_createTimer__FlUlUcUcffff.s deleted file mode 100644 index 72026ee310..0000000000 --- a/asm/d/d_timer/dTimer_createTimer__FlUlUcUcffff.s +++ /dev/null @@ -1,45 +0,0 @@ -lbl_80260F8C: -/* 80260F8C 94 21 FF C0 */ stwu r1, -0x40(r1) -/* 80260F90 7C 08 02 A6 */ mflr r0 -/* 80260F94 90 01 00 44 */ stw r0, 0x44(r1) -/* 80260F98 39 61 00 40 */ addi r11, r1, 0x40 -/* 80260F9C 48 10 11 A5 */ bl _savefpr_28 -/* 80260FA0 39 61 00 20 */ addi r11, r1, 0x20 -/* 80260FA4 48 10 12 35 */ bl _savegpr_28 -/* 80260FA8 7C 7C 1B 78 */ mr r28, r3 -/* 80260FAC 7C 9D 23 78 */ mr r29, r4 -/* 80260FB0 7C BE 2B 78 */ mr r30, r5 -/* 80260FB4 7C DF 33 78 */ mr r31, r6 -/* 80260FB8 FF 80 08 90 */ fmr f28, f1 -/* 80260FBC FF A0 10 90 */ fmr f29, f2 -/* 80260FC0 FF C0 18 90 */ fmr f30, f3 -/* 80260FC4 FF E0 20 90 */ fmr f31, f4 -/* 80260FC8 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80260FCC 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80260FD0 38 63 0F 38 */ addi r3, r3, 0xf38 -/* 80260FD4 4B DC BB E9 */ bl getTimerMode__14dComIfG_play_cFv -/* 80260FD8 2C 03 FF FF */ cmpwi r3, -1 -/* 80260FDC 40 82 00 34 */ bne lbl_80261010 -/* 80260FE0 38 60 03 15 */ li r3, 0x315 -/* 80260FE4 57 84 06 3E */ clrlwi r4, r28, 0x18 -/* 80260FE8 7F A5 EB 78 */ mr r5, r29 -/* 80260FEC 7F C6 F3 78 */ mr r6, r30 -/* 80260FF0 7F E7 FB 78 */ mr r7, r31 -/* 80260FF4 FC 20 E0 90 */ fmr f1, f28 -/* 80260FF8 FC 40 E8 90 */ fmr f2, f29 -/* 80260FFC FC 60 F0 90 */ fmr f3, f30 -/* 80261000 FC 80 F8 90 */ fmr f4, f31 -/* 80261004 39 00 00 00 */ li r8, 0 -/* 80261008 4B DB EC B9 */ bl fop_Timer_create__FsUcUlUcUcffffPFPv_i -/* 8026100C 48 00 00 08 */ b lbl_80261014 -lbl_80261010: -/* 80261010 38 60 FF FF */ li r3, -1 -lbl_80261014: -/* 80261014 39 61 00 40 */ addi r11, r1, 0x40 -/* 80261018 48 10 11 75 */ bl _restfpr_28 -/* 8026101C 39 61 00 20 */ addi r11, r1, 0x20 -/* 80261020 48 10 12 05 */ bl _restgpr_28 -/* 80261024 80 01 00 44 */ lwz r0, 0x44(r1) -/* 80261028 7C 08 03 A6 */ mtlr r0 -/* 8026102C 38 21 00 40 */ addi r1, r1, 0x40 -/* 80261030 4E 80 00 20 */ blr diff --git a/asm/d/d_timer/dTimer_getRestTimeMs__Fv.s b/asm/d/d_timer/dTimer_getRestTimeMs__Fv.s deleted file mode 100644 index b8815c3970..0000000000 --- a/asm/d/d_timer/dTimer_getRestTimeMs__Fv.s +++ /dev/null @@ -1,24 +0,0 @@ -lbl_80261244: -/* 80261244 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80261248 7C 08 02 A6 */ mflr r0 -/* 8026124C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80261250 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80261254 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80261258 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8026125C 3B E3 0F 38 */ addi r31, r3, 0xf38 -/* 80261260 7F E3 FB 78 */ mr r3, r31 -/* 80261264 4B DC B9 79 */ bl getTimerPtr__14dComIfG_play_cFv -/* 80261268 28 03 00 00 */ cmplwi r3, 0 -/* 8026126C 41 82 00 14 */ beq lbl_80261280 -/* 80261270 7F E3 FB 78 */ mr r3, r31 -/* 80261274 4B DC B9 69 */ bl getTimerPtr__14dComIfG_play_cFv -/* 80261278 4B FF C8 25 */ bl getRestTimeMs__8dTimer_cFv -/* 8026127C 48 00 00 08 */ b lbl_80261284 -lbl_80261280: -/* 80261280 38 60 00 00 */ li r3, 0 -lbl_80261284: -/* 80261284 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80261288 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8026128C 7C 08 03 A6 */ mtlr r0 -/* 80261290 38 21 00 10 */ addi r1, r1, 0x10 -/* 80261294 4E 80 00 20 */ blr diff --git a/asm/d/d_timer/dTimer_hide__Fv.s b/asm/d/d_timer/dTimer_hide__Fv.s deleted file mode 100644 index 2a002deeaf..0000000000 --- a/asm/d/d_timer/dTimer_hide__Fv.s +++ /dev/null @@ -1,23 +0,0 @@ -lbl_802612EC: -/* 802612EC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802612F0 7C 08 02 A6 */ mflr r0 -/* 802612F4 90 01 00 14 */ stw r0, 0x14(r1) -/* 802612F8 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802612FC 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80261300 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80261304 3B E3 0F 38 */ addi r31, r3, 0xf38 -/* 80261308 7F E3 FB 78 */ mr r3, r31 -/* 8026130C 4B DC B8 D1 */ bl getTimerPtr__14dComIfG_play_cFv -/* 80261310 28 03 00 00 */ cmplwi r3, 0 -/* 80261314 41 82 00 18 */ beq lbl_8026132C -/* 80261318 7F E3 FB 78 */ mr r3, r31 -/* 8026131C 4B DC B8 C1 */ bl getTimerPtr__14dComIfG_play_cFv -/* 80261320 38 00 00 00 */ li r0, 0 -/* 80261324 80 63 00 FC */ lwz r3, 0xfc(r3) -/* 80261328 98 03 03 E1 */ stb r0, 0x3e1(r3) -lbl_8026132C: -/* 8026132C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80261330 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80261334 7C 08 03 A6 */ mtlr r0 -/* 80261338 38 21 00 10 */ addi r1, r1, 0x10 -/* 8026133C 4E 80 00 20 */ blr diff --git a/asm/d/d_timer/dTimer_isReadyFlag__Fv.s b/asm/d/d_timer/dTimer_isReadyFlag__Fv.s deleted file mode 100644 index faec40ede2..0000000000 --- a/asm/d/d_timer/dTimer_isReadyFlag__Fv.s +++ /dev/null @@ -1,24 +0,0 @@ -lbl_80261340: -/* 80261340 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80261344 7C 08 02 A6 */ mflr r0 -/* 80261348 90 01 00 14 */ stw r0, 0x14(r1) -/* 8026134C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80261350 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80261354 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80261358 3B E3 0F 38 */ addi r31, r3, 0xf38 -/* 8026135C 7F E3 FB 78 */ mr r3, r31 -/* 80261360 4B DC B8 7D */ bl getTimerPtr__14dComIfG_play_cFv -/* 80261364 28 03 00 00 */ cmplwi r3, 0 -/* 80261368 41 82 00 14 */ beq lbl_8026137C -/* 8026136C 7F E3 FB 78 */ mr r3, r31 -/* 80261370 4B DC B8 6D */ bl getTimerPtr__14dComIfG_play_cFv -/* 80261374 88 63 01 6E */ lbz r3, 0x16e(r3) -/* 80261378 48 00 00 08 */ b lbl_80261380 -lbl_8026137C: -/* 8026137C 38 60 00 00 */ li r3, 0 -lbl_80261380: -/* 80261380 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80261384 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80261388 7C 08 03 A6 */ mtlr r0 -/* 8026138C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80261390 4E 80 00 20 */ blr diff --git a/asm/d/d_timer/dTimer_isStart__Fv.s b/asm/d/d_timer/dTimer_isStart__Fv.s deleted file mode 100644 index 677db87766..0000000000 --- a/asm/d/d_timer/dTimer_isStart__Fv.s +++ /dev/null @@ -1,24 +0,0 @@ -lbl_802611F0: -/* 802611F0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802611F4 7C 08 02 A6 */ mflr r0 -/* 802611F8 90 01 00 14 */ stw r0, 0x14(r1) -/* 802611FC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80261200 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80261204 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80261208 3B E3 0F 38 */ addi r31, r3, 0xf38 -/* 8026120C 7F E3 FB 78 */ mr r3, r31 -/* 80261210 4B DC B9 CD */ bl getTimerPtr__14dComIfG_play_cFv -/* 80261214 28 03 00 00 */ cmplwi r3, 0 -/* 80261218 41 82 00 14 */ beq lbl_8026122C -/* 8026121C 7F E3 FB 78 */ mr r3, r31 -/* 80261220 4B DC B9 BD */ bl getTimerPtr__14dComIfG_play_cFv -/* 80261224 4B FF C8 ED */ bl isStart__8dTimer_cFv -/* 80261228 48 00 00 08 */ b lbl_80261230 -lbl_8026122C: -/* 8026122C 38 60 00 00 */ li r3, 0 -lbl_80261230: -/* 80261230 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80261234 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80261238 7C 08 03 A6 */ mtlr r0 -/* 8026123C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80261240 4E 80 00 20 */ blr diff --git a/asm/d/d_timer/dTimer_show__Fv.s b/asm/d/d_timer/dTimer_show__Fv.s deleted file mode 100644 index 05950e0b8c..0000000000 --- a/asm/d/d_timer/dTimer_show__Fv.s +++ /dev/null @@ -1,23 +0,0 @@ -lbl_80261298: -/* 80261298 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8026129C 7C 08 02 A6 */ mflr r0 -/* 802612A0 90 01 00 14 */ stw r0, 0x14(r1) -/* 802612A4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802612A8 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 802612AC 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 802612B0 3B E3 0F 38 */ addi r31, r3, 0xf38 -/* 802612B4 7F E3 FB 78 */ mr r3, r31 -/* 802612B8 4B DC B9 25 */ bl getTimerPtr__14dComIfG_play_cFv -/* 802612BC 28 03 00 00 */ cmplwi r3, 0 -/* 802612C0 41 82 00 18 */ beq lbl_802612D8 -/* 802612C4 7F E3 FB 78 */ mr r3, r31 -/* 802612C8 4B DC B9 15 */ bl getTimerPtr__14dComIfG_play_cFv -/* 802612CC 38 00 00 01 */ li r0, 1 -/* 802612D0 80 63 00 FC */ lwz r3, 0xfc(r3) -/* 802612D4 98 03 03 E1 */ stb r0, 0x3e1(r3) -lbl_802612D8: -/* 802612D8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802612DC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802612E0 7C 08 03 A6 */ mtlr r0 -/* 802612E4 38 21 00 10 */ addi r1, r1, 0x10 -/* 802612E8 4E 80 00 20 */ blr diff --git a/asm/d/d_timer/deleteCheck__8dTimer_cFv.s b/asm/d/d_timer/deleteCheck__8dTimer_cFv.s deleted file mode 100644 index 5b84dbd6d7..0000000000 --- a/asm/d/d_timer/deleteCheck__8dTimer_cFv.s +++ /dev/null @@ -1,6 +0,0 @@ -lbl_8025D524: -/* 8025D524 88 03 01 6C */ lbz r0, 0x16c(r3) -/* 8025D528 20 00 00 07 */ subfic r0, r0, 7 -/* 8025D52C 7C 00 00 34 */ cntlzw r0, r0 -/* 8025D530 54 03 DE 3E */ rlwinm r3, r0, 0x1b, 0x18, 0x1f -/* 8025D534 4E 80 00 20 */ blr diff --git a/asm/d/d_timer/deleteRequest__8dTimer_cFv.s b/asm/d/d_timer/deleteRequest__8dTimer_cFv.s deleted file mode 100644 index d84587b370..0000000000 --- a/asm/d/d_timer/deleteRequest__8dTimer_cFv.s +++ /dev/null @@ -1,5 +0,0 @@ -lbl_8025D9E0: -/* 8025D9E0 38 00 00 08 */ li r0, 8 -/* 8025D9E4 98 03 01 6C */ stb r0, 0x16c(r3) -/* 8025D9E8 38 60 00 01 */ li r3, 1 -/* 8025D9EC 4E 80 00 20 */ blr diff --git a/asm/d/d_timer/end__8dTimer_cFi.s b/asm/d/d_timer/end__8dTimer_cFi.s deleted file mode 100644 index d404d711fe..0000000000 --- a/asm/d/d_timer/end__8dTimer_cFi.s +++ /dev/null @@ -1,52 +0,0 @@ -lbl_8025D920: -/* 8025D920 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8025D924 7C 08 02 A6 */ mflr r0 -/* 8025D928 90 01 00 14 */ stw r0, 0x14(r1) -/* 8025D92C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8025D930 93 C1 00 08 */ stw r30, 8(r1) -/* 8025D934 7C 7E 1B 78 */ mr r30, r3 -/* 8025D938 7C 9F 23 78 */ mr r31, r4 -/* 8025D93C 88 03 01 6C */ lbz r0, 0x16c(r3) -/* 8025D940 28 00 00 04 */ cmplwi r0, 4 -/* 8025D944 41 82 00 0C */ beq lbl_8025D950 -/* 8025D948 38 60 00 00 */ li r3, 0 -/* 8025D94C 48 00 00 7C */ b lbl_8025D9C8 -lbl_8025D950: -/* 8025D950 4B DD 4E B5 */ bl getTime__11dLib_time_cFv -/* 8025D954 90 9E 01 24 */ stw r4, 0x124(r30) -/* 8025D958 90 7E 01 20 */ stw r3, 0x120(r30) -/* 8025D95C 38 00 00 06 */ li r0, 6 -/* 8025D960 98 1E 01 6C */ stb r0, 0x16c(r30) -/* 8025D964 80 BE 01 20 */ lwz r5, 0x120(r30) -/* 8025D968 80 9E 01 24 */ lwz r4, 0x124(r30) -/* 8025D96C 80 1E 01 10 */ lwz r0, 0x110(r30) -/* 8025D970 80 7E 01 14 */ lwz r3, 0x114(r30) -/* 8025D974 7C 83 20 10 */ subfc r4, r3, r4 -/* 8025D978 7C A0 29 10 */ subfe r5, r0, r5 -/* 8025D97C 80 1E 01 38 */ lwz r0, 0x138(r30) -/* 8025D980 80 7E 01 3C */ lwz r3, 0x13c(r30) -/* 8025D984 7C 83 20 10 */ subfc r4, r3, r4 -/* 8025D988 7C 60 29 10 */ subfe r3, r0, r5 -/* 8025D98C 3C A0 80 00 */ lis r5, 0x8000 /* 0x800000F8@ha */ -/* 8025D990 80 05 00 F8 */ lwz r0, 0x00F8(r5) /* 0x800000F8@l */ -/* 8025D994 54 05 F0 BE */ srwi r5, r0, 2 -/* 8025D998 38 00 03 E8 */ li r0, 0x3e8 -/* 8025D99C 7C C5 03 96 */ divwu r6, r5, r0 -/* 8025D9A0 38 A0 00 00 */ li r5, 0 -/* 8025D9A4 48 10 49 81 */ bl __div2i -/* 8025D9A8 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8025D9AC 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8025D9B0 38 63 0F 38 */ addi r3, r3, 0xf38 -/* 8025D9B4 4B DC F1 E1 */ bl setTimerNowTimeMs__14dComIfG_play_cFi -/* 8025D9B8 2C 1F FF FF */ cmpwi r31, -1 -/* 8025D9BC 41 82 00 08 */ beq lbl_8025D9C4 -/* 8025D9C0 93 FE 01 58 */ stw r31, 0x158(r30) -lbl_8025D9C4: -/* 8025D9C4 38 60 00 01 */ li r3, 1 -lbl_8025D9C8: -/* 8025D9C8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8025D9CC 83 C1 00 08 */ lwz r30, 8(r1) -/* 8025D9D0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8025D9D4 7C 08 03 A6 */ mtlr r0 -/* 8025D9D8 38 21 00 10 */ addi r1, r1, 0x10 -/* 8025D9DC 4E 80 00 20 */ blr diff --git a/asm/d/d_timer/getLimitTimeMs__8dTimer_cFv.s b/asm/d/d_timer/getLimitTimeMs__8dTimer_cFv.s deleted file mode 100644 index b50c6dcb68..0000000000 --- a/asm/d/d_timer/getLimitTimeMs__8dTimer_cFv.s +++ /dev/null @@ -1,19 +0,0 @@ -lbl_8025DA54: -/* 8025DA54 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8025DA58 7C 08 02 A6 */ mflr r0 -/* 8025DA5C 90 01 00 14 */ stw r0, 0x14(r1) -/* 8025DA60 80 A3 01 40 */ lwz r5, 0x140(r3) -/* 8025DA64 80 83 01 44 */ lwz r4, 0x144(r3) -/* 8025DA68 3C 60 80 00 */ lis r3, 0x8000 /* 0x800000F8@ha */ -/* 8025DA6C 80 03 00 F8 */ lwz r0, 0x00F8(r3) /* 0x800000F8@l */ -/* 8025DA70 54 03 F0 BE */ srwi r3, r0, 2 -/* 8025DA74 38 00 03 E8 */ li r0, 0x3e8 -/* 8025DA78 7C C3 03 96 */ divwu r6, r3, r0 -/* 8025DA7C 7C A3 2B 78 */ mr r3, r5 -/* 8025DA80 38 A0 00 00 */ li r5, 0 -/* 8025DA84 48 10 48 A1 */ bl __div2i -/* 8025DA88 7C 83 23 78 */ mr r3, r4 -/* 8025DA8C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8025DA90 7C 08 03 A6 */ mtlr r0 -/* 8025DA94 38 21 00 10 */ addi r1, r1, 0x10 -/* 8025DA98 4E 80 00 20 */ blr diff --git a/asm/d/d_timer/getNumber__21dDlst_TimerScrnDraw_cFi.s b/asm/d/d_timer/getNumber__21dDlst_TimerScrnDraw_cFi.s deleted file mode 100644 index 17b03b139e..0000000000 --- a/asm/d/d_timer/getNumber__21dDlst_TimerScrnDraw_cFi.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_8025EECC: -/* 8025EECC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8025EED0 7C 08 02 A6 */ mflr r0 -/* 8025EED4 90 01 00 14 */ stw r0, 0x14(r1) -/* 8025EED8 7C 83 23 78 */ mr r3, r4 -/* 8025EEDC 4B FB F3 ED */ bl dMeter2Info_getNumberTextureName__Fi -/* 8025EEE0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8025EEE4 7C 08 03 A6 */ mtlr r0 -/* 8025EEE8 38 21 00 10 */ addi r1, r1, 0x10 -/* 8025EEEC 4E 80 00 20 */ blr diff --git a/asm/d/d_timer/getTimeMs__8dTimer_cFv.s b/asm/d/d_timer/getTimeMs__8dTimer_cFv.s deleted file mode 100644 index 15e441c9e5..0000000000 --- a/asm/d/d_timer/getTimeMs__8dTimer_cFv.s +++ /dev/null @@ -1,26 +0,0 @@ -lbl_8025D9F0: -/* 8025D9F0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8025D9F4 7C 08 02 A6 */ mflr r0 -/* 8025D9F8 90 01 00 14 */ stw r0, 0x14(r1) -/* 8025D9FC 80 A3 01 18 */ lwz r5, 0x118(r3) -/* 8025DA00 80 C3 01 1C */ lwz r6, 0x11c(r3) -/* 8025DA04 80 03 01 10 */ lwz r0, 0x110(r3) -/* 8025DA08 80 83 01 14 */ lwz r4, 0x114(r3) -/* 8025DA0C 7C 84 30 10 */ subfc r4, r4, r6 -/* 8025DA10 7C A0 29 10 */ subfe r5, r0, r5 -/* 8025DA14 80 03 01 38 */ lwz r0, 0x138(r3) -/* 8025DA18 80 63 01 3C */ lwz r3, 0x13c(r3) -/* 8025DA1C 7C 83 20 10 */ subfc r4, r3, r4 -/* 8025DA20 7C 60 29 10 */ subfe r3, r0, r5 -/* 8025DA24 3C A0 80 00 */ lis r5, 0x8000 /* 0x800000F8@ha */ -/* 8025DA28 80 05 00 F8 */ lwz r0, 0x00F8(r5) /* 0x800000F8@l */ -/* 8025DA2C 54 05 F0 BE */ srwi r5, r0, 2 -/* 8025DA30 38 00 03 E8 */ li r0, 0x3e8 -/* 8025DA34 7C C5 03 96 */ divwu r6, r5, r0 -/* 8025DA38 38 A0 00 00 */ li r5, 0 -/* 8025DA3C 48 10 48 E9 */ bl __div2i -/* 8025DA40 7C 83 23 78 */ mr r3, r4 -/* 8025DA44 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8025DA48 7C 08 03 A6 */ mtlr r0 -/* 8025DA4C 38 21 00 10 */ addi r1, r1, 0x10 -/* 8025DA50 4E 80 00 20 */ blr diff --git a/asm/d/d_timer/isStart__8dTimer_cFv.s b/asm/d/d_timer/isStart__8dTimer_cFv.s deleted file mode 100644 index 534e2a687e..0000000000 --- a/asm/d/d_timer/isStart__8dTimer_cFv.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_8025DB10: -/* 8025DB10 88 03 01 6A */ lbz r0, 0x16a(r3) -/* 8025DB14 28 00 00 01 */ cmplwi r0, 1 -/* 8025DB18 41 82 00 18 */ beq lbl_8025DB30 -/* 8025DB1C 88 03 01 6C */ lbz r0, 0x16c(r3) -/* 8025DB20 28 00 00 04 */ cmplwi r0, 4 -/* 8025DB24 40 82 00 0C */ bne lbl_8025DB30 -/* 8025DB28 38 60 00 01 */ li r3, 1 -/* 8025DB2C 4E 80 00 20 */ blr -lbl_8025DB30: -/* 8025DB30 38 60 00 00 */ li r3, 0 -/* 8025DB34 4E 80 00 20 */ blr diff --git a/asm/d/d_timer/restart__8dTimer_cFUc.s b/asm/d/d_timer/restart__8dTimer_cFUc.s deleted file mode 100644 index de2e7fc04e..0000000000 --- a/asm/d/d_timer/restart__8dTimer_cFUc.s +++ /dev/null @@ -1,50 +0,0 @@ -lbl_8025D86C: -/* 8025D86C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8025D870 7C 08 02 A6 */ mflr r0 -/* 8025D874 90 01 00 14 */ stw r0, 0x14(r1) -/* 8025D878 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8025D87C 7C 7F 1B 78 */ mr r31, r3 -/* 8025D880 88 03 01 6A */ lbz r0, 0x16a(r3) -/* 8025D884 28 00 00 01 */ cmplwi r0, 1 -/* 8025D888 40 82 00 14 */ bne lbl_8025D89C -/* 8025D88C 88 7F 01 6B */ lbz r3, 0x16b(r31) -/* 8025D890 54 80 06 3E */ clrlwi r0, r4, 0x18 -/* 8025D894 7C 03 00 40 */ cmplw r3, r0 -/* 8025D898 41 82 00 0C */ beq lbl_8025D8A4 -lbl_8025D89C: -/* 8025D89C 38 60 00 00 */ li r3, 0 -/* 8025D8A0 48 00 00 6C */ b lbl_8025D90C -lbl_8025D8A4: -/* 8025D8A4 88 1F 01 6C */ lbz r0, 0x16c(r31) -/* 8025D8A8 28 00 00 04 */ cmplwi r0, 4 -/* 8025D8AC 41 82 00 14 */ beq lbl_8025D8C0 -/* 8025D8B0 28 00 00 02 */ cmplwi r0, 2 -/* 8025D8B4 41 82 00 0C */ beq lbl_8025D8C0 -/* 8025D8B8 38 60 00 00 */ li r3, 0 -/* 8025D8BC 48 00 00 50 */ b lbl_8025D90C -lbl_8025D8C0: -/* 8025D8C0 4B DD 4F 45 */ bl getTime__11dLib_time_cFv -/* 8025D8C4 90 9F 01 1C */ stw r4, 0x11c(r31) -/* 8025D8C8 90 7F 01 18 */ stw r3, 0x118(r31) -/* 8025D8CC 80 DF 01 38 */ lwz r6, 0x138(r31) -/* 8025D8D0 80 FF 01 3C */ lwz r7, 0x13c(r31) -/* 8025D8D4 80 9F 01 18 */ lwz r4, 0x118(r31) -/* 8025D8D8 80 BF 01 1C */ lwz r5, 0x11c(r31) -/* 8025D8DC 80 1F 01 30 */ lwz r0, 0x130(r31) -/* 8025D8E0 80 7F 01 34 */ lwz r3, 0x134(r31) -/* 8025D8E4 7C 63 28 10 */ subfc r3, r3, r5 -/* 8025D8E8 7C 00 21 10 */ subfe r0, r0, r4 -/* 8025D8EC 7C 67 18 14 */ addc r3, r7, r3 -/* 8025D8F0 7C 06 01 14 */ adde r0, r6, r0 -/* 8025D8F4 90 7F 01 3C */ stw r3, 0x13c(r31) -/* 8025D8F8 90 1F 01 38 */ stw r0, 0x138(r31) -/* 8025D8FC 38 00 00 00 */ li r0, 0 -/* 8025D900 98 1F 01 6A */ stb r0, 0x16a(r31) -/* 8025D904 98 1F 01 6B */ stb r0, 0x16b(r31) -/* 8025D908 38 60 00 01 */ li r3, 1 -lbl_8025D90C: -/* 8025D90C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8025D910 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8025D914 7C 08 03 A6 */ mtlr r0 -/* 8025D918 38 21 00 10 */ addi r1, r1, 0x10 -/* 8025D91C 4E 80 00 20 */ blr diff --git a/asm/d/d_timer/stock_start__8dTimer_cFs.s b/asm/d/d_timer/stock_start__8dTimer_cFs.s deleted file mode 100644 index 6cf455b9c5..0000000000 --- a/asm/d/d_timer/stock_start__8dTimer_cFs.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_8025D7C0: -/* 8025D7C0 88 03 01 6C */ lbz r0, 0x16c(r3) -/* 8025D7C4 28 00 00 00 */ cmplwi r0, 0 -/* 8025D7C8 40 82 00 18 */ bne lbl_8025D7E0 -/* 8025D7CC B0 83 01 68 */ sth r4, 0x168(r3) -/* 8025D7D0 38 00 00 05 */ li r0, 5 -/* 8025D7D4 98 03 01 6C */ stb r0, 0x16c(r3) -/* 8025D7D8 38 60 00 01 */ li r3, 1 -/* 8025D7DC 4E 80 00 20 */ blr -lbl_8025D7E0: -/* 8025D7E0 38 60 00 00 */ li r3, 0 -/* 8025D7E4 4E 80 00 20 */ blr diff --git a/asm/d/d_timer/stop__8dTimer_cFUc.s b/asm/d/d_timer/stop__8dTimer_cFUc.s deleted file mode 100644 index 22d17e34c1..0000000000 --- a/asm/d/d_timer/stop__8dTimer_cFUc.s +++ /dev/null @@ -1,38 +0,0 @@ -lbl_8025D7E8: -/* 8025D7E8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8025D7EC 7C 08 02 A6 */ mflr r0 -/* 8025D7F0 90 01 00 14 */ stw r0, 0x14(r1) -/* 8025D7F4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8025D7F8 93 C1 00 08 */ stw r30, 8(r1) -/* 8025D7FC 7C 7E 1B 78 */ mr r30, r3 -/* 8025D800 7C 9F 23 78 */ mr r31, r4 -/* 8025D804 88 03 01 6A */ lbz r0, 0x16a(r3) -/* 8025D808 28 00 00 01 */ cmplwi r0, 1 -/* 8025D80C 41 82 00 10 */ beq lbl_8025D81C -/* 8025D810 88 1E 01 6B */ lbz r0, 0x16b(r30) -/* 8025D814 28 00 00 00 */ cmplwi r0, 0 -/* 8025D818 41 82 00 0C */ beq lbl_8025D824 -lbl_8025D81C: -/* 8025D81C 38 60 00 00 */ li r3, 0 -/* 8025D820 48 00 00 34 */ b lbl_8025D854 -lbl_8025D824: -/* 8025D824 88 1E 01 6C */ lbz r0, 0x16c(r30) -/* 8025D828 28 00 00 04 */ cmplwi r0, 4 -/* 8025D82C 41 82 00 0C */ beq lbl_8025D838 -/* 8025D830 38 60 00 00 */ li r3, 0 -/* 8025D834 48 00 00 20 */ b lbl_8025D854 -lbl_8025D838: -/* 8025D838 4B DD 4F CD */ bl getTime__11dLib_time_cFv -/* 8025D83C 90 9E 01 34 */ stw r4, 0x134(r30) -/* 8025D840 90 7E 01 30 */ stw r3, 0x130(r30) -/* 8025D844 38 00 00 01 */ li r0, 1 -/* 8025D848 98 1E 01 6A */ stb r0, 0x16a(r30) -/* 8025D84C 9B FE 01 6B */ stb r31, 0x16b(r30) -/* 8025D850 38 60 00 01 */ li r3, 1 -lbl_8025D854: -/* 8025D854 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8025D858 83 C1 00 08 */ lwz r30, 8(r1) -/* 8025D85C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8025D860 7C 08 03 A6 */ mtlr r0 -/* 8025D864 38 21 00 10 */ addi r1, r1, 0x10 -/* 8025D868 4E 80 00 20 */ blr diff --git a/asm/d/d_vibration/CheckQuake__12dVibration_cFv.s b/asm/d/d_vibration/CheckQuake__12dVibration_cFv.s deleted file mode 100644 index 8ee28a0915..0000000000 --- a/asm/d/d_vibration/CheckQuake__12dVibration_cFv.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_8006FE5C: -/* 8006FE5C 38 80 00 00 */ li r4, 0 -/* 8006FE60 80 03 00 2C */ lwz r0, 0x2c(r3) -/* 8006FE64 2C 00 FF FF */ cmpwi r0, -1 -/* 8006FE68 40 82 00 10 */ bne lbl_8006FE78 -/* 8006FE6C 80 03 00 70 */ lwz r0, 0x70(r3) -/* 8006FE70 2C 00 FF FF */ cmpwi r0, -1 -/* 8006FE74 41 82 00 08 */ beq lbl_8006FE7C -lbl_8006FE78: -/* 8006FE78 38 80 00 01 */ li r4, 1 -lbl_8006FE7C: -/* 8006FE7C 7C 83 23 78 */ mr r3, r4 -/* 8006FE80 4E 80 00 20 */ blr diff --git a/asm/d/d_vibration/Init__12dVibration_cFv.s b/asm/d/d_vibration/Init__12dVibration_cFv.s deleted file mode 100644 index c63e6ee5e0..0000000000 --- a/asm/d/d_vibration/Init__12dVibration_cFv.s +++ /dev/null @@ -1,14 +0,0 @@ -lbl_8006FF04: -/* 8006FF04 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8006FF08 7C 08 02 A6 */ mflr r0 -/* 8006FF0C 90 01 00 14 */ stw r0, 0x14(r1) -/* 8006FF10 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8006FF14 7C 7F 1B 78 */ mr r31, r3 -/* 8006FF18 4B FF FE E9 */ bl Kill__12dVibration_cFv -/* 8006FF1C 7F E3 FB 78 */ mr r3, r31 -/* 8006FF20 4B FF FF 65 */ bl setDefault__12dVibration_cFv -/* 8006FF24 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8006FF28 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8006FF2C 7C 08 03 A6 */ mtlr r0 -/* 8006FF30 38 21 00 10 */ addi r1, r1, 0x10 -/* 8006FF34 4E 80 00 20 */ blr diff --git a/asm/d/d_vibration/Kill__12dVibration_cFv.s b/asm/d/d_vibration/Kill__12dVibration_cFv.s deleted file mode 100644 index cf2314df27..0000000000 --- a/asm/d/d_vibration/Kill__12dVibration_cFv.s +++ /dev/null @@ -1,24 +0,0 @@ -lbl_8006FE00: -/* 8006FE00 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8006FE04 7C 08 02 A6 */ mflr r0 -/* 8006FE08 90 01 00 14 */ stw r0, 0x14(r1) -/* 8006FE0C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8006FE10 7C 7F 1B 78 */ mr r31, r3 -/* 8006FE14 3C 60 80 3E */ lis r3, m_gamePad__8mDoCPd_c@ha /* 0x803DD2D8@ha */ -/* 8006FE18 80 83 D2 D8 */ lwz r4, m_gamePad__8mDoCPd_c@l(r3) /* 0x803DD2D8@l */ -/* 8006FE1C 38 64 00 68 */ addi r3, r4, 0x68 -/* 8006FE20 A8 84 00 7C */ lha r4, 0x7c(r4) -/* 8006FE24 48 27 1B 25 */ bl stopPatternedRumble__Q210JUTGamePad7CRumbleFs -/* 8006FE28 3C 60 80 3E */ lis r3, m_gamePad__8mDoCPd_c@ha /* 0x803DD2D8@ha */ -/* 8006FE2C 38 63 D2 D8 */ addi r3, r3, m_gamePad__8mDoCPd_c@l /* 0x803DD2D8@l */ -/* 8006FE30 80 63 00 00 */ lwz r3, 0(r3) -/* 8006FE34 A8 63 00 7C */ lha r3, 0x7c(r3) -/* 8006FE38 38 80 00 01 */ li r4, 1 -/* 8006FE3C 48 27 18 51 */ bl stopMotor__Q210JUTGamePad7CRumbleFib -/* 8006FE40 7F E3 FB 78 */ mr r3, r31 -/* 8006FE44 48 00 00 41 */ bl setDefault__12dVibration_cFv -/* 8006FE48 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8006FE4C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8006FE50 7C 08 03 A6 */ mtlr r0 -/* 8006FE54 38 21 00 10 */ addi r1, r1, 0x10 -/* 8006FE58 4E 80 00 20 */ blr diff --git a/asm/d/d_vibration/Pause__12dVibration_cFv.s b/asm/d/d_vibration/Pause__12dVibration_cFv.s deleted file mode 100644 index 3b77c70538..0000000000 --- a/asm/d/d_vibration/Pause__12dVibration_cFv.s +++ /dev/null @@ -1,54 +0,0 @@ -lbl_8006FF38: -/* 8006FF38 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8006FF3C 7C 08 02 A6 */ mflr r0 -/* 8006FF40 90 01 00 14 */ stw r0, 0x14(r1) -/* 8006FF44 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8006FF48 7C 7F 1B 78 */ mr r31, r3 -/* 8006FF4C 80 03 00 8C */ lwz r0, 0x8c(r3) -/* 8006FF50 2C 00 FF FF */ cmpwi r0, -1 -/* 8006FF54 41 82 00 90 */ beq lbl_8006FFE4 -/* 8006FF58 80 1F 00 54 */ lwz r0, 0x54(r31) -/* 8006FF5C 2C 00 FF FF */ cmpwi r0, -1 -/* 8006FF60 40 82 00 10 */ bne lbl_8006FF70 -/* 8006FF64 80 1F 00 70 */ lwz r0, 0x70(r31) -/* 8006FF68 2C 00 FF FF */ cmpwi r0, -1 -/* 8006FF6C 41 82 00 30 */ beq lbl_8006FF9C -lbl_8006FF70: -/* 8006FF70 3C 60 80 3E */ lis r3, m_gamePad__8mDoCPd_c@ha /* 0x803DD2D8@ha */ -/* 8006FF74 80 83 D2 D8 */ lwz r4, m_gamePad__8mDoCPd_c@l(r3) /* 0x803DD2D8@l */ -/* 8006FF78 38 64 00 68 */ addi r3, r4, 0x68 -/* 8006FF7C A8 84 00 7C */ lha r4, 0x7c(r4) -/* 8006FF80 48 27 19 C9 */ bl stopPatternedRumble__Q210JUTGamePad7CRumbleFs -/* 8006FF84 3C 60 80 3E */ lis r3, m_gamePad__8mDoCPd_c@ha /* 0x803DD2D8@ha */ -/* 8006FF88 38 63 D2 D8 */ addi r3, r3, m_gamePad__8mDoCPd_c@l /* 0x803DD2D8@l */ -/* 8006FF8C 80 63 00 00 */ lwz r3, 0(r3) -/* 8006FF90 A8 63 00 7C */ lha r3, 0x7c(r3) -/* 8006FF94 38 80 00 01 */ li r4, 1 -/* 8006FF98 48 27 16 F5 */ bl stopMotor__Q210JUTGamePad7CRumbleFib -lbl_8006FF9C: -/* 8006FF9C 38 00 FF FF */ li r0, -1 -/* 8006FFA0 90 1F 00 54 */ stw r0, 0x54(r31) -/* 8006FFA4 90 1F 00 04 */ stw r0, 4(r31) -/* 8006FFA8 38 00 FF 9D */ li r0, -99 -/* 8006FFAC 90 1F 00 64 */ stw r0, 0x64(r31) -/* 8006FFB0 90 1F 00 24 */ stw r0, 0x24(r31) -/* 8006FFB4 80 1F 00 2C */ lwz r0, 0x2c(r31) -/* 8006FFB8 2C 00 FF FF */ cmpwi r0, -1 -/* 8006FFBC 41 82 00 0C */ beq lbl_8006FFC8 -/* 8006FFC0 38 00 00 00 */ li r0, 0 -/* 8006FFC4 90 1F 00 4C */ stw r0, 0x4c(r31) -lbl_8006FFC8: -/* 8006FFC8 80 1F 00 70 */ lwz r0, 0x70(r31) -/* 8006FFCC 2C 00 FF FF */ cmpwi r0, -1 -/* 8006FFD0 41 82 00 0C */ beq lbl_8006FFDC -/* 8006FFD4 38 00 00 00 */ li r0, 0 -/* 8006FFD8 90 1F 00 80 */ stw r0, 0x80(r31) -lbl_8006FFDC: -/* 8006FFDC 38 00 FF FF */ li r0, -1 -/* 8006FFE0 90 1F 00 8C */ stw r0, 0x8c(r31) -lbl_8006FFE4: -/* 8006FFE4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8006FFE8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8006FFEC 7C 08 03 A6 */ mtlr r0 -/* 8006FFF0 38 21 00 10 */ addi r1, r1, 0x10 -/* 8006FFF4 4E 80 00 20 */ blr diff --git a/asm/d/d_vibration/Remove__12dVibration_cFv.s b/asm/d/d_vibration/Remove__12dVibration_cFv.s deleted file mode 100644 index 208faef3dc..0000000000 --- a/asm/d/d_vibration/Remove__12dVibration_cFv.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_8006FFF8: -/* 8006FFF8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8006FFFC 7C 08 02 A6 */ mflr r0 -/* 80070000 90 01 00 14 */ stw r0, 0x14(r1) -/* 80070004 4B FF FD FD */ bl Kill__12dVibration_cFv -/* 80070008 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007000C 7C 08 03 A6 */ mtlr r0 -/* 80070010 38 21 00 10 */ addi r1, r1, 0x10 -/* 80070014 4E 80 00 20 */ blr diff --git a/asm/d/d_vibration/StartQuake__12dVibration_cFii4cXyz.s b/asm/d/d_vibration/StartQuake__12dVibration_cFii4cXyz.s deleted file mode 100644 index c2852b072b..0000000000 --- a/asm/d/d_vibration/StartQuake__12dVibration_cFii4cXyz.s +++ /dev/null @@ -1,66 +0,0 @@ -lbl_8006FB10: -/* 8006FB10 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8006FB14 7C 08 02 A6 */ mflr r0 -/* 8006FB18 90 01 00 24 */ stw r0, 0x24(r1) -/* 8006FB1C 39 61 00 20 */ addi r11, r1, 0x20 -/* 8006FB20 48 2F 26 BD */ bl _savegpr_29 -/* 8006FB24 7C 7E 1B 78 */ mr r30, r3 -/* 8006FB28 7C 9F 23 78 */ mr r31, r4 -/* 8006FB2C 3B A0 00 00 */ li r29, 0 -/* 8006FB30 54 A0 06 7D */ rlwinm. r0, r5, 0, 0x19, 0x1e -/* 8006FB34 41 82 00 58 */ beq lbl_8006FB8C -/* 8006FB38 93 FE 00 2C */ stw r31, 0x2c(r30) -/* 8006FB3C 38 00 00 00 */ li r0, 0 -/* 8006FB40 90 1E 00 4C */ stw r0, 0x4c(r30) -/* 8006FB44 90 BE 00 3C */ stw r5, 0x3c(r30) -/* 8006FB48 C0 06 00 00 */ lfs f0, 0(r6) -/* 8006FB4C D0 1E 00 40 */ stfs f0, 0x40(r30) -/* 8006FB50 C0 06 00 04 */ lfs f0, 4(r6) -/* 8006FB54 D0 1E 00 44 */ stfs f0, 0x44(r30) -/* 8006FB58 C0 06 00 08 */ lfs f0, 8(r6) -/* 8006FB5C D0 1E 00 48 */ stfs f0, 0x48(r30) -/* 8006FB60 3C 60 80 38 */ lis r3, CQ_patt__12dVibration_c@ha /* 0x8037A720@ha */ -/* 8006FB64 38 83 A7 20 */ addi r4, r3, CQ_patt__12dVibration_c@l /* 0x8037A720@l */ -/* 8006FB68 57 E6 18 38 */ slwi r6, r31, 3 -/* 8006FB6C 7C 64 32 14 */ add r3, r4, r6 -/* 8006FB70 80 03 00 04 */ lwz r0, 4(r3) -/* 8006FB74 90 1E 00 30 */ stw r0, 0x30(r30) -/* 8006FB78 A0 03 00 02 */ lhz r0, 2(r3) -/* 8006FB7C 90 1E 00 34 */ stw r0, 0x34(r30) -/* 8006FB80 7C 04 32 2E */ lhzx r0, r4, r6 -/* 8006FB84 90 1E 00 38 */ stw r0, 0x38(r30) -/* 8006FB88 3B A0 00 01 */ li r29, 1 -lbl_8006FB8C: -/* 8006FB8C 54 A0 07 FF */ clrlwi. r0, r5, 0x1f -/* 8006FB90 41 82 00 60 */ beq lbl_8006FBF0 -/* 8006FB94 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8006FB98 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8006FB9C 38 63 01 E0 */ addi r3, r3, 0x1e0 -/* 8006FBA0 4B FC 4A A5 */ bl checkVibration__19dSv_player_config_cCFv -/* 8006FBA4 54 60 06 3E */ clrlwi r0, r3, 0x18 -/* 8006FBA8 28 00 00 01 */ cmplwi r0, 1 -/* 8006FBAC 40 82 00 44 */ bne lbl_8006FBF0 -/* 8006FBB0 93 FE 00 70 */ stw r31, 0x70(r30) -/* 8006FBB4 38 00 00 00 */ li r0, 0 -/* 8006FBB8 90 1E 00 80 */ stw r0, 0x80(r30) -/* 8006FBBC 3C 60 80 38 */ lis r3, MQ_patt__12dVibration_c@ha /* 0x8037A6D0@ha */ -/* 8006FBC0 38 03 A6 D0 */ addi r0, r3, MQ_patt__12dVibration_c@l /* 0x8037A6D0@l */ -/* 8006FBC4 57 E4 18 38 */ slwi r4, r31, 3 -/* 8006FBC8 7C 60 22 14 */ add r3, r0, r4 -/* 8006FBCC 80 03 00 04 */ lwz r0, 4(r3) -/* 8006FBD0 90 1E 00 74 */ stw r0, 0x74(r30) -/* 8006FBD4 A0 03 00 02 */ lhz r0, 2(r3) -/* 8006FBD8 90 1E 00 78 */ stw r0, 0x78(r30) -/* 8006FBDC 3C 60 80 38 */ lis r3, CQ_patt__12dVibration_c@ha /* 0x8037A720@ha */ -/* 8006FBE0 38 63 A7 20 */ addi r3, r3, CQ_patt__12dVibration_c@l /* 0x8037A720@l */ -/* 8006FBE4 7C 03 22 2E */ lhzx r0, r3, r4 -/* 8006FBE8 90 1E 00 7C */ stw r0, 0x7c(r30) -/* 8006FBEC 3B A0 00 01 */ li r29, 1 -lbl_8006FBF0: -/* 8006FBF0 7F A3 EB 78 */ mr r3, r29 -/* 8006FBF4 39 61 00 20 */ addi r11, r1, 0x20 -/* 8006FBF8 48 2F 26 31 */ bl _restgpr_29 -/* 8006FBFC 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8006FC00 7C 08 03 A6 */ mtlr r0 -/* 8006FC04 38 21 00 20 */ addi r1, r1, 0x20 -/* 8006FC08 4E 80 00 20 */ blr diff --git a/asm/d/d_vibration/StartShock__12dVibration_cFii4cXyz.s b/asm/d/d_vibration/StartShock__12dVibration_cFii4cXyz.s deleted file mode 100644 index ab3711d2e5..0000000000 --- a/asm/d/d_vibration/StartShock__12dVibration_cFii4cXyz.s +++ /dev/null @@ -1,62 +0,0 @@ -lbl_8006FA24: -/* 8006FA24 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8006FA28 7C 08 02 A6 */ mflr r0 -/* 8006FA2C 90 01 00 24 */ stw r0, 0x24(r1) -/* 8006FA30 39 61 00 20 */ addi r11, r1, 0x20 -/* 8006FA34 48 2F 27 A9 */ bl _savegpr_29 -/* 8006FA38 7C 7E 1B 78 */ mr r30, r3 -/* 8006FA3C 7C 9F 23 78 */ mr r31, r4 -/* 8006FA40 3B A0 00 00 */ li r29, 0 -/* 8006FA44 54 A0 06 7D */ rlwinm. r0, r5, 0, 0x19, 0x1e -/* 8006FA48 41 82 00 58 */ beq lbl_8006FAA0 -/* 8006FA4C 93 FE 00 04 */ stw r31, 4(r30) -/* 8006FA50 38 00 00 00 */ li r0, 0 -/* 8006FA54 90 1E 00 24 */ stw r0, 0x24(r30) -/* 8006FA58 90 BE 00 14 */ stw r5, 0x14(r30) -/* 8006FA5C C0 06 00 00 */ lfs f0, 0(r6) -/* 8006FA60 D0 1E 00 18 */ stfs f0, 0x18(r30) -/* 8006FA64 C0 06 00 04 */ lfs f0, 4(r6) -/* 8006FA68 D0 1E 00 1C */ stfs f0, 0x1c(r30) -/* 8006FA6C C0 06 00 08 */ lfs f0, 8(r6) -/* 8006FA70 D0 1E 00 20 */ stfs f0, 0x20(r30) -/* 8006FA74 3C 60 80 38 */ lis r3, CS_patt__12dVibration_c@ha /* 0x8037A678@ha */ -/* 8006FA78 38 83 A6 78 */ addi r4, r3, CS_patt__12dVibration_c@l /* 0x8037A678@l */ -/* 8006FA7C 57 E6 18 38 */ slwi r6, r31, 3 -/* 8006FA80 7C 64 32 14 */ add r3, r4, r6 -/* 8006FA84 80 03 00 04 */ lwz r0, 4(r3) -/* 8006FA88 90 1E 00 08 */ stw r0, 8(r30) -/* 8006FA8C A0 03 00 02 */ lhz r0, 2(r3) -/* 8006FA90 90 1E 00 0C */ stw r0, 0xc(r30) -/* 8006FA94 7C 04 32 2E */ lhzx r0, r4, r6 -/* 8006FA98 90 1E 00 10 */ stw r0, 0x10(r30) -/* 8006FA9C 3B A0 00 01 */ li r29, 1 -lbl_8006FAA0: -/* 8006FAA0 54 A0 07 FF */ clrlwi. r0, r5, 0x1f -/* 8006FAA4 41 82 00 50 */ beq lbl_8006FAF4 -/* 8006FAA8 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 8006FAAC 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8006FAB0 38 63 01 E0 */ addi r3, r3, 0x1e0 -/* 8006FAB4 4B FC 4B 91 */ bl checkVibration__19dSv_player_config_cCFv -/* 8006FAB8 54 60 06 3E */ clrlwi r0, r3, 0x18 -/* 8006FABC 28 00 00 01 */ cmplwi r0, 1 -/* 8006FAC0 40 82 00 34 */ bne lbl_8006FAF4 -/* 8006FAC4 93 FE 00 54 */ stw r31, 0x54(r30) -/* 8006FAC8 38 00 00 00 */ li r0, 0 -/* 8006FACC 90 1E 00 64 */ stw r0, 0x64(r30) -/* 8006FAD0 3C 60 80 38 */ lis r3, MS_patt__12dVibration_c@ha /* 0x8037A620@ha */ -/* 8006FAD4 38 03 A6 20 */ addi r0, r3, MS_patt__12dVibration_c@l /* 0x8037A620@l */ -/* 8006FAD8 57 E3 18 38 */ slwi r3, r31, 3 -/* 8006FADC 7C 60 1A 14 */ add r3, r0, r3 -/* 8006FAE0 80 03 00 04 */ lwz r0, 4(r3) -/* 8006FAE4 90 1E 00 58 */ stw r0, 0x58(r30) -/* 8006FAE8 A0 03 00 02 */ lhz r0, 2(r3) -/* 8006FAEC 90 1E 00 5C */ stw r0, 0x5c(r30) -/* 8006FAF0 3B A0 00 01 */ li r29, 1 -lbl_8006FAF4: -/* 8006FAF4 7F A3 EB 78 */ mr r3, r29 -/* 8006FAF8 39 61 00 20 */ addi r11, r1, 0x20 -/* 8006FAFC 48 2F 27 2D */ bl _restgpr_29 -/* 8006FB00 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8006FB04 7C 08 03 A6 */ mtlr r0 -/* 8006FB08 38 21 00 20 */ addi r1, r1, 0x20 -/* 8006FB0C 4E 80 00 20 */ blr diff --git a/asm/d/d_vibration/StopQuake__12dVibration_cFi.s b/asm/d/d_vibration/StopQuake__12dVibration_cFi.s deleted file mode 100644 index 727dbd10c2..0000000000 --- a/asm/d/d_vibration/StopQuake__12dVibration_cFi.s +++ /dev/null @@ -1,31 +0,0 @@ -lbl_8006FD94: -/* 8006FD94 38 A0 00 00 */ li r5, 0 -/* 8006FD98 54 80 06 7D */ rlwinm. r0, r4, 0, 0x19, 0x1e -/* 8006FD9C 41 82 00 38 */ beq lbl_8006FDD4 -/* 8006FDA0 80 03 00 4C */ lwz r0, 0x4c(r3) -/* 8006FDA4 2C 00 00 00 */ cmpwi r0, 0 -/* 8006FDA8 41 80 00 2C */ blt lbl_8006FDD4 -/* 8006FDAC 80 A3 00 3C */ lwz r5, 0x3c(r3) -/* 8006FDB0 7C A0 20 78 */ andc r0, r5, r4 -/* 8006FDB4 90 03 00 3C */ stw r0, 0x3c(r3) -/* 8006FDB8 80 03 00 3C */ lwz r0, 0x3c(r3) -/* 8006FDBC 2C 00 00 00 */ cmpwi r0, 0 -/* 8006FDC0 40 82 00 10 */ bne lbl_8006FDD0 -/* 8006FDC4 80 03 00 28 */ lwz r0, 0x28(r3) -/* 8006FDC8 60 00 00 01 */ ori r0, r0, 1 -/* 8006FDCC 90 03 00 28 */ stw r0, 0x28(r3) -lbl_8006FDD0: -/* 8006FDD0 38 A0 00 01 */ li r5, 1 -lbl_8006FDD4: -/* 8006FDD4 54 80 07 FF */ clrlwi. r0, r4, 0x1f -/* 8006FDD8 41 82 00 20 */ beq lbl_8006FDF8 -/* 8006FDDC 80 03 00 80 */ lwz r0, 0x80(r3) -/* 8006FDE0 2C 00 00 00 */ cmpwi r0, 0 -/* 8006FDE4 41 80 00 14 */ blt lbl_8006FDF8 -/* 8006FDE8 80 03 00 6C */ lwz r0, 0x6c(r3) -/* 8006FDEC 60 00 00 01 */ ori r0, r0, 1 -/* 8006FDF0 90 03 00 6C */ stw r0, 0x6c(r3) -/* 8006FDF4 38 A0 00 01 */ li r5, 1 -lbl_8006FDF8: -/* 8006FDF8 7C A3 2B 78 */ mr r3, r5 -/* 8006FDFC 4E 80 00 20 */ blr diff --git a/asm/d/d_vibration/setDefault__12dVibration_cFv.s b/asm/d/d_vibration/setDefault__12dVibration_cFv.s deleted file mode 100644 index 6d6caeeaee..0000000000 --- a/asm/d/d_vibration/setDefault__12dVibration_cFv.s +++ /dev/null @@ -1,33 +0,0 @@ -lbl_8006FE84: -/* 8006FE84 38 00 FF FF */ li r0, -1 -/* 8006FE88 90 03 00 54 */ stw r0, 0x54(r3) -/* 8006FE8C 90 03 00 04 */ stw r0, 4(r3) -/* 8006FE90 90 03 00 70 */ stw r0, 0x70(r3) -/* 8006FE94 90 03 00 2C */ stw r0, 0x2c(r3) -/* 8006FE98 38 80 00 00 */ li r4, 0 -/* 8006FE9C 90 83 00 50 */ stw r4, 0x50(r3) -/* 8006FEA0 90 83 00 00 */ stw r4, 0(r3) -/* 8006FEA4 90 83 00 6C */ stw r4, 0x6c(r3) -/* 8006FEA8 90 83 00 28 */ stw r4, 0x28(r3) -/* 8006FEAC 90 83 00 58 */ stw r4, 0x58(r3) -/* 8006FEB0 90 83 00 08 */ stw r4, 8(r3) -/* 8006FEB4 90 83 00 74 */ stw r4, 0x74(r3) -/* 8006FEB8 90 83 00 30 */ stw r4, 0x30(r3) -/* 8006FEBC 90 83 00 5C */ stw r4, 0x5c(r3) -/* 8006FEC0 90 83 00 0C */ stw r4, 0xc(r3) -/* 8006FEC4 90 83 00 78 */ stw r4, 0x78(r3) -/* 8006FEC8 90 83 00 34 */ stw r4, 0x34(r3) -/* 8006FECC 90 83 00 60 */ stw r4, 0x60(r3) -/* 8006FED0 90 83 00 10 */ stw r4, 0x10(r3) -/* 8006FED4 90 83 00 7C */ stw r4, 0x7c(r3) -/* 8006FED8 90 83 00 38 */ stw r4, 0x38(r3) -/* 8006FEDC 38 00 FF 9D */ li r0, -99 -/* 8006FEE0 90 03 00 64 */ stw r0, 0x64(r3) -/* 8006FEE4 90 03 00 24 */ stw r0, 0x24(r3) -/* 8006FEE8 90 03 00 80 */ stw r0, 0x80(r3) -/* 8006FEEC 90 03 00 4C */ stw r0, 0x4c(r3) -/* 8006FEF0 90 03 00 68 */ stw r0, 0x68(r3) -/* 8006FEF4 90 03 00 84 */ stw r0, 0x84(r3) -/* 8006FEF8 90 83 00 8C */ stw r4, 0x8c(r3) -/* 8006FEFC 90 83 00 88 */ stw r4, 0x88(r3) -/* 8006FF00 4E 80 00 20 */ blr diff --git a/include/SSystem/SComponent/c_lib.h b/include/SSystem/SComponent/c_lib.h index 6eb7142e4f..3e277a79d9 100644 --- a/include/SSystem/SComponent/c_lib.h +++ b/include/SSystem/SComponent/c_lib.h @@ -36,13 +36,18 @@ s16 cLib_targetAngleX(const cXyz*, const cXyz*); void cLib_offsetPos(cXyz* pDest, cXyz const* pSrc, s16 angle, cXyz const* vec); s32 cLib_distanceAngleS(s16 x, s16 y); -inline void cLib_offBit(u8& value, u8 bit) { +template +inline void cLib_offBit(T& value, u8 bit) { value &= ~bit; } -inline void cLib_onBit(u8& value, u8 bit) { + +template +inline void cLib_onBit(T& value, u8 bit) { value |= bit; } -inline u8 cLib_checkBit(u8& value, u8 bit) { + +template +inline T cLib_checkBit(T& value, u8 bit) { return value & bit; } diff --git a/include/d/com/d_com_inf_game.h b/include/d/com/d_com_inf_game.h index 5905e1f4be..b7e094eb84 100644 --- a/include/d/com/d_com_inf_game.h +++ b/include/d/com/d_com_inf_game.h @@ -703,10 +703,18 @@ inline int dComIfG_getTimerMode() { return g_dComIfG_gameInfo.play.getTimerMode(); } +inline void dComIfG_setTimerMode(int mode) { + return g_dComIfG_gameInfo.play.setTimerMode(mode); +} + inline dTimer_c* dComIfG_getTimerPtr() { return g_dComIfG_gameInfo.play.getTimerPtr(); } +inline u8 dComIfG_getTimerType() { + return g_dComIfG_gameInfo.play.getTimerType(); +} + inline int dComIfG_setObjectRes(const char* name, u8 param_1, JKRHeap* heap) { return g_dComIfG_gameInfo.mResControl.setObjectRes(name, param_1, heap); } @@ -1005,6 +1013,10 @@ inline u8 dComIfGs_checkBottle(u8 i_itemNo) { return g_dComIfG_gameInfo.info.getPlayer().getItem().checkBottle(i_itemNo); } +inline u8 dComIfGs_checkOptVibration() { + return g_dComIfG_gameInfo.info.getPlayer().getConfig().checkVibration(); +} + inline BOOL dComIfGs_isLightDropGetFlag(u8 i_nowLevel) { return g_dComIfG_gameInfo.info.getPlayer().getLightDrop().isLightDropGetFlag(i_nowLevel); } @@ -2548,6 +2560,14 @@ inline void dComIfGp_particle_removeScene(bool param_0) { g_dComIfG_gameInfo.play.getParticle()->removeScene(param_0); } +inline int dComIfG_getTimerNowTimeMs() { + return g_dComIfG_gameInfo.play.getTimerNowTimeMs(); +} + +inline int dComIfG_setTimerNowTimeMs(int time) { + g_dComIfG_gameInfo.play.setTimerNowTimeMs(time); +} + inline u32 dComIfGp_particle_set(u32 param_0, u16 param_1, const cXyz* param_2, const dKy_tevstr_c* param_3, const csXyz* param_4, const cXyz* param_5, u8 param_6, dPa_levelEcallBack* param_7, @@ -2749,6 +2769,10 @@ inline void dComIfGd_init() { g_dComIfG_gameInfo.drawlist.init(); } +inline void dComIfGd_peekZ(s16 param_0, s16 param_1, u32* param_2) { + g_dComIfG_gameInfo.drawlist.newPeekZdata(param_0, param_1, param_2); +} + inline void dComIfGd_peekZdata() { g_dComIfG_gameInfo.drawlist.peekZdata(); } diff --git a/include/d/d_camera.h b/include/d/d_camera.h index 5aad5b6ae1..b5e2336c7e 100644 --- a/include/d/d_camera.h +++ b/include/d/d_camera.h @@ -515,7 +515,9 @@ public: /* 0x920 */ f32 mTrimHeight; /* 0x924 */ int mTrimSize; /* 0x928 */ int mTrimTypeForce; - /* 0x92C */ u8 field_0x92c[0x970 - 0x92c]; + /* 0x92C */ u8 field_0x92c[0x93C - 0x92c]; + /* 0x93C */ f32 field_0x93c; + /* 0x940 */ u8 field_0x940[0x970 - 0x940]; /* 0x970 */ dCamSetup_c mCamSetup; /* 0xAEC */ dCamParam_c mCamParam; /* 0xB0C */ diff --git a/include/d/d_drawlist.h b/include/d/d_drawlist.h index 423383e051..c22a647f2b 100644 --- a/include/d/d_drawlist.h +++ b/include/d/d_drawlist.h @@ -326,6 +326,10 @@ public: param_6); } + void newPeekZdata(s16 param_0, s16 param_1, u32* param_2) { + mPeekZ.newData(param_0, param_1, param_2); + } + static void offWipe() { mWipe = 0; } static f32 getWipeRate() { return mWipeRate; } diff --git a/include/d/d_insect.h b/include/d/d_insect.h index 0e30b48d28..286dbaa6a1 100644 --- a/include/d/d_insect.h +++ b/include/d/d_insect.h @@ -2,5 +2,29 @@ #define D_D_INSECT_H #include "dolphin/types.h" +#include "f_op/f_op_actor.h" + +class dInsect_c : public fopAc_ac_c { +public: +/* 80110648 */ virtual void Insect_Release(); +/* 8015E010 */ dInsect_c(); +/* 8015E078 */ virtual void Insect_GetDemoMain(); +/* 8015E26C */ virtual void CalcZBuffer(f32); +private: + /* 0x56C */ u8 field_0x56C; + /* 0x56D */ u8 field_0x56D; + /* 0x56E */ u8 field_0x56E[10]; + /* 0x578 */ u32 field_0x578; + /* 0x57C */ f32 field_0x57C; + /* 0x580 */ u8 field_0x580; + /* 0x581 */ u8 field_0x581; + /* 0x582 */ s16 field_0x582; + /* 0x584 */ u8 field_0x584; + /* 0x585 */ u8 field_0x585; + /* 0x586 */ u8 field_0x586[2]; + /* 0x588 */ u32 field_0x588; + /* 0x58C */ int field_0x58C; + +}; #endif /* D_D_INSECT_H */ diff --git a/include/d/d_timer.h b/include/d/d_timer.h index f4b0f517c4..1b39147cab 100644 --- a/include/d/d_timer.h +++ b/include/d/d_timer.h @@ -2,30 +2,132 @@ #define D_D_TIMER_H #include "SSystem/SComponent/c_xyz.h" +#include "SSystem/SComponent/c_phase.h" #include "dolphin/types.h" +#include "dolphin/os/OSTime.h" +#include "d/msg/d_msg_class.h" +#include "d/msg/d_msg_object.h" +#include "JSystem/JKernel/JKRExpHeap.h" +#include "JSystem/J2DGraph/J2DPane.h" -void dTimer_createStockTimer(); +s32 dTimer_createStockTimer(); + +class dDlst_TimerScrnDraw_c { +private: + /* 0x000 */ u8 field_0x000[0x3B0]; + /* 0x3B0 */ int field_0x3B0;; + /* 0x3B4 */ int field_0x3B4; + /* 0x3B8 */ int field_0x3B8; + /* 0x3BC */ int field_0x3BC; + /* 0x3C0 */ u8 field_0x3C0[12]; + /* 0x3CC */ int field_0x3CC; + /* 0x3D0 */ int field_0x3D0; + /* 0x3D4 */ int field_0x3D4; + /* 0x3D8 */ int field_0x3D8; + /* 0x3DC */ u8 field_0x3DC; + // /* 0x3DC */ u8 field_0x3DD; + /* 0x3DE */ u8 field_0x3DE; + /* 0x3DF */ u8 field_0x3DF; + /* 0x3E0 */ u8 field_0x3E0; + /* 0x3E1 */ u8 field_0x3E1; + /* 0x3E2 */ u8 mTimerVisible; +public: + /* 8025DB38 */ dDlst_TimerScrnDraw_c(); + /* 8025DBE0 */ void setHIO(); + /* 8025DFBC */ void setScreen(s32, JKRArchive*); + /* 8025E240 */ void setScreenBase(); + /* 8025E66C */ void setScreenBoatRace(); + /* 8025E8B8 */ void setScreenRider(); + /* 8025EB20 */ void hideDenominator(); + /* 8025EC5C */ void deleteScreen(); + /* 8025EE24 */ void changeNumberTexture(J2DPane*, int); + /* 8025EECC */ char* getNumber(int); + /* 8025EEF0 */ void setTimer(int); + /* 8025F180 */ void setCounter(u8, u8); + /* 8025FA00 */ void setParentPos(f32, f32); + /* 8025FA2C */ void setTimerPos(f32, f32); + /* 8025FA6C */ void setCounterPos(f32, f32); + /* 8025FA98 */ void setImagePos(f32, f32); + /* 8025FAC4 */ void setShowType(u8); + /* 8025FB74 */ void anime(); + /* 8025FF98 */ void closeAnime(); + /* 802601E4 */ void createGetIn(cXyz); + /* 80260574 */ s32 createStart(u16); + /* 80260690 */ void draw(); + /* 80260AA8 */ void checkStartAnimeEnd(); + /* 80260AD4 */ void playBckAnimation(f32); + /* 80260B54 */ void drawPikari(int); + /* 80261394 */ ~dDlst_TimerScrnDraw_c(); + + void show() { + mTimerVisible = 1; + } + + void hide() { + mTimerVisible = 0; + } +}; + +class dTimer_c : public msg_class { +private: + /* 0x100 */ JKRExpHeap* mpHeap; + /* 0x104 */ u8 field_0x104[4]; + /* 0x108 */ request_of_phase_process_class mPhase; + /* 0x110 */ OSTime mTime1; + /* 0x118 */ OSTime mTime2; + /* 0x120 */ OSTime mTime6; + /* 0x128 */ u8 field_0x128; + /* 0x130 */ OSTime mTime3; + /* 0x138 */ OSTime mTime5; + /* 0x140 */ OSTime mLimitTime; + /* 0x148 */ u8 field_0x148[12]; + /* 0x154 */ int mTimerMode; + /* 0x158 */ int field_0x158; + /* 0x15C */ u8 field_0x15c[8]; + /* 0x164 */ u8 mSeIdx; + /* 0x165 */ u8 field_0x165[3]; + /* 0x168 */ s16 field_0x168; + /* 0x16A */ u8 field_0x16A; + /* 0x16B */ u8 field_0x16B; + /* 0x16C */ u8 mDeleteCheck; + /* 0x16C */ u8 field_0x16D; + /* 0x16E */ u8 mIsReady; -class dTimer_c { public: /* 8025CA0C */ void _create(); /* 8025CF04 */ void _execute(); - /* 8025D33C */ void _draw(); + /* 8025D33C */ int _draw(); /* 8025D3BC */ void _delete(); /* 8025D524 */ int deleteCheck(); /* 8025D618 */ void start(int, s16); /* 8025D538 */ void start(int); - /* 8025D7C0 */ void stock_start(s16); - /* 8025D708 */ void stock_start(); - /* 8025D7E8 */ void stop(u8); - /* 8025D86C */ void restart(u8); - /* 8025D920 */ void end(int); - /* 8025D9E0 */ void deleteRequest(); - /* 8025D9F0 */ void getTimeMs(); - /* 8025DA54 */ void getLimitTimeMs(); - /* 8025DA9C */ void getRestTimeMs(); - /* 8025DB10 */ void isStart(); - /* 802613DC */ void createGetIn(cXyz); + /* 8025D7C0 */ int stock_start(s16); + /* 8025D708 */ bool stock_start(); + /* 8025D7E8 */ int stop(u8); + /* 8025D86C */ int restart(u8); + /* 8025D920 */ int end(int); + /* 8025D9E0 */ int deleteRequest(); + /* 8025D9F0 */ int getTimeMs(); + /* 8025DA54 */ int getLimitTimeMs(); + /* 8025DA9C */ int getRestTimeMs(); + /* 8025DB10 */ int isStart(); + /* 802613DC */ int createGetIn(cXyz); + + s32 createStart(u16 param_0) { + return ((dDlst_TimerScrnDraw_c*)field_0xfc)->createStart(param_0); + } + + void show() { + ((dDlst_TimerScrnDraw_c*)field_0xfc)->show(); + } + + void hide() { + ((dDlst_TimerScrnDraw_c*)field_0xfc)->hide(); + } + + u8 isReadyFlag() { + return mIsReady; + } }; #endif /* D_D_TIMER_H */ diff --git a/include/d/d_vib_pattern.h b/include/d/d_vib_pattern.h index b85628791b..00d5727326 100644 --- a/include/d/d_vib_pattern.h +++ b/include/d/d_vib_pattern.h @@ -3,4 +3,11 @@ #include "dolphin/types.h" +class dVibration_pattern { +public: + u16 field_0x00; + u16 field_0x02; + u32 field_0x04; +}; + #endif /* D_D_VIB_PATTERN_H */ diff --git a/include/d/d_vibration.h b/include/d/d_vibration.h index b24ff7248d..140b1b7189 100644 --- a/include/d/d_vibration.h +++ b/include/d/d_vibration.h @@ -2,26 +2,27 @@ #define D_D_VIBRATION_H #include "d/save/d_save.h" +#include "d/d_vib_pattern.h" #include "dolphin/types.h" class dVibration_c { public: /* 8006F268 */ void Run(); - /* 8006FA24 */ void StartShock(int, int, cXyz); + /* 8006FA24 */ bool StartShock(int, int, cXyz); /* 8006FC0C */ void StartQuake(u8 const*, int, int, cXyz); - /* 8006FB10 */ void StartQuake(int, int, cXyz); - /* 8006FD94 */ void StopQuake(int); + /* 8006FB10 */ bool StartQuake(int, int, cXyz); + /* 8006FD94 */ int StopQuake(int); /* 8006FE00 */ void Kill(); - /* 8006FE5C */ void CheckQuake(); + /* 8006FE5C */ int CheckQuake(); /* 8006FE84 */ void setDefault(); /* 8006FF04 */ void Init(); /* 8006FF38 */ void Pause(); /* 8006FFF8 */ void Remove(); - static u8 const MS_patt[88]; - static u8 const CS_patt[88]; - static u8 const MQ_patt[80]; - static u8 const CQ_patt[80]; + static dVibration_pattern const MS_patt[11]; + static dVibration_pattern const CS_patt[11]; + static dVibration_pattern const MQ_patt[10]; + static dVibration_pattern const CQ_patt[10]; private: class { @@ -29,13 +30,13 @@ private: class { public: /* 0x00 */ u32 field_0x0; - /* 0x04 */ int field_0x4; + /* 0x04 */ s32 field_0x4; /* 0x08 */ s32 field_0x8; /* 0x0C */ s32 field_0xc; /* 0x10 */ s32 field_0x10; - /* 0x14 */ int field_0x14; + /* 0x14 */ s32 field_0x14; /* 0x18 */ cXyz field_0x18; - /* 0x24 */ u32 field_0x24; + /* 0x24 */ s32 field_0x24; } mShock, mQuake; } /* 0x00 */ field_0x0; /* 0x50 */ u32 field_0x50; @@ -43,17 +44,17 @@ private: /* 0x58 */ s32 field_0x58; /* 0x5C */ s32 field_0x5c; /* 0x60 */ u32 field_0x60; - /* 0x64 */ u32 field_0x64; + /* 0x64 */ s32 field_0x64; /* 0x68 */ u32 field_0x68; /* 0x6C */ u32 field_0x6c; - /* 0x70 */ u32 field_0x70; + /* 0x70 */ s32 field_0x70; /* 0x74 */ u32 field_0x74; /* 0x78 */ u32 field_0x78; /* 0x7C */ u32 field_0x7c; - /* 0x80 */ u32 field_0x80; + /* 0x80 */ s32 field_0x80; /* 0x84 */ u32 field_0x84; /* 0x88 */ s32 field_0x88; - /* 0x8C */ u32 field_0x8c; + /* 0x8C */ s32 field_0x8c; }; // Size: 0x90 #endif /* D_D_VIBRATION_H */ diff --git a/include/d/menu/d_menu_insect.h b/include/d/menu/d_menu_insect.h index 84b4d2d3cc..40cc9ebf3f 100644 --- a/include/d/menu/d_menu_insect.h +++ b/include/d/menu/d_menu_insect.h @@ -38,7 +38,7 @@ public: /* 801D9E20 */ void isGiveInsect(int, int); /* 801D9ED4 */ void isGiveInsect(u8); /* 801D9E7C */ void isCatchInsect(u8); - /* 801D9F3C */ void isCatchNotGiveInsect(u8); + /* 801D9F3C */ static u8 isCatchNotGiveInsect(u8); /* 801D9F8C */ void cursorMove(); /* 801DA1EC */ void setCursorPos(); /* 801DA2FC */ bool dpdMove(); diff --git a/include/d/msg/d_msg_class.h b/include/d/msg/d_msg_class.h index 71593d6de3..60e36b8758 100644 --- a/include/d/msg/d_msg_class.h +++ b/include/d/msg/d_msg_class.h @@ -4,6 +4,7 @@ #include "dolphin/types.h" #include "f_op/f_op_actor.h" + class msg_class : public leafdraw_class { public: /* 0xC0 */ int field_0xc0; diff --git a/include/dolphin/os/OS.h b/include/dolphin/os/OS.h index d3516b8c06..11b60643e2 100644 --- a/include/dolphin/os/OS.h +++ b/include/dolphin/os/OS.h @@ -33,6 +33,7 @@ extern "C" { #define OS_BUS_CLOCK (*(u32*)0x800000F8) #define OS_CORE_CLOCK (*(u32*)0x800000FC) #define OS_TIMER_CLOCK (OS_BUS_CLOCK / 4) +#define OS_TIMER_CLOCK_MS (OS_TIMER_CLOCK / 1000) #define OS_MESSAGE_NON_BLOCKING 0 #define OS_MESSAGE_BLOCKING 1 diff --git a/include/f_op/f_op_actor.h b/include/f_op/f_op_actor.h index f61f938669..9c2f1a1da8 100644 --- a/include/f_op/f_op_actor.h +++ b/include/f_op/f_op_actor.h @@ -136,6 +136,8 @@ public: s8 getRoomNo() const { return current.mRoomNo; } }; // Size: 0x568 +STATIC_ASSERT(sizeof(fopAc_ac_c) == 0x568); + class fopEn_enemy_c : public fopAc_ac_c { public: /* 80019404 */ void initBallModel(); diff --git a/include/f_op/f_op_msg_mng.h b/include/f_op/f_op_msg_mng.h index 05abfdc3f0..7cafe41427 100644 --- a/include/f_op/f_op_msg_mng.h +++ b/include/f_op/f_op_msg_mng.h @@ -40,5 +40,11 @@ int fopMsgM_messageSet(u32 param_0, u32 param_1); int fopMsgM_messageSetDemo(u32 param_0); msg_class* fopMsgM_SearchByID(unsigned int param_0); char* fopMsgM_messageGet(char* msg, u32 string_id); +s32 fop_Timer_create(s16 param_0, u8 param_1, u32 param_2, u8 param_3, u8 param_4, f32 param_5, + f32 param_6, f32 param_7, f32 param_8, fopMsgCreateFunc createFunc); +inline s32 fopMsgM_Timer_create(s16 param_0, u8 param_1, u32 param_2, u8 param_3, u8 param_4, f32 param_5, + f32 param_6, f32 param_7, f32 param_8, fopMsgCreateFunc createFunc) { + return fop_Timer_create(param_0, param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8, createFunc); +} #endif diff --git a/include/m_Do/m_Do_controller_pad.h b/include/m_Do/m_Do_controller_pad.h index 1737fe56fd..cd2c82b5fd 100644 --- a/include/m_Do/m_Do_controller_pad.h +++ b/include/m_Do/m_Do_controller_pad.h @@ -60,6 +60,7 @@ public: static f32 getAnalogR(u32 pad) { return getCpadInfo(pad).mTriggerRight; } static f32 getAnalogL(u32 pad) { return getCpadInfo(pad).mTriggerLeft; } static BOOL isConnect(u32 pad) { return JUTGamePad::getPortStatus(pad) == 0; } + static void stopMotorHard(u32 pad) { return m_gamePad[pad]->stopMotorHard(); } static void stopMotorWaveHard(u32 pad) { return m_gamePad[pad]->stopMotorWaveHard(); } static JUTGamePad* m_gamePad[4]; diff --git a/include/m_Do/m_Do_lib.h b/include/m_Do/m_Do_lib.h index 4fc35f86c7..7c51c8b22d 100644 --- a/include/m_Do/m_Do_lib.h +++ b/include/m_Do/m_Do_lib.h @@ -16,5 +16,6 @@ struct mDoLib_clipper { void mDoLib_project(Vec* param_0, Vec* param_1); bool mDoLib_setResTimgObj(ResTIMG const* res, GXTexObj* o_texObj, u32 param_2, GXTlutObj* o_tlutObj); +void mDoLib_pos2camera(Vec* param_0, Vec* param_1); #endif /* M_DO_M_DO_LIB_H */ diff --git a/src/d/d_insect.cpp b/src/d/d_insect.cpp index 19d5313e43..b47e3c80b5 100644 --- a/src/d/d_insect.cpp +++ b/src/d/d_insect.cpp @@ -6,51 +6,10 @@ #include "d/d_insect.h" #include "dol2asm.h" #include "dolphin/types.h" - -// -// Types: -// - -struct fopAc_ac_c { - /* 80018B64 */ fopAc_ac_c(); -}; - -struct dSv_event_flag_c { - static u8 saveBitLabels[1644 + 4 /* padding */]; -}; - -struct dSv_event_c { - /* 800349BC */ void isEventBit(u16) const; -}; - -struct dMenu_Insect_c { - /* 801D9F3C */ void isCatchNotGiveInsect(u8); -}; - -struct dInsect_c { - /* 80110648 */ void Insect_Release(); - /* 8015E010 */ dInsect_c(); - /* 8015E078 */ void Insect_GetDemoMain(); - /* 8015E26C */ void CalcZBuffer(f32); -}; - -struct dEvt_control_c { - /* 80042468 */ void reset(); -}; - -struct dEvent_manager_c { - /* 80047ADC */ void endCheckOld(char const*); -}; - -struct dDlst_peekZ_c { - /* 80056018 */ void newData(s16, s16, u32*); -}; - -struct csXyz {}; - -struct cXyz {}; - -struct Vec {}; +#include "f_op/f_op_actor_mng.h" +#include "d/com/d_com_inf_game.h" +#include "d/menu/d_menu_insect.h" +#include "m_Do/m_Do_lib.h" // // Forward References: @@ -81,7 +40,6 @@ extern "C" void newData__13dDlst_peekZ_cFssPUl(); extern "C" void Insect_Release__9dInsect_cFv(); extern "C" void isCatchNotGiveInsect__14dMenu_Insect_cFUc(); extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; // // Declarations: @@ -98,14 +56,15 @@ SECTION_DATA extern void* __vt__9dInsect_c[3 + 1 /* padding */] = { }; /* 8015E010-8015E078 158950 0068+00 0/0 0/0 13/13 .text __ct__9dInsect_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm dInsect_c::dInsect_c() { - nofralloc -#include "asm/d/d_insect/__ct__9dInsect_cFv.s" +dInsect_c::dInsect_c() { + field_0x588 = -1; + field_0x56C = 0; + field_0x56D = 1; + field_0x58C = 0; + field_0x580 = 0xD6; + field_0x584 = 0; + field_0x585 = 0; } -#pragma pop /* ############################################################################################## */ /* 80393D98-80393D98 0203F8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ @@ -116,6 +75,54 @@ SECTION_DEAD static char const* const stringBase_80393D98 = "DEFAULT_GETITEM"; /* 8015E078-8015E26C 1589B8 01F4+00 0/0 0/0 24/24 .text Insect_GetDemoMain__9dInsect_cFv */ +#ifdef NONMATCHING +void dInsect_c::Insect_GetDemoMain() { + if (field_0x58C != 1) { + if (fopAcM_checkCarryNow(this)) { + cLib_offBit(mAttentionInfo.mFlags,0x10); + fopAcM_cancelCarryNow(this); + fopAcM_orderItemEvent(this,0,0); + mEvtInfo.i_onCondition(8); + + field_0x588 = fopAcM_createItemForTrBoxDemo(¤t.pos,field_0x580,-1,fopAcM_GetRoomNo(this),0,0); + field_0x58C = 1; + + if (dMenu_Insect_c::isCatchNotGiveInsect(field_0x580) != 0) { + field_0x585 = 1; + } + } else { + cLib_onBit(mAttentionInfo.mFlags,0x10); + } + } else { + if (mEvtInfo.checkCommandItem()) { + if (field_0x588 != -1) { + dComIfGp_event_setItemPartnerId(field_0x588); + } + + field_0x56D = 0; + field_0x58C = 2; + } else { + fopAcM_orderItemEvent(this,0,0); + mEvtInfo.i_onCondition(8); + } + } + + if (dComIfGp_evmng_endCheck("DEFAULT_GETITEM")) { + i_dComIfGp_event_reset(); + if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[field_0x582]) || field_0x585 != 0) { + field_0x56D = 1; + field_0x58C = 0; + if (field_0x584 == 0) { + fopAcM_createItem(¤t.pos,0,-1,-1,0,0,0); + field_0x584 = 1; + } + } else { + fopAcM_delete(this); + + } + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -124,6 +131,7 @@ asm void dInsect_c::Insect_GetDemoMain() { #include "asm/d/d_insect/Insect_GetDemoMain__9dInsect_cFv.s" } #pragma pop +#endif /* ############################################################################################## */ /* 804535E0-804535E4 001BE0 0004+00 1/1 0/0 0/0 .sdata2 @3871 */ @@ -157,6 +165,44 @@ SECTION_SDATA2 static f32 lit_3877[1 + 1 /* padding */] = { }; /* 8015E26C-8015E3F8 158BAC 018C+00 0/0 0/0 3/3 .text CalcZBuffer__9dInsect_cFf */ +#ifdef NONMATCHING +void dInsect_c::CalcZBuffer(f32 param_0) { + f32 camera_trim_height; + cXyz pos; + cXyz pos_projected; + + pos = current.pos; + pos.y += FLOAT_LABEL(lit_3871); + + mDoLib_project(&pos_projected,&pos); + + if (dComIfGp_getCamera(0)) { + camera_trim_height = dComIfGp_getCamera(0)->mCamera.field_0x93c; + } else { + camera_trim_height = FLOAT_LABEL(lit_3872); + } + + if (pos_projected.x < FLOAT_LABEL(lit_3872) || + pos_projected.x > FLOAT_LABEL(lit_3873) || + pos_projected.y < camera_trim_height || + pos_projected.y < FLOAT_LABEL(lit_3874) - camera_trim_height) { + dComIfGd_peekZ(pos_projected.x,pos_projected.y,&field_0x578); + } else { + field_0x578 = 0; + } + + f32 view_near = dComIfGd_getView()->mNear; + f32 view_far = dComIfGd_getView()->mFar; + + mDoLib_pos2camera(&pos_projected,&pos); + pos_projected.z += param_0; + if (pos_projected.z == FLOAT_LABEL(lit_3872)) { + pos_projected.z = FLOAT_LABEL(lit_3875); + } + + field_0x57C = view_near + ((view_far * view_near) / pos_projected.z) / (view_far - view_near); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -165,5 +211,6 @@ asm void dInsect_c::CalcZBuffer(f32 param_0) { #include "asm/d/d_insect/CalcZBuffer__9dInsect_cFf.s" } #pragma pop +#endif /* 80393D98-80393D98 0203F8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ diff --git a/src/d/d_timer.cpp b/src/d/d_timer.cpp index c45998a6a3..a887623e67 100644 --- a/src/d/d_timer.cpp +++ b/src/d/d_timer.cpp @@ -5,49 +5,10 @@ #include "d/d_timer.h" #include "d/com/d_com_inf_game.h" +#include "f_op/f_op_msg_mng.h" #include "dol2asm.h" #include "dolphin/types.h" - -// -// Types: -// - -struct dMsgObject_c { - /* 8023822C */ void getStatus(); -}; - -struct dDlst_TimerScrnDraw_c { - /* 8025DB38 */ dDlst_TimerScrnDraw_c(); - /* 8025DBE0 */ void setHIO(); - /* 8025DFBC */ void setScreen(s32, JKRArchive*); - /* 8025E240 */ void setScreenBase(); - /* 8025E66C */ void setScreenBoatRace(); - /* 8025E8B8 */ void setScreenRider(); - /* 8025EB20 */ void hideDenominator(); - /* 8025EC5C */ void deleteScreen(); - /* 8025EE24 */ void changeNumberTexture(J2DPane*, int); - /* 8025EECC */ void getNumber(int); - /* 8025EEF0 */ void setTimer(int); - /* 8025F180 */ void setCounter(u8, u8); - /* 8025FA00 */ void setParentPos(f32, f32); - /* 8025FA2C */ void setTimerPos(f32, f32); - /* 8025FA6C */ void setCounterPos(f32, f32); - /* 8025FA98 */ void setImagePos(f32, f32); - /* 8025FAC4 */ void setShowType(u8); - /* 8025FB74 */ void anime(); - /* 8025FF98 */ void closeAnime(); - /* 802601E4 */ void createGetIn(cXyz); - /* 80260574 */ void createStart(u16); - /* 80260690 */ void draw(); - /* 80260AA8 */ void checkStartAnimeEnd(); - /* 80260AD4 */ void playBckAnimation(f32); - /* 80260B54 */ void drawPikari(int); - /* 80261394 */ ~dDlst_TimerScrnDraw_c(); -}; - -struct J2DAnmLoaderDataBase { - /* 80308A6C */ void load(void const*); -}; +#include "m_Do/m_Do_lib.h" // // Forward References: @@ -232,14 +193,21 @@ asm void dTimer_c::_execute() { #pragma pop /* 8025D33C-8025D3BC 257C7C 0080+00 1/1 0/0 0/0 .text _draw__8dTimer_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dTimer_c::_draw() { - nofralloc -#include "asm/d/d_timer/_draw__8dTimer_cFv.s" + +int dTimer_c::_draw() { + int ret; + + if (dComIfGp_isPauseFlag() || dMsgObject_isTalkNowCheck()) { + ret = 1; + } else { + dComIfGd_set2DOpa((dDlst_base_c*)field_0xfc); + ret = 1; + } + + + return ret; + } -#pragma pop /* 8025D3BC-8025D524 257CFC 0168+00 1/1 0/0 0/0 .text _delete__8dTimer_cFv */ #pragma push @@ -252,14 +220,9 @@ asm void dTimer_c::_delete() { #pragma pop /* 8025D524-8025D538 257E64 0014+00 0/0 1/1 0/0 .text deleteCheck__8dTimer_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int dTimer_c::deleteCheck() { - nofralloc -#include "asm/d/d_timer/deleteCheck__8dTimer_cFv.s" +int dTimer_c::deleteCheck() { + return mDeleteCheck == 7; } -#pragma pop /* 8025D538-8025D618 257E78 00E0+00 1/1 1/1 0/0 .text start__8dTimer_cFi */ #pragma push @@ -282,105 +245,135 @@ asm void dTimer_c::start(int param_0, s16 param_1) { #pragma pop /* 8025D708-8025D7C0 258048 00B8+00 1/1 0/0 0/0 .text stock_start__8dTimer_cFv */ +#ifdef NONMATCHING +bool dTimer_c::stock_start() { + if (mDeleteCheck == 5) { + mDeleteCheck = 4; + OSTime current_time = dLib_time_c::getTime(); + mTime1 = current_time; + mTime2 = current_time; + + mTime1 -= OS_TIMER_CLOCK_MS * dComIfG_getTimerNowTimeMs(); + } + return mDeleteCheck == 5; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dTimer_c::stock_start() { +asm bool dTimer_c::stock_start() { nofralloc #include "asm/d/d_timer/stock_start__8dTimer_cFv.s" } #pragma pop +#endif /* 8025D7C0-8025D7E8 258100 0028+00 1/1 0/0 0/0 .text stock_start__8dTimer_cFs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dTimer_c::stock_start(s16 param_0) { - nofralloc -#include "asm/d/d_timer/stock_start__8dTimer_cFs.s" +int dTimer_c::stock_start(s16 param_0) { + if (mDeleteCheck == 0) { + field_0x168 = param_0; + mDeleteCheck = 5; + return 1; + } + return 0; } -#pragma pop /* 8025D7E8-8025D86C 258128 0084+00 3/3 1/1 0/0 .text stop__8dTimer_cFUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dTimer_c::stop(u8 param_0) { - nofralloc -#include "asm/d/d_timer/stop__8dTimer_cFUc.s" +int dTimer_c::stop(u8 param_0) { + int ret; + + if (field_0x16A == 1 || field_0x16B != 0) { + ret = 0; + } else if (mDeleteCheck != 4) { + ret = 0; + } else { + mTime3 = dLib_time_c::getTime(); + field_0x16A = 1; + field_0x16B = param_0; + ret = 1; + } + + return ret; } -#pragma pop /* 8025D86C-8025D920 2581AC 00B4+00 1/1 1/1 0/0 .text restart__8dTimer_cFUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dTimer_c::restart(u8 param_0) { - nofralloc -#include "asm/d/d_timer/restart__8dTimer_cFUc.s" +int dTimer_c::restart(u8 param_0) { + if (field_0x16A != 1 || field_0x16B != param_0) { + return 0; + } else { + if (mDeleteCheck != 4 && mDeleteCheck != 2) { + return 0; + } else { + mTime2 = dLib_time_c::getTime(); + mTime5 += mTime2 - mTime3; + field_0x16A = 0; + field_0x16B = 0; + return 1; + } + } } -#pragma pop /* 8025D920-8025D9E0 258260 00C0+00 0/0 1/1 0/0 .text end__8dTimer_cFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dTimer_c::end(int param_0) { - nofralloc -#include "asm/d/d_timer/end__8dTimer_cFi.s" +int dTimer_c::end(int param_0) { + int ret; + if (mDeleteCheck != 4) { + ret = 0; + + } else { + mTime6 = dLib_time_c::getTime(); + mDeleteCheck = 6; + dComIfG_setTimerNowTimeMs((mTime6 - mTime1 - mTime5) / OS_TIMER_CLOCK_MS); + if (param_0 != -1) { + field_0x158 = param_0; + } + ret = 1; + } + + return ret; } -#pragma pop /* 8025D9E0-8025D9F0 258320 0010+00 0/0 1/1 0/0 .text deleteRequest__8dTimer_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dTimer_c::deleteRequest() { - nofralloc -#include "asm/d/d_timer/deleteRequest__8dTimer_cFv.s" +int dTimer_c::deleteRequest() { + mDeleteCheck = 8; + return 1; } -#pragma pop /* 8025D9F0-8025DA54 258330 0064+00 3/3 0/0 0/0 .text getTimeMs__8dTimer_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dTimer_c::getTimeMs() { - nofralloc -#include "asm/d/d_timer/getTimeMs__8dTimer_cFv.s" +int dTimer_c::getTimeMs() { + return (mTime2 - mTime1 - mTime5) / OS_TIMER_CLOCK_MS; } -#pragma pop - /* 8025DA54-8025DA9C 258394 0048+00 3/3 0/0 0/0 .text getLimitTimeMs__8dTimer_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dTimer_c::getLimitTimeMs() { - nofralloc -#include "asm/d/d_timer/getLimitTimeMs__8dTimer_cFv.s" +int dTimer_c::getLimitTimeMs() { + return mLimitTime / OS_TIMER_CLOCK_MS; } -#pragma pop /* 8025DA9C-8025DB10 2583DC 0074+00 2/2 0/0 1/1 .text getRestTimeMs__8dTimer_cFv */ +#ifdef NONMATCHING +// regs swapped +int dTimer_c::getRestTimeMs() { + OSTime tmpTime2 = mTime2 - mTime1 - mTime5; + // OSTime tmpTime = (mTime5) - mLimitTime; + + return (tmpTime2 - mLimitTime) / OS_TIMER_CLOCK_MS; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dTimer_c::getRestTimeMs() { +asm int dTimer_c::getRestTimeMs() { nofralloc #include "asm/d/d_timer/getRestTimeMs__8dTimer_cFv.s" } #pragma pop +#endif /* 8025DB10-8025DB38 258450 0028+00 1/1 0/0 4/4 .text isStart__8dTimer_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dTimer_c::isStart() { - nofralloc -#include "asm/d/d_timer/isStart__8dTimer_cFv.s" +int dTimer_c::isStart() { + if (field_0x16A != 1 && mDeleteCheck == 4) { + return 1; + } + return 0; } -#pragma pop - /* ############################################################################################## */ /* 803C33C0-803C33E4 -00001 0024+00 1/1 0/0 0/0 .data @5239 */ SECTION_DATA static void* lit_5239[9] = { @@ -420,6 +413,26 @@ SECTION_DATA extern void* __vt__21dDlst_TimerScrnDraw_c[4] = { }; /* 8025DB38-8025DBE0 258478 00A8+00 1/1 0/0 0/0 .text __ct__21dDlst_TimerScrnDraw_cFv */ +#ifdef NONMATCHING +dDlst_TimerScrnDraw_c::dDlst_TimerScrnDraw_c() { + mTimerVisible = 0; + field_0x3DD = 0; + field_0x3D8 = 0; + field_0x3CC = -1; + field_0x3D0 = -1; + field_0x3D4 = 0; + + field_0x3B0 = 0; // fix + field_0x3B4 = 0; // fix + field_0x3B8 = 0; // fix + field_0x3BC = 0; // fix + + field_0x3DE = 0; + field_0x3DF = 0; + field_0x3E0 = 0; + field_0x3E1 = 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -428,6 +441,7 @@ asm dDlst_TimerScrnDraw_c::dDlst_TimerScrnDraw_c() { #include "asm/d/d_timer/__ct__21dDlst_TimerScrnDraw_cFv.s" } #pragma pop +#endif /* 8025DBE0-8025DFBC 258520 03DC+00 1/1 0/0 0/0 .text setHIO__21dDlst_TimerScrnDraw_cFv */ @@ -544,14 +558,9 @@ asm void dDlst_TimerScrnDraw_c::changeNumberTexture(J2DPane* param_0, int param_ #pragma pop /* 8025EECC-8025EEF0 25980C 0024+00 1/1 0/0 0/0 .text getNumber__21dDlst_TimerScrnDraw_cFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dDlst_TimerScrnDraw_c::getNumber(int param_0) { - nofralloc -#include "asm/d/d_timer/getNumber__21dDlst_TimerScrnDraw_cFi.s" +char* dDlst_TimerScrnDraw_c::getNumber(int pIndex) { + return dMeter2Info_getNumberTextureName(pIndex); } -#pragma pop /* ############################################################################################## */ /* 80454F4C-80454F50 00354C 0004+00 5/5 0/0 0/0 .sdata2 @4124 */ @@ -722,7 +731,7 @@ asm void dDlst_TimerScrnDraw_c::createGetIn(cXyz param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dDlst_TimerScrnDraw_c::createStart(u16 param_0) { +asm s32 dDlst_TimerScrnDraw_c::createStart(u16 param_0) { nofralloc #include "asm/d/d_timer/createStart__21dDlst_TimerScrnDraw_cFUs.s" } @@ -781,61 +790,44 @@ asm void dDlst_TimerScrnDraw_c::drawPikari(int param_0) { #pragma pop /* 80260F04-80260F24 25B844 0020+00 1/0 0/0 0/0 .text dTimer_Draw__FP8dTimer_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void dTimer_Draw(dTimer_c* param_0) { - nofralloc -#include "asm/d/d_timer/dTimer_Draw__FP8dTimer_c.s" +static void dTimer_Draw(dTimer_c* i_timer) { + i_timer->_draw(); } -#pragma pop /* 80260F24-80260F44 25B864 0020+00 1/0 0/0 0/0 .text dTimer_Execute__FP8dTimer_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void dTimer_Execute(dTimer_c* param_0) { - nofralloc -#include "asm/d/d_timer/dTimer_Execute__FP8dTimer_c.s" +static void dTimer_Execute(dTimer_c* i_timer) { + i_timer->_execute(); } -#pragma pop /* 80260F44-80260F4C 25B884 0008+00 1/0 0/0 0/0 .text dTimer_IsDelete__FP8dTimer_c */ -static bool dTimer_IsDelete(dTimer_c* param_0) { +static bool dTimer_IsDelete(dTimer_c* i_timer) { return true; } /* 80260F4C-80260F6C 25B88C 0020+00 1/0 0/0 0/0 .text dTimer_Delete__FP8dTimer_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void dTimer_Delete(dTimer_c* param_0) { - nofralloc -#include "asm/d/d_timer/dTimer_Delete__FP8dTimer_c.s" +static void dTimer_Delete(dTimer_c* i_timer) { + i_timer->_delete(); } -#pragma pop /* 80260F6C-80260F8C 25B8AC 0020+00 1/0 0/0 0/0 .text dTimer_Create__FP9msg_class */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void dTimer_Create(msg_class* param_0) { - nofralloc -#include "asm/d/d_timer/dTimer_Create__FP9msg_class.s" +static void dTimer_Create(msg_class* i_timer) { + ((dTimer_c*)i_timer)->_create(); } -#pragma pop /* 80260F8C-80261034 25B8CC 00A8+00 0/0 1/1 9/9 .text dTimer_createTimer__FlUlUcUcffff */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dTimer_createTimer(s32 param_0, u32 param_1, u8 param_2, u8 param_3, f32 param_4, +s32 dTimer_createTimer(s32 param_0, u32 param_1, u8 param_2, u8 param_3, f32 param_4, f32 param_5, f32 param_6, f32 param_7) { - nofralloc -#include "asm/d/d_timer/dTimer_createTimer__FlUlUcUcffff.s" -} -#pragma pop + s32 ret; + if (dComIfG_getTimerMode() == -1) { + ret = fopMsgM_Timer_create(0x315,param_0,param_1,param_2,param_3,param_4,param_5,param_6,param_7,0); + } + else { + ret = -1; + } + + return ret; +} /* ############################################################################################## */ /* 8039A3D8-8039A3D8 026A38 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ #pragma push @@ -858,84 +850,96 @@ SECTION_SDATA2 static f32 lit_5546 = 32.0f; SECTION_SDATA2 static f32 lit_5547 = 419.0f; /* 80261034-80261100 25B974 00CC+00 0/0 1/1 0/0 .text dTimer_createStockTimer__Fv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dTimer_createStockTimer() { - nofralloc -#include "asm/d/d_timer/dTimer_createStockTimer__Fv.s" +s32 dTimer_createStockTimer() { + if (dComIfG_getTimerMode() != -1) { + if ((dComIfG_getTimerMode() == 3 || dComIfG_getTimerMode() == 4) && strcmp(dComIfGp_getStartStageName(),"F_SP115")) { + dComIfG_setTimerMode(-1); + return -1; + } else { + u8 timer_type = dComIfG_getTimerType(); + return fopMsgM_Timer_create(0x315,10,0,timer_type,0,FLOAT_LABEL(lit_5544),FLOAT_LABEL(lit_5545),FLOAT_LABEL(lit_5546),FLOAT_LABEL(lit_5547),0); + } + } else { + return -1; + } } -#pragma pop /* 80261100-80261188 25BA40 0088+00 0/0 0/0 1/1 .text dTimer_createGetIn2D__Fl4cXyz */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dTimer_createGetIn2D(s32 param_0, cXyz param_1) { - nofralloc -#include "asm/d/d_timer/dTimer_createGetIn2D__Fl4cXyz.s" +u32 dTimer_createGetIn2D(s32 param_0, cXyz param_1) { + if (dComIfG_getTimerPtr()) { + cXyz tmp; + mDoLib_project(¶m_1,&tmp); + param_0 = dComIfG_getTimerPtr()->createGetIn(tmp); + } else { + param_0 = 0; + } + + return param_0; } -#pragma pop /* 80261188-802611F0 25BAC8 0068+00 1/1 0/0 0/0 .text dTimer_createStart2D__FlUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void dTimer_createStart2D(s32 param_0, u16 param_1) { - nofralloc -#include "asm/d/d_timer/dTimer_createStart2D__FlUs.s" +static int dTimer_createStart2D(s32 param_0, u16 param_1) { + if (dComIfG_getTimerPtr()) { + param_0 = dComIfG_getTimerPtr()->createStart(param_1); + } else { + param_0 = 0; + } + + return param_0; } -#pragma pop /* 802611F0-80261244 25BB30 0054+00 0/0 0/0 5/5 .text dTimer_isStart__Fv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dTimer_isStart() { - nofralloc -#include "asm/d/d_timer/dTimer_isStart__Fv.s" -} -#pragma pop +int dTimer_isStart() { + int ret; + + if (dComIfG_getTimerPtr()) { + ret = dComIfG_getTimerPtr()->isStart(); + } else { + ret = 0; + } + + return ret; -/* 80261244-80261298 25BB84 0054+00 0/0 0/0 2/2 .text dTimer_getRestTimeMs__Fv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dTimer_getRestTimeMs() { - nofralloc -#include "asm/d/d_timer/dTimer_getRestTimeMs__Fv.s" } -#pragma pop +/* 80261244-80261298 25BB84 0054+00 0/0 0/0 2/2 .text dTimer_getRestTimeMs__Fv */ +int dTimer_getRestTimeMs() { + int ret; + + if (dComIfG_getTimerPtr()) { + ret = dComIfG_getTimerPtr()->getRestTimeMs(); + } else { + ret = 0; + } + + return ret; +} /* 80261298-802612EC 25BBD8 0054+00 0/0 0/0 2/2 .text dTimer_show__Fv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dTimer_show() { - nofralloc -#include "asm/d/d_timer/dTimer_show__Fv.s" +void dTimer_show() { + if (dComIfG_getTimerPtr()) { + dComIfG_getTimerPtr()->show(); + } } -#pragma pop /* 802612EC-80261340 25BC2C 0054+00 0/0 0/0 2/2 .text dTimer_hide__Fv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dTimer_hide() { - nofralloc -#include "asm/d/d_timer/dTimer_hide__Fv.s" +void dTimer_hide() { + if (dComIfG_getTimerPtr()) { + dComIfG_getTimerPtr()->hide(); + } } -#pragma pop /* 80261340-80261394 25BC80 0054+00 0/0 0/0 1/1 .text dTimer_isReadyFlag__Fv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dTimer_isReadyFlag() { - nofralloc -#include "asm/d/d_timer/dTimer_isReadyFlag__Fv.s" +u32 dTimer_isReadyFlag() { + u32 ret; + + if (dComIfG_getTimerPtr()) { + ret = dComIfG_getTimerPtr()->isReadyFlag(); + } else { + ret = 0; + } + + return ret; } -#pragma pop /* 80261394-802613DC 25BCD4 0048+00 1/0 0/0 0/0 .text __dt__21dDlst_TimerScrnDraw_cFv */ #pragma push @@ -951,7 +955,7 @@ asm dDlst_TimerScrnDraw_c::~dDlst_TimerScrnDraw_c() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dTimer_c::createGetIn(cXyz param_0) { +asm int dTimer_c::createGetIn(cXyz param_0) { nofralloc #include "asm/d/d_timer/createGetIn__8dTimer_cF4cXyz.s" } diff --git a/src/d/d_vibration.cpp b/src/d/d_vibration.cpp index d1eb20366e..cea976e007 100644 --- a/src/d/d_vibration.cpp +++ b/src/d/d_vibration.cpp @@ -6,30 +6,7 @@ #include "d/d_vibration.h" #include "dol2asm.h" #include "dolphin/types.h" - -// -// Types: -// - -struct mDoCPd_c { - static u8 m_gamePad[16]; -}; - -struct dCamera_c { - /* 80181000 */ void StartShake(s32, u8*, s32, cXyz); - /* 80181158 */ void StopShake(); -}; - -struct JUTGamePad { - struct CRumble { - struct ERumble {}; - - /* 802E168C */ void stopMotor(int, bool); - /* 802E18CC */ void startPatternedRumble(void*, JUTGamePad::CRumble::ERumble, u32); - /* 802E1948 */ void stopPatternedRumble(s16); - /* 802E1978 */ void stopPatternedRumbleAtThePeriod(); - }; -}; +#include "d/com/d_com_inf_game.h" // // Forward References: @@ -78,7 +55,6 @@ extern "C" u8 const CS_patt__12dVibration_c[88]; extern "C" u8 const MQ_patt__12dVibration_c[80]; extern "C" u8 const CQ_patt__12dVibration_c[80]; extern "C" u8 m_gamePad__8mDoCPd_c[16]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; // // Declarations: @@ -146,24 +122,51 @@ asm void dVibration_c::Run() { #pragma pop /* 8006FA24-8006FB10 06A364 00EC+00 0/0 62/62 298/298 .text StartShock__12dVibration_cFii4cXyz */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dVibration_c::StartShock(int param_0, int param_1, cXyz param_2) { - nofralloc -#include "asm/d/d_vibration/StartShock__12dVibration_cFii4cXyz.s" +bool dVibration_c::StartShock(int param_0, int param_1, cXyz param_2) { + bool ret = false; + if (param_1 & 0x7eU) { + field_0x0.mShock.field_0x4 = param_0; + field_0x0.mShock.field_0x24 = 0; + field_0x0.mShock.field_0x14 = param_1; + field_0x0.mShock.field_0x18 = param_2; + field_0x0.mShock.field_0x8 = CS_patt[param_0].field_0x04; + field_0x0.mShock.field_0xc = CS_patt[param_0].field_0x02; + field_0x0.mShock.field_0x10 = CS_patt[param_0].field_0x00; + ret = true; + } + if (param_1 & 1 && dComIfGs_checkOptVibration() == 1) { + field_0x54 = param_0; + field_0x64 = 0; + field_0x58 = MS_patt[param_0].field_0x04; + field_0x5c = MS_patt[param_0].field_0x02; + ret = true; + } + return ret; } -#pragma pop /* 8006FB10-8006FC0C 06A450 00FC+00 0/0 8/8 67/67 .text StartQuake__12dVibration_cFii4cXyz */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dVibration_c::StartQuake(int param_0, int param_1, cXyz param_2) { - nofralloc -#include "asm/d/d_vibration/StartQuake__12dVibration_cFii4cXyz.s" +bool dVibration_c::StartQuake(int param_0, int param_1, cXyz param_2) { + bool ret = false; + if (param_1 & 0x7eU) { + field_0x0.mQuake.field_0x4 = param_0; + field_0x0.mQuake.field_0x24 = 0; + field_0x0.mQuake.field_0x14 = param_1; + field_0x0.mQuake.field_0x18 = param_2; + field_0x0.mQuake.field_0x8 = CQ_patt[param_0].field_0x04; + field_0x0.mQuake.field_0xc = CQ_patt[param_0].field_0x02; + field_0x0.mQuake.field_0x10 = CQ_patt[param_0].field_0x00; + ret = true; + } + if (param_1 & 1 && dComIfGs_checkOptVibration() == 1) { + field_0x70 = param_0; + field_0x80 = 0; + field_0x74 = MQ_patt[param_0].field_0x04; + field_0x78 = MQ_patt[param_0].field_0x02; + field_0x7c = CQ_patt[param_0].field_0x00; + ret = true; + } + return ret; } -#pragma pop /* 8006FC0C-8006FD94 06A54C 0188+00 0/0 2/2 2/2 .text StartQuake__12dVibration_cFPCUcii4cXyz */ #pragma push @@ -176,71 +179,100 @@ asm void dVibration_c::StartQuake(u8 const* param_0, int param_1, int param_2, c #pragma pop /* 8006FD94-8006FE00 06A6D4 006C+00 0/0 6/6 82/82 .text StopQuake__12dVibration_cFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dVibration_c::StopQuake(int param_0) { - nofralloc -#include "asm/d/d_vibration/StopQuake__12dVibration_cFi.s" +int dVibration_c::StopQuake(int param_0) { + int ret = 0; + if (param_0 & 0x7eU) { + if (field_0x0.mQuake.field_0x24 >= 0) { + field_0x0.mQuake.field_0x14 &= ~param_0; + if (field_0x0.mQuake.field_0x14 == 0) { + field_0x0.mQuake.field_0x0 |= 1; + } + ret = 1; + } + } + if (param_0 & 1 && field_0x80 >= 0) { + field_0x6c |= 1; + ret = 1; + } + return ret; } -#pragma pop /* 8006FE00-8006FE5C 06A740 005C+00 2/2 0/0 0/0 .text Kill__12dVibration_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dVibration_c::Kill() { - nofralloc -#include "asm/d/d_vibration/Kill__12dVibration_cFv.s" -} -#pragma pop +void dVibration_c::Kill() { + mDoCPd_c::stopMotorWaveHard(0); + mDoCPd_c::stopMotorHard(0); + setDefault(); +} /* 8006FE5C-8006FE84 06A79C 0028+00 0/0 0/0 10/10 .text CheckQuake__12dVibration_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dVibration_c::CheckQuake() { - nofralloc -#include "asm/d/d_vibration/CheckQuake__12dVibration_cFv.s" +int dVibration_c::CheckQuake() { + int ret = 0; + if (field_0x0.mQuake.field_0x4 != -1 || field_0x70 != -1) { + ret = 1; + } + return ret; } -#pragma pop /* 8006FE84-8006FF04 06A7C4 0080+00 2/2 0/0 0/0 .text setDefault__12dVibration_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dVibration_c::setDefault() { - nofralloc -#include "asm/d/d_vibration/setDefault__12dVibration_cFv.s" +void dVibration_c::setDefault() { + field_0x54 = -1; + field_0x0.mShock.field_0x4 = -1; + field_0x70 = -1; + field_0x0.mQuake.field_0x4 = -1; + field_0x50 = 0; + field_0x0.mShock.field_0x0 = 0; + field_0x6c = 0; + field_0x0.mQuake.field_0x0 = 0; + field_0x58 = 0; + field_0x0.mShock.field_0x8 = 0; + field_0x74 = 0; + field_0x0.mQuake.field_0x8 = 0; + field_0x5c = 0; + field_0x0.mShock.field_0xc = 0; + field_0x78 = 0; + field_0x0.mQuake.field_0xc = 0; + field_0x60 = 0; + field_0x0.mShock.field_0x10 = 0; + field_0x7c = 0; + field_0x0.mQuake.field_0x10 = 0; + field_0x64 = -99; + field_0x0.mShock.field_0x24 = -99; + field_0x80 = -99; + field_0x0.mQuake.field_0x24 = -99; + field_0x68 = -99; + field_0x84 = -99; + field_0x8c = 0; + field_0x88 = 0; } -#pragma pop /* 8006FF04-8006FF38 06A844 0034+00 0/0 2/2 0/0 .text Init__12dVibration_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dVibration_c::Init() { - nofralloc -#include "asm/d/d_vibration/Init__12dVibration_cFv.s" +void dVibration_c::Init() { + Kill(); + setDefault(); } -#pragma pop /* 8006FF38-8006FFF8 06A878 00C0+00 0/0 1/1 0/0 .text Pause__12dVibration_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dVibration_c::Pause() { - nofralloc -#include "asm/d/d_vibration/Pause__12dVibration_cFv.s" +void dVibration_c::Pause() { + if (field_0x8c != -1) { + if (field_0x54 != -1 || field_0x70 != -1) { + mDoCPd_c::stopMotorWaveHard(0); + mDoCPd_c::stopMotorHard(0); + } + field_0x54 = -1; + field_0x0.mShock.field_0x4 = -1; + field_0x64 = -99; + field_0x0.mShock.field_0x24 = -99; + if (field_0x0.mQuake.field_0x4 != -1) { + field_0x0.mQuake.field_0x24 = 0; + } + if (field_0x70 != -1) { + field_0x80 = 0; + } + field_0x8c = -1; + } } -#pragma pop /* 8006FFF8-80070018 06A938 0020+00 0/0 1/1 0/0 .text Remove__12dVibration_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dVibration_c::Remove() { - nofralloc -#include "asm/d/d_vibration/Remove__12dVibration_cFv.s" -} -#pragma pop \ No newline at end of file +void dVibration_c::Remove() { + Kill(); +} \ No newline at end of file diff --git a/src/d/menu/d_menu_insect.cpp b/src/d/menu/d_menu_insect.cpp index b9b41b1b05..d2eae18a4a 100644 --- a/src/d/menu/d_menu_insect.cpp +++ b/src/d/menu/d_menu_insect.cpp @@ -792,7 +792,7 @@ asm void dMenu_Insect_c::isGiveInsect(u8 param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dMenu_Insect_c::isCatchNotGiveInsect(u8 param_0) { +asm u8 dMenu_Insect_c::isCatchNotGiveInsect(u8 param_0) { nofralloc #include "asm/d/menu/d_menu_insect/isCatchNotGiveInsect__14dMenu_Insect_cFUc.s" } diff --git a/tools/package_game_assets.py b/tools/package_game_assets.py index 960ca1cc99..20bcf18f22 100644 --- a/tools/package_game_assets.py +++ b/tools/package_game_assets.py @@ -6,7 +6,7 @@ from pathlib import Path import hashlib import struct import ctypes -import oead +import syaz0 def copy(path,destPath): @@ -224,7 +224,7 @@ def addFile(index,sizeIndex,dirs,name,stringTable,paths,data): path = relPath file.unk1 = 0 fileData = open(path,"rb") - compressedData = oead.yaz0.compress(fileData.read()) + compressedData = syaz0.compress(fileData.read()) padding = (0x20-(len(compressedData)%0x20)) file.fileLength = len(compressedData) file.fileOffset = sizeIndex @@ -255,7 +255,7 @@ def copyRelFiles(buildPath,aMemList,mMemList): relSource = open(fullPath,"rb") data = relSource.read() relSource.close() - data = oead.yaz0.compress(data) + data = syaz0.compress(data) relNew = open(buildPath/"game/files/rel/Final/Release"/file,"wb") relNew.write(data) relNew.truncate() diff --git a/tools/requirements.txt b/tools/requirements.txt index bcc34c4116..12119dbe8f 100644 --- a/tools/requirements.txt +++ b/tools/requirements.txt @@ -8,4 +8,5 @@ ansiwrap watchdog python-Levenshtein cxxfilt -oead \ No newline at end of file +syaz0 +pyelftools \ No newline at end of file