mirror of https://github.com/zeldaret/tp.git
d_vibration first pass (#220)
* dVibration_c::StartShock * dVibration_c::StartQuake * dVibration_c::StopQuake * dVibration_c::Kill() * dVibration_c::CheckQuake * dVibration_c::Init * dVibration_c::Remove * dVibration_c::setDefault * dVibration_c::Pause * remove asm * switch to u8 return, remove cast
This commit is contained in:
parent
f79e4e04f3
commit
8516f01f79
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -1013,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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 */
|
||||
|
|
|
|||
|
|
@ -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 */
|
||||
|
|
|
|||
|
|
@ -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];
|
||||
|
|
|
|||
|
|
@ -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
|
||||
void dVibration_c::Remove() {
|
||||
Kill();
|
||||
}
|
||||
Loading…
Reference in New Issue