diff --git a/.vscode/settings.json b/.vscode/settings.json index f3378976..46b11df6 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -9,7 +9,9 @@ }, "editor.tabSize": 2, "files.associations": { - "source_location": "cpp" + "source_location": "cpp", + "fdlibm.h": "c", + "math_ppc.h": "c" }, "files.autoSave": "onFocusChange", "files.insertFinalNewline": true, diff --git a/asm/Collision/CCollidableAABox.s b/asm/Collision/CCollidableAABox.s index c023e632..dda849a4 100644 --- a/asm/Collision/CCollidableAABox.s +++ b/asm/Collision/CCollidableAABox.s @@ -7,8 +7,8 @@ lbl_ctor: .section .data .balign 8 -.global lbl_803ECAD0 -lbl_803ECAD0: +.global __vt__16CCollidableAABox +__vt__16CCollidableAABox: # ROM: 0x3E9AD0 .4byte 0 .4byte 0 @@ -876,4 +876,3 @@ lbl_803D69E8: .asciz "CCollidableAABox" .balign 4 .4byte 0 - diff --git a/asm/Kyoto/Animation/CHierarchyPoseBuilder.s b/asm/Kyoto/Animation/CHierarchyPoseBuilder.s index d8cf5598..a731ce0e 100644 --- a/asm/Kyoto/Animation/CHierarchyPoseBuilder.s +++ b/asm/Kyoto/Animation/CHierarchyPoseBuilder.s @@ -93,13 +93,13 @@ lbl_802FC41C: /* 802FC42C 002F938C C3 A2 C7 14 */ lfs f29, lbl_805AE434@sda21(r2) /* 802FC430 002F9390 38 A3 66 60 */ addi r5, r3, sNoRotation__11CQuaternion@l /* 802FC434 002F9394 C0 65 00 00 */ lfs f3, 0(r5) -/* 802FC438 002F9398 3C 60 80 5A */ lis r3, lbl_805A65FC@ha +/* 802FC438 002F9398 3C 60 80 5A */ lis r3, sIdentity__9CMatrix3f@ha /* 802FC43C 002F939C C0 45 00 04 */ lfs f2, 4(r5) /* 802FC440 002F93A0 FF 80 E8 90 */ fmr f28, f29 /* 802FC444 002F93A4 C0 25 00 08 */ lfs f1, 8(r5) /* 802FC448 002F93A8 FF 60 E8 90 */ fmr f27, f29 /* 802FC44C 002F93AC C0 05 00 0C */ lfs f0, 0xc(r5) -/* 802FC450 002F93B0 38 83 65 FC */ addi r4, r3, lbl_805A65FC@l +/* 802FC450 002F93B0 38 83 65 FC */ addi r4, r3, sIdentity__9CMatrix3f@l /* 802FC454 002F93B4 D0 61 00 24 */ stfs f3, 0x24(r1) /* 802FC458 002F93B8 38 61 00 E8 */ addi r3, r1, 0xe8 /* 802FC45C 002F93BC D0 41 00 28 */ stfs f2, 0x28(r1) @@ -441,12 +441,12 @@ BuildNoScale__21CHierarchyPoseBuilderFR17CPoseAsTransforms: /* 802FC938 002F9898 48 06 C5 6D */ bl Clear__17CPoseAsTransformsFv /* 802FC93C 002F989C 88 01 00 08 */ lbz r0, 8(r1) /* 802FC940 002F98A0 3C A0 80 5A */ lis r5, sNoRotation__11CQuaternion@ha -/* 802FC944 002F98A4 3C 80 80 5A */ lis r4, lbl_805A65FC@ha +/* 802FC944 002F98A4 3C 80 80 5A */ lis r4, sIdentity__9CMatrix3f@ha /* 802FC948 002F98A8 3C 60 80 5A */ lis r3, sZeroVector__9CVector3f@ha /* 802FC94C 002F98AC 54 00 08 3C */ slwi r0, r0, 1 /* 802FC950 002F98B0 38 E5 66 60 */ addi r7, r5, sNoRotation__11CQuaternion@l /* 802FC954 002F98B4 7C BE 02 14 */ add r5, r30, r0 -/* 802FC958 002F98B8 39 04 65 FC */ addi r8, r4, lbl_805A65FC@l +/* 802FC958 002F98B8 39 04 65 FC */ addi r8, r4, sIdentity__9CMatrix3f@l /* 802FC95C 002F98BC 88 05 00 41 */ lbz r0, 0x41(r5) /* 802FC960 002F98C0 39 23 66 A0 */ addi r9, r3, sZeroVector__9CVector3f@l /* 802FC964 002F98C4 80 BE 01 08 */ lwz r5, 0x108(r30) @@ -841,4 +841,3 @@ lbl_803D6E40: # ROM: 0x3D3E40 .asciz "??(??)" .balign 4 - diff --git a/asm/Kyoto/Animation/DolphinCVirtualBone.s b/asm/Kyoto/Animation/DolphinCVirtualBone.s index 739eed68..93448cc3 100644 --- a/asm/Kyoto/Animation/DolphinCVirtualBone.s +++ b/asm/Kyoto/Animation/DolphinCVirtualBone.s @@ -595,9 +595,9 @@ lbl_80354F2C: /* 80354F44 00351EA4 38 84 66 70 */ addi r4, r4, sIdentity__12CTransform4f@l /* 80354F48 00351EA8 38 7F 00 20 */ addi r3, r31, 0x20 /* 80354F4C 00351EAC 4B FB DC 29 */ bl __ct__12CTransform4fFRC12CTransform4f -/* 80354F50 00351EB0 3C 80 80 5A */ lis r4, lbl_805A65FC@ha +/* 80354F50 00351EB0 3C 80 80 5A */ lis r4, sIdentity__9CMatrix3f@ha /* 80354F54 00351EB4 38 7F 00 50 */ addi r3, r31, 0x50 -/* 80354F58 00351EB8 38 84 65 FC */ addi r4, r4, lbl_805A65FC@l +/* 80354F58 00351EB8 38 84 65 FC */ addi r4, r4, sIdentity__9CMatrix3f@l /* 80354F5C 00351EBC 4B FB B0 C9 */ bl __ct__9CMatrix3fFRC9CMatrix3f /* 80354F60 00351EC0 80 01 00 34 */ lwz r0, 0x34(r1) /* 80354F64 00351EC4 7F E3 FB 78 */ mr r3, r31 @@ -738,4 +738,3 @@ lbl_805AE9C0: # ROM: 0x3FB260 .4byte 0 .4byte 0 - diff --git a/asm/Kyoto/Math/CMatrix3f.s b/asm/Kyoto/Math/CMatrix3f.s index 8518abd7..f088067b 100644 --- a/asm/Kyoto/Math/CMatrix3f.s +++ b/asm/Kyoto/Math/CMatrix3f.s @@ -1,6 +1,6 @@ .include "macros.inc" -.comm lbl_805A65FC, 0x24, 4 +.comm sIdentity__9CMatrix3f, 0x24, 4 .section .ctors, "wa" lbl_ctor: @@ -484,10 +484,10 @@ __ct__9CMatrix3fFRC9CVector3fRC9CVector3fRC9CVector3f: __sinit_CMatrix3f_cpp: /* 803106C8 0030D628 94 21 FF D0 */ stwu r1, -0x30(r1) /* 803106CC 0030D62C 7C 08 02 A6 */ mflr r0 -/* 803106D0 0030D630 3C 60 80 5A */ lis r3, lbl_805A65FC@ha +/* 803106D0 0030D630 3C 60 80 5A */ lis r3, sIdentity__9CMatrix3f@ha /* 803106D4 0030D634 C0 02 C8 50 */ lfs f0, lbl_805AE570@sda21(r2) /* 803106D8 0030D638 90 01 00 34 */ stw r0, 0x34(r1) -/* 803106DC 0030D63C 38 63 65 FC */ addi r3, r3, lbl_805A65FC@l +/* 803106DC 0030D63C 38 63 65 FC */ addi r3, r3, sIdentity__9CMatrix3f@l /* 803106E0 0030D640 C0 22 C8 54 */ lfs f1, lbl_805AE574@sda21(r2) /* 803106E4 0030D644 38 81 00 08 */ addi r4, r1, 8 /* 803106E8 0030D648 D0 01 00 0C */ stfs f0, 0xc(r1) @@ -516,4 +516,3 @@ lbl_805AE570: lbl_805AE574: # ROM: 0x3FAE14 .float 1.0 - diff --git a/asm/Kyoto/Particles/CElementGen.s b/asm/Kyoto/Particles/CElementGen.s index b306f82c..a050e2e4 100644 --- a/asm/Kyoto/Particles/CElementGen.s +++ b/asm/Kyoto/Particles/CElementGen.s @@ -9189,9 +9189,9 @@ lbl_8031F3C0: /* 8031F584 0031C4E4 38 7F 01 D8 */ addi r3, r31, 0x1d8 /* 8031F588 0031C4E8 38 84 66 70 */ addi r4, r4, sIdentity__12CTransform4f@l /* 8031F58C 0031C4EC 4B FF 35 E9 */ bl __ct__12CTransform4fFRC12CTransform4f -/* 8031F590 0031C4F0 3C 80 80 5A */ lis r4, lbl_805A65FC@ha +/* 8031F590 0031C4F0 3C 80 80 5A */ lis r4, sIdentity__9CMatrix3f@ha /* 8031F594 0031C4F4 38 7F 02 08 */ addi r3, r31, 0x208 -/* 8031F598 0031C4F8 38 84 65 FC */ addi r4, r4, lbl_805A65FC@l +/* 8031F598 0031C4F8 38 84 65 FC */ addi r4, r4, sIdentity__9CMatrix3f@l /* 8031F59C 0031C4FC 4B FF 0A 89 */ bl __ct__9CMatrix3fFRC9CMatrix3f /* 8031F5A0 0031C500 3C 80 80 5A */ lis r4, sIdentity__12CTransform4f@ha /* 8031F5A4 0031C504 38 7F 02 2C */ addi r3, r31, 0x22c @@ -9706,9 +9706,9 @@ lbl_8031FD2C: /* 8031FD2C 0031CC8C 80 1F 00 2C */ lwz r0, 0x2c(r31) /* 8031FD30 0031CC90 2C 00 00 01 */ cmpwi r0, 1 /* 8031FD34 0031CC94 40 82 00 18 */ bne lbl_8031FD4C -/* 8031FD38 0031CC98 3C 60 80 5A */ lis r3, lbl_805A65FC@ha +/* 8031FD38 0031CC98 3C 60 80 5A */ lis r3, sIdentity__9CMatrix3f@ha /* 8031FD3C 0031CC9C 80 9F 00 90 */ lwz r4, 0x90(r31) -/* 8031FD40 0031CCA0 38 A3 65 FC */ addi r5, r3, lbl_805A65FC@l +/* 8031FD40 0031CCA0 38 A3 65 FC */ addi r5, r3, sIdentity__9CMatrix3f@l /* 8031FD44 0031CCA4 38 7F 00 50 */ addi r3, r31, 0x50 /* 8031FD48 0031CCA8 48 00 01 85 */ bl sub_8031fecc lbl_8031FD4C: diff --git a/asm/MetroidPrime/CCollisionActor.s b/asm/MetroidPrime/CCollisionActor.s index 82e7d9f5..c771604c 100644 --- a/asm/MetroidPrime/CCollisionActor.s +++ b/asm/MetroidPrime/CCollisionActor.s @@ -1488,8 +1488,8 @@ lbl_801A9A6C: /* 801A9BA4 001A6B04 7F 23 CB 78 */ mr r3, r25 /* 801A9BA8 001A6B08 38 81 00 38 */ addi r4, r1, 0x38 /* 801A9BAC 001A6B0C 48 12 5D 09 */ bl __ct__19CCollisionPrimitiveFRC13CMaterialList -/* 801A9BB0 001A6B10 3C 60 80 3F */ lis r3, lbl_803ECAD0@ha -/* 801A9BB4 001A6B14 38 03 CA D0 */ addi r0, r3, lbl_803ECAD0@l +/* 801A9BB0 001A6B10 3C 60 80 3F */ lis r3, __vt__16CCollidableAABox@ha +/* 801A9BB4 001A6B14 38 03 CA D0 */ addi r0, r3, __vt__16CCollidableAABox@l /* 801A9BB8 001A6B18 90 19 00 00 */ stw r0, 0(r25) /* 801A9BBC 001A6B1C C0 01 00 80 */ lfs f0, 0x80(r1) /* 801A9BC0 001A6B20 D0 19 00 10 */ stfs f0, 0x10(r25) diff --git a/asm/MetroidPrime/CEnvFxManager.s b/asm/MetroidPrime/CEnvFxManager.s index 9888a7d4..988b2e7c 100644 --- a/asm/MetroidPrime/CEnvFxManager.s +++ b/asm/MetroidPrime/CEnvFxManager.s @@ -1877,9 +1877,9 @@ lbl_802117F8: /* 8021182C 0020E78C 90 A1 00 44 */ stw r5, 0x44(r1) /* 80211830 0020E790 48 0B E0 85 */ bl __ct__19CCollisionPrimitiveFRC13CMaterialList /* 80211834 0020E794 C0 C1 01 18 */ lfs f6, 0x118(r1) -/* 80211838 0020E798 3C 60 80 3F */ lis r3, lbl_803ECAD0@ha +/* 80211838 0020E798 3C 60 80 3F */ lis r3, __vt__16CCollidableAABox@ha /* 8021183C 0020E79C C0 A1 01 1C */ lfs f5, 0x11c(r1) -/* 80211840 0020E7A0 38 03 CA D0 */ addi r0, r3, lbl_803ECAD0@l +/* 80211840 0020E7A0 38 03 CA D0 */ addi r0, r3, __vt__16CCollidableAABox@l /* 80211844 0020E7A4 C0 81 01 20 */ lfs f4, 0x120(r1) /* 80211848 0020E7A8 38 61 02 38 */ addi r3, r1, 0x238 /* 8021184C 0020E7AC C0 61 01 24 */ lfs f3, 0x124(r1) @@ -1953,9 +1953,9 @@ lbl_802117F8: /* 8021195C 0020E8BC 98 A1 02 28 */ stb r5, 0x228(r1) /* 80211960 0020E8C0 D8 01 02 30 */ stfd f0, 0x230(r1) lbl_80211964: -/* 80211964 0020E8C4 3C 80 80 3F */ lis r4, lbl_803ECAD0@ha +/* 80211964 0020E8C4 3C 80 80 3F */ lis r4, __vt__16CCollidableAABox@ha /* 80211968 0020E8C8 3C 60 80 3E */ lis r3, __vt__19CCollisionPrimitive@ha -/* 8021196C 0020E8CC 38 84 CA D0 */ addi r4, r4, lbl_803ECAD0@l +/* 8021196C 0020E8CC 38 84 CA D0 */ addi r4, r4, __vt__16CCollidableAABox@l /* 80211970 0020E8D0 38 00 00 00 */ li r0, 0 /* 80211974 0020E8D4 90 81 01 E0 */ stw r4, 0x1e0(r1) /* 80211978 0020E8D8 38 63 97 E4 */ addi r3, r3, __vt__19CCollisionPrimitive@l diff --git a/asm/MetroidPrime/CFluidPlaneManager.s b/asm/MetroidPrime/CFluidPlaneManager.s index 4e13735b..13a38afc 100644 --- a/asm/MetroidPrime/CFluidPlaneManager.s +++ b/asm/MetroidPrime/CFluidPlaneManager.s @@ -362,9 +362,9 @@ lbl_8012F390: /* 8012F444 0012C3A4 7F 83 E3 78 */ mr r3, r28 /* 8012F448 0012C3A8 B0 01 00 14 */ sth r0, 0x14(r1) /* 8012F44C 0012C3AC 4B FD 02 B1 */ bl GetSplashEffect__12CScriptWaterCFf -/* 8012F450 0012C3B0 3C 80 80 5A */ lis r4, lbl_805A65FC@ha +/* 8012F450 0012C3B0 3C 80 80 5A */ lis r4, sIdentity__9CMatrix3f@ha /* 8012F454 0012C3B4 7C 78 1B 78 */ mr r24, r3 -/* 8012F458 0012C3B8 38 84 65 FC */ addi r4, r4, lbl_805A65FC@l +/* 8012F458 0012C3B8 38 84 65 FC */ addi r4, r4, sIdentity__9CMatrix3f@l /* 8012F45C 0012C3BC 7F A5 EB 78 */ mr r5, r29 /* 8012F460 0012C3C0 38 61 00 84 */ addi r3, r1, 0x84 /* 8012F464 0012C3C4 48 1E 3E 15 */ bl __ct__12CTransform4fFRC9CMatrix3fRC9CVector3f diff --git a/asm/MetroidPrime/CGameProjectile.s b/asm/MetroidPrime/CGameProjectile.s index d7561506..203f1c6e 100644 --- a/asm/MetroidPrime/CGameProjectile.s +++ b/asm/MetroidPrime/CGameProjectile.s @@ -1889,9 +1889,9 @@ lbl_80038CB0: /* 80038CB0 00035C10 38 61 01 68 */ addi r3, r1, 0x168 /* 80038CB4 00035C14 38 9B 00 68 */ addi r4, r27, 0x68 /* 80038CB8 00035C18 48 29 6B FD */ bl __ct__19CCollisionPrimitiveFRC13CMaterialList -/* 80038CBC 00035C1C 3C 60 80 3F */ lis r3, lbl_803ECAD0@ha +/* 80038CBC 00035C1C 3C 60 80 3F */ lis r3, __vt__16CCollidableAABox@ha /* 80038CC0 00035C20 C0 C1 00 E8 */ lfs f6, 0xe8(r1) -/* 80038CC4 00035C24 39 03 CA D0 */ addi r8, r3, lbl_803ECAD0@l +/* 80038CC4 00035C24 39 03 CA D0 */ addi r8, r3, __vt__16CCollidableAABox@l /* 80038CC8 00035C28 C0 A1 00 EC */ lfs f5, 0xec(r1) /* 80038CCC 00035C2C 91 01 01 68 */ stw r8, 0x168(r1) /* 80038CD0 00035C30 3C 60 80 3E */ lis r3, __vt__19CCollisionPrimitive@ha @@ -2018,13 +2018,13 @@ lbl_80038E7C: /* 80038EAC 00035E0C C0 E1 00 38 */ lfs f7, 0x38(r1) /* 80038EB0 00035E10 39 20 00 01 */ li r9, 1 /* 80038EB4 00035E14 C0 97 00 04 */ lfs f4, 4(r23) -/* 80038EB8 00035E18 3C 80 80 3F */ lis r4, lbl_803ECAD0@ha +/* 80038EB8 00035E18 3C 80 80 3F */ lis r4, __vt__16CCollidableAABox@ha /* 80038EBC 00035E1C C1 01 00 3C */ lfs f8, 0x3c(r1) /* 80038EC0 00035E20 3C 60 80 3E */ lis r3, __vt__19CCollisionPrimitive@ha /* 80038EC4 00035E24 C0 C1 00 34 */ lfs f6, 0x34(r1) /* 80038EC8 00035E28 EC 04 01 F2 */ fmuls f0, f4, f7 /* 80038ECC 00035E2C C0 77 00 00 */ lfs f3, 0(r23) -/* 80038ED0 00035E30 38 84 CA D0 */ addi r4, r4, lbl_803ECAD0@l +/* 80038ED0 00035E30 38 84 CA D0 */ addi r4, r4, __vt__16CCollidableAABox@l /* 80038ED4 00035E34 C0 B7 00 08 */ lfs f5, 8(r23) /* 80038ED8 00035E38 28 1D 00 00 */ cmplwi r29, 0 /* 80038EDC 00035E3C 80 FB 00 68 */ lwz r7, 0x68(r27) @@ -2070,9 +2070,9 @@ lbl_80038E7C: /* 80038F7C 00035EDC 98 01 02 84 */ stb r0, 0x284(r1) /* 80038F80 00035EE0 48 00 00 50 */ b lbl_80038FD0 lbl_80038F84: -/* 80038F84 00035EE4 3C 80 80 3F */ lis r4, lbl_803ECAD0@ha +/* 80038F84 00035EE4 3C 80 80 3F */ lis r4, __vt__16CCollidableAABox@ha /* 80038F88 00035EE8 3C 60 80 3E */ lis r3, __vt__19CCollisionPrimitive@ha -/* 80038F8C 00035EEC 38 84 CA D0 */ addi r4, r4, lbl_803ECAD0@l +/* 80038F8C 00035EEC 38 84 CA D0 */ addi r4, r4, __vt__16CCollidableAABox@l /* 80038F90 00035EF0 38 00 00 00 */ li r0, 0 /* 80038F94 00035EF4 90 81 02 28 */ stw r4, 0x228(r1) /* 80038F98 00035EF8 38 63 97 E4 */ addi r3, r3, __vt__19CCollisionPrimitive@l diff --git a/asm/MetroidPrime/CGroundMovement.s b/asm/MetroidPrime/CGroundMovement.s index 20d06603..53c215fe 100644 --- a/asm/MetroidPrime/CGroundMovement.s +++ b/asm/MetroidPrime/CGroundMovement.s @@ -2455,9 +2455,9 @@ lbl_80187A54: /* 80187C20 00184B80 7D E4 7B 78 */ mr r4, r15 /* 80187C24 00184B84 48 14 7C 91 */ bl __ct__19CCollisionPrimitiveFRC13CMaterialList /* 80187C28 00184B88 C0 A1 02 10 */ lfs f5, 0x210(r1) -/* 80187C2C 00184B8C 3C 60 80 3F */ lis r3, lbl_803ECAD0@ha +/* 80187C2C 00184B8C 3C 60 80 3F */ lis r3, __vt__16CCollidableAABox@ha /* 80187C30 00184B90 C0 81 02 14 */ lfs f4, 0x214(r1) -/* 80187C34 00184B94 38 03 CA D0 */ addi r0, r3, lbl_803ECAD0@l +/* 80187C34 00184B94 38 03 CA D0 */ addi r0, r3, __vt__16CCollidableAABox@l /* 80187C38 00184B98 C0 61 02 18 */ lfs f3, 0x218(r1) /* 80187C3C 00184B9C C0 41 02 1C */ lfs f2, 0x21c(r1) /* 80187C40 00184BA0 C0 21 02 20 */ lfs f1, 0x220(r1) @@ -4909,4 +4909,3 @@ lbl_805AC0A0: lbl_805AC0A4: # ROM: 0x3F8944 .4byte 0x40400000 - diff --git a/asm/MetroidPrime/CParticleDatabase.s b/asm/MetroidPrime/CParticleDatabase.s index a7889eaf..b45be99c 100644 --- a/asm/MetroidPrime/CParticleDatabase.s +++ b/asm/MetroidPrime/CParticleDatabase.s @@ -766,8 +766,8 @@ lbl_800B8368: /* 800B839C 000B52FC D0 01 00 6C */ stfs f0, 0x6c(r1) /* 800B83A0 000B5300 D0 21 00 70 */ stfs f1, 0x70(r1) /* 800B83A4 000B5304 41 82 00 10 */ beq lbl_800B83B4 -/* 800B83A8 000B5308 3C 60 80 5A */ lis r3, lbl_805A65FC@ha -/* 800B83AC 000B530C 38 63 65 FC */ addi r3, r3, lbl_805A65FC@l +/* 800B83A8 000B5308 3C 60 80 5A */ lis r3, sIdentity__9CMatrix3f@ha +/* 800B83AC 000B530C 38 63 65 FC */ addi r3, r3, sIdentity__9CMatrix3f@l /* 800B83B0 000B5310 48 00 00 10 */ b lbl_800B83C0 lbl_800B83B4: /* 800B83B4 000B5314 7F 83 E3 78 */ mr r3, r28 @@ -4613,4 +4613,3 @@ lbl_803CDEA0: .asciz "OT_A_VALID_LOCATOR" .balign 4 .4byte 0 - diff --git a/asm/MetroidPrime/CPhysicsActor.s b/asm/MetroidPrime/CPhysicsActor.s index 2203d2a9..16d9340e 100644 --- a/asm/MetroidPrime/CPhysicsActor.s +++ b/asm/MetroidPrime/CPhysicsActor.s @@ -2332,9 +2332,9 @@ __dt__13CPhysicsActorFv: lbl_8011C450: /* 8011C450 001193B0 34 1E 01 C0 */ addic. r0, r30, 0x1c0 /* 8011C454 001193B4 41 82 00 24 */ beq lbl_8011C478 -/* 8011C458 001193B8 3C 60 80 3F */ lis r3, lbl_803ECAD0@ha +/* 8011C458 001193B8 3C 60 80 3F */ lis r3, __vt__16CCollidableAABox@ha /* 8011C45C 001193BC 34 1E 01 C0 */ addic. r0, r30, 0x1c0 -/* 8011C460 001193C0 38 03 CA D0 */ addi r0, r3, lbl_803ECAD0@l +/* 8011C460 001193C0 38 03 CA D0 */ addi r0, r3, __vt__16CCollidableAABox@l /* 8011C464 001193C4 90 1E 01 C0 */ stw r0, 0x1c0(r30) /* 8011C468 001193C8 41 82 00 10 */ beq lbl_8011C478 /* 8011C46C 001193CC 3C 60 80 3E */ lis r3, __vt__19CCollisionPrimitive@ha @@ -2417,8 +2417,8 @@ lbl_8011C548: /* 8011C584 001194E4 D0 1D 01 04 */ stfs f0, 0x104(r29) /* 8011C588 001194E8 4B EF EF AD */ bl Identity__10CAxisAngleFv /* 8011C58C 001194EC C0 03 00 00 */ lfs f0, 0(r3) -/* 8011C590 001194F0 3C 80 80 5A */ lis r4, lbl_805A65FC@ha -/* 8011C594 001194F4 38 84 65 FC */ addi r4, r4, lbl_805A65FC@l +/* 8011C590 001194F0 3C 80 80 5A */ lis r4, sIdentity__9CMatrix3f@ha +/* 8011C594 001194F4 38 84 65 FC */ addi r4, r4, sIdentity__9CMatrix3f@l /* 8011C598 001194F8 D0 1D 01 08 */ stfs f0, 0x108(r29) /* 8011C59C 001194FC C0 03 00 04 */ lfs f0, 4(r3) /* 8011C5A0 00119500 D0 1D 01 0C */ stfs f0, 0x10c(r29) @@ -2491,8 +2491,8 @@ lbl_8011C548: /* 8011C6AC 0011960C C0 1C 00 14 */ lfs f0, 0x14(r28) /* 8011C6B0 00119610 D0 1D 01 B8 */ stfs f0, 0x1b8(r29) /* 8011C6B4 00119614 48 1B 32 01 */ bl __ct__19CCollisionPrimitiveFRC13CMaterialList -/* 8011C6B8 00119618 3C 60 80 3F */ lis r3, lbl_803ECAD0@ha -/* 8011C6BC 0011961C 38 03 CA D0 */ addi r0, r3, lbl_803ECAD0@l +/* 8011C6B8 00119618 3C 60 80 3F */ lis r3, __vt__16CCollidableAABox@ha +/* 8011C6BC 0011961C 38 03 CA D0 */ addi r0, r3, __vt__16CCollidableAABox@l /* 8011C6C0 00119620 90 1A 00 00 */ stw r0, 0(r26) /* 8011C6C4 00119624 C0 1C 00 00 */ lfs f0, 0(r28) /* 8011C6C8 00119628 D0 1A 00 10 */ stfs f0, 0x10(r26) diff --git a/asm/MetroidPrime/CTargetReticles.s b/asm/MetroidPrime/CTargetReticles.s index 66146c28..9478003a 100644 --- a/asm/MetroidPrime/CTargetReticles.s +++ b/asm/MetroidPrime/CTargetReticles.s @@ -2558,9 +2558,9 @@ lbl_800BE38C: lbl_800BE398: /* 800BE398 000BB2F8 3B 40 00 01 */ li r26, 1 lbl_800BE39C: -/* 800BE39C 000BB2FC 3C 80 80 5A */ lis r4, lbl_805A65FC@ha +/* 800BE39C 000BB2FC 3C 80 80 5A */ lis r4, sIdentity__9CMatrix3f@ha /* 800BE3A0 000BB300 38 61 0A EC */ addi r3, r1, 0xaec -/* 800BE3A4 000BB304 38 84 65 FC */ addi r4, r4, lbl_805A65FC@l +/* 800BE3A4 000BB304 38 84 65 FC */ addi r4, r4, sIdentity__9CMatrix3f@l /* 800BE3A8 000BB308 48 25 1C 7D */ bl __ct__9CMatrix3fFRC9CMatrix3f /* 800BE3AC 000BB30C 38 00 00 00 */ li r0, 0 /* 800BE3B0 000BB310 80 7D 08 4C */ lwz r3, 0x84c(r29) diff --git a/asm/MetroidPrime/Enemies/CBabygoth.s b/asm/MetroidPrime/Enemies/CBabygoth.s index f7fbef53..ac31f126 100644 --- a/asm/MetroidPrime/Enemies/CBabygoth.s +++ b/asm/MetroidPrime/Enemies/CBabygoth.s @@ -7170,9 +7170,9 @@ lbl_80223608: lbl_8022362C: /* 8022362C 0022058C 34 1E 09 30 */ addic. r0, r30, 0x930 /* 80223630 00220590 41 82 00 24 */ beq lbl_80223654 -/* 80223634 00220594 3C 60 80 3F */ lis r3, lbl_803ECAD0@ha +/* 80223634 00220594 3C 60 80 3F */ lis r3, __vt__16CCollidableAABox@ha /* 80223638 00220598 34 1E 09 30 */ addic. r0, r30, 0x930 -/* 8022363C 0022059C 38 03 CA D0 */ addi r0, r3, lbl_803ECAD0@l +/* 8022363C 0022059C 38 03 CA D0 */ addi r0, r3, __vt__16CCollidableAABox@l /* 80223640 002205A0 90 1E 09 30 */ stw r0, 0x930(r30) /* 80223644 002205A4 41 82 00 10 */ beq lbl_80223654 /* 80223648 002205A8 3C 60 80 3E */ lis r3, __vt__19CCollisionPrimitive@ha @@ -7374,9 +7374,9 @@ lbl_80223764: /* 80223914 00220874 7F 24 CB 78 */ mr r4, r25 /* 80223918 00220878 7F 43 D3 78 */ mr r3, r26 /* 8022391C 0022087C 48 0A BF 99 */ bl __ct__19CCollisionPrimitiveFRC13CMaterialList -/* 80223920 00220880 3C 80 80 3F */ lis r4, lbl_803ECAD0@ha +/* 80223920 00220880 3C 80 80 3F */ lis r4, __vt__16CCollidableAABox@ha /* 80223924 00220884 38 7D 09 58 */ addi r3, r29, 0x958 -/* 80223928 00220888 38 04 CA D0 */ addi r0, r4, lbl_803ECAD0@l +/* 80223928 00220888 38 04 CA D0 */ addi r0, r4, __vt__16CCollidableAABox@l /* 8022392C 0022088C 38 BF 00 0C */ addi r5, r31, 0xc /* 80223930 00220890 90 1A 00 00 */ stw r0, 0(r26) /* 80223934 00220894 C0 01 01 50 */ lfs f0, 0x150(r1) diff --git a/asm/MetroidPrime/Enemies/CDrone.s b/asm/MetroidPrime/Enemies/CDrone.s index c8238f87..9dcbdc99 100644 --- a/asm/MetroidPrime/Enemies/CDrone.s +++ b/asm/MetroidPrime/Enemies/CDrone.s @@ -5736,9 +5736,9 @@ lbl_801639C8: /* 80163A04 00160964 38 9C 00 68 */ addi r4, r28, 0x68 /* 80163A08 00160968 48 16 BE AD */ bl __ct__19CCollisionPrimitiveFRC13CMaterialList /* 80163A0C 0016096C C0 C1 00 20 */ lfs f6, 0x20(r1) -/* 80163A10 00160970 3C 60 80 3F */ lis r3, lbl_803ECAD0@ha +/* 80163A10 00160970 3C 60 80 3F */ lis r3, __vt__16CCollidableAABox@ha /* 80163A14 00160974 C0 A1 00 24 */ lfs f5, 0x24(r1) -/* 80163A18 00160978 38 03 CA D0 */ addi r0, r3, lbl_803ECAD0@l +/* 80163A18 00160978 38 03 CA D0 */ addi r0, r3, __vt__16CCollidableAABox@l /* 80163A1C 0016097C C0 81 00 28 */ lfs f4, 0x28(r1) /* 80163A20 00160980 FC 20 F8 90 */ fmr f1, f31 /* 80163A24 00160984 C0 61 00 2C */ lfs f3, 0x2c(r1) @@ -5794,9 +5794,9 @@ lbl_801639C8: /* 80163AEC 00160A4C 90 61 00 F4 */ stw r3, 0xf4(r1) /* 80163AF0 00160A50 90 01 00 F0 */ stw r0, 0xf0(r1) /* 80163AF4 00160A54 40 82 00 20 */ bne lbl_80163B14 -/* 80163AF8 00160A58 3C 80 80 3F */ lis r4, lbl_803ECAD0@ha +/* 80163AF8 00160A58 3C 80 80 3F */ lis r4, __vt__16CCollidableAABox@ha /* 80163AFC 00160A5C 3C 60 80 3E */ lis r3, __vt__19CCollisionPrimitive@ha -/* 80163B00 00160A60 38 04 CA D0 */ addi r0, r4, lbl_803ECAD0@l +/* 80163B00 00160A60 38 04 CA D0 */ addi r0, r4, __vt__16CCollidableAABox@l /* 80163B04 00160A64 90 01 00 F8 */ stw r0, 0xf8(r1) /* 80163B08 00160A68 38 03 97 E4 */ addi r0, r3, __vt__19CCollisionPrimitive@l /* 80163B0C 00160A6C 90 01 00 F8 */ stw r0, 0xf8(r1) @@ -5831,9 +5831,9 @@ lbl_80163B28: /* 80163B78 00160AD8 D8 01 01 78 */ stfd f0, 0x178(r1) /* 80163B7C 00160ADC B0 18 00 00 */ sth r0, 0(r24) lbl_80163B80: -/* 80163B80 00160AE0 3C 80 80 3F */ lis r4, lbl_803ECAD0@ha +/* 80163B80 00160AE0 3C 80 80 3F */ lis r4, __vt__16CCollidableAABox@ha /* 80163B84 00160AE4 3C 60 80 3E */ lis r3, __vt__19CCollisionPrimitive@ha -/* 80163B88 00160AE8 38 04 CA D0 */ addi r0, r4, lbl_803ECAD0@l +/* 80163B88 00160AE8 38 04 CA D0 */ addi r0, r4, __vt__16CCollidableAABox@l /* 80163B8C 00160AEC 90 01 00 F8 */ stw r0, 0xf8(r1) /* 80163B90 00160AF0 38 03 97 E4 */ addi r0, r3, __vt__19CCollisionPrimitive@l /* 80163B94 00160AF4 90 01 00 F8 */ stw r0, 0xf8(r1) diff --git a/asm/MetroidPrime/Enemies/CElitePirate.s b/asm/MetroidPrime/Enemies/CElitePirate.s index db921198..4407d78b 100644 --- a/asm/MetroidPrime/Enemies/CElitePirate.s +++ b/asm/MetroidPrime/Enemies/CElitePirate.s @@ -7295,9 +7295,9 @@ lbl_8022D6D0: lbl_8022D6D8: /* 8022D6D8 0022A638 34 1E 07 38 */ addic. r0, r30, 0x738 /* 8022D6DC 0022A63C 41 82 00 24 */ beq lbl_8022D700 -/* 8022D6E0 0022A640 3C 60 80 3F */ lis r3, lbl_803ECAD0@ha +/* 8022D6E0 0022A640 3C 60 80 3F */ lis r3, __vt__16CCollidableAABox@ha /* 8022D6E4 0022A644 34 1E 07 38 */ addic. r0, r30, 0x738 -/* 8022D6E8 0022A648 38 03 CA D0 */ addi r0, r3, lbl_803ECAD0@l +/* 8022D6E8 0022A648 38 03 CA D0 */ addi r0, r3, __vt__16CCollidableAABox@l /* 8022D6EC 0022A64C 90 1E 07 38 */ stw r0, 0x738(r30) /* 8022D6F0 0022A650 41 82 00 10 */ beq lbl_8022D700 /* 8022D6F4 0022A654 3C 60 80 3E */ lis r3, __vt__19CCollisionPrimitive@ha @@ -7463,9 +7463,9 @@ lbl_8022D774: /* 8022D950 0022A8B0 7F 04 C3 78 */ mr r4, r24 /* 8022D954 0022A8B4 7E E3 BB 78 */ mr r3, r23 /* 8022D958 0022A8B8 48 0A 1F 5D */ bl __ct__19CCollisionPrimitiveFRC13CMaterialList -/* 8022D95C 0022A8BC 3C 60 80 3F */ lis r3, lbl_803ECAD0@ha +/* 8022D95C 0022A8BC 3C 60 80 3F */ lis r3, __vt__16CCollidableAABox@ha /* 8022D960 0022A8C0 3B 80 00 00 */ li r28, 0 -/* 8022D964 0022A8C4 38 03 CA D0 */ addi r0, r3, lbl_803ECAD0@l +/* 8022D964 0022A8C4 38 03 CA D0 */ addi r0, r3, __vt__16CCollidableAABox@l /* 8022D968 0022A8C8 3B 60 00 00 */ li r27, 0 /* 8022D96C 0022A8CC 90 17 00 00 */ stw r0, 0(r23) /* 8022D970 0022A8D0 3B 40 00 00 */ li r26, 0 diff --git a/asm/MetroidPrime/Enemies/CIceSheegoth.s b/asm/MetroidPrime/Enemies/CIceSheegoth.s index f1cbbb28..4551867a 100644 --- a/asm/MetroidPrime/Enemies/CIceSheegoth.s +++ b/asm/MetroidPrime/Enemies/CIceSheegoth.s @@ -8883,9 +8883,9 @@ lbl_801A5CC4: lbl_801A5CE8: /* 801A5CE8 001A2C48 34 1E 0A 30 */ addic. r0, r30, 0xa30 /* 801A5CEC 001A2C4C 41 82 00 24 */ beq lbl_801A5D10 -/* 801A5CF0 001A2C50 3C 60 80 3F */ lis r3, lbl_803ECAD0@ha +/* 801A5CF0 001A2C50 3C 60 80 3F */ lis r3, __vt__16CCollidableAABox@ha /* 801A5CF4 001A2C54 34 1E 0A 30 */ addic. r0, r30, 0xa30 -/* 801A5CF8 001A2C58 38 03 CA D0 */ addi r0, r3, lbl_803ECAD0@l +/* 801A5CF8 001A2C58 38 03 CA D0 */ addi r0, r3, __vt__16CCollidableAABox@l /* 801A5CFC 001A2C5C 90 1E 0A 30 */ stw r0, 0xa30(r30) /* 801A5D00 001A2C60 41 82 00 10 */ beq lbl_801A5D10 /* 801A5D04 001A2C64 3C 60 80 3E */ lis r3, __vt__19CCollisionPrimitive@ha @@ -9154,9 +9154,9 @@ lbl_801A5E20: /* 801A60DC 001A303C 7F C4 F3 78 */ mr r4, r30 /* 801A60E0 001A3040 7F 83 E3 78 */ mr r3, r28 /* 801A60E4 001A3044 48 12 97 D1 */ bl __ct__19CCollisionPrimitiveFRC13CMaterialList -/* 801A60E8 001A3048 3C 80 80 3F */ lis r4, lbl_803ECAD0@ha +/* 801A60E8 001A3048 3C 80 80 3F */ lis r4, __vt__16CCollidableAABox@ha /* 801A60EC 001A304C 38 7D 0A 58 */ addi r3, r29, 0xa58 -/* 801A60F0 001A3050 38 04 CA D0 */ addi r0, r4, lbl_803ECAD0@l +/* 801A60F0 001A3050 38 04 CA D0 */ addi r0, r4, __vt__16CCollidableAABox@l /* 801A60F4 001A3054 38 BF 01 54 */ addi r5, r31, 0x154 /* 801A60F8 001A3058 90 1C 00 00 */ stw r0, 0(r28) /* 801A60FC 001A305C C0 01 01 38 */ lfs f0, 0x138(r1) diff --git a/asm/MetroidPrime/Enemies/CMetroidBeta.s b/asm/MetroidPrime/Enemies/CMetroidBeta.s index 1484a508..248bc0c4 100644 --- a/asm/MetroidPrime/Enemies/CMetroidBeta.s +++ b/asm/MetroidPrime/Enemies/CMetroidBeta.s @@ -6088,9 +6088,9 @@ lbl_801C5F98: lbl_801C5FB4: /* 801C5FB4 001C2F14 34 1E 07 68 */ addic. r0, r30, 0x768 /* 801C5FB8 001C2F18 41 82 00 24 */ beq lbl_801C5FDC -/* 801C5FBC 001C2F1C 3C 60 80 3F */ lis r3, lbl_803ECAD0@ha +/* 801C5FBC 001C2F1C 3C 60 80 3F */ lis r3, __vt__16CCollidableAABox@ha /* 801C5FC0 001C2F20 34 1E 07 68 */ addic. r0, r30, 0x768 -/* 801C5FC4 001C2F24 38 03 CA D0 */ addi r0, r3, lbl_803ECAD0@l +/* 801C5FC4 001C2F24 38 03 CA D0 */ addi r0, r3, __vt__16CCollidableAABox@l /* 801C5FC8 001C2F28 90 1E 07 68 */ stw r0, 0x768(r30) /* 801C5FCC 001C2F2C 41 82 00 10 */ beq lbl_801C5FDC /* 801C5FD0 001C2F30 3C 60 80 3E */ lis r3, __vt__19CCollisionPrimitive@ha @@ -6212,9 +6212,9 @@ lbl_801C6070: /* 801C6174 001C30D4 7F A4 EB 78 */ mr r4, r29 /* 801C6178 001C30D8 7F 83 E3 78 */ mr r3, r28 /* 801C617C 001C30DC 48 10 97 39 */ bl __ct__19CCollisionPrimitiveFRC13CMaterialList -/* 801C6180 001C30E0 3C 60 80 3F */ lis r3, lbl_803ECAD0@ha +/* 801C6180 001C30E0 3C 60 80 3F */ lis r3, __vt__16CCollidableAABox@ha /* 801C6184 001C30E4 C0 22 AA 98 */ lfs f1, lbl_805AC7B8@sda21(r2) -/* 801C6188 001C30E8 38 03 CA D0 */ addi r0, r3, lbl_803ECAD0@l +/* 801C6188 001C30E8 38 03 CA D0 */ addi r0, r3, __vt__16CCollidableAABox@l /* 801C618C 001C30EC 3C 80 80 5A */ lis r4, sZeroVector__9CVector3f@ha /* 801C6190 001C30F0 90 1C 00 00 */ stw r0, 0(r28) /* 801C6194 001C30F4 3C 60 50 41 */ lis r3, 0x50415254@ha diff --git a/asm/MetroidPrime/Enemies/CParasite.s b/asm/MetroidPrime/Enemies/CParasite.s index 1b3cc4b0..5d0e8bfb 100644 --- a/asm/MetroidPrime/Enemies/CParasite.s +++ b/asm/MetroidPrime/Enemies/CParasite.s @@ -3244,8 +3244,8 @@ lbl_80159364: /* 801593D8 00156338 38 9E 00 68 */ addi r4, r30, 0x68 /* 801593DC 0015633C 48 17 64 D9 */ bl __ct__19CCollisionPrimitiveFRC13CMaterialList /* 801593E0 00156340 C0 A1 00 50 */ lfs f5, 0x50(r1) -/* 801593E4 00156344 3C 60 80 3F */ lis r3, lbl_803ECAD0@ha -/* 801593E8 00156348 38 03 CA D0 */ addi r0, r3, lbl_803ECAD0@l +/* 801593E4 00156344 3C 60 80 3F */ lis r3, __vt__16CCollidableAABox@ha +/* 801593E8 00156348 38 03 CA D0 */ addi r0, r3, __vt__16CCollidableAABox@l /* 801593EC 0015634C C0 81 00 54 */ lfs f4, 0x54(r1) /* 801593F0 00156350 C0 61 00 58 */ lfs f3, 0x58(r1) /* 801593F4 00156354 3C 80 80 5A */ lis r4, sIdentity__12CTransform4f@ha @@ -3265,9 +3265,9 @@ lbl_80159364: /* 8015942C 0015638C D0 21 00 88 */ stfs f1, 0x88(r1) /* 80159430 00156390 D0 01 00 8C */ stfs f0, 0x8c(r1) /* 80159434 00156394 48 02 9F 6D */ bl DetectStaticCollisionBoolean__14CGameCollisionFRC13CStateManagerRC19CCollisionPrimitiveRC12CTransform4fRC15CMaterialFilter -/* 80159438 00156398 3C A0 80 3F */ lis r5, lbl_803ECAD0@ha +/* 80159438 00156398 3C A0 80 3F */ lis r5, __vt__16CCollidableAABox@ha /* 8015943C 0015639C 3C 80 80 3E */ lis r4, __vt__19CCollisionPrimitive@ha -/* 80159440 001563A0 38 05 CA D0 */ addi r0, r5, lbl_803ECAD0@l +/* 80159440 001563A0 38 05 CA D0 */ addi r0, r5, __vt__16CCollidableAABox@l /* 80159444 001563A4 90 01 00 68 */ stw r0, 0x68(r1) /* 80159448 001563A8 38 04 97 E4 */ addi r0, r4, __vt__19CCollisionPrimitive@l /* 8015944C 001563AC 90 01 00 68 */ stw r0, 0x68(r1) diff --git a/asm/MetroidPrime/Enemies/CPuddleSpore.s b/asm/MetroidPrime/Enemies/CPuddleSpore.s index 44aa4a78..8c80594d 100644 --- a/asm/MetroidPrime/Enemies/CPuddleSpore.s +++ b/asm/MetroidPrime/Enemies/CPuddleSpore.s @@ -288,9 +288,9 @@ lbl_80146B64: lbl_80146B80: /* 80146B80 00143AE0 34 1E 05 A0 */ addic. r0, r30, 0x5a0 /* 80146B84 00143AE4 41 82 00 24 */ beq lbl_80146BA8 -/* 80146B88 00143AE8 3C 60 80 3F */ lis r3, lbl_803ECAD0@ha +/* 80146B88 00143AE8 3C 60 80 3F */ lis r3, __vt__16CCollidableAABox@ha /* 80146B8C 00143AEC 34 1E 05 A0 */ addic. r0, r30, 0x5a0 -/* 80146B90 00143AF0 38 03 CA D0 */ addi r0, r3, lbl_803ECAD0@l +/* 80146B90 00143AF0 38 03 CA D0 */ addi r0, r3, __vt__16CCollidableAABox@l /* 80146B94 00143AF4 90 1E 05 A0 */ stw r0, 0x5a0(r30) /* 80146B98 00143AF8 41 82 00 10 */ beq lbl_80146BA8 /* 80146B9C 00143AFC 3C 60 80 3E */ lis r3, __vt__19CCollisionPrimitive@ha @@ -894,8 +894,8 @@ UpdateBoundingState__12CPuddleSporeFRC6CAABoxR13CStateManager: /* 801473D4 00144334 38 9D 00 68 */ addi r4, r29, 0x68 /* 801473D8 00144338 48 18 84 DD */ bl __ct__19CCollisionPrimitiveFRC13CMaterialList /* 801473DC 0014433C C0 DC 00 00 */ lfs f6, 0(r28) -/* 801473E0 00144340 3C 60 80 3F */ lis r3, lbl_803ECAD0@ha -/* 801473E4 00144344 39 03 CA D0 */ addi r8, r3, lbl_803ECAD0@l +/* 801473E0 00144340 3C 60 80 3F */ lis r3, __vt__16CCollidableAABox@ha +/* 801473E4 00144344 39 03 CA D0 */ addi r8, r3, __vt__16CCollidableAABox@l /* 801473E8 00144348 C0 BC 00 04 */ lfs f5, 4(r28) /* 801473EC 0014434C C0 9C 00 08 */ lfs f4, 8(r28) /* 801473F0 00144350 3C A0 80 3E */ lis r5, __vt__19CCollisionPrimitive@ha @@ -2068,9 +2068,9 @@ Accept__12CPuddleSporeFR8IVisitor: /* 801484C0 00145420 7F C4 F3 78 */ mr r4, r30 /* 801484C4 00145424 7F 43 D3 78 */ mr r3, r26 /* 801484C8 00145428 48 18 73 ED */ bl __ct__19CCollisionPrimitiveFRC13CMaterialList -/* 801484CC 0014542C 3C 80 80 3F */ lis r4, lbl_803ECAD0@ha +/* 801484CC 0014542C 3C 80 80 3F */ lis r4, __vt__16CCollidableAABox@ha /* 801484D0 00145430 3C 60 50 41 */ lis r3, 0x50415254@ha -/* 801484D4 00145434 38 04 CA D0 */ addi r0, r4, lbl_803ECAD0@l +/* 801484D4 00145434 38 04 CA D0 */ addi r0, r4, __vt__16CCollidableAABox@l /* 801484D8 00145438 38 80 00 00 */ li r4, 0 /* 801484DC 0014543C 90 1A 00 00 */ stw r0, 0(r26) /* 801484E0 00145440 38 03 52 54 */ addi r0, r3, 0x50415254@l diff --git a/asm/MetroidPrime/Enemies/CThardusRockProjectile.s b/asm/MetroidPrime/Enemies/CThardusRockProjectile.s index a9bbdc7d..411d21e6 100644 --- a/asm/MetroidPrime/Enemies/CThardusRockProjectile.s +++ b/asm/MetroidPrime/Enemies/CThardusRockProjectile.s @@ -419,9 +419,9 @@ sub_80203824: /* 80203958 002008B8 48 13 A8 3D */ bl "__ct__Q24rstl66basic_string,Q24rstl17rmemory_allocator>FPCciRCQ24rstl17rmemory_allocator" /* 8020395C 002008BC 3B 20 00 01 */ li r25, 1 /* 80203960 002008C0 48 14 66 4D */ bl White__6CColorFv -/* 80203964 002008C4 3C 80 80 5A */ lis r4, lbl_805A65FC@ha +/* 80203964 002008C4 3C 80 80 5A */ lis r4, sIdentity__9CMatrix3f@ha /* 80203968 002008C8 7C 7B 1B 78 */ mr r27, r3 -/* 8020396C 002008CC 38 84 65 FC */ addi r4, r4, lbl_805A65FC@l +/* 8020396C 002008CC 38 84 65 FC */ addi r4, r4, sIdentity__9CMatrix3f@l /* 80203970 002008D0 7F 85 E3 78 */ mr r5, r28 /* 80203974 002008D4 38 61 00 A0 */ addi r3, r1, 0xa0 /* 80203978 002008D8 48 10 F9 01 */ bl __ct__12CTransform4fFRC9CMatrix3fRC9CVector3f diff --git a/asm/MetroidPrime/HUD/CHudDecoInterface.s b/asm/MetroidPrime/HUD/CHudDecoInterface.s index 22ac44f0..f55d3f4e 100644 --- a/asm/MetroidPrime/HUD/CHudDecoInterface.s +++ b/asm/MetroidPrime/HUD/CHudDecoInterface.s @@ -2300,10 +2300,10 @@ SetIsVisibleDebug__19CHudHelmetInterfaceFbb: __ct__19CHudHelmetInterfaceFR9CGuiFrame: /* 80190E40 0018DDA0 94 21 FF A0 */ stwu r1, -0x60(r1) /* 80190E44 0018DDA4 7C 08 02 A6 */ mflr r0 -/* 80190E48 0018DDA8 3C A0 80 5A */ lis r5, lbl_805A65FC@ha +/* 80190E48 0018DDA8 3C A0 80 5A */ lis r5, sIdentity__9CMatrix3f@ha /* 80190E4C 0018DDAC 3C C0 80 3D */ lis r6, lbl_803D0BD8@ha /* 80190E50 0018DDB0 90 01 00 64 */ stw r0, 0x64(r1) -/* 80190E54 0018DDB4 38 05 65 FC */ addi r0, r5, lbl_805A65FC@l +/* 80190E54 0018DDB4 38 05 65 FC */ addi r0, r5, sIdentity__9CMatrix3f@l /* 80190E58 0018DDB8 93 E1 00 5C */ stw r31, 0x5c(r1) /* 80190E5C 0018DDBC 3B E6 0B D8 */ addi r31, r6, lbl_803D0BD8@l /* 80190E60 0018DDC0 93 C1 00 58 */ stw r30, 0x58(r1) @@ -6809,9 +6809,9 @@ __ct__24CHudDecoInterfaceThermalFR9CGuiFrame: /* 80194E08 00191D68 3C 60 80 5A */ lis r3, sNoRotation__11CQuaternion@ha /* 80194E0C 00191D6C 90 1D 00 00 */ stw r0, 0(r29) /* 80194E10 00191D70 38 C3 66 60 */ addi r6, r3, sNoRotation__11CQuaternion@l -/* 80194E14 00191D74 3C 60 80 5A */ lis r3, lbl_805A65FC@ha +/* 80194E14 00191D74 3C 60 80 5A */ lis r3, sIdentity__9CMatrix3f@ha /* 80194E18 00191D78 C0 06 00 00 */ lfs f0, 0(r6) -/* 80194E1C 00191D7C 38 03 65 FC */ addi r0, r3, lbl_805A65FC@l +/* 80194E1C 00191D7C 38 03 65 FC */ addi r0, r3, sIdentity__9CMatrix3f@l /* 80194E20 00191D80 38 7D 00 38 */ addi r3, r29, 0x38 /* 80194E24 00191D84 D0 1D 00 04 */ stfs f0, 4(r29) /* 80194E28 00191D88 7C 04 03 78 */ mr r4, r0 @@ -8812,9 +8812,9 @@ __ct__21CHudDecoInterfaceXRayFR9CGuiFrame: /* 80196A54 001939B4 3B A5 66 A0 */ addi r29, r5, sZeroVector__9CVector3f@l /* 80196A58 001939B8 90 1E 00 00 */ stw r0, 0(r30) /* 80196A5C 001939BC 38 03 45 50 */ addi r0, r3, lbl_803E4550@l -/* 80196A60 001939C0 3C 60 80 5A */ lis r3, lbl_805A65FC@ha +/* 80196A60 001939C0 3C 60 80 5A */ lis r3, sIdentity__9CMatrix3f@ha /* 80196A64 001939C4 90 1E 00 00 */ stw r0, 0(r30) -/* 80196A68 001939C8 38 03 65 FC */ addi r0, r3, lbl_805A65FC@l +/* 80196A68 001939C8 38 03 65 FC */ addi r0, r3, sIdentity__9CMatrix3f@l /* 80196A6C 001939CC 7C 04 03 78 */ mr r4, r0 /* 80196A70 001939D0 38 7E 00 3C */ addi r3, r30, 0x3c /* 80196A74 001939D4 D0 1E 00 04 */ stfs f0, 4(r30) @@ -8846,11 +8846,11 @@ __ct__21CHudDecoInterfaceXRayFR9CGuiFrame: /* 80196ADC 00193A3C D0 1E 00 38 */ stfs f0, 0x38(r30) /* 80196AE0 00193A40 48 17 95 45 */ bl __ct__9CMatrix3fFRC9CMatrix3f /* 80196AE4 00193A44 3C 60 80 5A */ lis r3, sZeroVector__9CVector3f@ha -/* 80196AE8 00193A48 3C 80 80 5A */ lis r4, lbl_805A65FC@ha +/* 80196AE8 00193A48 3C 80 80 5A */ lis r4, sIdentity__9CMatrix3f@ha /* 80196AEC 00193A4C 38 A3 66 A0 */ addi r5, r3, sZeroVector__9CVector3f@l /* 80196AF0 00193A50 C0 05 00 00 */ lfs f0, 0(r5) /* 80196AF4 00193A54 38 7E 00 78 */ addi r3, r30, 0x78 -/* 80196AF8 00193A58 38 84 65 FC */ addi r4, r4, lbl_805A65FC@l +/* 80196AF8 00193A58 38 84 65 FC */ addi r4, r4, sIdentity__9CMatrix3f@l /* 80196AFC 00193A5C D0 1E 00 60 */ stfs f0, 0x60(r30) /* 80196B00 00193A60 C0 1D 00 04 */ lfs f0, 4(r29) /* 80196B04 00193A64 D0 1E 00 64 */ stfs f0, 0x64(r30) @@ -9266,9 +9266,9 @@ __ct__23CHudDecoInterfaceCombatFR9CGuiFrame: /* 801970C0 00194020 3C 60 80 5A */ lis r3, sNoRotation__11CQuaternion@ha /* 801970C4 00194024 90 1F 00 00 */ stw r0, 0(r31) /* 801970C8 00194028 38 C3 66 60 */ addi r6, r3, sNoRotation__11CQuaternion@l -/* 801970CC 0019402C 3C 60 80 5A */ lis r3, lbl_805A65FC@ha +/* 801970CC 0019402C 3C 60 80 5A */ lis r3, sIdentity__9CMatrix3f@ha /* 801970D0 00194030 C0 06 00 00 */ lfs f0, 0(r6) -/* 801970D4 00194034 38 03 65 FC */ addi r0, r3, lbl_805A65FC@l +/* 801970D4 00194034 38 03 65 FC */ addi r0, r3, sIdentity__9CMatrix3f@l /* 801970D8 00194038 7C 04 03 78 */ mr r4, r0 /* 801970DC 0019403C 38 7F 00 44 */ addi r3, r31, 0x44 /* 801970E0 00194040 D0 1F 00 04 */ stfs f0, 4(r31) diff --git a/asm/MetroidPrime/HUD/CSamusHud.s b/asm/MetroidPrime/HUD/CSamusHud.s index 21606503..92c4705d 100644 --- a/asm/MetroidPrime/HUD/CSamusHud.s +++ b/asm/MetroidPrime/HUD/CSamusHud.s @@ -1035,8 +1035,8 @@ lbl_80064EDC: /* 80064EEC 00061E4C 80 7E 02 A0 */ lwz r3, 0x2a0(r30) /* 80064EF0 00061E50 28 03 00 00 */ cmplwi r3, 0 /* 80064EF4 00061E54 41 82 00 20 */ beq lbl_80064F14 -/* 80064EF8 00061E58 3C 80 80 5A */ lis r4, lbl_805A65FC@ha -/* 80064EFC 00061E5C 38 84 65 FC */ addi r4, r4, lbl_805A65FC@l +/* 80064EF8 00061E58 3C 80 80 5A */ lis r4, sIdentity__9CMatrix3f@ha +/* 80064EFC 00061E5C 38 84 65 FC */ addi r4, r4, sIdentity__9CMatrix3f@l /* 80064F00 00061E60 48 12 BC 89 */ bl SetHudLagRotation__19CHudHelmetInterfaceFRC9CMatrix3f /* 80064F04 00061E64 3C 80 80 5A */ lis r4, sZeroVector__9CVector3f@ha /* 80064F08 00061E68 80 7E 02 A0 */ lwz r3, 0x2a0(r30) @@ -1047,8 +1047,8 @@ lbl_80064F14: /* 80064F18 00061E78 28 03 00 00 */ cmplwi r3, 0 /* 80064F1C 00061E7C 41 82 00 54 */ beq lbl_80064F70 /* 80064F20 00061E80 81 83 00 00 */ lwz r12, 0(r3) -/* 80064F24 00061E84 3C 80 80 5A */ lis r4, lbl_805A65FC@ha -/* 80064F28 00061E88 38 84 65 FC */ addi r4, r4, lbl_805A65FC@l +/* 80064F24 00061E84 3C 80 80 5A */ lis r4, sIdentity__9CMatrix3f@ha +/* 80064F28 00061E88 38 84 65 FC */ addi r4, r4, sIdentity__9CMatrix3f@l /* 80064F2C 00061E8C 81 8C 00 18 */ lwz r12, 0x18(r12) /* 80064F30 00061E90 7D 89 03 A6 */ mtctr r12 /* 80064F34 00061E94 4E 80 04 21 */ bctrl @@ -1070,9 +1070,9 @@ lbl_80064F70: /* 80064F70 00061ED0 80 9E 05 88 */ lwz r4, 0x588(r30) /* 80064F74 00061ED4 38 61 00 78 */ addi r3, r1, 0x78 /* 80064F78 00061ED8 48 26 02 C1 */ bl GetWorldPosition__10CGuiObjectCFv -/* 80064F7C 00061EDC 3C 80 80 5A */ lis r4, lbl_805A65FC@ha +/* 80064F7C 00061EDC 3C 80 80 5A */ lis r4, sIdentity__9CMatrix3f@ha /* 80064F80 00061EE0 38 61 01 88 */ addi r3, r1, 0x188 -/* 80064F84 00061EE4 38 84 65 FC */ addi r4, r4, lbl_805A65FC@l +/* 80064F84 00061EE4 38 84 65 FC */ addi r4, r4, sIdentity__9CMatrix3f@l /* 80064F88 00061EE8 38 A1 00 78 */ addi r5, r1, 0x78 /* 80064F8C 00061EEC 48 2A E2 ED */ bl __ct__12CTransform4fFRC9CMatrix3fRC9CVector3f /* 80064F90 00061EF0 83 FE 05 88 */ lwz r31, 0x588(r30) @@ -7668,9 +7668,9 @@ lbl_8006AC90: /* 8006AC98 00067BF8 90 1F 03 A4 */ stw r0, 0x3a4(r31) /* 8006AC9C 00067BFC 48 08 2A F1 */ bl __ct__17CCameraFilterPassFv /* 8006ACA0 00067C00 38 00 00 00 */ li r0, 0 -/* 8006ACA4 00067C04 3C 60 80 5A */ lis r3, lbl_805A65FC@ha +/* 8006ACA4 00067C04 3C 60 80 5A */ lis r3, sIdentity__9CMatrix3f@ha /* 8006ACA8 00067C08 90 1F 03 D4 */ stw r0, 0x3d4(r31) -/* 8006ACAC 00067C0C 38 83 65 FC */ addi r4, r3, lbl_805A65FC@l +/* 8006ACAC 00067C0C 38 83 65 FC */ addi r4, r3, sIdentity__9CMatrix3f@l /* 8006ACB0 00067C10 C0 22 87 34 */ lfs f1, lbl_805AA454@sda21(r2) /* 8006ACB4 00067C14 3C A0 80 5A */ lis r5, sZeroVector__9CVector3f@ha /* 8006ACB8 00067C18 90 1F 03 DC */ stw r0, 0x3dc(r31) diff --git a/asm/MetroidPrime/Player/CMorphBall.s b/asm/MetroidPrime/Player/CMorphBall.s index 644a7b99..33c3fa21 100644 --- a/asm/MetroidPrime/Player/CMorphBall.s +++ b/asm/MetroidPrime/Player/CMorphBall.s @@ -3878,8 +3878,8 @@ lbl_800F01D8: /* 800F033C 000ED29C 90 A1 00 14 */ stw r5, 0x14(r1) /* 800F0340 000ED2A0 48 1D F5 75 */ bl __ct__19CCollisionPrimitiveFRC13CMaterialList /* 800F0344 000ED2A4 C0 A1 00 E8 */ lfs f5, 0xe8(r1) -/* 800F0348 000ED2A8 3C 60 80 3F */ lis r3, lbl_803ECAD0@ha -/* 800F034C 000ED2AC 38 03 CA D0 */ addi r0, r3, lbl_803ECAD0@l +/* 800F0348 000ED2A8 3C 60 80 3F */ lis r3, __vt__16CCollidableAABox@ha +/* 800F034C 000ED2AC 38 03 CA D0 */ addi r0, r3, __vt__16CCollidableAABox@l /* 800F0350 000ED2B0 C0 81 00 EC */ lfs f4, 0xec(r1) /* 800F0354 000ED2B4 C0 61 00 F0 */ lfs f3, 0xf0(r1) /* 800F0358 000ED2B8 3C 80 80 5A */ lis r4, sIdentity__12CTransform4f@ha @@ -3899,9 +3899,9 @@ lbl_800F01D8: /* 800F0390 000ED2F0 D0 21 01 50 */ stfs f1, 0x150(r1) /* 800F0394 000ED2F4 D0 01 01 54 */ stfs f0, 0x154(r1) /* 800F0398 000ED2F8 48 09 30 09 */ bl DetectStaticCollisionBoolean__14CGameCollisionFRC13CStateManagerRC19CCollisionPrimitiveRC12CTransform4fRC15CMaterialFilter -/* 800F039C 000ED2FC 3C 80 80 3F */ lis r4, lbl_803ECAD0@ha +/* 800F039C 000ED2FC 3C 80 80 3F */ lis r4, __vt__16CCollidableAABox@ha /* 800F03A0 000ED300 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 800F03A4 000ED304 38 84 CA D0 */ addi r4, r4, lbl_803ECAD0@l +/* 800F03A4 000ED304 38 84 CA D0 */ addi r4, r4, __vt__16CCollidableAABox@l /* 800F03A8 000ED308 3C 60 80 3E */ lis r3, __vt__19CCollisionPrimitive@ha /* 800F03AC 000ED30C 90 81 01 30 */ stw r4, 0x130(r1) /* 800F03B0 000ED310 38 63 97 E4 */ addi r3, r3, __vt__19CCollisionPrimitive@l @@ -6782,9 +6782,9 @@ lbl_800F2CD0: /* 800F2D10 000EFC70 B0 01 00 56 */ sth r0, 0x56(r1) /* 800F2D14 000EFC74 48 27 06 D9 */ bl __ct__6CColorFffff /* 800F2D18 000EFC78 89 01 00 54 */ lbz r8, 0x54(r1) -/* 800F2D1C 000EFC7C 3C 60 80 5A */ lis r3, lbl_805A65FC@ha +/* 800F2D1C 000EFC7C 3C 60 80 5A */ lis r3, sIdentity__9CMatrix3f@ha /* 800F2D20 000EFC80 88 E1 00 55 */ lbz r7, 0x55(r1) -/* 800F2D24 000EFC84 38 83 65 FC */ addi r4, r3, lbl_805A65FC@l +/* 800F2D24 000EFC84 38 83 65 FC */ addi r4, r3, sIdentity__9CMatrix3f@l /* 800F2D28 000EFC88 A0 C1 00 56 */ lhz r6, 0x56(r1) /* 800F2D2C 000EFC8C 38 61 01 34 */ addi r3, r1, 0x134 /* 800F2D30 000EFC90 80 01 00 58 */ lwz r0, 0x58(r1) diff --git a/asm/MetroidPrime/Player/CPlayer.s b/asm/MetroidPrime/Player/CPlayer.s index 96e69147..daddb5cf 100644 --- a/asm/MetroidPrime/Player/CPlayer.s +++ b/asm/MetroidPrime/Player/CPlayer.s @@ -4001,7 +4001,7 @@ lbl_80012B20: /* 80012C20 0000FB80 38 E4 66 A0 */ addi r7, r4, sZeroVector__9CVector3f@l /* 80012C24 0000FB84 C0 59 00 50 */ lfs f2, 0x50(r25) /* 80012C28 0000FB88 C0 39 00 40 */ lfs f1, 0x40(r25) -/* 80012C2C 0000FB8C 3C C0 80 3F */ lis r6, lbl_803ECAD0@ha +/* 80012C2C 0000FB8C 3C C0 80 3F */ lis r6, __vt__16CCollidableAABox@ha /* 80012C30 0000FB90 C0 07 00 00 */ lfs f0, 0(r7) /* 80012C34 0000FB94 3C A0 80 5A */ lis r5, sIdentity__12CTransform4f@ha /* 80012C38 0000FB98 3C 80 80 3E */ lis r4, __vt__19CCollisionPrimitive@ha @@ -4013,7 +4013,7 @@ lbl_80012B20: /* 80012C50 0000FBB0 C0 07 00 04 */ lfs f0, 4(r7) /* 80012C54 0000FBB4 D0 21 00 40 */ stfs f1, 0x40(r1) /* 80012C58 0000FBB8 7C 7A 1B 78 */ mr r26, r3 -/* 80012C5C 0000FBBC 3B 66 CA D0 */ addi r27, r6, lbl_803ECAD0@l +/* 80012C5C 0000FBBC 3B 66 CA D0 */ addi r27, r6, __vt__16CCollidableAABox@l /* 80012C60 0000FBC0 D0 1F 00 04 */ stfs f0, 4(r31) /* 80012C64 0000FBC4 3B 85 66 70 */ addi r28, r5, sIdentity__12CTransform4f@l /* 80012C68 0000FBC8 3B A4 97 E4 */ addi r29, r4, __vt__19CCollisionPrimitive@l @@ -4087,9 +4087,9 @@ lbl_80012C80: /* 80012D74 0000FCD4 48 17 18 A1 */ bl "DetectCollisionBoolean__14CGameCollisionFRC13CStateManagerRC19CCollisionPrimitiveRC12CTransform4fRC15CMaterialFilterRCQ24rstl32reserved_vector<9TUniqueId,1024>" /* 80012D78 0000FCD8 54 60 06 3F */ clrlwi. r0, r3, 0x18 /* 80012D7C 0000FCDC 40 82 00 78 */ bne lbl_80012DF4 -/* 80012D80 0000FCE0 3C 60 80 3F */ lis r3, lbl_803ECAD0@ha +/* 80012D80 0000FCE0 3C 60 80 3F */ lis r3, __vt__16CCollidableAABox@ha /* 80012D84 0000FCE4 80 A1 01 10 */ lwz r5, 0x110(r1) -/* 80012D88 0000FCE8 38 03 CA D0 */ addi r0, r3, lbl_803ECAD0@l +/* 80012D88 0000FCE8 38 03 CA D0 */ addi r0, r3, __vt__16CCollidableAABox@l /* 80012D8C 0000FCEC 3C 60 80 3E */ lis r3, __vt__19CCollisionPrimitive@ha /* 80012D90 0000FCF0 90 01 00 E8 */ stw r0, 0xe8(r1) /* 80012D94 0000FCF4 38 03 97 E4 */ addi r0, r3, __vt__19CCollisionPrimitive@l @@ -4178,8 +4178,8 @@ __dt__16CCollidableAABoxFv: /* 80012EAC 0000FE0C 93 E1 00 0C */ stw r31, 0xc(r1) /* 80012EB0 0000FE10 7C 7F 1B 79 */ or. r31, r3, r3 /* 80012EB4 0000FE14 41 82 00 30 */ beq lbl_80012EE4 -/* 80012EB8 0000FE18 3C 60 80 3F */ lis r3, lbl_803ECAD0@ha -/* 80012EBC 0000FE1C 38 03 CA D0 */ addi r0, r3, lbl_803ECAD0@l +/* 80012EB8 0000FE18 3C 60 80 3F */ lis r3, __vt__16CCollidableAABox@ha +/* 80012EBC 0000FE1C 38 03 CA D0 */ addi r0, r3, __vt__16CCollidableAABox@l /* 80012EC0 0000FE20 90 1F 00 00 */ stw r0, 0(r31) /* 80012EC4 0000FE24 41 82 00 10 */ beq lbl_80012ED4 /* 80012EC8 0000FE28 3C 60 80 3E */ lis r3, __vt__19CCollisionPrimitive@ha @@ -6495,9 +6495,9 @@ lbl_80014E9C: /* 80014F58 00011EB8 38 61 01 A8 */ addi r3, r1, 0x1a8 /* 80014F5C 00011EBC 48 2B A9 59 */ bl __ct__19CCollisionPrimitiveFRC13CMaterialList /* 80014F60 00011EC0 C0 A1 00 B8 */ lfs f5, 0xb8(r1) -/* 80014F64 00011EC4 3C 60 80 3F */ lis r3, lbl_803ECAD0@ha +/* 80014F64 00011EC4 3C 60 80 3F */ lis r3, __vt__16CCollidableAABox@ha /* 80014F68 00011EC8 C0 81 00 BC */ lfs f4, 0xbc(r1) -/* 80014F6C 00011ECC 38 03 CA D0 */ addi r0, r3, lbl_803ECAD0@l +/* 80014F6C 00011ECC 38 03 CA D0 */ addi r0, r3, __vt__16CCollidableAABox@l /* 80014F70 00011ED0 C0 61 00 C0 */ lfs f3, 0xc0(r1) /* 80014F74 00011ED4 7F A3 EB 78 */ mr r3, r29 /* 80014F78 00011ED8 C0 41 00 C4 */ lfs f2, 0xc4(r1) @@ -6680,9 +6680,9 @@ lbl_800151FC: /* 80015208 00012168 38 00 00 00 */ li r0, 0 /* 8001520C 0001216C 90 07 00 00 */ stw r0, 0(r7) lbl_80015210: -/* 80015210 00012170 3C 80 80 3F */ lis r4, lbl_803ECAD0@ha +/* 80015210 00012170 3C 80 80 3F */ lis r4, __vt__16CCollidableAABox@ha /* 80015214 00012174 3C 60 80 3E */ lis r3, __vt__19CCollisionPrimitive@ha -/* 80015218 00012178 38 04 CA D0 */ addi r0, r4, lbl_803ECAD0@l +/* 80015218 00012178 38 04 CA D0 */ addi r0, r4, __vt__16CCollidableAABox@l /* 8001521C 0001217C 90 01 01 A8 */ stw r0, 0x1a8(r1) /* 80015220 00012180 38 03 97 E4 */ addi r0, r3, __vt__19CCollisionPrimitive@l /* 80015224 00012184 90 01 01 A8 */ stw r0, 0x1a8(r1) diff --git a/asm/MetroidPrime/Player/CPlayerOrbit.s b/asm/MetroidPrime/Player/CPlayerOrbit.s index 49fa5bbb..f7493e77 100644 --- a/asm/MetroidPrime/Player/CPlayerOrbit.s +++ b/asm/MetroidPrime/Player/CPlayerOrbit.s @@ -1275,8 +1275,8 @@ ValidateFPPosition__7CPlayerF9CVector3fR13CStateManager: /* 8017A500 00177460 38 81 00 08 */ addi r4, r1, 8 /* 8017A504 00177464 48 15 53 B1 */ bl __ct__19CCollisionPrimitiveFRC13CMaterialList /* 8017A508 00177468 C0 A1 00 58 */ lfs f5, 0x58(r1) -/* 8017A50C 0017746C 3C 60 80 3F */ lis r3, lbl_803ECAD0@ha -/* 8017A510 00177470 38 03 CA D0 */ addi r0, r3, lbl_803ECAD0@l +/* 8017A50C 0017746C 3C 60 80 3F */ lis r3, __vt__16CCollidableAABox@ha +/* 8017A510 00177470 38 03 CA D0 */ addi r0, r3, __vt__16CCollidableAABox@l /* 8017A514 00177474 C0 81 00 5C */ lfs f4, 0x5c(r1) /* 8017A518 00177478 C0 61 00 60 */ lfs f3, 0x60(r1) /* 8017A51C 0017747C 3C 60 80 5A */ lis r3, sIdentity__12CTransform4f@ha @@ -1298,9 +1298,9 @@ ValidateFPPosition__7CPlayerF9CVector3fR13CStateManager: /* 8017A55C 001774BC 48 00 A0 B9 */ bl "DetectCollisionBoolean__14CGameCollisionFRC13CStateManagerRC19CCollisionPrimitiveRC12CTransform4fRC15CMaterialFilterRCQ24rstl32reserved_vector<9TUniqueId,1024>" /* 8017A560 001774C0 54 60 06 3F */ clrlwi. r0, r3, 0x18 /* 8017A564 001774C4 40 82 00 78 */ bne lbl_8017A5DC -/* 8017A568 001774C8 3C 60 80 3F */ lis r3, lbl_803ECAD0@ha +/* 8017A568 001774C8 3C 60 80 3F */ lis r3, __vt__16CCollidableAABox@ha /* 8017A56C 001774CC 80 A1 00 E0 */ lwz r5, 0xe0(r1) -/* 8017A570 001774D0 38 03 CA D0 */ addi r0, r3, lbl_803ECAD0@l +/* 8017A570 001774D0 38 03 CA D0 */ addi r0, r3, __vt__16CCollidableAABox@l /* 8017A574 001774D4 3C 60 80 3E */ lis r3, __vt__19CCollisionPrimitive@ha /* 8017A578 001774D8 90 01 00 B8 */ stw r0, 0xb8(r1) /* 8017A57C 001774DC 38 03 97 E4 */ addi r0, r3, __vt__19CCollisionPrimitive@l @@ -1332,9 +1332,9 @@ lbl_8017A5CC: /* 8017A5D4 00177534 90 01 00 E0 */ stw r0, 0xe0(r1) /* 8017A5D8 00177538 48 00 00 74 */ b lbl_8017A64C lbl_8017A5DC: -/* 8017A5DC 0017753C 3C 60 80 3F */ lis r3, lbl_803ECAD0@ha +/* 8017A5DC 0017753C 3C 60 80 3F */ lis r3, __vt__16CCollidableAABox@ha /* 8017A5E0 00177540 80 A1 00 E0 */ lwz r5, 0xe0(r1) -/* 8017A5E4 00177544 38 03 CA D0 */ addi r0, r3, lbl_803ECAD0@l +/* 8017A5E4 00177544 38 03 CA D0 */ addi r0, r3, __vt__16CCollidableAABox@l /* 8017A5E8 00177548 3C 60 80 3E */ lis r3, __vt__19CCollisionPrimitive@ha /* 8017A5EC 0017754C 90 01 00 B8 */ stw r0, 0xb8(r1) /* 8017A5F0 00177550 38 03 97 E4 */ addi r0, r3, __vt__19CCollisionPrimitive@l @@ -7452,4 +7452,3 @@ lbl_805ABFC0: lbl_805ABFC4: # ROM: 0x3F8864 .4byte 0x3F3504F3 - diff --git a/asm/MetroidPrime/Weapons/CFlameThrower.s b/asm/MetroidPrime/Weapons/CFlameThrower.s index 8ebae4c4..6a5ac3c2 100644 --- a/asm/MetroidPrime/Weapons/CFlameThrower.s +++ b/asm/MetroidPrime/Weapons/CFlameThrower.s @@ -414,9 +414,9 @@ lbl_80197A00: /* 80197A14 00194974 38 61 01 08 */ addi r3, r1, 0x108 /* 80197A18 00194978 38 94 00 68 */ addi r4, r20, 0x68 /* 80197A1C 0019497C 48 13 7E 99 */ bl __ct__19CCollisionPrimitiveFRC13CMaterialList -/* 80197A20 00194980 3C 60 80 3F */ lis r3, lbl_803ECAD0@ha +/* 80197A20 00194980 3C 60 80 3F */ lis r3, __vt__16CCollidableAABox@ha /* 80197A24 00194984 C0 C1 00 88 */ lfs f6, 0x88(r1) -/* 80197A28 00194988 39 03 CA D0 */ addi r8, r3, lbl_803ECAD0@l +/* 80197A28 00194988 39 03 CA D0 */ addi r8, r3, __vt__16CCollidableAABox@l /* 80197A2C 0019498C C0 A1 00 8C */ lfs f5, 0x8c(r1) /* 80197A30 00194990 91 01 01 08 */ stw r8, 0x108(r1) /* 80197A34 00194994 3C 60 80 3E */ lis r3, __vt__19CCollisionPrimitive@ha @@ -519,9 +519,9 @@ lbl_80197A00: /* 80197BB8 00194B18 98 E1 02 88 */ stb r7, 0x288(r1) /* 80197BBC 00194B1C D8 01 02 90 */ stfd f0, 0x290(r1) /* 80197BC0 00194B20 40 82 00 34 */ bne lbl_80197BF4 -/* 80197BC4 00194B24 3C 80 80 3F */ lis r4, lbl_803ECAD0@ha +/* 80197BC4 00194B24 3C 80 80 3F */ lis r4, __vt__16CCollidableAABox@ha /* 80197BC8 00194B28 3C 60 80 3E */ lis r3, __vt__19CCollisionPrimitive@ha -/* 80197BCC 00194B2C 38 84 CA D0 */ addi r4, r4, lbl_803ECAD0@l +/* 80197BCC 00194B2C 38 84 CA D0 */ addi r4, r4, __vt__16CCollidableAABox@l /* 80197BD0 00194B30 38 00 00 00 */ li r0, 0 /* 80197BD4 00194B34 90 81 01 98 */ stw r4, 0x198(r1) /* 80197BD8 00194B38 38 63 97 E4 */ addi r3, r3, __vt__19CCollisionPrimitive@l @@ -533,11 +533,11 @@ lbl_80197A00: /* 80197BF0 00194B50 48 00 00 DC */ b lbl_80197CCC lbl_80197BF4: /* 80197BF4 00194B54 D0 3E 00 00 */ stfs f1, 0(r30) -/* 80197BF8 00194B58 3C 80 80 3F */ lis r4, lbl_803ECAD0@ha +/* 80197BF8 00194B58 3C 80 80 3F */ lis r4, __vt__16CCollidableAABox@ha /* 80197BFC 00194B5C C0 01 02 6C */ lfs f0, 0x26c(r1) /* 80197C00 00194B60 3C 60 80 3E */ lis r3, __vt__19CCollisionPrimitive@ha /* 80197C04 00194B64 C0 21 02 70 */ lfs f1, 0x270(r1) -/* 80197C08 00194B68 38 84 CA D0 */ addi r4, r4, lbl_803ECAD0@l +/* 80197C08 00194B68 38 84 CA D0 */ addi r4, r4, __vt__16CCollidableAABox@l /* 80197C0C 00194B6C D0 1E 00 04 */ stfs f0, 4(r30) /* 80197C10 00194B70 28 17 00 00 */ cmplwi r23, 0 /* 80197C14 00194B74 C0 01 02 74 */ lfs f0, 0x274(r1) diff --git a/asm/MetroidPrime/Weapons/CNewFlameThrower.s b/asm/MetroidPrime/Weapons/CNewFlameThrower.s index b64aa4c9..bc5a7527 100644 --- a/asm/MetroidPrime/Weapons/CNewFlameThrower.s +++ b/asm/MetroidPrime/Weapons/CNewFlameThrower.s @@ -1317,13 +1317,13 @@ lbl_8026212C: /* 80262174 0025F0D4 90 A1 00 14 */ stw r5, 0x14(r1) /* 80262178 0025F0D8 48 06 D7 3D */ bl __ct__19CCollisionPrimitiveFRC13CMaterialList /* 8026217C 0025F0DC C0 A1 00 44 */ lfs f5, 0x44(r1) -/* 80262180 0025F0E0 3C 80 80 3F */ lis r4, lbl_803ECAD0@ha +/* 80262180 0025F0E0 3C 80 80 3F */ lis r4, __vt__16CCollidableAABox@ha /* 80262184 0025F0E4 C0 81 00 48 */ lfs f4, 0x48(r1) /* 80262188 0025F0E8 3C 60 80 5A */ lis r3, skPassEverything__15CMaterialFilter@ha /* 8026218C 0025F0EC 38 03 FD 18 */ addi r0, r3, skPassEverything__15CMaterialFilter@l /* 80262190 0025F0F0 C0 61 00 4C */ lfs f3, 0x4c(r1) /* 80262194 0025F0F4 C0 41 00 50 */ lfs f2, 0x50(r1) -/* 80262198 0025F0F8 38 C4 CA D0 */ addi r6, r4, lbl_803ECAD0@l +/* 80262198 0025F0F8 38 C4 CA D0 */ addi r6, r4, __vt__16CCollidableAABox@l /* 8026219C 0025F0FC C0 21 00 54 */ lfs f1, 0x54(r1) /* 802621A0 0025F100 38 A1 00 60 */ addi r5, r1, 0x60 /* 802621A4 0025F104 C0 01 00 58 */ lfs f0, 0x58(r1) @@ -1352,9 +1352,9 @@ lbl_8026212C: /* 80262200 0025F160 38 61 00 C0 */ addi r3, r1, 0xc0 /* 80262204 0025F164 38 81 00 88 */ addi r4, r1, 0x88 /* 80262208 0025F168 48 06 C5 A9 */ bl Collide__19CCollisionPrimitiveFRCQ227CInternalCollisionStructure9CPrimDescRCQ227CInternalCollisionStructure9CPrimDescR18CCollisionInfoList -/* 8026220C 0025F16C 3C 80 80 3F */ lis r4, lbl_803ECAD0@ha +/* 8026220C 0025F16C 3C 80 80 3F */ lis r4, __vt__16CCollidableAABox@ha /* 80262210 0025F170 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 80262214 0025F174 38 84 CA D0 */ addi r4, r4, lbl_803ECAD0@l +/* 80262214 0025F174 38 84 CA D0 */ addi r4, r4, __vt__16CCollidableAABox@l /* 80262218 0025F178 3C 60 80 3E */ lis r3, __vt__19CCollisionPrimitive@ha /* 8026221C 0025F17C 90 81 00 60 */ stw r4, 0x60(r1) /* 80262220 0025F180 38 63 97 E4 */ addi r3, r3, __vt__19CCollisionPrimitive@l diff --git a/asm/MetroidPrime/Weapons/CWaveBuster.s b/asm/MetroidPrime/Weapons/CWaveBuster.s index cdfdbae9..be9d1c26 100644 --- a/asm/MetroidPrime/Weapons/CWaveBuster.s +++ b/asm/MetroidPrime/Weapons/CWaveBuster.s @@ -558,9 +558,9 @@ lbl_801BDD98: /* 801BDD98 001BACF8 38 61 01 38 */ addi r3, r1, 0x138 /* 801BDD9C 001BACFC 38 93 00 68 */ addi r4, r19, 0x68 /* 801BDDA0 001BAD00 48 11 1B 15 */ bl __ct__19CCollisionPrimitiveFRC13CMaterialList -/* 801BDDA4 001BAD04 3C 60 80 3F */ lis r3, lbl_803ECAD0@ha +/* 801BDDA4 001BAD04 3C 60 80 3F */ lis r3, __vt__16CCollidableAABox@ha /* 801BDDA8 001BAD08 C0 C1 00 D0 */ lfs f6, 0xd0(r1) -/* 801BDDAC 001BAD0C 39 03 CA D0 */ addi r8, r3, lbl_803ECAD0@l +/* 801BDDAC 001BAD0C 39 03 CA D0 */ addi r8, r3, __vt__16CCollidableAABox@l /* 801BDDB0 001BAD10 C0 A1 00 D4 */ lfs f5, 0xd4(r1) /* 801BDDB4 001BAD14 91 01 01 38 */ stw r8, 0x138(r1) /* 801BDDB8 001BAD18 3C 60 80 3E */ lis r3, __vt__19CCollisionPrimitive@ha @@ -642,9 +642,9 @@ lbl_801BDD98: /* 801BDEE8 001BAE48 90 61 01 EC */ stw r3, 0x1ec(r1) /* 801BDEEC 001BAE4C 90 01 01 E8 */ stw r0, 0x1e8(r1) /* 801BDEF0 001BAE50 40 82 00 28 */ bne lbl_801BDF18 -/* 801BDEF4 001BAE54 3C 80 80 3F */ lis r4, lbl_803ECAD0@ha +/* 801BDEF4 001BAE54 3C 80 80 3F */ lis r4, __vt__16CCollidableAABox@ha /* 801BDEF8 001BAE58 3C 60 80 3E */ lis r3, __vt__19CCollisionPrimitive@ha -/* 801BDEFC 001BAE5C 38 84 CA D0 */ addi r4, r4, lbl_803ECAD0@l +/* 801BDEFC 001BAE5C 38 84 CA D0 */ addi r4, r4, __vt__16CCollidableAABox@l /* 801BDF00 001BAE60 38 00 00 00 */ li r0, 0 /* 801BDF04 001BAE64 90 81 01 F0 */ stw r4, 0x1f0(r1) /* 801BDF08 001BAE68 38 63 97 E4 */ addi r3, r3, __vt__19CCollisionPrimitive@l @@ -672,9 +672,9 @@ lbl_801BDF18: /* 801BDF5C 001BAEBC A0 13 00 08 */ lhz r0, 8(r19) /* 801BDF60 001BAEC0 B0 1B 00 00 */ sth r0, 0(r27) lbl_801BDF64: -/* 801BDF64 001BAEC4 3C 80 80 3F */ lis r4, lbl_803ECAD0@ha +/* 801BDF64 001BAEC4 3C 80 80 3F */ lis r4, __vt__16CCollidableAABox@ha /* 801BDF68 001BAEC8 3C 60 80 3E */ lis r3, __vt__19CCollisionPrimitive@ha -/* 801BDF6C 001BAECC 38 84 CA D0 */ addi r4, r4, lbl_803ECAD0@l +/* 801BDF6C 001BAECC 38 84 CA D0 */ addi r4, r4, __vt__16CCollidableAABox@l /* 801BDF70 001BAED0 38 00 00 00 */ li r0, 0 /* 801BDF74 001BAED4 90 81 01 F0 */ stw r4, 0x1f0(r1) /* 801BDF78 001BAED8 38 63 97 E4 */ addi r3, r3, __vt__19CCollisionPrimitive@l diff --git a/include/Collision/CCollidableAABox.hpp b/include/Collision/CCollidableAABox.hpp index a78eca63..c5cdf0bc 100644 --- a/include/Collision/CCollidableAABox.hpp +++ b/include/Collision/CCollidableAABox.hpp @@ -7,13 +7,16 @@ class CCollidableAABox : public CCollisionPrimitive { public: + CCollidableAABox(); + CCollidableAABox(const CAABox& box, const CMaterialList& matList) + : CCollisionPrimitive(matList), x10_aabb(box) {} // TODO u32 GetTableIndex() const override; CAABox CalculateAABox(const CTransform4f&) const override; CAABox CalculateLocalAABox() const override; FourCC GetPrimType() const override; - ~CCollidableAABox() override; + ~CCollidableAABox() override {}; CRayCastResult CastRayInternal(const CInternalRayCastStructure&) const; private: diff --git a/include/Kyoto/Math/CMatrix3f.hpp b/include/Kyoto/Math/CMatrix3f.hpp index f0d826a4..d618a1b1 100644 --- a/include/Kyoto/Math/CMatrix3f.hpp +++ b/include/Kyoto/Math/CMatrix3f.hpp @@ -6,9 +6,11 @@ #include "Kyoto/Math/CVector3f.hpp" class CMatrix3f { + static const CMatrix3f sIdentity; public: - // TODO + CMatrix3f(const CMatrix3f&); + static CMatrix3f Identity() { return sIdentity; } private: // TODO maybe individual f32s CVector3f m0; diff --git a/include/Kyoto/Math/CNUQuaternion.hpp b/include/Kyoto/Math/CNUQuaternion.hpp index 47014643..d2a7db1c 100644 --- a/include/Kyoto/Math/CNUQuaternion.hpp +++ b/include/Kyoto/Math/CNUQuaternion.hpp @@ -3,10 +3,12 @@ #include "types.h" +class CMatrix3f; class CNUQuaternion { public: CNUQuaternion(f32 w, f32 x, f32 y, f32 z) : w(w), x(x), y(y), z(z) {} + static CNUQuaternion BuildFromMatrix3f(const CMatrix3f& matrix); private: f32 w; f32 x; diff --git a/include/Kyoto/Math/CVector3f.hpp b/include/Kyoto/Math/CVector3f.hpp index 2cacef95..324702ab 100644 --- a/include/Kyoto/Math/CVector3f.hpp +++ b/include/Kyoto/Math/CVector3f.hpp @@ -100,7 +100,7 @@ public: static const CVector3f& Forward() { return sForwardVector; } static const CVector3f& Back() { return sBackVector; } -private: +protected: f32 mX; f32 mY; f32 mZ; diff --git a/include/Kyoto/Streams/CInputStream.hpp b/include/Kyoto/Streams/CInputStream.hpp index a47fe9b4..9be189c9 100644 --- a/include/Kyoto/Streams/CInputStream.hpp +++ b/include/Kyoto/Streams/CInputStream.hpp @@ -31,6 +31,10 @@ public: return cinput_stream_helper(type, *this); } + bool ReadPackedBool() { + return ReadBits(1) != 0; + } + private: bool GrabAnotherBlock(); bool InternalReadNext(); diff --git a/include/MetroidPrime/CAxisAngle.hpp b/include/MetroidPrime/CAxisAngle.hpp index 2e5def74..8ce3ec8a 100644 --- a/include/MetroidPrime/CAxisAngle.hpp +++ b/include/MetroidPrime/CAxisAngle.hpp @@ -3,18 +3,31 @@ #include "types.h" +#include #include "Kyoto/Math/CVector3f.hpp" -class CAxisAngle : CVector3f { +class CAxisAngle : protected CVector3f { public: CAxisAngle(f32 x, f32 y, f32 z) : CVector3f(x, y, z) {} - CAxisAngle(const CAxisAngle& other) : CVector3f(other) {} + //CAxisAngle(const CAxisAngle& other) : CVector3f(other) {} static const CAxisAngle& Identity(); const CVector3f& GetVector() const; - +/* + CAxisAngle& operator=(const CAxisAngle& other) { + int otherX = __HI(other.mX); + __HI(mX) = otherX; + int otherY = __HI(other.mY); + __HI(mY) = otherY; + int otherZ = __HI(other.mZ); + __HI(mZ) = otherZ; + return *this; + } + */ }; + +CAxisAngle operator+(const CAxisAngle& lhs, const CAxisAngle& rhs); CHECK_SIZEOF(CAxisAngle, 0xc) #endif diff --git a/include/MetroidPrime/CPhysicsActor.hpp b/include/MetroidPrime/CPhysicsActor.hpp index ac6d5338..e8fdcd54 100644 --- a/include/MetroidPrime/CPhysicsActor.hpp +++ b/include/MetroidPrime/CPhysicsActor.hpp @@ -33,7 +33,12 @@ struct SMoverData { class CMotionState { public: - // TODO + CMotionState(const CVector3f& translation, const CNUQuaternion& orientation, + const CVector3f& velocity, const CAxisAngle& angularMomentum) + : x0_translation(translation) + , xc_orientation(orientation) + , x1c_velocity(velocity) + , x28_angularMomentum(angularMomentum) {} private: CVector3f x0_translation; @@ -64,13 +69,19 @@ public: virtual f32 GetStepDownHeight() const; virtual f32 GetStepUpHeight() const; virtual f32 GetWeight() const; + void SetMass(float mass); CAABox GetBoundingBox() const; + + void ApplyImpulseWR(const CVector3f& impulse, const CAxisAngle& angularImpulse); void MoveCollisionPrimitive(const CVector3f&); void SetVelocityWR(const CVector3f&); void SetAngularVelocityWR(const CAxisAngle& angVel); + void SetVelocityOR(const CVector3f& vel); CAxisAngle GetAngularVelocityOR() const; + void SetAngularVelocityOR(const CAxisAngle& angleVel); void ClearForcesAndTorques(); + void ComputeDerivedQuantities(); void Stop(); CMotionState GetMotionState() const; @@ -111,6 +122,7 @@ private: f32 x248_collisionAccuracyModifier; uint x24c_numTicksStuck; uint x250_numTicksPartialUpdate; + uint x254_; }; CHECK_SIZEOF(CPhysicsActor, 0x258) diff --git a/libc/math.h b/libc/math.h index b6165165..c4717d87 100644 --- a/libc/math.h +++ b/libc/math.h @@ -154,23 +154,22 @@ static inline int __fpclassifyd(double x) { #define isinf(x) (fpclassify(x) == FP_INFINITE) #define isfinite(x) ((fpclassify(x) > FP_INFINITE)) -static inline float sqrtf(float x) { - static const double _half = .5; - static const double _three = 3.0; +inline float sqrtf(float x) +{ + const double _half=.5; + const double _three=3.0; + volatile float y; - if (x > 0.0f) { - double xd = (double)x; - double guess = __frsqrte(xd); /* returns an approximation to */ - guess = _half * guess * (_three - guess * guess * xd); /* now have 12 sig bits */ - guess = _half * guess * (_three - guess * guess * xd); /* now have 24 sig bits */ - guess = _half * guess * (_three - guess * guess * xd); /* now have 32 sig bits */ - return (float)(xd * guess); - } else if (x < 0.0) - return NAN; - else if (isnan(x)) - return NAN; - else - return x; + if(x > 0.0f) + { + double guess = __frsqrte((double)x); /* returns an approximation to */ + guess = _half*guess*(_three - guess*guess*x); /* now have 12 sig bits */ + guess = _half*guess*(_three - guess*guess*x); /* now have 24 sig bits */ + guess = _half*guess*(_three - guess*guess*x); /* now have 32 sig bits */ + y=(float)(x*guess); + return y ; + } + return x ; } static inline double sqrt(double x) { diff --git a/obj_files.mk b/obj_files.mk index 6fcf2a12..3c0cc969 100644 --- a/obj_files.mk +++ b/obj_files.mk @@ -712,7 +712,7 @@ VI_FILES :=\ $(BUILD_DIR)/asm/Dolphin/vi.o MSL_PPCEABI_BARE_H :=\ - $(BUILD_DIR)/asm/Runtime/__mem.o\ + $(BUILD_DIR)/src/Runtime/__mem.o\ $(BUILD_DIR)/asm/Runtime/__va_arg.o\ $(BUILD_DIR)/asm/Runtime/global_destructor_chain.o\ $(BUILD_DIR)/asm/Runtime/CPlusLibPPC.o\ @@ -796,7 +796,7 @@ MUSYX_FILES :=\ $(BUILD_DIR)/asm/musyx/hw_volconv.o\ $(BUILD_DIR)/asm/musyx/snd3d.o\ $(BUILD_DIR)/src/musyx/snd_init.o\ - $(BUILD_DIR)/asm/musyx/snd_math.o\ + $(BUILD_DIR)/src/musyx/snd_math.o\ $(BUILD_DIR)/asm/musyx/snd_midictrl.o\ $(BUILD_DIR)/src/musyx/snd_service.o\ $(BUILD_DIR)/asm/musyx/hardware.o\ diff --git a/src/MetroidPrime/CPhysicsActor.cpp b/src/MetroidPrime/CPhysicsActor.cpp new file mode 100644 index 00000000..58c70a62 --- /dev/null +++ b/src/MetroidPrime/CPhysicsActor.cpp @@ -0,0 +1,52 @@ +#include "MetroidPrime/CPhysicsActor.hpp" + +CPhysicsActor::CPhysicsActor(TUniqueId uid, bool active, const rstl::string& name, + const CEntityInfo& info, const CTransform4f& xf, + const CModelData& mData, const CMaterialList& matList, + const CAABox& aabb, const SMoverData& moverData, + const CActorParameters& actParams, f32 stepUp, f32 stepDown) +: CActor(uid, active, name, info, xf, mData, matList, actParams, kInvalidUniqueId) +, xe8_mass(moverData.x30_mass) +, xec_massRecip(moverData.x30_mass > 0.f ? 1.f / moverData.x30_mass : 1.f) +, xf8_24_movable(true) +, xf8_25_angularEnabled(false) +, xf9_standardCollider(false) +, xfc_constantForce(CVector3f::Zero()) +, x108_angularMomentum(CAxisAngle::Identity()) +, x114_(CMatrix3f::Identity()) +, x138_velocity(CVector3f::Zero()) +, x144_angularVelocity(CAxisAngle::Identity()) +, x150_momentum(moverData.x18_momentum) +, x15c_force(CVector3f::Zero()) +, x168_impulse(CVector3f::Zero()) +, x174_torque(CAxisAngle::Identity()) +, x180_angularImpulse(CAxisAngle::Identity()) +, x18c_moveImpulse(CVector3f::Zero()) +, x198_moveAngularImpulse(CAxisAngle::Identity()) +, x1a4_baseBoundingBox(aabb) +, x1c0_collisionPrimitive(aabb, matList) +, x1e8_primitiveOffset(CVector3f::Zero()) +, x1f4_lastNonCollidingState(xf.GetTranslation(), + CNUQuaternion::BuildFromMatrix3f(xf.BuildMatrix3f()), + CVector3f::Zero(), CAxisAngle::Identity()) +, x238_maximumCollisionVelocity(1000000.0) +, x23c_stepUpHeight(stepUp) +, x240_stepDownHeight(stepDown) +, x244_restitutionCoefModifier(0.f) +, x248_collisionAccuracyModifier(1.f) +, x24c_numTicksStuck(0) +, x250_numTicksPartialUpdate(0) { + SetMass(moverData.x30_mass); + MoveCollisionPrimitive(CVector3f::Zero()); + SetVelocityOR(moverData.x0_velocity); + SetAngularVelocityOR(moverData.xc_angularVelocity); + ComputeDerivedQuantities(); +} + + +CPhysicsActor::~CPhysicsActor() {} + +void CPhysicsActor::ApplyImpulseWR(const CVector3f& impulse, const CAxisAngle& angularImpulse) { + x168_impulse = x168_impulse + impulse; + x180_angularImpulse = x180_angularImpulse + angularImpulse; +} diff --git a/src/MetroidPrime/Player/CPlayerState.cpp b/src/MetroidPrime/Player/CPlayerState.cpp index 787466a2..391db105 100644 --- a/src/MetroidPrime/Player/CPlayerState.cpp +++ b/src/MetroidPrime/Player/CPlayerState.cpp @@ -105,8 +105,8 @@ CPlayerState::CPlayerState(CInputStream& stream) amount = stream.ReadBits(bitCount); capacity = stream.ReadBits(bitCount); } - - x24_powerups.push_back(CPowerUp(amount, capacity)); + CPowerUp pw(amount, capacity); + x24_powerups.push_back(pw); } // Scan @@ -114,7 +114,7 @@ CPlayerState::CPlayerState(CInputStream& stream) x170_scanTimes.reserve(scanStates.size()); for (rstl::vector< CMemoryCard::ScanState >::const_iterator it = scanStates.begin(); it != scanStates.end(); ++it) { - float time = stream.ReadBits(1) ? 1.f : 0.f; + float time = stream.ReadPackedBool() ? 1.f : 0.f; x170_scanTimes.push_back(rstl::pair< CAssetId, float >(it->first, time)); } diff --git a/src/Runtime/e_exp.c b/src/Runtime/e_exp.c index 97b396df..96b6c41d 100644 --- a/src/Runtime/e_exp.c +++ b/src/Runtime/e_exp.c @@ -1,15 +1,13 @@ -/* @(#)e_exp.c 1.2 95/01/04 */ +/* @(#)e_exp.c 1.6 04/04/22 */ /* * ==================================================== - * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * Copyright (C) 2004 by Sun Microsystems, Inc. All rights reserved. * - * Developed at SunPro, a Sun Microsystems, Inc. business. * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice + * software is freely granted, provided that this notice * is preserved. * ==================================================== */ - /* __ieee754_exp(x) * Returns the exponential of x. * @@ -18,154 +16,131 @@ * Reduce x to an r so that |r| <= 0.5*ln2 ~ 0.34658. * Given x, find r and integer k such that * - * x = k*ln2 + r, |r| <= 0.5*ln2. + * x = k*ln2 + r, |r| <= 0.5*ln2. * - * Here r will be represented as r = hi-lo for better + * Here r will be represented as r = hi-lo for better * accuracy. * - * 2. Approximation of exp(r) by a special rational function on + * 2. Approximation of ieee_exp(r) by a special rational function on * the interval [0,0.34658]: * Write - * R(r**2) = r*(exp(r)+1)/(exp(r)-1) = 2 + r*r/6 - r**4/360 + ... - * We use a special Reme algorithm on [0,0.34658] to generate - * a polynomial of degree 5 to approximate R. The maximum error + * R(r**2) = r*(ieee_exp(r)+1)/(ieee_exp(r)-1) = 2 + r*r/6 - r**4/360 + ... + * We use a special Remes algorithm on [0,0.34658] to generate + * a polynomial of degree 5 to approximate R. The maximum error * of this polynomial approximation is bounded by 2**-59. In * other words, * R(z) ~ 2.0 + P1*z + P2*z**2 + P3*z**3 + P4*z**4 + P5*z**5 * (where z=r*r, and the values of P1 to P5 are listed below) * and * | 5 | -59 - * | 2.0+P1*z+...+P5*z - R(z) | <= 2 + * | 2.0+P1*z+...+P5*z - R(z) | <= 2 * | | - * The computation of exp(r) thus becomes + * The computation of ieee_exp(r) thus becomes * 2*r * exp(r) = 1 + ------- * R - r - * r*R1(r) + * r*R1(r) * = 1 + r + ----------- (for better accuracy) * 2 - R1(r) * where * 2 4 10 * R1(r) = r - (P1*r + P2*r + ... + P5*r ). - * - * 3. Scale back to obtain exp(x): + * + * 3. Scale back to obtain ieee_exp(x): * From step 1, we have - * exp(x) = 2^k * exp(r) + * ieee_exp(x) = 2^k * ieee_exp(r) * * Special cases: - * exp(INF) is INF, exp(NaN) is NaN; + * exp(INF) is INF, ieee_exp(NaN) is NaN; * exp(-INF) is 0, and - * for finite argument, only exp(0)=1 is exact. + * for finite argument, only ieee_exp(0)=1 is exact. * * Accuracy: * according to an error analysis, the error is always less than * 1 ulp (unit in the last place). * * Misc. info. - * For IEEE double - * if x > 7.09782712893383973096e+02 then exp(x) overflow - * if x < -7.45133219101941108420e+02 then exp(x) underflow + * For IEEE double + * if x > 7.09782712893383973096e+02 then ieee_exp(x) overflow + * if x < -7.45133219101941108420e+02 then ieee_exp(x) underflow * * Constants: - * The hexadecimal values are the intended ones for the following - * constants. The decimal values may be used, provided that the + * The hexadecimal values are the intended ones for the following + * constants. The decimal values may be used, provided that the * compiler will convert from decimal to binary accurately enough * to produce the hexadecimal values shown. */ - #include "fdlibm.h" - #ifdef __STDC__ static const double #else static double #endif - one = 1.0, - halF[2] = - { - 0.5, - -0.5, -}, - big = 1.0e+300, twom1000 = 9.33263618503218878990e-302, /* 2**-1000=0x01700000,0*/ - o_threshold = 7.09782712893383973096e+02, /* 0x40862E42, 0xFEFA39EF */ - u_threshold = -7.45133219101941108420e+02, /* 0xc0874910, 0xD52D3051 */ - ln2HI[2] = - { - 6.93147180369123816490e-01, /* 0x3fe62e42, 0xfee00000 */ - -6.93147180369123816490e-01, -}, /* 0xbfe62e42, 0xfee00000 */ - ln2LO[2] = - { - 1.90821492927058770002e-10, /* 0x3dea39ef, 0x35793c76 */ - -1.90821492927058770002e-10, -}, /* 0xbdea39ef, 0x35793c76 */ - invln2 = 1.44269504088896338700e+00, /* 0x3ff71547, 0x652b82fe */ - P1 = 1.66666666666666019037e-01, /* 0x3FC55555, 0x5555553E */ - P2 = -2.77777777770155933842e-03, /* 0xBF66C16C, 0x16BEBD93 */ - P3 = 6.61375632143793436117e-05, /* 0x3F11566A, 0xAF25DE2C */ - P4 = -1.65339022054652515390e-06, /* 0xBEBBBD41, 0xC5D26BF1 */ - P5 = 4.13813679705723846039e-08; /* 0x3E663769, 0x72BEA4D0 */ - +one = 1.0, +halF[2] = {0.5,-0.5,}, +huge = 1.0e+300, +twom1000= 9.33263618503218878990e-302, /* 2**-1000=0x01700000,0*/ +o_threshold= 7.09782712893383973096e+02, /* 0x40862E42, 0xFEFA39EF */ +u_threshold= -7.45133219101941108420e+02, /* 0xc0874910, 0xD52D3051 */ +ln2HI[2] ={ 6.93147180369123816490e-01, /* 0x3fe62e42, 0xfee00000 */ + -6.93147180369123816490e-01,},/* 0xbfe62e42, 0xfee00000 */ +ln2LO[2] ={ 1.90821492927058770002e-10, /* 0x3dea39ef, 0x35793c76 */ + -1.90821492927058770002e-10,},/* 0xbdea39ef, 0x35793c76 */ +invln2 = 1.44269504088896338700e+00, /* 0x3ff71547, 0x652b82fe */ +P1 = 1.66666666666666019037e-01, /* 0x3FC55555, 0x5555553E */ +P2 = -2.77777777770155933842e-03, /* 0xBF66C16C, 0x16BEBD93 */ +P3 = 6.61375632143793436117e-05, /* 0x3F11566A, 0xAF25DE2C */ +P4 = -1.65339022054652515390e-06, /* 0xBEBBBD41, 0xC5D26BF1 */ +P5 = 4.13813679705723846039e-08; /* 0x3E663769, 0x72BEA4D0 */ #ifdef __STDC__ -double __ieee754_exp(double x) /* default IEEE double exp */ + double __ieee754_exp(double x) /* default IEEE double exp */ #else -double __ieee754_exp(x) /* default IEEE double exp */ -double x; + double __ieee754_exp(x) /* default IEEE double exp */ + double x; #endif { - double y, hi, lo, c, t; - _INT32 k, xsb; - _UINT32 hx; - - hx = __HI(x); /* high word of x */ - xsb = (hx >> 31) & 1; /* sign bit of x */ - hx &= 0x7fffffff; /* high word of |x| */ - - /* filter out non-finite argument */ - if (hx >= 0x40862E42) { /* if |x|>=709.78... */ - if (hx >= 0x7ff00000) { - if (((hx & 0xfffff) | __LO(x)) != 0) - return x + x; /* NaN */ - else - return (xsb == 0) ? x : 0.0; /* exp(+-inf)={inf,0} */ - } - if (x > o_threshold) - return big * big; /* overflow */ - if (x < u_threshold) - return twom1000 * twom1000; /* underflow */ - } - - /* argument reduction */ - if (hx > 0x3fd62e42) { /* if |x| > 0.5 ln2 */ - if (hx < 0x3FF0A2B2) { /* and |x| < 1.5 ln2 */ - hi = x - ln2HI[xsb]; - lo = ln2LO[xsb]; - k = 1 - xsb - xsb; - } else { - k = invln2 * x + halF[xsb]; - t = k; - hi = x - t * ln2HI[0]; /* t*ln2HI is exact here */ - lo = t * ln2LO[0]; - } - x = hi - lo; - } else if (hx < 0x3e300000) { /* when |x|<2**-28 */ - if (big + x > one) - return one + x; /* trigger inexact */ - } else - k = 0; - - /* x is now in primary range */ - t = x * x; - c = x - t * (P1 + t * (P2 + t * (P3 + t * (P4 + t * P5)))); - if (k == 0) - return one - ((x * c) / (c - 2.0) - x); - else - y = one - ((lo - (x * c) / (2.0 - c)) - hi); - if (k >= -1021) { - __HI(y) += (k << 20); /* add k to y's exponent */ - return y; - } else { - __HI(y) += ((k + 1000) << 20); /* add k to y's exponent */ - return y * twom1000; - } + double y,hi,lo,c,t; + int k,xsb; + unsigned hx; + hx = __HI(x); /* high word of x */ + xsb = (hx>>31)&1; /* sign bit of x */ + hx &= 0x7fffffff; /* high word of |x| */ + /* filter out non-finite argument */ + if(hx >= 0x40862E42) { /* if |x|>=709.78... */ + if(hx>=0x7ff00000) { + if(((hx&0xfffff)|__LO(x))!=0) + return x+x; /* NaN */ + else return (xsb==0)? x:0.0; /* ieee_exp(+-inf)={inf,0} */ + } + if(x > o_threshold) return huge*huge; /* overflow */ + if(x < u_threshold) return twom1000*twom1000; /* underflow */ + } + /* argument reduction */ + if(hx > 0x3fd62e42) { /* if |x| > 0.5 ln2 */ + if(hx < 0x3FF0A2B2) { /* and |x| < 1.5 ln2 */ + hi = x-ln2HI[xsb]; lo=ln2LO[xsb]; k = 1-xsb-xsb; + } else { + k = (int)(invln2*x+halF[xsb]); + t = k; + hi = x - t*ln2HI[0]; /* t*ln2HI is exact here */ + lo = t*ln2LO[0]; + } + x = hi - lo; + } + else if(hx < 0x3e300000) { /* when |x|<2**-28 */ + if(huge+x>one) return one+x;/* trigger inexact */ + } + else k = 0; + /* x is now in primary range */ + t = x*x; + c = x - t*(P1+t*(P2+t*(P3+t*(P4+t*P5)))); + if(k==0) return one-((x*c)/(c-2.0)-x); + else y = one-((lo-(x*c)/(2.0-c))-hi); + if(k >= -1021) { + __HI(y) += (k<<20); /* add k to y's exponent */ + return y; + } else { + __HI(y) += ((k+1000)<<20);/* add k to y's exponent */ + return y*twom1000; + } } diff --git a/src/musyx/snd_math.c b/src/musyx/snd_math.c index fbb54a7a..bbdf022c 100644 --- a/src/musyx/snd_math.c +++ b/src/musyx/snd_math.c @@ -1,4 +1,4 @@ -#include "math_ppc.h" +#include "math.h" #include "musyx/musyx_priv.h" void salApplyMatrix(const SND_FMATRIX* a, const SND_FVECTOR* b, SND_FVECTOR* out) { @@ -21,4 +21,6 @@ void salCrossProduct(SND_FVECTOR* out, const SND_FVECTOR* a, const SND_FVECTOR* out->z = (a->x * b->y) - (a->y * b->x); } -void salInvertMatrix(SND_FMATRIX* out, const SND_FMATRIX* in) {} +void salInvertMatrix(SND_FMATRIX* out, const SND_FMATRIX* in) { + out->t[0] = 1.f; +}