diff --git a/asm/JSystem/J2DGraph/J2DGrafContext/setLineWidth__14J2DGrafContextFUc.s b/asm/JSystem/J2DGraph/J2DGrafContext/setLineWidth__14J2DGrafContextFUc.s deleted file mode 100644 index 97e0212b0c..0000000000 --- a/asm/JSystem/J2DGraph/J2DGrafContext/setLineWidth__14J2DGrafContextFUc.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_802E9234: -/* 802E9234 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802E9238 7C 08 02 A6 */ mflr r0 -/* 802E923C 90 01 00 14 */ stw r0, 0x14(r1) -/* 802E9240 98 83 00 34 */ stb r4, 0x34(r3) -/* 802E9244 88 63 00 34 */ lbz r3, 0x34(r3) -/* 802E9248 38 80 00 00 */ li r4, 0 -/* 802E924C 48 07 36 71 */ bl GXSetLineWidth -/* 802E9250 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802E9254 7C 08 03 A6 */ mtlr r0 -/* 802E9258 38 21 00 10 */ addi r1, r1, 0x10 -/* 802E925C 4E 80 00 20 */ blr diff --git a/asm/JSystem/J2DGraph/J2DTevs/calc__9J2DTexMtxFv.s b/asm/JSystem/J2DGraph/J2DTevs/calc__9J2DTexMtxFv.s deleted file mode 100644 index 56d06e1460..0000000000 --- a/asm/JSystem/J2DGraph/J2DTevs/calc__9J2DTexMtxFv.s +++ /dev/null @@ -1,29 +0,0 @@ -lbl_802E9CC4: -/* 802E9CC4 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802E9CC8 7C 08 02 A6 */ mflr r0 -/* 802E9CCC 90 01 00 24 */ stw r0, 0x24(r1) -/* 802E9CD0 88 03 00 01 */ lbz r0, 1(r3) -/* 802E9CD4 28 00 00 00 */ cmplwi r0, 0 -/* 802E9CD8 40 82 00 30 */ bne lbl_802E9D08 -/* 802E9CDC 80 83 00 04 */ lwz r4, 4(r3) -/* 802E9CE0 80 03 00 08 */ lwz r0, 8(r3) -/* 802E9CE4 90 81 00 08 */ stw r4, 8(r1) -/* 802E9CE8 90 01 00 0C */ stw r0, 0xc(r1) -/* 802E9CEC 80 03 00 0C */ lwz r0, 0xc(r3) -/* 802E9CF0 90 01 00 10 */ stw r0, 0x10(r1) -/* 802E9CF4 38 83 00 10 */ addi r4, r3, 0x10 -/* 802E9CF8 38 A1 00 08 */ addi r5, r1, 8 -/* 802E9CFC 38 C3 00 24 */ addi r6, r3, 0x24 -/* 802E9D00 48 00 00 2D */ bl getTextureMtx__9J2DTexMtxFRC17J2DTextureSRTInfo3VecPA4_f -/* 802E9D04 48 00 00 18 */ b lbl_802E9D1C -lbl_802E9D08: -/* 802E9D08 28 00 00 01 */ cmplwi r0, 1 -/* 802E9D0C 40 82 00 10 */ bne lbl_802E9D1C -/* 802E9D10 38 83 00 10 */ addi r4, r3, 0x10 -/* 802E9D14 38 A3 00 24 */ addi r5, r3, 0x24 -/* 802E9D18 48 00 01 A5 */ bl getTextureMtxMaya__9J2DTexMtxFRC17J2DTextureSRTInfoPA4_f -lbl_802E9D1C: -/* 802E9D1C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802E9D20 7C 08 03 A6 */ mtlr r0 -/* 802E9D24 38 21 00 20 */ addi r1, r1, 0x20 -/* 802E9D28 4E 80 00 20 */ blr diff --git a/asm/JSystem/J2DGraph/J2DTevs/getFontNo__11J2DTevBlockCFv.s b/asm/JSystem/J2DGraph/J2DTevs/getFontNo__11J2DTevBlockCFv.s deleted file mode 100644 index 6c456d95a0..0000000000 --- a/asm/JSystem/J2DGraph/J2DTevs/getFontNo__11J2DTevBlockCFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_802EA164: -/* 802EA164 3C 60 00 01 */ lis r3, 0x0001 /* 0x0000FFFF@ha */ -/* 802EA168 38 63 FF FF */ addi r3, r3, 0xFFFF /* 0x0000FFFF@l */ -/* 802EA16C 4E 80 00 20 */ blr diff --git a/asm/JSystem/J2DGraph/J2DTevs/getTexNo__11J2DTevBlockCFUl.s b/asm/JSystem/J2DGraph/J2DTevs/getTexNo__11J2DTevBlockCFUl.s deleted file mode 100644 index 19ea37fd16..0000000000 --- a/asm/JSystem/J2DGraph/J2DTevs/getTexNo__11J2DTevBlockCFUl.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_802EA170: -/* 802EA170 3C 60 00 01 */ lis r3, 0x0001 /* 0x0000FFFF@ha */ -/* 802EA174 38 63 FF FF */ addi r3, r3, 0xFFFF /* 0x0000FFFF@l */ -/* 802EA178 4E 80 00 20 */ blr diff --git a/asm/JSystem/J2DGraph/J2DTevs/load__12J2DIndTexMtxFUc.s b/asm/JSystem/J2DGraph/J2DTevs/load__12J2DIndTexMtxFUc.s deleted file mode 100644 index 8ffde0708c..0000000000 --- a/asm/JSystem/J2DGraph/J2DTevs/load__12J2DIndTexMtxFUc.s +++ /dev/null @@ -1,14 +0,0 @@ -lbl_802EA098: -/* 802EA098 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802EA09C 7C 08 02 A6 */ mflr r0 -/* 802EA0A0 90 01 00 14 */ stw r0, 0x14(r1) -/* 802EA0A4 7C 65 1B 78 */ mr r5, r3 -/* 802EA0A8 54 83 06 3E */ clrlwi r3, r4, 0x18 -/* 802EA0AC 38 63 00 01 */ addi r3, r3, 1 -/* 802EA0B0 7C A4 2B 78 */ mr r4, r5 -/* 802EA0B4 88 A5 00 18 */ lbz r5, 0x18(r5) -/* 802EA0B8 48 07 4C 75 */ bl GXSetIndTexMtx -/* 802EA0BC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802EA0C0 7C 08 03 A6 */ mtlr r0 -/* 802EA0C4 38 21 00 10 */ addi r1, r1, 0x10 -/* 802EA0C8 4E 80 00 20 */ blr diff --git a/asm/JSystem/J2DGraph/J2DTevs/load__14J2DIndTevStageFUc.s b/asm/JSystem/J2DGraph/J2DTevs/load__14J2DIndTevStageFUc.s deleted file mode 100644 index 3fa0d3fbc4..0000000000 --- a/asm/JSystem/J2DGraph/J2DTevs/load__14J2DIndTevStageFUc.s +++ /dev/null @@ -1,22 +0,0 @@ -lbl_802EA044: -/* 802EA044 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802EA048 7C 08 02 A6 */ mflr r0 -/* 802EA04C 90 01 00 14 */ stw r0, 0x14(r1) -/* 802EA050 81 43 00 00 */ lwz r10, 0(r3) -/* 802EA054 55 40 5F FE */ rlwinm r0, r10, 0xb, 0x1f, 0x1f -/* 802EA058 90 01 00 08 */ stw r0, 8(r1) -/* 802EA05C 55 40 57 BE */ rlwinm r0, r10, 0xa, 0x1e, 0x1f -/* 802EA060 90 01 00 0C */ stw r0, 0xc(r1) -/* 802EA064 54 83 06 3E */ clrlwi r3, r4, 0x18 -/* 802EA068 55 44 07 BE */ clrlwi r4, r10, 0x1e -/* 802EA06C 55 45 F7 BE */ rlwinm r5, r10, 0x1e, 0x1e, 0x1f -/* 802EA070 55 46 E7 7E */ rlwinm r6, r10, 0x1c, 0x1d, 0x1f -/* 802EA074 55 47 87 3E */ rlwinm r7, r10, 0x10, 0x1c, 0x1f -/* 802EA078 55 48 C7 7E */ rlwinm r8, r10, 0x18, 0x1d, 0x1f -/* 802EA07C 55 49 AF 7E */ rlwinm r9, r10, 0x15, 0x1d, 0x1f -/* 802EA080 55 4A 67 FE */ rlwinm r10, r10, 0xc, 0x1f, 0x1f -/* 802EA084 48 07 4C 3D */ bl GXSetTevIndirect -/* 802EA088 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802EA08C 7C 08 03 A6 */ mtlr r0 -/* 802EA090 38 21 00 10 */ addi r1, r1, 0x10 -/* 802EA094 4E 80 00 20 */ blr diff --git a/asm/JSystem/J2DGraph/J2DTevs/load__14J2DIndTexOrderFUc.s b/asm/JSystem/J2DGraph/J2DTevs/load__14J2DIndTexOrderFUc.s deleted file mode 100644 index 6d1d83cc7c..0000000000 --- a/asm/JSystem/J2DGraph/J2DTevs/load__14J2DIndTexOrderFUc.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_802EA0FC: -/* 802EA0FC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802EA100 7C 08 02 A6 */ mflr r0 -/* 802EA104 90 01 00 14 */ stw r0, 0x14(r1) -/* 802EA108 7C 65 1B 78 */ mr r5, r3 -/* 802EA10C 54 83 06 3E */ clrlwi r3, r4, 0x18 -/* 802EA110 88 85 00 00 */ lbz r4, 0(r5) -/* 802EA114 88 A5 00 01 */ lbz r5, 1(r5) -/* 802EA118 48 07 4E D1 */ bl GXSetIndTexOrder -/* 802EA11C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802EA120 7C 08 03 A6 */ mtlr r0 -/* 802EA124 38 21 00 10 */ addi r1, r1, 0x10 -/* 802EA128 4E 80 00 20 */ blr diff --git a/asm/JSystem/J2DGraph/J2DTevs/load__19J2DIndTexCoordScaleFUc.s b/asm/JSystem/J2DGraph/J2DTevs/load__19J2DIndTexCoordScaleFUc.s deleted file mode 100644 index ad36796f7c..0000000000 --- a/asm/JSystem/J2DGraph/J2DTevs/load__19J2DIndTexCoordScaleFUc.s +++ /dev/null @@ -1,13 +0,0 @@ -lbl_802EA0CC: -/* 802EA0CC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802EA0D0 7C 08 02 A6 */ mflr r0 -/* 802EA0D4 90 01 00 14 */ stw r0, 0x14(r1) -/* 802EA0D8 7C 65 1B 78 */ mr r5, r3 -/* 802EA0DC 54 83 06 3E */ clrlwi r3, r4, 0x18 -/* 802EA0E0 88 85 00 00 */ lbz r4, 0(r5) -/* 802EA0E4 88 A5 00 01 */ lbz r5, 1(r5) -/* 802EA0E8 48 07 4D BD */ bl GXSetIndTexCoordScale -/* 802EA0EC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802EA0F0 7C 08 03 A6 */ mtlr r0 -/* 802EA0F4 38 21 00 10 */ addi r1, r1, 0x10 -/* 802EA0F8 4E 80 00 20 */ blr diff --git a/asm/JSystem/J2DGraph/J2DTevs/load__9J2DTexMtxFUl.s b/asm/JSystem/J2DGraph/J2DTevs/load__9J2DTexMtxFUl.s deleted file mode 100644 index 32d00aa863..0000000000 --- a/asm/JSystem/J2DGraph/J2DTevs/load__9J2DTexMtxFUl.s +++ /dev/null @@ -1,14 +0,0 @@ -lbl_802E9C90: -/* 802E9C90 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802E9C94 7C 08 02 A6 */ mflr r0 -/* 802E9C98 90 01 00 14 */ stw r0, 0x14(r1) -/* 802E9C9C 7C 65 1B 78 */ mr r5, r3 -/* 802E9CA0 38 65 00 24 */ addi r3, r5, 0x24 -/* 802E9CA4 1C 84 00 03 */ mulli r4, r4, 3 -/* 802E9CA8 38 84 00 1E */ addi r4, r4, 0x1e -/* 802E9CAC 88 A5 00 00 */ lbz r5, 0(r5) -/* 802E9CB0 48 07 66 71 */ bl GXLoadTexMtxImm -/* 802E9CB4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802E9CB8 7C 08 03 A6 */ mtlr r0 -/* 802E9CBC 38 21 00 10 */ addi r1, r1, 0x10 -/* 802E9CC0 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphAnimator/J3DJointTree/__ct__12J3DJointTreeFv.s b/asm/JSystem/J3DGraphAnimator/J3DJointTree/__ct__12J3DJointTreeFv.s deleted file mode 100644 index 731e2b1e1a..0000000000 --- a/asm/JSystem/J3DGraphAnimator/J3DJointTree/__ct__12J3DJointTreeFv.s +++ /dev/null @@ -1,34 +0,0 @@ -lbl_80325A18: -/* 80325A18 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80325A1C 7C 08 02 A6 */ mflr r0 -/* 80325A20 90 01 00 14 */ stw r0, 0x14(r1) -/* 80325A24 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80325A28 7C 7F 1B 78 */ mr r31, r3 -/* 80325A2C 3C 60 80 3D */ lis r3, __vt__12J3DJointTree@ha /* 0x803CECF4@ha */ -/* 80325A30 38 03 EC F4 */ addi r0, r3, __vt__12J3DJointTree@l /* 0x803CECF4@l */ -/* 80325A34 90 1F 00 00 */ stw r0, 0(r31) -/* 80325A38 38 00 00 00 */ li r0, 0 -/* 80325A3C 90 1F 00 04 */ stw r0, 4(r31) -/* 80325A40 90 1F 00 08 */ stw r0, 8(r31) -/* 80325A44 90 1F 00 0C */ stw r0, 0xc(r31) -/* 80325A48 90 1F 00 10 */ stw r0, 0x10(r31) -/* 80325A4C 90 1F 00 14 */ stw r0, 0x14(r31) -/* 80325A50 90 1F 00 18 */ stw r0, 0x18(r31) -/* 80325A54 B0 1F 00 1C */ sth r0, 0x1c(r31) -/* 80325A58 B0 1F 00 1E */ sth r0, 0x1e(r31) -/* 80325A5C 90 1F 00 20 */ stw r0, 0x20(r31) -/* 80325A60 90 1F 00 24 */ stw r0, 0x24(r31) -/* 80325A64 90 1F 00 28 */ stw r0, 0x28(r31) -/* 80325A68 90 1F 00 2C */ stw r0, 0x2c(r31) -/* 80325A6C 90 1F 00 30 */ stw r0, 0x30(r31) -/* 80325A70 38 7F 00 34 */ addi r3, r31, 0x34 -/* 80325A74 4B FE BB 6D */ bl __ct__14J3DDrawMtxDataFv -/* 80325A78 38 00 00 00 */ li r0, 0 -/* 80325A7C 90 1F 00 40 */ stw r0, 0x40(r31) -/* 80325A80 90 1F 00 44 */ stw r0, 0x44(r31) -/* 80325A84 7F E3 FB 78 */ mr r3, r31 -/* 80325A88 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80325A8C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80325A90 7C 08 03 A6 */ mtlr r0 -/* 80325A94 38 21 00 10 */ addi r1, r1, 0x10 -/* 80325A98 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphAnimator/J3DJointTree/__dt__12J3DJointTreeFv.s b/asm/JSystem/J3DGraphAnimator/J3DJointTree/__dt__12J3DJointTreeFv.s deleted file mode 100644 index 06620ce473..0000000000 --- a/asm/JSystem/J3DGraphAnimator/J3DJointTree/__dt__12J3DJointTreeFv.s +++ /dev/null @@ -1,27 +0,0 @@ -lbl_80325D24: -/* 80325D24 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80325D28 7C 08 02 A6 */ mflr r0 -/* 80325D2C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80325D30 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80325D34 93 C1 00 08 */ stw r30, 8(r1) -/* 80325D38 7C 7E 1B 79 */ or. r30, r3, r3 -/* 80325D3C 7C 9F 23 78 */ mr r31, r4 -/* 80325D40 41 82 00 2C */ beq lbl_80325D6C -/* 80325D44 3C 60 80 3D */ lis r3, __vt__12J3DJointTree@ha /* 0x803CECF4@ha */ -/* 80325D48 38 03 EC F4 */ addi r0, r3, __vt__12J3DJointTree@l /* 0x803CECF4@l */ -/* 80325D4C 90 1E 00 00 */ stw r0, 0(r30) -/* 80325D50 38 7E 00 34 */ addi r3, r30, 0x34 -/* 80325D54 38 80 FF FF */ li r4, -1 -/* 80325D58 4B FE B8 9D */ bl __dt__14J3DDrawMtxDataFv -/* 80325D5C 7F E0 07 35 */ extsh. r0, r31 -/* 80325D60 40 81 00 0C */ ble lbl_80325D6C -/* 80325D64 7F C3 F3 78 */ mr r3, r30 -/* 80325D68 4B FA 8F D5 */ bl __dl__FPv -lbl_80325D6C: -/* 80325D6C 7F C3 F3 78 */ mr r3, r30 -/* 80325D70 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80325D74 83 C1 00 08 */ lwz r30, 8(r1) -/* 80325D78 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80325D7C 7C 08 03 A6 */ mtlr r0 -/* 80325D80 38 21 00 10 */ addi r1, r1, 0x10 -/* 80325D84 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphAnimator/J3DJointTree/calc__12J3DJointTreeFP12J3DMtxBufferRC3VecRA3_A4_Cf.s b/asm/JSystem/J3DGraphAnimator/J3DJointTree/calc__12J3DJointTreeFP12J3DMtxBufferRC3VecRA3_A4_Cf.s deleted file mode 100644 index 225323af23..0000000000 --- a/asm/JSystem/J3DGraphAnimator/J3DJointTree/calc__12J3DJointTreeFP12J3DMtxBufferRC3VecRA3_A4_Cf.s +++ /dev/null @@ -1,30 +0,0 @@ -lbl_80325CAC: -/* 80325CAC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80325CB0 7C 08 02 A6 */ mflr r0 -/* 80325CB4 90 01 00 14 */ stw r0, 0x14(r1) -/* 80325CB8 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80325CBC 93 C1 00 08 */ stw r30, 8(r1) -/* 80325CC0 7C 7E 1B 78 */ mr r30, r3 -/* 80325CC4 7C 9F 23 78 */ mr r31, r4 -/* 80325CC8 80 63 00 14 */ lwz r3, 0x14(r3) -/* 80325CCC 7C A4 2B 78 */ mr r4, r5 -/* 80325CD0 7C C5 33 78 */ mr r5, r6 -/* 80325CD4 81 83 00 00 */ lwz r12, 0(r3) -/* 80325CD8 81 8C 00 24 */ lwz r12, 0x24(r12) -/* 80325CDC 7D 89 03 A6 */ mtctr r12 -/* 80325CE0 4E 80 04 21 */ bctrl -/* 80325CE4 7F E3 FB 78 */ mr r3, r31 -/* 80325CE8 48 00 00 35 */ bl setMtxBuffer__10J3DMtxCalcFP12J3DMtxBuffer -/* 80325CEC 80 7E 00 10 */ lwz r3, 0x10(r30) -/* 80325CF0 28 03 00 00 */ cmplwi r3, 0 -/* 80325CF4 41 82 00 10 */ beq lbl_80325D04 -/* 80325CF8 80 1E 00 14 */ lwz r0, 0x14(r30) -/* 80325CFC 90 0D 90 78 */ stw r0, mCurrentMtxCalc__8J3DJoint(r13) -/* 80325D00 48 00 96 F9 */ bl recursiveCalc__8J3DJointFv -lbl_80325D04: -/* 80325D04 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80325D08 83 C1 00 08 */ lwz r30, 8(r1) -/* 80325D0C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80325D10 7C 08 03 A6 */ mtlr r0 -/* 80325D14 38 21 00 10 */ addi r1, r1, 0x10 -/* 80325D18 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphAnimator/J3DJointTree/setMtxBuffer__10J3DMtxCalcFP12J3DMtxBuffer.s b/asm/JSystem/J3DGraphAnimator/J3DJointTree/setMtxBuffer__10J3DMtxCalcFP12J3DMtxBuffer.s deleted file mode 100644 index 91ecf76433..0000000000 --- a/asm/JSystem/J3DGraphAnimator/J3DJointTree/setMtxBuffer__10J3DMtxCalcFP12J3DMtxBuffer.s +++ /dev/null @@ -1,3 +0,0 @@ -lbl_80325D1C: -/* 80325D1C 90 6D 90 70 */ stw r3, mMtxBuffer__10J3DMtxCalc(r13) -/* 80325D20 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphAnimator/J3DModel/calc__8J3DModelFv.s b/asm/JSystem/J3DGraphAnimator/J3DModel/calc__8J3DModelFv.s deleted file mode 100644 index 3f976e4cf9..0000000000 --- a/asm/JSystem/J3DGraphAnimator/J3DModel/calc__8J3DModelFv.s +++ /dev/null @@ -1,98 +0,0 @@ -lbl_80327CF0: -/* 80327CF0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80327CF4 7C 08 02 A6 */ mflr r0 -/* 80327CF8 90 01 00 14 */ stw r0, 0x14(r1) -/* 80327CFC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80327D00 7C 7F 1B 78 */ mr r31, r3 -/* 80327D04 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */ -/* 80327D08 38 63 4A C8 */ addi r3, r3, j3dSys@l /* 0x80434AC8@l */ -/* 80327D0C 93 E3 00 38 */ stw r31, 0x38(r3) -/* 80327D10 80 1F 00 08 */ lwz r0, 8(r31) -/* 80327D14 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d -/* 80327D18 41 82 00 14 */ beq lbl_80327D2C -/* 80327D1C 80 03 00 34 */ lwz r0, 0x34(r3) -/* 80327D20 60 00 00 04 */ ori r0, r0, 4 -/* 80327D24 90 03 00 34 */ stw r0, 0x34(r3) -/* 80327D28 48 00 00 10 */ b lbl_80327D38 -lbl_80327D2C: -/* 80327D2C 80 03 00 34 */ lwz r0, 0x34(r3) -/* 80327D30 54 00 07 B8 */ rlwinm r0, r0, 0, 0x1e, 0x1c -/* 80327D34 90 03 00 34 */ stw r0, 0x34(r3) -lbl_80327D38: -/* 80327D38 80 1F 00 08 */ lwz r0, 8(r31) -/* 80327D3C 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c -/* 80327D40 41 82 00 1C */ beq lbl_80327D5C -/* 80327D44 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */ -/* 80327D48 38 63 4A C8 */ addi r3, r3, j3dSys@l /* 0x80434AC8@l */ -/* 80327D4C 80 03 00 34 */ lwz r0, 0x34(r3) -/* 80327D50 60 00 00 08 */ ori r0, r0, 8 -/* 80327D54 90 03 00 34 */ stw r0, 0x34(r3) -/* 80327D58 48 00 00 18 */ b lbl_80327D70 -lbl_80327D5C: -/* 80327D5C 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */ -/* 80327D60 38 63 4A C8 */ addi r3, r3, j3dSys@l /* 0x80434AC8@l */ -/* 80327D64 80 03 00 34 */ lwz r0, 0x34(r3) -/* 80327D68 54 00 07 76 */ rlwinm r0, r0, 0, 0x1d, 0x1b -/* 80327D6C 90 03 00 34 */ stw r0, 0x34(r3) -lbl_80327D70: -/* 80327D70 80 7F 00 04 */ lwz r3, 4(r31) -/* 80327D74 4B FF E3 85 */ bl syncJ3DSysFlags__12J3DModelDataCFv -/* 80327D78 80 1F 00 8C */ lwz r0, 0x8c(r31) -/* 80327D7C 90 1F 00 B4 */ stw r0, 0xb4(r31) -/* 80327D80 80 1F 00 94 */ lwz r0, 0x94(r31) -/* 80327D84 90 1F 00 B8 */ stw r0, 0xb8(r31) -/* 80327D88 80 1F 00 9C */ lwz r0, 0x9c(r31) -/* 80327D8C 90 1F 00 BC */ stw r0, 0xbc(r31) -/* 80327D90 80 7F 00 D8 */ lwz r3, 0xd8(r31) -/* 80327D94 28 03 00 00 */ cmplwi r3, 0 -/* 80327D98 41 82 00 18 */ beq lbl_80327DB0 -/* 80327D9C 80 9F 00 04 */ lwz r4, 4(r31) -/* 80327DA0 81 83 00 00 */ lwz r12, 0(r3) -/* 80327DA4 81 8C 00 0C */ lwz r12, 0xc(r12) -/* 80327DA8 7D 89 03 A6 */ mtctr r12 -/* 80327DAC 4E 80 04 21 */ bctrl -lbl_80327DB0: -/* 80327DB0 80 7F 00 C8 */ lwz r3, 0xc8(r31) -/* 80327DB4 28 03 00 00 */ cmplwi r3, 0 -/* 80327DB8 41 82 00 0C */ beq lbl_80327DC4 -/* 80327DBC 7F E4 FB 78 */ mr r4, r31 -/* 80327DC0 48 00 64 B5 */ bl deform__13J3DDeformDataFP8J3DModel -lbl_80327DC4: -/* 80327DC4 80 7F 00 D0 */ lwz r3, 0xd0(r31) -/* 80327DC8 28 03 00 00 */ cmplwi r3, 0 -/* 80327DCC 41 82 00 0C */ beq lbl_80327DD8 -/* 80327DD0 7F E4 FB 78 */ mr r4, r31 -/* 80327DD4 48 00 63 AD */ bl calc__15J3DVtxColorCalcFP8J3DModel -lbl_80327DD8: -/* 80327DD8 80 7F 00 D4 */ lwz r3, 0xd4(r31) -/* 80327DDC 28 03 00 00 */ cmplwi r3, 0 -/* 80327DE0 41 82 00 18 */ beq lbl_80327DF8 -/* 80327DE4 7F E4 FB 78 */ mr r4, r31 -/* 80327DE8 81 83 00 00 */ lwz r12, 0(r3) -/* 80327DEC 81 8C 00 08 */ lwz r12, 8(r12) -/* 80327DF0 7D 89 03 A6 */ mtctr r12 -/* 80327DF4 4E 80 04 21 */ bctrl -lbl_80327DF8: -/* 80327DF8 7F E3 FB 78 */ mr r3, r31 -/* 80327DFC 4B FF FD D9 */ bl calcAnmMtx__8J3DModelFv -/* 80327E00 7F E3 FB 78 */ mr r3, r31 -/* 80327E04 4B FF FE 55 */ bl calcWeightEnvelopeMtx__8J3DModelFv -/* 80327E08 80 7F 00 CC */ lwz r3, 0xcc(r31) -/* 80327E0C 28 03 00 00 */ cmplwi r3, 0 -/* 80327E10 41 82 00 0C */ beq lbl_80327E1C -/* 80327E14 7F E4 FB 78 */ mr r4, r31 -/* 80327E18 48 00 61 C5 */ bl deform__13J3DSkinDeformFP8J3DModel -lbl_80327E1C: -/* 80327E1C 81 9F 00 10 */ lwz r12, 0x10(r31) -/* 80327E20 28 0C 00 00 */ cmplwi r12, 0 -/* 80327E24 41 82 00 14 */ beq lbl_80327E38 -/* 80327E28 7F E3 FB 78 */ mr r3, r31 -/* 80327E2C 38 80 00 00 */ li r4, 0 -/* 80327E30 7D 89 03 A6 */ mtctr r12 -/* 80327E34 4E 80 04 21 */ bctrl -lbl_80327E38: -/* 80327E38 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80327E3C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80327E40 7C 08 03 A6 */ mtlr r0 -/* 80327E44 38 21 00 10 */ addi r1, r1, 0x10 -/* 80327E48 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphAnimator/J3DModel/diff__8J3DModelFv.s b/asm/JSystem/J3DGraphAnimator/J3DModel/diff__8J3DModelFv.s deleted file mode 100644 index 234395b303..0000000000 --- a/asm/JSystem/J3DGraphAnimator/J3DModel/diff__8J3DModelFv.s +++ /dev/null @@ -1,38 +0,0 @@ -lbl_803279A0: -/* 803279A0 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 803279A4 7C 08 02 A6 */ mflr r0 -/* 803279A8 90 01 00 24 */ stw r0, 0x24(r1) -/* 803279AC 39 61 00 20 */ addi r11, r1, 0x20 -/* 803279B0 48 03 A8 29 */ bl _savegpr_28 -/* 803279B4 7C 7C 1B 78 */ mr r28, r3 -/* 803279B8 80 63 00 04 */ lwz r3, 4(r3) -/* 803279BC A3 E3 00 5C */ lhz r31, 0x5c(r3) -/* 803279C0 3B A0 00 00 */ li r29, 0 -/* 803279C4 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */ -/* 803279C8 3B C3 4A C8 */ addi r30, r3, j3dSys@l /* 0x80434AC8@l */ -/* 803279CC 48 00 00 3C */ b lbl_80327A08 -lbl_803279D0: -/* 803279D0 80 7C 00 C0 */ lwz r3, 0xc0(r28) -/* 803279D4 57 A0 32 B2 */ rlwinm r0, r29, 6, 0xa, 0x19 -/* 803279D8 7C 03 02 14 */ add r0, r3, r0 -/* 803279DC 90 1E 00 3C */ stw r0, 0x3c(r30) -/* 803279E0 80 7C 00 04 */ lwz r3, 4(r28) -/* 803279E4 80 63 00 60 */ lwz r3, 0x60(r3) -/* 803279E8 57 A0 13 BA */ rlwinm r0, r29, 2, 0xe, 0x1d -/* 803279EC 7C 63 00 2E */ lwzx r3, r3, r0 -/* 803279F0 80 9C 00 0C */ lwz r4, 0xc(r28) -/* 803279F4 81 83 00 00 */ lwz r12, 0(r3) -/* 803279F8 81 8C 00 24 */ lwz r12, 0x24(r12) -/* 803279FC 7D 89 03 A6 */ mtctr r12 -/* 80327A00 4E 80 04 21 */ bctrl -/* 80327A04 3B BD 00 01 */ addi r29, r29, 1 -lbl_80327A08: -/* 80327A08 57 A0 04 3E */ clrlwi r0, r29, 0x10 -/* 80327A0C 7C 00 F8 40 */ cmplw r0, r31 -/* 80327A10 41 80 FF C0 */ blt lbl_803279D0 -/* 80327A14 39 61 00 20 */ addi r11, r1, 0x20 -/* 80327A18 48 03 A8 0D */ bl _restgpr_28 -/* 80327A1C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80327A20 7C 08 03 A6 */ mtlr r0 -/* 80327A24 38 21 00 20 */ addi r1, r1, 0x20 -/* 80327A28 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphAnimator/J3DModel/entry__8J3DModelFv.s b/asm/JSystem/J3DGraphAnimator/J3DModel/entry__8J3DModelFv.s deleted file mode 100644 index 0ecf5e3519..0000000000 --- a/asm/JSystem/J3DGraphAnimator/J3DModel/entry__8J3DModelFv.s +++ /dev/null @@ -1,69 +0,0 @@ -lbl_80327E4C: -/* 80327E4C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80327E50 7C 08 02 A6 */ mflr r0 -/* 80327E54 90 01 00 14 */ stw r0, 0x14(r1) -/* 80327E58 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80327E5C 93 C1 00 08 */ stw r30, 8(r1) -/* 80327E60 7C 7F 1B 78 */ mr r31, r3 -/* 80327E64 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */ -/* 80327E68 38 63 4A C8 */ addi r3, r3, j3dSys@l /* 0x80434AC8@l */ -/* 80327E6C 93 E3 00 38 */ stw r31, 0x38(r3) -/* 80327E70 80 1F 00 08 */ lwz r0, 8(r31) -/* 80327E74 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d -/* 80327E78 41 82 00 14 */ beq lbl_80327E8C -/* 80327E7C 80 03 00 34 */ lwz r0, 0x34(r3) -/* 80327E80 60 00 00 04 */ ori r0, r0, 4 -/* 80327E84 90 03 00 34 */ stw r0, 0x34(r3) -/* 80327E88 48 00 00 10 */ b lbl_80327E98 -lbl_80327E8C: -/* 80327E8C 80 03 00 34 */ lwz r0, 0x34(r3) -/* 80327E90 54 00 07 B8 */ rlwinm r0, r0, 0, 0x1e, 0x1c -/* 80327E94 90 03 00 34 */ stw r0, 0x34(r3) -lbl_80327E98: -/* 80327E98 80 1F 00 08 */ lwz r0, 8(r31) -/* 80327E9C 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c -/* 80327EA0 41 82 00 1C */ beq lbl_80327EBC -/* 80327EA4 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */ -/* 80327EA8 38 63 4A C8 */ addi r3, r3, j3dSys@l /* 0x80434AC8@l */ -/* 80327EAC 80 03 00 34 */ lwz r0, 0x34(r3) -/* 80327EB0 60 00 00 08 */ ori r0, r0, 8 -/* 80327EB4 90 03 00 34 */ stw r0, 0x34(r3) -/* 80327EB8 48 00 00 18 */ b lbl_80327ED0 -lbl_80327EBC: -/* 80327EBC 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */ -/* 80327EC0 38 63 4A C8 */ addi r3, r3, j3dSys@l /* 0x80434AC8@l */ -/* 80327EC4 80 03 00 34 */ lwz r0, 0x34(r3) -/* 80327EC8 54 00 07 76 */ rlwinm r0, r0, 0, 0x1d, 0x1b -/* 80327ECC 90 03 00 34 */ stw r0, 0x34(r3) -lbl_80327ED0: -/* 80327ED0 80 7F 00 04 */ lwz r3, 4(r31) -/* 80327ED4 4B FF E2 25 */ bl syncJ3DSysFlags__12J3DModelDataCFv -/* 80327ED8 80 7F 00 04 */ lwz r3, 4(r31) -/* 80327EDC 80 03 00 6C */ lwz r0, 0x6c(r3) -/* 80327EE0 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */ -/* 80327EE4 38 63 4A C8 */ addi r3, r3, j3dSys@l /* 0x80434AC8@l */ -/* 80327EE8 90 03 00 58 */ stw r0, 0x58(r3) -/* 80327EEC 3B C0 00 00 */ li r30, 0 -/* 80327EF0 48 00 00 24 */ b lbl_80327F14 -lbl_80327EF4: -/* 80327EF4 80 64 00 28 */ lwz r3, 0x28(r4) -/* 80327EF8 57 C0 13 BA */ rlwinm r0, r30, 2, 0xe, 0x1d -/* 80327EFC 7C 63 00 2E */ lwzx r3, r3, r0 -/* 80327F00 80 03 00 58 */ lwz r0, 0x58(r3) -/* 80327F04 28 00 00 00 */ cmplwi r0, 0 -/* 80327F08 41 82 00 08 */ beq lbl_80327F10 -/* 80327F0C 48 00 73 49 */ bl entryIn__8J3DJointFv -lbl_80327F10: -/* 80327F10 3B DE 00 01 */ addi r30, r30, 1 -lbl_80327F14: -/* 80327F14 80 9F 00 04 */ lwz r4, 4(r31) -/* 80327F18 A0 64 00 2C */ lhz r3, 0x2c(r4) -/* 80327F1C 57 C0 04 3E */ clrlwi r0, r30, 0x10 -/* 80327F20 7C 00 18 40 */ cmplw r0, r3 -/* 80327F24 41 80 FF D0 */ blt lbl_80327EF4 -/* 80327F28 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80327F2C 83 C1 00 08 */ lwz r30, 8(r1) -/* 80327F30 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80327F34 7C 08 03 A6 */ mtlr r0 -/* 80327F38 38 21 00 10 */ addi r1, r1, 0x10 -/* 80327F3C 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphAnimator/J3DModel/setSkinDeform__8J3DModelFP13J3DSkinDeformUl.s b/asm/JSystem/J3DGraphAnimator/J3DModel/setSkinDeform__8J3DModelFP13J3DSkinDeformUl.s deleted file mode 100644 index 8df9ffaaa1..0000000000 --- a/asm/JSystem/J3DGraphAnimator/J3DModel/setSkinDeform__8J3DModelFP13J3DSkinDeformUl.s +++ /dev/null @@ -1,87 +0,0 @@ -lbl_80327AA0: -/* 80327AA0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80327AA4 7C 08 02 A6 */ mflr r0 -/* 80327AA8 90 01 00 14 */ stw r0, 0x14(r1) -/* 80327AAC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80327AB0 93 C1 00 08 */ stw r30, 8(r1) -/* 80327AB4 7C 7F 1B 78 */ mr r31, r3 -/* 80327AB8 7C BE 2B 78 */ mr r30, r5 -/* 80327ABC 90 83 00 CC */ stw r4, 0xcc(r3) -/* 80327AC0 28 04 00 00 */ cmplwi r4, 0 -/* 80327AC4 40 82 00 24 */ bne lbl_80327AE8 -/* 80327AC8 80 1F 00 08 */ lwz r0, 8(r31) -/* 80327ACC 54 00 07 B8 */ rlwinm r0, r0, 0, 0x1e, 0x1c -/* 80327AD0 90 1F 00 08 */ stw r0, 8(r31) -/* 80327AD4 80 1F 00 08 */ lwz r0, 8(r31) -/* 80327AD8 54 00 07 76 */ rlwinm r0, r0, 0, 0x1d, 0x1b -/* 80327ADC 90 1F 00 08 */ stw r0, 8(r31) -/* 80327AE0 38 60 00 05 */ li r3, 5 -/* 80327AE4 48 00 00 D8 */ b lbl_80327BBC -lbl_80327AE8: -/* 80327AE8 80 7F 00 CC */ lwz r3, 0xcc(r31) -/* 80327AEC 80 9F 00 04 */ lwz r4, 4(r31) -/* 80327AF0 48 00 54 55 */ bl initMtxIndexArray__13J3DSkinDeformFP12J3DModelData -/* 80327AF4 80 9F 00 04 */ lwz r4, 4(r31) -/* 80327AF8 80 04 00 08 */ lwz r0, 8(r4) -/* 80327AFC 54 00 C7 FF */ rlwinm. r0, r0, 0x18, 0x1f, 0x1f -/* 80327B00 41 82 00 28 */ beq lbl_80327B28 -/* 80327B04 80 7F 00 CC */ lwz r3, 0xcc(r31) -/* 80327B08 48 00 58 71 */ bl changeFastSkinDL__13J3DSkinDeformFP12J3DModelData -/* 80327B0C 57 DE 07 F8 */ rlwinm r30, r30, 0, 0x1f, 0x1c -/* 80327B10 80 7F 00 CC */ lwz r3, 0xcc(r31) -/* 80327B14 80 9F 00 04 */ lwz r4, 4(r31) -/* 80327B18 48 00 5C 21 */ bl transformVtxPosNrm__13J3DSkinDeformFP12J3DModelData -/* 80327B1C 80 7F 00 CC */ lwz r3, 0xcc(r31) -/* 80327B20 80 9F 00 04 */ lwz r4, 4(r31) -/* 80327B24 48 00 4E 8D */ bl initSkinInfo__13J3DSkinDeformFP12J3DModelData -lbl_80327B28: -/* 80327B28 38 80 00 00 */ li r4, 0 -/* 80327B2C 7F DE F0 F8 */ nor r30, r30, r30 -/* 80327B30 57 C0 07 BD */ rlwinm. r0, r30, 0, 0x1e, 0x1e -/* 80327B34 41 82 00 34 */ beq lbl_80327B68 -/* 80327B38 38 7F 00 88 */ addi r3, r31, 0x88 -/* 80327B3C 4B FE 99 3D */ bl allocTransformedVtxPosArray__15J3DVertexBufferFv -/* 80327B40 7C 64 1B 79 */ or. r4, r3, r3 -/* 80327B44 41 82 00 14 */ beq lbl_80327B58 -/* 80327B48 80 1F 00 08 */ lwz r0, 8(r31) -/* 80327B4C 54 00 07 B8 */ rlwinm r0, r0, 0, 0x1e, 0x1c -/* 80327B50 90 1F 00 08 */ stw r0, 8(r31) -/* 80327B54 48 00 00 68 */ b lbl_80327BBC -lbl_80327B58: -/* 80327B58 80 1F 00 08 */ lwz r0, 8(r31) -/* 80327B5C 60 00 00 04 */ ori r0, r0, 4 -/* 80327B60 90 1F 00 08 */ stw r0, 8(r31) -/* 80327B64 48 00 00 10 */ b lbl_80327B74 -lbl_80327B68: -/* 80327B68 80 1F 00 08 */ lwz r0, 8(r31) -/* 80327B6C 54 00 07 B8 */ rlwinm r0, r0, 0, 0x1e, 0x1c -/* 80327B70 90 1F 00 08 */ stw r0, 8(r31) -lbl_80327B74: -/* 80327B74 57 C0 07 7B */ rlwinm. r0, r30, 0, 0x1d, 0x1d -/* 80327B78 41 82 00 34 */ beq lbl_80327BAC -/* 80327B7C 38 7F 00 88 */ addi r3, r31, 0x88 -/* 80327B80 4B FE 99 AD */ bl allocTransformedVtxNrmArray__15J3DVertexBufferFv -/* 80327B84 7C 64 1B 79 */ or. r4, r3, r3 -/* 80327B88 41 82 00 14 */ beq lbl_80327B9C -/* 80327B8C 80 1F 00 08 */ lwz r0, 8(r31) -/* 80327B90 54 00 07 76 */ rlwinm r0, r0, 0, 0x1d, 0x1b -/* 80327B94 90 1F 00 08 */ stw r0, 8(r31) -/* 80327B98 48 00 00 24 */ b lbl_80327BBC -lbl_80327B9C: -/* 80327B9C 80 1F 00 08 */ lwz r0, 8(r31) -/* 80327BA0 60 00 00 08 */ ori r0, r0, 8 -/* 80327BA4 90 1F 00 08 */ stw r0, 8(r31) -/* 80327BA8 48 00 00 10 */ b lbl_80327BB8 -lbl_80327BAC: -/* 80327BAC 80 1F 00 08 */ lwz r0, 8(r31) -/* 80327BB0 54 00 07 76 */ rlwinm r0, r0, 0, 0x1d, 0x1b -/* 80327BB4 90 1F 00 08 */ stw r0, 8(r31) -lbl_80327BB8: -/* 80327BB8 7C 83 23 78 */ mr r3, r4 -lbl_80327BBC: -/* 80327BBC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80327BC0 83 C1 00 08 */ lwz r30, 8(r1) -/* 80327BC4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80327BC8 7C 08 03 A6 */ mtlr r0 -/* 80327BCC 38 21 00 10 */ addi r1, r1, 0x10 -/* 80327BD0 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DMatBlock/getType__12J3DTevBlock1Fv.s b/asm/JSystem/J3DGraphBase/J3DMatBlock/getType__12J3DTevBlock1Fv.s deleted file mode 100644 index a467123c12..0000000000 --- a/asm/JSystem/J3DGraphBase/J3DMatBlock/getType__12J3DTevBlock1Fv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_80322798: -/* 80322798 3C 60 54 56 */ lis r3, 0x5456 /* 0x54564231@ha */ -/* 8032279C 38 63 42 31 */ addi r3, r3, 0x4231 /* 0x54564231@l */ -/* 803227A0 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DMatBlock/getType__12J3DTevBlock2Fv.s b/asm/JSystem/J3DGraphBase/J3DMatBlock/getType__12J3DTevBlock2Fv.s deleted file mode 100644 index ce83dde5ea..0000000000 --- a/asm/JSystem/J3DGraphBase/J3DMatBlock/getType__12J3DTevBlock2Fv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_803223D4: -/* 803223D4 3C 60 54 56 */ lis r3, 0x5456 /* 0x54564232@ha */ -/* 803223D8 38 63 42 32 */ addi r3, r3, 0x4232 /* 0x54564232@l */ -/* 803223DC 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DMatBlock/getType__12J3DTevBlock4Fv.s b/asm/JSystem/J3DGraphBase/J3DMatBlock/getType__12J3DTevBlock4Fv.s deleted file mode 100644 index 7c6134b42b..0000000000 --- a/asm/JSystem/J3DGraphBase/J3DMatBlock/getType__12J3DTevBlock4Fv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_80322010: -/* 80322010 3C 60 54 56 */ lis r3, 0x5456 /* 0x54564234@ha */ -/* 80322014 38 63 42 34 */ addi r3, r3, 0x4234 /* 0x54564234@l */ -/* 80322018 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DMatBlock/getType__13J3DPEBlockOpaFv.s b/asm/JSystem/J3DGraphBase/J3DMatBlock/getType__13J3DPEBlockOpaFv.s deleted file mode 100644 index ade1823b33..0000000000 --- a/asm/JSystem/J3DGraphBase/J3DMatBlock/getType__13J3DPEBlockOpaFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_80323328: -/* 80323328 3C 60 50 45 */ lis r3, 0x5045 /* 0x50454F50@ha */ -/* 8032332C 38 63 4F 50 */ addi r3, r3, 0x4F50 /* 0x50454F50@l */ -/* 80323330 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DMatBlock/getType__13J3DPEBlockXluFv.s b/asm/JSystem/J3DGraphBase/J3DMatBlock/getType__13J3DPEBlockXluFv.s deleted file mode 100644 index 8ffb396bcf..0000000000 --- a/asm/JSystem/J3DGraphBase/J3DMatBlock/getType__13J3DPEBlockXluFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_80323258: -/* 80323258 3C 60 50 45 */ lis r3, 0x5045 /* 0x5045584C@ha */ -/* 8032325C 38 63 58 4C */ addi r3, r3, 0x584C /* 0x5045584C@l */ -/* 80323260 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DMatBlock/getType__13J3DTevBlock16Fv.s b/asm/JSystem/J3DGraphBase/J3DMatBlock/getType__13J3DTevBlock16Fv.s deleted file mode 100644 index 1e8ce5ba7e..0000000000 --- a/asm/JSystem/J3DGraphBase/J3DMatBlock/getType__13J3DTevBlock16Fv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_80321C44: -/* 80321C44 3C 60 54 56 */ lis r3, 0x5456 /* 0x54563136@ha */ -/* 80321C48 38 63 31 36 */ addi r3, r3, 0x3136 /* 0x54563136@l */ -/* 80321C4C 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DMatBlock/getType__14J3DPEBlockFullFv.s b/asm/JSystem/J3DGraphBase/J3DMatBlock/getType__14J3DPEBlockFullFv.s deleted file mode 100644 index 1fad9631b9..0000000000 --- a/asm/JSystem/J3DGraphBase/J3DMatBlock/getType__14J3DPEBlockFullFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_8032194C: -/* 8032194C 3C 60 50 45 */ lis r3, 0x5045 /* 0x5045464C@ha */ -/* 80321950 38 63 46 4C */ addi r3, r3, 0x464C /* 0x5045464C@l */ -/* 80321954 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DMatBlock/getType__15J3DIndBlockFullFv.s b/asm/JSystem/J3DGraphBase/J3DMatBlock/getType__15J3DIndBlockFullFv.s deleted file mode 100644 index dbce0c9aae..0000000000 --- a/asm/JSystem/J3DGraphBase/J3DMatBlock/getType__15J3DIndBlockFullFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_80323390: -/* 80323390 3C 60 49 42 */ lis r3, 0x4942 /* 0x49424C46@ha */ -/* 80323394 38 63 4C 46 */ addi r3, r3, 0x4C46 /* 0x49424C46@l */ -/* 80323398 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DMatBlock/getType__15J3DTexGenBlock4Fv.s b/asm/JSystem/J3DGraphBase/J3DMatBlock/getType__15J3DTexGenBlock4Fv.s deleted file mode 100644 index 71df933987..0000000000 --- a/asm/JSystem/J3DGraphBase/J3DMatBlock/getType__15J3DTexGenBlock4Fv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_80322DA8: -/* 80322DA8 3C 60 54 47 */ lis r3, 0x5447 /* 0x54474234@ha */ -/* 80322DAC 38 63 42 34 */ addi r3, r3, 0x4234 /* 0x54474234@l */ -/* 80322DB0 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DMatBlock/getType__16J3DPEBlockFogOffFv.s b/asm/JSystem/J3DGraphBase/J3DMatBlock/getType__16J3DPEBlockFogOffFv.s deleted file mode 100644 index 6dd99b2686..0000000000 --- a/asm/JSystem/J3DGraphBase/J3DMatBlock/getType__16J3DPEBlockFogOffFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_80321B00: -/* 80321B00 3C 60 50 45 */ lis r3, 0x5045 /* 0x50454647@ha */ -/* 80321B04 38 63 46 47 */ addi r3, r3, 0x4647 /* 0x50454647@l */ -/* 80321B08 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DMatBlock/getType__17J3DPEBlockTexEdgeFv.s b/asm/JSystem/J3DGraphBase/J3DMatBlock/getType__17J3DPEBlockTexEdgeFv.s deleted file mode 100644 index 04bb8177dc..0000000000 --- a/asm/JSystem/J3DGraphBase/J3DMatBlock/getType__17J3DPEBlockTexEdgeFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_803232C0: -/* 803232C0 3C 60 50 45 */ lis r3, 0x5045 /* 0x50454544@ha */ -/* 803232C4 38 63 45 44 */ addi r3, r3, 0x4544 /* 0x50454544@l */ -/* 803232C8 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DMatBlock/getType__18J3DTevBlockPatchedFv.s b/asm/JSystem/J3DGraphBase/J3DMatBlock/getType__18J3DTevBlockPatchedFv.s deleted file mode 100644 index 5ae0299167..0000000000 --- a/asm/JSystem/J3DGraphBase/J3DMatBlock/getType__18J3DTevBlockPatchedFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_80322998: -/* 80322998 3C 60 54 56 */ lis r3, 0x5456 /* 0x54565054@ha */ -/* 8032299C 38 63 50 54 */ addi r3, r3, 0x5054 /* 0x54565054@l */ -/* 803229A0 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DMatBlock/getType__19J3DTexGenBlockBasicFv.s b/asm/JSystem/J3DGraphBase/J3DMatBlock/getType__19J3DTexGenBlockBasicFv.s deleted file mode 100644 index b516337879..0000000000 --- a/asm/JSystem/J3DGraphBase/J3DMatBlock/getType__19J3DTexGenBlockBasicFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_80322C6C: -/* 80322C6C 3C 60 54 47 */ lis r3, 0x5447 /* 0x54474243@ha */ -/* 80322C70 38 63 42 43 */ addi r3, r3, 0x4243 /* 0x54474243@l */ -/* 80322C74 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DMatBlock/getType__20J3DColorBlockLightOnFv.s b/asm/JSystem/J3DGraphBase/J3DMatBlock/getType__20J3DColorBlockLightOnFv.s deleted file mode 100644 index 94efc2870e..0000000000 --- a/asm/JSystem/J3DGraphBase/J3DMatBlock/getType__20J3DColorBlockLightOnFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_80322E80: -/* 80322E80 3C 60 43 4C */ lis r3, 0x434C /* 0x434C4F4E@ha */ -/* 80322E84 38 63 4F 4E */ addi r3, r3, 0x4F4E /* 0x434C4F4E@l */ -/* 80322E88 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DMatBlock/getType__21J3DColorBlockLightOffFv.s b/asm/JSystem/J3DGraphBase/J3DMatBlock/getType__21J3DColorBlockLightOffFv.s deleted file mode 100644 index 5efa00ef04..0000000000 --- a/asm/JSystem/J3DGraphBase/J3DMatBlock/getType__21J3DColorBlockLightOffFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_80323560: -/* 80323560 3C 60 43 4C */ lis r3, 0x434C /* 0x434C4F46@ha */ -/* 80323564 38 63 4F 46 */ addi r3, r3, 0x4F46 /* 0x434C4F46@l */ -/* 80323568 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DMatBlock/getType__21J3DTexGenBlockPatchedFv.s b/asm/JSystem/J3DGraphBase/J3DMatBlock/getType__21J3DTexGenBlockPatchedFv.s deleted file mode 100644 index edb5792722..0000000000 --- a/asm/JSystem/J3DGraphBase/J3DMatBlock/getType__21J3DTexGenBlockPatchedFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_80322E74: -/* 80322E74 3C 60 54 47 */ lis r3, 0x5447 /* 0x54475054@ha */ -/* 80322E78 38 63 50 54 */ addi r3, r3, 0x5054 /* 0x54475054@l */ -/* 80322E7C 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DMatBlock/getType__22J3DColorBlockAmbientOnFv.s b/asm/JSystem/J3DGraphBase/J3DMatBlock/getType__22J3DColorBlockAmbientOnFv.s deleted file mode 100644 index ffc44f6d18..0000000000 --- a/asm/JSystem/J3DGraphBase/J3DMatBlock/getType__22J3DColorBlockAmbientOnFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_80323074: -/* 80323074 3C 60 43 4C */ lis r3, 0x434C /* 0x434C4142@ha */ -/* 80323078 38 63 41 42 */ addi r3, r3, 0x4142 /* 0x434C4142@l */ -/* 8032307C 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DMaterial/loadSharedDL__17J3DLockedMaterialFv.s b/asm/JSystem/J3DGraphBase/J3DMaterial/loadSharedDL__17J3DLockedMaterialFv.s deleted file mode 100644 index 5c5a352fd5..0000000000 --- a/asm/JSystem/J3DGraphBase/J3DMaterial/loadSharedDL__17J3DLockedMaterialFv.s +++ /dev/null @@ -1,18 +0,0 @@ -lbl_80317088: -/* 80317088 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8031708C 7C 08 02 A6 */ mflr r0 -/* 80317090 90 01 00 14 */ stw r0, 0x14(r1) -/* 80317094 80 03 00 10 */ lwz r0, 0x10(r3) -/* 80317098 3C 80 80 43 */ lis r4, j3dSys@ha /* 0x80434AC8@ha */ -/* 8031709C 38 84 4A C8 */ addi r4, r4, j3dSys@l /* 0x80434AC8@l */ -/* 803170A0 90 04 00 54 */ stw r0, 0x54(r4) -/* 803170A4 80 04 00 34 */ lwz r0, 0x34(r4) -/* 803170A8 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e -/* 803170AC 40 82 00 0C */ bne lbl_803170B8 -/* 803170B0 80 63 00 48 */ lwz r3, 0x48(r3) -/* 803170B4 4B FF B5 65 */ bl callDL__17J3DDisplayListObjCFv -lbl_803170B8: -/* 803170B8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 803170BC 7C 08 03 A6 */ mtlr r0 -/* 803170C0 38 21 00 10 */ addi r1, r1, 0x10 -/* 803170C4 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DMaterial/loadSharedDL__18J3DPatchedMaterialFv.s b/asm/JSystem/J3DGraphBase/J3DMaterial/loadSharedDL__18J3DPatchedMaterialFv.s deleted file mode 100644 index 15a23afc4c..0000000000 --- a/asm/JSystem/J3DGraphBase/J3DMaterial/loadSharedDL__18J3DPatchedMaterialFv.s +++ /dev/null @@ -1,18 +0,0 @@ -lbl_80316FFC: -/* 80316FFC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80317000 7C 08 02 A6 */ mflr r0 -/* 80317004 90 01 00 14 */ stw r0, 0x14(r1) -/* 80317008 80 03 00 10 */ lwz r0, 0x10(r3) -/* 8031700C 3C 80 80 43 */ lis r4, j3dSys@ha /* 0x80434AC8@ha */ -/* 80317010 38 84 4A C8 */ addi r4, r4, j3dSys@l /* 0x80434AC8@l */ -/* 80317014 90 04 00 54 */ stw r0, 0x54(r4) -/* 80317018 80 04 00 34 */ lwz r0, 0x34(r4) -/* 8031701C 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e -/* 80317020 40 82 00 0C */ bne lbl_8031702C -/* 80317024 80 63 00 48 */ lwz r3, 0x48(r3) -/* 80317028 4B FF B5 F1 */ bl callDL__17J3DDisplayListObjCFv -lbl_8031702C: -/* 8031702C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80317030 7C 08 03 A6 */ mtlr r0 -/* 80317034 38 21 00 10 */ addi r1, r1, 0x10 -/* 80317038 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DPacket/drawFast__14J3DShapePacketFv.s b/asm/JSystem/J3DGraphBase/J3DPacket/drawFast__14J3DShapePacketFv.s deleted file mode 100644 index 2bf18dcb80..0000000000 --- a/asm/JSystem/J3DGraphBase/J3DPacket/drawFast__14J3DShapePacketFv.s +++ /dev/null @@ -1,38 +0,0 @@ -lbl_80312FBC: -/* 80312FBC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80312FC0 7C 08 02 A6 */ mflr r0 -/* 80312FC4 90 01 00 14 */ stw r0, 0x14(r1) -/* 80312FC8 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80312FCC 7C 7F 1B 78 */ mr r31, r3 -/* 80312FD0 80 03 00 10 */ lwz r0, 0x10(r3) -/* 80312FD4 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b -/* 80312FD8 40 82 00 58 */ bne lbl_80313030 -/* 80312FDC 80 1F 00 28 */ lwz r0, 0x28(r31) -/* 80312FE0 28 00 00 00 */ cmplwi r0, 0 -/* 80312FE4 41 82 00 4C */ beq lbl_80313030 -/* 80312FE8 4B FF FE 21 */ bl prepareDraw__14J3DShapePacketCFv -/* 80312FEC 80 1F 00 24 */ lwz r0, 0x24(r31) -/* 80312FF0 28 00 00 00 */ cmplwi r0, 0 -/* 80312FF4 41 82 00 20 */ beq lbl_80313014 -/* 80312FF8 80 7F 00 28 */ lwz r3, 0x28(r31) -/* 80312FFC 80 63 00 04 */ lwz r3, 4(r3) -/* 80313000 80 03 00 28 */ lwz r0, 0x28(r3) -/* 80313004 90 0D 90 40 */ stw r0, sTexGenBlock__17J3DDifferedTexMtx(r13) -/* 80313008 80 1F 00 24 */ lwz r0, 0x24(r31) -/* 8031300C 90 0D 90 44 */ stw r0, sTexMtxObj__17J3DDifferedTexMtx(r13) -/* 80313010 48 00 00 0C */ b lbl_8031301C -lbl_80313014: -/* 80313014 38 00 00 00 */ li r0, 0 -/* 80313018 90 0D 90 40 */ stw r0, sTexGenBlock__17J3DDifferedTexMtx(r13) -lbl_8031301C: -/* 8031301C 80 7F 00 28 */ lwz r3, 0x28(r31) -/* 80313020 81 83 00 00 */ lwz r12, 0(r3) -/* 80313024 81 8C 00 0C */ lwz r12, 0xc(r12) -/* 80313028 7D 89 03 A6 */ mtctr r12 -/* 8031302C 4E 80 04 21 */ bctrl -lbl_80313030: -/* 80313030 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80313034 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80313038 7C 08 03 A6 */ mtlr r0 -/* 8031303C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80313040 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DPacket/draw__12J3DMatPacketFv.s b/asm/JSystem/J3DGraphBase/J3DPacket/draw__12J3DMatPacketFv.s deleted file mode 100644 index dc3ce7dfcc..0000000000 --- a/asm/JSystem/J3DGraphBase/J3DPacket/draw__12J3DMatPacketFv.s +++ /dev/null @@ -1,37 +0,0 @@ -lbl_80312A9C: -/* 80312A9C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80312AA0 7C 08 02 A6 */ mflr r0 -/* 80312AA4 90 01 00 14 */ stw r0, 0x14(r1) -/* 80312AA8 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80312AAC 7C 7F 1B 78 */ mr r31, r3 -/* 80312AB0 80 63 00 30 */ lwz r3, 0x30(r3) -/* 80312AB4 81 83 00 00 */ lwz r12, 0(r3) -/* 80312AB8 81 8C 00 18 */ lwz r12, 0x18(r12) -/* 80312ABC 7D 89 03 A6 */ mtctr r12 -/* 80312AC0 4E 80 04 21 */ bctrl -/* 80312AC4 80 7F 00 20 */ lwz r3, 0x20(r31) -/* 80312AC8 4B FF FB 51 */ bl callDL__17J3DDisplayListObjCFv -/* 80312ACC 80 7F 00 2C */ lwz r3, 0x2c(r31) -/* 80312AD0 7C 7F 1B 78 */ mr r31, r3 -/* 80312AD4 80 63 00 28 */ lwz r3, 0x28(r3) -/* 80312AD8 48 00 28 29 */ bl loadPreDrawSetting__8J3DShapeCFv -/* 80312ADC 48 00 00 20 */ b lbl_80312AFC -lbl_80312AE0: -/* 80312AE0 80 7F 00 20 */ lwz r3, 0x20(r31) -/* 80312AE4 28 03 00 00 */ cmplwi r3, 0 -/* 80312AE8 41 82 00 08 */ beq lbl_80312AF0 -/* 80312AEC 4B FF FB 2D */ bl callDL__17J3DDisplayListObjCFv -lbl_80312AF0: -/* 80312AF0 7F E3 FB 78 */ mr r3, r31 -/* 80312AF4 48 00 04 C9 */ bl drawFast__14J3DShapePacketFv -/* 80312AF8 83 FF 00 04 */ lwz r31, 4(r31) -lbl_80312AFC: -/* 80312AFC 28 1F 00 00 */ cmplwi r31, 0 -/* 80312B00 40 82 FF E0 */ bne lbl_80312AE0 -/* 80312B04 38 00 00 00 */ li r0, 0 -/* 80312B08 90 0D 90 50 */ stw r0, sOldVcdVatCmd__8J3DShape(r13) -/* 80312B0C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80312B10 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80312B14 7C 08 03 A6 */ mtlr r0 -/* 80312B18 38 21 00 10 */ addi r1, r1, 0x10 -/* 80312B1C 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DPacket/draw__14J3DShapePacketFv.s b/asm/JSystem/J3DGraphBase/J3DPacket/draw__14J3DShapePacketFv.s deleted file mode 100644 index 96115e724e..0000000000 --- a/asm/JSystem/J3DGraphBase/J3DPacket/draw__14J3DShapePacketFv.s +++ /dev/null @@ -1,43 +0,0 @@ -lbl_80312F24: -/* 80312F24 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80312F28 7C 08 02 A6 */ mflr r0 -/* 80312F2C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80312F30 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80312F34 7C 7F 1B 78 */ mr r31, r3 -/* 80312F38 80 03 00 10 */ lwz r0, 0x10(r3) -/* 80312F3C 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b -/* 80312F40 40 82 00 68 */ bne lbl_80312FA8 -/* 80312F44 80 1F 00 28 */ lwz r0, 0x28(r31) -/* 80312F48 28 00 00 00 */ cmplwi r0, 0 -/* 80312F4C 41 82 00 5C */ beq lbl_80312FA8 -/* 80312F50 4B FF FE B9 */ bl prepareDraw__14J3DShapePacketCFv -/* 80312F54 80 1F 00 24 */ lwz r0, 0x24(r31) -/* 80312F58 28 00 00 00 */ cmplwi r0, 0 -/* 80312F5C 41 82 00 20 */ beq lbl_80312F7C -/* 80312F60 80 7F 00 28 */ lwz r3, 0x28(r31) -/* 80312F64 80 63 00 04 */ lwz r3, 4(r3) -/* 80312F68 80 03 00 28 */ lwz r0, 0x28(r3) -/* 80312F6C 90 0D 90 40 */ stw r0, sTexGenBlock__17J3DDifferedTexMtx(r13) -/* 80312F70 80 1F 00 24 */ lwz r0, 0x24(r31) -/* 80312F74 90 0D 90 44 */ stw r0, sTexMtxObj__17J3DDifferedTexMtx(r13) -/* 80312F78 48 00 00 0C */ b lbl_80312F84 -lbl_80312F7C: -/* 80312F7C 38 00 00 00 */ li r0, 0 -/* 80312F80 90 0D 90 40 */ stw r0, sTexGenBlock__17J3DDifferedTexMtx(r13) -lbl_80312F84: -/* 80312F84 80 7F 00 20 */ lwz r3, 0x20(r31) -/* 80312F88 28 03 00 00 */ cmplwi r3, 0 -/* 80312F8C 41 82 00 08 */ beq lbl_80312F94 -/* 80312F90 4B FF F6 89 */ bl callDL__17J3DDisplayListObjCFv -lbl_80312F94: -/* 80312F94 80 7F 00 28 */ lwz r3, 0x28(r31) -/* 80312F98 81 83 00 00 */ lwz r12, 0(r3) -/* 80312F9C 81 8C 00 08 */ lwz r12, 8(r12) -/* 80312FA0 7D 89 03 A6 */ mtctr r12 -/* 80312FA4 4E 80 04 21 */ bctrl -lbl_80312FA8: -/* 80312FA8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80312FAC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80312FB0 7C 08 03 A6 */ mtlr r0 -/* 80312FB4 38 21 00 10 */ addi r1, r1, 0x10 -/* 80312FB8 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShape/loadVtxArray__8J3DShapeCFv.s b/asm/JSystem/J3DGraphBase/J3DShape/loadVtxArray__8J3DShapeCFv.s deleted file mode 100644 index 7cdae7439b..0000000000 --- a/asm/JSystem/J3DGraphBase/J3DShape/loadVtxArray__8J3DShapeCFv.s +++ /dev/null @@ -1,30 +0,0 @@ -lbl_80314EEC: -/* 80314EEC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80314EF0 7C 08 02 A6 */ mflr r0 -/* 80314EF4 90 01 00 14 */ stw r0, 0x14(r1) -/* 80314EF8 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80314EFC 7C 7F 1B 78 */ mr r31, r3 -/* 80314F00 38 60 00 09 */ li r3, 9 -/* 80314F04 3C 80 80 43 */ lis r4, j3dSys@ha /* 0x80434AC8@ha */ -/* 80314F08 38 84 4A C8 */ addi r4, r4, j3dSys@l /* 0x80434AC8@l */ -/* 80314F0C 80 84 01 0C */ lwz r4, 0x10c(r4) -/* 80314F10 4B FF FF A1 */ bl J3DLoadArrayBasePtr__F7_GXAttrPv -/* 80314F14 88 1F 00 34 */ lbz r0, 0x34(r31) -/* 80314F18 28 00 00 00 */ cmplwi r0, 0 -/* 80314F1C 40 82 00 18 */ bne lbl_80314F34 -/* 80314F20 38 60 00 0A */ li r3, 0xa -/* 80314F24 3C 80 80 43 */ lis r4, j3dSys@ha /* 0x80434AC8@ha */ -/* 80314F28 38 84 4A C8 */ addi r4, r4, j3dSys@l /* 0x80434AC8@l */ -/* 80314F2C 80 84 01 10 */ lwz r4, 0x110(r4) -/* 80314F30 4B FF FF 81 */ bl J3DLoadArrayBasePtr__F7_GXAttrPv -lbl_80314F34: -/* 80314F34 38 60 00 0B */ li r3, 0xb -/* 80314F38 3C 80 80 43 */ lis r4, j3dSys@ha /* 0x80434AC8@ha */ -/* 80314F3C 38 84 4A C8 */ addi r4, r4, j3dSys@l /* 0x80434AC8@l */ -/* 80314F40 80 84 01 14 */ lwz r4, 0x114(r4) -/* 80314F44 4B FF FF 6D */ bl J3DLoadArrayBasePtr__F7_GXAttrPv -/* 80314F48 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80314F4C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80314F50 7C 08 03 A6 */ mtlr r0 -/* 80314F54 38 21 00 10 */ addi r1, r1, 0x10 -/* 80314F58 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShape/setArrayAndBindPipeline__8J3DShapeCFv.s b/asm/JSystem/J3DGraphBase/J3DShape/setArrayAndBindPipeline__8J3DShapeCFv.s deleted file mode 100644 index 16fac84c46..0000000000 --- a/asm/JSystem/J3DGraphBase/J3DShape/setArrayAndBindPipeline__8J3DShapeCFv.s +++ /dev/null @@ -1,46 +0,0 @@ -lbl_80315398: -/* 80315398 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8031539C 7C 08 02 A6 */ mflr r0 -/* 803153A0 90 01 00 14 */ stw r0, 0x14(r1) -/* 803153A4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 803153A8 7C 7F 1B 78 */ mr r31, r3 -/* 803153AC 80 03 00 0C */ lwz r0, 0xc(r3) -/* 803153B0 54 00 F7 7E */ rlwinm r0, r0, 0x1e, 0x1d, 0x1f -/* 803153B4 90 0D 90 28 */ stw r0, sCurrentPipeline__11J3DShapeMtx(r13) -/* 803153B8 4B FF FB 35 */ bl loadVtxArray__8J3DShapeCFv -/* 803153BC 80 9F 00 58 */ lwz r4, 0x58(r31) -/* 803153C0 80 7F 00 60 */ lwz r3, 0x60(r31) -/* 803153C4 80 03 00 00 */ lwz r0, 0(r3) -/* 803153C8 54 00 10 3A */ slwi r0, r0, 2 -/* 803153CC 7C 84 00 2E */ lwzx r4, r4, r0 -/* 803153D0 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */ -/* 803153D4 38 63 4A C8 */ addi r3, r3, j3dSys@l /* 0x80434AC8@l */ -/* 803153D8 90 83 01 04 */ stw r4, 0x104(r3) -/* 803153DC 38 60 00 15 */ li r3, 0x15 -/* 803153E0 38 A0 00 30 */ li r5, 0x30 -/* 803153E4 48 04 67 45 */ bl GXSetArray -/* 803153E8 80 9F 00 5C */ lwz r4, 0x5c(r31) -/* 803153EC 80 7F 00 60 */ lwz r3, 0x60(r31) -/* 803153F0 80 03 00 00 */ lwz r0, 0(r3) -/* 803153F4 54 00 10 3A */ slwi r0, r0, 2 -/* 803153F8 7C 84 00 2E */ lwzx r4, r4, r0 -/* 803153FC 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */ -/* 80315400 38 63 4A C8 */ addi r3, r3, j3dSys@l /* 0x80434AC8@l */ -/* 80315404 90 83 01 08 */ stw r4, 0x108(r3) -/* 80315408 38 60 00 16 */ li r3, 0x16 -/* 8031540C 38 A0 00 24 */ li r5, 0x24 -/* 80315410 48 04 67 19 */ bl GXSetArray -/* 80315414 80 1F 00 54 */ lwz r0, 0x54(r31) -/* 80315418 90 0D 90 2C */ stw r0, sCurrentScaleFlag__11J3DShapeMtx(r13) -/* 8031541C 88 1F 00 34 */ lbz r0, 0x34(r31) -/* 80315420 98 0D 90 30 */ stb r0, struct_804515B0+0x0(r13) -/* 80315424 88 1F 00 48 */ lbz r0, 0x48(r31) -/* 80315428 98 0D 90 54 */ stb r0, data_804515D4(r13) -/* 8031542C 80 1F 00 0C */ lwz r0, 0xc(r31) -/* 80315430 54 00 04 26 */ rlwinm r0, r0, 0, 0x10, 0x13 -/* 80315434 90 0D 90 34 */ stw r0, sTexMtxLoadType__11J3DShapeMtx(r13) -/* 80315438 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8031543C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80315440 7C 08 03 A6 */ mtlr r0 -/* 80315444 38 21 00 10 */ addi r1, r1, 0x10 -/* 80315448 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShape/simpleDraw__8J3DShapeCFv.s b/asm/JSystem/J3DGraphBase/J3DShape/simpleDraw__8J3DShapeCFv.s deleted file mode 100644 index 20161aef44..0000000000 --- a/asm/JSystem/J3DGraphBase/J3DShape/simpleDraw__8J3DShapeCFv.s +++ /dev/null @@ -1,37 +0,0 @@ -lbl_80315628: -/* 80315628 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8031562C 7C 08 02 A6 */ mflr r0 -/* 80315630 90 01 00 24 */ stw r0, 0x24(r1) -/* 80315634 39 61 00 20 */ addi r11, r1, 0x20 -/* 80315638 48 04 CB A5 */ bl _savegpr_29 -/* 8031563C 7C 7E 1B 78 */ mr r30, r3 -/* 80315640 38 00 00 00 */ li r0, 0 -/* 80315644 90 0D 90 50 */ stw r0, sOldVcdVatCmd__8J3DShape(r13) -/* 80315648 4B FF FC B9 */ bl loadPreDrawSetting__8J3DShapeCFv -/* 8031564C 80 1E 00 0C */ lwz r0, 0xc(r30) -/* 80315650 54 00 F7 7E */ rlwinm r0, r0, 0x1e, 0x1d, 0x1f -/* 80315654 90 0D 90 28 */ stw r0, sCurrentPipeline__11J3DShapeMtx(r13) -/* 80315658 7F C3 F3 78 */ mr r3, r30 -/* 8031565C 4B FF F8 91 */ bl loadVtxArray__8J3DShapeCFv -/* 80315660 A3 FE 00 0A */ lhz r31, 0xa(r30) -/* 80315664 3B A0 00 00 */ li r29, 0 -/* 80315668 83 DE 00 3C */ lwz r30, 0x3c(r30) -/* 8031566C 48 00 00 1C */ b lbl_80315688 -lbl_80315670: -/* 80315670 57 A0 13 BA */ rlwinm r0, r29, 2, 0xe, 0x1d -/* 80315674 7C 7E 00 2E */ lwzx r3, r30, r0 -/* 80315678 28 03 00 00 */ cmplwi r3, 0 -/* 8031567C 41 82 00 08 */ beq lbl_80315684 -/* 80315680 4B FF F4 55 */ bl draw__12J3DShapeDrawCFv -lbl_80315684: -/* 80315684 3B BD 00 01 */ addi r29, r29, 1 -lbl_80315688: -/* 80315688 57 A0 04 3E */ clrlwi r0, r29, 0x10 -/* 8031568C 7C 00 F8 40 */ cmplw r0, r31 -/* 80315690 41 80 FF E0 */ blt lbl_80315670 -/* 80315694 39 61 00 20 */ addi r11, r1, 0x20 -/* 80315698 48 04 CB 91 */ bl _restgpr_29 -/* 8031569C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 803156A0 7C 08 03 A6 */ mtlr r0 -/* 803156A4 38 21 00 20 */ addi r1, r1, 0x20 -/* 803156A8 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeDraw/__ct__12J3DShapeDrawFPCUcUl.s b/asm/JSystem/J3DGraphBase/J3DShapeDraw/__ct__12J3DShapeDrawFPCUcUl.s deleted file mode 100644 index 9d921f0978..0000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeDraw/__ct__12J3DShapeDrawFPCUcUl.s +++ /dev/null @@ -1,7 +0,0 @@ -lbl_80314ABC: -/* 80314ABC 3C C0 80 3D */ lis r6, __vt__12J3DShapeDraw@ha /* 0x803CDC68@ha */ -/* 80314AC0 38 06 DC 68 */ addi r0, r6, __vt__12J3DShapeDraw@l /* 0x803CDC68@l */ -/* 80314AC4 90 03 00 00 */ stw r0, 0(r3) -/* 80314AC8 90 83 00 08 */ stw r4, 8(r3) -/* 80314ACC 90 A3 00 04 */ stw r5, 4(r3) -/* 80314AD0 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeDraw/__dt__12J3DShapeDrawFv.s b/asm/JSystem/J3DGraphBase/J3DShapeDraw/__dt__12J3DShapeDrawFv.s deleted file mode 100644 index 544a395f98..0000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeDraw/__dt__12J3DShapeDrawFv.s +++ /dev/null @@ -1,20 +0,0 @@ -lbl_80314B00: -/* 80314B00 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80314B04 7C 08 02 A6 */ mflr r0 -/* 80314B08 90 01 00 14 */ stw r0, 0x14(r1) -/* 80314B0C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80314B10 7C 7F 1B 79 */ or. r31, r3, r3 -/* 80314B14 41 82 00 1C */ beq lbl_80314B30 -/* 80314B18 3C A0 80 3D */ lis r5, __vt__12J3DShapeDraw@ha /* 0x803CDC68@ha */ -/* 80314B1C 38 05 DC 68 */ addi r0, r5, __vt__12J3DShapeDraw@l /* 0x803CDC68@l */ -/* 80314B20 90 1F 00 00 */ stw r0, 0(r31) -/* 80314B24 7C 80 07 35 */ extsh. r0, r4 -/* 80314B28 40 81 00 08 */ ble lbl_80314B30 -/* 80314B2C 4B FB A2 11 */ bl __dl__FPv -lbl_80314B30: -/* 80314B30 7F E3 FB 78 */ mr r3, r31 -/* 80314B34 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80314B38 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80314B3C 7C 08 03 A6 */ mtlr r0 -/* 80314B40 38 21 00 10 */ addi r1, r1, 0x10 -/* 80314B44 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeDraw/draw__12J3DShapeDrawCFv.s b/asm/JSystem/J3DGraphBase/J3DShapeDraw/draw__12J3DShapeDrawCFv.s deleted file mode 100644 index 55257ad54b..0000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeDraw/draw__12J3DShapeDrawCFv.s +++ /dev/null @@ -1,12 +0,0 @@ -lbl_80314AD4: -/* 80314AD4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80314AD8 7C 08 02 A6 */ mflr r0 -/* 80314ADC 90 01 00 14 */ stw r0, 0x14(r1) -/* 80314AE0 7C 64 1B 78 */ mr r4, r3 -/* 80314AE4 80 63 00 08 */ lwz r3, 8(r3) -/* 80314AE8 80 84 00 04 */ lwz r4, 4(r4) -/* 80314AEC 48 04 B4 05 */ bl GXCallDisplayList -/* 80314AF0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80314AF4 7C 08 03 A6 */ mtlr r0 -/* 80314AF8 38 21 00 10 */ addi r1, r1, 0x10 -/* 80314AFC 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeMtx/resetMtxLoadCache__11J3DShapeMtxFv.s b/asm/JSystem/J3DGraphBase/J3DShapeMtx/resetMtxLoadCache__11J3DShapeMtxFv.s deleted file mode 100644 index ed18122710..0000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeMtx/resetMtxLoadCache__11J3DShapeMtxFv.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_803130A8: -/* 803130A8 3C 60 00 01 */ lis r3, 0x0001 /* 0x0000FFFF@ha */ -/* 803130AC 38 03 FF FF */ addi r0, r3, 0xFFFF /* 0x0000FFFF@l */ -/* 803130B0 3C 60 80 43 */ lis r3, sMtxLoadCache__11J3DShapeMtx@ha /* 0x80434C80@ha */ -/* 803130B4 38 63 4C 80 */ addi r3, r3, sMtxLoadCache__11J3DShapeMtx@l /* 0x80434C80@l */ -/* 803130B8 B0 03 00 12 */ sth r0, 0x12(r3) -/* 803130BC B0 03 00 10 */ sth r0, 0x10(r3) -/* 803130C0 B0 03 00 0E */ sth r0, 0xe(r3) -/* 803130C4 B0 03 00 0C */ sth r0, 0xc(r3) -/* 803130C8 B0 03 00 0A */ sth r0, 0xa(r3) -/* 803130CC B0 03 00 08 */ sth r0, 8(r3) -/* 803130D0 B0 03 00 06 */ sth r0, 6(r3) -/* 803130D4 B0 03 00 04 */ sth r0, 4(r3) -/* 803130D8 B0 03 00 02 */ sth r0, 2(r3) -/* 803130DC B0 03 00 00 */ sth r0, 0(r3) -/* 803130E0 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DSys/reinitGX__6J3DSysFv.s b/asm/JSystem/J3DGraphBase/J3DSys/reinitGX__6J3DSysFv.s deleted file mode 100644 index 0642f5e6ca..0000000000 --- a/asm/JSystem/J3DGraphBase/J3DSys/reinitGX__6J3DSysFv.s +++ /dev/null @@ -1,25 +0,0 @@ -lbl_8031073C: -/* 8031073C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80310740 7C 08 02 A6 */ mflr r0 -/* 80310744 90 01 00 14 */ stw r0, 0x14(r1) -/* 80310748 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8031074C 7C 7F 1B 78 */ mr r31, r3 -/* 80310750 48 00 00 4D */ bl reinitGenMode__6J3DSysFv -/* 80310754 7F E3 FB 78 */ mr r3, r31 -/* 80310758 48 00 00 91 */ bl reinitLighting__6J3DSysFv -/* 8031075C 7F E3 FB 78 */ mr r3, r31 -/* 80310760 48 00 01 35 */ bl reinitTransform__6J3DSysFv -/* 80310764 7F E3 FB 78 */ mr r3, r31 -/* 80310768 48 00 02 31 */ bl reinitTexture__6J3DSysFv -/* 8031076C 7F E3 FB 78 */ mr r3, r31 -/* 80310770 48 00 02 CD */ bl reinitTevStages__6J3DSysFv -/* 80310774 7F E3 FB 78 */ mr r3, r31 -/* 80310778 48 00 05 CD */ bl reinitIndStages__6J3DSysFv -/* 8031077C 7F E3 FB 78 */ mr r3, r31 -/* 80310780 48 00 06 BD */ bl reinitPixelProc__6J3DSysFv -/* 80310784 48 04 B7 49 */ bl GXFlush -/* 80310788 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8031078C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80310790 7C 08 03 A6 */ mtlr r0 -/* 80310794 38 21 00 10 */ addi r1, r1, 0x10 -/* 80310798 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DSys/reinitGenMode__6J3DSysFv.s b/asm/JSystem/J3DGraphBase/J3DSys/reinitGenMode__6J3DSysFv.s deleted file mode 100644 index 0a43df1430..0000000000 --- a/asm/JSystem/J3DGraphBase/J3DSys/reinitGenMode__6J3DSysFv.s +++ /dev/null @@ -1,20 +0,0 @@ -lbl_8031079C: -/* 8031079C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 803107A0 7C 08 02 A6 */ mflr r0 -/* 803107A4 90 01 00 14 */ stw r0, 0x14(r1) -/* 803107A8 38 60 00 00 */ li r3, 0 -/* 803107AC 48 04 D3 85 */ bl GXSetNumChans -/* 803107B0 38 60 00 01 */ li r3, 1 -/* 803107B4 48 04 B6 49 */ bl GXSetNumTexGens -/* 803107B8 38 60 00 01 */ li r3, 1 -/* 803107BC 48 04 F0 D5 */ bl GXSetNumTevStages -/* 803107C0 38 60 00 00 */ li r3, 0 -/* 803107C4 48 04 E9 11 */ bl GXSetNumIndStages -/* 803107C8 38 60 00 02 */ li r3, 2 -/* 803107CC 48 04 C1 B9 */ bl GXSetCullMode -/* 803107D0 38 60 00 00 */ li r3, 0 -/* 803107D4 48 04 C1 D9 */ bl GXSetCoPlanar -/* 803107D8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 803107DC 7C 08 03 A6 */ mtlr r0 -/* 803107E0 38 21 00 10 */ addi r1, r1, 0x10 -/* 803107E4 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DSys/reinitIndStages__6J3DSysFv.s b/asm/JSystem/J3DGraphBase/J3DSys/reinitIndStages__6J3DSysFv.s deleted file mode 100644 index c093999d63..0000000000 --- a/asm/JSystem/J3DGraphBase/J3DSys/reinitIndStages__6J3DSysFv.s +++ /dev/null @@ -1,64 +0,0 @@ -lbl_80310D44: -/* 80310D44 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80310D48 7C 08 02 A6 */ mflr r0 -/* 80310D4C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80310D50 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80310D54 3B E0 00 00 */ li r31, 0 -lbl_80310D58: -/* 80310D58 7F E3 FB 78 */ mr r3, r31 -/* 80310D5C 48 04 E3 9D */ bl GXSetTevDirect -/* 80310D60 3B FF 00 01 */ addi r31, r31, 1 -/* 80310D64 28 1F 00 10 */ cmplwi r31, 0x10 -/* 80310D68 41 80 FF F0 */ blt lbl_80310D58 -/* 80310D6C 38 60 00 00 */ li r3, 0 -/* 80310D70 38 80 00 00 */ li r4, 0 -/* 80310D74 38 A0 00 00 */ li r5, 0 -/* 80310D78 48 04 E2 71 */ bl GXSetIndTexOrder -/* 80310D7C 38 60 00 01 */ li r3, 1 -/* 80310D80 38 80 00 01 */ li r4, 1 -/* 80310D84 38 A0 00 01 */ li r5, 1 -/* 80310D88 48 04 E2 61 */ bl GXSetIndTexOrder -/* 80310D8C 38 60 00 02 */ li r3, 2 -/* 80310D90 38 80 00 02 */ li r4, 2 -/* 80310D94 38 A0 00 02 */ li r5, 2 -/* 80310D98 48 04 E2 51 */ bl GXSetIndTexOrder -/* 80310D9C 38 60 00 03 */ li r3, 3 -/* 80310DA0 38 80 00 03 */ li r4, 3 -/* 80310DA4 38 A0 00 03 */ li r5, 3 -/* 80310DA8 48 04 E2 41 */ bl GXSetIndTexOrder -/* 80310DAC 38 60 00 00 */ li r3, 0 -/* 80310DB0 38 80 00 00 */ li r4, 0 -/* 80310DB4 38 A0 00 00 */ li r5, 0 -/* 80310DB8 48 04 E0 ED */ bl GXSetIndTexCoordScale -/* 80310DBC 38 60 00 01 */ li r3, 1 -/* 80310DC0 38 80 00 00 */ li r4, 0 -/* 80310DC4 38 A0 00 00 */ li r5, 0 -/* 80310DC8 48 04 E0 DD */ bl GXSetIndTexCoordScale -/* 80310DCC 38 60 00 02 */ li r3, 2 -/* 80310DD0 38 80 00 00 */ li r4, 0 -/* 80310DD4 38 A0 00 00 */ li r5, 0 -/* 80310DD8 48 04 E0 CD */ bl GXSetIndTexCoordScale -/* 80310DDC 38 60 00 03 */ li r3, 3 -/* 80310DE0 38 80 00 00 */ li r4, 0 -/* 80310DE4 38 A0 00 00 */ li r5, 0 -/* 80310DE8 48 04 E0 BD */ bl GXSetIndTexCoordScale -/* 80310DEC 38 60 00 01 */ li r3, 1 -/* 80310DF0 3C 80 80 3D */ lis r4, IndMtx@ha /* 0x803CD8E0@ha */ -/* 80310DF4 38 84 D8 E0 */ addi r4, r4, IndMtx@l /* 0x803CD8E0@l */ -/* 80310DF8 38 A0 00 01 */ li r5, 1 -/* 80310DFC 48 04 DF 31 */ bl GXSetIndTexMtx -/* 80310E00 38 60 00 02 */ li r3, 2 -/* 80310E04 3C 80 80 3D */ lis r4, IndMtx@ha /* 0x803CD8E0@ha */ -/* 80310E08 38 84 D8 E0 */ addi r4, r4, IndMtx@l /* 0x803CD8E0@l */ -/* 80310E0C 38 A0 00 01 */ li r5, 1 -/* 80310E10 48 04 DF 1D */ bl GXSetIndTexMtx -/* 80310E14 38 60 00 03 */ li r3, 3 -/* 80310E18 3C 80 80 3D */ lis r4, IndMtx@ha /* 0x803CD8E0@ha */ -/* 80310E1C 38 84 D8 E0 */ addi r4, r4, IndMtx@l /* 0x803CD8E0@l */ -/* 80310E20 38 A0 00 01 */ li r5, 1 -/* 80310E24 48 04 DF 09 */ bl GXSetIndTexMtx -/* 80310E28 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80310E2C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80310E30 7C 08 03 A6 */ mtlr r0 -/* 80310E34 38 21 00 10 */ addi r1, r1, 0x10 -/* 80310E38 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DSys/reinitLighting__6J3DSysFv.s b/asm/JSystem/J3DGraphBase/J3DSys/reinitLighting__6J3DSysFv.s deleted file mode 100644 index ede88fcae0..0000000000 --- a/asm/JSystem/J3DGraphBase/J3DSys/reinitLighting__6J3DSysFv.s +++ /dev/null @@ -1,44 +0,0 @@ -lbl_803107E8: -/* 803107E8 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 803107EC 7C 08 02 A6 */ mflr r0 -/* 803107F0 90 01 00 24 */ stw r0, 0x24(r1) -/* 803107F4 38 60 00 04 */ li r3, 4 -/* 803107F8 38 80 00 00 */ li r4, 0 -/* 803107FC 38 A0 00 00 */ li r5, 0 -/* 80310800 38 C0 00 01 */ li r6, 1 -/* 80310804 38 E0 00 00 */ li r7, 0 -/* 80310808 39 00 00 00 */ li r8, 0 -/* 8031080C 39 20 00 02 */ li r9, 2 -/* 80310810 48 04 D3 5D */ bl GXSetChanCtrl -/* 80310814 38 60 00 05 */ li r3, 5 -/* 80310818 38 80 00 00 */ li r4, 0 -/* 8031081C 38 A0 00 00 */ li r5, 0 -/* 80310820 38 C0 00 01 */ li r6, 1 -/* 80310824 38 E0 00 00 */ li r7, 0 -/* 80310828 39 00 00 00 */ li r8, 0 -/* 8031082C 39 20 00 02 */ li r9, 2 -/* 80310830 48 04 D3 3D */ bl GXSetChanCtrl -/* 80310834 80 0D 83 D0 */ lwz r0, ColorBlack(r13) -/* 80310838 90 01 00 14 */ stw r0, 0x14(r1) -/* 8031083C 38 60 00 04 */ li r3, 4 -/* 80310840 38 81 00 14 */ addi r4, r1, 0x14 -/* 80310844 48 04 D1 1D */ bl GXSetChanAmbColor -/* 80310848 80 0D 83 D0 */ lwz r0, ColorBlack(r13) -/* 8031084C 90 01 00 10 */ stw r0, 0x10(r1) -/* 80310850 38 60 00 05 */ li r3, 5 -/* 80310854 38 81 00 10 */ addi r4, r1, 0x10 -/* 80310858 48 04 D1 09 */ bl GXSetChanAmbColor -/* 8031085C 80 0D 83 D4 */ lwz r0, ColorWhite(r13) -/* 80310860 90 01 00 0C */ stw r0, 0xc(r1) -/* 80310864 38 60 00 04 */ li r3, 4 -/* 80310868 38 81 00 0C */ addi r4, r1, 0xc -/* 8031086C 48 04 D1 DD */ bl GXSetChanMatColor -/* 80310870 80 0D 83 D4 */ lwz r0, ColorWhite(r13) -/* 80310874 90 01 00 08 */ stw r0, 8(r1) -/* 80310878 38 60 00 05 */ li r3, 5 -/* 8031087C 38 81 00 08 */ addi r4, r1, 8 -/* 80310880 48 04 D1 C9 */ bl GXSetChanMatColor -/* 80310884 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80310888 7C 08 03 A6 */ mtlr r0 -/* 8031088C 38 21 00 20 */ addi r1, r1, 0x20 -/* 80310890 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DSys/reinitPixelProc__6J3DSysFv.s b/asm/JSystem/J3DGraphBase/J3DSys/reinitPixelProc__6J3DSysFv.s deleted file mode 100644 index 2af96e2631..0000000000 --- a/asm/JSystem/J3DGraphBase/J3DSys/reinitPixelProc__6J3DSysFv.s +++ /dev/null @@ -1,38 +0,0 @@ -lbl_80310E3C: -/* 80310E3C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80310E40 7C 08 02 A6 */ mflr r0 -/* 80310E44 90 01 00 14 */ stw r0, 0x14(r1) -/* 80310E48 38 60 00 00 */ li r3, 0 -/* 80310E4C 38 80 00 04 */ li r4, 4 -/* 80310E50 38 A0 00 05 */ li r5, 5 -/* 80310E54 38 C0 00 00 */ li r6, 0 -/* 80310E58 48 04 ED 99 */ bl GXSetBlendMode -/* 80310E5C 38 60 00 01 */ li r3, 1 -/* 80310E60 48 04 ED E5 */ bl GXSetColorUpdate -/* 80310E64 38 60 00 00 */ li r3, 0 -/* 80310E68 48 04 EE 09 */ bl GXSetAlphaUpdate -/* 80310E6C 38 60 00 01 */ li r3, 1 -/* 80310E70 48 04 EF 69 */ bl GXSetDither -/* 80310E74 80 0D 83 D0 */ lwz r0, ColorBlack(r13) -/* 80310E78 90 01 00 08 */ stw r0, 8(r1) -/* 80310E7C 38 60 00 00 */ li r3, 0 -/* 80310E80 C0 22 C9 68 */ lfs f1, lit_892(r2) -/* 80310E84 C0 42 C9 6C */ lfs f2, lit_893(r2) -/* 80310E88 C0 62 C9 70 */ lfs f3, lit_894(r2) -/* 80310E8C FC 80 10 90 */ fmr f4, f2 -/* 80310E90 38 81 00 08 */ addi r4, r1, 8 -/* 80310E94 48 04 EA 25 */ bl GXSetFog -/* 80310E98 38 60 00 00 */ li r3, 0 -/* 80310E9C 38 80 00 00 */ li r4, 0 -/* 80310EA0 38 A0 00 00 */ li r5, 0 -/* 80310EA4 48 04 EC 29 */ bl GXSetFogRangeAdj -/* 80310EA8 38 60 00 01 */ li r3, 1 -/* 80310EAC 38 80 00 03 */ li r4, 3 -/* 80310EB0 38 A0 00 01 */ li r5, 1 -/* 80310EB4 48 04 ED E9 */ bl GXSetZMode -/* 80310EB8 38 60 00 01 */ li r3, 1 -/* 80310EBC 48 04 EE 15 */ bl GXSetZCompLoc -/* 80310EC0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80310EC4 7C 08 03 A6 */ mtlr r0 -/* 80310EC8 38 21 00 10 */ addi r1, r1, 0x10 -/* 80310ECC 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DSys/reinitTevStages__6J3DSysFv.s b/asm/JSystem/J3DGraphBase/J3DSys/reinitTevStages__6J3DSysFv.s deleted file mode 100644 index 1105ad297b..0000000000 --- a/asm/JSystem/J3DGraphBase/J3DSys/reinitTevStages__6J3DSysFv.s +++ /dev/null @@ -1,196 +0,0 @@ -lbl_80310A3C: -/* 80310A3C 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 80310A40 7C 08 02 A6 */ mflr r0 -/* 80310A44 90 01 00 34 */ stw r0, 0x34(r1) -/* 80310A48 93 E1 00 2C */ stw r31, 0x2c(r1) -/* 80310A4C 38 60 00 00 */ li r3, 0 -/* 80310A50 38 80 00 FF */ li r4, 0xff -/* 80310A54 38 A0 00 FF */ li r5, 0xff -/* 80310A58 38 C0 00 FF */ li r6, 0xff -/* 80310A5C 48 04 EC 99 */ bl GXSetTevOrder -/* 80310A60 38 60 00 01 */ li r3, 1 -/* 80310A64 38 80 00 FF */ li r4, 0xff -/* 80310A68 38 A0 00 FF */ li r5, 0xff -/* 80310A6C 38 C0 00 FF */ li r6, 0xff -/* 80310A70 48 04 EC 85 */ bl GXSetTevOrder -/* 80310A74 38 60 00 02 */ li r3, 2 -/* 80310A78 38 80 00 FF */ li r4, 0xff -/* 80310A7C 38 A0 00 FF */ li r5, 0xff -/* 80310A80 38 C0 00 FF */ li r6, 0xff -/* 80310A84 48 04 EC 71 */ bl GXSetTevOrder -/* 80310A88 38 60 00 03 */ li r3, 3 -/* 80310A8C 38 80 00 FF */ li r4, 0xff -/* 80310A90 38 A0 00 FF */ li r5, 0xff -/* 80310A94 38 C0 00 FF */ li r6, 0xff -/* 80310A98 48 04 EC 5D */ bl GXSetTevOrder -/* 80310A9C 38 60 00 04 */ li r3, 4 -/* 80310AA0 38 80 00 FF */ li r4, 0xff -/* 80310AA4 38 A0 00 FF */ li r5, 0xff -/* 80310AA8 38 C0 00 FF */ li r6, 0xff -/* 80310AAC 48 04 EC 49 */ bl GXSetTevOrder -/* 80310AB0 38 60 00 05 */ li r3, 5 -/* 80310AB4 38 80 00 FF */ li r4, 0xff -/* 80310AB8 38 A0 00 FF */ li r5, 0xff -/* 80310ABC 38 C0 00 FF */ li r6, 0xff -/* 80310AC0 48 04 EC 35 */ bl GXSetTevOrder -/* 80310AC4 38 60 00 06 */ li r3, 6 -/* 80310AC8 38 80 00 FF */ li r4, 0xff -/* 80310ACC 38 A0 00 FF */ li r5, 0xff -/* 80310AD0 38 C0 00 FF */ li r6, 0xff -/* 80310AD4 48 04 EC 21 */ bl GXSetTevOrder -/* 80310AD8 38 60 00 07 */ li r3, 7 -/* 80310ADC 38 80 00 FF */ li r4, 0xff -/* 80310AE0 38 A0 00 FF */ li r5, 0xff -/* 80310AE4 38 C0 00 FF */ li r6, 0xff -/* 80310AE8 48 04 EC 0D */ bl GXSetTevOrder -/* 80310AEC 38 60 00 08 */ li r3, 8 -/* 80310AF0 38 80 00 FF */ li r4, 0xff -/* 80310AF4 38 A0 00 FF */ li r5, 0xff -/* 80310AF8 38 C0 00 FF */ li r6, 0xff -/* 80310AFC 48 04 EB F9 */ bl GXSetTevOrder -/* 80310B00 38 60 00 09 */ li r3, 9 -/* 80310B04 38 80 00 FF */ li r4, 0xff -/* 80310B08 38 A0 00 FF */ li r5, 0xff -/* 80310B0C 38 C0 00 FF */ li r6, 0xff -/* 80310B10 48 04 EB E5 */ bl GXSetTevOrder -/* 80310B14 38 60 00 0A */ li r3, 0xa -/* 80310B18 38 80 00 FF */ li r4, 0xff -/* 80310B1C 38 A0 00 FF */ li r5, 0xff -/* 80310B20 38 C0 00 FF */ li r6, 0xff -/* 80310B24 48 04 EB D1 */ bl GXSetTevOrder -/* 80310B28 38 60 00 0B */ li r3, 0xb -/* 80310B2C 38 80 00 FF */ li r4, 0xff -/* 80310B30 38 A0 00 FF */ li r5, 0xff -/* 80310B34 38 C0 00 FF */ li r6, 0xff -/* 80310B38 48 04 EB BD */ bl GXSetTevOrder -/* 80310B3C 38 60 00 0C */ li r3, 0xc -/* 80310B40 38 80 00 FF */ li r4, 0xff -/* 80310B44 38 A0 00 FF */ li r5, 0xff -/* 80310B48 38 C0 00 FF */ li r6, 0xff -/* 80310B4C 48 04 EB A9 */ bl GXSetTevOrder -/* 80310B50 38 60 00 0D */ li r3, 0xd -/* 80310B54 38 80 00 FF */ li r4, 0xff -/* 80310B58 38 A0 00 FF */ li r5, 0xff -/* 80310B5C 38 C0 00 FF */ li r6, 0xff -/* 80310B60 48 04 EB 95 */ bl GXSetTevOrder -/* 80310B64 38 60 00 0E */ li r3, 0xe -/* 80310B68 38 80 00 FF */ li r4, 0xff -/* 80310B6C 38 A0 00 FF */ li r5, 0xff -/* 80310B70 38 C0 00 FF */ li r6, 0xff -/* 80310B74 48 04 EB 81 */ bl GXSetTevOrder -/* 80310B78 38 60 00 0F */ li r3, 0xf -/* 80310B7C 38 80 00 FF */ li r4, 0xff -/* 80310B80 38 A0 00 FF */ li r5, 0xff -/* 80310B84 38 C0 00 FF */ li r6, 0xff -/* 80310B88 48 04 EB 6D */ bl GXSetTevOrder -/* 80310B8C 80 0D 83 D4 */ lwz r0, ColorWhite(r13) -/* 80310B90 90 01 00 20 */ stw r0, 0x20(r1) -/* 80310B94 38 60 00 01 */ li r3, 1 -/* 80310B98 38 81 00 20 */ addi r4, r1, 0x20 -/* 80310B9C 48 04 E7 E1 */ bl GXSetTevColor -/* 80310BA0 80 0D 83 D4 */ lwz r0, ColorWhite(r13) -/* 80310BA4 90 01 00 1C */ stw r0, 0x1c(r1) -/* 80310BA8 38 60 00 02 */ li r3, 2 -/* 80310BAC 38 81 00 1C */ addi r4, r1, 0x1c -/* 80310BB0 48 04 E7 CD */ bl GXSetTevColor -/* 80310BB4 80 0D 83 D4 */ lwz r0, ColorWhite(r13) -/* 80310BB8 90 01 00 18 */ stw r0, 0x18(r1) -/* 80310BBC 38 60 00 03 */ li r3, 3 -/* 80310BC0 38 81 00 18 */ addi r4, r1, 0x18 -/* 80310BC4 48 04 E7 B9 */ bl GXSetTevColor -/* 80310BC8 80 0D 83 D4 */ lwz r0, ColorWhite(r13) -/* 80310BCC 90 01 00 14 */ stw r0, 0x14(r1) -/* 80310BD0 38 60 00 00 */ li r3, 0 -/* 80310BD4 38 81 00 14 */ addi r4, r1, 0x14 -/* 80310BD8 48 04 E8 69 */ bl GXSetTevKColor -/* 80310BDC 80 0D 83 D4 */ lwz r0, ColorWhite(r13) -/* 80310BE0 90 01 00 10 */ stw r0, 0x10(r1) -/* 80310BE4 38 60 00 01 */ li r3, 1 -/* 80310BE8 38 81 00 10 */ addi r4, r1, 0x10 -/* 80310BEC 48 04 E8 55 */ bl GXSetTevKColor -/* 80310BF0 80 0D 83 D4 */ lwz r0, ColorWhite(r13) -/* 80310BF4 90 01 00 0C */ stw r0, 0xc(r1) -/* 80310BF8 38 60 00 02 */ li r3, 2 -/* 80310BFC 38 81 00 0C */ addi r4, r1, 0xc -/* 80310C00 48 04 E8 41 */ bl GXSetTevKColor -/* 80310C04 80 0D 83 D4 */ lwz r0, ColorWhite(r13) -/* 80310C08 90 01 00 08 */ stw r0, 8(r1) -/* 80310C0C 38 60 00 03 */ li r3, 3 -/* 80310C10 38 81 00 08 */ addi r4, r1, 8 -/* 80310C14 48 04 E8 2D */ bl GXSetTevKColor -/* 80310C18 3B E0 00 00 */ li r31, 0 -lbl_80310C1C: -/* 80310C1C 7F E3 FB 78 */ mr r3, r31 -/* 80310C20 38 80 00 0A */ li r4, 0xa -/* 80310C24 38 A0 00 0F */ li r5, 0xf -/* 80310C28 38 C0 00 0F */ li r6, 0xf -/* 80310C2C 38 E0 00 0F */ li r7, 0xf -/* 80310C30 48 04 E5 F5 */ bl GXSetTevColorIn -/* 80310C34 7F E3 FB 78 */ mr r3, r31 -/* 80310C38 38 80 00 00 */ li r4, 0 -/* 80310C3C 38 A0 00 00 */ li r5, 0 -/* 80310C40 38 C0 00 00 */ li r6, 0 -/* 80310C44 38 E0 00 01 */ li r7, 1 -/* 80310C48 39 00 00 00 */ li r8, 0 -/* 80310C4C 48 04 E6 61 */ bl GXSetTevColorOp -/* 80310C50 7F E3 FB 78 */ mr r3, r31 -/* 80310C54 38 80 00 05 */ li r4, 5 -/* 80310C58 38 A0 00 07 */ li r5, 7 -/* 80310C5C 38 C0 00 07 */ li r6, 7 -/* 80310C60 38 E0 00 07 */ li r7, 7 -/* 80310C64 48 04 E6 05 */ bl GXSetTevAlphaIn -/* 80310C68 7F E3 FB 78 */ mr r3, r31 -/* 80310C6C 38 80 00 00 */ li r4, 0 -/* 80310C70 38 A0 00 00 */ li r5, 0 -/* 80310C74 38 C0 00 00 */ li r6, 0 -/* 80310C78 38 E0 00 01 */ li r7, 1 -/* 80310C7C 39 00 00 00 */ li r8, 0 -/* 80310C80 48 04 E6 95 */ bl GXSetTevAlphaOp -/* 80310C84 7F E3 FB 78 */ mr r3, r31 -/* 80310C88 38 80 00 06 */ li r4, 6 -/* 80310C8C 48 04 E8 19 */ bl GXSetTevKColorSel -/* 80310C90 7F E3 FB 78 */ mr r3, r31 -/* 80310C94 38 80 00 00 */ li r4, 0 -/* 80310C98 48 04 E8 69 */ bl GXSetTevKAlphaSel -/* 80310C9C 7F E3 FB 78 */ mr r3, r31 -/* 80310CA0 38 80 00 00 */ li r4, 0 -/* 80310CA4 38 A0 00 00 */ li r5, 0 -/* 80310CA8 48 04 E8 B5 */ bl GXSetTevSwapMode -/* 80310CAC 3B FF 00 01 */ addi r31, r31, 1 -/* 80310CB0 28 1F 00 10 */ cmplwi r31, 0x10 -/* 80310CB4 41 80 FF 68 */ blt lbl_80310C1C -/* 80310CB8 38 60 00 00 */ li r3, 0 -/* 80310CBC 38 80 00 00 */ li r4, 0 -/* 80310CC0 38 A0 00 01 */ li r5, 1 -/* 80310CC4 38 C0 00 02 */ li r6, 2 -/* 80310CC8 38 E0 00 03 */ li r7, 3 -/* 80310CCC 48 04 E8 D9 */ bl GXSetTevSwapModeTable -/* 80310CD0 38 60 00 01 */ li r3, 1 -/* 80310CD4 38 80 00 00 */ li r4, 0 -/* 80310CD8 38 A0 00 00 */ li r5, 0 -/* 80310CDC 38 C0 00 00 */ li r6, 0 -/* 80310CE0 38 E0 00 03 */ li r7, 3 -/* 80310CE4 48 04 E8 C1 */ bl GXSetTevSwapModeTable -/* 80310CE8 38 60 00 02 */ li r3, 2 -/* 80310CEC 38 80 00 01 */ li r4, 1 -/* 80310CF0 38 A0 00 01 */ li r5, 1 -/* 80310CF4 38 C0 00 01 */ li r6, 1 -/* 80310CF8 38 E0 00 03 */ li r7, 3 -/* 80310CFC 48 04 E8 A9 */ bl GXSetTevSwapModeTable -/* 80310D00 38 60 00 03 */ li r3, 3 -/* 80310D04 38 80 00 02 */ li r4, 2 -/* 80310D08 38 A0 00 02 */ li r5, 2 -/* 80310D0C 38 C0 00 02 */ li r6, 2 -/* 80310D10 38 E0 00 03 */ li r7, 3 -/* 80310D14 48 04 E8 91 */ bl GXSetTevSwapModeTable -/* 80310D18 38 60 00 07 */ li r3, 7 -/* 80310D1C 38 80 00 00 */ li r4, 0 -/* 80310D20 38 A0 00 00 */ li r5, 0 -/* 80310D24 38 C0 00 07 */ li r6, 7 -/* 80310D28 38 E0 00 00 */ li r7, 0 -/* 80310D2C 48 04 E8 F9 */ bl GXSetAlphaCompare -/* 80310D30 83 E1 00 2C */ lwz r31, 0x2c(r1) -/* 80310D34 80 01 00 34 */ lwz r0, 0x34(r1) -/* 80310D38 7C 08 03 A6 */ mtlr r0 -/* 80310D3C 38 21 00 30 */ addi r1, r1, 0x30 -/* 80310D40 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DSys/reinitTexture__6J3DSysFv.s b/asm/JSystem/J3DGraphBase/J3DSys/reinitTexture__6J3DSysFv.s deleted file mode 100644 index 5f81d3286d..0000000000 --- a/asm/JSystem/J3DGraphBase/J3DSys/reinitTexture__6J3DSysFv.s +++ /dev/null @@ -1,42 +0,0 @@ -lbl_80310998: -/* 80310998 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 8031099C 7C 08 02 A6 */ mflr r0 -/* 803109A0 90 01 00 34 */ stw r0, 0x34(r1) -/* 803109A4 38 61 00 08 */ addi r3, r1, 8 -/* 803109A8 3C 80 80 3D */ lis r4, NullTexData@ha /* 0x803CD8A0@ha */ -/* 803109AC 38 84 D8 A0 */ addi r4, r4, NullTexData@l /* 0x803CD8A0@l */ -/* 803109B0 38 A0 00 04 */ li r5, 4 -/* 803109B4 38 C0 00 04 */ li r6, 4 -/* 803109B8 38 E0 00 03 */ li r7, 3 -/* 803109BC 39 00 00 00 */ li r8, 0 -/* 803109C0 39 20 00 00 */ li r9, 0 -/* 803109C4 39 40 00 00 */ li r10, 0 -/* 803109C8 48 04 D4 79 */ bl GXInitTexObj -/* 803109CC 38 61 00 08 */ addi r3, r1, 8 -/* 803109D0 38 80 00 00 */ li r4, 0 -/* 803109D4 48 04 DA 41 */ bl GXLoadTexObj -/* 803109D8 38 61 00 08 */ addi r3, r1, 8 -/* 803109DC 38 80 00 01 */ li r4, 1 -/* 803109E0 48 04 DA 35 */ bl GXLoadTexObj -/* 803109E4 38 61 00 08 */ addi r3, r1, 8 -/* 803109E8 38 80 00 02 */ li r4, 2 -/* 803109EC 48 04 DA 29 */ bl GXLoadTexObj -/* 803109F0 38 61 00 08 */ addi r3, r1, 8 -/* 803109F4 38 80 00 03 */ li r4, 3 -/* 803109F8 48 04 DA 1D */ bl GXLoadTexObj -/* 803109FC 38 61 00 08 */ addi r3, r1, 8 -/* 80310A00 38 80 00 04 */ li r4, 4 -/* 80310A04 48 04 DA 11 */ bl GXLoadTexObj -/* 80310A08 38 61 00 08 */ addi r3, r1, 8 -/* 80310A0C 38 80 00 05 */ li r4, 5 -/* 80310A10 48 04 DA 05 */ bl GXLoadTexObj -/* 80310A14 38 61 00 08 */ addi r3, r1, 8 -/* 80310A18 38 80 00 06 */ li r4, 6 -/* 80310A1C 48 04 D9 F9 */ bl GXLoadTexObj -/* 80310A20 38 61 00 08 */ addi r3, r1, 8 -/* 80310A24 38 80 00 07 */ li r4, 7 -/* 80310A28 48 04 D9 ED */ bl GXLoadTexObj -/* 80310A2C 80 01 00 34 */ lwz r0, 0x34(r1) -/* 80310A30 7C 08 03 A6 */ mtlr r0 -/* 80310A34 38 21 00 30 */ addi r1, r1, 0x30 -/* 80310A38 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DSys/reinitTransform__6J3DSysFv.s b/asm/JSystem/J3DGraphBase/J3DSys/reinitTransform__6J3DSysFv.s deleted file mode 100644 index 700844e65b..0000000000 --- a/asm/JSystem/J3DGraphBase/J3DSys/reinitTransform__6J3DSysFv.s +++ /dev/null @@ -1,66 +0,0 @@ -lbl_80310894: -/* 80310894 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80310898 7C 08 02 A6 */ mflr r0 -/* 8031089C 90 01 00 14 */ stw r0, 0x14(r1) -/* 803108A0 38 60 00 00 */ li r3, 0 -/* 803108A4 48 04 FA 49 */ bl GXSetCurrentMtx -/* 803108A8 38 60 00 00 */ li r3, 0 -/* 803108AC 38 80 00 01 */ li r4, 1 -/* 803108B0 38 A0 00 04 */ li r5, 4 -/* 803108B4 38 C0 00 3C */ li r6, 0x3c -/* 803108B8 38 E0 00 00 */ li r7, 0 -/* 803108BC 39 00 00 7D */ li r8, 0x7d -/* 803108C0 48 04 B2 BD */ bl GXSetTexCoordGen2 -/* 803108C4 38 60 00 01 */ li r3, 1 -/* 803108C8 38 80 00 01 */ li r4, 1 -/* 803108CC 38 A0 00 05 */ li r5, 5 -/* 803108D0 38 C0 00 3C */ li r6, 0x3c -/* 803108D4 38 E0 00 00 */ li r7, 0 -/* 803108D8 39 00 00 7D */ li r8, 0x7d -/* 803108DC 48 04 B2 A1 */ bl GXSetTexCoordGen2 -/* 803108E0 38 60 00 02 */ li r3, 2 -/* 803108E4 38 80 00 01 */ li r4, 1 -/* 803108E8 38 A0 00 06 */ li r5, 6 -/* 803108EC 38 C0 00 3C */ li r6, 0x3c -/* 803108F0 38 E0 00 00 */ li r7, 0 -/* 803108F4 39 00 00 7D */ li r8, 0x7d -/* 803108F8 48 04 B2 85 */ bl GXSetTexCoordGen2 -/* 803108FC 38 60 00 03 */ li r3, 3 -/* 80310900 38 80 00 01 */ li r4, 1 -/* 80310904 38 A0 00 07 */ li r5, 7 -/* 80310908 38 C0 00 3C */ li r6, 0x3c -/* 8031090C 38 E0 00 00 */ li r7, 0 -/* 80310910 39 00 00 7D */ li r8, 0x7d -/* 80310914 48 04 B2 69 */ bl GXSetTexCoordGen2 -/* 80310918 38 60 00 04 */ li r3, 4 -/* 8031091C 38 80 00 01 */ li r4, 1 -/* 80310920 38 A0 00 08 */ li r5, 8 -/* 80310924 38 C0 00 3C */ li r6, 0x3c -/* 80310928 38 E0 00 00 */ li r7, 0 -/* 8031092C 39 00 00 7D */ li r8, 0x7d -/* 80310930 48 04 B2 4D */ bl GXSetTexCoordGen2 -/* 80310934 38 60 00 05 */ li r3, 5 -/* 80310938 38 80 00 01 */ li r4, 1 -/* 8031093C 38 A0 00 09 */ li r5, 9 -/* 80310940 38 C0 00 3C */ li r6, 0x3c -/* 80310944 38 E0 00 00 */ li r7, 0 -/* 80310948 39 00 00 7D */ li r8, 0x7d -/* 8031094C 48 04 B2 31 */ bl GXSetTexCoordGen2 -/* 80310950 38 60 00 06 */ li r3, 6 -/* 80310954 38 80 00 01 */ li r4, 1 -/* 80310958 38 A0 00 0A */ li r5, 0xa -/* 8031095C 38 C0 00 3C */ li r6, 0x3c -/* 80310960 38 E0 00 00 */ li r7, 0 -/* 80310964 39 00 00 7D */ li r8, 0x7d -/* 80310968 48 04 B2 15 */ bl GXSetTexCoordGen2 -/* 8031096C 38 60 00 07 */ li r3, 7 -/* 80310970 38 80 00 01 */ li r4, 1 -/* 80310974 38 A0 00 0B */ li r5, 0xb -/* 80310978 38 C0 00 3C */ li r6, 0x3c -/* 8031097C 38 E0 00 00 */ li r7, 0 -/* 80310980 39 00 00 7D */ li r8, 0x7d -/* 80310984 48 04 B1 F9 */ bl GXSetTexCoordGen2 -/* 80310988 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8031098C 7C 08 03 A6 */ mtlr r0 -/* 80310990 38 21 00 10 */ addi r1, r1, 0x10 -/* 80310994 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DTevs/calc__9J3DTexMtxFPA4_Cf.s b/asm/JSystem/J3DGraphBase/J3DTevs/calc__9J3DTexMtxFPA4_Cf.s deleted file mode 100644 index d74d820288..0000000000 --- a/asm/JSystem/J3DGraphBase/J3DTevs/calc__9J3DTexMtxFPA4_Cf.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80323900: -/* 80323900 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80323904 7C 08 02 A6 */ mflr r0 -/* 80323908 90 01 00 14 */ stw r0, 0x14(r1) -/* 8032390C 48 00 00 15 */ bl calcTexMtx__9J3DTexMtxFPA4_Cf -/* 80323910 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80323914 7C 08 03 A6 */ mtlr r0 -/* 80323918 38 21 00 10 */ addi r1, r1, 0x10 -/* 8032391C 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DTevs/load__9J3DTexMtxCFUl.s b/asm/JSystem/J3DGraphBase/J3DTevs/load__9J3DTexMtxCFUl.s deleted file mode 100644 index 5a400960a3..0000000000 --- a/asm/JSystem/J3DGraphBase/J3DTevs/load__9J3DTexMtxCFUl.s +++ /dev/null @@ -1,18 +0,0 @@ -lbl_803238C4: -/* 803238C4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 803238C8 7C 08 02 A6 */ mflr r0 -/* 803238CC 90 01 00 14 */ stw r0, 0x14(r1) -/* 803238D0 3C A0 80 43 */ lis r5, j3dSys@ha /* 0x80434AC8@ha */ -/* 803238D4 38 A5 4A C8 */ addi r5, r5, j3dSys@l /* 0x80434AC8@l */ -/* 803238D8 80 05 00 34 */ lwz r0, 0x34(r5) -/* 803238DC 54 00 00 43 */ rlwinm. r0, r0, 0, 1, 1 -/* 803238E0 41 82 00 0C */ beq lbl_803238EC -/* 803238E4 48 00 0A D9 */ bl loadPostTexMtx__9J3DTexMtxCFUl -/* 803238E8 48 00 00 08 */ b lbl_803238F0 -lbl_803238EC: -/* 803238EC 48 00 0A 6D */ bl loadTexMtx__9J3DTexMtxCFUl -lbl_803238F0: -/* 803238F0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 803238F4 7C 08 03 A6 */ mtlr r0 -/* 803238F8 38 21 00 10 */ addi r1, r1, 0x10 -/* 803238FC 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPABaseShape/JPACalcClrIdxMerge__FP18JPAEmitterWorkData.s b/asm/JSystem/JParticle/JPABaseShape/JPACalcClrIdxMerge__FP18JPAEmitterWorkData.s deleted file mode 100644 index 2e0e3f7e6a..0000000000 --- a/asm/JSystem/JParticle/JPABaseShape/JPACalcClrIdxMerge__FP18JPAEmitterWorkData.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_80277308: -/* 80277308 38 00 00 00 */ li r0, 0 -/* 8027730C B0 03 02 14 */ sth r0, 0x214(r3) -/* 80277310 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPABaseShape/JPACalcClrIdxRandom__FP18JPAEmitterWorkData.s b/asm/JSystem/JParticle/JPABaseShape/JPACalcClrIdxRandom__FP18JPAEmitterWorkData.s deleted file mode 100644 index 9abe2afa1a..0000000000 --- a/asm/JSystem/JParticle/JPABaseShape/JPACalcClrIdxRandom__FP18JPAEmitterWorkData.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_80277384: -/* 80277384 38 00 00 00 */ li r0, 0 -/* 80277388 B0 03 02 14 */ sth r0, 0x214(r3) -/* 8027738C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPABaseShape/JPACalcColorCopy__FP18JPAEmitterWorkDataP15JPABaseParticle.s b/asm/JSystem/JParticle/JPABaseShape/JPACalcColorCopy__FP18JPAEmitterWorkDataP15JPABaseParticle.s deleted file mode 100644 index 56ae62f480..0000000000 --- a/asm/JSystem/JParticle/JPABaseShape/JPACalcColorCopy__FP18JPAEmitterWorkDataP15JPABaseParticle.s +++ /dev/null @@ -1,19 +0,0 @@ -lbl_802774BC: -/* 802774BC 80 63 00 00 */ lwz r3, 0(r3) -/* 802774C0 88 03 01 08 */ lbz r0, 0x108(r3) -/* 802774C4 98 04 00 8C */ stb r0, 0x8c(r4) -/* 802774C8 88 03 01 09 */ lbz r0, 0x109(r3) -/* 802774CC 98 04 00 8D */ stb r0, 0x8d(r4) -/* 802774D0 88 03 01 0A */ lbz r0, 0x10a(r3) -/* 802774D4 98 04 00 8E */ stb r0, 0x8e(r4) -/* 802774D8 88 03 01 0B */ lbz r0, 0x10b(r3) -/* 802774DC 98 04 00 8F */ stb r0, 0x8f(r4) -/* 802774E0 88 03 01 0C */ lbz r0, 0x10c(r3) -/* 802774E4 98 04 00 90 */ stb r0, 0x90(r4) -/* 802774E8 88 03 01 0D */ lbz r0, 0x10d(r3) -/* 802774EC 98 04 00 91 */ stb r0, 0x91(r4) -/* 802774F0 88 03 01 0E */ lbz r0, 0x10e(r3) -/* 802774F4 98 04 00 92 */ stb r0, 0x92(r4) -/* 802774F8 88 03 01 0F */ lbz r0, 0x10f(r3) -/* 802774FC 98 04 00 93 */ stb r0, 0x93(r4) -/* 80277500 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPABaseShape/JPACalcEnv__FP18JPAEmitterWorkData.s b/asm/JSystem/JParticle/JPABaseShape/JPACalcEnv__FP18JPAEmitterWorkData.s deleted file mode 100644 index 85c800f8be..0000000000 --- a/asm/JSystem/JParticle/JPABaseShape/JPACalcEnv__FP18JPAEmitterWorkData.s +++ /dev/null @@ -1,17 +0,0 @@ -lbl_80277440: -/* 80277440 80 A3 00 00 */ lwz r5, 0(r3) -/* 80277444 80 83 00 04 */ lwz r4, 4(r3) -/* 80277448 80 84 00 1C */ lwz r4, 0x1c(r4) -/* 8027744C 80 84 00 10 */ lwz r4, 0x10(r4) -/* 80277450 A8 03 02 14 */ lha r0, 0x214(r3) -/* 80277454 54 00 10 3A */ slwi r0, r0, 2 -/* 80277458 7C 64 02 14 */ add r3, r4, r0 -/* 8027745C 88 03 00 00 */ lbz r0, 0(r3) -/* 80277460 98 05 01 0C */ stb r0, 0x10c(r5) -/* 80277464 88 03 00 01 */ lbz r0, 1(r3) -/* 80277468 98 05 01 0D */ stb r0, 0x10d(r5) -/* 8027746C 88 03 00 02 */ lbz r0, 2(r3) -/* 80277470 98 05 01 0E */ stb r0, 0x10e(r5) -/* 80277474 88 03 00 03 */ lbz r0, 3(r3) -/* 80277478 98 05 01 0F */ stb r0, 0x10f(r5) -/* 8027747C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPABaseShape/JPACalcEnv__FP18JPAEmitterWorkDataP15JPABaseParticle.s b/asm/JSystem/JParticle/JPABaseShape/JPACalcEnv__FP18JPAEmitterWorkDataP15JPABaseParticle.s deleted file mode 100644 index a2c3b5e83d..0000000000 --- a/asm/JSystem/JParticle/JPABaseShape/JPACalcEnv__FP18JPAEmitterWorkDataP15JPABaseParticle.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_80277480: -/* 80277480 80 A3 00 04 */ lwz r5, 4(r3) -/* 80277484 80 A5 00 1C */ lwz r5, 0x1c(r5) -/* 80277488 80 A5 00 10 */ lwz r5, 0x10(r5) -/* 8027748C A8 03 02 14 */ lha r0, 0x214(r3) -/* 80277490 54 00 10 3A */ slwi r0, r0, 2 -/* 80277494 7C 65 02 14 */ add r3, r5, r0 -/* 80277498 88 03 00 00 */ lbz r0, 0(r3) -/* 8027749C 98 04 00 90 */ stb r0, 0x90(r4) -/* 802774A0 88 03 00 01 */ lbz r0, 1(r3) -/* 802774A4 98 04 00 91 */ stb r0, 0x91(r4) -/* 802774A8 88 03 00 02 */ lbz r0, 2(r3) -/* 802774AC 98 04 00 92 */ stb r0, 0x92(r4) -/* 802774B0 88 03 00 03 */ lbz r0, 3(r3) -/* 802774B4 98 04 00 93 */ stb r0, 0x93(r4) -/* 802774B8 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPABaseShape/JPACalcPrm__FP18JPAEmitterWorkData.s b/asm/JSystem/JParticle/JPABaseShape/JPACalcPrm__FP18JPAEmitterWorkData.s deleted file mode 100644 index cd6947b412..0000000000 --- a/asm/JSystem/JParticle/JPABaseShape/JPACalcPrm__FP18JPAEmitterWorkData.s +++ /dev/null @@ -1,17 +0,0 @@ -lbl_802773C4: -/* 802773C4 80 A3 00 00 */ lwz r5, 0(r3) -/* 802773C8 80 83 00 04 */ lwz r4, 4(r3) -/* 802773CC 80 84 00 1C */ lwz r4, 0x1c(r4) -/* 802773D0 80 84 00 0C */ lwz r4, 0xc(r4) -/* 802773D4 A8 03 02 14 */ lha r0, 0x214(r3) -/* 802773D8 54 00 10 3A */ slwi r0, r0, 2 -/* 802773DC 7C 64 02 14 */ add r3, r4, r0 -/* 802773E0 88 03 00 00 */ lbz r0, 0(r3) -/* 802773E4 98 05 01 08 */ stb r0, 0x108(r5) -/* 802773E8 88 03 00 01 */ lbz r0, 1(r3) -/* 802773EC 98 05 01 09 */ stb r0, 0x109(r5) -/* 802773F0 88 03 00 02 */ lbz r0, 2(r3) -/* 802773F4 98 05 01 0A */ stb r0, 0x10a(r5) -/* 802773F8 88 03 00 03 */ lbz r0, 3(r3) -/* 802773FC 98 05 01 0B */ stb r0, 0x10b(r5) -/* 80277400 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPABaseShape/JPACalcPrm__FP18JPAEmitterWorkDataP15JPABaseParticle.s b/asm/JSystem/JParticle/JPABaseShape/JPACalcPrm__FP18JPAEmitterWorkDataP15JPABaseParticle.s deleted file mode 100644 index b8ab52aae3..0000000000 --- a/asm/JSystem/JParticle/JPABaseShape/JPACalcPrm__FP18JPAEmitterWorkDataP15JPABaseParticle.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_80277404: -/* 80277404 80 A3 00 04 */ lwz r5, 4(r3) -/* 80277408 80 A5 00 1C */ lwz r5, 0x1c(r5) -/* 8027740C 80 A5 00 0C */ lwz r5, 0xc(r5) -/* 80277410 A8 03 02 14 */ lha r0, 0x214(r3) -/* 80277414 54 00 10 3A */ slwi r0, r0, 2 -/* 80277418 7C 65 02 14 */ add r3, r5, r0 -/* 8027741C 88 03 00 00 */ lbz r0, 0(r3) -/* 80277420 98 04 00 8C */ stb r0, 0x8c(r4) -/* 80277424 88 03 00 01 */ lbz r0, 1(r3) -/* 80277428 98 04 00 8D */ stb r0, 0x8d(r4) -/* 8027742C 88 03 00 02 */ lbz r0, 2(r3) -/* 80277430 98 04 00 8E */ stb r0, 0x8e(r4) -/* 80277434 88 03 00 03 */ lbz r0, 3(r3) -/* 80277438 98 04 00 8F */ stb r0, 0x8f(r4) -/* 8027743C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPABaseShape/JPACalcTexIdxMerge__FP18JPAEmitterWorkData.s b/asm/JSystem/JParticle/JPABaseShape/JPACalcTexIdxMerge__FP18JPAEmitterWorkData.s deleted file mode 100644 index 24b22d07c4..0000000000 --- a/asm/JSystem/JParticle/JPABaseShape/JPACalcTexIdxMerge__FP18JPAEmitterWorkData.s +++ /dev/null @@ -1,8 +0,0 @@ -lbl_80277B78: -/* 80277B78 80 83 00 04 */ lwz r4, 4(r3) -/* 80277B7C 80 84 00 1C */ lwz r4, 0x1c(r4) -/* 80277B80 80 84 00 00 */ lwz r4, 0(r4) -/* 80277B84 88 04 00 20 */ lbz r0, 0x20(r4) -/* 80277B88 80 63 00 00 */ lwz r3, 0(r3) -/* 80277B8C 98 03 01 11 */ stb r0, 0x111(r3) -/* 80277B90 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPABaseShape/JPACalcTexIdxRandom__FP18JPAEmitterWorkData.s b/asm/JSystem/JParticle/JPABaseShape/JPACalcTexIdxRandom__FP18JPAEmitterWorkData.s deleted file mode 100644 index 1d274d6ee5..0000000000 --- a/asm/JSystem/JParticle/JPABaseShape/JPACalcTexIdxRandom__FP18JPAEmitterWorkData.s +++ /dev/null @@ -1,8 +0,0 @@ -lbl_80277C0C: -/* 80277C0C 80 83 00 04 */ lwz r4, 4(r3) -/* 80277C10 80 84 00 1C */ lwz r4, 0x1c(r4) -/* 80277C14 80 84 00 00 */ lwz r4, 0(r4) -/* 80277C18 88 04 00 20 */ lbz r0, 0x20(r4) -/* 80277C1C 80 63 00 00 */ lwz r3, 0(r3) -/* 80277C20 98 03 01 11 */ stb r0, 0x111(r3) -/* 80277C24 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPABaseShape/JPAGenTexCrdMtxAnm__FP18JPAEmitterWorkData.s b/asm/JSystem/JParticle/JPABaseShape/JPAGenTexCrdMtxAnm__FP18JPAEmitterWorkData.s deleted file mode 100644 index 0bf7df55d1..0000000000 --- a/asm/JSystem/JParticle/JPABaseShape/JPAGenTexCrdMtxAnm__FP18JPAEmitterWorkData.s +++ /dev/null @@ -1,15 +0,0 @@ -lbl_8027753C: -/* 8027753C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80277540 7C 08 02 A6 */ mflr r0 -/* 80277544 90 01 00 14 */ stw r0, 0x14(r1) -/* 80277548 38 60 00 00 */ li r3, 0 -/* 8027754C 38 80 00 01 */ li r4, 1 -/* 80277550 38 A0 00 04 */ li r5, 4 -/* 80277554 38 C0 00 1E */ li r6, 0x1e -/* 80277558 38 E0 00 00 */ li r7, 0 -/* 8027755C 39 00 00 7D */ li r8, 0x7d -/* 80277560 48 0E 46 1D */ bl GXSetTexCoordGen2 -/* 80277564 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80277568 7C 08 03 A6 */ mtlr r0 -/* 8027756C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80277570 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPABaseShape/JPAGenTexCrdMtxIdt__FP18JPAEmitterWorkData.s b/asm/JSystem/JParticle/JPABaseShape/JPAGenTexCrdMtxIdt__FP18JPAEmitterWorkData.s deleted file mode 100644 index f596db0557..0000000000 --- a/asm/JSystem/JParticle/JPABaseShape/JPAGenTexCrdMtxIdt__FP18JPAEmitterWorkData.s +++ /dev/null @@ -1,15 +0,0 @@ -lbl_80277504: -/* 80277504 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80277508 7C 08 02 A6 */ mflr r0 -/* 8027750C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80277510 38 60 00 00 */ li r3, 0 -/* 80277514 38 80 00 01 */ li r4, 1 -/* 80277518 38 A0 00 04 */ li r5, 4 -/* 8027751C 38 C0 00 3C */ li r6, 0x3c -/* 80277520 38 E0 00 00 */ li r7, 0 -/* 80277524 39 00 00 7D */ li r8, 0x7d -/* 80277528 48 0E 46 55 */ bl GXSetTexCoordGen2 -/* 8027752C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80277530 7C 08 03 A6 */ mtlr r0 -/* 80277534 38 21 00 10 */ addi r1, r1, 0x10 -/* 80277538 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPABaseShape/JPAGenTexCrdMtxPrj__FP18JPAEmitterWorkData.s b/asm/JSystem/JParticle/JPABaseShape/JPAGenTexCrdMtxPrj__FP18JPAEmitterWorkData.s deleted file mode 100644 index 3bddd93295..0000000000 --- a/asm/JSystem/JParticle/JPABaseShape/JPAGenTexCrdMtxPrj__FP18JPAEmitterWorkData.s +++ /dev/null @@ -1,15 +0,0 @@ -lbl_80277574: -/* 80277574 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80277578 7C 08 02 A6 */ mflr r0 -/* 8027757C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80277580 38 60 00 00 */ li r3, 0 -/* 80277584 38 80 00 00 */ li r4, 0 -/* 80277588 38 A0 00 00 */ li r5, 0 -/* 8027758C 38 C0 00 1E */ li r6, 0x1e -/* 80277590 38 E0 00 00 */ li r7, 0 -/* 80277594 39 00 00 7D */ li r8, 0x7d -/* 80277598 48 0E 45 E5 */ bl GXSetTexCoordGen2 -/* 8027759C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802775A0 7C 08 03 A6 */ mtlr r0 -/* 802775A4 38 21 00 10 */ addi r1, r1, 0x10 -/* 802775A8 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPABaseShape/JPALoadPosMtxCam__FP18JPAEmitterWorkData.s b/asm/JSystem/JParticle/JPABaseShape/JPALoadPosMtxCam__FP18JPAEmitterWorkData.s deleted file mode 100644 index 4d8f61918d..0000000000 --- a/asm/JSystem/JParticle/JPABaseShape/JPALoadPosMtxCam__FP18JPAEmitterWorkData.s +++ /dev/null @@ -1,11 +0,0 @@ -lbl_80277C64: -/* 80277C64 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80277C68 7C 08 02 A6 */ mflr r0 -/* 80277C6C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80277C70 38 80 00 00 */ li r4, 0 -/* 80277C74 38 63 01 84 */ addi r3, r3, 0x184 -/* 80277C78 48 0E 85 D5 */ bl GXLoadPosMtxImm -/* 80277C7C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80277C80 7C 08 03 A6 */ mtlr r0 -/* 80277C84 38 21 00 10 */ addi r1, r1, 0x10 -/* 80277C88 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPABaseShape/JPALoadTexAnm__FP18JPAEmitterWorkData.s b/asm/JSystem/JParticle/JPABaseShape/JPALoadTexAnm__FP18JPAEmitterWorkData.s deleted file mode 100644 index b510500116..0000000000 --- a/asm/JSystem/JParticle/JPABaseShape/JPALoadTexAnm__FP18JPAEmitterWorkData.s +++ /dev/null @@ -1,21 +0,0 @@ -lbl_80277940: -/* 80277940 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80277944 7C 08 02 A6 */ mflr r0 -/* 80277948 90 01 00 14 */ stw r0, 0x14(r1) -/* 8027794C 80 83 00 04 */ lwz r4, 4(r3) -/* 80277950 80 A4 00 38 */ lwz r5, 0x38(r4) -/* 80277954 80 83 00 00 */ lwz r4, 0(r3) -/* 80277958 88 04 01 11 */ lbz r0, 0x111(r4) -/* 8027795C 54 00 08 3C */ slwi r0, r0, 1 -/* 80277960 7C 05 02 2E */ lhzx r0, r5, r0 -/* 80277964 80 63 00 08 */ lwz r3, 8(r3) -/* 80277968 80 63 00 08 */ lwz r3, 8(r3) -/* 8027796C 54 00 13 BA */ rlwinm r0, r0, 2, 0xe, 0x1d -/* 80277970 7C 63 00 2E */ lwzx r3, r3, r0 -/* 80277974 38 63 00 04 */ addi r3, r3, 4 -/* 80277978 38 80 00 00 */ li r4, 0 -/* 8027797C 48 06 6E C5 */ bl load__10JUTTextureF11_GXTexMapID -/* 80277980 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80277984 7C 08 03 A6 */ mtlr r0 -/* 80277988 38 21 00 10 */ addi r1, r1, 0x10 -/* 8027798C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPABaseShape/JPALoadTexAnm__FP18JPAEmitterWorkDataP15JPABaseParticle.s b/asm/JSystem/JParticle/JPABaseShape/JPALoadTexAnm__FP18JPAEmitterWorkDataP15JPABaseParticle.s deleted file mode 100644 index eccf2898e3..0000000000 --- a/asm/JSystem/JParticle/JPABaseShape/JPALoadTexAnm__FP18JPAEmitterWorkDataP15JPABaseParticle.s +++ /dev/null @@ -1,20 +0,0 @@ -lbl_80277990: -/* 80277990 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80277994 7C 08 02 A6 */ mflr r0 -/* 80277998 90 01 00 14 */ stw r0, 0x14(r1) -/* 8027799C 80 A3 00 04 */ lwz r5, 4(r3) -/* 802779A0 80 A5 00 38 */ lwz r5, 0x38(r5) -/* 802779A4 88 04 00 94 */ lbz r0, 0x94(r4) -/* 802779A8 54 00 08 3C */ slwi r0, r0, 1 -/* 802779AC 7C 05 02 2E */ lhzx r0, r5, r0 -/* 802779B0 80 63 00 08 */ lwz r3, 8(r3) -/* 802779B4 80 63 00 08 */ lwz r3, 8(r3) -/* 802779B8 54 00 13 BA */ rlwinm r0, r0, 2, 0xe, 0x1d -/* 802779BC 7C 63 00 2E */ lwzx r3, r3, r0 -/* 802779C0 38 63 00 04 */ addi r3, r3, 4 -/* 802779C4 38 80 00 00 */ li r4, 0 -/* 802779C8 48 06 6E 79 */ bl load__10JUTTextureF11_GXTexMapID -/* 802779CC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802779D0 7C 08 03 A6 */ mtlr r0 -/* 802779D4 38 21 00 10 */ addi r1, r1, 0x10 -/* 802779D8 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPABaseShape/JPALoadTex__FP18JPAEmitterWorkData.s b/asm/JSystem/JParticle/JPABaseShape/JPALoadTex__FP18JPAEmitterWorkData.s deleted file mode 100644 index 521ddc42ab..0000000000 --- a/asm/JSystem/JParticle/JPABaseShape/JPALoadTex__FP18JPAEmitterWorkData.s +++ /dev/null @@ -1,22 +0,0 @@ -lbl_802778EC: -/* 802778EC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802778F0 7C 08 02 A6 */ mflr r0 -/* 802778F4 90 01 00 14 */ stw r0, 0x14(r1) -/* 802778F8 80 A3 00 04 */ lwz r5, 4(r3) -/* 802778FC 80 85 00 1C */ lwz r4, 0x1c(r5) -/* 80277900 80 84 00 00 */ lwz r4, 0(r4) -/* 80277904 88 04 00 20 */ lbz r0, 0x20(r4) -/* 80277908 80 85 00 38 */ lwz r4, 0x38(r5) -/* 8027790C 54 00 08 3C */ slwi r0, r0, 1 -/* 80277910 7C 04 02 2E */ lhzx r0, r4, r0 -/* 80277914 80 63 00 08 */ lwz r3, 8(r3) -/* 80277918 80 63 00 08 */ lwz r3, 8(r3) -/* 8027791C 54 00 13 BA */ rlwinm r0, r0, 2, 0xe, 0x1d -/* 80277920 7C 63 00 2E */ lwzx r3, r3, r0 -/* 80277924 38 63 00 04 */ addi r3, r3, 4 -/* 80277928 38 80 00 00 */ li r4, 0 -/* 8027792C 48 06 6F 15 */ bl load__10JUTTextureF11_GXTexMapID -/* 80277930 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80277934 7C 08 03 A6 */ mtlr r0 -/* 80277938 38 21 00 10 */ addi r1, r1, 0x10 -/* 8027793C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPABaseShape/JPASetLineWidth__FP18JPAEmitterWorkData.s b/asm/JSystem/JParticle/JPABaseShape/JPASetLineWidth__FP18JPAEmitterWorkData.s deleted file mode 100644 index 6e051a56d4..0000000000 --- a/asm/JSystem/JParticle/JPABaseShape/JPASetLineWidth__FP18JPAEmitterWorkData.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_80276ACC: -/* 80276ACC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80276AD0 7C 08 02 A6 */ mflr r0 -/* 80276AD4 90 01 00 14 */ stw r0, 0x14(r1) -/* 80276AD8 C0 22 B8 A8 */ lfs f1, lit_2262(r2) -/* 80276ADC C0 03 01 44 */ lfs f0, 0x144(r3) -/* 80276AE0 EC 01 00 32 */ fmuls f0, f1, f0 -/* 80276AE4 FC 00 00 1E */ fctiwz f0, f0 -/* 80276AE8 D8 01 00 08 */ stfd f0, 8(r1) -/* 80276AEC 80 61 00 0C */ lwz r3, 0xc(r1) -/* 80276AF0 38 80 00 05 */ li r4, 5 -/* 80276AF4 48 0E 5D C9 */ bl GXSetLineWidth -/* 80276AF8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80276AFC 7C 08 03 A6 */ mtlr r0 -/* 80276B00 38 21 00 10 */ addi r1, r1, 0x10 -/* 80276B04 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPABaseShape/JPASetLineWidth__FP18JPAEmitterWorkDataP15JPABaseParticle.s b/asm/JSystem/JParticle/JPABaseShape/JPASetLineWidth__FP18JPAEmitterWorkDataP15JPABaseParticle.s deleted file mode 100644 index 8f09bf7944..0000000000 --- a/asm/JSystem/JParticle/JPABaseShape/JPASetLineWidth__FP18JPAEmitterWorkDataP15JPABaseParticle.s +++ /dev/null @@ -1,18 +0,0 @@ -lbl_80276B4C: -/* 80276B4C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80276B50 7C 08 02 A6 */ mflr r0 -/* 80276B54 90 01 00 14 */ stw r0, 0x14(r1) -/* 80276B58 C0 44 00 60 */ lfs f2, 0x60(r4) -/* 80276B5C C0 22 B8 A8 */ lfs f1, lit_2262(r2) -/* 80276B60 C0 03 01 44 */ lfs f0, 0x144(r3) -/* 80276B64 EC 01 00 32 */ fmuls f0, f1, f0 -/* 80276B68 EC 02 00 32 */ fmuls f0, f2, f0 -/* 80276B6C FC 00 00 1E */ fctiwz f0, f0 -/* 80276B70 D8 01 00 08 */ stfd f0, 8(r1) -/* 80276B74 80 61 00 0C */ lwz r3, 0xc(r1) -/* 80276B78 38 80 00 05 */ li r4, 5 -/* 80276B7C 48 0E 5D 41 */ bl GXSetLineWidth -/* 80276B80 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80276B84 7C 08 03 A6 */ mtlr r0 -/* 80276B88 38 21 00 10 */ addi r1, r1, 0x10 -/* 80276B8C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPABaseShape/JPASetPointSize__FP18JPAEmitterWorkData.s b/asm/JSystem/JParticle/JPABaseShape/JPASetPointSize__FP18JPAEmitterWorkData.s deleted file mode 100644 index bfd5ed2673..0000000000 --- a/asm/JSystem/JParticle/JPABaseShape/JPASetPointSize__FP18JPAEmitterWorkData.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_80276A90: -/* 80276A90 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80276A94 7C 08 02 A6 */ mflr r0 -/* 80276A98 90 01 00 14 */ stw r0, 0x14(r1) -/* 80276A9C C0 22 B8 A8 */ lfs f1, lit_2262(r2) -/* 80276AA0 C0 03 01 44 */ lfs f0, 0x144(r3) -/* 80276AA4 EC 01 00 32 */ fmuls f0, f1, f0 -/* 80276AA8 FC 00 00 1E */ fctiwz f0, f0 -/* 80276AAC D8 01 00 08 */ stfd f0, 8(r1) -/* 80276AB0 80 61 00 0C */ lwz r3, 0xc(r1) -/* 80276AB4 38 80 00 05 */ li r4, 5 -/* 80276AB8 48 0E 5E 45 */ bl GXSetPointSize -/* 80276ABC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80276AC0 7C 08 03 A6 */ mtlr r0 -/* 80276AC4 38 21 00 10 */ addi r1, r1, 0x10 -/* 80276AC8 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPABaseShape/JPASetPointSize__FP18JPAEmitterWorkDataP15JPABaseParticle.s b/asm/JSystem/JParticle/JPABaseShape/JPASetPointSize__FP18JPAEmitterWorkDataP15JPABaseParticle.s deleted file mode 100644 index 62286e0030..0000000000 --- a/asm/JSystem/JParticle/JPABaseShape/JPASetPointSize__FP18JPAEmitterWorkDataP15JPABaseParticle.s +++ /dev/null @@ -1,18 +0,0 @@ -lbl_80276B08: -/* 80276B08 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80276B0C 7C 08 02 A6 */ mflr r0 -/* 80276B10 90 01 00 14 */ stw r0, 0x14(r1) -/* 80276B14 C0 44 00 60 */ lfs f2, 0x60(r4) -/* 80276B18 C0 22 B8 A8 */ lfs f1, lit_2262(r2) -/* 80276B1C C0 03 01 44 */ lfs f0, 0x144(r3) -/* 80276B20 EC 01 00 32 */ fmuls f0, f1, f0 -/* 80276B24 EC 02 00 32 */ fmuls f0, f2, f0 -/* 80276B28 FC 00 00 1E */ fctiwz f0, f0 -/* 80276B2C D8 01 00 08 */ stfd f0, 8(r1) -/* 80276B30 80 61 00 0C */ lwz r3, 0xc(r1) -/* 80276B34 38 80 00 05 */ li r4, 5 -/* 80276B38 48 0E 5D C5 */ bl GXSetPointSize -/* 80276B3C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80276B40 7C 08 03 A6 */ mtlr r0 -/* 80276B44 38 21 00 10 */ addi r1, r1, 0x10 -/* 80276B48 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPABaseShape/__ct__12JPABaseShapeFPCUcP7JKRHeap.s b/asm/JSystem/JParticle/JPABaseShape/__ct__12JPABaseShapeFPCUcP7JKRHeap.s deleted file mode 100644 index 583799ed02..0000000000 --- a/asm/JSystem/JParticle/JPABaseShape/__ct__12JPABaseShapeFPCUcP7JKRHeap.s +++ /dev/null @@ -1,77 +0,0 @@ -lbl_8027A6DC: -/* 8027A6DC 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8027A6E0 7C 08 02 A6 */ mflr r0 -/* 8027A6E4 90 01 00 24 */ stw r0, 0x24(r1) -/* 8027A6E8 39 61 00 20 */ addi r11, r1, 0x20 -/* 8027A6EC 48 0E 7A F1 */ bl _savegpr_29 -/* 8027A6F0 7C 7D 1B 78 */ mr r29, r3 -/* 8027A6F4 7C 9E 23 78 */ mr r30, r4 -/* 8027A6F8 7C BF 2B 78 */ mr r31, r5 -/* 8027A6FC 93 C3 00 00 */ stw r30, 0(r3) -/* 8027A700 80 63 00 00 */ lwz r3, 0(r3) -/* 8027A704 80 03 00 08 */ lwz r0, 8(r3) -/* 8027A708 54 00 01 CF */ rlwinm. r0, r0, 0, 7, 7 -/* 8027A70C 41 82 00 10 */ beq lbl_8027A71C -/* 8027A710 38 1E 00 34 */ addi r0, r30, 0x34 -/* 8027A714 90 1D 00 04 */ stw r0, 4(r29) -/* 8027A718 48 00 00 0C */ b lbl_8027A724 -lbl_8027A71C: -/* 8027A71C 38 00 00 00 */ li r0, 0 -/* 8027A720 90 1D 00 04 */ stw r0, 4(r29) -lbl_8027A724: -/* 8027A724 80 7D 00 00 */ lwz r3, 0(r29) -/* 8027A728 88 03 00 1E */ lbz r0, 0x1e(r3) -/* 8027A72C 54 00 07 FF */ clrlwi. r0, r0, 0x1f -/* 8027A730 41 82 00 24 */ beq lbl_8027A754 -/* 8027A734 38 80 00 34 */ li r4, 0x34 -/* 8027A738 80 03 00 08 */ lwz r0, 8(r3) -/* 8027A73C 54 00 01 CF */ rlwinm. r0, r0, 0, 7, 7 -/* 8027A740 41 82 00 08 */ beq lbl_8027A748 -/* 8027A744 38 80 00 5C */ li r4, 0x5c -lbl_8027A748: -/* 8027A748 7C 1E 22 14 */ add r0, r30, r4 -/* 8027A74C 90 1D 00 08 */ stw r0, 8(r29) -/* 8027A750 48 00 00 0C */ b lbl_8027A75C -lbl_8027A754: -/* 8027A754 38 00 00 00 */ li r0, 0 -/* 8027A758 90 1D 00 08 */ stw r0, 8(r29) -lbl_8027A75C: -/* 8027A75C 80 DD 00 00 */ lwz r6, 0(r29) -/* 8027A760 88 06 00 21 */ lbz r0, 0x21(r6) -/* 8027A764 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e -/* 8027A768 41 82 00 24 */ beq lbl_8027A78C -/* 8027A76C 38 7D 00 0C */ addi r3, r29, 0xc -/* 8027A770 A8 06 00 0C */ lha r0, 0xc(r6) -/* 8027A774 7C 9E 02 14 */ add r4, r30, r0 -/* 8027A778 88 A6 00 22 */ lbz r5, 0x22(r6) -/* 8027A77C A8 C6 00 24 */ lha r6, 0x24(r6) -/* 8027A780 7F E7 FB 78 */ mr r7, r31 -/* 8027A784 4B FF FC D1 */ bl makeColorTable__FPP8_GXColorPC16JPAClrAnmKeyDataUcsP7JKRHeap -/* 8027A788 48 00 00 0C */ b lbl_8027A794 -lbl_8027A78C: -/* 8027A78C 38 00 00 00 */ li r0, 0 -/* 8027A790 90 1D 00 0C */ stw r0, 0xc(r29) -lbl_8027A794: -/* 8027A794 80 DD 00 00 */ lwz r6, 0(r29) -/* 8027A798 88 06 00 21 */ lbz r0, 0x21(r6) -/* 8027A79C 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c -/* 8027A7A0 41 82 00 24 */ beq lbl_8027A7C4 -/* 8027A7A4 38 7D 00 10 */ addi r3, r29, 0x10 -/* 8027A7A8 A8 06 00 0E */ lha r0, 0xe(r6) -/* 8027A7AC 7C 9E 02 14 */ add r4, r30, r0 -/* 8027A7B0 88 A6 00 23 */ lbz r5, 0x23(r6) -/* 8027A7B4 A8 C6 00 24 */ lha r6, 0x24(r6) -/* 8027A7B8 7F E7 FB 78 */ mr r7, r31 -/* 8027A7BC 4B FF FC 99 */ bl makeColorTable__FPP8_GXColorPC16JPAClrAnmKeyDataUcsP7JKRHeap -/* 8027A7C0 48 00 00 0C */ b lbl_8027A7CC -lbl_8027A7C4: -/* 8027A7C4 38 00 00 00 */ li r0, 0 -/* 8027A7C8 90 1D 00 10 */ stw r0, 0x10(r29) -lbl_8027A7CC: -/* 8027A7CC 7F A3 EB 78 */ mr r3, r29 -/* 8027A7D0 39 61 00 20 */ addi r11, r1, 0x20 -/* 8027A7D4 48 0E 7A 55 */ bl _restgpr_29 -/* 8027A7D8 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8027A7DC 7C 08 03 A6 */ mtlr r0 -/* 8027A7E0 38 21 00 20 */ addi r1, r1, 0x20 -/* 8027A7E4 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPABaseShape/loadPrj__FPC18JPAEmitterWorkDataPA4_Cf.s b/asm/JSystem/JParticle/JPABaseShape/loadPrj__FPC18JPAEmitterWorkDataPA4_Cf.s deleted file mode 100644 index 7dd8ef166f..0000000000 --- a/asm/JSystem/JParticle/JPABaseShape/loadPrj__FPC18JPAEmitterWorkDataPA4_Cf.s +++ /dev/null @@ -1,15 +0,0 @@ -lbl_80277C90: -/* 80277C90 94 21 FF C0 */ stwu r1, -0x40(r1) -/* 80277C94 7C 08 02 A6 */ mflr r0 -/* 80277C98 90 01 00 44 */ stw r0, 0x44(r1) -/* 80277C9C 38 63 01 B4 */ addi r3, r3, 0x1b4 -/* 80277CA0 38 A1 00 08 */ addi r5, r1, 8 -/* 80277CA4 48 0C E8 41 */ bl PSMTXConcat -/* 80277CA8 38 61 00 08 */ addi r3, r1, 8 -/* 80277CAC 38 80 00 1E */ li r4, 0x1e -/* 80277CB0 38 A0 00 00 */ li r5, 0 -/* 80277CB4 48 0E 86 6D */ bl GXLoadTexMtxImm -/* 80277CB8 80 01 00 44 */ lwz r0, 0x44(r1) -/* 80277CBC 7C 08 03 A6 */ mtlr r0 -/* 80277CC0 38 21 00 40 */ addi r1, r1, 0x40 -/* 80277CC4 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPABaseShape/setGX__12JPABaseShapeCFP18JPAEmitterWorkData.s b/asm/JSystem/JParticle/JPABaseShape/setGX__12JPABaseShapeCFP18JPAEmitterWorkData.s deleted file mode 100644 index c5c1a02095..0000000000 --- a/asm/JSystem/JParticle/JPABaseShape/setGX__12JPABaseShapeCFP18JPAEmitterWorkData.s +++ /dev/null @@ -1,77 +0,0 @@ -lbl_8027A7E8: -/* 8027A7E8 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8027A7EC 7C 08 02 A6 */ mflr r0 -/* 8027A7F0 90 01 00 24 */ stw r0, 0x24(r1) -/* 8027A7F4 39 61 00 20 */ addi r11, r1, 0x20 -/* 8027A7F8 48 0E 79 E1 */ bl _savegpr_28 -/* 8027A7FC 7C 7C 1B 78 */ mr r28, r3 -/* 8027A800 3C 60 80 3C */ lis r3, jpa_dl@ha /* 0x803C42E0@ha */ -/* 8027A804 3B E3 42 E0 */ addi r31, r3, jpa_dl@l /* 0x803C42E0@l */ -/* 8027A808 80 9C 00 00 */ lwz r4, 0(r28) -/* 8027A80C 80 64 00 08 */ lwz r3, 8(r4) -/* 8027A810 54 60 AE 76 */ rlwinm r0, r3, 0x15, 0x19, 0x1b -/* 8027A814 3B DF 01 24 */ addi r30, r31, 0x124 -/* 8027A818 7F DE 02 14 */ add r30, r30, r0 -/* 8027A81C 54 60 96 F6 */ rlwinm r0, r3, 0x12, 0x1b, 0x1b -/* 8027A820 3B BF 01 84 */ addi r29, r31, 0x184 -/* 8027A824 7F BD 02 14 */ add r29, r29, r0 -/* 8027A828 A0 C4 00 18 */ lhz r6, 0x18(r4) -/* 8027A82C 54 C0 17 3A */ rlwinm r0, r6, 2, 0x1c, 0x1d -/* 8027A830 38 7F 00 80 */ addi r3, r31, 0x80 -/* 8027A834 7C 63 00 2E */ lwzx r3, r3, r0 -/* 8027A838 54 C0 06 BA */ rlwinm r0, r6, 0, 0x1a, 0x1d -/* 8027A83C 38 BF 00 8C */ addi r5, r31, 0x8c -/* 8027A840 7C 85 00 2E */ lwzx r4, r5, r0 -/* 8027A844 54 C0 E6 BA */ rlwinm r0, r6, 0x1c, 0x1a, 0x1d -/* 8027A848 7C A5 00 2E */ lwzx r5, r5, r0 -/* 8027A84C 54 C0 C6 BA */ rlwinm r0, r6, 0x18, 0x1a, 0x1d -/* 8027A850 38 DF 00 B4 */ addi r6, r31, 0xb4 -/* 8027A854 7C C6 00 2E */ lwzx r6, r6, r0 -/* 8027A858 48 0E 53 99 */ bl GXSetBlendMode -/* 8027A85C 80 7C 00 00 */ lwz r3, 0(r28) -/* 8027A860 88 A3 00 1D */ lbz r5, 0x1d(r3) -/* 8027A864 54 A3 07 FE */ clrlwi r3, r5, 0x1f -/* 8027A868 54 A0 0E FA */ rlwinm r0, r5, 1, 0x1b, 0x1d -/* 8027A86C 38 9F 00 F4 */ addi r4, r31, 0xf4 -/* 8027A870 7C 84 00 2E */ lwzx r4, r4, r0 -/* 8027A874 54 A5 E7 FE */ rlwinm r5, r5, 0x1c, 0x1f, 0x1f -/* 8027A878 48 0E 54 25 */ bl GXSetZMode -/* 8027A87C 80 FC 00 00 */ lwz r7, 0(r28) -/* 8027A880 89 07 00 1A */ lbz r8, 0x1a(r7) -/* 8027A884 55 00 16 FA */ rlwinm r0, r8, 2, 0x1b, 0x1d -/* 8027A888 38 DF 00 F4 */ addi r6, r31, 0xf4 -/* 8027A88C 7C 66 00 2E */ lwzx r3, r6, r0 -/* 8027A890 88 87 00 1B */ lbz r4, 0x1b(r7) -/* 8027A894 55 00 FF 3A */ rlwinm r0, r8, 0x1f, 0x1c, 0x1d -/* 8027A898 38 BF 01 14 */ addi r5, r31, 0x114 -/* 8027A89C 7C A5 00 2E */ lwzx r5, r5, r0 -/* 8027A8A0 55 00 EE FA */ rlwinm r0, r8, 0x1d, 0x1b, 0x1d -/* 8027A8A4 7C C6 00 2E */ lwzx r6, r6, r0 -/* 8027A8A8 88 E7 00 1C */ lbz r7, 0x1c(r7) -/* 8027A8AC 48 0E 4D 79 */ bl GXSetAlphaCompare -/* 8027A8B0 38 60 00 00 */ li r3, 0 -/* 8027A8B4 80 9E 00 00 */ lwz r4, 0(r30) -/* 8027A8B8 80 BE 00 04 */ lwz r5, 4(r30) -/* 8027A8BC 80 DE 00 08 */ lwz r6, 8(r30) -/* 8027A8C0 80 FE 00 0C */ lwz r7, 0xc(r30) -/* 8027A8C4 48 0E 49 61 */ bl GXSetTevColorIn -/* 8027A8C8 38 60 00 00 */ li r3, 0 -/* 8027A8CC 80 9D 00 00 */ lwz r4, 0(r29) -/* 8027A8D0 80 BD 00 04 */ lwz r5, 4(r29) -/* 8027A8D4 80 DD 00 08 */ lwz r6, 8(r29) -/* 8027A8D8 80 FD 00 0C */ lwz r7, 0xc(r29) -/* 8027A8DC 48 0E 49 8D */ bl GXSetTevAlphaIn -/* 8027A8E0 38 60 00 00 */ li r3, 0 -/* 8027A8E4 48 0E 48 15 */ bl GXSetTevDirect -/* 8027A8E8 38 60 00 01 */ li r3, 1 -/* 8027A8EC 48 0E 48 0D */ bl GXSetTevDirect -/* 8027A8F0 80 7C 00 00 */ lwz r3, 0(r28) -/* 8027A8F4 88 03 00 1D */ lbz r0, 0x1d(r3) -/* 8027A8F8 54 03 DF FE */ rlwinm r3, r0, 0x1b, 0x1f, 0x1f -/* 8027A8FC 48 0E 53 D5 */ bl GXSetZCompLoc -/* 8027A900 39 61 00 20 */ addi r11, r1, 0x20 -/* 8027A904 48 0E 79 21 */ bl _restgpr_28 -/* 8027A908 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8027A90C 7C 08 03 A6 */ mtlr r0 -/* 8027A910 38 21 00 20 */ addi r1, r1, 0x20 -/* 8027A914 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPAEmitter/createChild__14JPABaseEmitterFP15JPABaseParticle.s b/asm/JSystem/JParticle/JPAEmitter/createChild__14JPABaseEmitterFP15JPABaseParticle.s deleted file mode 100644 index 64940ca244..0000000000 --- a/asm/JSystem/JParticle/JPAEmitter/createChild__14JPABaseEmitterFP15JPABaseParticle.s +++ /dev/null @@ -1,71 +0,0 @@ -lbl_8027EB60: -/* 8027EB60 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8027EB64 7C 08 02 A6 */ mflr r0 -/* 8027EB68 90 01 00 14 */ stw r0, 0x14(r1) -/* 8027EB6C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8027EB70 7C 66 1B 78 */ mr r6, r3 -/* 8027EB74 7C 85 23 78 */ mr r5, r4 -/* 8027EB78 80 83 00 E0 */ lwz r4, 0xe0(r3) -/* 8027EB7C 80 04 00 08 */ lwz r0, 8(r4) -/* 8027EB80 28 00 00 00 */ cmplwi r0, 0 -/* 8027EB84 41 82 00 C4 */ beq lbl_8027EC48 -/* 8027EB88 3B E0 00 00 */ li r31, 0 -/* 8027EB8C 80 04 00 08 */ lwz r0, 8(r4) -/* 8027EB90 28 00 00 01 */ cmplwi r0, 1 -/* 8027EB94 40 82 00 24 */ bne lbl_8027EBB8 -/* 8027EB98 83 E4 00 00 */ lwz r31, 0(r4) -/* 8027EB9C 38 00 00 00 */ li r0, 0 -/* 8027EBA0 90 04 00 04 */ stw r0, 4(r4) -/* 8027EBA4 90 04 00 00 */ stw r0, 0(r4) -/* 8027EBA8 80 64 00 08 */ lwz r3, 8(r4) -/* 8027EBAC 38 03 FF FF */ addi r0, r3, -1 -/* 8027EBB0 90 04 00 08 */ stw r0, 8(r4) -/* 8027EBB4 48 00 00 30 */ b lbl_8027EBE4 -lbl_8027EBB8: -/* 8027EBB8 28 00 00 00 */ cmplwi r0, 0 -/* 8027EBBC 41 82 00 28 */ beq lbl_8027EBE4 -/* 8027EBC0 83 E4 00 00 */ lwz r31, 0(r4) -/* 8027EBC4 38 00 00 00 */ li r0, 0 -/* 8027EBC8 80 7F 00 04 */ lwz r3, 4(r31) -/* 8027EBCC 90 03 00 00 */ stw r0, 0(r3) -/* 8027EBD0 80 1F 00 04 */ lwz r0, 4(r31) -/* 8027EBD4 90 04 00 00 */ stw r0, 0(r4) -/* 8027EBD8 80 64 00 08 */ lwz r3, 8(r4) -/* 8027EBDC 38 03 FF FF */ addi r0, r3, -1 -/* 8027EBE0 90 04 00 08 */ stw r0, 8(r4) -lbl_8027EBE4: -/* 8027EBE4 80 06 00 D4 */ lwz r0, 0xd4(r6) -/* 8027EBE8 28 00 00 00 */ cmplwi r0, 0 -/* 8027EBEC 41 82 00 24 */ beq lbl_8027EC10 -/* 8027EBF0 38 00 00 00 */ li r0, 0 -/* 8027EBF4 90 1F 00 00 */ stw r0, 0(r31) -/* 8027EBF8 80 06 00 D4 */ lwz r0, 0xd4(r6) -/* 8027EBFC 90 1F 00 04 */ stw r0, 4(r31) -/* 8027EC00 80 66 00 D4 */ lwz r3, 0xd4(r6) -/* 8027EC04 93 E3 00 00 */ stw r31, 0(r3) -/* 8027EC08 93 E6 00 D4 */ stw r31, 0xd4(r6) -/* 8027EC0C 48 00 00 18 */ b lbl_8027EC24 -lbl_8027EC10: -/* 8027EC10 93 E6 00 D8 */ stw r31, 0xd8(r6) -/* 8027EC14 93 E6 00 D4 */ stw r31, 0xd4(r6) -/* 8027EC18 38 00 00 00 */ li r0, 0 -/* 8027EC1C 90 1F 00 00 */ stw r0, 0(r31) -/* 8027EC20 90 1F 00 04 */ stw r0, 4(r31) -lbl_8027EC24: -/* 8027EC24 80 66 00 DC */ lwz r3, 0xdc(r6) -/* 8027EC28 38 03 00 01 */ addi r0, r3, 1 -/* 8027EC2C 90 06 00 DC */ stw r0, 0xdc(r6) -/* 8027EC30 38 7F 00 08 */ addi r3, r31, 8 -/* 8027EC34 80 86 00 E4 */ lwz r4, 0xe4(r6) -/* 8027EC38 80 84 00 20 */ lwz r4, 0x20(r4) -/* 8027EC3C 48 00 0C 8D */ bl init_c__15JPABaseParticleFP18JPAEmitterWorkDataP15JPABaseParticle -/* 8027EC40 38 7F 00 08 */ addi r3, r31, 8 -/* 8027EC44 48 00 00 08 */ b lbl_8027EC4C -lbl_8027EC48: -/* 8027EC48 38 60 00 00 */ li r3, 0 -lbl_8027EC4C: -/* 8027EC4C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8027EC50 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8027EC54 7C 08 03 A6 */ mtlr r0 -/* 8027EC58 38 21 00 10 */ addi r1, r1, 0x10 -/* 8027EC5C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPAEmitter/deleteAllParticle__14JPABaseEmitterFv.s b/asm/JSystem/JParticle/JPAEmitter/deleteAllParticle__14JPABaseEmitterFv.s deleted file mode 100644 index 228416ef3e..0000000000 --- a/asm/JSystem/JParticle/JPAEmitter/deleteAllParticle__14JPABaseEmitterFv.s +++ /dev/null @@ -1,106 +0,0 @@ -lbl_8027EC60: -/* 8027EC60 48 00 00 AC */ b lbl_8027ED0C -lbl_8027EC64: -/* 8027EC64 38 C0 00 00 */ li r6, 0 -/* 8027EC68 28 00 00 01 */ cmplwi r0, 1 -/* 8027EC6C 40 82 00 24 */ bne lbl_8027EC90 -/* 8027EC70 80 C3 00 CC */ lwz r6, 0xcc(r3) -/* 8027EC74 38 00 00 00 */ li r0, 0 -/* 8027EC78 90 03 00 CC */ stw r0, 0xcc(r3) -/* 8027EC7C 90 03 00 C8 */ stw r0, 0xc8(r3) -/* 8027EC80 80 83 00 D0 */ lwz r4, 0xd0(r3) -/* 8027EC84 38 04 FF FF */ addi r0, r4, -1 -/* 8027EC88 90 03 00 D0 */ stw r0, 0xd0(r3) -/* 8027EC8C 48 00 00 30 */ b lbl_8027ECBC -lbl_8027EC90: -/* 8027EC90 28 00 00 00 */ cmplwi r0, 0 -/* 8027EC94 41 82 00 28 */ beq lbl_8027ECBC -/* 8027EC98 80 C3 00 CC */ lwz r6, 0xcc(r3) -/* 8027EC9C 38 00 00 00 */ li r0, 0 -/* 8027ECA0 80 86 00 00 */ lwz r4, 0(r6) -/* 8027ECA4 90 04 00 04 */ stw r0, 4(r4) -/* 8027ECA8 80 06 00 00 */ lwz r0, 0(r6) -/* 8027ECAC 90 03 00 CC */ stw r0, 0xcc(r3) -/* 8027ECB0 80 83 00 D0 */ lwz r4, 0xd0(r3) -/* 8027ECB4 38 04 FF FF */ addi r0, r4, -1 -/* 8027ECB8 90 03 00 D0 */ stw r0, 0xd0(r3) -lbl_8027ECBC: -/* 8027ECBC 80 A3 00 E0 */ lwz r5, 0xe0(r3) -/* 8027ECC0 80 05 00 00 */ lwz r0, 0(r5) -/* 8027ECC4 28 00 00 00 */ cmplwi r0, 0 -/* 8027ECC8 41 82 00 24 */ beq lbl_8027ECEC -/* 8027ECCC 38 00 00 00 */ li r0, 0 -/* 8027ECD0 90 06 00 00 */ stw r0, 0(r6) -/* 8027ECD4 80 05 00 00 */ lwz r0, 0(r5) -/* 8027ECD8 90 06 00 04 */ stw r0, 4(r6) -/* 8027ECDC 80 85 00 00 */ lwz r4, 0(r5) -/* 8027ECE0 90 C4 00 00 */ stw r6, 0(r4) -/* 8027ECE4 90 C5 00 00 */ stw r6, 0(r5) -/* 8027ECE8 48 00 00 18 */ b lbl_8027ED00 -lbl_8027ECEC: -/* 8027ECEC 90 C5 00 04 */ stw r6, 4(r5) -/* 8027ECF0 90 C5 00 00 */ stw r6, 0(r5) -/* 8027ECF4 38 00 00 00 */ li r0, 0 -/* 8027ECF8 90 06 00 00 */ stw r0, 0(r6) -/* 8027ECFC 90 06 00 04 */ stw r0, 4(r6) -lbl_8027ED00: -/* 8027ED00 80 85 00 08 */ lwz r4, 8(r5) -/* 8027ED04 38 04 00 01 */ addi r0, r4, 1 -/* 8027ED08 90 05 00 08 */ stw r0, 8(r5) -lbl_8027ED0C: -/* 8027ED0C 80 03 00 D0 */ lwz r0, 0xd0(r3) -/* 8027ED10 28 00 00 00 */ cmplwi r0, 0 -/* 8027ED14 40 82 FF 50 */ bne lbl_8027EC64 -/* 8027ED18 48 00 00 AC */ b lbl_8027EDC4 -lbl_8027ED1C: -/* 8027ED1C 38 C0 00 00 */ li r6, 0 -/* 8027ED20 28 00 00 01 */ cmplwi r0, 1 -/* 8027ED24 40 82 00 24 */ bne lbl_8027ED48 -/* 8027ED28 80 C3 00 D8 */ lwz r6, 0xd8(r3) -/* 8027ED2C 38 00 00 00 */ li r0, 0 -/* 8027ED30 90 03 00 D8 */ stw r0, 0xd8(r3) -/* 8027ED34 90 03 00 D4 */ stw r0, 0xd4(r3) -/* 8027ED38 80 83 00 DC */ lwz r4, 0xdc(r3) -/* 8027ED3C 38 04 FF FF */ addi r0, r4, -1 -/* 8027ED40 90 03 00 DC */ stw r0, 0xdc(r3) -/* 8027ED44 48 00 00 30 */ b lbl_8027ED74 -lbl_8027ED48: -/* 8027ED48 28 00 00 00 */ cmplwi r0, 0 -/* 8027ED4C 41 82 00 28 */ beq lbl_8027ED74 -/* 8027ED50 80 C3 00 D8 */ lwz r6, 0xd8(r3) -/* 8027ED54 38 00 00 00 */ li r0, 0 -/* 8027ED58 80 86 00 00 */ lwz r4, 0(r6) -/* 8027ED5C 90 04 00 04 */ stw r0, 4(r4) -/* 8027ED60 80 06 00 00 */ lwz r0, 0(r6) -/* 8027ED64 90 03 00 D8 */ stw r0, 0xd8(r3) -/* 8027ED68 80 83 00 DC */ lwz r4, 0xdc(r3) -/* 8027ED6C 38 04 FF FF */ addi r0, r4, -1 -/* 8027ED70 90 03 00 DC */ stw r0, 0xdc(r3) -lbl_8027ED74: -/* 8027ED74 80 A3 00 E0 */ lwz r5, 0xe0(r3) -/* 8027ED78 80 05 00 00 */ lwz r0, 0(r5) -/* 8027ED7C 28 00 00 00 */ cmplwi r0, 0 -/* 8027ED80 41 82 00 24 */ beq lbl_8027EDA4 -/* 8027ED84 38 00 00 00 */ li r0, 0 -/* 8027ED88 90 06 00 00 */ stw r0, 0(r6) -/* 8027ED8C 80 05 00 00 */ lwz r0, 0(r5) -/* 8027ED90 90 06 00 04 */ stw r0, 4(r6) -/* 8027ED94 80 85 00 00 */ lwz r4, 0(r5) -/* 8027ED98 90 C4 00 00 */ stw r6, 0(r4) -/* 8027ED9C 90 C5 00 00 */ stw r6, 0(r5) -/* 8027EDA0 48 00 00 18 */ b lbl_8027EDB8 -lbl_8027EDA4: -/* 8027EDA4 90 C5 00 04 */ stw r6, 4(r5) -/* 8027EDA8 90 C5 00 00 */ stw r6, 0(r5) -/* 8027EDAC 38 00 00 00 */ li r0, 0 -/* 8027EDB0 90 06 00 00 */ stw r0, 0(r6) -/* 8027EDB4 90 06 00 04 */ stw r0, 4(r6) -lbl_8027EDB8: -/* 8027EDB8 80 85 00 08 */ lwz r4, 8(r5) -/* 8027EDBC 38 04 00 01 */ addi r0, r4, 1 -/* 8027EDC0 90 05 00 08 */ stw r0, 8(r5) -lbl_8027EDC4: -/* 8027EDC4 80 03 00 DC */ lwz r0, 0xdc(r3) -/* 8027EDC8 28 00 00 00 */ cmplwi r0, 0 -/* 8027EDCC 40 82 FF 50 */ bne lbl_8027ED1C -/* 8027EDD0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPAEmitter/func_8027EEB0.s b/asm/JSystem/JParticle/JPAEmitter/func_8027EEB0.s deleted file mode 100644 index 6d11047e7a..0000000000 --- a/asm/JSystem/JParticle/JPAEmitter/func_8027EEB0.s +++ /dev/null @@ -1,33 +0,0 @@ -lbl_8027EEB0: -/* 8027EEB0 94 21 FF C0 */ stwu r1, -0x40(r1) -/* 8027EEB4 7C 08 02 A6 */ mflr r0 -/* 8027EEB8 90 01 00 44 */ stw r0, 0x44(r1) -/* 8027EEBC 93 E1 00 3C */ stw r31, 0x3c(r1) -/* 8027EEC0 93 C1 00 38 */ stw r30, 0x38(r1) -/* 8027EEC4 7C 7E 1B 78 */ mr r30, r3 -/* 8027EEC8 7C 9F 23 78 */ mr r31, r4 -/* 8027EECC 38 61 00 08 */ addi r3, r1, 8 -/* 8027EED0 C0 3E 00 98 */ lfs f1, 0x98(r30) -/* 8027EED4 C0 5E 00 9C */ lfs f2, 0x9c(r30) -/* 8027EED8 C0 7E 00 A0 */ lfs f3, 0xa0(r30) -/* 8027EEDC 48 0C 7A 8D */ bl PSMTXScale -/* 8027EEE0 38 7E 00 68 */ addi r3, r30, 0x68 -/* 8027EEE4 38 81 00 08 */ addi r4, r1, 8 -/* 8027EEE8 7C 85 23 78 */ mr r5, r4 -/* 8027EEEC 48 0C 75 F9 */ bl PSMTXConcat -/* 8027EEF0 C0 1E 00 A4 */ lfs f0, 0xa4(r30) -/* 8027EEF4 D0 01 00 14 */ stfs f0, 0x14(r1) -/* 8027EEF8 C0 1E 00 A8 */ lfs f0, 0xa8(r30) -/* 8027EEFC D0 01 00 24 */ stfs f0, 0x24(r1) -/* 8027EF00 C0 1E 00 AC */ lfs f0, 0xac(r30) -/* 8027EF04 D0 01 00 34 */ stfs f0, 0x34(r1) -/* 8027EF08 38 61 00 08 */ addi r3, r1, 8 -/* 8027EF0C 38 9E 00 0C */ addi r4, r30, 0xc -/* 8027EF10 7F E5 FB 78 */ mr r5, r31 -/* 8027EF14 48 0C 7E 59 */ bl PSMTXMultVec -/* 8027EF18 83 E1 00 3C */ lwz r31, 0x3c(r1) -/* 8027EF1C 83 C1 00 38 */ lwz r30, 0x38(r1) -/* 8027EF20 80 01 00 44 */ lwz r0, 0x44(r1) -/* 8027EF24 7C 08 03 A6 */ mtlr r0 -/* 8027EF28 38 21 00 40 */ addi r1, r1, 0x40 -/* 8027EF2C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPAEmitter/getCurrentCreateNumber__14JPABaseEmitterCFv.s b/asm/JSystem/JParticle/JPAEmitter/getCurrentCreateNumber__14JPABaseEmitterCFv.s deleted file mode 100644 index e61d68914d..0000000000 --- a/asm/JSystem/JParticle/JPAEmitter/getCurrentCreateNumber__14JPABaseEmitterCFv.s +++ /dev/null @@ -1,5 +0,0 @@ -lbl_8027EF30: -/* 8027EF30 80 63 00 E4 */ lwz r3, 0xe4(r3) -/* 8027EF34 80 63 00 20 */ lwz r3, 0x20(r3) -/* 8027EF38 80 63 00 40 */ lwz r3, 0x40(r3) -/* 8027EF3C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPAEmitter/getDrawCount__14JPABaseEmitterCFv.s b/asm/JSystem/JParticle/JPAEmitter/getDrawCount__14JPABaseEmitterCFv.s deleted file mode 100644 index f334cfdf7e..0000000000 --- a/asm/JSystem/JParticle/JPAEmitter/getDrawCount__14JPABaseEmitterCFv.s +++ /dev/null @@ -1,5 +0,0 @@ -lbl_8027EF40: -/* 8027EF40 80 63 00 E4 */ lwz r3, 0xe4(r3) -/* 8027EF44 80 63 00 20 */ lwz r3, 0x20(r3) -/* 8027EF48 88 63 02 16 */ lbz r3, 0x216(r3) -/* 8027EF4C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPAEmitter/loadTexture__14JPABaseEmitterFUc11_GXTexMapID.s b/asm/JSystem/JParticle/JPAEmitter/loadTexture__14JPABaseEmitterFUc11_GXTexMapID.s deleted file mode 100644 index a63cd6617d..0000000000 --- a/asm/JSystem/JParticle/JPAEmitter/loadTexture__14JPABaseEmitterFUc11_GXTexMapID.s +++ /dev/null @@ -1,22 +0,0 @@ -lbl_8027EF50: -/* 8027EF50 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8027EF54 7C 08 02 A6 */ mflr r0 -/* 8027EF58 90 01 00 14 */ stw r0, 0x14(r1) -/* 8027EF5C 80 C3 00 E8 */ lwz r6, 0xe8(r3) -/* 8027EF60 80 C6 00 38 */ lwz r6, 0x38(r6) -/* 8027EF64 54 80 0D FC */ rlwinm r0, r4, 1, 0x17, 0x1e -/* 8027EF68 7C 06 02 2E */ lhzx r0, r6, r0 -/* 8027EF6C 80 63 00 E4 */ lwz r3, 0xe4(r3) -/* 8027EF70 80 63 00 20 */ lwz r3, 0x20(r3) -/* 8027EF74 80 63 00 08 */ lwz r3, 8(r3) -/* 8027EF78 80 63 00 08 */ lwz r3, 8(r3) -/* 8027EF7C 54 00 13 BA */ rlwinm r0, r0, 2, 0xe, 0x1d -/* 8027EF80 7C 63 00 2E */ lwzx r3, r3, r0 -/* 8027EF84 38 63 00 04 */ addi r3, r3, 4 -/* 8027EF88 7C A4 2B 78 */ mr r4, r5 -/* 8027EF8C 48 05 F8 B5 */ bl load__10JUTTextureF11_GXTexMapID -/* 8027EF90 38 60 00 01 */ li r3, 1 -/* 8027EF94 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8027EF98 7C 08 03 A6 */ mtlr r0 -/* 8027EF9C 38 21 00 10 */ addi r1, r1, 0x10 -/* 8027EFA0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPAEmitter/processTillStartFrame__14JPABaseEmitterFv.s b/asm/JSystem/JParticle/JPAEmitter/processTillStartFrame__14JPABaseEmitterFv.s deleted file mode 100644 index de6939f104..0000000000 --- a/asm/JSystem/JParticle/JPAEmitter/processTillStartFrame__14JPABaseEmitterFv.s +++ /dev/null @@ -1,19 +0,0 @@ -lbl_8027EDD4: -/* 8027EDD4 80 83 00 E8 */ lwz r4, 0xe8(r3) -/* 8027EDD8 80 84 00 2C */ lwz r4, 0x2c(r4) -/* 8027EDDC 80 84 00 00 */ lwz r4, 0(r4) -/* 8027EDE0 A8 04 00 70 */ lha r0, 0x70(r4) -/* 8027EDE4 A8 83 01 04 */ lha r4, 0x104(r3) -/* 8027EDE8 7C 04 00 00 */ cmpw r4, r0 -/* 8027EDEC 41 80 00 0C */ blt lbl_8027EDF8 -/* 8027EDF0 38 60 00 01 */ li r3, 1 -/* 8027EDF4 4E 80 00 20 */ blr -lbl_8027EDF8: -/* 8027EDF8 80 03 00 F4 */ lwz r0, 0xf4(r3) -/* 8027EDFC 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e -/* 8027EE00 40 82 00 0C */ bne lbl_8027EE0C -/* 8027EE04 38 04 00 01 */ addi r0, r4, 1 -/* 8027EE08 B0 03 01 04 */ sth r0, 0x104(r3) -lbl_8027EE0C: -/* 8027EE0C 38 60 00 00 */ li r3, 0 -/* 8027EE10 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPAEmitterManager/__ct__14JPABaseEmitterFv.s b/asm/JSystem/JParticle/JPAEmitterManager/__ct__14JPABaseEmitterFv.s deleted file mode 100644 index a9b1ce8351..0000000000 --- a/asm/JSystem/JParticle/JPAEmitterManager/__ct__14JPABaseEmitterFv.s +++ /dev/null @@ -1,23 +0,0 @@ -lbl_8027E64C: -/* 8027E64C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8027E650 7C 08 02 A6 */ mflr r0 -/* 8027E654 90 01 00 14 */ stw r0, 0x14(r1) -/* 8027E658 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8027E65C 7C 7F 1B 78 */ mr r31, r3 -/* 8027E660 38 7F 00 58 */ addi r3, r31, 0x58 -/* 8027E664 7F E4 FB 78 */ mr r4, r31 -/* 8027E668 48 05 D7 95 */ bl __ct__10JSUPtrLinkFPv -/* 8027E66C 38 00 00 00 */ li r0, 0 -/* 8027E670 90 1F 00 C4 */ stw r0, 0xc4(r31) -/* 8027E674 90 1F 00 C8 */ stw r0, 0xc8(r31) -/* 8027E678 90 1F 00 CC */ stw r0, 0xcc(r31) -/* 8027E67C 90 1F 00 D0 */ stw r0, 0xd0(r31) -/* 8027E680 90 1F 00 D4 */ stw r0, 0xd4(r31) -/* 8027E684 90 1F 00 D8 */ stw r0, 0xd8(r31) -/* 8027E688 90 1F 00 DC */ stw r0, 0xdc(r31) -/* 8027E68C 7F E3 FB 78 */ mr r3, r31 -/* 8027E690 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8027E694 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8027E698 7C 08 03 A6 */ mtlr r0 -/* 8027E69C 38 21 00 10 */ addi r1, r1, 0x10 -/* 8027E6A0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPAEmitterManager/__dt__14JPABaseEmitterFv.s b/asm/JSystem/JParticle/JPAEmitterManager/__dt__14JPABaseEmitterFv.s deleted file mode 100644 index b3ae6210fd..0000000000 --- a/asm/JSystem/JParticle/JPAEmitterManager/__dt__14JPABaseEmitterFv.s +++ /dev/null @@ -1,27 +0,0 @@ -lbl_8027E5EC: -/* 8027E5EC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8027E5F0 7C 08 02 A6 */ mflr r0 -/* 8027E5F4 90 01 00 14 */ stw r0, 0x14(r1) -/* 8027E5F8 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8027E5FC 93 C1 00 08 */ stw r30, 8(r1) -/* 8027E600 7C 7E 1B 79 */ or. r30, r3, r3 -/* 8027E604 7C 9F 23 78 */ mr r31, r4 -/* 8027E608 41 82 00 28 */ beq lbl_8027E630 -/* 8027E60C 34 1E 00 58 */ addic. r0, r30, 0x58 -/* 8027E610 41 82 00 10 */ beq lbl_8027E620 -/* 8027E614 38 7E 00 58 */ addi r3, r30, 0x58 -/* 8027E618 38 80 00 00 */ li r4, 0 -/* 8027E61C 48 05 D7 F9 */ bl __dt__10JSUPtrLinkFv -lbl_8027E620: -/* 8027E620 7F E0 07 35 */ extsh. r0, r31 -/* 8027E624 40 81 00 0C */ ble lbl_8027E630 -/* 8027E628 7F C3 F3 78 */ mr r3, r30 -/* 8027E62C 48 05 07 11 */ bl __dl__FPv -lbl_8027E630: -/* 8027E630 7F C3 F3 78 */ mr r3, r30 -/* 8027E634 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8027E638 83 C1 00 08 */ lwz r30, 8(r1) -/* 8027E63C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8027E640 7C 08 03 A6 */ mtlr r0 -/* 8027E644 38 21 00 10 */ addi r1, r1, 0x10 -/* 8027E648 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPAEmitterManager/calc__17JPAEmitterManagerFUc.s b/asm/JSystem/JParticle/JPAEmitterManager/calc__17JPAEmitterManagerFUc.s deleted file mode 100644 index 0007e4a1cf..0000000000 --- a/asm/JSystem/JParticle/JPAEmitterManager/calc__17JPAEmitterManagerFUc.s +++ /dev/null @@ -1,38 +0,0 @@ -lbl_8027DFA0: -/* 8027DFA0 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8027DFA4 7C 08 02 A6 */ mflr r0 -/* 8027DFA8 90 01 00 24 */ stw r0, 0x24(r1) -/* 8027DFAC 39 61 00 20 */ addi r11, r1, 0x20 -/* 8027DFB0 48 0E 42 2D */ bl _savegpr_29 -/* 8027DFB4 7C 7D 1B 78 */ mr r29, r3 -/* 8027DFB8 80 63 00 00 */ lwz r3, 0(r3) -/* 8027DFBC 54 80 06 3E */ clrlwi r0, r4, 0x18 -/* 8027DFC0 1C 00 00 0C */ mulli r0, r0, 0xc -/* 8027DFC4 7C 63 00 2E */ lwzx r3, r3, r0 -/* 8027DFC8 48 00 00 40 */ b lbl_8027E008 -lbl_8027DFCC: -/* 8027DFCC 83 E3 00 0C */ lwz r31, 0xc(r3) -/* 8027DFD0 83 C3 00 00 */ lwz r30, 0(r3) -/* 8027DFD4 80 7E 00 E8 */ lwz r3, 0xe8(r30) -/* 8027DFD8 80 9D 00 20 */ lwz r4, 0x20(r29) -/* 8027DFDC 7F C5 F3 78 */ mr r5, r30 -/* 8027DFE0 4B FF 76 09 */ bl calc__11JPAResourceFP18JPAEmitterWorkDataP14JPABaseEmitter -/* 8027DFE4 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 8027DFE8 41 82 00 1C */ beq lbl_8027E004 -/* 8027DFEC 80 1E 00 F4 */ lwz r0, 0xf4(r30) -/* 8027DFF0 54 00 05 AD */ rlwinm. r0, r0, 0, 0x16, 0x16 -/* 8027DFF4 40 82 00 10 */ bne lbl_8027E004 -/* 8027DFF8 7F A3 EB 78 */ mr r3, r29 -/* 8027DFFC 7F C4 F3 78 */ mr r4, r30 -/* 8027E000 48 00 02 D9 */ bl forceDeleteEmitter__17JPAEmitterManagerFP14JPABaseEmitter -lbl_8027E004: -/* 8027E004 7F E3 FB 78 */ mr r3, r31 -lbl_8027E008: -/* 8027E008 28 03 00 00 */ cmplwi r3, 0 -/* 8027E00C 40 82 FF C0 */ bne lbl_8027DFCC -/* 8027E010 39 61 00 20 */ addi r11, r1, 0x20 -/* 8027E014 48 0E 42 15 */ bl _restgpr_29 -/* 8027E018 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8027E01C 7C 08 03 A6 */ mtlr r0 -/* 8027E020 38 21 00 20 */ addi r1, r1, 0x20 -/* 8027E024 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPAEmitterManager/clearResourceManager__17JPAEmitterManagerFUc.s b/asm/JSystem/JParticle/JPAEmitterManager/clearResourceManager__17JPAEmitterManagerFUc.s deleted file mode 100644 index 6b1d39c134..0000000000 --- a/asm/JSystem/JParticle/JPAEmitterManager/clearResourceManager__17JPAEmitterManagerFUc.s +++ /dev/null @@ -1,46 +0,0 @@ -lbl_8027E354: -/* 8027E354 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8027E358 7C 08 02 A6 */ mflr r0 -/* 8027E35C 90 01 00 24 */ stw r0, 0x24(r1) -/* 8027E360 39 61 00 20 */ addi r11, r1, 0x20 -/* 8027E364 48 0E 3E 71 */ bl _savegpr_27 -/* 8027E368 7C 7B 1B 78 */ mr r27, r3 -/* 8027E36C 7C 9C 23 78 */ mr r28, r4 -/* 8027E370 3B A0 00 00 */ li r29, 0 -/* 8027E374 54 9F 06 3E */ clrlwi r31, r4, 0x18 -/* 8027E378 48 00 00 44 */ b lbl_8027E3BC -lbl_8027E37C: -/* 8027E37C 80 7B 00 00 */ lwz r3, 0(r27) -/* 8027E380 57 A0 06 3E */ clrlwi r0, r29, 0x18 -/* 8027E384 1C 00 00 0C */ mulli r0, r0, 0xc -/* 8027E388 7C 63 00 2E */ lwzx r3, r3, r0 -/* 8027E38C 48 00 00 24 */ b lbl_8027E3B0 -lbl_8027E390: -/* 8027E390 83 C3 00 0C */ lwz r30, 0xc(r3) -/* 8027E394 80 83 00 00 */ lwz r4, 0(r3) -/* 8027E398 88 04 01 13 */ lbz r0, 0x113(r4) -/* 8027E39C 7C 1F 00 40 */ cmplw r31, r0 -/* 8027E3A0 40 82 00 0C */ bne lbl_8027E3AC -/* 8027E3A4 7F 63 DB 78 */ mr r3, r27 -/* 8027E3A8 4B FF FF 31 */ bl forceDeleteEmitter__17JPAEmitterManagerFP14JPABaseEmitter -lbl_8027E3AC: -/* 8027E3AC 7F C3 F3 78 */ mr r3, r30 -lbl_8027E3B0: -/* 8027E3B0 28 03 00 00 */ cmplwi r3, 0 -/* 8027E3B4 40 82 FF DC */ bne lbl_8027E390 -/* 8027E3B8 3B BD 00 01 */ addi r29, r29, 1 -lbl_8027E3BC: -/* 8027E3BC 57 A3 06 3E */ clrlwi r3, r29, 0x18 -/* 8027E3C0 88 1B 00 2C */ lbz r0, 0x2c(r27) -/* 8027E3C4 7C 03 00 40 */ cmplw r3, r0 -/* 8027E3C8 41 80 FF B4 */ blt lbl_8027E37C -/* 8027E3CC 38 80 00 00 */ li r4, 0 -/* 8027E3D0 80 7B 00 1C */ lwz r3, 0x1c(r27) -/* 8027E3D4 57 80 15 BA */ rlwinm r0, r28, 2, 0x16, 0x1d -/* 8027E3D8 7C 83 01 2E */ stwx r4, r3, r0 -/* 8027E3DC 39 61 00 20 */ addi r11, r1, 0x20 -/* 8027E3E0 48 0E 3E 41 */ bl _restgpr_27 -/* 8027E3E4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8027E3E8 7C 08 03 A6 */ mtlr r0 -/* 8027E3EC 38 21 00 20 */ addi r1, r1, 0x20 -/* 8027E3F0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPAEmitterManager/draw__17JPAEmitterManagerFPC11JPADrawInfoUc.s b/asm/JSystem/JParticle/JPAEmitterManager/draw__17JPAEmitterManagerFPC11JPADrawInfoUc.s deleted file mode 100644 index 83b4aa4e6d..0000000000 --- a/asm/JSystem/JParticle/JPAEmitterManager/draw__17JPAEmitterManagerFPC11JPADrawInfoUc.s +++ /dev/null @@ -1,130 +0,0 @@ -lbl_8027E028: -/* 8027E028 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8027E02C 7C 08 02 A6 */ mflr r0 -/* 8027E030 90 01 00 24 */ stw r0, 0x24(r1) -/* 8027E034 39 61 00 20 */ addi r11, r1, 0x20 -/* 8027E038 48 0E 41 A5 */ bl _savegpr_29 -/* 8027E03C 7C 7D 1B 78 */ mr r29, r3 -/* 8027E040 7C 9E 23 78 */ mr r30, r4 -/* 8027E044 7C BF 2B 78 */ mr r31, r5 -/* 8027E048 7F C3 F3 78 */ mr r3, r30 -/* 8027E04C 80 9D 00 20 */ lwz r4, 0x20(r29) -/* 8027E050 38 84 01 84 */ addi r4, r4, 0x184 -/* 8027E054 48 0C 84 5D */ bl PSMTXCopy -/* 8027E058 38 7E 00 30 */ addi r3, r30, 0x30 -/* 8027E05C 80 9D 00 20 */ lwz r4, 0x20(r29) -/* 8027E060 38 84 01 B4 */ addi r4, r4, 0x1b4 -/* 8027E064 48 0C 84 4D */ bl PSMTXCopy -/* 8027E068 7F A3 EB 78 */ mr r3, r29 -/* 8027E06C 48 00 03 89 */ bl calcYBBCam__17JPAEmitterManagerFv -/* 8027E070 38 60 00 00 */ li r3, 0 -/* 8027E074 38 80 00 00 */ li r4, 0 -/* 8027E078 38 A0 00 00 */ li r5, 0 -/* 8027E07C 38 C0 00 00 */ li r6, 0 -/* 8027E080 38 E0 00 01 */ li r7, 1 -/* 8027E084 39 00 00 00 */ li r8, 0 -/* 8027E088 48 0E 12 25 */ bl GXSetTevColorOp -/* 8027E08C 38 60 00 00 */ li r3, 0 -/* 8027E090 38 80 00 00 */ li r4, 0 -/* 8027E094 38 A0 00 00 */ li r5, 0 -/* 8027E098 38 C0 00 00 */ li r6, 0 -/* 8027E09C 38 E0 00 01 */ li r7, 1 -/* 8027E0A0 39 00 00 00 */ li r8, 0 -/* 8027E0A4 48 0E 12 71 */ bl GXSetTevAlphaOp -/* 8027E0A8 38 60 00 00 */ li r3, 0 -/* 8027E0AC 38 80 00 01 */ li r4, 1 -/* 8027E0B0 38 A0 00 01 */ li r5, 1 -/* 8027E0B4 48 0D E8 89 */ bl GXEnableTexOffsets -/* 8027E0B8 38 60 00 01 */ li r3, 1 -/* 8027E0BC 38 80 00 01 */ li r4, 1 -/* 8027E0C0 38 A0 00 01 */ li r5, 1 -/* 8027E0C4 48 0D E8 79 */ bl GXEnableTexOffsets -/* 8027E0C8 38 60 00 02 */ li r3, 2 -/* 8027E0CC 38 80 00 01 */ li r4, 1 -/* 8027E0D0 38 A0 00 01 */ li r5, 1 -/* 8027E0D4 48 0D E8 69 */ bl GXEnableTexOffsets -/* 8027E0D8 38 60 00 00 */ li r3, 0 -/* 8027E0DC 48 0D E8 A9 */ bl GXSetCullMode -/* 8027E0E0 38 60 00 00 */ li r3, 0 -/* 8027E0E4 48 0D E8 C9 */ bl GXSetCoPlanar -/* 8027E0E8 48 0D D4 A5 */ bl GXClearVtxDesc -/* 8027E0EC 38 60 00 09 */ li r3, 9 -/* 8027E0F0 38 80 00 02 */ li r4, 2 -/* 8027E0F4 48 0D CD C5 */ bl GXSetVtxDesc -/* 8027E0F8 38 60 00 0D */ li r3, 0xd -/* 8027E0FC 38 80 00 02 */ li r4, 2 -/* 8027E100 48 0D CD B9 */ bl GXSetVtxDesc -/* 8027E104 38 60 00 00 */ li r3, 0 -/* 8027E108 38 80 00 09 */ li r4, 9 -/* 8027E10C 38 A0 00 01 */ li r5, 1 -/* 8027E110 38 C0 00 01 */ li r6, 1 -/* 8027E114 38 E0 00 00 */ li r7, 0 -/* 8027E118 48 0D D4 AD */ bl GXSetVtxAttrFmt -/* 8027E11C 38 60 00 00 */ li r3, 0 -/* 8027E120 38 80 00 0D */ li r4, 0xd -/* 8027E124 38 A0 00 01 */ li r5, 1 -/* 8027E128 38 C0 00 01 */ li r6, 1 -/* 8027E12C 38 E0 00 00 */ li r7, 0 -/* 8027E130 48 0D D4 95 */ bl GXSetVtxAttrFmt -/* 8027E134 38 60 00 01 */ li r3, 1 -/* 8027E138 38 80 00 09 */ li r4, 9 -/* 8027E13C 38 A0 00 01 */ li r5, 1 -/* 8027E140 38 C0 00 04 */ li r6, 4 -/* 8027E144 38 E0 00 00 */ li r7, 0 -/* 8027E148 48 0D D4 7D */ bl GXSetVtxAttrFmt -/* 8027E14C 38 60 00 01 */ li r3, 1 -/* 8027E150 38 80 00 0D */ li r4, 0xd -/* 8027E154 38 A0 00 01 */ li r5, 1 -/* 8027E158 38 C0 00 04 */ li r6, 4 -/* 8027E15C 38 E0 00 00 */ li r7, 0 -/* 8027E160 48 0D D4 65 */ bl GXSetVtxAttrFmt -/* 8027E164 38 60 00 00 */ li r3, 0 -/* 8027E168 48 0E 21 85 */ bl GXSetCurrentMtx -/* 8027E16C 38 60 00 04 */ li r3, 4 -/* 8027E170 38 80 00 00 */ li r4, 0 -/* 8027E174 38 A0 00 00 */ li r5, 0 -/* 8027E178 38 C0 00 01 */ li r6, 1 -/* 8027E17C 38 E0 00 00 */ li r7, 0 -/* 8027E180 39 00 00 00 */ li r8, 0 -/* 8027E184 39 20 00 02 */ li r9, 2 -/* 8027E188 48 0D F9 E5 */ bl GXSetChanCtrl -/* 8027E18C 38 60 00 05 */ li r3, 5 -/* 8027E190 38 80 00 00 */ li r4, 0 -/* 8027E194 38 A0 00 00 */ li r5, 0 -/* 8027E198 38 C0 00 01 */ li r6, 1 -/* 8027E19C 38 E0 00 00 */ li r7, 0 -/* 8027E1A0 39 00 00 00 */ li r8, 0 -/* 8027E1A4 39 20 00 02 */ li r9, 2 -/* 8027E1A8 48 0D F9 C5 */ bl GXSetChanCtrl -/* 8027E1AC 38 60 00 00 */ li r3, 0 -/* 8027E1B0 48 0D F9 81 */ bl GXSetNumChans -/* 8027E1B4 80 7D 00 00 */ lwz r3, 0(r29) -/* 8027E1B8 57 E0 06 3E */ clrlwi r0, r31, 0x18 -/* 8027E1BC 1C 00 00 0C */ mulli r0, r0, 0xc -/* 8027E1C0 7F E3 00 2E */ lwzx r31, r3, r0 -/* 8027E1C4 48 00 00 3C */ b lbl_8027E200 -lbl_8027E1C8: -/* 8027E1C8 80 BF 00 00 */ lwz r5, 0(r31) -/* 8027E1CC 80 05 00 F4 */ lwz r0, 0xf4(r5) -/* 8027E1D0 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d -/* 8027E1D4 40 82 00 28 */ bne lbl_8027E1FC -/* 8027E1D8 80 7D 00 1C */ lwz r3, 0x1c(r29) -/* 8027E1DC 88 05 01 13 */ lbz r0, 0x113(r5) -/* 8027E1E0 54 00 10 3A */ slwi r0, r0, 2 -/* 8027E1E4 7C 03 00 2E */ lwzx r0, r3, r0 -/* 8027E1E8 80 7D 00 20 */ lwz r3, 0x20(r29) -/* 8027E1EC 90 03 00 08 */ stw r0, 8(r3) -/* 8027E1F0 80 65 00 E8 */ lwz r3, 0xe8(r5) -/* 8027E1F4 80 9D 00 20 */ lwz r4, 0x20(r29) -/* 8027E1F8 4B FF 78 9D */ bl draw__11JPAResourceFP18JPAEmitterWorkDataP14JPABaseEmitter -lbl_8027E1FC: -/* 8027E1FC 83 FF 00 0C */ lwz r31, 0xc(r31) -lbl_8027E200: -/* 8027E200 28 1F 00 00 */ cmplwi r31, 0 -/* 8027E204 40 82 FF C4 */ bne lbl_8027E1C8 -/* 8027E208 39 61 00 20 */ addi r11, r1, 0x20 -/* 8027E20C 48 0E 40 1D */ bl _restgpr_29 -/* 8027E210 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8027E214 7C 08 03 A6 */ mtlr r0 -/* 8027E218 38 21 00 20 */ addi r1, r1, 0x20 -/* 8027E21C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPAEmitterManager/entryResourceManager__17JPAEmitterManagerFP18JPAResourceManagerUc.s b/asm/JSystem/JParticle/JPAEmitterManager/entryResourceManager__17JPAEmitterManagerFP18JPAResourceManagerUc.s deleted file mode 100644 index 9256aa32df..0000000000 --- a/asm/JSystem/JParticle/JPAEmitterManager/entryResourceManager__17JPAEmitterManagerFP18JPAResourceManagerUc.s +++ /dev/null @@ -1,5 +0,0 @@ -lbl_8027E344: -/* 8027E344 80 63 00 1C */ lwz r3, 0x1c(r3) -/* 8027E348 54 A0 15 BA */ rlwinm r0, r5, 2, 0x16, 0x1d -/* 8027E34C 7C 83 01 2E */ stwx r4, r3, r0 -/* 8027E350 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPAEmitterManager/forceDeleteAllEmitter__17JPAEmitterManagerFv.s b/asm/JSystem/JParticle/JPAEmitterManager/forceDeleteAllEmitter__17JPAEmitterManagerFv.s deleted file mode 100644 index dc7121063a..0000000000 --- a/asm/JSystem/JParticle/JPAEmitterManager/forceDeleteAllEmitter__17JPAEmitterManagerFv.s +++ /dev/null @@ -1,25 +0,0 @@ -lbl_8027E220: -/* 8027E220 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8027E224 7C 08 02 A6 */ mflr r0 -/* 8027E228 90 01 00 14 */ stw r0, 0x14(r1) -/* 8027E22C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8027E230 93 C1 00 08 */ stw r30, 8(r1) -/* 8027E234 7C 7E 1B 78 */ mr r30, r3 -/* 8027E238 3B E0 00 00 */ li r31, 0 -/* 8027E23C 48 00 00 14 */ b lbl_8027E250 -lbl_8027E240: -/* 8027E240 7F C3 F3 78 */ mr r3, r30 -/* 8027E244 7F E4 FB 78 */ mr r4, r31 -/* 8027E248 48 00 00 31 */ bl forceDeleteGroupEmitter__17JPAEmitterManagerFUc -/* 8027E24C 3B FF 00 01 */ addi r31, r31, 1 -lbl_8027E250: -/* 8027E250 57 E3 06 3E */ clrlwi r3, r31, 0x18 -/* 8027E254 88 1E 00 2C */ lbz r0, 0x2c(r30) -/* 8027E258 7C 03 00 40 */ cmplw r3, r0 -/* 8027E25C 41 80 FF E4 */ blt lbl_8027E240 -/* 8027E260 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8027E264 83 C1 00 08 */ lwz r30, 8(r1) -/* 8027E268 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8027E26C 7C 08 03 A6 */ mtlr r0 -/* 8027E270 38 21 00 10 */ addi r1, r1, 0x10 -/* 8027E274 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPAEmitterManager/forceDeleteEmitter__17JPAEmitterManagerFP14JPABaseEmitter.s b/asm/JSystem/JParticle/JPAEmitterManager/forceDeleteEmitter__17JPAEmitterManagerFP14JPABaseEmitter.s deleted file mode 100644 index 8a2513dc0b..0000000000 --- a/asm/JSystem/JParticle/JPAEmitterManager/forceDeleteEmitter__17JPAEmitterManagerFP14JPABaseEmitter.s +++ /dev/null @@ -1,28 +0,0 @@ -lbl_8027E2D8: -/* 8027E2D8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8027E2DC 7C 08 02 A6 */ mflr r0 -/* 8027E2E0 90 01 00 14 */ stw r0, 0x14(r1) -/* 8027E2E4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8027E2E8 93 C1 00 08 */ stw r30, 8(r1) -/* 8027E2EC 7C 7E 1B 78 */ mr r30, r3 -/* 8027E2F0 7C 9F 23 78 */ mr r31, r4 -/* 8027E2F4 7F E3 FB 78 */ mr r3, r31 -/* 8027E2F8 48 00 09 69 */ bl deleteAllParticle__14JPABaseEmitterFv -/* 8027E2FC 80 1F 00 F4 */ lwz r0, 0xf4(r31) -/* 8027E300 60 00 03 00 */ ori r0, r0, 0x300 -/* 8027E304 90 1F 00 F4 */ stw r0, 0xf4(r31) -/* 8027E308 80 7E 00 00 */ lwz r3, 0(r30) -/* 8027E30C 88 1F 01 12 */ lbz r0, 0x112(r31) -/* 8027E310 1C 00 00 0C */ mulli r0, r0, 0xc -/* 8027E314 7C 63 02 14 */ add r3, r3, r0 -/* 8027E318 38 9F 00 58 */ addi r4, r31, 0x58 -/* 8027E31C 48 05 DE 41 */ bl remove__10JSUPtrListFP10JSUPtrLink -/* 8027E320 38 7E 00 04 */ addi r3, r30, 4 -/* 8027E324 38 9F 00 58 */ addi r4, r31, 0x58 -/* 8027E328 48 05 DC C9 */ bl prepend__10JSUPtrListFP10JSUPtrLink -/* 8027E32C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8027E330 83 C1 00 08 */ lwz r30, 8(r1) -/* 8027E334 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8027E338 7C 08 03 A6 */ mtlr r0 -/* 8027E33C 38 21 00 10 */ addi r1, r1, 0x10 -/* 8027E340 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPAEmitterManager/forceDeleteGroupEmitter__17JPAEmitterManagerFUc.s b/asm/JSystem/JParticle/JPAEmitterManager/forceDeleteGroupEmitter__17JPAEmitterManagerFUc.s deleted file mode 100644 index b3a606c1ff..0000000000 --- a/asm/JSystem/JParticle/JPAEmitterManager/forceDeleteGroupEmitter__17JPAEmitterManagerFUc.s +++ /dev/null @@ -1,27 +0,0 @@ -lbl_8027E278: -/* 8027E278 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8027E27C 7C 08 02 A6 */ mflr r0 -/* 8027E280 90 01 00 14 */ stw r0, 0x14(r1) -/* 8027E284 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8027E288 93 C1 00 08 */ stw r30, 8(r1) -/* 8027E28C 7C 7E 1B 78 */ mr r30, r3 -/* 8027E290 54 80 06 3E */ clrlwi r0, r4, 0x18 -/* 8027E294 1F E0 00 0C */ mulli r31, r0, 0xc -/* 8027E298 48 00 00 14 */ b lbl_8027E2AC -lbl_8027E29C: -/* 8027E29C 80 63 00 04 */ lwz r3, 4(r3) -/* 8027E2A0 80 83 00 00 */ lwz r4, 0(r3) -/* 8027E2A4 7F C3 F3 78 */ mr r3, r30 -/* 8027E2A8 48 00 00 31 */ bl forceDeleteEmitter__17JPAEmitterManagerFP14JPABaseEmitter -lbl_8027E2AC: -/* 8027E2AC 80 1E 00 00 */ lwz r0, 0(r30) -/* 8027E2B0 7C 7F 02 14 */ add r3, r31, r0 -/* 8027E2B4 80 03 00 08 */ lwz r0, 8(r3) -/* 8027E2B8 28 00 00 00 */ cmplwi r0, 0 -/* 8027E2BC 40 82 FF E0 */ bne lbl_8027E29C -/* 8027E2C0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8027E2C4 83 C1 00 08 */ lwz r30, 8(r1) -/* 8027E2C8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8027E2CC 7C 08 03 A6 */ mtlr r0 -/* 8027E2D0 38 21 00 10 */ addi r1, r1, 0x10 -/* 8027E2D4 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPAEmitterManager/func_8027DEBC.s b/asm/JSystem/JParticle/JPAEmitterManager/func_8027DEBC.s deleted file mode 100644 index 1b9216fb4d..0000000000 --- a/asm/JSystem/JParticle/JPAEmitterManager/func_8027DEBC.s +++ /dev/null @@ -1,60 +0,0 @@ -lbl_8027DEBC: -/* 8027DEBC 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 8027DEC0 7C 08 02 A6 */ mflr r0 -/* 8027DEC4 90 01 00 34 */ stw r0, 0x34(r1) -/* 8027DEC8 39 61 00 30 */ addi r11, r1, 0x30 -/* 8027DECC 48 0E 42 FD */ bl _savegpr_24 -/* 8027DED0 7C 78 1B 78 */ mr r24, r3 -/* 8027DED4 7C 99 23 78 */ mr r25, r4 -/* 8027DED8 7C DA 33 78 */ mr r26, r6 -/* 8027DEDC 7C FB 3B 78 */ mr r27, r7 -/* 8027DEE0 7D 1C 43 78 */ mr r28, r8 -/* 8027DEE4 7D 3D 4B 78 */ mr r29, r9 -/* 8027DEE8 80 63 00 1C */ lwz r3, 0x1c(r3) -/* 8027DEEC 54 E0 15 BA */ rlwinm r0, r7, 2, 0x16, 0x1d -/* 8027DEF0 7C 63 00 2E */ lwzx r3, r3, r0 -/* 8027DEF4 7C A4 2B 78 */ mr r4, r5 -/* 8027DEF8 4B FF 5F 71 */ bl getResource__18JPAResourceManagerCFUs -/* 8027DEFC 7C 7E 1B 79 */ or. r30, r3, r3 -/* 8027DF00 41 82 00 84 */ beq lbl_8027DF84 -/* 8027DF04 80 18 00 0C */ lwz r0, 0xc(r24) -/* 8027DF08 28 00 00 00 */ cmplwi r0, 0 -/* 8027DF0C 41 82 00 78 */ beq lbl_8027DF84 -/* 8027DF10 83 F8 00 04 */ lwz r31, 4(r24) -/* 8027DF14 38 78 00 04 */ addi r3, r24, 4 -/* 8027DF18 7F E4 FB 78 */ mr r4, r31 -/* 8027DF1C 48 05 E2 41 */ bl remove__10JSUPtrListFP10JSUPtrLink -/* 8027DF20 80 78 00 00 */ lwz r3, 0(r24) -/* 8027DF24 57 40 06 3E */ clrlwi r0, r26, 0x18 -/* 8027DF28 1C 00 00 0C */ mulli r0, r0, 0xc -/* 8027DF2C 7C 63 02 14 */ add r3, r3, r0 -/* 8027DF30 7F E4 FB 78 */ mr r4, r31 -/* 8027DF34 48 05 E0 19 */ bl append__10JSUPtrListFP10JSUPtrLink -/* 8027DF38 83 FF 00 00 */ lwz r31, 0(r31) -/* 8027DF3C 7F E3 FB 78 */ mr r3, r31 -/* 8027DF40 7F 04 C3 78 */ mr r4, r24 -/* 8027DF44 7F C5 F3 78 */ mr r5, r30 -/* 8027DF48 48 00 07 A5 */ bl init__14JPABaseEmitterFP17JPAEmitterManagerP11JPAResource -/* 8027DF4C 38 18 00 10 */ addi r0, r24, 0x10 -/* 8027DF50 90 1F 00 E0 */ stw r0, 0xe0(r31) -/* 8027DF54 93 9F 00 EC */ stw r28, 0xec(r31) -/* 8027DF58 93 BF 00 F0 */ stw r29, 0xf0(r31) -/* 8027DF5C 9B 5F 01 12 */ stb r26, 0x112(r31) -/* 8027DF60 9B 7F 01 13 */ stb r27, 0x113(r31) -/* 8027DF64 C0 19 00 00 */ lfs f0, 0(r25) -/* 8027DF68 D0 1F 00 A4 */ stfs f0, 0xa4(r31) -/* 8027DF6C C0 19 00 04 */ lfs f0, 4(r25) -/* 8027DF70 D0 1F 00 A8 */ stfs f0, 0xa8(r31) -/* 8027DF74 C0 19 00 08 */ lfs f0, 8(r25) -/* 8027DF78 D0 1F 00 AC */ stfs f0, 0xac(r31) -/* 8027DF7C 7F E3 FB 78 */ mr r3, r31 -/* 8027DF80 48 00 00 08 */ b lbl_8027DF88 -lbl_8027DF84: -/* 8027DF84 38 60 00 00 */ li r3, 0 -lbl_8027DF88: -/* 8027DF88 39 61 00 30 */ addi r11, r1, 0x30 -/* 8027DF8C 48 0E 42 89 */ bl _restgpr_24 -/* 8027DF90 80 01 00 34 */ lwz r0, 0x34(r1) -/* 8027DF94 7C 08 03 A6 */ mtlr r0 -/* 8027DF98 38 21 00 30 */ addi r1, r1, 0x30 -/* 8027DF9C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPAExTexShape/JPALoadExTex__FP18JPAEmitterWorkData.s b/asm/JSystem/JParticle/JPAExTexShape/JPALoadExTex__FP18JPAEmitterWorkData.s deleted file mode 100644 index f5b4bef3c2..0000000000 --- a/asm/JSystem/JParticle/JPAExTexShape/JPALoadExTex__FP18JPAEmitterWorkData.s +++ /dev/null @@ -1,66 +0,0 @@ -lbl_8027B040: -/* 8027B040 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8027B044 7C 08 02 A6 */ mflr r0 -/* 8027B048 90 01 00 14 */ stw r0, 0x14(r1) -/* 8027B04C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8027B050 93 C1 00 08 */ stw r30, 8(r1) -/* 8027B054 7C 7F 1B 78 */ mr r31, r3 -/* 8027B058 80 63 00 04 */ lwz r3, 4(r3) -/* 8027B05C 83 C3 00 28 */ lwz r30, 0x28(r3) -/* 8027B060 38 60 00 01 */ li r3, 1 -/* 8027B064 80 9E 00 00 */ lwz r4, 0(r30) -/* 8027B068 80 04 00 08 */ lwz r0, 8(r4) -/* 8027B06C 54 00 07 FF */ clrlwi. r0, r0, 0x1f -/* 8027B070 41 82 00 58 */ beq lbl_8027B0C8 -/* 8027B074 38 60 00 01 */ li r3, 1 -/* 8027B078 38 80 00 01 */ li r4, 1 -/* 8027B07C 38 A0 00 04 */ li r5, 4 -/* 8027B080 38 C0 00 3C */ li r6, 0x3c -/* 8027B084 38 E0 00 00 */ li r7, 0 -/* 8027B088 39 00 00 7D */ li r8, 0x7d -/* 8027B08C 48 0E 0A F1 */ bl GXSetTexCoordGen2 -/* 8027B090 80 7E 00 00 */ lwz r3, 0(r30) -/* 8027B094 88 03 00 25 */ lbz r0, 0x25(r3) -/* 8027B098 80 7F 00 04 */ lwz r3, 4(r31) -/* 8027B09C 80 63 00 38 */ lwz r3, 0x38(r3) -/* 8027B0A0 54 00 08 3C */ slwi r0, r0, 1 -/* 8027B0A4 7C 03 02 2E */ lhzx r0, r3, r0 -/* 8027B0A8 80 7F 00 08 */ lwz r3, 8(r31) -/* 8027B0AC 80 63 00 08 */ lwz r3, 8(r3) -/* 8027B0B0 54 00 13 BA */ rlwinm r0, r0, 2, 0xe, 0x1d -/* 8027B0B4 7C 63 00 2E */ lwzx r3, r3, r0 -/* 8027B0B8 38 63 00 04 */ addi r3, r3, 4 -/* 8027B0BC 38 80 00 02 */ li r4, 2 -/* 8027B0C0 48 06 37 81 */ bl load__10JUTTextureF11_GXTexMapID -/* 8027B0C4 38 60 00 02 */ li r3, 2 -lbl_8027B0C8: -/* 8027B0C8 80 9E 00 00 */ lwz r4, 0(r30) -/* 8027B0CC 80 04 00 08 */ lwz r0, 8(r4) -/* 8027B0D0 54 00 05 EF */ rlwinm. r0, r0, 0, 0x17, 0x17 -/* 8027B0D4 41 82 00 50 */ beq lbl_8027B124 -/* 8027B0D8 38 80 00 01 */ li r4, 1 -/* 8027B0DC 38 A0 00 04 */ li r5, 4 -/* 8027B0E0 38 C0 00 3C */ li r6, 0x3c -/* 8027B0E4 38 E0 00 00 */ li r7, 0 -/* 8027B0E8 39 00 00 7D */ li r8, 0x7d -/* 8027B0EC 48 0E 0A 91 */ bl GXSetTexCoordGen2 -/* 8027B0F0 80 7E 00 00 */ lwz r3, 0(r30) -/* 8027B0F4 88 03 00 26 */ lbz r0, 0x26(r3) -/* 8027B0F8 80 7F 00 04 */ lwz r3, 4(r31) -/* 8027B0FC 80 63 00 38 */ lwz r3, 0x38(r3) -/* 8027B100 54 00 08 3C */ slwi r0, r0, 1 -/* 8027B104 7C 03 02 2E */ lhzx r0, r3, r0 -/* 8027B108 80 7F 00 08 */ lwz r3, 8(r31) -/* 8027B10C 80 63 00 08 */ lwz r3, 8(r3) -/* 8027B110 54 00 13 BA */ rlwinm r0, r0, 2, 0xe, 0x1d -/* 8027B114 7C 63 00 2E */ lwzx r3, r3, r0 -/* 8027B118 38 63 00 04 */ addi r3, r3, 4 -/* 8027B11C 38 80 00 03 */ li r4, 3 -/* 8027B120 48 06 37 21 */ bl load__10JUTTextureF11_GXTexMapID -lbl_8027B124: -/* 8027B124 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8027B128 83 C1 00 08 */ lwz r30, 8(r1) -/* 8027B12C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8027B130 7C 08 03 A6 */ mtlr r0 -/* 8027B134 38 21 00 10 */ addi r1, r1, 0x10 -/* 8027B138 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPAParticle/getHeight__15JPABaseParticleCFPC14JPABaseEmitter.s b/asm/JSystem/JParticle/JPAParticle/getHeight__15JPABaseParticleCFPC14JPABaseEmitter.s deleted file mode 100644 index 59be27307d..0000000000 --- a/asm/JSystem/JParticle/JPAParticle/getHeight__15JPABaseParticleCFPC14JPABaseEmitter.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80280568: -/* 80280568 C0 22 B9 B0 */ lfs f1, lit_3010(r2) -/* 8028056C C0 03 00 64 */ lfs f0, 0x64(r3) -/* 80280570 EC 21 00 32 */ fmuls f1, f1, f0 -/* 80280574 80 64 00 E4 */ lwz r3, 0xe4(r4) -/* 80280578 80 63 00 20 */ lwz r3, 0x20(r3) -/* 8028057C C0 03 01 48 */ lfs f0, 0x148(r3) -/* 80280580 EC 21 00 32 */ fmuls f1, f1, f0 -/* 80280584 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPAParticle/getWidth__15JPABaseParticleCFPC14JPABaseEmitter.s b/asm/JSystem/JParticle/JPAParticle/getWidth__15JPABaseParticleCFPC14JPABaseEmitter.s deleted file mode 100644 index 5e4b3e017e..0000000000 --- a/asm/JSystem/JParticle/JPAParticle/getWidth__15JPABaseParticleCFPC14JPABaseEmitter.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80280548: -/* 80280548 C0 22 B9 B0 */ lfs f1, lit_3010(r2) -/* 8028054C C0 03 00 60 */ lfs f0, 0x60(r3) -/* 80280550 EC 21 00 32 */ fmuls f1, f1, f0 -/* 80280554 80 64 00 E4 */ lwz r3, 0xe4(r4) -/* 80280558 80 63 00 20 */ lwz r3, 0x20(r3) -/* 8028055C C0 03 01 44 */ lfs f0, 0x144(r3) -/* 80280560 EC 21 00 32 */ fmuls f1, f1, f0 -/* 80280564 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPAResource/calcWorkData_d__11JPAResourceFP18JPAEmitterWorkData.s b/asm/JSystem/JParticle/JPAResource/calcWorkData_d__11JPAResourceFP18JPAEmitterWorkData.s deleted file mode 100644 index bab04fbd7d..0000000000 --- a/asm/JSystem/JParticle/JPAResource/calcWorkData_d__11JPAResourceFP18JPAEmitterWorkData.s +++ /dev/null @@ -1,33 +0,0 @@ -lbl_80276A0C: -/* 80276A0C 94 21 FF C0 */ stwu r1, -0x40(r1) -/* 80276A10 7C 08 02 A6 */ mflr r0 -/* 80276A14 90 01 00 44 */ stw r0, 0x44(r1) -/* 80276A18 93 E1 00 3C */ stw r31, 0x3c(r1) -/* 80276A1C 7C 9F 23 78 */ mr r31, r4 -/* 80276A20 80 A4 00 00 */ lwz r5, 0(r4) -/* 80276A24 A8 05 00 4C */ lha r0, 0x4c(r5) -/* 80276A28 1C 00 00 B6 */ mulli r0, r0, 0xb6 -/* 80276A2C 7C 03 07 34 */ extsh r3, r0 -/* 80276A30 A8 05 00 4E */ lha r0, 0x4e(r5) -/* 80276A34 1C 00 00 B6 */ mulli r0, r0, 0xb6 -/* 80276A38 7C 04 07 34 */ extsh r4, r0 -/* 80276A3C A8 05 00 50 */ lha r0, 0x50(r5) -/* 80276A40 1C 00 00 B6 */ mulli r0, r0, 0xb6 -/* 80276A44 7C 05 07 34 */ extsh r5, r0 -/* 80276A48 38 C1 00 08 */ addi r6, r1, 8 -/* 80276A4C 48 00 9C E9 */ bl JPAGetXYZRotateMtx__FsssPA4_f -/* 80276A50 80 7F 00 00 */ lwz r3, 0(r31) -/* 80276A54 38 63 00 68 */ addi r3, r3, 0x68 -/* 80276A58 38 81 00 08 */ addi r4, r1, 8 -/* 80276A5C 38 BF 00 A8 */ addi r5, r31, 0xa8 -/* 80276A60 48 0C FA 85 */ bl PSMTXConcat -/* 80276A64 38 7F 00 A8 */ addi r3, r31, 0xa8 -/* 80276A68 80 9F 00 00 */ lwz r4, 0(r31) -/* 80276A6C 38 84 00 18 */ addi r4, r4, 0x18 -/* 80276A70 38 BF 01 20 */ addi r5, r31, 0x120 -/* 80276A74 48 0D 03 D9 */ bl PSMTXMultVecSR -/* 80276A78 83 E1 00 3C */ lwz r31, 0x3c(r1) -/* 80276A7C 80 01 00 44 */ lwz r0, 0x44(r1) -/* 80276A80 7C 08 03 A6 */ mtlr r0 -/* 80276A84 38 21 00 40 */ addi r1, r1, 0x40 -/* 80276A88 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPAResourceManager/__ct__18JPAResourceManagerFPCvP7JKRHeap.s b/asm/JSystem/JParticle/JPAResourceManager/__ct__18JPAResourceManagerFPCvP7JKRHeap.s deleted file mode 100644 index 888e2d6a9b..0000000000 --- a/asm/JSystem/JParticle/JPAResourceManager/__ct__18JPAResourceManagerFPCvP7JKRHeap.s +++ /dev/null @@ -1,23 +0,0 @@ -lbl_80273E10: -/* 80273E10 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80273E14 7C 08 02 A6 */ mflr r0 -/* 80273E18 90 01 00 24 */ stw r0, 0x24(r1) -/* 80273E1C 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 80273E20 7C 7F 1B 78 */ mr r31, r3 -/* 80273E24 38 00 00 00 */ li r0, 0 -/* 80273E28 90 03 00 04 */ stw r0, 4(r3) -/* 80273E2C 90 03 00 08 */ stw r0, 8(r3) -/* 80273E30 B0 03 00 0C */ sth r0, 0xc(r3) -/* 80273E34 B0 03 00 0E */ sth r0, 0xe(r3) -/* 80273E38 B0 03 00 10 */ sth r0, 0x10(r3) -/* 80273E3C B0 03 00 12 */ sth r0, 0x12(r3) -/* 80273E40 90 A3 00 00 */ stw r5, 0(r3) -/* 80273E44 38 61 00 08 */ addi r3, r1, 8 -/* 80273E48 7F E5 FB 78 */ mr r5, r31 -/* 80273E4C 48 00 9A 55 */ bl __ct__17JPAResourceLoaderFPCUcP18JPAResourceManager -/* 80273E50 7F E3 FB 78 */ mr r3, r31 -/* 80273E54 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 80273E58 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80273E5C 7C 08 03 A6 */ mtlr r0 -/* 80273E60 38 21 00 20 */ addi r1, r1, 0x20 -/* 80273E64 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPAResourceManager/checkUserIndexDuplication__18JPAResourceManagerCFUs.s b/asm/JSystem/JParticle/JPAResourceManager/checkUserIndexDuplication__18JPAResourceManagerCFUs.s deleted file mode 100644 index 4c71313c5a..0000000000 --- a/asm/JSystem/JParticle/JPAResourceManager/checkUserIndexDuplication__18JPAResourceManagerCFUs.s +++ /dev/null @@ -1,21 +0,0 @@ -lbl_80273EA8: -/* 80273EA8 38 A0 00 00 */ li r5, 0 -/* 80273EAC A0 E3 00 0E */ lhz r7, 0xe(r3) -/* 80273EB0 80 C3 00 04 */ lwz r6, 4(r3) -/* 80273EB4 54 80 04 3E */ clrlwi r0, r4, 0x10 -/* 80273EB8 7C E9 03 A6 */ mtctr r7 -/* 80273EBC 2C 07 00 00 */ cmpwi r7, 0 -/* 80273EC0 40 81 00 24 */ ble lbl_80273EE4 -lbl_80273EC4: -/* 80273EC4 7C 66 28 2E */ lwzx r3, r6, r5 -/* 80273EC8 A0 63 00 3C */ lhz r3, 0x3c(r3) -/* 80273ECC 7C 00 18 40 */ cmplw r0, r3 -/* 80273ED0 40 82 00 0C */ bne lbl_80273EDC -/* 80273ED4 38 60 00 01 */ li r3, 1 -/* 80273ED8 4E 80 00 20 */ blr -lbl_80273EDC: -/* 80273EDC 38 A5 00 04 */ addi r5, r5, 4 -/* 80273EE0 42 00 FF E4 */ bdnz lbl_80273EC4 -lbl_80273EE4: -/* 80273EE4 38 60 00 00 */ li r3, 0 -/* 80273EE8 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPAResourceManager/getResUserWork__18JPAResourceManagerCFUs.s b/asm/JSystem/JParticle/JPAResourceManager/getResUserWork__18JPAResourceManagerCFUs.s deleted file mode 100644 index 1520f031ff..0000000000 --- a/asm/JSystem/JParticle/JPAResourceManager/getResUserWork__18JPAResourceManagerCFUs.s +++ /dev/null @@ -1,19 +0,0 @@ -lbl_80273FCC: -/* 80273FCC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80273FD0 7C 08 02 A6 */ mflr r0 -/* 80273FD4 90 01 00 14 */ stw r0, 0x14(r1) -/* 80273FD8 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80273FDC 3B E0 00 00 */ li r31, 0 -/* 80273FE0 4B FF FE 89 */ bl getResource__18JPAResourceManagerCFUs -/* 80273FE4 28 03 00 00 */ cmplwi r3, 0 -/* 80273FE8 41 82 00 10 */ beq lbl_80273FF8 -/* 80273FEC 80 63 00 2C */ lwz r3, 0x2c(r3) -/* 80273FF0 80 63 00 00 */ lwz r3, 0(r3) -/* 80273FF4 83 E3 00 0C */ lwz r31, 0xc(r3) -lbl_80273FF8: -/* 80273FF8 7F E3 FB 78 */ mr r3, r31 -/* 80273FFC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80274000 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80274004 7C 08 03 A6 */ mtlr r0 -/* 80274008 38 21 00 10 */ addi r1, r1, 0x10 -/* 8027400C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPAResourceManager/getResource__18JPAResourceManagerCFUs.s b/asm/JSystem/JParticle/JPAResourceManager/getResource__18JPAResourceManagerCFUs.s deleted file mode 100644 index 679de5ad99..0000000000 --- a/asm/JSystem/JParticle/JPAResourceManager/getResource__18JPAResourceManagerCFUs.s +++ /dev/null @@ -1,19 +0,0 @@ -lbl_80273E68: -/* 80273E68 38 E0 00 00 */ li r7, 0 -/* 80273E6C A0 C3 00 0E */ lhz r6, 0xe(r3) -/* 80273E70 80 A3 00 04 */ lwz r5, 4(r3) -/* 80273E74 54 84 04 3E */ clrlwi r4, r4, 0x10 -/* 80273E78 48 00 00 1C */ b lbl_80273E94 -lbl_80273E7C: -/* 80273E7C 54 E0 13 BA */ rlwinm r0, r7, 2, 0xe, 0x1d -/* 80273E80 7C 65 00 2E */ lwzx r3, r5, r0 -/* 80273E84 A0 03 00 3C */ lhz r0, 0x3c(r3) -/* 80273E88 7C 04 00 40 */ cmplw r4, r0 -/* 80273E8C 4D 82 00 20 */ beqlr -/* 80273E90 38 E7 00 01 */ addi r7, r7, 1 -lbl_80273E94: -/* 80273E94 54 E0 04 3E */ clrlwi r0, r7, 0x10 -/* 80273E98 7C 00 30 40 */ cmplw r0, r6 -/* 80273E9C 41 80 FF E0 */ blt lbl_80273E7C -/* 80273EA0 38 60 00 00 */ li r3, 0 -/* 80273EA4 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPAResourceManager/registRes__18JPAResourceManagerFP11JPAResource.s b/asm/JSystem/JParticle/JPAResourceManager/registRes__18JPAResourceManagerFP11JPAResource.s deleted file mode 100644 index c88cafd2e2..0000000000 --- a/asm/JSystem/JParticle/JPAResourceManager/registRes__18JPAResourceManagerFP11JPAResource.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80273F8C: -/* 80273F8C 80 A3 00 04 */ lwz r5, 4(r3) -/* 80273F90 A0 03 00 0E */ lhz r0, 0xe(r3) -/* 80273F94 54 00 10 3A */ slwi r0, r0, 2 -/* 80273F98 7C 85 01 2E */ stwx r4, r5, r0 -/* 80273F9C A0 83 00 0E */ lhz r4, 0xe(r3) -/* 80273FA0 38 04 00 01 */ addi r0, r4, 1 -/* 80273FA4 B0 03 00 0E */ sth r0, 0xe(r3) -/* 80273FA8 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPAResourceManager/registTex__18JPAResourceManagerFP10JPATexture.s b/asm/JSystem/JParticle/JPAResourceManager/registTex__18JPAResourceManagerFP10JPATexture.s deleted file mode 100644 index 7bf0869737..0000000000 --- a/asm/JSystem/JParticle/JPAResourceManager/registTex__18JPAResourceManagerFP10JPATexture.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80273FAC: -/* 80273FAC 80 A3 00 08 */ lwz r5, 8(r3) -/* 80273FB0 A0 03 00 12 */ lhz r0, 0x12(r3) -/* 80273FB4 54 00 10 3A */ slwi r0, r0, 2 -/* 80273FB8 7C 85 01 2E */ stwx r4, r5, r0 -/* 80273FBC A0 83 00 12 */ lhz r4, 0x12(r3) -/* 80273FC0 38 04 00 01 */ addi r0, r4, 1 -/* 80273FC4 B0 03 00 12 */ sth r0, 0x12(r3) -/* 80273FC8 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPAResourceManager/swapTexture__18JPAResourceManagerFPC7ResTIMGPCc.s b/asm/JSystem/JParticle/JPAResourceManager/swapTexture__18JPAResourceManagerFPC7ResTIMGPCc.s deleted file mode 100644 index 62e36f7e4a..0000000000 --- a/asm/JSystem/JParticle/JPAResourceManager/swapTexture__18JPAResourceManagerFPC7ResTIMGPCc.s +++ /dev/null @@ -1,45 +0,0 @@ -lbl_80273EEC: -/* 80273EEC 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80273EF0 7C 08 02 A6 */ mflr r0 -/* 80273EF4 90 01 00 24 */ stw r0, 0x24(r1) -/* 80273EF8 39 61 00 20 */ addi r11, r1, 0x20 -/* 80273EFC 48 0E E2 D5 */ bl _savegpr_26 -/* 80273F00 7C 7A 1B 78 */ mr r26, r3 -/* 80273F04 7C 9B 23 78 */ mr r27, r4 -/* 80273F08 7C BC 2B 78 */ mr r28, r5 -/* 80273F0C 3B C0 00 00 */ li r30, 0 -/* 80273F10 3B A0 00 00 */ li r29, 0 -/* 80273F14 3B E0 00 00 */ li r31, 0 -/* 80273F18 48 00 00 4C */ b lbl_80273F64 -lbl_80273F1C: -/* 80273F1C 80 7A 00 08 */ lwz r3, 8(r26) -/* 80273F20 7C 63 F8 2E */ lwzx r3, r3, r31 -/* 80273F24 80 63 00 44 */ lwz r3, 0x44(r3) -/* 80273F28 38 83 00 0C */ addi r4, r3, 0xc -/* 80273F2C 7F 83 E3 78 */ mr r3, r28 -/* 80273F30 48 0F 4A 65 */ bl strcmp -/* 80273F34 2C 03 00 00 */ cmpwi r3, 0 -/* 80273F38 40 82 00 24 */ bne lbl_80273F5C -/* 80273F3C 80 7A 00 08 */ lwz r3, 8(r26) -/* 80273F40 7C 63 F8 2E */ lwzx r3, r3, r31 -/* 80273F44 38 63 00 04 */ addi r3, r3, 4 -/* 80273F48 83 C3 00 20 */ lwz r30, 0x20(r3) -/* 80273F4C 7F 64 DB 78 */ mr r4, r27 -/* 80273F50 38 A0 00 00 */ li r5, 0 -/* 80273F54 48 06 A3 55 */ bl storeTIMG__10JUTTextureFPC7ResTIMGUc -/* 80273F58 48 00 00 18 */ b lbl_80273F70 -lbl_80273F5C: -/* 80273F5C 3B BD 00 01 */ addi r29, r29, 1 -/* 80273F60 3B FF 00 04 */ addi r31, r31, 4 -lbl_80273F64: -/* 80273F64 A0 1A 00 12 */ lhz r0, 0x12(r26) -/* 80273F68 7C 1D 00 00 */ cmpw r29, r0 -/* 80273F6C 41 80 FF B0 */ blt lbl_80273F1C -lbl_80273F70: -/* 80273F70 7F C3 F3 78 */ mr r3, r30 -/* 80273F74 39 61 00 20 */ addi r11, r1, 0x20 -/* 80273F78 48 0E E2 A5 */ bl _restgpr_26 -/* 80273F7C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80273F80 7C 08 03 A6 */ mtlr r0 -/* 80273F84 38 21 00 20 */ addi r1, r1, 0x20 -/* 80273F88 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPATexture/__ct__10JPATextureFPCUc.s b/asm/JSystem/JParticle/JPATexture/__ct__10JPATextureFPCUc.s deleted file mode 100644 index 815a3777ab..0000000000 --- a/asm/JSystem/JParticle/JPATexture/__ct__10JPATextureFPCUc.s +++ /dev/null @@ -1,27 +0,0 @@ -lbl_8027D7D4: -/* 8027D7D4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8027D7D8 7C 08 02 A6 */ mflr r0 -/* 8027D7DC 90 01 00 14 */ stw r0, 0x14(r1) -/* 8027D7E0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8027D7E4 7C 7F 1B 78 */ mr r31, r3 -/* 8027D7E8 3C 60 80 3C */ lis r3, __vt__10JPATexture@ha /* 0x803C4598@ha */ -/* 8027D7EC 38 03 45 98 */ addi r0, r3, __vt__10JPATexture@l /* 0x803C4598@l */ -/* 8027D7F0 90 1F 00 00 */ stw r0, 0(r31) -/* 8027D7F4 88 1F 00 3F */ lbz r0, 0x3f(r31) -/* 8027D7F8 54 00 07 BC */ rlwinm r0, r0, 0, 0x1e, 0x1e -/* 8027D7FC 98 1F 00 3F */ stb r0, 0x3f(r31) -/* 8027D800 38 00 00 00 */ li r0, 0 -/* 8027D804 90 1F 00 2C */ stw r0, 0x2c(r31) -/* 8027D808 90 1F 00 24 */ stw r0, 0x24(r31) -/* 8027D80C 90 9F 00 44 */ stw r4, 0x44(r31) -/* 8027D810 38 7F 00 04 */ addi r3, r31, 4 -/* 8027D814 80 9F 00 44 */ lwz r4, 0x44(r31) -/* 8027D818 38 84 00 20 */ addi r4, r4, 0x20 -/* 8027D81C 38 A0 00 00 */ li r5, 0 -/* 8027D820 48 06 0A 89 */ bl storeTIMG__10JUTTextureFPC7ResTIMGUc -/* 8027D824 7F E3 FB 78 */ mr r3, r31 -/* 8027D828 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8027D82C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8027D830 7C 08 03 A6 */ mtlr r0 -/* 8027D834 38 21 00 10 */ addi r1, r1, 0x10 -/* 8027D838 4E 80 00 20 */ blr diff --git a/asm/JSystem/JParticle/JPATexture/__dt__10JPATextureFv.s b/asm/JSystem/JParticle/JPATexture/__dt__10JPATextureFv.s deleted file mode 100644 index 5d4c201809..0000000000 --- a/asm/JSystem/JParticle/JPATexture/__dt__10JPATextureFv.s +++ /dev/null @@ -1,27 +0,0 @@ -lbl_8027D83C: -/* 8027D83C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8027D840 7C 08 02 A6 */ mflr r0 -/* 8027D844 90 01 00 14 */ stw r0, 0x14(r1) -/* 8027D848 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8027D84C 93 C1 00 08 */ stw r30, 8(r1) -/* 8027D850 7C 7E 1B 79 */ or. r30, r3, r3 -/* 8027D854 7C 9F 23 78 */ mr r31, r4 -/* 8027D858 41 82 00 2C */ beq lbl_8027D884 -/* 8027D85C 3C 60 80 3C */ lis r3, __vt__10JPATexture@ha /* 0x803C4598@ha */ -/* 8027D860 38 03 45 98 */ addi r0, r3, __vt__10JPATexture@l /* 0x803C4598@l */ -/* 8027D864 90 1E 00 00 */ stw r0, 0(r30) -/* 8027D868 38 7E 00 04 */ addi r3, r30, 4 -/* 8027D86C 38 80 FF FF */ li r4, -1 -/* 8027D870 48 06 09 C5 */ bl __dt__10JUTTextureFv -/* 8027D874 7F E0 07 35 */ extsh. r0, r31 -/* 8027D878 40 81 00 0C */ ble lbl_8027D884 -/* 8027D87C 7F C3 F3 78 */ mr r3, r30 -/* 8027D880 48 05 14 BD */ bl __dl__FPv -lbl_8027D884: -/* 8027D884 7F C3 F3 78 */ mr r3, r30 -/* 8027D888 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8027D88C 83 C1 00 08 */ lwz r30, 8(r1) -/* 8027D890 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8027D894 7C 08 03 A6 */ mtlr r0 -/* 8027D898 38 21 00 10 */ addi r1, r1, 0x10 -/* 8027D89C 4E 80 00 20 */ blr diff --git a/include/JSystem/J2DGraph/J2DTevs.h b/include/JSystem/J2DGraph/J2DTevs.h index 1019ffcb7e..e5a18e9c1e 100644 --- a/include/JSystem/J2DGraph/J2DTevs.h +++ b/include/JSystem/J2DGraph/J2DTevs.h @@ -1,6 +1,7 @@ #ifndef J2DTEVS_H #define J2DTEVS_H +#include "dolphin/gx/GX.h" #include "dolphin/mtx/mtxvec.h" #include "dolphin/types.h" @@ -13,12 +14,19 @@ struct J2DTextureSRTInfo { }; // Size: 0x14 struct J2DTexMtxInfo { - /* 0x00 */ u8 field_0x0; - /* 0x01 */ u8 field_0x1; + enum { + /* 0x0 */ DCC_NONE, + /* 0x1 */ DCC_MAYA, + }; + + /* 0x00 */ u8 mTexMtxType; + /* 0x01 */ u8 mTexMtxDCC; /* 0x02 */ u8 field_0x2; // padding ? /* 0x03 */ u8 field_0x3; // padding ? - /* 0x04 */ Vec field_0x4; + /* 0x04 */ Vec mCenter; /* 0x10 */ J2DTextureSRTInfo mTexSRTInfo; + + GXTexMtxType getTexMtxType() const { return (GXTexMtxType)mTexMtxType; } }; // Size: 0x24 class J2DTexMtx { @@ -29,13 +37,16 @@ public: /* 802E9EBC */ void getTextureMtxMaya(J2DTextureSRTInfo const&, f32 (*)[4]); private: - /* 0x00 */ J2DTexMtxInfo mTexMtxInfo; + /* 0x00 */ J2DTexMtxInfo mInfo; /* 0x24 */ Mtx mTexMtx; }; struct J2DIndTexOrderInfo { - /* 0x0 */ u8 field_0x0; - /* 0x1 */ u8 field_0x1; + /* 0x0 */ u8 mTexCoordID; + /* 0x1 */ u8 mTexMapID; + + GXTexCoordID getTexCoordID() const { return (GXTexCoordID)mTexCoordID; } + GXTexMapID getTexMapID() const { return (GXTexMapID)mTexMapID; } }; class J2DIndTexOrder { @@ -44,12 +55,12 @@ public: /* 802EA0FC */ void load(u8); private: - /* 0x0 */ J2DIndTexOrderInfo mIndTexOrderInfo; + /* 0x0 */ J2DIndTexOrderInfo mInfo; }; struct J2DIndTexMtxInfo { /* 0x00 */ Mtx23 mMtx; - /* 0x18 */ u8 field_0x18; + /* 0x18 */ s8 mScaleExp; }; class J2DIndTexMtx { @@ -65,8 +76,11 @@ private: }; // Size: 0x1C struct J2DIndTexCoordScaleInfo { - /* 0x0 */ u8 field_0x0; - /* 0x0 */ u8 field_0x1; + /* 0x0 */ u8 mScaleS; + /* 0x0 */ u8 mScaleT; + + GXIndTexScale getScaleS() const { return (GXIndTexScale)mScaleS; } + GXIndTexScale getScaleT() const { return (GXIndTexScale)mScaleT; } }; class J2DIndTexCoordScale { @@ -76,7 +90,7 @@ public: /* 802EA0CC */ void load(u8); private: - /* 0x0 */ J2DIndTexCoordScaleInfo mIndTexCoordScaleInfo; + /* 0x0 */ J2DIndTexCoordScaleInfo mInfo; }; // Size: 0x2 class J2DIndTevStage { @@ -86,6 +100,16 @@ public: private: /* 0x0 */ u32 mFlags; + + GXIndTexStageID getIndStage() const { return (GXIndTexStageID)(mFlags & 0x03); } + GXIndTexFormat getIndFormat() const { return (GXIndTexFormat)((mFlags >> 2) & 0x03); } + GXIndTexBiasSel getBiasSel() const { return (GXIndTexBiasSel)((mFlags >> 4) & 0x07); } + GXIndTexWrap getWrapS() const { return (GXIndTexWrap)((mFlags >> 8) & 0x07); } + GXIndTexWrap getWrapT() const { return (GXIndTexWrap)((mFlags >> 11) & 0x07); } + GXIndTexMtxID getMtxSel() const { return (GXIndTexMtxID)((mFlags >> 16) & 0x0F); } + GXBool getPrev() const { return (GXBool)((mFlags >> 20) & 0x01); } + GXBool getLod() const { return (GXBool)((mFlags >> 21) & 0x01); } + GXIndTexAlphaSel getAlphaSel() const { return (GXIndTexAlphaSel)((mFlags >> 22) & 0x03); } }; struct J2DTexCoordInfo { @@ -156,7 +180,12 @@ private: /* 0x7 */ u8 field_0x7; }; -struct J2DTevSwapModeInfo {}; +struct J2DTevSwapModeInfo { + /* 0x0 */ u8 mR; + /* 0x1 */ u8 mG; + /* 0x2 */ u8 mB; + /* 0x3 */ u8 mA; +}; class J2DTevSwapModeTable { public: diff --git a/include/JSystem/J3DGraphAnimator/J3DJoint.h b/include/JSystem/J3DGraphAnimator/J3DJoint.h index 25a21bad57..28cc3b92f0 100644 --- a/include/JSystem/J3DGraphAnimator/J3DJoint.h +++ b/include/JSystem/J3DGraphAnimator/J3DJoint.h @@ -10,7 +10,7 @@ class J3DMtxBuffer; class J3DMtxCalc { public: - /* 80325D1C */ void setMtxBuffer(J3DMtxBuffer*); + /* 80325D1C */ static void setMtxBuffer(J3DMtxBuffer*); /* 8000D948 */ virtual ~J3DMtxCalc(); /* 80014E90 */ virtual void setAnmTransform(J3DAnmTransform*); @@ -52,11 +52,12 @@ public: u8 getScaleCompensate() const { return mScaleCompensate; } J3DJoint* getYounger() { return mYounger; } void setYounger(J3DJoint* pYounger) { mYounger = pYounger; } + void setCurrentMtxCalc(J3DMtxCalc* pMtxCalc) { mCurrentMtxCalc = pMtxCalc; } static J3DMtxCalc* mCurrentMtxCalc; private: - /* 0x00 */ void* field_0x0; + /* 0x00 */ void* mCallBackUserData; /* 0x04 */ J3DJointCallBack mCallBack; /* 0x08 */ void* field_0x8; /* 0x0C */ J3DJoint* mChild; @@ -65,7 +66,7 @@ private: /* 0x16 */ u8 mMtxType; /* 0x17 */ u8 mScaleCompensate; /* 0x18 */ J3DTransformInfo mTransformInfo; - /* 0x38 */ f32 field_0x38; + /* 0x38 */ f32 mBoundingSphereRadius; /* 0x3C */ Vec mMin; /* 0x48 */ Vec mMax; /* 0x54 */ J3DMtxCalc* mMtxCalc; diff --git a/include/JSystem/J3DGraphAnimator/J3DJointTree.h b/include/JSystem/J3DGraphAnimator/J3DJointTree.h index 006c930849..181d3554f5 100644 --- a/include/JSystem/J3DGraphAnimator/J3DJointTree.h +++ b/include/JSystem/J3DGraphAnimator/J3DJointTree.h @@ -32,7 +32,11 @@ public: /* 80325D24 */ virtual ~J3DJointTree(); u16 getWEvlpMtxNum() const { return mWEvlpMtxNum; } + u16 getJointNum() const { return mJointNum; } + u16 getDrawMtxNum() const { return mDrawMtxData.mEntryNum; } + J3DJoint* getRootNode() { return mRootNode; } J3DJoint* getJointNodePointer(u16 idx) const { return mJointNodePointer[idx]; } + J3DMtxCalc* getBasicMtxCalc() const { return mBasicMtxCalc; } private: /* 0x04 */ J3DModelHierarchy* mHierarchy; @@ -43,13 +47,13 @@ private: /* 0x18 */ J3DJoint** mJointNodePointer; /* 0x1C */ u16 mJointNum; /* 0x1E */ u16 mWEvlpMtxNum; - /* 0x20 */ u8 mWEvlpMixMtxNum; + /* 0x20 */ u32 mWEvlpMixMtxNum; /* 0x24 */ s32 mWEvlpMixIndex; /* 0x28 */ s32 mWEvlpMixWeight; /* 0x2C */ Mtx* mInvJointMtx; /* 0x30 */ s32 mWEvlpImportantMtxIdx; - /* 0x34 */ J3DDrawMtxData mDrawMtxNum; - /* 0x40 */ u8 field_0x40[4]; + /* 0x34 */ J3DDrawMtxData mDrawMtxData; + /* 0x40 */ u32 field_0x40; /* 0x44 */ JUTNameTab* mJointName; }; // Size: 0x48 diff --git a/include/JSystem/J3DGraphAnimator/J3DModel.h b/include/JSystem/J3DGraphAnimator/J3DModel.h index 02c71511b1..7cadb05f28 100644 --- a/include/JSystem/J3DGraphAnimator/J3DModel.h +++ b/include/JSystem/J3DGraphAnimator/J3DModel.h @@ -15,6 +15,17 @@ enum J3DMdlFlag { /* 0x8 */ J3DMdlFlag_SkinNrmCpu = 0x8, }; +struct J3DUnkCalc1 { + virtual void calc(J3DModel* model); +}; + +struct J3DUnkCalc2 { + virtual void unk(); + virtual void calc(J3DModelData* mpModelData); +}; + +typedef void (*J3DCalcCallBack)(J3DModel*, u32 timing); + class J3DModel { public: /* 800CFFF4 */ void setBaseTRMtx(f32 (*)[4]); @@ -45,19 +56,25 @@ public: /* 80328350 */ virtual ~J3DModel(); J3DModelData* getModelData() { return mModelData; } + void onFlag(u32 flag) { mFlags |= flag; } void offFlag(u32 flag) { mFlags &= ~flag; } bool checkFlag(u32 flag) const { return (mFlags & flag) ? true : false; } Mtx& getBaseTRMtx() { return mBaseTransformMtx; } void i_setBaseTRMtx(Mtx m) { PSMTXCopy(m, mBaseTransformMtx); } + u32 getMtxCalcMode() const { return mFlags & 0x03; } + J3DVertexBuffer* getVertexBuffer() const { return (J3DVertexBuffer*)&mVertexBuffer; } + J3DShapePacket* getShapePacket(u16 idx) const { return &mShapePacket[idx]; } + Mtx33* getBumpMtxPtr(int idx) const { return mMtxBuffer->getBumpMtxPtr(idx); } + Mtx33* getNrmMtxPtr() const { return mMtxBuffer->getNrmMtxPtr(); } // is there a better way to handle inlines with same name as non-inlines? MtxP i_getAnmMtx(int p1) { return mMtxBuffer->getAnmMtx(p1); } /* 0x04 */ J3DModelData* mModelData; /* 0x08 */ u32 mFlags; - /* 0x0C */ u32 field_0x0c; - /* 0x10 */ int field_0x10; + /* 0x0C */ u32 mDiffFlag; + /* 0x10 */ J3DCalcCallBack mCalcCallBack; /* 0x14 */ u32 mUserArea; /* 0x18 */ Vec mBaseScale; /* 0x24 */ Mtx mBaseTransformMtx; @@ -65,12 +82,12 @@ public: /* 0x84 */ J3DMtxBuffer* mMtxBuffer; /* 0x88 */ J3DVertexBuffer mVertexBuffer; /* 0xC0 */ J3DMatPacket* mMatPacket; - /* 0xC4 */ J3DShapePacket** mShapePacket; + /* 0xC4 */ J3DShapePacket* mShapePacket; /* 0xC8 */ J3DDeformData* mDeformData; /* 0xCC */ J3DSkinDeform* mSkinDeform; /* 0xD0 */ J3DVtxColorCalc* mVtxColorCalc; - /* 0xD4 */ int field_0xd4; - /* 0xD8 */ int field_0xd8; + /* 0xD4 */ J3DUnkCalc1* mUnkCalc1; + /* 0xD8 */ J3DUnkCalc2* mUnkCalc2; }; #endif /* J3DMODEL_H */ diff --git a/include/JSystem/J3DGraphAnimator/J3DModelData.h b/include/JSystem/J3DGraphAnimator/J3DModelData.h index 4265ef16d6..d20d6de50a 100644 --- a/include/JSystem/J3DGraphAnimator/J3DModelData.h +++ b/include/JSystem/J3DGraphAnimator/J3DModelData.h @@ -25,6 +25,8 @@ public: J3DVertexData& getVertexData() { return mVertexData; } u16 getShapeNum() const { return mShapeTable.getShapeNum(); } u16 getMaterialNum() const { return mMaterialTable.getMaterialNum(); } + u16 getJointNum() const { return mJointTree.getJointNum(); } + u16 getDrawMtxNum() const { return mJointTree.getDrawMtxNum(); } J3DMaterial* getMaterialNodePointer(u16 idx) const { return mMaterialTable.getMaterialNodePointer(idx); } @@ -36,14 +38,15 @@ public: void* getVtxPosArray() const { return mVertexData.getVtxPosArray(); } void* getVtxNrmArray() const { return mVertexData.getVtxNrmArray(); } _GXColor* getVtxColorArray(u8 idx) const { return mVertexData.getVtxColorArray(idx); } - bool checkFlag(u32 flag) const { return (mFlags & flag) ? true : false; } - bool checkBBoardFlag() const { return field_0xe == 1; } + bool checkFlag(u32 flag) const { return !!(mFlags & flag); } + bool checkBumpFlag() const { return mbHasBumpArray; } + bool checkBBoardFlag() const { return mbHasBillboard == 1; } private: - /* 0x04 */ u32 field_0x4; + /* 0x04 */ void* mpRawData; /* 0x08 */ u32 mFlags; - /* 0x0C */ u16 field_0xc; - /* 0x0E */ u16 field_0xe; + /* 0x0C */ u16 mbHasBumpArray; + /* 0x0E */ u16 mbHasBillboard; /* 0x10 */ J3DJointTree mJointTree; /* 0x58 */ J3DMaterialTable mMaterialTable; /* 0x78 */ J3DShapeTable mShapeTable; diff --git a/include/JSystem/J3DGraphAnimator/J3DMtxBuffer.h b/include/JSystem/J3DGraphAnimator/J3DMtxBuffer.h index 3ff9b52cd8..8aab568306 100644 --- a/include/JSystem/J3DGraphAnimator/J3DMtxBuffer.h +++ b/include/JSystem/J3DGraphAnimator/J3DMtxBuffer.h @@ -24,9 +24,16 @@ public: /* 80326D3C */ void calcNrmMtx(); /* 80326EF0 */ void calcBBoardMtx(); - MtxP getAnmMtx(int idx) const { return *(mMatrices[0] + idx); } + MtxP getAnmMtx(int idx) const { return mpAnmMtx[idx]; } - void setScaleFlag(int idx, u8 flag) { mScaleFlag[idx] = flag; } + void setScaleFlag(int idx, u8 flag) { mScaleFlagArray[idx] = flag; } + u32* getCurrentViewNoPtr() { return &mCurrentViewNo; } + u8* getScaleFlagArray() const { return mScaleFlagArray; } + Mtx** getDrawMtxPtrPtr() const { return mpDrawMtxArr; } + Mtx33** getNrmMtxPtrPtr() const { return mpNrmMtxArr; } + Mtx33* getNrmMtxPtr() const { return mpNrmMtxArr[mCurrentViewNo]; } + Mtx33** getBumpMtxPtrPtr() const { return mpBumpMtxArr; } + Mtx33* getBumpMtxPtr(int idx) const { return mpBumpMtxArr[idx]; } static Mtx sNoUseDrawMtx; static Mtx33 sNoUseNrmMtx; @@ -35,14 +42,18 @@ public: private: /* 0x00 */ J3DJointTree* mJointTree; - /* 0x04 */ u8* mScaleFlag; + /* 0x04 */ u8* mScaleFlagArray; /* 0x08 */ u8* mEnvScaleFlag; - /* 0x0C */ Mtx* mMatrices[5]; // fix this later - /* 0x20 */ Mtx33* mpNrmMtxPtrPtr; - /* 0x24 */ Mtx** field_0x24; - /* 0x28 */ Mtx** mpBumpMtxPtr; - /* 0x2C */ u32 field_0x2c; - /* 0x30 */ u32* mCurrentViewNoPtr; + /* 0x0C */ Mtx* mpAnmMtx; + /* 0x10 */ Mtx* mpWeightEnvMtx; + /* 0x14 */ Mtx** mpOldDrawMtxArr; + /* 0x18 */ Mtx** mpDrawMtxArr; + /* 0x1C */ Mtx33** mpOldNrmMtxArr; + /* 0x20 */ Mtx33** mpNrmMtxArr; + /* 0x24 */ u32 field_0x24; + /* 0x28 */ Mtx33** mpBumpMtxArr; + /* 0x2C */ u32 mFlags; + /* 0x30 */ u32 mCurrentViewNo; /* 0x34 */ Mtx** mUserAnmMtx; public: diff --git a/include/JSystem/J3DGraphBase/J3DMatBlock.h b/include/JSystem/J3DGraphBase/J3DMatBlock.h index 589571f3fb..5097825618 100644 --- a/include/JSystem/J3DGraphBase/J3DMatBlock.h +++ b/include/JSystem/J3DGraphBase/J3DMatBlock.h @@ -21,11 +21,13 @@ struct J3DGXColor : public _GXColor { struct J3DNBTScaleInfo { /* 8032587C */ void operator=(J3DNBTScaleInfo const&); - /* 0x0 */ u8 field_0x0; + /* 0x0 */ u8 mbHasScale; /* 0x4 */ Vec mScale; }; // Size: 0x10 -struct J3DNBTScale : public J3DNBTScaleInfo {}; +struct J3DNBTScale : public J3DNBTScaleInfo { + Vec* getScale() { return &mScale; } +}; class J3DTexGenBlock { public: @@ -50,7 +52,7 @@ public: /* 8000DFD8 */ virtual J3DTexMtx* getTexMtx(u32); /* 80317424 */ virtual void setNBTScale(J3DNBTScale const*); /* 80317420 */ virtual void setNBTScale(J3DNBTScale); - /* 80317334 */ virtual bool getNBTScale(); + /* 80317334 */ virtual J3DNBTScale* getNBTScale(); /* 80317428 */ virtual bool getTexMtxOffset() const; /* 80317430 */ virtual void setTexMtxOffset(u32); /* 803171DC */ virtual ~J3DTexGenBlock(); @@ -71,7 +73,7 @@ public: /* 8031ACD0 */ virtual void diffTexMtx(); /* 8031AD30 */ virtual void diffTexGen(); /* 80317B9C */ virtual s32 countDLSize(); - /* 80322E74 */ virtual void getType(); + /* 80322E74 */ virtual u32 getType(); /* 80322D3C */ virtual void setTexGenNum(u32 const*); /* 80322D34 */ virtual void setTexGenNum(u32); /* 80322D48 */ virtual void getTexGenNum() const; @@ -98,7 +100,7 @@ public: /* 8031A9E8 */ virtual void load(); /* 8031ABC0 */ virtual void patch(); /* 80317BAC */ virtual s32 countDLSize(); - /* 80322C6C */ virtual void getType(); + /* 80322C6C */ virtual u32 getType(); /* 80322C9C */ virtual void setNBTScale(J3DNBTScale const*); /* 80322C78 */ virtual void setNBTScale(J3DNBTScale); /* 80322CC0 */ virtual void getNBTScale(); @@ -116,7 +118,7 @@ public: /* 8031A948 */ virtual void load(); /* 8031AB18 */ virtual void patch(); /* 80317BA4 */ virtual s32 countDLSize(); - /* 80322DA8 */ virtual void getType(); + /* 80322DA8 */ virtual u32 getType(); /* 80322DD8 */ virtual void setNBTScale(J3DNBTScale const*); /* 80322DB4 */ virtual void setNBTScale(J3DNBTScale); /* 80322DFC */ virtual void getNBTScale(); @@ -205,7 +207,7 @@ public: /* 8031C0AC */ virtual void patchTexNoAndTexCoordScale(); /* 8031DFB4 */ virtual void ptrToIndex(); /* 80322974 */ virtual void indexToPtr(); - /* 80322998 */ virtual void getType(); + /* 80322998 */ virtual u32 getType(); /* 80317BB4 */ virtual s32 countDLSize(); /* 803229D0 */ virtual void setTexNo(u32, u16 const*); /* 803229C0 */ virtual void setTexNo(u32, u16); @@ -269,7 +271,7 @@ public: /* 8031C854 */ virtual void patchTexNoAndTexCoordScale(); /* 80321FE8 */ virtual void ptrToIndex(); /* 80321FEC */ virtual void indexToPtr(); - /* 80322010 */ virtual void getType(); + /* 80322010 */ virtual u32 getType(); /* 80317BCC */ virtual s32 countDLSize(); /* 8032202C */ virtual void setTexNo(u32, u16 const*); /* 8032201C */ virtual void setTexNo(u32, u16); @@ -339,7 +341,7 @@ public: /* 8031C558 */ virtual void patchTexNoAndTexCoordScale(); /* 803223AC */ virtual void ptrToIndex(); /* 803223B0 */ virtual void indexToPtr(); - /* 803223D4 */ virtual void getType(); + /* 803223D4 */ virtual u32 getType(); /* 80317BC4 */ virtual s32 countDLSize(); /* 803223F0 */ virtual void setTexNo(u32, u16 const*); /* 803223E0 */ virtual void setTexNo(u32, u16); @@ -409,7 +411,7 @@ public: /* 8031CB7C */ virtual void patchTexNoAndTexCoordScale(); /* 8031DED0 */ virtual void ptrToIndex(); /* 80321C20 */ virtual void indexToPtr(); - /* 80321C44 */ virtual void getType(); + /* 80321C44 */ virtual u32 getType(); /* 80317BD4 */ virtual s32 countDLSize(); /* 80321C60 */ virtual void setTexNo(u32, u16 const*); /* 80321C50 */ virtual void setTexNo(u32, u16); @@ -479,7 +481,7 @@ public: /* 8031C2E8 */ virtual void patchTexNoAndTexCoordScale(); /* 80322770 */ virtual void ptrToIndex(); /* 80322774 */ virtual void indexToPtr(); - /* 80322798 */ virtual void getType(); + /* 80322798 */ virtual u32 getType(); /* 80317BBC */ virtual s32 countDLSize(); /* 803227B4 */ virtual void setTexNo(u32, u16 const*); /* 803227A4 */ virtual void setTexNo(u32, u16); @@ -581,7 +583,7 @@ class J3DPEBlockXlu : public J3DPEBlock { public: /* 8031E98C */ virtual void load(); /* 80317BF4 */ virtual s32 countDLSize(); - /* 80323258 */ virtual void getType(); + /* 80323258 */ virtual u32 getType(); /* 80323264 */ virtual ~J3DPEBlockXlu(); }; @@ -589,7 +591,7 @@ class J3DPEBlockTexEdge : public J3DPEBlock { public: /* 8031E6C8 */ virtual void load(); /* 80317BEC */ virtual s32 countDLSize(); - /* 803232C0 */ virtual void getType(); + /* 803232C0 */ virtual u32 getType(); /* 803232CC */ virtual ~J3DPEBlockTexEdge(); }; @@ -597,7 +599,7 @@ class J3DPEBlockOpa : public J3DPEBlock { public: /* 8031E408 */ virtual void load(); /* 80317BE4 */ virtual s32 countDLSize(); - /* 80323328 */ virtual void getType(); + /* 80323328 */ virtual u32 getType(); /* 80323334 */ virtual ~J3DPEBlockOpa(); }; @@ -612,7 +614,7 @@ public: /* 8031F940 */ virtual void diffFog(); /* 8031F9B8 */ virtual void diffBlend(); /* 80317C04 */ virtual s32 countDLSize(); - /* 8032194C */ virtual void getType(); + /* 8032194C */ virtual u32 getType(); /* 8032197C */ virtual void setFog(J3DFog); /* 80321958 */ virtual void setFog(J3DFog*); /* 803219A0 */ virtual void getFog(); @@ -654,7 +656,7 @@ public: /* 80321ACC */ virtual void diff(u32); /* 8031F0D8 */ virtual void diffBlend(); /* 80317BFC */ virtual s32 countDLSize(); - /* 80321B00 */ virtual void getType(); + /* 80321B00 */ virtual u32 getType(); /* 80321B28 */ virtual void setAlphaComp(J3DAlphaComp const*); /* 80321B0C */ virtual void setAlphaComp(J3DAlphaComp const&); /* 80321B44 */ virtual void getAlphaComp(); @@ -732,7 +734,7 @@ public: /* 8031E328 */ virtual void diff(u32); /* 8031E12C */ virtual void load(); /* 80317BDC */ virtual s32 countDLSize(); - /* 80323390 */ virtual void getType(); + /* 80323390 */ virtual u32 getType(); /* 8032339C */ virtual void setIndTexStageNum(u8); /* 803233A4 */ virtual void getIndTexStageNum() const; /* 803233AC */ virtual void setIndTexOrder(u32, J3DIndTexOrder); @@ -758,7 +760,7 @@ public: /* 803173A0 */ virtual void reset(J3DIndBlock*); /* 80317398 */ virtual void diff(u32); /* 8031739C */ virtual void load(); - /* 803173A4 */ virtual void getType(); + /* 803173A4 */ virtual u32 getType(); /* 803173B0 */ virtual ~J3DIndBlockNull(); }; @@ -830,7 +832,7 @@ public: /* 8031A4D4 */ virtual void diffColorChan(); /* 8031A8E0 */ virtual void diffLightObj(u32); /* 80317B94 */ virtual s32 countDLSize(); - /* 80322E80 */ virtual void getType(); + /* 80322E80 */ virtual u32 getType(); /* 80322EB8 */ virtual void setMatColor(u32, J3DGXColor const*); /* 80322E8C */ virtual void setMatColor(u32, J3DGXColor); /* 80322EE4 */ virtual void getMatColor(u32); @@ -878,7 +880,7 @@ public: /* 80319BB4 */ virtual void diffMatColor(); /* 80319D30 */ virtual void diffColorChan(); /* 80317B84 */ virtual s32 countDLSize(); - /* 80323560 */ virtual void getType(); + /* 80323560 */ virtual u32 getType(); /* 80323184 */ virtual void setMatColor(u32, J3DGXColor const*); /* 80323158 */ virtual void setMatColor(u32, J3DGXColor); /* 803231B0 */ virtual void getMatColor(u32); @@ -913,7 +915,7 @@ public: /* 8031816C */ virtual void load(); /* 8031FDE4 */ virtual void reset(J3DColorBlock*); /* 80317B8C */ virtual s32 countDLSize(); - /* 80323074 */ virtual void getType(); + /* 80323074 */ virtual u32 getType(); /* 803230AC */ virtual void setAmbColor(u32, J3DGXColor const*); /* 80323080 */ virtual void setAmbColor(u32, J3DGXColor); /* 803230D8 */ virtual void getAmbColor(u32); diff --git a/include/JSystem/J3DGraphBase/J3DMaterial.h b/include/JSystem/J3DGraphBase/J3DMaterial.h index 5478f70764..6814350795 100644 --- a/include/JSystem/J3DGraphBase/J3DMaterial.h +++ b/include/JSystem/J3DGraphBase/J3DMaterial.h @@ -45,6 +45,7 @@ public: /* 80316E70 */ virtual void change(); J3DMaterial* getNext() const { return mNext; } + J3DShape* getShape() const { return mShape; } J3DTevBlock* getTevBlock() const { return mTevBlock; } J3DColorBlock* getColorBlock() const { return mColorBlock; } J3DTexGenBlock* getTexGenBlock() const { return mTexGenBlock; } @@ -57,8 +58,9 @@ public: return NULL; } } + J3DNBTScale* getNBTScale() const { return mTexGenBlock->getNBTScale(); } -private: +public: /* 0x04 */ J3DMaterial* mNext; /* 0x08 */ J3DShape* mShape; /* 0x0C */ J3DJoint* mJoint; @@ -72,7 +74,7 @@ private: /* 0x2C */ J3DTevBlock* mTevBlock; /* 0x30 */ J3DIndBlock* mIndBlock; /* 0x34 */ J3DPEBlock* mPEBlock; - /* 0x38 */ J3DMaterial* field_0x38; + /* 0x38 */ J3DMaterial* mpOrigMaterial; /* 0x3C */ J3DMaterialAnm* mMaterialAnm; /* 0x40 */ J3DCurrentMtx mCurrentMtx; /* 0x48 */ J3DDisplayListObj* mSharedDLObj; diff --git a/include/JSystem/J3DGraphBase/J3DPacket.h b/include/JSystem/J3DGraphBase/J3DPacket.h index cca1e0c60b..21bb39e83a 100644 --- a/include/JSystem/J3DGraphBase/J3DPacket.h +++ b/include/JSystem/J3DGraphBase/J3DPacket.h @@ -57,6 +57,7 @@ public: } void addChildPacket(J3DPacket*); + J3DPacket* getNextPacket() const { return mpNextSibling; } inline void clear() { mpNextSibling = NULL; @@ -81,9 +82,22 @@ public: J3DError newSingleDisplayList(u32); virtual void draw(); - J3DDisplayListObj* getDisplayListObj() { return mpDisplayListObj; } + J3DDisplayListObj* getDisplayListObj() const { return mpDisplayListObj; } void setDisplayListObj(J3DDisplayListObj* pObj) { mpDisplayListObj = pObj; } + void callDL() const { getDisplayListObj()->callDL(); } + + enum { + LOCKED = 0x01, + }; + + bool checkFlag(u32 flag) const { return (mFlags & flag) != 0; } + void onFlag(u32 flag) { mFlags |= flag; } + void offFlag(u32 flag) { mFlags &= ~flag; } + void lock() { onFlag(LOCKED); } + void unlock() { offFlag(LOCKED); } + J3DTexMtx* getTexMtxObj() const { return mpTexMtx; } + public: /* 0x10 */ u32 mFlags; /* 0x14 */ char mPad0[0x0C]; // unk @@ -104,11 +118,16 @@ public: void setShape(J3DShape* pShape) { mpShape = pShape; } void setModel(J3DModel* pModel) { mpModel = pModel; } + void setMtxBuffer(J3DMtxBuffer* pMtxBuffer) { mpMtxBuffer = pMtxBuffer; } + void setBaseMtxPtr(Mtx* pMtx) { mpBaseMtxPtr = pMtx; } + + J3DShape* getShape() const { return mpShape; } + J3DModel* getModel() const { return mpModel; } public: /* 0x28 */ J3DShape* mpShape; /* 0x2C */ J3DMtxBuffer* mpMtxBuffer; - /* 0x30 */ Mtx* mpViewMtx; + /* 0x30 */ Mtx* mpBaseMtxPtr; /* 0x34 */ u32 mDiffFlag; /* 0x38 */ J3DModel* mpModel; }; // Size: 0x3C @@ -121,13 +140,17 @@ public: void endDiff(); bool isSame(J3DMatPacket*) const; + J3DShapePacket* getShapePacket() const { return mpShapePacket; } + void setShapePacket(J3DShapePacket* packet) { mpShapePacket = packet; } + void setInitShapePacket(J3DShapePacket* packet) { mpInitShapePacket = packet; } + virtual ~J3DMatPacket(); virtual bool entry(J3DDrawBuffer*); virtual void draw(); public: - /* 0x28 */ J3DShapePacket* mpShapePacket; - /* 0x2C */ J3DShapePacket* mpFirstShapePacket; + /* 0x28 */ J3DShapePacket* mpInitShapePacket; + /* 0x2C */ J3DShapePacket* mpShapePacket; /* 0x30 */ J3DMaterial* mpMaterial; /* 0x34 */ u32 mSortFlags; /* 0x38 */ J3DTexture* mpTexture; diff --git a/include/JSystem/J3DGraphBase/J3DShape.h b/include/JSystem/J3DGraphBase/J3DShape.h index 332acb3d15..1fd8e7c56c 100644 --- a/include/JSystem/J3DGraphBase/J3DShape.h +++ b/include/JSystem/J3DGraphBase/J3DShape.h @@ -23,6 +23,13 @@ class J3DMaterial; class J3DVertexData; class J3DDrawMtxData; +enum J3DShpFlag { + J3DShpFlag_SkinPosCpu = 0x0004, + J3DShpFlag_SkinNrmCpu = 0x0008, + J3DShpFlag_Hidden = 0x0010, + J3DShpFlag_EnableLod = 0x0100, +}; + class J3DShape { public: /* 80314B48 */ void initialize(); @@ -44,13 +51,23 @@ public: void onFlag(u32 flag) { mFlags |= flag; } void offFlag(u32 flag) { mFlags &= ~flag; } + bool checkFlag(u32 flag) { return !!(mFlags & flag); } void setDrawMtxDataPointer(J3DDrawMtxData* pMtxData) { mDrawMtxData = pMtxData; } void setVertexDataPointer(J3DVertexData* pVtxData) { mVertexData = pVtxData; } void* getVcdVatCmd() const { return mVcdVatCmd; } void setVcdVatCmd(void* pVatCmd) { mVcdVatCmd = pVatCmd; } void show() { offFlag(1); } void hide() { onFlag(1); } + void setCurrentViewNoPtr(u32* pViewNoPtr) { mCurrentViewNo = pViewNoPtr; } + void setScaleFlagArray(u8* pScaleFlagArray) { mScaleFlagArray = pScaleFlagArray; } + void setDrawMtx(Mtx** pDrawMtx) { mDrawMtx = pDrawMtx; } + void setNrmMtx(Mtx33** pNrmMtx) { mNrmMtx = pNrmMtx; } + bool getNBTFlag() const { return mHasNBT; } + u32 getBumpMtxOffset() const { return mBumpMtxOffset; } + inline J3DMaterial* getMaterial() const { return mMaterial; } + inline u32 getPipeline() const { return (mFlags >> 2) & 7; } + inline u32 getTexMtxLoadType() const { return mFlags & 0xF000; } static void resetVcdVatCache() { sOldVcdVatCmd = NULL; } static void* sOldVcdVatCmd; @@ -64,17 +81,17 @@ private: /* 0x14 */ Vec mMin; /* 0x20 */ Vec mMax; /* 0x2C */ void* mVcdVatCmd; - /* 0x30 */ _GXAttr* mVtxDesc; + /* 0x30 */ GXVtxDescList* mVtxDesc; /* 0x34 */ bool mHasNBT; - /* 0x38 */ J3DShapeMtx* mShapeMtx; - /* 0x3C */ J3DShapeDraw* mShapeDraw; + /* 0x38 */ J3DShapeMtx** mShapeMtx; + /* 0x3C */ J3DShapeDraw** mShapeDraw; /* 0x40 */ J3DCurrentMtx mCurrentMtx; /* 0x48 */ bool mHasPNMTXIdx; /* 0x4C */ J3DVertexData* mVertexData; /* 0x50 */ J3DDrawMtxData* mDrawMtxData; /* 0x54 */ u8* mScaleFlagArray; - /* 0x58 */ Mtx* mDrawMtx; - /* 0x5C */ Mtx* mNrmMtx; + /* 0x58 */ Mtx** mDrawMtx; + /* 0x5C */ Mtx33** mNrmMtx; /* 0x60 */ u32* mCurrentViewNo; /* 0x64 */ u32 mBumpMtxOffset; }; diff --git a/include/JSystem/J3DGraphBase/J3DShapeMtx.h b/include/JSystem/J3DGraphBase/J3DShapeMtx.h index bfc1f90c33..ced0ec979b 100644 --- a/include/JSystem/J3DGraphBase/J3DShapeMtx.h +++ b/include/JSystem/J3DGraphBase/J3DShapeMtx.h @@ -4,6 +4,19 @@ #include "dolphin/mtx/mtxvec.h" #include "dolphin/types.h" +class J3DTexMtx; +class J3DTexGenBlock; + +class J3DDifferedTexMtx { +public: + /* 8031322C */ void loadExecute(f32 const (*)[4]); + + static J3DTexGenBlock* sTexGenBlock; + static J3DTexMtx* sTexMtxObj; +}; + +extern u8 struct_804515B0[4]; + class J3DShapeMtx { public: /* 803130A8 */ void resetMtxLoadCache(); @@ -20,10 +33,14 @@ public: /* 80313BF0 */ virtual void calcNBTScale(Vec const&, f32 (*)[3][3], f32 (*)[3][3]); static u8 sMtxLoadPipeline[48]; - static u8 sMtxLoadCache[20 + 4 /* padding */]; - static u8 sCurrentPipeline[4]; - static u8 sCurrentScaleFlag[4]; - static u8 sTexMtxLoadType[4]; + static u16 sMtxLoadCache[10 + 2 /* padding */]; + static u32 sCurrentPipeline; + // static J3DScaleFlag sCurrentScaleFlag; + static u8* sCurrentScaleFlag; + static u32 sTexMtxLoadType; + + static void setCurrentPipeline(u32 pipeline) { sCurrentPipeline = pipeline; } + static void setLODFlag(u8 flag) { struct_804515B0[1] = flag; } private: /* 0x04 */ u16 mUseMtxIndex; diff --git a/include/JSystem/J3DGraphBase/J3DSys.h b/include/JSystem/J3DGraphBase/J3DSys.h index 75a181eab4..8dfca2d554 100644 --- a/include/JSystem/J3DGraphBase/J3DSys.h +++ b/include/JSystem/J3DGraphBase/J3DSys.h @@ -19,8 +19,14 @@ class J3DShape; class J3DDrawBuffer; class J3DTexture; +enum J3DSysFlag { + J3DSysFlag_SkinPosCpu = 0x00000004, + J3DSysFlag_SkinNrmCpu = 0x00000008, + J3DSysFlag_PostTexMtx = 0x40000000, +}; + struct J3DSys { - /* 0x000 */ Mtx mMtx; + /* 0x000 */ Mtx mViewMtx; /* 0x030 */ J3DMtxCalc* mCurrentMtxCalc; /* 0x034 */ u32 mFlags; /* 0x038 */ J3DModel* mModel; @@ -31,7 +37,9 @@ struct J3DSys { /* 0x050 */ u32 mDrawMode; /* 0x054 */ u32 mMaterialMode; /* 0x058 */ J3DTexture* mTexture; - /* 0x05C */ u8 field_0x5c[0x10C - 0x5C]; + /* 0x05C */ u8 field_0x5c[0x104 - 0x5C]; + /* 0x104 */ Mtx* mModelDrawMtx; + /* 0x104 */ Mtx33* mModelNrmMtx; /* 0x10C */ void* mVtxPos; /* 0x110 */ void* mVtxNrm; /* 0x114 */ _GXColor* mVtxCol; @@ -56,17 +64,25 @@ struct J3DSys { /* 0x4 */ XLU, }; + Mtx* getViewMtx() { return &mViewMtx; } + void setDrawModeOpaTexEdge() { mDrawMode = OPA_TEX_EDGE; } void setDrawModeXlu() { mDrawMode = XLU; } + void* getVtxPos() const { return mVtxPos; } void setVtxPos(void* pVtxPos) { mVtxPos = pVtxPos; } + void* getVtxNrm() const { return mVtxNrm; } void setVtxNrm(void* pVtxNrm) { mVtxNrm = pVtxNrm; } + void* getVtxCol() const { return mVtxCol; } void setVtxCol(_GXColor* pVtxCol) { mVtxCol = pVtxCol; } void setModel(J3DModel* pModel) { mModel = pModel; } + void setShapePacket(J3DShapePacket* pPacket) { mShapePacket = pPacket; } + void setMatPacket(J3DMatPacket* pPacket) { mMatPacket = pPacket; } + void setMaterialMode(u32 mode) { mMaterialMode = mode; } void setTexture(J3DTexture* pTex) { mTexture = pTex; } @@ -74,6 +90,18 @@ struct J3DSys { void offFlag(u32 flag) { mFlags &= ~flag; } + bool checkFlag(u32 flag) { return mFlags & flag; } + + void setModelDrawMtx(Mtx* pMtxArr) { + mModelDrawMtx = pMtxArr; + GXSetArray(GX_POS_MTX_ARRAY, mModelDrawMtx, sizeof(*mModelDrawMtx)); + } + + void setModelNrmMtx(Mtx33* pMtxArr) { + mModelNrmMtx = pMtxArr; + GXSetArray(GX_NRM_MTX_ARRAY, mModelNrmMtx, sizeof(*mModelNrmMtx)); + } + static Mtx mCurrentMtx; static Vec mCurrentS; static Vec mParentS; diff --git a/include/JSystem/J3DGraphBase/J3DTexture.h b/include/JSystem/J3DGraphBase/J3DTexture.h index 52d11fca65..93e098842f 100644 --- a/include/JSystem/J3DGraphBase/J3DTexture.h +++ b/include/JSystem/J3DGraphBase/J3DTexture.h @@ -3,6 +3,7 @@ #include "JSystem/JUtility/JUTTexture.h" #include "dolphin/mtx/mtx.h" +#include "dolphin/mtx/mtx44.h" #include "dolphin/types.h" class J3DTexture { @@ -18,27 +19,21 @@ public: }; struct J3DTextureSRTInfo { - /* 0x00 */ f32 field_0x0; - /* 0x04 */ f32 field_0x4; - /* 0x08 */ s16 field_0x8; - /* 0x0C */ f32 field_0xc; - /* 0x10 */ f32 field_0x10; + /* 0x00 */ f32 mScaleX; + /* 0x04 */ f32 mScaleY; + /* 0x08 */ s16 mRotation; + /* 0x0C */ f32 mTranslationX; + /* 0x10 */ f32 mTranslationY; }; // Size: 0x14 struct J3DTexMtxInfo { /* 80325718 */ void operator=(J3DTexMtxInfo const&); - /* 0x00 */ u8 field_0x0; - /* 0x01 */ u8 field_0x1; - /* 0x04 */ f32 field_0x04; - /* 0x08 */ f32 field_0x08; - /* 0x0C */ f32 field_0x0c; - /* 0x10 */ J3DTextureSRTInfo field_0x10; - /* 0x24 */ Mtx mEffectMtx; - /* 0x54 */ f32 field_0x54; - /* 0x58 */ f32 field_0x58; - /* 0x5C */ f32 field_0x5c; - /* 0x60 */ f32 field_0x60; + /* 0x00 */ u8 mProjection; + /* 0x01 */ u8 mInfo; + /* 0x04 */ Vec mCenter; + /* 0x10 */ J3DTextureSRTInfo mSRT; + /* 0x24 */ Mtx44 mEffectMtx; }; // Size: 0x64 class J3DTexMtx { diff --git a/include/JSystem/JGeometry.h b/include/JSystem/JGeometry.h index d8ac89fa5f..2bb4e5f852 100644 --- a/include/JSystem/JGeometry.h +++ b/include/JSystem/JGeometry.h @@ -1,6 +1,7 @@ #ifndef JGEOMETRY_H #define JGEOMETRY_H +#include "dolphin/mtx/vec.h" #include "dolphin/types.h" namespace JGeometry { @@ -10,15 +11,29 @@ struct TVec3 { T x; T y; T z; -}; -/* -template <> -struct TVec3 { - TVec3(Vec& v) { + void set(const TVec3& other) { + x = other.x; + y = other.y; + z = other.z; + } +}; + +template <> +struct TVec3 { + f32 x; + f32 y; + f32 z; + + operator Vec*() { return (Vec*)&x; } + operator const Vec*() const { return (Vec*)&x; } + + void set(const TVec3& other) { + x = other.x; + y = other.y; + z = other.z; } }; - */ template struct TVec2 { diff --git a/include/JSystem/JParticle/JPADynamicsBlock.h b/include/JSystem/JParticle/JPADynamicsBlock.h index c03b3f6365..aa424f49a9 100644 --- a/include/JSystem/JParticle/JPADynamicsBlock.h +++ b/include/JSystem/JParticle/JPADynamicsBlock.h @@ -1,6 +1,61 @@ #ifndef JPADYNAMICSBLOCK_H #define JPADYNAMICSBLOCK_H +#include "JSystem/JGeometry.h" + #include "dolphin/types.h" +class JPAEmitterWorkData; + +struct JPADynamicsBlockData { + // Common header. + /* 0x00 */ u8 mMagic[4]; + /* 0x04 */ u32 mSize; + + /* 0x08 */ u32 mFlags; + /* 0x0C */ u32 mResUserWork; + /* 0x10 */ JGeometry::TVec3 mEmitterScl; + /* 0x1C */ JGeometry::TVec3 mEmitterTrs; + /* 0x28 */ JGeometry::TVec3 mEmitterDir; + /* 0x34 */ f32 mInitialVelOmni; + /* 0x38 */ f32 mInitialVelAxis; + /* 0x3C */ f32 mInitialVelRndm; + /* 0x40 */ f32 mInitialVelDir; + /* 0x44 */ f32 mSpread; + /* 0x48 */ f32 mInitialVelRatio; + /* 0x4C */ f32 mRate; + /* 0x50 */ f32 mRateRndm; + /* 0x54 */ f32 mLifeTimeRndm; + /* 0x58 */ f32 mVolumeSweep; + /* 0x5C */ f32 mVolumeMinRad; + /* 0x60 */ f32 mAirResist; + /* 0x64 */ f32 mMoment; + /* 0x68 */ JGeometry::TVec3 mEmitterRot; + /* 0x6E */ s16 mMaxFrame; + /* 0x70 */ s16 mStartFrame; + /* 0x72 */ s16 mLifeTime; + /* 0x74 */ s16 mVolumeSize; + /* 0x76 */ s16 mDivNumber; + /* 0x78 */ u8 mRateStep; + /* 0x7C */ u32 field_0x7c; +}; + +typedef void (*JPADynamicsCalcVolumeFunc)(JPAEmitterWorkData*); + +class JPADynamicsBlock { +public: + /* 8027BB18 */ JPADynamicsBlock(u8 const*); + /* 8027BB4C */ void init(); + /* 8027BBE8 */ void create(JPAEmitterWorkData*); + + void calc(JPAEmitterWorkData* work) { mpCalcVolumeFunc(work); } + + s16 getStartFrame() const { return mpData->mStartFrame; } + u32 getResUserWork() const { return mpData->mResUserWork; } + +public: + JPADynamicsBlockData* mpData; + JPADynamicsCalcVolumeFunc mpCalcVolumeFunc; +}; + #endif /* JPADYNAMICSBLOCK_H */ diff --git a/include/JSystem/JParticle/JPAExTexShape.h b/include/JSystem/JParticle/JPAExTexShape.h index 1effc99c81..28b3a43276 100644 --- a/include/JSystem/JParticle/JPAExTexShape.h +++ b/include/JSystem/JParticle/JPAExTexShape.h @@ -3,4 +3,31 @@ #include "dolphin/types.h" +struct JPAExTexShapeData { + // Common header. + /* 0x00 */ u8 mMagic[4]; + /* 0x04 */ u32 mSize; + + /* 0x08 */ u32 mFlags; + /* 0x0C */ f32 mIndTexMtx[2][3]; + /* 0x24 */ s8 mExpScale; + /* 0x25 */ s8 mIndTexIdx; + /* 0x26 */ s8 mSecTexIdx; +}; + +class JPAExTexShape { +public: + /* 8027B13C */ JPAExTexShape(u8 const*); + + const f32* getIndTexMtx() const { return &mpData->mIndTexMtx[0][0]; } + s32 getExpScale() const { return mpData->mExpScale; } + u8 getIndTexIdx() const { return mpData->mIndTexIdx; } + u8 getSecTexIdx() const { return mpData->mSecTexIdx; } + bool isUseIndirect() const { return !!(mpData->mFlags & 0x01); } + bool isUseSecTex() const { return !!(mpData->mFlags & 0x0100); } + +public: + const JPAExTexShapeData* mpData; +}; + #endif /* JPAEXTEXSHAPE_H */ diff --git a/include/JSystem/JParticle/JPAMath.h b/include/JSystem/JParticle/JPAMath.h index 87da499aa6..3c0e94b43c 100644 --- a/include/JSystem/JParticle/JPAMath.h +++ b/include/JSystem/JParticle/JPAMath.h @@ -1,6 +1,9 @@ #ifndef JPAMATH_H #define JPAMATH_H +#include "dolphin/mtx/mtx.h" #include "dolphin/types.h" +void JPAGetXYZRotateMtx(s16 x, s16 y, s16 z, Mtx dst); + #endif /* JPAMATH_H */ diff --git a/include/JSystem/JParticle/JPAParticle.h b/include/JSystem/JParticle/JPAParticle.h index b36c6b6bd1..046353808f 100644 --- a/include/JSystem/JParticle/JPAParticle.h +++ b/include/JSystem/JParticle/JPAParticle.h @@ -4,15 +4,243 @@ #include "dolphin/gx/GX.h" #include "dolphin/types.h" -class JPABaseParticle; +#include "JSystem/JGeometry.h" +#include "JSystem/JSupport/JSUList.h" -struct JPABaseEmitter { +class JKRHeap; +class JPABaseEmitter; +class JPABaseParticle; +class JPADrawInfo; +class JPAEmitterCallBack; +class JPAEmitterManager; +class JPAParticleCallBack; +class JPAResource; +class JPAResourceManager; + +class JPADrawInfo { +public: + Mtx mCamMtx; + Mtx mPrjMtx; + + void getCamMtx(Mtx* dst) const { PSMTXCopy(mCamMtx, *dst); } + void getPrjMtx(Mtx* dst) const { PSMTXCopy(mPrjMtx, *dst); } +}; + +struct JPARandom { +public: + JPARandom() { mSeed = 0; } + void set_seed(u32 seed) { mSeed = seed; } + +public: + u32 mSeed; +}; + +template +struct JPANode { + JPANode* mpPrev; + JPANode* mpNext; + T mData; +}; + +template +struct JPAList { + JPANode* mpFirst; + JPANode* mpLast; + u32 mNum; + + JPAList() : mpFirst(NULL), mpLast(NULL), mNum() {} + + JPANode* getFirst() const { return mpFirst; } + JPANode* getLast() const { return mpLast; } + u32 getNum() const { return mNum; } + + void push_front(JPANode* node) { + if (mpFirst != NULL) { + node->mpPrev = NULL; + node->mpNext = mpFirst; + mpFirst->mpPrev = node; + mpFirst = node; + } else { + mpLast = node; + mpFirst = node; + node->mpPrev = NULL; + node->mpNext = NULL; + } + + mNum++; + } + + void push_back(JPANode* node) { + if (mpLast != NULL) { + node->mpPrev = mpLast; + node->mpNext = NULL; + mpLast->mpNext = node; + mpLast = node; + } else { + mpFirst = node; + mpLast = node; + node->mpPrev = NULL; + node->mpNext = NULL; + } + + mNum++; + } + + JPANode* pop_front() { + JPANode* ret = NULL; + + if (mNum == 1) { + ret = mpFirst; + mpLast = NULL; + mpFirst = NULL; + mNum--; + } else if (mNum) { + ret = mpFirst; + ret->mpNext->mpPrev = NULL; + mpFirst = ret->mpNext; + mNum--; + } + + return ret; + } + + JPANode* pop_back() { + JPANode* ret = NULL; + + if (mNum == 1) { + ret = mpLast; + mpLast = NULL; + mpFirst = NULL; + mNum--; + } else if (mNum) { + ret = mpLast; + ret->mpPrev->mpNext = NULL; + mpLast = ret->mpPrev; + mNum--; + } + + return ret; + } +}; + +struct JPAEmitterWorkData { + /* 0x00 */ JPABaseEmitter* mpEmtr; + /* 0x04 */ JPAResource* mpRes; + /* 0x08 */ JPAResourceManager* mpResMgr; + /* 0x0C */ JPARandom mRndm; + /* 0x10 */ JGeometry::TVec3 mVolumePos; + /* 0x1C */ JGeometry::TVec3 mVelOmni; + /* 0x28 */ JGeometry::TVec3 mVelAxis; + /* 0x34 */ f32 mVolumeSize; + /* 0x38 */ f32 mVolumeMinRad; + /* 0x3C */ f32 mVolumeSweep; + /* 0x40 */ u32 mEmitCount; + /* 0x44 */ u32 mVolumeEmitIdx; + /* 0x48 */ Mtx mDirectionMtx; + /* 0x78 */ Mtx mRotationMtx; + /* 0xA8 */ Mtx mGlobalRot; + /* 0xD8 */ Mtx mGlobalSR; + /* 0x108 */ JGeometry::TVec3 mEmitterPos; + /* 0x114 */ JGeometry::TVec3 mGlobalScl; + /* 0x120 */ JGeometry::TVec3 mGlobalEmtrDir; + /* 0x12C */ JGeometry::TVec3 mPublicScale; + /* 0x138 */ JGeometry::TVec3 mGlobalPos; + /* 0x144 */ JGeometry::TVec2 mGlobalPtclScl; + /* 0x14C */ JGeometry::TVec2 mPivot; + /* 0x154 */ Mtx mYBBCamMtx; + /* 0x184 */ Mtx mPosCamMtx; + /* 0x1B4 */ Mtx mPrjMtx; + /* 0x1E4 */ JPAList* mpAlivePtcl; + /* 0x1E8 */ JPANode* mpCurNode; + /* 0x1EC */ u32 mVolumeAngleNum; + /* 0x1F0 */ u32 mVolumeAngleMax; + /* 0x1F4 */ u32 mVolumeX; + /* 0x1F8 */ u32 mDivNumber; + /* 0x1FC */ f32 mScaleAnm; + /* 0x200 */ u32 mDirType; + /* 0x204 */ u32 mRotType; + /* 0x208 */ u32 mPlaneType; + /* 0x20C */ u32 mDLType; + /* 0x210 */ u32 mPrjType; + /* 0x214 */ s16 mClrKeyFrame; + /* 0x216 */ u8 mDrawCount; +}; + +class JPAEmitterCallBack { +public: + /* 80050368 */ void execute(JPABaseEmitter*); + /* 8005036C */ void draw(JPABaseEmitter*); + /* 80050370 */ void drawAfter(JPABaseEmitter*); + /* 80050374 */ void executeAfter(JPABaseEmitter*); + /* 8027E6A4 */ ~JPAEmitterCallBack(); +}; + +class JPABaseEmitter { +public: + /* 8027E5EC */ ~JPABaseEmitter(); + /* 8027E64C */ JPABaseEmitter(); + /* 8027E6EC */ void init(JPAEmitterManager*, JPAResource*); + /* 8027EDD4 */ bool processTillStartFrame(); + /* 8027EE14 */ void processTermination(); + /* 8027EEB0 */ void calcEmitterGlobalPosition(JGeometry::TVec3*) const; /* 8027EC60 */ void deleteAllParticle(); - /* 8027EB60 */ void createChild(JPABaseParticle*); - /* 8027EA40 */ void createParticle(); - /* 8027EF30 */ void getCurrentCreateNumber() const; - /* 8027EF40 */ void getDrawCount() const; - /* 8027EF50 */ void loadTexture(u8, _GXTexMapID); + /* 8027EB60 */ JPABaseParticle* createChild(JPABaseParticle*); + /* 8027EA40 */ JPABaseParticle* createParticle(); + /* 8027EF30 */ u32 getCurrentCreateNumber() const; + /* 8027EF40 */ u8 getDrawCount() const; + /* 8027EF50 */ bool loadTexture(u8, GXTexMapID); + + void setStatus(u32 status) { mStatus |= status; } + bool checkStatus(u32 status) { return !!(mStatus & status); } + u8 getResourceManagerID() const { return mResMgrID; } + u8 getGroupID() const { return mGroupID; } + +public: + /* 0x00 */ Vec mLocalScl; + /* 0x0C */ Vec mLocalTrs; + /* 0x18 */ Vec mLocalDir; + /* 0x24 */ s32 mMaxFrame; + /* 0x28 */ f32 mRate; + /* 0x2C */ f32 mVolumeSweep; + /* 0x30 */ f32 mVolumeMinRad; + /* 0x34 */ f32 mAwayFromCenterSpeed; + /* 0x38 */ f32 mAwayFromAxisSpeed; + /* 0x3C */ f32 mDirSpeed; + /* 0x40 */ f32 mSpread; + /* 0x44 */ f32 mRndmDirSpeed; + /* 0x48 */ f32 mAirResist; + /* 0x4C */ JGeometry::TVec3 mLocalRot; + /* 0x52 */ u16 mLifeTime; + /* 0x54 */ u16 mVolumeSize; + /* 0x56 */ u8 mRateStep; + /* 0x58 */ JSULink mLink; + /* 0x68 */ Mtx mGlobalRot; + /* 0x98 */ Vec mGlobalScl; + /* 0xA4 */ JGeometry::TVec3 mGlobalTrs; + /* 0xB0 */ JGeometry::TVec2 mGlobalPScl; + /* 0xB8 */ GXColor mGlobalPrmClr; + /* 0xBC */ GXColor mGlobalEnvClr; + /* 0xC0 */ void* mpUserWork; + /* 0xC4 */ JPARandom mRndm; + /* 0xC8 */ JPAList mAlivePtclBase; + /* 0xD4 */ JPAList mAlivePtclChld; + /* 0xE0 */ JPAList* mpPtclPool; + /* 0xE4 */ JPAEmitterManager* mpEmtrMgr; + /* 0xE8 */ JPAResource* mpRes; + /* 0xEC */ JPAEmitterCallBack* mpEmtrCallBack; + /* 0xF0 */ JPAParticleCallBack* mpPtclCallBack; + /* 0xF4 */ u32 mStatus; + /* 0xF8 */ f32 mEmitCount; + /* 0xFC */ f32 mScaleOut; + /* 0x100 */ u32 mTick; + /* 0x104 */ s16 mWaitTime; + /* 0x106 */ u16 mRateStepTimer; + /* 0x108 */ GXColor mPrmClr; + /* 0x10C */ GXColor mEnvClr; + /* 0x110 */ u8 mDrawTimes; + /* 0x111 */ u8 mTexAnmIdx; + /* 0x112 */ u8 mGroupID; + /* 0x113 */ u8 mResMgrID; }; class JPAParticleCallBack { @@ -22,4 +250,69 @@ public: virtual void draw(JPABaseEmitter*, JPABaseParticle*); }; +class JPABaseParticle { +public: + /* 8027EFEC */ void init_p(JPAEmitterWorkData*); + /* 8027F8C8 */ void init_c(JPAEmitterWorkData*, JPABaseParticle*); + /* 8027FFD0 */ void calc_p(JPAEmitterWorkData*); + /* 80280260 */ void calc_c(JPAEmitterWorkData*); + /* 802804C8 */ void canCreateChild(JPAEmitterWorkData*); + /* 80280548 */ f32 getWidth(JPABaseEmitter const*) const; + /* 80280568 */ f32 getHeight(JPABaseEmitter const*) const; + +public: + /* 0x00 */ Vec mPosition; + /* 0x0C */ Vec mLocalPosition; + /* 0x18 */ Vec mOffsetPosition; + /* 0x24 */ Vec mVelocity; + /* 0x30 */ Vec mVelType1; + /* 0x3C */ Vec mVelType0; + /* 0x48 */ Vec mVelType2; + /* 0x54 */ Vec mBaseAxis; + /* 0x60 */ f32 mParticleScaleX; + /* 0x64 */ f32 mParticleScaleY; + /* 0x68 */ f32 mScaleOut; + /* 0x6C */ f32 mAlphaWaveRandom; + /* 0x70 */ f32 mMoment; + /* 0x74 */ f32 mDrag; + /* 0x78 */ u32 field_0x78; + /* 0x7C */ u32 mStatus; + /* 0x80 */ u16 mAge; + /* 0x82 */ u16 mLifeTime; + /* 0x84 */ f32 mTime; + /* 0x88 */ u16 mRotateAngle; + /* 0x8A */ u16 mRotateSpeed; + /* 0x8C */ GXColor mPrmClr; + /* 0x90 */ GXColor mEnvClr; + /* 0x94 */ u8 mTexAnmIdx; + /* 0x95 */ u8 mAnmRandom; + /* 0x96 */ u8 mPrmColorAlphaAnm; +}; + +class JPAEmitterManager { +public: + /* 8027DCA0 */ JPAEmitterManager(u32, u32, JKRHeap*, u8, u8); + /* 8027DEBC */ JPABaseEmitter* createSimpleEmitterID(JGeometry::TVec3 const&, u16, u8, u8, + JPAEmitterCallBack*, JPAParticleCallBack*); + /* 8027DFA0 */ void calc(u8); + /* 8027E028 */ void draw(JPADrawInfo const*, u8); + /* 8027E220 */ void forceDeleteAllEmitter(); + /* 8027E278 */ void forceDeleteGroupEmitter(u8); + /* 8027E2D8 */ void forceDeleteEmitter(JPABaseEmitter*); + /* 8027E344 */ void entryResourceManager(JPAResourceManager*, u8); + /* 8027E354 */ void clearResourceManager(u8); + /* 8027E3F4 */ void calcYBBCam(); + +public: + /* 0x00 */ JSUList* mpGrpEmtr; + /* 0x04 */ JSUList mFreeEmtrList; + /* 0x10 */ JPAList mPtclPool; + /* 0x1C */ JPAResourceManager** mpResMgrAry; + /* 0x20 */ JPAEmitterWorkData* mpWorkData; + /* 0x24 */ u32 mEmtrMax; + /* 0x28 */ u32 mPtclMax; + /* 0x2C */ u8 mGrpMax; + /* 0x2D */ u8 mResMax; +}; + #endif /* JPAPARTICLE_H */ diff --git a/include/JSystem/JParticle/JPAResource.h b/include/JSystem/JParticle/JPAResource.h index b326fbef68..f207f15d88 100644 --- a/include/JSystem/JParticle/JPAResource.h +++ b/include/JSystem/JParticle/JPAResource.h @@ -3,4 +3,73 @@ #include "dolphin/types.h" +class JKRHeap; +class JPAEmitterWorkData; +class JPABaseEmitter; +class JPABaseParticle; + +class JPABaseShape; +class JPAExtraShape; +class JPAChildShape; +class JPAExTexShape; +class JPADynamicsBlock; +class JPAFieldBlock; +class JPAKeyBlock; + +class JPAResource { +public: + /* 80274010 */ JPAResource(); + /* 80274080 */ void init(JKRHeap*); + /* 802755E8 */ void calc(JPAEmitterWorkData*, JPABaseEmitter*); + /* 80275A94 */ void draw(JPAEmitterWorkData*, JPABaseEmitter*); + /* 80275B74 */ void drawP(JPAEmitterWorkData*); + /* 80275EB0 */ void drawC(JPAEmitterWorkData*); + /* 802761A8 */ void setPTev(); + /* 8027642C */ void setCTev(JPAEmitterWorkData*); + /* 8027658C */ void calc_p(JPAEmitterWorkData*, JPABaseParticle*); + /* 80276608 */ void calc_c(JPAEmitterWorkData*, JPABaseParticle*); + /* 80276684 */ void calcField(JPAEmitterWorkData*, JPABaseParticle*); + /* 80276700 */ void calcKey(JPAEmitterWorkData*); + /* 80276840 */ void calcWorkData_c(JPAEmitterWorkData*); + /* 80276A0C */ void calcWorkData_d(JPAEmitterWorkData*); + + JPABaseShape* getBsp() const { return mpBaseShape; } + JPAExtraShape* getEsp() const { return mpExtraShape; } + JPAChildShape* getCsp() const { return mpChildShape; } + JPAExTexShape* getEts() const { return mpExTexShape; } + JPADynamicsBlock* getDyn() const { return mpDynamicsBlock; } + + u32 getTexIdx(u32 idx) const { return mpTDB1[idx]; } + u16 getUsrIdx() const { return mUsrIdx; } + +public: + /* 0x00 */ void** mpCalcEmitterFuncList; + /* 0x04 */ void** mpDrawEmitterFuncList; + /* 0x08 */ void** mpDrawEmitterChildFuncList; + /* 0x0C */ void** mpCalcParticleFuncList; + /* 0x10 */ void** mpDrawParticleFuncList; + /* 0x14 */ void** mpCalcParticleChildFuncList; + /* 0x18 */ void** mpDrawParticleChildFuncList; + + /* 0x1C */ JPABaseShape* mpBaseShape; + /* 0x20 */ JPAExtraShape* mpExtraShape; + /* 0x24 */ JPAChildShape* mpChildShape; + /* 0x28 */ JPAExTexShape* mpExTexShape; + /* 0x2C */ JPADynamicsBlock* mpDynamicsBlock; + /* 0x30 */ JPAFieldBlock** mpFieldBlocks; + /* 0x34 */ JPAKeyBlock** mpKeyBlocks; + /* 0x38 */ u16 const* mpTDB1; + /* 0x3C */ u16 mUsrIdx; + /* 0x3E */ u8 mFieldBlockNum; + /* 0x3F */ u8 mKeyBlockNum; + /* 0x40 */ u8 mTDB1Num; + /* 0x41 */ u8 mpCalcEmitterFuncListNum; + /* 0x42 */ u8 mpDrawEmitterFuncListNum; + /* 0x43 */ u8 mpDrawEmitterChildFuncListNum; + /* 0x44 */ u8 mpCalcParticleFuncListNum; + /* 0x45 */ u8 mpDrawParticleFuncListNum; + /* 0x46 */ u8 mpCalcParticleChildFuncListNum; + /* 0x47 */ u8 mpDrawParticleChildFuncListNum; +}; + #endif /* JPARESOURCE_H */ diff --git a/include/JSystem/JParticle/JPAResourceManager.h b/include/JSystem/JParticle/JPAResourceManager.h index dd024496ca..c9ddb5c9c2 100644 --- a/include/JSystem/JParticle/JPAResourceManager.h +++ b/include/JSystem/JParticle/JPAResourceManager.h @@ -1,6 +1,34 @@ #ifndef JPARESOURCEMANAGER_H #define JPARESOURCEMANAGER_H +#include "JSystem/JParticle/JPATexture.h" +#include "dolphin/gx/GX.h" #include "dolphin/types.h" +class JKRHeap; +class ResTIMG; +class JPAResource; + +class JPAResourceManager { +public: + /* 80273E10 */ JPAResourceManager(void const*, JKRHeap*); + /* 80273E68 */ JPAResource* getResource(u16) const; + /* 80273EA8 */ bool checkUserIndexDuplication(u16) const; + /* 80273EEC */ const ResTIMG* swapTexture(ResTIMG const*, char const*); + /* 80273F8C */ void registRes(JPAResource*); + /* 80273FAC */ void registTex(JPATexture*); + /* 80273FCC */ u32 getResUserWork(u16) const; + + void load(u16 idx, GXTexMapID texMapID) { mpTexArr[idx]->load(texMapID); } + +public: + /* 0x00 */ JKRHeap* mpHeap; + /* 0x04 */ JPAResource** mpResArr; + /* 0x08 */ JPATexture** mpTexArr; + /* 0x0C */ u16 mResMax; + /* 0x0E */ u16 mResNum; + /* 0x10 */ u16 mTexMax; + /* 0x12 */ u16 mTexNum; +}; + #endif /* JPARESOURCEMANAGER_H */ diff --git a/include/JSystem/JParticle/JPATexture.h b/include/JSystem/JParticle/JPATexture.h index 8c63d320dd..dcb2c2ebaa 100644 --- a/include/JSystem/JParticle/JPATexture.h +++ b/include/JSystem/JParticle/JPATexture.h @@ -1,6 +1,29 @@ #ifndef JPATEXTURE_H #define JPATEXTURE_H +#include "JSystem/JUtility/JUTTexture.h" #include "dolphin/types.h" +struct JPATextureData { + // Probably magic / size / flags up top here, but they're unused. + /* 0x00 */ char field_0x00[0x0C]; + /* 0x0C */ char mName[0x14]; + /* 0x20 */ ResTIMG mResTIMG; +}; + +class JPATexture { +public: + JPATexture(u8 const*); + virtual ~JPATexture(); + + void load(GXTexMapID texMapID) { mTexture.load(texMapID); } + + JUTTexture* getJUTTexture() { return &mTexture; } + const char* getName() const { return mpData->mName; } + +public: + JUTTexture mTexture; + const JPATextureData* mpData; +}; + #endif /* JPATEXTURE_H */ diff --git a/include/d/particle/d_particle.h b/include/d/particle/d_particle.h index 17c46ea4c0..b894857486 100644 --- a/include/d/particle/d_particle.h +++ b/include/d/particle/d_particle.h @@ -5,22 +5,6 @@ #include "dolphin/types.h" #include "f_op/f_op_actor.h" -class JPAEmitterCallBack { -public: - /* 8027E6A4 */ virtual ~JPAEmitterCallBack() = 0; - /* 80050368 */ virtual void execute(JPABaseEmitter*); - /* 80050374 */ virtual void executeAfter(JPABaseEmitter*); - /* 8005036C */ virtual void draw(JPABaseEmitter*); - /* 80050370 */ virtual void drawAfter(JPABaseEmitter*); -}; - -struct JPAResourceManager { - /* 80273E10 */ JPAResourceManager(void const*, JKRHeap*); - /* 80273EA8 */ void checkUserIndexDuplication(u16) const; - /* 80273EEC */ void swapTexture(ResTIMG const*, char const*); - /* 80273FCC */ void getResUserWork(u16) const; -}; - class dPa_levelEcallBack : public JPAEmitterCallBack { public: /* 8004FB18 */ virtual ~dPa_levelEcallBack(); diff --git a/include/dolphin/gx/GX.h b/include/dolphin/gx/GX.h index 98ac75143f..a816a20848 100644 --- a/include/dolphin/gx/GX.h +++ b/include/dolphin/gx/GX.h @@ -12,6 +12,14 @@ typedef struct _GXColor { /* 0x1 */ u8 g; /* 0x2 */ u8 b; /* 0x3 */ u8 a; + + _GXColor& operator=(const _GXColor& o) { + r = o.r; + g = o.g; + b = o.b; + a = o.a; + return *this; + } } GXColor; typedef struct _GXColorS10 { @@ -234,7 +242,7 @@ typedef enum _GXLogicOp { /* 0x4 */ GX_LO_INV_AND, /* 0x5 */ GX_LO_NOOP, /* 0x6 */ GX_LO_XOR, - /* 0x7 */ GX_LO_OP, + /* 0x7 */ GX_LO_OR, /* 0x8 */ GX_LO_NOR, /* 0x9 */ GX_LO_EQUIV, /* 0xA */ GX_LO_INV, @@ -258,7 +266,7 @@ typedef enum _GXVtxFmt { } GXVtxFmt; typedef enum _GXAttr { - /* 0x00 */ GX_VA_PTNMTXIDX, + /* 0x00 */ GX_VA_PNMTXIDX, /* 0x01 */ GX_VA_TEX0MTXIDX, /* 0x02 */ GX_VA_TEX1MTXIDX, /* 0x03 */ GX_VA_TEX2MTXIDX, @@ -364,8 +372,8 @@ typedef enum _GXTevColorArg { typedef enum _GXTevColor { /* 0x0 */ GX_CH_RED, - /* 0x1 */ GX_CH_BLUE, - /* 0x2 */ GX_CH_GREEN, + /* 0x1 */ GX_CH_GREEN, + /* 0x2 */ GX_CH_BLUE, /* 0x3 */ GX_CH_ALPHA, } GXTevColor; @@ -693,6 +701,41 @@ typedef enum _GXIndTexMtxID { /* 0xB */ GX_ITM_T2, } GXIndTexMtxID; +typedef enum _GXIndTexFormat { + /* 0x0 */ GX_ITF_8, + /* 0x1 */ GX_ITF_5, + /* 0x2 */ GX_ITF_4, + /* 0x3 */ GX_ITF_3, +} GXIndTexFormat; + +typedef enum _GXIndTexBiasSel { + /* 0x0 */ GX_ITB_NONE, + /* 0x1 */ GX_ITB_S, + /* 0x2 */ GX_ITB_T, + /* 0x3 */ GX_ITB_ST, + /* 0x4 */ GX_ITB_U, + /* 0x5 */ GX_ITB_SU, + /* 0x6 */ GX_ITB_TU, + /* 0x7 */ GX_ITB_STU, +} GXIndTexBiasSel; + +typedef enum _GXIndTexAlphaSel { + /* 0x0 */ GX_ITBA_OFF, + /* 0x1 */ GX_ITBA_S, + /* 0x2 */ GX_ITBA_T, + /* 0x3 */ GX_ITBA_U, +} GXIndTexAlphaSel; + +typedef enum _GXIndTexWrap { + /* 0x0 */ GX_ITW_OFF, + /* 0x1 */ GX_ITW_256, + /* 0x2 */ GX_ITW_128, + /* 0x3 */ GX_ITW_64, + /* 0x4 */ GX_ITW_32, + /* 0x5 */ GX_ITW_16, + /* 0x6 */ GX_ITW_0, +} GXIndTexWrap; + typedef enum _GXTexOffset { /* 0x0 */ GX_TO_ZERO, /* 0x1 */ GX_TO_SIXTEENTH, @@ -717,6 +760,62 @@ typedef enum _GXTexCacheSize { /* 0x3 */ GX_TEXCACHE_NONE, } GXTexCacheSize; +typedef enum _GXPosNrmMtx { + GX_PNMTX0 = 3 * 0, + GX_PNMTX1 = 3 * 1, + GX_PNMTX2 = 3 * 2, + GX_PNMTX3 = 3 * 3, + GX_PNMTX4 = 3 * 4, + GX_PNMTX5 = 3 * 5, + GX_PNMTX6 = 3 * 6, + GX_PNMTX7 = 3 * 7, + GX_PNMTX8 = 3 * 8, + GX_PNMTX9 = 3 * 9, +} GXPosNrmMtx; + +typedef enum _GXTexMtx { + GX_TEXMTX0 = 30 + 0 * 3, + GX_TEXMTX1 = 30 + 1 * 3, + GX_TEXMTX2 = 30 + 2 * 3, + GX_TEXMTX3 = 30 + 3 * 3, + GX_TEXMTX4 = 30 + 4 * 3, + GX_TEXMTX5 = 30 + 5 * 3, + GX_TEXMTX6 = 30 + 6 * 3, + GX_TEXMTX7 = 30 + 7 * 3, + GX_TEXMTX8 = 30 + 8 * 3, + GX_TEXMTX9 = 30 + 9 * 3, + GX_IDENTITY = 60, +}; + +typedef enum _GXPTTexMtx { + GX_PTTEXMTX0 = 64 + 0 * 3, + GX_PTTEXMTX1 = 64 + 1 * 3, + GX_PTTEXMTX2 = 64 + 2 * 3, + GX_PTTEXMTX3 = 64 + 3 * 3, + GX_PTTEXMTX4 = 64 + 4 * 3, + GX_PTTEXMTX5 = 64 + 5 * 3, + GX_PTTEXMTX6 = 64 + 6 * 3, + GX_PTTEXMTX7 = 64 + 7 * 3, + GX_PTTEXMTX8 = 64 + 8 * 3, + GX_PTTEXMTX9 = 64 + 9 * 3, + GX_PTTEXMTX10 = 64 + 10 * 3, + GX_PTTEXMTX11 = 64 + 11 * 3, + GX_PTTEXMTX12 = 64 + 12 * 3, + GX_PTTEXMTX13 = 64 + 13 * 3, + GX_PTTEXMTX14 = 64 + 14 * 3, + GX_PTTEXMTX15 = 64 + 15 * 3, + GX_PTTEXMTX16 = 64 + 16 * 3, + GX_PTTEXMTX17 = 64 + 17 * 3, + GX_PTTEXMTX18 = 64 + 18 * 3, + GX_PTTEXMTX19 = 64 + 19 * 3, + GX_PTIDENTITY = 125, +}; + +typedef struct _GXVtxDescList { + GXAttr attr; + GXAttrType type; +} GXVtxDescList; + extern "C" { f32 GXGetYScaleFactor(u16 efb_height, u16 xfb_height); u16 GXGetNumXfbLines(u32 efb_height, f32 y_scale); @@ -741,10 +840,13 @@ void GXSetTevColorIn(GXTevStageID, GXTevColorArg, GXTevColorArg, GXTevColorArg, void GXSetTevAlphaIn(GXTevStageID, GXTevAlphaArg, GXTevAlphaArg, GXTevAlphaArg, GXTevAlphaArg); void GXSetTevColorOp(GXTevStageID, GXTevOp, GXTevBias, GXTevScale, GXBool, GXTevRegID); void GXSetTevAlphaOp(GXTevStageID, GXTevOp, GXTevBias, GXTevScale, GXBool, GXTevRegID); +void GXSetTevIndirect(GXTevStageID, _GXIndTexStageID, GXIndTexFormat, GXIndTexBiasSel, + GXIndTexMtxID, GXIndTexWrap, GXIndTexWrap, GXBool, GXBool, GXIndTexAlphaSel); void GXSetBlendMode(GXBlendMode, GXBlendFactor, GXBlendFactor, GXLogicOp); void GXSetVtxAttrFmt(GXVtxFmt, GXAttr, GXCompCnt, GXCompType, u32); -void GXClearVtxDesc(); +void GXClearVtxDesc(void); void GXSetVtxDesc(GXAttr, GXAttrType); +void GXSetArray(GXAttr, const void*, u8); typedef void (*GXDrawDoneCallback)(void); void GXSetDrawDoneCallback(GXDrawDoneCallback); void GXDrawDone(void); @@ -772,9 +874,11 @@ void GXPixModeSync(void); void GXProject(f32, f32, f32, Mtx, f32*, f32*, f32*, f32*, f32*); void GXSetAlphaCompare(GXCompare, u8, GXAlphaOp, GXCompare, u8); void GXSetAlphaUpdate(GXBool); +void GXSetChanAmbColor(GXChannelID, GXColor); void GXSetChanMatColor(GXChannelID, GXColor); void GXSetClipMode(GXBool); void GXSetCoPlanar(GXBool); +void GXSetColorUpdate(GXBool); void GXSetCopyFilter(GXBool, u8[12][2], GXBool, u8[7]); void GXSetCullMode(GXCullMode); void GXSetCurrentMtx(u32); @@ -786,7 +890,7 @@ void GXSetProjection(Mtx44, GXProjectionType); void GXSetScissor(u32, u32, u32, u32); void GXSetTevColorS10(GXTevRegID, GXColorS10); void GXSetTevKAlphaSel(GXTevStageID, GXTevKAlphaSel); -void GXSetTevSwapMode(GXTevStageID, GXTevSwapSel); +void GXSetTevSwapMode(GXTevStageID, GXTevSwapSel, GXTevSwapSel); void GXSetTevSwapModeTable(GXTevSwapSel, GXTevColor, GXTevColor, GXTevColor, GXTevColor); void GXSetTexCoordGen2(GXTexCoordID, GXTexGenType, GXTexGenSrc, u32, GXBool, u32); void GXSetTexCopyDst(u16, u16, GXTexFmt, GXBool); @@ -795,7 +899,7 @@ void GXSetViewport(f32, f32, f32, f32, f32, f32); void GXSetZCompLoc(GXBool); void GXSetZMode(GXBool, GXCompare, GXBool); void GXSetZTexture(GXZTexOp, GXZTexFmt, u32); -void GXClearVtxDesc(void); +void GXSetPointSize(u8, GXTexOffset); void GXSetLineWidth(u8, GXTexOffset); void GXSetTevDirect(GXTevStageID); void GXSetTevKColor(GXTevKColorID, GXColor); @@ -804,6 +908,7 @@ void GXGetScissor(u32*, u32*, u32*, u32*); void GXSetIndTexMtx(GXIndTexMtxID, Mtx23, s8); void GXSetIndTexCoordScale(GXIndTexStageID, GXIndTexScale, GXIndTexScale); void GXSetIndTexOrder(GXIndTexStageID, GXTexCoordID, GXTexMapID); +void GXEnableTexOffsets(GXTexCoordID, GXBool, GXBool); }; -#endif \ No newline at end of file +#endif diff --git a/include/dolphin/mtx/mtx.h b/include/dolphin/mtx/mtx.h index 21e9bf3616..a842ce7b00 100644 --- a/include/dolphin/mtx/mtx.h +++ b/include/dolphin/mtx/mtx.h @@ -24,6 +24,8 @@ void PSMTXTransApply(const Mtx src, Mtx dst, float x, float y, float z); void PSMTXScale(Mtx matrix, float x_scale, float y_scale, float z_scale); void PSMTXScaleApply(const Mtx src, Mtx dst, float x_scale, float y_scale, float z_scale); void PSMTXQuat(Mtx matrix, const Quaternion* quat); +void PSMTXMultVec(const Mtx matrix, const Vec* src, Vec* dst); +void PSMTXMultVecSR(const Mtx matrix, const Vec* src, Vec* dst); void C_MTXLookAt(Mtx param_1, const Vec* param_2, const Vec* param_3, const Vec* param_4); void C_MTXLightPerspective(Mtx matrix, float fov_y, float aspect, float scale_s, float scale_t, diff --git a/libs/JSystem/J2DGraph/J2DGrafContext.cpp b/libs/JSystem/J2DGraph/J2DGrafContext.cpp index a0fbd8c047..17ba073c94 100644 --- a/libs/JSystem/J2DGraph/J2DGrafContext.cpp +++ b/libs/JSystem/J2DGraph/J2DGrafContext.cpp @@ -191,14 +191,10 @@ asm void J2DGrafContext::setColor(JUtility::TColor param_0, JUtility::TColor par /* 802E9234-802E9260 2E3B74 002C+00 1/1 2/2 0/0 .text setLineWidth__14J2DGrafContextFUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J2DGrafContext::setLineWidth(u8 param_0) { - nofralloc -#include "asm/JSystem/J2DGraph/J2DGrafContext/setLineWidth__14J2DGrafContextFUc.s" +void J2DGrafContext::setLineWidth(u8 param_0) { + mLineWidth = param_0; + GXSetLineWidth(mLineWidth, GX_TO_ZERO); } -#pragma pop /* 802E9260-802E9368 2E3BA0 0108+00 0/0 2/2 0/0 .text * fillBox__14J2DGrafContextFRCQ29JGeometry8TBox2 */ diff --git a/libs/JSystem/J2DGraph/J2DTevs.cpp b/libs/JSystem/J2DGraph/J2DTevs.cpp index 9a37e2d8d4..e476ca3bc5 100644 --- a/libs/JSystem/J2DGraph/J2DTevs.cpp +++ b/libs/JSystem/J2DGraph/J2DTevs.cpp @@ -5,6 +5,7 @@ #include "JSystem/J2DGraph/J2DTevs.h" #include "dol2asm.h" +#include "dolphin/gx/GX.h" #include "dolphin/types.h" // @@ -19,8 +20,8 @@ struct J2DTevBlock { /* 802EA14C */ bool getTevKAlphaSel(u32); /* 802EA154 */ bool getTevKColorSel(u32); /* 802EA15C */ bool getTevKColor(u32); - /* 802EA164 */ void getFontNo() const; - /* 802EA170 */ void getTexNo(u32) const; + /* 802EA164 */ u32 getFontNo() const; + /* 802EA170 */ u32 getTexNo(u32) const; /* 802EA17C */ bool getTevStageNum() const; /* 802EA184 */ bool getIndTevStage(u32); }; @@ -82,11 +83,6 @@ extern "C" extern u16 j2dDefaultAlphaCmp; // External References: // -extern "C" void GXSetTevIndirect(); -extern "C" void GXSetIndTexMtx(); -extern "C" void GXSetIndTexCoordScale(); -extern "C" void GXSetIndTexOrder(); -extern "C" void GXLoadTexMtxImm(); extern "C" void _savegpr_29(); extern "C" void _restgpr_29(); extern "C" void cos(); @@ -97,24 +93,18 @@ extern "C" void sin(); // /* 802E9C90-802E9CC4 2E45D0 0034+00 0/0 1/1 0/0 .text load__9J2DTexMtxFUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J2DTexMtx::load(u32 param_0) { - nofralloc -#include "asm/JSystem/J2DGraph/J2DTevs/load__9J2DTexMtxFUl.s" +void J2DTexMtx::load(u32 mtxIdx) { + GXLoadTexMtxImm(mTexMtx, mtxIdx * 3 + GX_TEXMTX0, mInfo.getTexMtxType()); } -#pragma pop /* 802E9CC4-802E9D2C 2E4604 0068+00 0/0 2/2 0/0 .text calc__9J2DTexMtxFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J2DTexMtx::calc() { - nofralloc -#include "asm/JSystem/J2DGraph/J2DTevs/calc__9J2DTexMtxFv.s" +void J2DTexMtx::calc() { + if (mInfo.mTexMtxDCC == J2DTexMtxInfo::DCC_NONE) { + getTextureMtx(mInfo.mTexSRTInfo, mInfo.mCenter, mTexMtx); + } else if (mInfo.mTexMtxDCC == J2DTexMtxInfo::DCC_MAYA) { + getTextureMtxMaya(mInfo.mTexSRTInfo, mTexMtx); + } } -#pragma pop /* ############################################################################################## */ /* 80456168-8045616C 004768 0004+00 2/2 0/0 0/0 .sdata2 @1488 */ @@ -162,44 +152,26 @@ asm void J2DTexMtx::getTextureMtxMaya(J2DTextureSRTInfo const& param_0, f32 (*pa #pragma pop /* 802EA044-802EA098 2E4984 0054+00 0/0 5/5 0/0 .text load__14J2DIndTevStageFUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J2DIndTevStage::load(u8 param_0) { - nofralloc -#include "asm/JSystem/J2DGraph/J2DTevs/load__14J2DIndTevStageFUc.s" +void J2DIndTevStage::load(u8 tevStage) { + GXSetTevIndirect((GXTevStageID)tevStage, getIndStage(), getIndFormat(), getBiasSel(), + getMtxSel(), getWrapS(), getWrapT(), getPrev(), getLod(), getAlphaSel()); } -#pragma pop /* 802EA098-802EA0CC 2E49D8 0034+00 0/0 1/1 0/0 .text load__12J2DIndTexMtxFUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J2DIndTexMtx::load(u8 param_0) { - nofralloc -#include "asm/JSystem/J2DGraph/J2DTevs/load__12J2DIndTexMtxFUc.s" +void J2DIndTexMtx::load(u8 indTexMtx) { + GXSetIndTexMtx((GXIndTexMtxID)(GX_ITM_0 + indTexMtx), mIndTexMtxInfo.mMtx, + mIndTexMtxInfo.mScaleExp); } -#pragma pop /* 802EA0CC-802EA0FC 2E4A0C 0030+00 0/0 1/1 0/0 .text load__19J2DIndTexCoordScaleFUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J2DIndTexCoordScale::load(u8 param_0) { - nofralloc -#include "asm/JSystem/J2DGraph/J2DTevs/load__19J2DIndTexCoordScaleFUc.s" +void J2DIndTexCoordScale::load(u8 indTexStage) { + GXSetIndTexCoordScale((GXIndTexStageID)indTexStage, mInfo.getScaleS(), mInfo.getScaleT()); } -#pragma pop /* 802EA0FC-802EA12C 2E4A3C 0030+00 0/0 1/1 0/0 .text load__14J2DIndTexOrderFUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J2DIndTexOrder::load(u8 param_0) { - nofralloc -#include "asm/JSystem/J2DGraph/J2DTevs/load__14J2DIndTexOrderFUc.s" +void J2DIndTexOrder::load(u8 indTexStage) { + GXSetIndTexOrder((GXIndTexStageID)indTexStage, mInfo.getTexCoordID(), mInfo.getTexMapID()); } -#pragma pop /* 802EA12C-802EA134 2E4A6C 0008+00 0/0 1/0 0/0 .text getTevSwapModeTable__11J2DTevBlockFUl */ bool J2DTevBlock::getTevSwapModeTable(u32 param_0) { @@ -239,24 +211,14 @@ bool J2DTevBlock::getTevKColor(u32 param_0) { } /* 802EA164-802EA170 2E4AA4 000C+00 0/0 1/0 0/0 .text getFontNo__11J2DTevBlockCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J2DTevBlock::getFontNo() const { - nofralloc -#include "asm/JSystem/J2DGraph/J2DTevs/getFontNo__11J2DTevBlockCFv.s" +u32 J2DTevBlock::getFontNo() const { + return 0xFFFF; } -#pragma pop /* 802EA170-802EA17C 2E4AB0 000C+00 0/0 1/0 0/0 .text getTexNo__11J2DTevBlockCFUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J2DTevBlock::getTexNo(u32 param_0) const { - nofralloc -#include "asm/JSystem/J2DGraph/J2DTevs/getTexNo__11J2DTevBlockCFUl.s" +u32 J2DTevBlock::getTexNo(u32 param_0) const { + return 0xFFFF; } -#pragma pop /* 802EA17C-802EA184 2E4ABC 0008+00 0/0 1/0 0/0 .text getTevStageNum__11J2DTevBlockCFv */ bool J2DTevBlock::getTevStageNum() const { diff --git a/libs/JSystem/J3DGraphAnimator/J3DJoint.cpp b/libs/JSystem/J3DGraphAnimator/J3DJoint.cpp index d015ee4c3b..6f1e6b2fd2 100644 --- a/libs/JSystem/J3DGraphAnimator/J3DJoint.cpp +++ b/libs/JSystem/J3DGraphAnimator/J3DJoint.cpp @@ -58,19 +58,19 @@ extern "C" u8 entryNum__13J3DDrawBuffer[4 + 4 /* padding */]; /* 8032EC28-8032ECAC 329568 0084+00 0/0 1/1 0/0 .text * init__25J3DMtxCalcJ3DSysInitBasicFRC3VecRA3_A4_Cf */ -void J3DMtxCalcJ3DSysInitBasic::init(Vec const& param_0, Mtx const& param_1) { - J3DSys::mCurrentS = param_0; +void J3DMtxCalcJ3DSysInitBasic::init(Vec const& scale, Mtx const& mtx) { + J3DSys::mCurrentS = scale; J3DSys::mParentS = (Vec){1.0f, 1.0f, 1.0f}; - JMAMTXApplyScale(param_1, J3DSys::mCurrentMtx, J3DSys::mCurrentS.x, J3DSys::mCurrentS.y, + JMAMTXApplyScale(mtx, J3DSys::mCurrentMtx, J3DSys::mCurrentS.x, J3DSys::mCurrentS.y, J3DSys::mCurrentS.z); } /* 8032ECAC-8032ED30 3295EC 0084+00 0/0 2/2 2/2 .text * init__24J3DMtxCalcJ3DSysInitMayaFRC3VecRA3_A4_Cf */ -void J3DMtxCalcJ3DSysInitMaya::init(Vec const& param_0, Mtx const& param_1) { +void J3DMtxCalcJ3DSysInitMaya::init(Vec const& scale, Mtx const& mtx) { J3DSys::mParentS = (Vec){1.0f, 1.0f, 1.0f}; - J3DSys::mCurrentS = param_0; - JMAMTXApplyScale(param_1, J3DSys::mCurrentMtx, J3DSys::mCurrentS.x, J3DSys::mCurrentS.y, + J3DSys::mCurrentS = scale; + JMAMTXApplyScale(mtx, J3DSys::mCurrentMtx, J3DSys::mCurrentS.x, J3DSys::mCurrentS.y, J3DSys::mCurrentS.z); } @@ -166,19 +166,19 @@ void J3DMtxCalcCalcTransformMaya::calcTransform(J3DTransformInfo const& transInf } if (joint->getScaleCompensate() == 1) { - f32 tmp1 = JMath::fastReciprocal(J3DSys::mParentS.x); - f32 tmp2 = JMath::fastReciprocal(J3DSys::mParentS.y); - f32 tmp3 = JMath::fastReciprocal(J3DSys::mParentS.z); + f32 invX = JMath::fastReciprocal(J3DSys::mParentS.x); + f32 invY = JMath::fastReciprocal(J3DSys::mParentS.y); + f32 invZ = JMath::fastReciprocal(J3DSys::mParentS.z); - anmMtx[0][0] *= tmp1; - anmMtx[0][1] *= tmp1; - anmMtx[0][2] *= tmp1; - anmMtx[1][0] *= tmp2; - anmMtx[1][1] *= tmp2; - anmMtx[1][2] *= tmp2; - anmMtx[2][0] *= tmp3; - anmMtx[2][1] *= tmp3; - anmMtx[2][2] *= tmp3; + anmMtx[0][0] *= invX; + anmMtx[0][1] *= invX; + anmMtx[0][2] *= invX; + anmMtx[1][0] *= invY; + anmMtx[1][1] *= invY; + anmMtx[1][2] *= invY; + anmMtx[2][0] *= invZ; + anmMtx[2][1] *= invZ; + anmMtx[2][2] *= invZ; } PSMTXConcat(J3DSys::mCurrentMtx, anmMtx, J3DSys::mCurrentMtx); @@ -227,7 +227,7 @@ SECTION_SDATA2 static u8 lit_1220[4] = { /* 8032F170-8032F254 329AB0 00E4+00 0/0 1/1 0/0 .text __ct__8J3DJointFv */ #ifdef NONMATCHING J3DJoint::J3DJoint() { - field_0x0 = NULL; + mCallBackUserData = NULL; mCallBack = NULL; field_0x8 = NULL; mChild = NULL; @@ -236,7 +236,7 @@ J3DJoint::J3DJoint() { mMtxType = 1; mScaleCompensate = false; mTransformInfo = j3dDefaultTransformInfo; - field_0x38 = 0.0f; + mBoundingSphereRadius = 0.0f; mMtxCalc = NULL; mMesh = NULL; diff --git a/libs/JSystem/J3DGraphAnimator/J3DJointTree.cpp b/libs/JSystem/J3DGraphAnimator/J3DJointTree.cpp index ad4b80b8af..56ce30c90d 100644 --- a/libs/JSystem/J3DGraphAnimator/J3DJointTree.cpp +++ b/libs/JSystem/J3DGraphAnimator/J3DJointTree.cpp @@ -99,25 +99,12 @@ SECTION_DATA static void* lit_871[19] = { 0xCC), }; -/* 803CECF4-803CED08 02BE14 0010+04 2/2 1/1 0/0 .data __vt__12J3DJointTree */ -SECTION_DATA extern void* __vt__12J3DJointTree[4 + 1 /* padding */] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)calc__12J3DJointTreeFP12J3DMtxBufferRC3VecRA3_A4_Cf, - (void*)__dt__12J3DJointTreeFv, - /* padding */ - NULL, -}; - /* 80325A18-80325A9C 320358 0084+00 0/0 1/1 0/0 .text __ct__12J3DJointTreeFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm J3DJointTree::J3DJointTree() { - nofralloc -#include "asm/JSystem/J3DGraphAnimator/J3DJointTree/__ct__12J3DJointTreeFv.s" -} -#pragma pop +J3DJointTree::J3DJointTree() + : mHierarchy(NULL), mFlags(0), mModelDataType(0), mRootNode(NULL), mBasicMtxCalc(NULL), + mJointNodePointer(NULL), mJointNum(0), mWEvlpMtxNum(0), mWEvlpMixMtxNum(0), mWEvlpMixIndex(0), + mWEvlpMixWeight(0), mInvJointMtx(NULL), mWEvlpImportantMtxIdx(0), field_0x40(0), + mJointName(NULL) {} /* 80325A9C-80325C00 3203DC 0164+00 1/0 2/2 0/0 .text * makeHierarchy__12J3DJointTreeFP8J3DJointPPC17J3DModelHierarchyP16J3DMaterialTableP13J3DShapeTable @@ -152,32 +139,23 @@ asm void J3DJointTree::findImportantMtxIndex() { /* 80325CAC-80325D1C 3205EC 0070+00 1/0 0/0 0/0 .text * calc__12J3DJointTreeFP12J3DMtxBufferRC3VecRA3_A4_Cf */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DJointTree::calc(J3DMtxBuffer* param_0, Vec const& param_1, f32 const (¶m_2)[3][4]) { - nofralloc -#include "asm/JSystem/J3DGraphAnimator/J3DJointTree/calc__12J3DJointTreeFP12J3DMtxBufferRC3VecRA3_A4_Cf.s" +void J3DJointTree::calc(J3DMtxBuffer* pMtxBuffer, Vec const& scale, f32 const (&mtx)[3][4]) { + getBasicMtxCalc()->init(scale, (Mtx*)mtx); + J3DMtxCalc::setMtxBuffer(pMtxBuffer); + J3DJoint* root = getRootNode(); + + if (root == NULL) + return; + + root->setCurrentMtxCalc(getBasicMtxCalc()); + root->recursiveCalc(); } -#pragma pop /* 80325D1C-80325D24 32065C 0008+00 1/1 0/0 0/0 .text setMtxBuffer__10J3DMtxCalcFP12J3DMtxBuffer */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DMtxCalc::setMtxBuffer(J3DMtxBuffer* param_0) { - nofralloc -#include "asm/JSystem/J3DGraphAnimator/J3DJointTree/setMtxBuffer__10J3DMtxCalcFP12J3DMtxBuffer.s" +void J3DMtxCalc::setMtxBuffer(J3DMtxBuffer* mtxBuffer) { + J3DMtxCalc::mMtxBuffer = mtxBuffer; } -#pragma pop /* 80325D24-80325D88 320664 0064+00 1/0 0/0 0/0 .text __dt__12J3DJointTreeFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm J3DJointTree::~J3DJointTree() { - nofralloc -#include "asm/JSystem/J3DGraphAnimator/J3DJointTree/__dt__12J3DJointTreeFv.s" -} -#pragma pop +J3DJointTree::~J3DJointTree() {} diff --git a/libs/JSystem/J3DGraphAnimator/J3DMaterialAnm.cpp b/libs/JSystem/J3DGraphAnimator/J3DMaterialAnm.cpp index 390c21a07c..6dd85ccf63 100644 --- a/libs/JSystem/J3DGraphAnimator/J3DMaterialAnm.cpp +++ b/libs/JSystem/J3DGraphAnimator/J3DMaterialAnm.cpp @@ -73,7 +73,7 @@ void J3DMaterialAnm::calc(J3DMaterial* pMat) const { for (u32 i = 0; i < ARRAY_SIZE(mTexMtxAnm); i++) { if (mTexMtxAnm[i].getAnmFlag()) { J3DTexMtx* texMtx = pMat->getTexGenBlock()->getTexMtx(i); - mTexMtxAnm[i].calc(&texMtx->getTexMtxInfo().field_0x10); + mTexMtxAnm[i].calc(&texMtx->getTexMtxInfo().mSRT); } } } diff --git a/libs/JSystem/J3DGraphAnimator/J3DModel.cpp b/libs/JSystem/J3DGraphAnimator/J3DModel.cpp index a69782e3e2..1b3a84df5d 100644 --- a/libs/JSystem/J3DGraphAnimator/J3DModel.cpp +++ b/libs/JSystem/J3DGraphAnimator/J3DModel.cpp @@ -6,6 +6,7 @@ #include "JSystem/J3DGraphAnimator/J3DModel.h" #include "JSystem/J3DGraphBase/J3DTransform.h" #include "dol2asm.h" +#include "dolphin/os/OSCache.h" #include "dolphin/types.h" // @@ -79,7 +80,6 @@ extern "C" void calc__15J3DVtxColorCalcFP8J3DModel(); extern "C" void offAllFlag__13J3DDeformDataFUl(); extern "C" void deform__13J3DDeformDataFP8J3DModel(); extern "C" void entryIn__8J3DJointFv(); -extern "C" void DCStoreRange(); extern "C" void DCStoreRangeNoSync(); extern "C" void __construct_new_array(); extern "C" void _savegpr_23(); @@ -111,8 +111,8 @@ SECTION_SDATA2 static f32 lit_896[1 + 1 /* padding */] = { void J3DModel::initialize() { mModelData = NULL; mFlags = 0; - field_0x0c = 0; - field_0x10 = 0; + mDiffFlag = 0; + mCalcCallBack = NULL; mUserArea = 0; mBaseScale.x = 1.0f; @@ -128,8 +128,8 @@ void J3DModel::initialize() { mDeformData = NULL; mSkinDeform = NULL; mVtxColorCalc = NULL; - field_0xd4 = 0; - field_0xd8 = 0; + mUnkCalc1 = NULL; + mUnkCalc2 = NULL; } /* ############################################################################################## */ @@ -207,36 +207,25 @@ s32 J3DModel::entryModelData(J3DModelData* p_modelData, u32 param_1, u32 param_2 /* 80327300-803273CC 321C40 00CC+00 1/1 0/0 0/0 .text createShapePacket__8J3DModelFP12J3DModelData */ // probably some wrong member types -#ifdef NONMATCHING s32 J3DModel::createShapePacket(J3DModelData* p_modelData) { if (p_modelData->getShapeNum() != 0) { u16 shapeNum = p_modelData->getShapeNum(); - J3DShapePacket* packet = new J3DShapePacket[shapeNum]; - mShapePacket = &packet; + mShapePacket = new J3DShapePacket[shapeNum]; if (mShapePacket == NULL) { - return 4; + return kJ3DError_Alloc; } for (int i = 0; i < p_modelData->getShapeNum(); i++) { J3DShape* shapeNode = p_modelData->getShapeNodePointer(i); - mShapePacket[i]->setShape(shapeNode); - mShapePacket[i]->setModel(this); + mShapePacket[i].setShape(shapeNode); + mShapePacket[i].setModel(this); } } - return 0; + + return kJ3DError_Success; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s32 J3DModel::createShapePacket(J3DModelData* param_0) { - nofralloc -#include "asm/JSystem/J3DGraphAnimator/J3DModel/createShapePacket__8J3DModelFP12J3DModelData.s" -} -#pragma pop -#endif /* 803273CC-803275FC 321D0C 0230+00 1/1 0/0 0/0 .text createMatPacket__8J3DModelFP12J3DModelDataUl */ @@ -300,14 +289,12 @@ asm void J3DModel::calcDiffTexMtx() { #pragma pop /* 803279A0-80327A2C 3222E0 008C+00 0/0 2/2 0/0 .text diff__8J3DModelFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DModel::diff() { - nofralloc -#include "asm/JSystem/J3DGraphAnimator/J3DModel/diff__8J3DModelFv.s" +void J3DModel::diff() { + for (u16 n = getModelData()->getMaterialNum(), i = 0; i < n; i++) { + j3dSys.setMatPacket(&mMatPacket[i]); + getModelData()->getMaterialNodePointer(i)->diff(mDiffFlag); + } } -#pragma pop /* 80327A2C-80327AA0 32236C 0074+00 0/0 1/1 2/2 .text setDeformData__8J3DModelFP13J3DDeformDataUl */ @@ -329,55 +316,53 @@ s32 J3DModel::setDeformData(J3DDeformData* p_deformData, u32 param_1) { /* 80327AA0-80327BD4 3223E0 0134+00 0/0 0/0 2/2 .text setSkinDeform__8J3DModelFP13J3DSkinDeformUl */ -#ifdef NONMATCHING -s32 J3DModel::setSkinDeform(J3DSkinDeform* p_skinDeform, u32 param_1) { +s32 J3DModel::setSkinDeform(J3DSkinDeform* p_skinDeform, u32 flags) { mSkinDeform = p_skinDeform; + s32 ret = kJ3DError_Success; + if (p_skinDeform == NULL) { offFlag(J3DMdlFlag_SkinPosCpu); offFlag(J3DMdlFlag_SkinNrmCpu); return 5; } else { mSkinDeform->initMtxIndexArray(mModelData); - if (mModelData->checkFlag(0x100)) { + + ret = mModelData->checkFlag(0x100); + if (ret != 0) { mSkinDeform->changeFastSkinDL(mModelData); - param_1 = 0; + flags &= ~2; + flags &= ~4; mSkinDeform->transformVtxPosNrm(mModelData); mSkinDeform->initSkinInfo(mModelData); } - p_skinDeform = NULL; - if ((~param_1 & 2)) { - if (mVertexBuffer.allocTransformedVtxPosArray()) { + ret = 0; + if ((~flags & 2)) { + ret = mVertexBuffer.allocTransformedVtxPosArray(); + if (ret != kJ3DError_Success) { offFlag(J3DMdlFlag_SkinPosCpu); - return 0; + return ret; } onFlag(J3DMdlFlag_SkinPosCpu); } else { offFlag(J3DMdlFlag_SkinPosCpu); } - if ((~param_1 & 4)) { - if (mVertexBuffer.allocTransformedVtxNrmArray()) { - onFlag(J3DMdlFlag_SkinNrmCpu); + if ((~flags & 4)) { + ret = mVertexBuffer.allocTransformedVtxNrmArray(); + if (ret != kJ3DError_Success) { + offFlag(J3DMdlFlag_SkinNrmCpu); + return ret; } - offFlag(J3DMdlFlag_SkinNrmCpu); + onFlag(J3DMdlFlag_SkinNrmCpu); } else { offFlag(J3DMdlFlag_SkinNrmCpu); } } - return 0; + + return ret; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s32 J3DModel::setSkinDeform(J3DSkinDeform* param_0, u32 param_1) { - nofralloc -#include "asm/JSystem/J3DGraphAnimator/J3DModel/setSkinDeform__8J3DModelFP13J3DSkinDeformUl.s" -} -#pragma pop -#endif /* 80327BD4-80327C58 322514 0084+00 1/1 0/0 2/2 .text calcAnmMtx__8J3DModelFv */ void J3DModel::calcAnmMtx() { @@ -412,24 +397,78 @@ extern "C" asm void update__8J3DModelFv() { #pragma pop /* 80327CF0-80327E4C 322630 015C+00 1/0 0/0 0/0 .text calc__8J3DModelFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DModel::calc() { - nofralloc -#include "asm/JSystem/J3DGraphAnimator/J3DModel/calc__8J3DModelFv.s" +void J3DModel::calc() { + j3dSys.setModel(this); + + if (checkFlag(J3DMdlFlag_SkinPosCpu)) { + j3dSys.onFlag(J3DSysFlag_SkinPosCpu); + } else { + j3dSys.offFlag(J3DSysFlag_SkinPosCpu); + } + + if (checkFlag(J3DMdlFlag_SkinNrmCpu)) { + j3dSys.onFlag(J3DSysFlag_SkinNrmCpu); + } else { + j3dSys.offFlag(J3DSysFlag_SkinNrmCpu); + } + + getModelData()->syncJ3DSysFlags(); + mVertexBuffer.frameInit(); + + if (mUnkCalc2 != NULL) { + mUnkCalc2->calc(getModelData()); + } + + if (mDeformData != NULL) { + mDeformData->deform(this); + } + + if (mVtxColorCalc != NULL) { + mVtxColorCalc->calc(this); + } + + if (mUnkCalc1 != NULL) { + mUnkCalc1->calc(this); + } + + calcAnmMtx(); + calcWeightEnvelopeMtx(); + + if (mSkinDeform != NULL) { + mSkinDeform->deform(this); + } + + if (mCalcCallBack != NULL) { + mCalcCallBack(this, 0); + } } -#pragma pop /* 80327E4C-80327F40 32278C 00F4+00 1/0 0/0 0/0 .text entry__8J3DModelFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DModel::entry() { - nofralloc -#include "asm/JSystem/J3DGraphAnimator/J3DModel/entry__8J3DModelFv.s" +void J3DModel::entry() { + j3dSys.setModel(this); + + if (checkFlag(J3DMdlFlag_SkinPosCpu)) { + j3dSys.onFlag(J3DSysFlag_SkinPosCpu); + } else { + j3dSys.offFlag(J3DSysFlag_SkinPosCpu); + } + + if (checkFlag(J3DMdlFlag_SkinNrmCpu)) { + j3dSys.onFlag(J3DSysFlag_SkinNrmCpu); + } else { + j3dSys.offFlag(J3DSysFlag_SkinNrmCpu); + } + + getModelData()->syncJ3DSysFlags(); + j3dSys.setTexture(getModelData()->getTexture()); + + for (u16 i = 0; i < getModelData()->getJointNum(); i++) { + J3DJoint* joint = getModelData()->getJointNodePointer(i); + if (joint->getMesh() != NULL) { + joint->entryIn(); + } + } } -#pragma pop /* 80327F40-80328190 322880 0250+00 1/0 0/0 0/0 .text viewCalc__8J3DModelFv */ #pragma push @@ -447,6 +486,24 @@ void J3DModel::calcNrmMtx() { } /* 803281B4-803282B8 322AF4 0104+00 1/1 0/0 0/0 .text calcBumpMtx__8J3DModelFv */ +#ifdef NONMATCHING +void J3DModel::calcBumpMtx() { + // comparison (might be b/c of bool rather than u8?) + if (!getModelData()->checkBumpFlag()) + return; + + // loop is a bit different + for (u16 n = getModelData()->getMaterialNum(), i = 0; i < n; i++) { + J3DMaterial* material = getModelData()->getMaterialNodePointer(i); + if (!material->getNBTScale()->mbHasScale) + continue; + + material->getShape()->calcNBTScale(*material->getNBTScale()->getScale(), getNrmMtxPtr(), + getBumpMtxPtr(i)); + DCStoreRange(getBumpMtxPtr(i), getModelData()->getDrawMtxNum() * 0x24); + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -455,6 +512,7 @@ asm void J3DModel::calcBumpMtx() { #include "asm/JSystem/J3DGraphAnimator/J3DModel/calcBumpMtx__8J3DModelFv.s" } #pragma pop +#endif /* 803282B8-803282EC 322BF8 0034+00 1/1 0/0 0/0 .text calcBBoardMtx__8J3DModelFv */ void J3DModel::calcBBoardMtx() { @@ -464,6 +522,20 @@ void J3DModel::calcBBoardMtx() { } /* 803282EC-80328350 322C2C 0064+00 2/2 0/0 0/0 .text prepareShapePackets__8J3DModelFv */ +#ifdef NONMATCHING +void J3DModel::prepareShapePackets() { + for (u16 n = getModelData()->getShapeNum(), i = 0; i < n; i++) { + // two swapped instructions right around here when calling getShapePacket + J3DShapePacket* pkt = getShapePacket(i); + pkt->setMtxBuffer(mMtxBuffer); + if (getMtxCalcMode() == 2) { + pkt->setBaseMtxPtr(&mInternalView); + } else { + pkt->setBaseMtxPtr(j3dSys.getViewMtx()); + } + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -472,6 +544,7 @@ asm void J3DModel::prepareShapePackets() { #include "asm/JSystem/J3DGraphAnimator/J3DModel/prepareShapePackets__8J3DModelFv.s" } #pragma pop +#endif /* 80328350-803283B4 322C90 0064+00 1/0 0/0 0/0 .text __dt__8J3DModelFv */ J3DModel::~J3DModel() {} diff --git a/libs/JSystem/J3DGraphAnimator/J3DModelData.cpp b/libs/JSystem/J3DGraphAnimator/J3DModelData.cpp index 5f5926f4b7..fff6473d6d 100644 --- a/libs/JSystem/J3DGraphAnimator/J3DModelData.cpp +++ b/libs/JSystem/J3DGraphAnimator/J3DModelData.cpp @@ -49,10 +49,10 @@ extern "C" extern void* __vt__12J3DJointTree[4 + 1 /* padding */]; /* 80325D88-80325DA0 3206C8 0018+00 1/1 2/2 0/0 .text clear__12J3DModelDataFv */ void J3DModelData::clear() { - field_0x4 = 0; + mpRawData = 0; mFlags = 0; - field_0xc = 0; - field_0xe = 0; + mbHasBumpArray = 0; + mbHasBillboard = 0; } /* ############################################################################################## */ @@ -182,9 +182,9 @@ void J3DModelData::syncJ3DSysPointers() const { */ void J3DModelData::syncJ3DSysFlags() const { if (checkFlag(0x20)) { - j3dSys.onFlag(0x40000000); + j3dSys.onFlag(J3DSysFlag_PostTexMtx); } else { - j3dSys.offFlag(0x40000000); + j3dSys.offFlag(J3DSysFlag_PostTexMtx); } } diff --git a/libs/JSystem/J3DGraphBase/J3DDrawBuffer.cpp b/libs/JSystem/J3DGraphBase/J3DDrawBuffer.cpp index 1d6bba0f71..29fdeccd5c 100644 --- a/libs/JSystem/J3DGraphBase/J3DDrawBuffer.cpp +++ b/libs/JSystem/J3DGraphBase/J3DDrawBuffer.cpp @@ -179,7 +179,7 @@ asm void J3DDrawBuffer::entryInvalidSort(J3DMatPacket* param_0) { bool J3DDrawBuffer::entryNonSort(J3DMatPacket* pMat) { pMat->clear(); - pMat->mpFirstShapePacket->clear(); + pMat->mpShapePacket->clear(); // inlined copy of entryImm, add to start of buf pMat->mpNextSibling = mpBuf[0]; diff --git a/libs/JSystem/J3DGraphBase/J3DMatBlock.cpp b/libs/JSystem/J3DGraphBase/J3DMatBlock.cpp index 9d223cacf6..7e769b265f 100644 --- a/libs/JSystem/J3DGraphBase/J3DMatBlock.cpp +++ b/libs/JSystem/J3DGraphBase/J3DMatBlock.cpp @@ -2101,14 +2101,9 @@ void J3DTevBlock::diffTexNo() { } /* 8032194C-80321958 31C28C 000C+00 1/0 0/0 0/0 .text getType__14J3DPEBlockFullFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DPEBlockFull::getType() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DMatBlock/getType__14J3DPEBlockFullFv.s" +u32 J3DPEBlockFull::getType() { + return 'PEFL'; } -#pragma pop /* 80321958-8032197C 31C298 0024+00 1/0 0/0 0/0 .text setFog__14J3DPEBlockFullFP6J3DFog */ @@ -2358,14 +2353,9 @@ asm void J3DPEBlockFogOff::diff(u32 param_0) { #pragma pop /* 80321B00-80321B0C 31C440 000C+00 1/0 0/0 0/0 .text getType__16J3DPEBlockFogOffFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DPEBlockFogOff::getType() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DMatBlock/getType__16J3DPEBlockFogOffFv.s" +u32 J3DPEBlockFogOff::getType() { + return 'PEFG'; } -#pragma pop /* 80321B0C-80321B28 31C44C 001C+00 1/0 0/0 0/0 .text * setAlphaComp__16J3DPEBlockFogOffFRC12J3DAlphaComp */ @@ -2570,14 +2560,9 @@ asm void J3DTevBlock16::indexToPtr() { #pragma pop /* 80321C44-80321C50 31C584 000C+00 1/0 0/0 0/0 .text getType__13J3DTevBlock16Fv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DTevBlock16::getType() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DMatBlock/getType__13J3DTevBlock16Fv.s" +u32 J3DTevBlock16::getType() { + return 'TV16'; } -#pragma pop /* 80321C50-80321C60 31C590 0010+00 1/0 0/0 0/0 .text setTexNo__13J3DTevBlock16FUlUs */ #pragma push @@ -3628,14 +3613,9 @@ asm void J3DTevBlock4::indexToPtr() { #pragma pop /* 80322010-8032201C 31C950 000C+00 1/0 0/0 0/0 .text getType__12J3DTevBlock4Fv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DTevBlock4::getType() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DMatBlock/getType__12J3DTevBlock4Fv.s" +u32 J3DTevBlock4::getType() { + return 'TVB4'; } -#pragma pop /* 8032201C-8032202C 31C95C 0010+00 1/0 0/0 0/0 .text setTexNo__12J3DTevBlock4FUlUs */ #pragma push @@ -4026,14 +4006,9 @@ asm void J3DTevBlock2::indexToPtr() { #pragma pop /* 803223D4-803223E0 31CD14 000C+00 1/0 0/0 0/0 .text getType__12J3DTevBlock2Fv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DTevBlock2::getType() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DMatBlock/getType__12J3DTevBlock2Fv.s" +u32 J3DTevBlock2::getType() { + return 'TVB2'; } -#pragma pop /* 803223E0-803223F0 31CD20 0010+00 1/0 0/0 0/0 .text setTexNo__12J3DTevBlock2FUlUs */ #pragma push @@ -4424,14 +4399,9 @@ asm void J3DTevBlock1::indexToPtr() { #pragma pop /* 80322798-803227A4 31D0D8 000C+00 1/0 0/0 0/0 .text getType__12J3DTevBlock1Fv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DTevBlock1::getType() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DMatBlock/getType__12J3DTevBlock1Fv.s" +u32 J3DTevBlock1::getType() { + return 'TVB1'; } -#pragma pop /* 803227A4-803227B4 31D0E4 0010+00 1/0 0/0 0/0 .text setTexNo__12J3DTevBlock1FUlUs */ #pragma push @@ -4656,14 +4626,9 @@ asm void J3DTevBlockPatched::indexToPtr() { #pragma pop /* 80322998-803229A4 31D2D8 000C+00 1/0 0/0 0/0 .text getType__18J3DTevBlockPatchedFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DTevBlockPatched::getType() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DMatBlock/getType__18J3DTevBlockPatchedFv.s" +u32 J3DTevBlockPatched::getType() { + return 'TVPT'; } -#pragma pop /* 803229A4-803229AC -00001 0008+00 0/0 0/0 0/0 .text setTevStageNum__18J3DTevBlockPatchedFUc */ void J3DTevBlockPatched::setTevStageNum(u8 param_0) { @@ -4950,14 +4915,9 @@ asm J3DTevBlockPatched::~J3DTevBlockPatched() { #pragma pop /* 80322C6C-80322C78 31D5AC 000C+00 1/0 0/0 0/0 .text getType__19J3DTexGenBlockBasicFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DTexGenBlockBasic::getType() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DMatBlock/getType__19J3DTexGenBlockBasicFv.s" +u32 J3DTexGenBlockBasic::getType() { + return 'TGBC'; } -#pragma pop /* 80322C78-80322C9C 31D5B8 0024+00 1/0 0/0 0/0 .text * setNBTScale__19J3DTexGenBlockBasicF11J3DNBTScale */ @@ -5087,14 +5047,9 @@ void J3DTexGenBlockPatched::setTexMtxOffset(u32 param_0) { } /* 80322DA8-80322DB4 31D6E8 000C+00 1/0 0/0 0/0 .text getType__15J3DTexGenBlock4Fv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DTexGenBlock4::getType() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DMatBlock/getType__15J3DTexGenBlock4Fv.s" +u32 J3DTexGenBlock4::getType() { + return 'TGB4'; } -#pragma pop /* 80322DB4-80322DD8 31D6F4 0024+00 1/0 0/0 0/0 .text setNBTScale__15J3DTexGenBlock4F11J3DNBTScale */ @@ -5145,25 +5100,15 @@ void J3DTexGenBlockPatched::load() { /* 80322E74-80322E80 31D7B4 000C+00 1/0 0/0 0/0 .text getType__21J3DTexGenBlockPatchedFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DTexGenBlockPatched::getType() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DMatBlock/getType__21J3DTexGenBlockPatchedFv.s" +u32 J3DTexGenBlockPatched::getType() { + return 'TGPT'; } -#pragma pop /* 80322E80-80322E8C 31D7C0 000C+00 1/0 0/0 0/0 .text getType__20J3DColorBlockLightOnFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DColorBlockLightOn::getType() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DMatBlock/getType__20J3DColorBlockLightOnFv.s" +u32 J3DColorBlockLightOn::getType() { + return 'CLON'; } -#pragma pop /* 80322E8C-80322EB8 31D7CC 002C+00 1/0 0/0 0/0 .text * setMatColor__20J3DColorBlockLightOnFUl10J3DGXColor */ @@ -5382,14 +5327,9 @@ asm J3DColorBlockLightOn::~J3DColorBlockLightOn() { /* 80323074-80323080 31D9B4 000C+00 1/0 0/0 0/0 .text getType__22J3DColorBlockAmbientOnFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DColorBlockAmbientOn::getType() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DMatBlock/getType__22J3DColorBlockAmbientOnFv.s" +u32 J3DColorBlockAmbientOn::getType() { + return 'CLAB'; } -#pragma pop /* 80323080-803230AC 31D9C0 002C+00 1/0 0/0 0/0 .text * setAmbColor__22J3DColorBlockAmbientOnFUl10J3DGXColor */ @@ -5628,14 +5568,9 @@ void J3DColorBlockLightOff::setColorChanOffset(u32 param_0) { } /* 80323258-80323264 31DB98 000C+00 1/0 0/0 0/0 .text getType__13J3DPEBlockXluFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DPEBlockXlu::getType() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DMatBlock/getType__13J3DPEBlockXluFv.s" +u32 J3DPEBlockXlu::getType() { + return 'PEXL'; } -#pragma pop /* 80323264-803232C0 31DBA4 005C+00 1/0 0/0 0/0 .text __dt__13J3DPEBlockXluFv */ #pragma push @@ -5648,14 +5583,9 @@ asm J3DPEBlockXlu::~J3DPEBlockXlu() { #pragma pop /* 803232C0-803232CC 31DC00 000C+00 1/0 0/0 0/0 .text getType__17J3DPEBlockTexEdgeFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DPEBlockTexEdge::getType() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DMatBlock/getType__17J3DPEBlockTexEdgeFv.s" +u32 J3DPEBlockTexEdge::getType() { + return 'PEED'; } -#pragma pop /* 803232CC-80323328 31DC0C 005C+00 1/0 0/0 0/0 .text __dt__17J3DPEBlockTexEdgeFv */ #pragma push @@ -5668,14 +5598,9 @@ asm J3DPEBlockTexEdge::~J3DPEBlockTexEdge() { #pragma pop /* 80323328-80323334 31DC68 000C+00 1/0 0/0 0/0 .text getType__13J3DPEBlockOpaFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DPEBlockOpa::getType() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DMatBlock/getType__13J3DPEBlockOpaFv.s" +u32 J3DPEBlockOpa::getType() { + return 'PEOP'; } -#pragma pop /* 80323334-80323390 31DC74 005C+00 1/0 0/0 0/0 .text __dt__13J3DPEBlockOpaFv */ #pragma push @@ -5688,14 +5613,9 @@ asm J3DPEBlockOpa::~J3DPEBlockOpa() { #pragma pop /* 80323390-8032339C 31DCD0 000C+00 1/0 0/0 0/0 .text getType__15J3DIndBlockFullFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DIndBlockFull::getType() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DMatBlock/getType__15J3DIndBlockFullFv.s" +u32 J3DIndBlockFull::getType() { + return 'IBLF'; } -#pragma pop /* 8032339C-803233A4 -00001 0008+00 0/0 0/0 0/0 .text setIndTexStageNum__15J3DIndBlockFullFUc */ void J3DIndBlockFull::setIndTexStageNum(u8 param_0) { @@ -5865,14 +5785,9 @@ bool J3DTevBlock::getTexNoOffset() const { /* 80323560-8032356C 31DEA0 000C+00 1/0 0/0 0/0 .text getType__21J3DColorBlockLightOffFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DColorBlockLightOff::getType() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DMatBlock/getType__21J3DColorBlockLightOffFv.s" +u32 J3DColorBlockLightOff::getType() { + return 'CLOF'; } -#pragma pop /* 8032356C-80323590 31DEAC 0024+00 0/0 1/0 0/0 .text __sinit_J3DMatBlock_cpp */ #pragma push diff --git a/libs/JSystem/J3DGraphBase/J3DMaterial.cpp b/libs/JSystem/J3DGraphBase/J3DMaterial.cpp index e8e07615cd..c7fb85b76b 100644 --- a/libs/JSystem/J3DGraphBase/J3DMaterial.cpp +++ b/libs/JSystem/J3DGraphBase/J3DMaterial.cpp @@ -71,7 +71,7 @@ extern "C" bool countDLSize__10J3DPEBlockFv(); extern "C" void load__13J3DColorBlockFv(); extern "C" s32 getCullMode__13J3DColorBlockCFv(); extern "C" void load__11J3DTevBlockFv(); -extern "C" bool getNBTScale__14J3DTexGenBlockFv(); +extern "C" J3DNBTScale* getNBTScale__14J3DTexGenBlockFv(); extern "C" void patch__13J3DColorBlockFv(); extern "C" void diff__13J3DColorBlockFUl(); extern "C" void diff__10J3DPEBlockFUl(); @@ -762,14 +762,11 @@ asm void J3DPatchedMaterial::load() { #pragma pop /* 80316FFC-8031703C 31193C 0040+00 1/0 0/0 0/0 .text loadSharedDL__18J3DPatchedMaterialFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DPatchedMaterial::loadSharedDL() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DMaterial/loadSharedDL__18J3DPatchedMaterialFv.s" +void J3DPatchedMaterial::loadSharedDL() { + j3dSys.setMaterialMode(mMaterialMode); + if (!j3dSys.checkFlag(0x02)) + mSharedDLObj->callDL(); } -#pragma pop /* 8031703C-80317040 31197C 0004+00 1/0 0/0 0/0 .text reset__18J3DPatchedMaterialFv */ void J3DPatchedMaterial::reset() { @@ -804,6 +801,12 @@ void J3DLockedMaterial::makeSharedDisplayList() { } /* 8031706C-80317088 3119AC 001C+00 1/0 0/0 0/0 .text load__17J3DLockedMaterialFv */ +#ifdef NONMATCHING +void J3DLockedMaterial::load() { + j3dSys.setMaterialMode(mMaterialMode); + // some extra dead code after? wtf? +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -812,17 +815,15 @@ asm void J3DLockedMaterial::load() { #include "asm/JSystem/J3DGraphBase/J3DMaterial/load__17J3DLockedMaterialFv.s" } #pragma pop +#endif /* 80317088-803170C8 3119C8 0040+00 1/0 0/0 0/0 .text loadSharedDL__17J3DLockedMaterialFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DLockedMaterial::loadSharedDL() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DMaterial/loadSharedDL__17J3DLockedMaterialFv.s" +void J3DLockedMaterial::loadSharedDL() { + j3dSys.setMaterialMode(mMaterialMode); + if (!j3dSys.checkFlag(0x02)) + mSharedDLObj->callDL(); } -#pragma pop /* 803170C8-803170CC 311A08 0004+00 1/0 0/0 0/0 .text patch__17J3DLockedMaterialFv */ void J3DLockedMaterial::patch() { @@ -960,8 +961,8 @@ void J3DTevBlock::load() { } /* 80317334-8031733C 311C74 0008+00 1/0 2/0 0/0 .text getNBTScale__14J3DTexGenBlockFv */ -bool J3DTexGenBlock::getNBTScale() { - return false; +J3DNBTScale* J3DTexGenBlock::getNBTScale() { + return NULL; } /* 8031733C-80317340 311C7C 0004+00 1/0 1/0 0/0 .text patch__13J3DColorBlockFv */ @@ -1091,14 +1092,9 @@ extern "C" asm void reset__15J3DIndBlockNullFP11J3DIndBlock() { } /* 803173A4-803173B0 311CE4 000C+00 1/0 0/0 0/0 .text getType__15J3DIndBlockNullFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DIndBlockNull::getType() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DMaterial/getType__15J3DIndBlockNullFv.s" +u32 J3DIndBlockNull::getType() { + return 'IBLN'; } -#pragma pop /* 803173B0-8031740C 311CF0 005C+00 1/0 0/0 0/0 .text __dt__15J3DIndBlockNullFv */ #pragma push diff --git a/libs/JSystem/J3DGraphBase/J3DPacket.cpp b/libs/JSystem/J3DGraphBase/J3DPacket.cpp index 3f1d6b2803..ba67438d03 100644 --- a/libs/JSystem/J3DGraphBase/J3DPacket.cpp +++ b/libs/JSystem/J3DGraphBase/J3DPacket.cpp @@ -4,6 +4,12 @@ // #include "JSystem/J3DGraphBase/J3DPacket.h" +#include "JSystem/J3DGraphAnimator/J3DModel.h" +#include "JSystem/J3DGraphBase/J3DMaterial.h" +#include "JSystem/J3DGraphBase/J3DShape.h" +#include "JSystem/J3DGraphBase/J3DShapeMtx.h" +#include "JSystem/J3DGraphBase/J3DSys.h" +#include "JSystem/J3DGraphBase/J3DVertex.h" #include "JSystem/JKernel/JKRHeap.h" #include "MSL_C.PPCEABI.bare.H/MSL_Common/src/string.h" #include "dol2asm.h" @@ -16,29 +22,10 @@ // Types: // -struct J3DVertexBuffer { - /* 8031106C */ void setArray() const; -}; - -struct J3DShape { - /* 80315300 */ void loadPreDrawSetting() const; - - static u8 sOldVcdVatCmd[4]; -}; - struct J3DDrawBuffer { static u8 sortFuncTable[72]; }; -struct J3DModelData { - /* 803260F8 */ void syncJ3DSysFlags() const; -}; - -struct J3DDifferedTexMtx { - static u8 sTexGenBlock[4]; - static u8 sTexMtxObj[4]; -}; - // // Forward References: // @@ -322,8 +309,8 @@ void J3DDrawPacket::draw() { /* 80312948-803129A4 30D288 005C+00 0/0 1/1 0/0 .text __ct__12J3DMatPacketFv */ J3DMatPacket::J3DMatPacket() { + mpInitShapePacket = NULL; mpShapePacket = NULL; - mpFirstShapePacket = NULL; mpMaterial = NULL; mSortFlags = -1; mpTexture = NULL; @@ -334,20 +321,20 @@ J3DMatPacket::J3DMatPacket() { J3DMatPacket::~J3DMatPacket() {} void J3DMatPacket::addShapePacket(J3DShapePacket* pShape) { - if (mpFirstShapePacket == NULL) { - mpFirstShapePacket = pShape; + if (mpShapePacket == NULL) { + mpShapePacket = pShape; } else { - pShape->mpNextSibling = mpFirstShapePacket; - mpFirstShapePacket = pShape; + pShape->mpNextSibling = mpShapePacket; + mpShapePacket = pShape; } } void J3DMatPacket::beginDiff() { - mpShapePacket->mpDisplayListObj->beginDL(); + mpInitShapePacket->mpDisplayListObj->beginDL(); } void J3DMatPacket::endDiff() { - mpShapePacket->mpDisplayListObj->endDL(); + mpInitShapePacket->mpDisplayListObj->endDL(); } /* 80312A74-80312A9C 30D3B4 0028+00 0/0 1/1 0/0 .text isSame__12J3DMatPacketCFP12J3DMatPacket */ @@ -361,20 +348,31 @@ bool J3DMatPacket::isSame(J3DMatPacket* pOther) const { } /* 80312A9C-80312B20 30D3DC 0084+00 1/0 0/0 0/0 .text draw__12J3DMatPacketFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DMatPacket::draw() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DPacket/draw__12J3DMatPacketFv.s" +void J3DMatPacket::draw() { + mpMaterial->load(); + callDL(); + J3DShapePacket* packet = getShapePacket(); + + J3DShape* shape = packet->getShape(); + shape->loadPreDrawSetting(); + + while (packet != NULL) { + if (packet->getDisplayListObj() != NULL) { + packet->getDisplayListObj()->callDL(); + } + + packet->drawFast(); + packet = (J3DShapePacket*)packet->getNextPacket(); + } + + shape->resetVcdVatCache(); } -#pragma pop /* 80312B20-80312B74 30D460 0054+00 0/0 1/1 0/0 .text __ct__14J3DShapePacketFv */ J3DShapePacket::J3DShapePacket() { mpShape = NULL; mpMtxBuffer = NULL; - mpViewMtx = NULL; + mpBaseMtxPtr = NULL; mDiffFlag = 0; mpModel = NULL; } @@ -409,6 +407,40 @@ J3DError J3DShapePacket::newDifferedDisplayList(u32 flag) { } /* 80312E08-80312F24 30D748 011C+00 2/2 0/0 0/0 .text prepareDraw__14J3DShapePacketCFv */ +#ifdef NONMATCHING +void J3DShapePacket::prepareDraw() const { + mpModel->getVertexBuffer()->setArray(); + j3dSys.setModel(mpModel); + j3dSys.setShapePacket((J3DShapePacket*)this); + + // the way that the LOD flag is set seems to be wrong... + J3DShapeMtx::setLODFlag(mpModel->checkFlag(0x10)); + + if (mpModel->checkFlag(J3DMdlFlag_SkinPosCpu)) { + mpShape->onFlag(J3DShpFlag_SkinPosCpu); + } else { + mpShape->offFlag(J3DShpFlag_SkinPosCpu); + } + + if (mpModel->checkFlag(J3DMdlFlag_SkinNrmCpu) && !mpShape->checkFlag(J3DShpFlag_EnableLod)) { + mpShape->onFlag(J3DShpFlag_SkinNrmCpu); + } else { + mpShape->offFlag(J3DShpFlag_SkinNrmCpu); + } + + mpShape->setCurrentViewNoPtr(mpMtxBuffer->getCurrentViewNoPtr()); + mpShape->setScaleFlagArray(mpMtxBuffer->getScaleFlagArray()); + mpShape->setDrawMtx(mpMtxBuffer->getDrawMtxPtrPtr()); + + if (!mpShape->getNBTFlag()) { + mpShape->setNrmMtx(mpMtxBuffer->getNrmMtxPtrPtr()); + } else { + mpShape->setNrmMtx(mpMtxBuffer->getBumpMtxPtrPtr() + mpShape->getBumpMtxOffset()); + } + + mpModel->getModelData()->syncJ3DSysFlags(); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -417,26 +449,40 @@ asm void J3DShapePacket::prepareDraw() const { #include "asm/JSystem/J3DGraphBase/J3DPacket/prepareDraw__14J3DShapePacketCFv.s" } #pragma pop +#endif /* 80312F24-80312FBC 30D864 0098+00 1/0 0/0 0/0 .text draw__14J3DShapePacketFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapePacket::draw() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DPacket/draw__14J3DShapePacketFv.s" +void J3DShapePacket::draw() { + if (!checkFlag(J3DShpFlag_Hidden) && mpShape != NULL) { + prepareDraw(); + if (mpTexMtx != NULL) { + J3DMaterial* material = mpShape->getMaterial(); + J3DDifferedTexMtx::sTexGenBlock = material->getTexGenBlock(); + J3DDifferedTexMtx::sTexMtxObj = getTexMtxObj(); + } else { + J3DDifferedTexMtx::sTexGenBlock = NULL; + } + if (mpDisplayListObj != NULL) { + mpDisplayListObj->callDL(); + } + mpShape->draw(); + } } -#pragma pop /* 80312FBC-80313044 30D8FC 0088+00 1/1 2/2 1/1 .text drawFast__14J3DShapePacketFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapePacket::drawFast() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DPacket/drawFast__14J3DShapePacketFv.s" +void J3DShapePacket::drawFast() { + if (!checkFlag(J3DShpFlag_Hidden) && mpShape != NULL) { + prepareDraw(); + if (mpTexMtx != NULL) { + J3DMaterial* material = mpShape->getMaterial(); + J3DDifferedTexMtx::sTexGenBlock = material->getTexGenBlock(); + J3DDifferedTexMtx::sTexMtxObj = getTexMtxObj(); + } else { + J3DDifferedTexMtx::sTexGenBlock = NULL; + } + mpShape->drawFast(); + } } -#pragma pop /* 80313044-80313048 30D984 0004+00 1/0 0/0 0/0 .text draw__9J3DPacketFv */ void J3DPacket::draw() { diff --git a/libs/JSystem/J3DGraphBase/J3DShape.cpp b/libs/JSystem/J3DGraphBase/J3DShape.cpp index 63513e4095..8af7bd8334 100644 --- a/libs/JSystem/J3DGraphBase/J3DShape.cpp +++ b/libs/JSystem/J3DGraphBase/J3DShape.cpp @@ -4,6 +4,7 @@ // #include "JSystem/J3DGraphBase/J3DShape.h" +#include "JSystem/J3DGraphBase/J3DSys.h" #include "dol2asm.h" #include "dolphin/types.h" @@ -52,7 +53,6 @@ extern "C" void OSDisableInterrupts(); extern "C" void OSRestoreInterrupts(); extern "C" void OSDisableScheduler(); extern "C" void OSEnableScheduler(); -extern "C" void GXSetArray(); extern "C" void GDInitGDLObj(); extern "C" void GDFlushCurrToMem(); extern "C" void GDPadCurr32(); @@ -65,12 +65,11 @@ extern "C" void _savegpr_29(); extern "C" void _restgpr_27(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); -extern "C" extern u8 j3dSys[284]; extern "C" extern u8 j3dDefaultViewNo[4 + 4 /* padding */]; -extern "C" u8 sCurrentPipeline__11J3DShapeMtx[4]; -extern "C" u8 sCurrentScaleFlag__11J3DShapeMtx[4]; +extern "C" u32 sCurrentPipeline__11J3DShapeMtx; +extern "C" u32 sCurrentScaleFlag__11J3DShapeMtx; extern "C" extern u8 struct_804515B0[4]; -extern "C" u8 sTexMtxLoadType__11J3DShapeMtx[4]; +extern "C" u32 sTexMtxLoadType__11J3DShapeMtx; extern "C" extern u8 __GDCurrentDL[4]; // @@ -164,14 +163,13 @@ static asm void J3DLoadArrayBasePtr(_GXAttr param_0, void* param_1) { #pragma pop /* 80314EEC-80314F5C 30F82C 0070+00 3/3 0/0 0/0 .text loadVtxArray__8J3DShapeCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShape::loadVtxArray() const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShape/loadVtxArray__8J3DShapeCFv.s" +void J3DShape::loadVtxArray() const { + J3DLoadArrayBasePtr(GX_VA_POS, j3dSys.getVtxPos()); + if (!mHasNBT) { + J3DLoadArrayBasePtr(GX_VA_NRM, j3dSys.getVtxNrm()); + } + J3DLoadArrayBasePtr(GX_VA_CLR0, j3dSys.getVtxCol()); } -#pragma pop /* 80314F5C-80314F98 30F89C 003C+00 0/0 1/1 0/0 .text isSameVcdVatCmd__8J3DShapeFP8J3DShape */ #pragma push @@ -229,14 +227,18 @@ asm void J3DShape::loadPreDrawSetting() const { static u8 data_804515D4[4]; /* 80315398-8031544C 30FCD8 00B4+00 1/1 0/0 0/0 .text setArrayAndBindPipeline__8J3DShapeCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShape::setArrayAndBindPipeline() const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShape/setArrayAndBindPipeline__8J3DShapeCFv.s" +void J3DShape::setArrayAndBindPipeline() const { + J3DShapeMtx::setCurrentPipeline(getPipeline()); + loadVtxArray(); + j3dSys.setModelDrawMtx(mDrawMtx[*mCurrentViewNo]); + j3dSys.setModelNrmMtx(mNrmMtx[*mCurrentViewNo]); + J3DShapeMtx::sCurrentScaleFlag = mScaleFlagArray; + // The below struct_804515B0 is actually a continuation of sCurrentScaleFlag, I believe? + // Also, there seems to be an extra entry in the array that's only there in DEBUG builds. + struct_804515B0[0] = mHasNBT; + data_804515D4[0] = mHasPNMTXIdx; + J3DShapeMtx::sTexMtxLoadType = getTexMtxLoadType(); } -#pragma pop /* 8031544C-803155E0 30FD8C 0194+00 1/0 0/0 0/0 .text drawFast__8J3DShapeCFv */ #pragma push @@ -259,14 +261,17 @@ asm void J3DShape::draw() const { #pragma pop /* 80315628-803156AC 30FF68 0084+00 1/0 0/0 0/0 .text simpleDraw__8J3DShapeCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShape::simpleDraw() const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShape/simpleDraw__8J3DShapeCFv.s" +void J3DShape::simpleDraw() const { + resetVcdVatCache(); + loadPreDrawSetting(); + J3DShapeMtx::setCurrentPipeline(getPipeline()); + loadVtxArray(); + for (u16 n = mMtxGroupNum, i = 0; i < n; i++) { + if (mShapeDraw[i] != NULL) { + mShapeDraw[i]->draw(); + } + } } -#pragma pop /* 803156AC-803157A0 30FFEC 00F4+00 1/0 0/0 0/0 .text simpleDrawCache__8J3DShapeCFv */ #pragma push @@ -277,11 +282,3 @@ asm void J3DShape::simpleDrawCache() const { #include "asm/JSystem/J3DGraphBase/J3DShape/simpleDrawCache__8J3DShapeCFv.s" } #pragma pop - -/* ############################################################################################## */ -/* 803CDC78-803CDC90 02AD98 0018+00 0/0 1/1 0/0 .data __vt__8J3DShape */ -SECTION_DATA extern void* __vt__8J3DShape[6] = { - (void*)NULL /* RTTI */, (void*)NULL, - (void*)draw__8J3DShapeCFv, (void*)drawFast__8J3DShapeCFv, - (void*)simpleDraw__8J3DShapeCFv, (void*)simpleDrawCache__8J3DShapeCFv, -}; diff --git a/libs/JSystem/J3DGraphBase/J3DShapeDraw.cpp b/libs/JSystem/J3DGraphBase/J3DShapeDraw.cpp index 564f9c6e2f..da1f624a6c 100644 --- a/libs/JSystem/J3DGraphBase/J3DShapeDraw.cpp +++ b/libs/JSystem/J3DGraphBase/J3DShapeDraw.cpp @@ -5,6 +5,7 @@ #include "JSystem/J3DGraphBase/J3DShapeDraw.h" #include "dol2asm.h" +#include "dolphin/gx/gx.h" #include "dolphin/types.h" // @@ -25,7 +26,6 @@ SECTION_INIT void memcpy(); extern "C" void* __nwa__FUli(); extern "C" void __dl__FPv(); extern "C" void DCStoreRange(); -extern "C" void GXCallDisplayList(); extern "C" void _savegpr_18(); extern "C" void _restgpr_18(); @@ -53,42 +53,16 @@ asm void J3DShapeDraw::addTexMtxIndexInDL(u32 param_0, u32 param_1, u32 param_2) } #pragma pop -/* ############################################################################################## */ -/* 803CDC68-803CDC78 02AD88 000C+04 2/2 0/0 0/0 .data __vt__12J3DShapeDraw */ -SECTION_DATA extern void* __vt__12J3DShapeDraw[3 + 1 /* padding */] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__12J3DShapeDrawFv, - /* padding */ - NULL, -}; - /* 80314ABC-80314AD4 30F3FC 0018+00 0/0 1/1 0/0 .text __ct__12J3DShapeDrawFPCUcUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm J3DShapeDraw::J3DShapeDraw(u8 const* param_0, u32 param_1) { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeDraw/__ct__12J3DShapeDrawFPCUcUl.s" +J3DShapeDraw::J3DShapeDraw(u8 const* displayList, u32 displayListSize) { + mDisplayList = (void*)displayList; + mDisplayListSize = displayListSize; } -#pragma pop /* 80314AD4-80314B00 30F414 002C+00 0/0 3/3 0/0 .text draw__12J3DShapeDrawCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapeDraw::draw() const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeDraw/draw__12J3DShapeDrawCFv.s" +void J3DShapeDraw::draw() const { + GXCallDisplayList(mDisplayList, mDisplayListSize); } -#pragma pop /* 80314B00-80314B48 30F440 0048+00 1/0 0/0 0/0 .text __dt__12J3DShapeDrawFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm J3DShapeDraw::~J3DShapeDraw() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeDraw/__dt__12J3DShapeDrawFv.s" -} -#pragma pop +J3DShapeDraw::~J3DShapeDraw() {} diff --git a/libs/JSystem/J3DGraphBase/J3DShapeMtx.cpp b/libs/JSystem/J3DGraphBase/J3DShapeMtx.cpp index 83ff9e98b1..1615479a07 100644 --- a/libs/JSystem/J3DGraphBase/J3DShapeMtx.cpp +++ b/libs/JSystem/J3DGraphBase/J3DShapeMtx.cpp @@ -18,13 +18,6 @@ struct J3DSys { /* 8030FEE4 */ void loadNrmMtxIndx(int, u16) const; }; -struct J3DDifferedTexMtx { - /* 8031322C */ void loadExecute(f32 const (*)[4]); - - static u8 sTexGenBlock[4]; - static u8 sTexMtxObj[4]; -}; - // // Forward References: // @@ -125,18 +118,22 @@ extern "C" extern u8 j3dSys[284]; /* ############################################################################################## */ /* 80434C80-80434C98 0619A0 0014+04 2/2 0/0 0/0 .bss sMtxLoadCache__11J3DShapeMtx */ -u8 J3DShapeMtx::sMtxLoadCache[20 + 4 /* padding */]; +u16 J3DShapeMtx::sMtxLoadCache[10 + 2 /* padding */]; /* 803130A8-803130E4 30D9E8 003C+00 0/0 1/1 0/0 .text resetMtxLoadCache__11J3DShapeMtxFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapeMtx::resetMtxLoadCache() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/resetMtxLoadCache__11J3DShapeMtxFv.s" +void J3DShapeMtx::resetMtxLoadCache() { + sMtxLoadCache[9] = 0xFFFF; + sMtxLoadCache[8] = 0xFFFF; + sMtxLoadCache[7] = 0xFFFF; + sMtxLoadCache[6] = 0xFFFF; + sMtxLoadCache[5] = 0xFFFF; + sMtxLoadCache[4] = 0xFFFF; + sMtxLoadCache[3] = 0xFFFF; + sMtxLoadCache[2] = 0xFFFF; + sMtxLoadCache[1] = 0xFFFF; + sMtxLoadCache[0] = 0xFFFF; } -#pragma pop /* 803130E4-80313128 30DA24 0044+00 1/0 0/0 0/0 .text loadMtxIndx_PNGP__11J3DShapeMtxCFiUs */ #pragma push @@ -365,10 +362,12 @@ SECTION_DATA static void* lit_1034[12] = { }; /* 804515A8-804515AC 000AA8 0004+00 4/4 2/2 0/0 .sbss sCurrentPipeline__11J3DShapeMtx */ -u8 J3DShapeMtx::sCurrentPipeline[4]; +u32 J3DShapeMtx::sCurrentPipeline; /* 804515AC-804515B0 000AAC 0004+00 3/3 1/1 0/0 .sbss sCurrentScaleFlag__11J3DShapeMtx */ -u8 J3DShapeMtx::sCurrentScaleFlag[4]; +u8* J3DShapeMtx::sCurrentScaleFlag; + +// This below is technically part of J3DScaleFlag. /* 804515B0-804515B4 -00001 0004+00 5/5 3/3 0/0 .sbss None */ /* 804515B0 0001+00 data_804515B0 None */ @@ -377,7 +376,7 @@ extern u8 struct_804515B0[4]; u8 struct_804515B0[4]; /* 804515B4-804515B8 000AB4 0004+00 4/4 1/1 0/0 .sbss sTexMtxLoadType__11J3DShapeMtx */ -u8 J3DShapeMtx::sTexMtxLoadType[4]; +u32 J3DShapeMtx::sTexMtxLoadType; /* 804515B8-804515C0 000AB8 0008+00 2/2 0/0 0/0 .sbss sMtxPtrTbl__21J3DShapeMtxConcatView */ @@ -385,10 +384,10 @@ u8 J3DShapeMtxConcatView::sMtxPtrTbl[8]; /* 804515C0-804515C4 000AC0 0004+00 6/6 2/2 0/0 .sbss sTexGenBlock__17J3DDifferedTexMtx */ -u8 J3DDifferedTexMtx::sTexGenBlock[4]; +J3DTexGenBlock* J3DDifferedTexMtx::sTexGenBlock; /* 804515C4-804515C8 000AC4 0004+00 1/1 2/2 0/0 .sbss sTexMtxObj__17J3DDifferedTexMtx */ -u8 J3DDifferedTexMtx::sTexMtxObj[4]; +J3DTexMtx* J3DDifferedTexMtx::sTexMtxObj; /* 80456398-8045639C 004998 0004+00 2/2 0/0 0/0 .sdata2 @1032 */ SECTION_SDATA2 static u8 lit_1032[4] = { diff --git a/libs/JSystem/J3DGraphBase/J3DSys.cpp b/libs/JSystem/J3DGraphBase/J3DSys.cpp index f1abde4b11..18c2fd8846 100644 --- a/libs/JSystem/J3DGraphBase/J3DSys.cpp +++ b/libs/JSystem/J3DGraphBase/J3DSys.cpp @@ -5,6 +5,7 @@ #include "JSystem/J3DGraphBase/J3DSys.h" #include "dol2asm.h" +#include "dolphin/gx/GXPixel.h" #include "dolphin/types.h" // @@ -42,10 +43,7 @@ extern "C" void makeZModeTable__Fv(); extern "C" void makeTevSwapTable__Fv(); extern "C" void GXInvalidateVtxCache(); extern "C" void GXFlush(); -extern "C" void GXSetChanAmbColor(); extern "C" void GXInitTexCacheRegion(); -extern "C" void GXSetTevIndirect(); -extern "C" void GXSetColorUpdate(); extern "C" void _savegpr_25(); extern "C" void _savegpr_28(); extern "C" void _restgpr_25(); @@ -162,122 +160,153 @@ asm void J3DSys::drawInit() { #pragma pop /* 8031073C-8031079C 30B07C 0060+00 0/0 16/16 6/6 .text reinitGX__6J3DSysFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DSys::reinitGX() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DSys/reinitGX__6J3DSysFv.s" +void J3DSys::reinitGX() { + reinitGenMode(); + reinitLighting(); + reinitTransform(); + reinitTexture(); + reinitTevStages(); + reinitIndStages(); + reinitPixelProc(); + GXFlush(); } -#pragma pop /* 8031079C-803107E8 30B0DC 004C+00 1/1 0/0 0/0 .text reinitGenMode__6J3DSysFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DSys::reinitGenMode() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DSys/reinitGenMode__6J3DSysFv.s" +void J3DSys::reinitGenMode() { + GXSetNumChans(0); + GXSetNumTexGens(1); + GXSetNumTevStages(1); + GXSetNumIndStages(0); + GXSetCullMode(GX_CULL_BACK); + GXSetCoPlanar(GX_FALSE); } -#pragma pop /* ############################################################################################## */ /* 80450950-80450954 0003D0 0004+00 2/2 0/0 0/0 .sdata ColorBlack */ -SECTION_SDATA static u8 ColorBlack[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; +SECTION_SDATA static GXColor ColorBlack = {0x00, 0x00, 0x00, 0x00}; /* 80450954-80450958 0003D4 0004+00 2/2 0/0 0/0 .sdata ColorWhite */ -SECTION_SDATA static u32 ColorWhite = 0xFFFFFFFF; +SECTION_SDATA static GXColor ColorWhite = {0xFF, 0xFF, 0xFF, 0xFF}; /* 803107E8-80310894 30B128 00AC+00 1/1 0/0 0/0 .text reinitLighting__6J3DSysFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DSys::reinitLighting() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DSys/reinitLighting__6J3DSysFv.s" +void J3DSys::reinitLighting() { + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, GX_LIGHT_NULL, GX_DF_NONE, + GX_AF_NONE); + GXSetChanCtrl(GX_COLOR1A1, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, GX_LIGHT_NULL, GX_DF_NONE, + GX_AF_NONE); + GXSetChanAmbColor(GX_COLOR0A0, ColorBlack); + GXSetChanAmbColor(GX_COLOR1A1, ColorBlack); + GXSetChanMatColor(GX_COLOR0A0, ColorWhite); + GXSetChanMatColor(GX_COLOR1A1, ColorWhite); } -#pragma pop /* 80310894-80310998 30B1D4 0104+00 1/1 0/0 0/0 .text reinitTransform__6J3DSysFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DSys::reinitTransform() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DSys/reinitTransform__6J3DSysFv.s" +void J3DSys::reinitTransform() { + GXSetCurrentMtx(GX_PNMTX0); + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY, GX_FALSE, GX_PTIDENTITY); + GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_TEX1, GX_IDENTITY, GX_FALSE, GX_PTIDENTITY); + GXSetTexCoordGen2(GX_TEXCOORD2, GX_TG_MTX2x4, GX_TG_TEX2, GX_IDENTITY, GX_FALSE, GX_PTIDENTITY); + GXSetTexCoordGen2(GX_TEXCOORD3, GX_TG_MTX2x4, GX_TG_TEX3, GX_IDENTITY, GX_FALSE, GX_PTIDENTITY); + GXSetTexCoordGen2(GX_TEXCOORD4, GX_TG_MTX2x4, GX_TG_TEX4, GX_IDENTITY, GX_FALSE, GX_PTIDENTITY); + GXSetTexCoordGen2(GX_TEXCOORD5, GX_TG_MTX2x4, GX_TG_TEX5, GX_IDENTITY, GX_FALSE, GX_PTIDENTITY); + GXSetTexCoordGen2(GX_TEXCOORD6, GX_TG_MTX2x4, GX_TG_TEX6, GX_IDENTITY, GX_FALSE, GX_PTIDENTITY); + GXSetTexCoordGen2(GX_TEXCOORD7, GX_TG_MTX2x4, GX_TG_TEX7, GX_IDENTITY, GX_FALSE, GX_PTIDENTITY); } -#pragma pop /* 80310998-80310A3C 30B2D8 00A4+00 2/2 0/0 0/0 .text reinitTexture__6J3DSysFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DSys::reinitTexture() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DSys/reinitTexture__6J3DSysFv.s" +void J3DSys::reinitTexture() { + GXTexObj texObj; + GXInitTexObj(&texObj, NullTexData, 4, 4, GX_TF_IA8, GX_CLAMP, GX_CLAMP, GX_FALSE); + GXLoadTexObj(&texObj, GX_TEXMAP0); + GXLoadTexObj(&texObj, GX_TEXMAP1); + GXLoadTexObj(&texObj, GX_TEXMAP2); + GXLoadTexObj(&texObj, GX_TEXMAP3); + GXLoadTexObj(&texObj, GX_TEXMAP4); + GXLoadTexObj(&texObj, GX_TEXMAP5); + GXLoadTexObj(&texObj, GX_TEXMAP6); + GXLoadTexObj(&texObj, GX_TEXMAP7); } -#pragma pop /* 80310A3C-80310D44 30B37C 0308+00 1/1 0/0 0/0 .text reinitTevStages__6J3DSysFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DSys::reinitTevStages() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DSys/reinitTevStages__6J3DSysFv.s" +void J3DSys::reinitTevStages() { + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL); + GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL); + GXSetTevOrder(GX_TEVSTAGE2, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL); + GXSetTevOrder(GX_TEVSTAGE3, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL); + GXSetTevOrder(GX_TEVSTAGE4, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL); + GXSetTevOrder(GX_TEVSTAGE5, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL); + GXSetTevOrder(GX_TEVSTAGE6, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL); + GXSetTevOrder(GX_TEVSTAGE7, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL); + GXSetTevOrder(GX_TEVSTAGE8, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL); + GXSetTevOrder(GX_TEVSTAGE9, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL); + GXSetTevOrder(GX_TEVSTAGE10, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL); + GXSetTevOrder(GX_TEVSTAGE11, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL); + GXSetTevOrder(GX_TEVSTAGE12, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL); + GXSetTevOrder(GX_TEVSTAGE13, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL); + GXSetTevOrder(GX_TEVSTAGE14, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL); + GXSetTevOrder(GX_TEVSTAGE15, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL); + + GXSetTevColor(GX_TEVREG0, ColorWhite); + GXSetTevColor(GX_TEVREG1, ColorWhite); + GXSetTevColor(GX_TEVREG2, ColorWhite); + GXSetTevKColor(GX_KCOLOR0, ColorWhite); + GXSetTevKColor(GX_KCOLOR1, ColorWhite); + GXSetTevKColor(GX_KCOLOR2, ColorWhite); + GXSetTevKColor(GX_KCOLOR3, ColorWhite); + + for (u32 i = 0; i < GX_MAX_TEVSTAGE; i++) { + GXSetTevColorIn((GXTevStageID)i, GX_CC_RASC, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO); + GXSetTevColorOp((GXTevStageID)i, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, + GX_TEVPREV); + GXSetTevAlphaIn((GXTevStageID)i, GX_CA_RASA, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp((GXTevStageID)i, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, + GX_TEVPREV); + GXSetTevKColorSel((GXTevStageID)i, GX_TEV_KCSEL_1_4); + GXSetTevKAlphaSel((GXTevStageID)i, GX_TEV_KASEL_1); + GXSetTevSwapMode((GXTevStageID)i, GX_TEV_SWAP0, GX_TEV_SWAP0); + } + + GXSetTevSwapModeTable(GX_TEV_SWAP0, GX_CH_RED, GX_CH_GREEN, GX_CH_BLUE, GX_CH_ALPHA); + GXSetTevSwapModeTable(GX_TEV_SWAP1, GX_CH_RED, GX_CH_RED, GX_CH_RED, GX_CH_ALPHA); + GXSetTevSwapModeTable(GX_TEV_SWAP2, GX_CH_GREEN, GX_CH_GREEN, GX_CH_GREEN, GX_CH_ALPHA); + GXSetTevSwapModeTable(GX_TEV_SWAP3, GX_CH_BLUE, GX_CH_BLUE, GX_CH_BLUE, GX_CH_ALPHA); + GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_AND, GX_ALWAYS, 0); } -#pragma pop /* ############################################################################################## */ /* 803CD8E0-803CD8F8 02AA00 0018+00 1/1 0/0 0/0 .data IndMtx */ -SECTION_DATA static u8 IndMtx[24] = { - 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; +SECTION_DATA static Mtx23 IndMtx = {0.5f, 0.0f, 0.0f, 0.0f, 0.5f, 0.0f}; /* 80310D44-80310E3C 30B684 00F8+00 1/1 0/0 0/0 .text reinitIndStages__6J3DSysFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DSys::reinitIndStages() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DSys/reinitIndStages__6J3DSysFv.s" +void J3DSys::reinitIndStages() { + for (u32 i = 0; i < GX_MAX_TEVSTAGE; i++) { + GXSetTevDirect((GXTevStageID)i); + } + + GXSetIndTexOrder(GX_INDTEXSTAGE0, GX_TEXCOORD0, GX_TEXMAP0); + GXSetIndTexOrder(GX_INDTEXSTAGE1, GX_TEXCOORD1, GX_TEXMAP1); + GXSetIndTexOrder(GX_INDTEXSTAGE2, GX_TEXCOORD2, GX_TEXMAP2); + GXSetIndTexOrder(GX_INDTEXSTAGE3, GX_TEXCOORD3, GX_TEXMAP3); + GXSetIndTexCoordScale(GX_INDTEXSTAGE0, GX_ITS_1, GX_ITS_1); + GXSetIndTexCoordScale(GX_INDTEXSTAGE1, GX_ITS_1, GX_ITS_1); + GXSetIndTexCoordScale(GX_INDTEXSTAGE2, GX_ITS_1, GX_ITS_1); + GXSetIndTexCoordScale(GX_INDTEXSTAGE3, GX_ITS_1, GX_ITS_1); + GXSetIndTexMtx(GX_ITM_0, IndMtx, 1); + GXSetIndTexMtx(GX_ITM_1, IndMtx, 1); + GXSetIndTexMtx(GX_ITM_2, IndMtx, 1); } -#pragma pop - -/* ############################################################################################## */ -/* 80456368-8045636C 004968 0004+00 1/1 0/0 0/0 .sdata2 @892 */ -SECTION_SDATA2 static u8 lit_892[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; - -/* 8045636C-80456370 00496C 0004+00 1/1 0/0 0/0 .sdata2 @893 */ -SECTION_SDATA2 static f32 lit_893 = 1.0f; - -/* 80456370-80456378 004970 0004+04 1/1 0/0 0/0 .sdata2 @894 */ -SECTION_SDATA2 static f32 lit_894[1 + 1 /* padding */] = { - 1.0f / 10.0f, - /* padding */ - 0.0f, -}; /* 80310E3C-80310ED0 30B77C 0094+00 1/1 0/0 0/0 .text reinitPixelProc__6J3DSysFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DSys::reinitPixelProc() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DSys/reinitPixelProc__6J3DSysFv.s" +void J3DSys::reinitPixelProc() { + GXSetBlendMode(GX_BM_NONE, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, GX_LO_CLEAR); + GXSetColorUpdate(GX_TRUE); + GXSetAlphaUpdate(GX_FALSE); + GXSetDither(GX_TRUE); + GXSetFog(GX_FOG_NONE, 0.0f, 1.0f, 0.1f, 1.0f, ColorBlack); + GXSetFogRangeAdj(GX_FALSE, 0, NULL); + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); + GXSetZCompLoc(GX_TRUE); } -#pragma pop /* ############################################################################################## */ /* 80451598-804515A0 000A98 0004+04 0/0 1/1 0/0 .sbss j3dDefaultViewNo */ diff --git a/libs/JSystem/J3DGraphBase/J3DTevs.cpp b/libs/JSystem/J3DGraphBase/J3DTevs.cpp index 8326cfdbdc..4071335246 100644 --- a/libs/JSystem/J3DGraphBase/J3DTevs.cpp +++ b/libs/JSystem/J3DGraphBase/J3DTevs.cpp @@ -4,6 +4,7 @@ // #include "JSystem/J3DGraphBase/J3DTevs.h" +#include "JSystem/J3DGraphBase/J3DSys.h" #include "dol2asm.h" #include "dolphin/types.h" @@ -11,34 +12,6 @@ // Types: // -struct _GXTlutSize {}; - -struct _GXTlutFmt {}; - -struct _GXTexWrapMode {}; - -struct _GXTexMtxType {}; - -struct _GXTexMapID {}; - -struct _GXTexGenType {}; - -struct _GXTexGenSrc {}; - -struct _GXTexFmt {}; - -struct _GXTexFilter {}; - -struct _GXLightID {}; - -struct _GXColor {}; - -struct _GXAnisotropy {}; - -struct Vec {}; - -struct J3DTextureSRTInfo {}; - struct J3DTexMtx { /* 803238C4 */ void load(u32) const; /* 80323900 */ void calc(f32 const (*)[4]); @@ -50,10 +23,6 @@ struct J3DTexMtx { struct J3DTexCoord {}; -struct J3DSys { - static u8 sTexCoordScaleTable[64 + 4 /* padding */]; -}; - struct J3DNBTScale {}; struct J3DLightObj { @@ -121,13 +90,11 @@ extern "C" void J3DGetTextureMtxOld__FRC17J3DTextureSRTInfoRC3VecPA4_f(); extern "C" void J3DGetTextureMtxMaya__FRC17J3DTextureSRTInfoPA4_f(); extern "C" void J3DGetTextureMtxMayaOld__FRC17J3DTextureSRTInfoPA4_f(); extern "C" void J3DMtxProjConcat__FPA4_fPA4_fPA4_f(); -extern "C" void PSMTXConcat(); extern "C" void GDOverflowed(); extern "C" void _savegpr_26(); extern "C" void _savegpr_28(); extern "C" void _restgpr_26(); extern "C" void _restgpr_28(); -extern "C" extern u8 j3dSys[284]; extern "C" u8 sTexCoordScaleTable__6J3DSys[64 + 4 /* padding */]; extern "C" extern u8 __GDCurrentDL[4]; @@ -157,24 +124,18 @@ asm void loadTexCoordGens(u32 param_0, J3DTexCoord* param_1) { #pragma pop /* 803238C4-80323900 31E204 003C+00 0/0 6/6 0/0 .text load__9J3DTexMtxCFUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DTexMtx::load(u32 param_0) const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DTevs/load__9J3DTexMtxCFUl.s" +void J3DTexMtx::load(u32 mtxIdx) const { + if (j3dSys.checkFlag(J3DSysFlag_PostTexMtx)) { + loadPostTexMtx(mtxIdx); + } else { + loadTexMtx(mtxIdx); + } } -#pragma pop /* 80323900-80323920 31E240 0020+00 0/0 2/2 0/0 .text calc__9J3DTexMtxFPA4_Cf */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DTexMtx::calc(f32 const (*param_0)[4]) { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DTevs/calc__9J3DTexMtxFPA4_Cf.s" +void J3DTexMtx::calc(f32 const (*param_0)[4]) { + calcTexMtx(param_0); } -#pragma pop /* ############################################################################################## */ /* 803CEAC8-803CEAF8 02BBE8 0030+00 1/1 0/0 0/0 .data qMtx$1001 */ diff --git a/libs/JSystem/J3DGraphBase/J3DVertex.cpp b/libs/JSystem/J3DGraphBase/J3DVertex.cpp index 0d4d4a7f71..6d833427bf 100644 --- a/libs/JSystem/J3DGraphBase/J3DVertex.cpp +++ b/libs/JSystem/J3DGraphBase/J3DVertex.cpp @@ -130,8 +130,8 @@ void J3DVertexBuffer::setArray() const { /* 80311090-803111B0 30B9D0 0120+00 1/1 0/0 0/0 .text copyLocalVtxPosArray__15J3DVertexBufferFUl */ -s32 J3DVertexBuffer::copyLocalVtxPosArray(u32 param_0) { - if (param_0 & 1) { +s32 J3DVertexBuffer::copyLocalVtxPosArray(u32 flags) { + if (flags & 1) { for (int i = 0; i < 2; i++) { mVtxPosArray[i] = new (0x20) VertexPosition[mVtxData->getVtxNum()]; diff --git a/libs/JSystem/JParticle/JPABaseShape.cpp b/libs/JSystem/JParticle/JPABaseShape.cpp index e27f71d9d4..12c7c3128e 100644 --- a/libs/JSystem/JParticle/JPABaseShape.cpp +++ b/libs/JSystem/JParticle/JPABaseShape.cpp @@ -4,6 +4,9 @@ // #include "JSystem/JParticle/JPABaseShape.h" +#include "JSystem/JParticle/JPAParticle.h" +#include "JSystem/JParticle/JPAResource.h" +#include "JSystem/JParticle/JPAResourceManager.h" #include "dol2asm.h" #include "dolphin/types.h" @@ -11,51 +14,109 @@ // Types: // -struct _GXTexMapID {}; - -struct _GXColor {}; - -struct JUTTexture { - /* 802DE840 */ void load(_GXTexMapID); -}; - -template -struct JPANode {}; -/* JPANode */ -struct JPANode__template0 {}; - -struct JPAEmitterWorkData {}; - struct JPAClrAnmKeyData {}; struct JKRHeap { /* 802CE474 */ void alloc(u32, int, JKRHeap*); }; +struct JPABaseShapeData { + // Common header. + /* 0x00 */ u8 mMagic[4]; + /* 0x04 */ u32 mSize; + + /* 0x08 */ u32 mFlags; + /* 0x0C */ s16 mClrPrmAnmOffset; + /* 0x0E */ s16 mClrEnvAnmOffset; + /* 0x10 */ f32 mBaseSizeX; + /* 0x14 */ f32 mBaseSizeY; + /* 0x18 */ u16 mBlendModeCfg; + /* 0x1A */ u8 mAlphaCompareCfg; + /* 0x1B */ u8 mAlphaRef0; + /* 0x1C */ u8 mAlphaRef1; + /* 0x1D */ u8 mZModeCfg; + /* 0x1E */ u8 mTexFlg; + /* 0x1F */ u8 mTexAnmNum; + /* 0x20 */ u8 mTexIdx; + /* 0x21 */ u8 mClrFlg; + /* 0x22 */ u8 mClrPrmKeyNum; + /* 0x23 */ u8 mClrEnvKeyNum; + /* 0x24 */ s16 mClrAnmFrmMax; + /* 0x26 */ GXColor mClrPrm; + /* 0x2A */ GXColor mClrEnv; + /* 0x2E */ u8 mAnmRndm; + /* 0x2F */ u8 mClrAnmRndmMask; + /* 0x30 */ u8 mTexAnmRndmMask; +}; + struct JPABaseShape { +public: /* 8027A6DC */ JPABaseShape(u8 const*, JKRHeap*); /* 8027A7E8 */ void setGX(JPAEmitterWorkData*) const; - static u8 st_bm[12]; - static u8 st_bf[40]; - static u8 st_lo[64]; - static u8 st_c[32]; - static u8 st_ao[16]; - static u8 st_ca[96]; - static u8 st_aa[32 + 4 /* padding */]; -}; + static GXBlendMode st_bm[3]; + static GXBlendFactor st_bf[10]; + static GXLogicOp st_lo[16]; + static GXCompare st_c[8]; + static GXAlphaOp st_ao[4]; + static GXTevColorArg st_ca[6][4]; + static GXTevAlphaArg st_aa[2][4]; -struct JPABaseParticle {}; + GXBlendMode getBlendMode() const { return st_bm[mpData->mBlendModeCfg & 0x03]; } + GXBlendFactor getBlendSrc() const { return st_bf[(mpData->mBlendModeCfg >> 2) & 0x0F]; } + GXBlendFactor getBlendDst() const { return st_bf[(mpData->mBlendModeCfg >> 6) & 0x0F]; } + GXLogicOp getLogicOp() const { return st_lo[(mpData->mBlendModeCfg >> 10) & 0x0F]; } + GXBool getZCompLoc() const { return (GXBool)((mpData->mZModeCfg >> 5) & 0x01); } -struct JGeometry { - template - struct TVec3 {}; - /* TVec3 */ - struct TVec3__template0 {}; -}; + GXBool getZEnable() const { return (GXBool)(mpData->mZModeCfg & 0x01); } + GXCompare getZCmp() const { return st_c[(mpData->mZModeCfg >> 1) & 0x07]; } + GXBool getZUpd() const { return (GXBool)((mpData->mZModeCfg >> 4) & 0x01); } -struct JPABaseEmitter { - /* 8027EEB0 */ void calcEmitterGlobalPosition(JGeometry::TVec3*) const; + GXCompare getAlphaCmp0() const { return st_c[mpData->mAlphaCompareCfg & 0x07]; } + u8 getAlphaRef0() const { return mpData->mAlphaRef0; } + GXAlphaOp getAlphaOp() const { return st_ao[(mpData->mAlphaCompareCfg >> 3) & 0x03]; } + GXCompare getAlphaCmp1() const { return st_c[(mpData->mAlphaCompareCfg >> 5) & 0x07]; } + u8 getAlphaRef1() const { return mpData->mAlphaRef1; } + + const GXTevColorArg* getTevColorArg() const { return st_ca[(mpData->mFlags >> 0x0F) & 0x07]; } + const GXTevAlphaArg* getTevAlphaArg() const { return st_aa[(mpData->mFlags >> 0x12) & 0x01]; } + + u32 getType() const { return (mpData->mFlags >> 0) & 0x0F; } + u32 getDirType() const { return (mpData->mFlags >> 4) & 0x07; } + u32 getRotType() const { return (mpData->mFlags >> 7) & 0x07; } + u32 getBasePlaneType() const { return (mpData->mFlags >> 10) & 0x07; } + u32 getTilingS() const { return (mpData->mFlags >> 25) & 0x01; } + u32 getTilingT() const { return (mpData->mFlags >> 26) & 0x01; } + bool isGlblClrAnm() const { return !!(mpData->mFlags & 0x00001000); } + bool isGlblTexAnm() const { return !!(mpData->mFlags & 0x00004000); } + bool isPrjTex() const { return !!(mpData->mFlags & 0x00100000); } + bool isDrawFwdAhead() const { return !!(mpData->mFlags & 0x00200000); } + bool isDrawPrntAhead() const { return !!(mpData->mFlags & 0x00400000); } + bool isClipOn() const { return !!(mpData->mFlags & 0x00800000); } + bool isTexCrdAnm() const { return !!(mpData->mFlags & 0x01000000); } + bool isNoDrawParent() const { return !!(mpData->mFlags & 0x08000000); } + bool isNoDrawChild() const { return !!(mpData->mFlags & 0x10000000); } + + bool isPrmAnm() const { return !!(mpData->mClrFlg & 0x02); } + bool isEnvAnm() const { return !!(mpData->mClrFlg & 0x08); } + u8 getClrAnmType() const { return (mpData->mClrFlg >> 4) & 0x07; } + s16 getClrAnmMaxFrm() const { return mpData->mClrAnmFrmMax; } + void getPrmClr(s16 idx, GXColor* dst) { *dst = mpPrmClrAnmTbl[idx]; } + void getEnvClr(s16 idx, GXColor* dst) { *dst = mpEnvClrAnmTbl[idx]; } + + bool isTexAnm() const { return !!(mpData->mTexFlg & 0x01); } + u8 getTexAnmType() const { return (mpData->mTexFlg >> 2) & 0x07; } + u32 getTexIdx() const { return mpData->mTexIdx; } + + f32 getBaseSizeX() const { return mpData->mBaseSizeX; } + f32 getBaseSizeY() const { return mpData->mBaseSizeY; } + +public: + const JPABaseShapeData* mpData; + const void* mpTexCrdMtxAnmTbl; + const u8* mpTexIdxAnimTbl; + GXColor* mpPrmClrAnmTbl; + GXColor* mpEnvClrAnmTbl; }; struct JMath { @@ -112,8 +173,6 @@ extern "C" void JPACalcTexIdxMerge__FP18JPAEmitterWorkDataP15JPABaseParticle(); extern "C" void JPACalcTexIdxRandom__FP18JPAEmitterWorkData(); extern "C" void JPACalcTexIdxRandom__FP18JPAEmitterWorkDataP15JPABaseParticle(); extern "C" void JPALoadPosMtxCam__FP18JPAEmitterWorkData(); -extern "C" static void noLoadPrj__FPC18JPAEmitterWorkDataPA4_Cf(); -extern "C" static void loadPrj__FPC18JPAEmitterWorkDataPA4_Cf(); extern "C" static void loadPrjAnm__FPC18JPAEmitterWorkDataPA4_Cf(); extern "C" void JPADrawBillboard__FP18JPAEmitterWorkDataP15JPABaseParticle(); extern "C" void JPADrawRotBillboard__FP18JPAEmitterWorkDataP15JPABaseParticle(); @@ -146,13 +205,6 @@ extern "C" void JPADrawParticleCallBack__FP18JPAEmitterWorkDataP15JPABaseParticl extern "C" static void makeColorTable__FPP8_GXColorPC16JPAClrAnmKeyDataUcsP7JKRHeap(); extern "C" void __ct__12JPABaseShapeFPCUcP7JKRHeap(); extern "C" void setGX__12JPABaseShapeCFP18JPAEmitterWorkData(); -extern "C" u8 st_bm__12JPABaseShape[12]; -extern "C" u8 st_bf__12JPABaseShape[40]; -extern "C" u8 st_lo__12JPABaseShape[64]; -extern "C" u8 st_c__12JPABaseShape[32]; -extern "C" u8 st_ao__12JPABaseShape[16]; -extern "C" u8 st_ca__12JPABaseShape[96]; -extern "C" u8 st_aa__12JPABaseShape[32 + 4 /* padding */]; // // External References: @@ -161,27 +213,7 @@ extern "C" u8 st_aa__12JPABaseShape[32 + 4 /* padding */]; extern "C" void func_8027EEB0(); extern "C" void alloc__7JKRHeapFUliP7JKRHeap(); extern "C" void load__10JUTTextureF11_GXTexMapID(); -extern "C" void PSMTXConcat(); -extern "C" void PSMTXMultVec(); -extern "C" void PSMTXMultVecSR(); extern "C" void PSMTXMultVecArraySR(); -extern "C" void PSVECCrossProduct(); -extern "C" void GXSetVtxDesc(); -extern "C" void GXSetTexCoordGen2(); -extern "C" void GXBegin(); -extern "C" void GXSetLineWidth(); -extern "C" void GXSetPointSize(); -extern "C" void GXSetTevDirect(); -extern "C" void GXSetTevColorIn(); -extern "C" void GXSetTevAlphaIn(); -extern "C" void GXSetTevColor(); -extern "C" void GXSetAlphaCompare(); -extern "C" void GXSetBlendMode(); -extern "C" void GXSetZMode(); -extern "C" void GXSetZCompLoc(); -extern "C" void GXCallDisplayList(); -extern "C" void GXLoadPosMtxImm(); -extern "C" void GXLoadTexMtxImm(); extern "C" void _savegpr_22(); extern "C" void _savegpr_24(); extern "C" void _savegpr_28(); @@ -206,46 +238,26 @@ SECTION_SDATA2 static f32 lit_2262[1 + 1 /* padding */] = { }; /* 80276A90-80276ACC 2713D0 003C+00 0/0 1/1 0/0 .text JPASetPointSize__FP18JPAEmitterWorkData */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPASetPointSize(JPAEmitterWorkData* param_0) { - nofralloc -#include "asm/JSystem/JParticle/JPABaseShape/JPASetPointSize__FP18JPAEmitterWorkData.s" +void JPASetPointSize(JPAEmitterWorkData* work) { + GXSetPointSize((u8)(lit_2262[0] * work->mGlobalPtclScl.x), GX_TO_ONE); } -#pragma pop /* 80276ACC-80276B08 27140C 003C+00 0/0 1/1 0/0 .text JPASetLineWidth__FP18JPAEmitterWorkData */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPASetLineWidth(JPAEmitterWorkData* param_0) { - nofralloc -#include "asm/JSystem/JParticle/JPABaseShape/JPASetLineWidth__FP18JPAEmitterWorkData.s" +void JPASetLineWidth(JPAEmitterWorkData* work) { + GXSetLineWidth((u8)(lit_2262[0] * work->mGlobalPtclScl.x), GX_TO_ONE); } -#pragma pop /* 80276B08-80276B4C 271448 0044+00 0/0 1/1 0/0 .text * JPASetPointSize__FP18JPAEmitterWorkDataP15JPABaseParticle */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPASetPointSize(JPAEmitterWorkData* param_0, JPABaseParticle* param_1) { - nofralloc -#include "asm/JSystem/JParticle/JPABaseShape/JPASetPointSize__FP18JPAEmitterWorkDataP15JPABaseParticle.s" +void JPASetPointSize(JPAEmitterWorkData* work, JPABaseParticle* ptcl) { + GXSetPointSize((u8)(lit_2262[0] * work->mGlobalPtclScl.x * ptcl->mParticleScaleX), GX_TO_ONE); } -#pragma pop /* 80276B4C-80276B90 27148C 0044+00 0/0 1/1 0/0 .text * JPASetLineWidth__FP18JPAEmitterWorkDataP15JPABaseParticle */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPASetLineWidth(JPAEmitterWorkData* param_0, JPABaseParticle* param_1) { - nofralloc -#include "asm/JSystem/JParticle/JPABaseShape/JPASetLineWidth__FP18JPAEmitterWorkDataP15JPABaseParticle.s" +void JPASetLineWidth(JPAEmitterWorkData* work, JPABaseParticle* ptcl) { + GXSetLineWidth((u8)(lit_2262[0] * work->mGlobalPtclScl.x * ptcl->mParticleScaleX), GX_TO_ONE); } -#pragma pop /* 80276B90-80276C2C 2714D0 009C+00 0/0 1/1 0/0 .text JPARegistPrm__FP18JPAEmitterWorkData */ #pragma push @@ -332,8 +344,17 @@ asm void JPARegistEnv(JPAEmitterWorkData* param_0, JPABaseParticle* param_1) { } #pragma pop +#define MIN(a, b) ((a) < (b) ? (a) : (b)) + /* 802771BC-802771E8 271AFC 002C+00 0/0 1/1 0/0 .text JPACalcClrIdxNormal__FP18JPAEmitterWorkData */ +#ifdef NONMATCHING +void JPACalcClrIdxNormal(JPAEmitterWorkData* work) { + JPABaseShape* bsp = work->mpRes->getBsp(); + // can't get the extsh to appear in the right spot... + work->mClrKeyFrame = MIN(work->mpEmtr->mTick, bsp->getClrAnmMaxFrm()); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -342,6 +363,7 @@ asm void JPACalcClrIdxNormal(JPAEmitterWorkData* param_0) { #include "asm/JSystem/JParticle/JPABaseShape/JPACalcClrIdxNormal__FP18JPAEmitterWorkData.s" } #pragma pop +#endif /* 802771E8-80277210 271B28 0028+00 0/0 1/1 0/0 .text * JPACalcClrIdxNormal__FP18JPAEmitterWorkDataP15JPABaseParticle */ @@ -400,14 +422,9 @@ asm void JPACalcClrIdxReverse(JPAEmitterWorkData* param_0, JPABaseParticle* para /* 80277308-80277314 271C48 000C+00 0/0 1/1 0/0 .text JPACalcClrIdxMerge__FP18JPAEmitterWorkData */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPACalcClrIdxMerge(JPAEmitterWorkData* param_0) { - nofralloc -#include "asm/JSystem/JParticle/JPABaseShape/JPACalcClrIdxMerge__FP18JPAEmitterWorkData.s" +void JPACalcClrIdxMerge(JPAEmitterWorkData* work) { + work->mClrKeyFrame = 0; } -#pragma pop /* ############################################################################################## */ /* 804552B0-804552B8 0038B0 0008+00 4/4 0/0 0/0 .sdata2 @2623 */ @@ -426,14 +443,9 @@ asm void JPACalcClrIdxMerge(JPAEmitterWorkData* param_0, JPABaseParticle* param_ /* 80277384-80277390 271CC4 000C+00 0/0 1/1 0/0 .text JPACalcClrIdxRandom__FP18JPAEmitterWorkData */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPACalcClrIdxRandom(JPAEmitterWorkData* param_0) { - nofralloc -#include "asm/JSystem/JParticle/JPABaseShape/JPACalcClrIdxRandom__FP18JPAEmitterWorkData.s" +void JPACalcClrIdxRandom(JPAEmitterWorkData* work) { + work->mClrKeyFrame = 0; } -#pragma pop /* 80277390-802773C4 271CD0 0034+00 0/0 1/1 0/0 .text * JPACalcClrIdxRandom__FP18JPAEmitterWorkDataP15JPABaseParticle */ @@ -448,91 +460,53 @@ asm void JPACalcClrIdxRandom(JPAEmitterWorkData* param_0, JPABaseParticle* param /* 802773C4-80277404 271D04 0040+00 0/0 1/1 0/0 .text JPACalcPrm__FP18JPAEmitterWorkData */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPACalcPrm(JPAEmitterWorkData* param_0) { - nofralloc -#include "asm/JSystem/JParticle/JPABaseShape/JPACalcPrm__FP18JPAEmitterWorkData.s" +void JPACalcPrm(JPAEmitterWorkData* work) { + work->mpRes->getBsp()->getPrmClr(work->mClrKeyFrame, &work->mpEmtr->mPrmClr); } -#pragma pop /* 80277404-80277440 271D44 003C+00 0/0 1/1 0/0 .text * JPACalcPrm__FP18JPAEmitterWorkDataP15JPABaseParticle */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPACalcPrm(JPAEmitterWorkData* param_0, JPABaseParticle* param_1) { - nofralloc -#include "asm/JSystem/JParticle/JPABaseShape/JPACalcPrm__FP18JPAEmitterWorkDataP15JPABaseParticle.s" +void JPACalcPrm(JPAEmitterWorkData* work, JPABaseParticle* ptcl) { + work->mpRes->getBsp()->getPrmClr(work->mClrKeyFrame, &ptcl->mPrmClr); } -#pragma pop /* 80277440-80277480 271D80 0040+00 0/0 1/1 0/0 .text JPACalcEnv__FP18JPAEmitterWorkData */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPACalcEnv(JPAEmitterWorkData* param_0) { - nofralloc -#include "asm/JSystem/JParticle/JPABaseShape/JPACalcEnv__FP18JPAEmitterWorkData.s" +void JPACalcEnv(JPAEmitterWorkData* work) { + work->mpRes->getBsp()->getEnvClr(work->mClrKeyFrame, &work->mpEmtr->mEnvClr); } -#pragma pop /* 80277480-802774BC 271DC0 003C+00 0/0 1/1 0/0 .text * JPACalcEnv__FP18JPAEmitterWorkDataP15JPABaseParticle */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPACalcEnv(JPAEmitterWorkData* param_0, JPABaseParticle* param_1) { - nofralloc -#include "asm/JSystem/JParticle/JPABaseShape/JPACalcEnv__FP18JPAEmitterWorkDataP15JPABaseParticle.s" +void JPACalcEnv(JPAEmitterWorkData* work, JPABaseParticle* ptcl) { + work->mpRes->getBsp()->getEnvClr(work->mClrKeyFrame, &ptcl->mEnvClr); } -#pragma pop /* 802774BC-80277504 271DFC 0048+00 0/0 1/1 0/0 .text * JPACalcColorCopy__FP18JPAEmitterWorkDataP15JPABaseParticle */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPACalcColorCopy(JPAEmitterWorkData* param_0, JPABaseParticle* param_1) { - nofralloc -#include "asm/JSystem/JParticle/JPABaseShape/JPACalcColorCopy__FP18JPAEmitterWorkDataP15JPABaseParticle.s" +void JPACalcColorCopy(JPAEmitterWorkData* work, JPABaseParticle* ptcl) { + JPABaseEmitter* emtr = work->mpEmtr; + ptcl->mPrmClr = emtr->mPrmClr; + ptcl->mEnvClr = emtr->mEnvClr; } -#pragma pop /* 80277504-8027753C 271E44 0038+00 0/0 1/1 0/0 .text JPAGenTexCrdMtxIdt__FP18JPAEmitterWorkData */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPAGenTexCrdMtxIdt(JPAEmitterWorkData* param_0) { - nofralloc -#include "asm/JSystem/JParticle/JPABaseShape/JPAGenTexCrdMtxIdt__FP18JPAEmitterWorkData.s" +void JPAGenTexCrdMtxIdt(JPAEmitterWorkData* param_0) { + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY, GX_FALSE, GX_PTIDENTITY); } -#pragma pop /* 8027753C-80277574 271E7C 0038+00 0/0 1/1 0/0 .text JPAGenTexCrdMtxAnm__FP18JPAEmitterWorkData */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPAGenTexCrdMtxAnm(JPAEmitterWorkData* param_0) { - nofralloc -#include "asm/JSystem/JParticle/JPABaseShape/JPAGenTexCrdMtxAnm__FP18JPAEmitterWorkData.s" +void JPAGenTexCrdMtxAnm(JPAEmitterWorkData* param_0) { + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX2x4, GX_TG_TEX0, GX_TEXMTX0, GX_FALSE, GX_PTIDENTITY); } -#pragma pop /* 80277574-802775AC 271EB4 0038+00 0/0 1/1 0/0 .text JPAGenTexCrdMtxPrj__FP18JPAEmitterWorkData */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPAGenTexCrdMtxPrj(JPAEmitterWorkData* param_0) { - nofralloc -#include "asm/JSystem/JParticle/JPABaseShape/JPAGenTexCrdMtxPrj__FP18JPAEmitterWorkData.s" +void JPAGenTexCrdMtxPrj(JPAEmitterWorkData* param_0) { + GXSetTexCoordGen2(GX_TEXCOORD0, GX_TG_MTX3x4, GX_TG_POS, GX_TEXMTX0, GX_FALSE, GX_PTIDENTITY); } -#pragma pop /* ############################################################################################## */ /* 804552B8-804552BC 0038B8 0004+00 9/9 0/0 0/0 .sdata2 @2740 */ @@ -575,35 +549,20 @@ asm void JPALoadCalcTexCrdMtxAnm(JPAEmitterWorkData* param_0, JPABaseParticle* p /* 802778EC-80277940 27222C 0054+00 0/0 1/1 0/0 .text JPALoadTex__FP18JPAEmitterWorkData */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPALoadTex(JPAEmitterWorkData* param_0) { - nofralloc -#include "asm/JSystem/JParticle/JPABaseShape/JPALoadTex__FP18JPAEmitterWorkData.s" +void JPALoadTex(JPAEmitterWorkData* work) { + work->mpResMgr->load(work->mpRes->getTexIdx(work->mpRes->getBsp()->getTexIdx()), GX_TEXMAP0); } -#pragma pop /* 80277940-80277990 272280 0050+00 0/0 1/1 0/0 .text JPALoadTexAnm__FP18JPAEmitterWorkData */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPALoadTexAnm(JPAEmitterWorkData* param_0) { - nofralloc -#include "asm/JSystem/JParticle/JPABaseShape/JPALoadTexAnm__FP18JPAEmitterWorkData.s" +void JPALoadTexAnm(JPAEmitterWorkData* work) { + work->mpResMgr->load(work->mpRes->getTexIdx(work->mpEmtr->mTexAnmIdx), GX_TEXMAP0); } -#pragma pop /* 80277990-802779DC 2722D0 004C+00 0/0 1/1 0/0 .text * JPALoadTexAnm__FP18JPAEmitterWorkDataP15JPABaseParticle */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPALoadTexAnm(JPAEmitterWorkData* param_0, JPABaseParticle* param_1) { - nofralloc -#include "asm/JSystem/JParticle/JPABaseShape/JPALoadTexAnm__FP18JPAEmitterWorkDataP15JPABaseParticle.s" +void JPALoadTexAnm(JPAEmitterWorkData* work, JPABaseParticle* ptcl) { + work->mpResMgr->load(work->mpRes->getTexIdx(ptcl->mTexAnmIdx), GX_TEXMAP0); } -#pragma pop /* 802779DC-80277A18 27231C 003C+00 0/0 1/1 0/0 .text JPACalcTexIdxNormal__FP18JPAEmitterWorkData */ @@ -673,14 +632,9 @@ asm void JPACalcTexIdxReverse(JPAEmitterWorkData* param_0, JPABaseParticle* para /* 80277B78-80277B94 2724B8 001C+00 0/0 1/1 0/0 .text JPACalcTexIdxMerge__FP18JPAEmitterWorkData */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPACalcTexIdxMerge(JPAEmitterWorkData* param_0) { - nofralloc -#include "asm/JSystem/JParticle/JPABaseShape/JPACalcTexIdxMerge__FP18JPAEmitterWorkData.s" +void JPACalcTexIdxMerge(JPAEmitterWorkData* work) { + work->mpEmtr->mTexAnmIdx = work->mpRes->getBsp()->getTexIdx(); } -#pragma pop /* 80277B94-80277C0C 2724D4 0078+00 0/0 1/1 0/0 .text * JPACalcTexIdxMerge__FP18JPAEmitterWorkDataP15JPABaseParticle */ @@ -695,14 +649,9 @@ asm void JPACalcTexIdxMerge(JPAEmitterWorkData* param_0, JPABaseParticle* param_ /* 80277C0C-80277C28 27254C 001C+00 0/0 1/1 0/0 .text JPACalcTexIdxRandom__FP18JPAEmitterWorkData */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPACalcTexIdxRandom(JPAEmitterWorkData* param_0) { - nofralloc -#include "asm/JSystem/JParticle/JPABaseShape/JPACalcTexIdxRandom__FP18JPAEmitterWorkData.s" +void JPACalcTexIdxRandom(JPAEmitterWorkData* work) { + work->mpEmtr->mTexAnmIdx = work->mpRes->getBsp()->getTexIdx(); } -#pragma pop /* 80277C28-80277C64 272568 003C+00 0/0 1/1 0/0 .text * JPACalcTexIdxRandom__FP18JPAEmitterWorkDataP15JPABaseParticle */ @@ -716,29 +665,21 @@ asm void JPACalcTexIdxRandom(JPAEmitterWorkData* param_0, JPABaseParticle* param #pragma pop /* 80277C64-80277C8C 2725A4 0028+00 0/0 1/1 0/0 .text JPALoadPosMtxCam__FP18JPAEmitterWorkData */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPALoadPosMtxCam(JPAEmitterWorkData* param_0) { - nofralloc -#include "asm/JSystem/JParticle/JPABaseShape/JPALoadPosMtxCam__FP18JPAEmitterWorkData.s" +void JPALoadPosMtxCam(JPAEmitterWorkData* work) { + GXLoadPosMtxImm(work->mPosCamMtx, GX_PNMTX0); } -#pragma pop /* 80277C8C-80277C90 2725CC 0004+00 1/0 0/0 0/0 .text noLoadPrj__FPC18JPAEmitterWorkDataPA4_Cf */ -static void noLoadPrj(JPAEmitterWorkData const* param_0, f32 const (*param_1)[4]) { +static void noLoadPrj(JPAEmitterWorkData const* work, const Mtx srt) { /* empty function */ } /* 80277C90-80277CC8 2725D0 0038+00 1/0 0/0 0/0 .text loadPrj__FPC18JPAEmitterWorkDataPA4_Cf */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void loadPrj(JPAEmitterWorkData const* param_0, f32 const (*param_1)[4]) { - nofralloc -#include "asm/JSystem/JParticle/JPABaseShape/loadPrj__FPC18JPAEmitterWorkDataPA4_Cf.s" +void loadPrj(JPAEmitterWorkData const* work, const Mtx srt) { + Mtx mtx; + PSMTXConcat(work->mPrjMtx, srt, mtx); + GXLoadTexMtxImm(mtx, GX_TEXMTX0, GX_MTX3x4); } -#pragma pop /* 80277CC8-80277E88 272608 01C0+00 1/0 0/0 0/0 .text loadPrjAnm__FPC18JPAEmitterWorkDataPA4_Cf */ #pragma push @@ -765,8 +706,8 @@ SECTION_DATA static u8 jpa_dl_x[32] = { /* 803C4320-803C432C -00001 000C+00 6/10 0/0 0/0 .data p_prj */ SECTION_DATA static void* p_prj[3] = { - (void*)noLoadPrj__FPC18JPAEmitterWorkDataPA4_Cf, - (void*)loadPrj__FPC18JPAEmitterWorkDataPA4_Cf, + (void*)noLoadPrj, + (void*)loadPrj, (void*)loadPrjAnm__FPC18JPAEmitterWorkDataPA4_Cf, }; @@ -1131,126 +1072,141 @@ static asm void makeColorTable(_GXColor** param_0, JPAClrAnmKeyData const* param /* 8027A6DC-8027A7E8 27501C 010C+00 0/0 1/1 0/0 .text __ct__12JPABaseShapeFPCUcP7JKRHeap */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JPABaseShape::JPABaseShape(u8 const* param_0, JKRHeap* param_1) { - nofralloc -#include "asm/JSystem/JParticle/JPABaseShape/__ct__12JPABaseShapeFPCUcP7JKRHeap.s" +JPABaseShape::JPABaseShape(u8 const* pData, JKRHeap* pHeap) { + mpData = (const JPABaseShapeData*)pData; + + if (isTexCrdAnm()) { + mpTexCrdMtxAnmTbl = (const void*)(pData + sizeof(JPABaseShapeData)); + } else { + mpTexCrdMtxAnmTbl = NULL; + } + + if (isTexAnm()) { + u32 offs = sizeof(JPABaseShapeData); + if (isTexCrdAnm()) + offs = sizeof(JPABaseShapeData) + 0x28; + mpTexIdxAnimTbl = (const u8*)(pData + offs); + } else { + mpTexIdxAnimTbl = NULL; + } + + if (isPrmAnm()) { + makeColorTable(&mpPrmClrAnmTbl, (JPAClrAnmKeyData*)(pData + mpData->mClrPrmAnmOffset), + mpData->mClrPrmKeyNum, mpData->mClrAnmFrmMax, pHeap); + } else { + mpPrmClrAnmTbl = NULL; + } + + if (isEnvAnm()) { + makeColorTable(&mpEnvClrAnmTbl, (JPAClrAnmKeyData*)(pData + mpData->mClrEnvAnmOffset), + mpData->mClrEnvKeyNum, mpData->mClrAnmFrmMax, pHeap); + } else { + mpEnvClrAnmTbl = NULL; + } } -#pragma pop /* ############################################################################################## */ /* 803C4360-803C436C 021480 000C+00 0/1 0/0 0/0 .data st_bm__12JPABaseShape */ -#pragma push -#pragma force_active on -SECTION_DATA u8 JPABaseShape::st_bm[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, +SECTION_DATA GXBlendMode JPABaseShape::st_bm[3] = { + GX_BM_NONE, + GX_BM_BLEND, + GX_BM_LOGIC, }; -#pragma pop /* 803C436C-803C4394 02148C 0028+00 0/1 0/0 0/0 .data st_bf__12JPABaseShape */ -#pragma push -#pragma force_active on -SECTION_DATA u8 JPABaseShape::st_bf[40] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, - 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, - 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07, +SECTION_DATA GXBlendFactor JPABaseShape::st_bf[10] = { + GX_BL_ZERO, GX_BL_ONE, GX_BL_SRC_COLOR, GX_BL_INV_SRC_COLOR, + GX_BL_SRC_COLOR, GX_BL_INV_SRC_COLOR, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, + GX_BL_DST_ALPHA, GX_BL_INV_DST_ALPHA, }; -#pragma pop /* 803C4394-803C43D4 0214B4 0040+00 0/1 0/0 0/0 .data st_lo__12JPABaseShape */ -#pragma push -#pragma force_active on -SECTION_DATA u8 JPABaseShape::st_lo[64] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, - 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0E, - 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x09, - 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x0D, +SECTION_DATA GXLogicOp JPABaseShape::st_lo[16] = { + GX_LO_CLEAR, GX_LO_SET, GX_LO_COPY, GX_LO_INV_COPY, GX_LO_NOOP, GX_LO_INV, + GX_LO_AND, GX_LO_NAND, GX_LO_OR, GX_LO_NOR, GX_LO_XOR, GX_LO_EQUIV, + GX_LO_REV_AND, GX_LO_INV_AND, GX_LO_REV_OR, GX_LO_INV_OR, }; -#pragma pop /* 803C43D4-803C43F4 0214F4 0020+00 0/1 0/0 0/0 .data st_c__12JPABaseShape */ -#pragma push -#pragma force_active on -SECTION_DATA u8 JPABaseShape::st_c[32] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, - 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x07, +SECTION_DATA GXCompare JPABaseShape::st_c[8] = { + GX_NEVER, GX_LESS, GX_LEQUAL, GX_EQUAL, GX_NEQUAL, GX_GEQUAL, GX_GREATER, GX_ALWAYS, }; -#pragma pop /* 803C43F4-803C4404 021514 0010+00 0/1 0/0 0/0 .data st_ao__12JPABaseShape */ -#pragma push -#pragma force_active on -SECTION_DATA u8 JPABaseShape::st_ao[16] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, +SECTION_DATA GXAlphaOp JPABaseShape::st_ao[4] = { + GX_AOP_AND, + GX_AOP_OR, + GX_AOP_XOR, + GX_AOP_XNOR, }; -#pragma pop /* 803C4404-803C4464 021524 0060+00 0/1 0/0 0/0 .data st_ca__12JPABaseShape */ -#pragma push -#pragma force_active on -SECTION_DATA u8 JPABaseShape::st_ca[96] = { - 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0F, - 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0F, - 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0F, - 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0F, - 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, - 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x02, +SECTION_DATA GXTevColorArg JPABaseShape::st_ca[6][4] = { + { + GX_CC_ZERO, + GX_CC_TEXC, + GX_CC_ONE, + GX_CC_ZERO, + }, + { + GX_CC_ZERO, + GX_CC_C0, + GX_CC_TEXC, + GX_CC_ZERO, + }, + { + GX_CC_C0, + GX_CC_ONE, + GX_CC_TEXC, + GX_CC_ZERO, + }, + { + GX_CC_C1, + GX_CC_C0, + GX_CC_TEXC, + GX_CC_ZERO, + }, + { + GX_CC_ZERO, + GX_CC_TEXC, + GX_CC_C0, + GX_CC_C1, + }, + { + GX_CC_ZERO, + GX_CC_ZERO, + GX_CC_ZERO, + GX_CC_C0, + }, }; -#pragma pop /* 803C4464-803C4488 021584 0020+04 0/1 0/0 0/0 .data st_aa__12JPABaseShape */ -#pragma push -#pragma force_active on -SECTION_DATA u8 JPABaseShape::st_aa[32 + 4 /* padding */] = { - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x04, - 0x00, - 0x00, - 0x00, - 0x01, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x07, - 0x00, - 0x00, - 0x00, - 0x01, - /* padding */ - 0x00, - 0x00, - 0x00, - 0x00, +SECTION_DATA GXTevAlphaArg JPABaseShape::st_aa[2][4] = { + { + GX_CA_ZERO, + GX_CA_TEXA, + GX_CA_A0, + GX_CA_ZERO, + }, + { + GX_CA_ZERO, + GX_CA_ZERO, + GX_CA_ZERO, + GX_CA_A0, + }, }; -#pragma pop /* 8027A7E8-8027A918 275128 0130+00 0/0 1/1 0/0 .text setGX__12JPABaseShapeCFP18JPAEmitterWorkData */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPABaseShape::setGX(JPAEmitterWorkData* param_0) const { - nofralloc -#include "asm/JSystem/JParticle/JPABaseShape/setGX__12JPABaseShapeCFP18JPAEmitterWorkData.s" +void JPABaseShape::setGX(JPAEmitterWorkData* work) const { + const GXTevColorArg* colorArg = getTevColorArg(); + const GXTevAlphaArg* alphaArg = getTevAlphaArg(); + GXSetBlendMode(getBlendMode(), getBlendSrc(), getBlendDst(), getLogicOp()); + GXSetZMode(getZEnable(), getZCmp(), getZUpd()); + GXSetAlphaCompare(getAlphaCmp0(), getAlphaRef0(), getAlphaOp(), getAlphaCmp1(), getAlphaRef1()); + GXSetTevColorIn(GX_TEVSTAGE0, colorArg[0], colorArg[1], colorArg[2], colorArg[3]); + GXSetTevAlphaIn(GX_TEVSTAGE0, alphaArg[0], alphaArg[1], alphaArg[2], alphaArg[3]); + GXSetTevDirect(GX_TEVSTAGE0); + GXSetTevDirect(GX_TEVSTAGE1); + GXSetZCompLoc(getZCompLoc()); } -#pragma pop diff --git a/libs/JSystem/JParticle/JPAChildShape.cpp b/libs/JSystem/JParticle/JPAChildShape.cpp index 24a34f1f3c..01b145b335 100644 --- a/libs/JSystem/JParticle/JPAChildShape.cpp +++ b/libs/JSystem/JParticle/JPAChildShape.cpp @@ -4,6 +4,7 @@ // #include "JSystem/JParticle/JPAChildShape.h" +#include "JSystem/JParticle/JPAParticle.h" #include "dol2asm.h" #include "dolphin/types.h" @@ -11,13 +12,13 @@ // Types: // -struct JPAEmitterWorkData {}; - struct JPAChildShape { +public: /* 8027B038 */ JPAChildShape(u8 const*); -}; -struct JPABaseParticle {}; +public: + u8 const* mpData; +}; // // Forward References: @@ -28,12 +29,6 @@ extern "C" void JPACalcChildAlphaOut__FP18JPAEmitterWorkDataP15JPABaseParticle() extern "C" void JPACalcChildScaleOut__FP18JPAEmitterWorkDataP15JPABaseParticle(); extern "C" void __ct__13JPAChildShapeFPCUc(); -// -// External References: -// - -extern "C" void GXSetTevColor(); - // // Declarations: // @@ -69,6 +64,13 @@ asm void JPACalcChildAlphaOut(JPAEmitterWorkData* param_0, JPABaseParticle* para /* 8027B008-8027B038 275948 0030+00 0/0 1/1 0/0 .text * JPACalcChildScaleOut__FP18JPAEmitterWorkDataP15JPABaseParticle */ +#ifdef NONMATCHING +void JPACalcChildScaleOut(JPAEmitterWorkData* work, JPABaseParticle* ptcl) { + // literal + ptcl->mParticleScaleX = ptcl->mScaleOut * (1.0f - ptcl->mTime); + ptcl->mParticleScaleY = ptcl->mAlphaWaveRandom * (1.0f - ptcl->mTime); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -77,8 +79,9 @@ asm void JPACalcChildScaleOut(JPAEmitterWorkData* param_0, JPABaseParticle* para #include "asm/JSystem/JParticle/JPAChildShape/JPACalcChildScaleOut__FP18JPAEmitterWorkDataP15JPABaseParticle.s" } #pragma pop +#endif /* 8027B038-8027B040 -00001 0008+00 0/0 0/0 0/0 .text __ct__13JPAChildShapeFPCUc */ -JPAChildShape::JPAChildShape(u8 const* param_0) { - *(u32*)this = (u32)(param_0); +JPAChildShape::JPAChildShape(u8 const* pData) { + mpData = pData; } diff --git a/libs/JSystem/JParticle/JPADynamicsBlock.cpp b/libs/JSystem/JParticle/JPADynamicsBlock.cpp index 61e502c89c..100a865377 100644 --- a/libs/JSystem/JParticle/JPADynamicsBlock.cpp +++ b/libs/JSystem/JParticle/JPADynamicsBlock.cpp @@ -13,12 +13,6 @@ struct JPAEmitterWorkData {}; -struct JPADynamicsBlock { - /* 8027BB18 */ JPADynamicsBlock(u8 const*); - /* 8027BB4C */ void init(); - /* 8027BBE8 */ void create(JPAEmitterWorkData*); -}; - struct JPABaseEmitter { /* 8027EA40 */ void createParticle(); }; diff --git a/libs/JSystem/JParticle/JPAEmitter.cpp b/libs/JSystem/JParticle/JPAEmitter.cpp index 7d513ba706..e8b601f4c8 100644 --- a/libs/JSystem/JParticle/JPAEmitter.cpp +++ b/libs/JSystem/JParticle/JPAEmitter.cpp @@ -4,54 +4,18 @@ // #include "JSystem/JParticle/JPAEmitter.h" +#include "JSystem/JParticle/JPADynamicsBlock.h" +#include "JSystem/JParticle/JPAParticle.h" +#include "JSystem/JParticle/JPAResource.h" +#include "JSystem/JParticle/JPAResourceManager.h" #include "dol2asm.h" +#include "dolphin/mtx/mtx.h" #include "dolphin/types.h" // // Types: // -struct _GXTexMapID {}; - -struct JUTTexture { - /* 802DE840 */ void load(_GXTexMapID); -}; - -struct JPAResource {}; - -struct JPAEmitterWorkData {}; - -struct JPAEmitterManager {}; - -struct JPAEmitterCallBack { - /* 8027E6A4 */ ~JPAEmitterCallBack(); -}; - -struct JPABaseParticle { - /* 8027EFEC */ void init_p(JPAEmitterWorkData*); - /* 8027F8C8 */ void init_c(JPAEmitterWorkData*, JPABaseParticle*); -}; - -struct JGeometry { - template - struct TVec3 {}; - /* TVec3 */ - struct TVec3__template0 {}; -}; - -struct JPABaseEmitter { - /* 8027E6EC */ void init(JPAEmitterManager*, JPAResource*); - /* 8027EA40 */ void createParticle(); - /* 8027EB60 */ void createChild(JPABaseParticle*); - /* 8027EC60 */ void deleteAllParticle(); - /* 8027EDD4 */ void processTillStartFrame(); - /* 8027EE14 */ void processTermination(); - /* 8027EEB0 */ void calcEmitterGlobalPosition(JGeometry::TVec3*) const; - /* 8027EF30 */ void getCurrentCreateNumber() const; - /* 8027EF40 */ void getDrawCount() const; - /* 8027EF50 */ void loadTexture(u8, _GXTexMapID); -}; - // // Forward References: // @@ -76,10 +40,6 @@ extern "C" void init_p__15JPABaseParticleFP18JPAEmitterWorkData(); extern "C" void init_c__15JPABaseParticleFP18JPAEmitterWorkDataP15JPABaseParticle(); extern "C" void __dl__FPv(); extern "C" void load__10JUTTextureF11_GXTexMapID(); -extern "C" void PSMTXIdentity(); -extern "C" void PSMTXConcat(); -extern "C" void PSMTXScale(); -extern "C" void PSMTXMultVec(); extern "C" extern void* __vt__18JPAEmitterCallBack[7]; extern "C" extern u32 __float_epsilon; @@ -135,45 +95,52 @@ asm void JPABaseEmitter::init(JPAEmitterManager* param_0, JPAResource* param_1) /* 8027EA40-8027EB60 279380 0120+00 0/0 3/3 0/0 .text createParticle__14JPABaseEmitterFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPABaseEmitter::createParticle() { - nofralloc -#include "asm/JSystem/JParticle/JPAEmitter/createParticle__14JPABaseEmitterFv.s" +JPABaseParticle* JPABaseEmitter::createParticle() { + if (mpPtclPool->getNum() != 0) { + JPANode* node = mpPtclPool->pop_front(); + mAlivePtclBase.push_front(node); + mpRes->getDyn()->calc(mpEmtrMgr->mpWorkData); + node->mData.init_p(mpEmtrMgr->mpWorkData); + return &node->mData; + } + + return NULL; } -#pragma pop /* 8027EB60-8027EC60 2794A0 0100+00 0/0 1/1 0/0 .text * createChild__14JPABaseEmitterFP15JPABaseParticle */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPABaseEmitter::createChild(JPABaseParticle* param_0) { - nofralloc -#include "asm/JSystem/JParticle/JPAEmitter/createChild__14JPABaseEmitterFP15JPABaseParticle.s" +JPABaseParticle* JPABaseEmitter::createChild(JPABaseParticle* parent) { + if (mpPtclPool->getNum() != 0) { + JPANode* node = mpPtclPool->pop_front(); + mAlivePtclChld.push_front(node); + node->mData.init_c(mpEmtrMgr->mpWorkData, parent); + return &node->mData; + } + + return NULL; } -#pragma pop /* 8027EC60-8027EDD4 2795A0 0174+00 0/0 2/2 21/21 .text deleteAllParticle__14JPABaseEmitterFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPABaseEmitter::deleteAllParticle() { - nofralloc -#include "asm/JSystem/JParticle/JPAEmitter/deleteAllParticle__14JPABaseEmitterFv.s" +void JPABaseEmitter::deleteAllParticle() { + while (mAlivePtclBase.getNum()) + mpPtclPool->push_front(mAlivePtclBase.pop_back()); + while (mAlivePtclChld.getNum()) + mpPtclPool->push_front(mAlivePtclChld.pop_back()); } -#pragma pop /* 8027EDD4-8027EE14 279714 0040+00 0/0 1/1 0/0 .text processTillStartFrame__14JPABaseEmitterFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPABaseEmitter::processTillStartFrame() { - nofralloc -#include "asm/JSystem/JParticle/JPAEmitter/processTillStartFrame__14JPABaseEmitterFv.s" +bool JPABaseEmitter::processTillStartFrame() { + JPADynamicsBlock* dyn = mpRes->getDyn(); + s16 startFrame = dyn->getStartFrame(); + + if (mWaitTime >= startFrame) + return true; + + if (!(mStatus & 2)) + mWaitTime++; + + return false; } -#pragma pop /* 8027EE14-8027EEB0 279754 009C+00 0/0 1/1 0/0 .text processTermination__14JPABaseEmitterFv */ #pragma push @@ -187,44 +154,31 @@ asm void JPABaseEmitter::processTermination() { /* 8027EEB0-8027EF30 2797F0 0080+00 0/0 1/1 0/0 .text * calcEmitterGlobalPosition__14JPABaseEmitterCFPQ29JGeometry8TVec3 */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPABaseEmitter::calcEmitterGlobalPosition(JGeometry::TVec3* param_0) const { - nofralloc -#include "asm/JSystem/JParticle/JPAEmitter/func_8027EEB0.s" +void JPABaseEmitter::calcEmitterGlobalPosition(JGeometry::TVec3* dst) const { + Mtx mtx; + PSMTXScale(mtx, mGlobalScl.x, mGlobalScl.y, mGlobalScl.z); + PSMTXConcat(mGlobalRot, mtx, mtx); + mtx[0][3] = mGlobalTrs.x; + mtx[1][3] = mGlobalTrs.y; + mtx[2][3] = mGlobalTrs.z; + PSMTXMultVec(mtx, &mLocalTrs, *dst); } -#pragma pop /* 8027EF30-8027EF40 279870 0010+00 0/0 1/1 0/0 .text getCurrentCreateNumber__14JPABaseEmitterCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPABaseEmitter::getCurrentCreateNumber() const { - nofralloc -#include "asm/JSystem/JParticle/JPAEmitter/getCurrentCreateNumber__14JPABaseEmitterCFv.s" +u32 JPABaseEmitter::getCurrentCreateNumber() const { + return mpEmtrMgr->mpWorkData->mEmitCount; } -#pragma pop /* 8027EF40-8027EF50 279880 0010+00 0/0 3/3 0/0 .text getDrawCount__14JPABaseEmitterCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPABaseEmitter::getDrawCount() const { - nofralloc -#include "asm/JSystem/JParticle/JPAEmitter/getDrawCount__14JPABaseEmitterCFv.s" +u8 JPABaseEmitter::getDrawCount() const { + return mpEmtrMgr->mpWorkData->mDrawCount; } -#pragma pop /* 8027EF50-8027EFA4 279890 0054+00 0/0 1/1 0/0 .text * loadTexture__14JPABaseEmitterFUc11_GXTexMapID */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPABaseEmitter::loadTexture(u8 param_0, _GXTexMapID param_1) { - nofralloc -#include "asm/JSystem/JParticle/JPAEmitter/loadTexture__14JPABaseEmitterFUc11_GXTexMapID.s" +bool JPABaseEmitter::loadTexture(u8 idx, GXTexMapID texMapID) { + mpEmtrMgr->mpWorkData->mpResMgr->load(mpRes->getTexIdx(idx), texMapID); + return true; } -#pragma pop diff --git a/libs/JSystem/JParticle/JPAEmitterManager.cpp b/libs/JSystem/JParticle/JPAEmitterManager.cpp index e0b03f8e66..079cd5ca11 100644 --- a/libs/JSystem/JParticle/JPAEmitterManager.cpp +++ b/libs/JSystem/JParticle/JPAEmitterManager.cpp @@ -4,6 +4,9 @@ // #include "JSystem/JParticle/JPAEmitterManager.h" +#include "JSystem/JKernel/JKRHeap.h" +#include "JSystem/JParticle/JPAParticle.h" +#include "JSystem/JParticle/JPAResourceManager.h" #include "dol2asm.h" #include "dolphin/types.h" @@ -11,84 +14,12 @@ // Types: // -struct JSUPtrLink { - /* 802DBDFC */ JSUPtrLink(void*); - /* 802DBE14 */ ~JSUPtrLink(); -}; - -struct JSUPtrList { - /* 802DBEAC */ ~JSUPtrList(); - /* 802DBF14 */ void initiate(); - /* 802DBF4C */ void append(JSUPtrLink*); - /* 802DBFF0 */ void prepend(JSUPtrLink*); - /* 802DC15C */ void remove(JSUPtrLink*); -}; - -template -struct JSUList {}; -/* JSUList */ -struct JSUList__template1 { - /* 8027E51C */ void func_8027E51C(void* _this); - /* 8027E598 */ void func_8027E598(void* _this); -}; - -struct JPAResourceManager { - /* 80273E68 */ void getResource(u16) const; -}; - -struct JPAEmitterWorkData {}; - -struct JGeometry { - template - struct TVec3 {}; - /* TVec3 */ - struct TVec3__template0 {}; -}; - -struct JPAParticleCallBack {}; - -struct JPADrawInfo {}; - -struct JPAEmitterCallBack {}; - -struct JKRHeap {}; - -struct JPABaseEmitter; -struct JPAEmitterManager { - /* 8027DCA0 */ JPAEmitterManager(u32, u32, JKRHeap*, u8, u8); - /* 8027DEBC */ void createSimpleEmitterID(JGeometry::TVec3 const&, u16, u8, u8, - JPAEmitterCallBack*, JPAParticleCallBack*); - /* 8027DFA0 */ void calc(u8); - /* 8027E028 */ void draw(JPADrawInfo const*, u8); - /* 8027E220 */ void forceDeleteAllEmitter(); - /* 8027E278 */ void forceDeleteGroupEmitter(u8); - /* 8027E2D8 */ void forceDeleteEmitter(JPABaseEmitter*); - /* 8027E344 */ void entryResourceManager(JPAResourceManager*, u8); - /* 8027E354 */ void clearResourceManager(u8); - /* 8027E3F4 */ void calcYBBCam(); -}; - struct JPAResource; -struct JPABaseEmitter { - /* 8027E5EC */ ~JPABaseEmitter(); - /* 8027E64C */ JPABaseEmitter(); - /* 8027E6EC */ void init(JPAEmitterManager*, JPAResource*); - /* 8027EC60 */ void deleteAllParticle(); -}; - struct JPAResource { - /* 802755E8 */ void calc(JPAEmitterWorkData*, JPABaseEmitter*); + /* 802755E8 */ bool calc(JPAEmitterWorkData*, JPABaseEmitter*); /* 80275A94 */ void draw(JPAEmitterWorkData*, JPABaseEmitter*); }; -template -struct JPANode {}; -/* JPANode */ -struct JPANode__template0 { - /* 8027E54C */ void func_8027E54C(void* _this); - /* 8027E588 */ void func_8027E588(void* _this); -}; - // // Forward References: // @@ -129,18 +60,6 @@ extern "C" void initiate__10JSUPtrListFv(); extern "C" void append__10JSUPtrListFP10JSUPtrLink(); extern "C" void prepend__10JSUPtrListFP10JSUPtrLink(); extern "C" void remove__10JSUPtrListFP10JSUPtrLink(); -extern "C" void PSMTXCopy(); -extern "C" void GXSetVtxDesc(); -extern "C" void GXClearVtxDesc(); -extern "C" void GXSetVtxAttrFmt(); -extern "C" void GXEnableTexOffsets(); -extern "C" void GXSetCullMode(); -extern "C" void GXSetCoPlanar(); -extern "C" void GXSetNumChans(); -extern "C" void GXSetChanCtrl(); -extern "C" void GXSetTevColorOp(); -extern "C" void GXSetTevAlphaOp(); -extern "C" void GXSetCurrentMtx(); extern "C" void __construct_new_array(); extern "C" void _savegpr_24(); extern "C" void _savegpr_26(); @@ -158,6 +77,31 @@ extern "C" extern u32 __float_epsilon; /* 8027DCA0-8027DEBC 2785E0 021C+00 0/0 1/1 0/0 .text __ct__17JPAEmitterManagerFUlUlP7JKRHeapUcUc */ +#ifdef NONMATCHING +JPAEmitterManager::JPAEmitterManager(u32 ptclMax, u32 emtrMax, JKRHeap* pHeap, u8 grpMax, + u8 resMax) { + mEmtrMax = emtrMax; + mPtclMax = ptclMax; + mGrpMax = grpMax; + mResMax = resMax; + + JPABaseEmitter* emtr = new (pHeap, 0) JPABaseEmitter[mEmtrMax]; + for (u32 i = 0; i < mEmtrMax; i++) + mFreeEmtrList.prepend(&emtr[i].mLink); + + JPANode* ptcl = new (pHeap, 0) JPANode[mPtclMax]; + for (u32 i = 0; i < mPtclMax; i++) + mPtclPool.push_back(&ptcl[i]); + + // can't get __construct_new_array to call the correct constructor within. + mpGrpEmtr = new (pHeap, 0) JSUList[mGrpMax]; + mpResMgrAry = new (pHeap, 0) JPAResourceManager*[mResMax]; + for (u8 i = 0; i < mResMax; i++) + mpResMgrAry[i] = NULL; + + mpWorkData = new (pHeap, 0) JPAEmitterWorkData(); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -167,97 +111,129 @@ asm JPAEmitterManager::JPAEmitterManager(u32 param_0, u32 param_1, JKRHeap* para #include "asm/JSystem/JParticle/JPAEmitterManager/__ct__17JPAEmitterManagerFUlUlP7JKRHeapUcUc.s" } #pragma pop +#endif /* 8027DEBC-8027DFA0 2787FC 00E4+00 0/0 3/3 0/0 .text * createSimpleEmitterID__17JPAEmitterManagerFRCQ29JGeometry8TVec3UsUcUcP18JPAEmitterCallBackP19JPAParticleCallBack */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPAEmitterManager::createSimpleEmitterID(JGeometry::TVec3 const& param_0, u16 param_1, - u8 param_2, u8 param_3, - JPAEmitterCallBack* param_4, - JPAParticleCallBack* param_5) { - nofralloc -#include "asm/JSystem/JParticle/JPAEmitterManager/func_8027DEBC.s" +JPABaseEmitter* JPAEmitterManager::createSimpleEmitterID(JGeometry::TVec3 const& pos, + u16 resID, u8 groupID, u8 resMgrID, + JPAEmitterCallBack* emtrCB, + JPAParticleCallBack* ptclCB) { + JPAResource* pRes = mpResMgrAry[resMgrID]->getResource(resID); + if (pRes != NULL && mFreeEmtrList.getNumLinks() != 0) { + JSULink* pLink = mFreeEmtrList.getFirst(); + mFreeEmtrList.remove(pLink); + mpGrpEmtr[groupID].append(pLink); + JPABaseEmitter* emtr = pLink->getObject(); + emtr->init(this, pRes); + emtr->mpPtclPool = &mPtclPool; + emtr->mpEmtrCallBack = emtrCB; + emtr->mpPtclCallBack = ptclCB; + emtr->mGroupID = groupID; + emtr->mResMgrID = resMgrID; + emtr->mGlobalTrs.set(pos); + return emtr; + } + + return NULL; } -#pragma pop /* 8027DFA0-8027E028 2788E0 0088+00 0/0 3/3 0/0 .text calc__17JPAEmitterManagerFUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPAEmitterManager::calc(u8 param_0) { - nofralloc -#include "asm/JSystem/JParticle/JPAEmitterManager/calc__17JPAEmitterManagerFUc.s" +void JPAEmitterManager::calc(u8 groupID) { + for (JSULink*pLink = mpGrpEmtr[groupID].getFirst(), *pNext; + pLink != mpGrpEmtr[groupID].getEnd(); pLink = pNext) { + pNext = pLink->getNext(); + + JPABaseEmitter* emtr = pLink->getObject(); + bool done = emtr->mpRes->calc(mpWorkData, emtr); + + if (done && !emtr->checkStatus(0x200)) + forceDeleteEmitter(emtr); + } } -#pragma pop /* 8027E028-8027E220 278968 01F8+00 0/0 1/1 0/0 .text draw__17JPAEmitterManagerFPC11JPADrawInfoUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPAEmitterManager::draw(JPADrawInfo const* param_0, u8 param_1) { - nofralloc -#include "asm/JSystem/JParticle/JPAEmitterManager/draw__17JPAEmitterManagerFPC11JPADrawInfoUc.s" +void JPAEmitterManager::draw(JPADrawInfo const* drawInfo, u8 groupID) { + drawInfo->getCamMtx(&mpWorkData->mPosCamMtx); + drawInfo->getPrjMtx(&mpWorkData->mPrjMtx); + calcYBBCam(); + GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXEnableTexOffsets(GX_TEXCOORD0, GX_TRUE, GX_TRUE); + GXEnableTexOffsets(GX_TEXCOORD1, GX_TRUE, GX_TRUE); + GXEnableTexOffsets(GX_TEXCOORD2, GX_TRUE, GX_TRUE); + GXSetCullMode(GX_CULL_NONE); + GXSetCoPlanar(GX_FALSE); + GXClearVtxDesc(); + GXSetVtxDesc(GX_VA_POS, GX_INDEX8); + GXSetVtxDesc(GX_VA_TEX0, GX_INDEX8); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_S8, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_S8, 0); + GXSetVtxAttrFmt(GX_VTXFMT1, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetVtxAttrFmt(GX_VTXFMT1, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0); + GXSetCurrentMtx(GX_PNMTX0); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, GX_LIGHT_NULL, GX_DF_NONE, + GX_AF_NONE); + GXSetChanCtrl(GX_COLOR1A1, GX_FALSE, GX_SRC_REG, GX_SRC_VTX, GX_LIGHT_NULL, GX_DF_NONE, + GX_AF_NONE); + GXSetNumChans(0); + + for (JSULink* pLink = mpGrpEmtr[groupID].getFirst(); + pLink != mpGrpEmtr[groupID].getEnd(); pLink = pLink->getNext()) { + JPABaseEmitter* emtr = pLink->getObject(); + if (!emtr->checkStatus(0x04)) { + mpWorkData->mpResMgr = mpResMgrAry[emtr->mResMgrID]; + emtr->mpRes->draw(mpWorkData, emtr); + } + } } -#pragma pop /* 8027E220-8027E278 278B60 0058+00 0/0 1/1 0/0 .text forceDeleteAllEmitter__17JPAEmitterManagerFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPAEmitterManager::forceDeleteAllEmitter() { - nofralloc -#include "asm/JSystem/JParticle/JPAEmitterManager/forceDeleteAllEmitter__17JPAEmitterManagerFv.s" +void JPAEmitterManager::forceDeleteAllEmitter() { + for (u8 i = 0; i < mGrpMax; i++) + forceDeleteGroupEmitter(i); } -#pragma pop /* 8027E278-8027E2D8 278BB8 0060+00 1/1 0/0 0/0 .text * forceDeleteGroupEmitter__17JPAEmitterManagerFUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPAEmitterManager::forceDeleteGroupEmitter(u8 param_0) { - nofralloc -#include "asm/JSystem/JParticle/JPAEmitterManager/forceDeleteGroupEmitter__17JPAEmitterManagerFUc.s" +void JPAEmitterManager::forceDeleteGroupEmitter(u8 groupID) { + while (mpGrpEmtr[groupID].getNumLinks()) + forceDeleteEmitter(mpGrpEmtr[groupID].getLast()->getObject()); } -#pragma pop /* 8027E2D8-8027E344 278C18 006C+00 3/3 1/1 0/0 .text * forceDeleteEmitter__17JPAEmitterManagerFP14JPABaseEmitter */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPAEmitterManager::forceDeleteEmitter(JPABaseEmitter* param_0) { - nofralloc -#include "asm/JSystem/JParticle/JPAEmitterManager/forceDeleteEmitter__17JPAEmitterManagerFP14JPABaseEmitter.s" +void JPAEmitterManager::forceDeleteEmitter(JPABaseEmitter* emtr) { + emtr->deleteAllParticle(); + emtr->setStatus(0x300); + mpGrpEmtr[emtr->getGroupID()].remove(&emtr->mLink); + mFreeEmtrList.prepend(&emtr->mLink); } -#pragma pop /* 8027E344-8027E354 278C84 0010+00 0/0 2/2 0/0 .text * entryResourceManager__17JPAEmitterManagerFP18JPAResourceManagerUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPAEmitterManager::entryResourceManager(JPAResourceManager* param_0, u8 param_1) { - nofralloc -#include "asm/JSystem/JParticle/JPAEmitterManager/entryResourceManager__17JPAEmitterManagerFP18JPAResourceManagerUc.s" +void JPAEmitterManager::entryResourceManager(JPAResourceManager* resMgr, u8 resMgrID) { + mpResMgrAry[resMgrID] = resMgr; } -#pragma pop /* 8027E354-8027E3F4 278C94 00A0+00 0/0 1/1 0/0 .text clearResourceManager__17JPAEmitterManagerFUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPAEmitterManager::clearResourceManager(u8 param_0) { - nofralloc -#include "asm/JSystem/JParticle/JPAEmitterManager/clearResourceManager__17JPAEmitterManagerFUc.s" +void JPAEmitterManager::clearResourceManager(u8 resMgrID) { + for (u8 i = 0; i < mGrpMax; i++) { + for (JSULink*pLink = mpGrpEmtr[i].getFirst(), *pNext; + pLink != mpGrpEmtr[i].getEnd(); pLink = pNext) { + pNext = pLink->getNext(); + + if (resMgrID == pLink->getObject()->getResourceManagerID()) + forceDeleteEmitter(pLink->getObject()); + } + } + + mpResMgrAry[resMgrID] = NULL; } -#pragma pop /* ############################################################################################## */ /* 80455358-8045535C 003958 0004+00 1/1 0/0 0/0 .sdata2 @2632 */ @@ -338,21 +314,7 @@ extern "C" asm void func_8027E598(void* _this) { #pragma pop /* 8027E5EC-8027E64C 278F2C 0060+00 1/1 0/0 0/0 .text __dt__14JPABaseEmitterFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JPABaseEmitter::~JPABaseEmitter() { - nofralloc -#include "asm/JSystem/JParticle/JPAEmitterManager/__dt__14JPABaseEmitterFv.s" -} -#pragma pop +JPABaseEmitter::~JPABaseEmitter() {} /* 8027E64C-8027E6A4 278F8C 0058+00 1/1 0/0 0/0 .text __ct__14JPABaseEmitterFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JPABaseEmitter::JPABaseEmitter() { - nofralloc -#include "asm/JSystem/JParticle/JPAEmitterManager/__ct__14JPABaseEmitterFv.s" -} -#pragma pop +JPABaseEmitter::JPABaseEmitter() : mLink(this) {} diff --git a/libs/JSystem/JParticle/JPAExTexShape.cpp b/libs/JSystem/JParticle/JPAExTexShape.cpp index ad877ecd5d..5f5cfc414d 100644 --- a/libs/JSystem/JParticle/JPAExTexShape.cpp +++ b/libs/JSystem/JParticle/JPAExTexShape.cpp @@ -4,54 +4,34 @@ // #include "JSystem/JParticle/JPAExTexShape.h" +#include "JSystem/JParticle/JPAParticle.h" +#include "JSystem/JParticle/JPAResource.h" +#include "JSystem/JParticle/JPAResourceManager.h" #include "dol2asm.h" #include "dolphin/types.h" -// -// Types: -// - -struct _GXTexMapID {}; - -struct JUTTexture { - /* 802DE840 */ void load(_GXTexMapID); -}; - -struct JPAExTexShape { - /* 8027B13C */ JPAExTexShape(u8 const*); -}; - -struct JPAEmitterWorkData {}; - -// -// Forward References: -// - -extern "C" void JPALoadExTex__FP18JPAEmitterWorkData(); -extern "C" void __ct__13JPAExTexShapeFPCUc(); - -// -// External References: -// - -extern "C" void load__10JUTTextureF11_GXTexMapID(); -extern "C" void GXSetTexCoordGen2(); - -// -// Declarations: -// - /* 8027B040-8027B13C 275980 00FC+00 0/0 1/1 0/0 .text JPALoadExTex__FP18JPAEmitterWorkData */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPALoadExTex(JPAEmitterWorkData* param_0) { - nofralloc -#include "asm/JSystem/JParticle/JPAExTexShape/JPALoadExTex__FP18JPAEmitterWorkData.s" +void JPALoadExTex(JPAEmitterWorkData* work) { + JPAExTexShape* ets = work->mpRes->getEts(); + + GXTexCoordID secTexCoordID = GX_TEXCOORD1; + if (ets->isUseIndirect()) { + GXSetTexCoordGen2(GX_TEXCOORD1, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY, GX_FALSE, + GX_PTIDENTITY); + u8 texIdx = ets->getIndTexIdx(); + work->mpResMgr->load(work->mpRes->getTexIdx(texIdx), GX_TEXMAP2); + secTexCoordID = GX_TEXCOORD2; + } + + if (ets->isUseSecTex()) { + GXSetTexCoordGen2(secTexCoordID, GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY, GX_FALSE, + GX_PTIDENTITY); + u8 texIdx = ets->getSecTexIdx(); + work->mpResMgr->load(work->mpRes->getTexIdx(texIdx), GX_TEXMAP3); + } } -#pragma pop /* 8027B13C-8027B144 -00001 0008+00 0/0 0/0 0/0 .text __ct__13JPAExTexShapeFPCUc */ -JPAExTexShape::JPAExTexShape(u8 const* param_0) { - *(u32*)this = (u32)(param_0); +JPAExTexShape::JPAExTexShape(u8 const* data) { + mpData = (const JPAExTexShapeData*)data; } diff --git a/libs/JSystem/JParticle/JPAMath.cpp b/libs/JSystem/JParticle/JPAMath.cpp index 593f2fc067..d0a4f911ae 100644 --- a/libs/JSystem/JParticle/JPAMath.cpp +++ b/libs/JSystem/JParticle/JPAMath.cpp @@ -37,8 +37,6 @@ extern "C" void JPACalcKeyAnmValue__FfUsPCf(); // External References: // -extern "C" void PSMTXIdentity(); -extern "C" void PSVECMag(); extern "C" void _savegpr_28(); extern "C" void _restgpr_28(); extern "C" u8 sincosTable___5JMath[65536]; @@ -92,7 +90,7 @@ asm void JPAGetYZRotateMtx(s16 param_0, s16 param_1, f32 (*param_2)[4]) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void JPAGetXYZRotateMtx(s16 param_0, s16 param_1, s16 param_2, f32 (*param_3)[4]) { +asm void JPAGetXYZRotateMtx(s16 x, s16 y, s16 z, Mtx mtx) { nofralloc #include "asm/JSystem/JParticle/JPAMath/JPAGetXYZRotateMtx__FsssPA4_f.s" } diff --git a/libs/JSystem/JParticle/JPAParticle.cpp b/libs/JSystem/JParticle/JPAParticle.cpp index eca1563738..a4eef4657b 100644 --- a/libs/JSystem/JParticle/JPAParticle.cpp +++ b/libs/JSystem/JParticle/JPAParticle.cpp @@ -11,18 +11,6 @@ // Types: // -struct JPAEmitterWorkData {}; - -struct JPABaseParticle { - /* 8027EFEC */ void init_p(JPAEmitterWorkData*); - /* 8027F8C8 */ void init_c(JPAEmitterWorkData*, JPABaseParticle*); - /* 8027FFD0 */ void calc_p(JPAEmitterWorkData*); - /* 80280260 */ void calc_c(JPAEmitterWorkData*); - /* 802804C8 */ void canCreateChild(JPAEmitterWorkData*); - /* 80280548 */ void getWidth(JPABaseEmitter const*) const; - /* 80280568 */ void getHeight(JPABaseEmitter const*) const; -}; - struct JPAResource { /* 8027658C */ void calc_p(JPAEmitterWorkData*, JPABaseParticle*); /* 80276608 */ void calc_c(JPAEmitterWorkData*, JPABaseParticle*); @@ -53,7 +41,6 @@ extern "C" void createChild__14JPABaseEmitterFP15JPABaseParticle(); extern "C" void JPAGetYZRotateMtx__FssPA4_f(); extern "C" void __dl__FPv(); extern "C" void JMAVECScaleAdd__FPC3VecPC3VecP3Vecf(); -extern "C" void PSMTXMultVecSR(); extern "C" void _savegpr_26(); extern "C" void _savegpr_29(); extern "C" void _restgpr_26(); @@ -170,22 +157,14 @@ SECTION_SDATA2 static f32 lit_3010[1 + 1 /* padding */] = { /* 80280548-80280568 27AE88 0020+00 0/0 3/3 0/0 .text * getWidth__15JPABaseParticleCFPC14JPABaseEmitter */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPABaseParticle::getWidth(JPABaseEmitter const* param_0) const { - nofralloc -#include "asm/JSystem/JParticle/JPAParticle/getWidth__15JPABaseParticleCFPC14JPABaseEmitter.s" +f32 JPABaseParticle::getWidth(JPABaseEmitter const* emtr) const { + f32 scale = lit_3010[0] * mParticleScaleX; + return scale * emtr->mpEmtrMgr->mpWorkData->mGlobalPtclScl.x; } -#pragma pop /* 80280568-80280588 27AEA8 0020+00 0/0 3/3 0/0 .text * getHeight__15JPABaseParticleCFPC14JPABaseEmitter */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPABaseParticle::getHeight(JPABaseEmitter const* param_0) const { - nofralloc -#include "asm/JSystem/JParticle/JPAParticle/getHeight__15JPABaseParticleCFPC14JPABaseEmitter.s" +f32 JPABaseParticle::getHeight(JPABaseEmitter const* emtr) const { + f32 scale = lit_3010[0] * mParticleScaleY; + return scale * emtr->mpEmtrMgr->mpWorkData->mGlobalPtclScl.y; } -#pragma pop diff --git a/libs/JSystem/JParticle/JPAResource.cpp b/libs/JSystem/JParticle/JPAResource.cpp index 6b8f092fec..a21e82b7de 100644 --- a/libs/JSystem/JParticle/JPAResource.cpp +++ b/libs/JSystem/JParticle/JPAResource.cpp @@ -4,52 +4,16 @@ // #include "JSystem/JParticle/JPAResource.h" +#include "JSystem/JParticle/JPAMath.h" +#include "JSystem/JParticle/JPAParticle.h" #include "dol2asm.h" +#include "dolphin/mtx/mtx.h" #include "dolphin/types.h" // // Types: // -struct _GXTexMapID {}; - -struct JUTTexture { - /* 802DE840 */ void load(_GXTexMapID); -}; - -struct JPAEmitterWorkData {}; - -struct JKRHeap { - /* 802CE474 */ void alloc(u32, int, JKRHeap*); -}; - -struct JPABaseParticle { - /* 8027FFD0 */ void calc_p(JPAEmitterWorkData*); - /* 80280260 */ void calc_c(JPAEmitterWorkData*); -}; - -struct JPABaseEmitter { - /* 8027EDD4 */ void processTillStartFrame(); - /* 8027EE14 */ void processTermination(); -}; - -struct JPAResource { - /* 80274010 */ JPAResource(); - /* 80274080 */ void init(JKRHeap*); - /* 802755E8 */ void calc(JPAEmitterWorkData*, JPABaseEmitter*); - /* 80275A94 */ void draw(JPAEmitterWorkData*, JPABaseEmitter*); - /* 80275B74 */ void drawP(JPAEmitterWorkData*); - /* 80275EB0 */ void drawC(JPAEmitterWorkData*); - /* 802761A8 */ void setPTev(); - /* 8027642C */ void setCTev(JPAEmitterWorkData*); - /* 8027658C */ void calc_p(JPAEmitterWorkData*, JPABaseParticle*); - /* 80276608 */ void calc_c(JPAEmitterWorkData*, JPABaseParticle*); - /* 80276684 */ void calcField(JPAEmitterWorkData*, JPABaseParticle*); - /* 80276700 */ void calcKey(JPAEmitterWorkData*); - /* 80276840 */ void calcWorkData_c(JPAEmitterWorkData*); - /* 80276A0C */ void calcWorkData_d(JPAEmitterWorkData*); -}; - struct JPAKeyBlock { /* 8027D740 */ void calc(f32); }; @@ -60,21 +24,6 @@ struct JPAFieldBase { /* 80276A8C */ void prepare(JPAEmitterWorkData*, JPAFieldBlock*); }; -struct JPADynamicsBlock { - /* 8027BBE8 */ void create(JPAEmitterWorkData*); -}; - -struct JPABaseShape { - /* 8027A7E8 */ void setGX(JPAEmitterWorkData*) const; -}; - -struct JGeometry { - template - struct TVec3 {}; - /* TVec3 */ - struct TVec3__template0 {}; -}; - // // Forward References: // @@ -184,28 +133,7 @@ extern "C" void func_80280588(); extern "C" void JPAGetXYZRotateMtx__FsssPA4_f(); extern "C" void alloc__7JKRHeapFUliP7JKRHeap(); extern "C" void load__10JUTTextureF11_GXTexMapID(); -extern "C" void PSMTXCopy(); -extern "C" void PSMTXConcat(); -extern "C" void PSMTXScale(); -extern "C" void PSMTXMultVec(); -extern "C" void PSMTXMultVecSR(); -extern "C" void GXSetArray(); -extern "C" void GXSetTexCoordGen2(); -extern "C" void GXSetNumTexGens(); extern "C" void GXSetMisc(); -extern "C" void GXSetTevIndirect(); -extern "C" void GXSetIndTexMtx(); -extern "C" void GXSetIndTexCoordScale(); -extern "C" void GXSetIndTexOrder(); -extern "C" void GXSetNumIndStages(); -extern "C" void GXSetTevDirect(); -extern "C" void GXSetTevColorIn(); -extern "C" void GXSetTevAlphaIn(); -extern "C" void GXSetTevColorOp(); -extern "C" void GXSetTevAlphaOp(); -extern "C" void GXSetTevOrder(); -extern "C" void GXSetNumTevStages(); -extern "C" void GXSetClipMode(); extern "C" void __save_gpr(); extern "C" void _savegpr_25(); extern "C" void _savegpr_27(); @@ -800,14 +728,13 @@ asm void JPAResource::calcWorkData_c(JPAEmitterWorkData* param_0) { /* 80276A0C-80276A8C 27134C 0080+00 1/1 0/0 0/0 .text * calcWorkData_d__11JPAResourceFP18JPAEmitterWorkData */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPAResource::calcWorkData_d(JPAEmitterWorkData* param_0) { - nofralloc -#include "asm/JSystem/JParticle/JPAResource/calcWorkData_d__11JPAResourceFP18JPAEmitterWorkData.s" +void JPAResource::calcWorkData_d(JPAEmitterWorkData* work) { + Mtx mtx; + JPAGetXYZRotateMtx(work->mpEmtr->mLocalRot.x * 0xB6, work->mpEmtr->mLocalRot.y * 0xB6, + work->mpEmtr->mLocalRot.z * 0xB6, mtx); + PSMTXConcat(work->mpEmtr->mGlobalRot, mtx, work->mGlobalRot); + PSMTXMultVecSR(work->mGlobalRot, &work->mpEmtr->mLocalDir, work->mGlobalEmtrDir); } -#pragma pop /* 80276A8C-80276A90 2713CC 0004+00 0/0 3/0 0/0 .text * prepare__12JPAFieldBaseFP18JPAEmitterWorkDataP13JPAFieldBlock */ diff --git a/libs/JSystem/JParticle/JPAResourceManager.cpp b/libs/JSystem/JParticle/JPAResourceManager.cpp index 5c34c3b78c..d0daca474e 100644 --- a/libs/JSystem/JParticle/JPAResourceManager.cpp +++ b/libs/JSystem/JParticle/JPAResourceManager.cpp @@ -4,135 +4,83 @@ // #include "JSystem/JParticle/JPAResourceManager.h" +#include "JSystem/JParticle/JPADynamicsBlock.h" +#include "JSystem/JParticle/JPAResource.h" +#include "MSL_C.PPCEABI.bare.H/MSL_Common/Src/string.h" #include "dol2asm.h" #include "dolphin/types.h" -// -// Types: -// - -struct ResTIMG {}; - -struct JUTTexture { - /* 802DE2A8 */ void storeTIMG(ResTIMG const*, u8); -}; - -struct JPATexture {}; - -struct JKRHeap {}; - -struct JPAResource {}; - -struct JPAResourceManager { - /* 80273E10 */ JPAResourceManager(void const*, JKRHeap*); - /* 80273E68 */ void getResource(u16) const; - /* 80273EA8 */ void checkUserIndexDuplication(u16) const; - /* 80273EEC */ void swapTexture(ResTIMG const*, char const*); - /* 80273F8C */ void registRes(JPAResource*); - /* 80273FAC */ void registTex(JPATexture*); - /* 80273FCC */ void getResUserWork(u16) const; -}; - struct JPAResourceLoader { /* 8027D8A0 */ JPAResourceLoader(u8 const*, JPAResourceManager*); }; -// -// Forward References: -// - -extern "C" void __ct__18JPAResourceManagerFPCvP7JKRHeap(); -extern "C" void getResource__18JPAResourceManagerCFUs(); -extern "C" void checkUserIndexDuplication__18JPAResourceManagerCFUs(); -extern "C" void swapTexture__18JPAResourceManagerFPC7ResTIMGPCc(); -extern "C" void registRes__18JPAResourceManagerFP11JPAResource(); -extern "C" void registTex__18JPAResourceManagerFP10JPATexture(); -extern "C" void getResUserWork__18JPAResourceManagerCFUs(); - -// -// External References: -// - -extern "C" void __ct__17JPAResourceLoaderFPCUcP18JPAResourceManager(); -extern "C" void storeTIMG__10JUTTextureFPC7ResTIMGUc(); -extern "C" void _savegpr_26(); -extern "C" void _restgpr_26(); -extern "C" void strcmp(); - -// -// Declarations: -// - /* 80273E10-80273E68 26E750 0058+00 0/0 2/2 0/0 .text __ct__18JPAResourceManagerFPCvP7JKRHeap */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JPAResourceManager::JPAResourceManager(void const* param_0, JKRHeap* param_1) { - nofralloc -#include "asm/JSystem/JParticle/JPAResourceManager/__ct__18JPAResourceManagerFPCvP7JKRHeap.s" +JPAResourceManager::JPAResourceManager(void const* pData, JKRHeap* pHeap) { + mpResArr = NULL; + mpTexArr = NULL; + mResMax = 0; + mResNum = 0; + mTexMax = 0; + mTexNum = 0; + mpHeap = pHeap; + JPAResourceLoader loader((u8 const*)pData, this); } -#pragma pop /* 80273E68-80273EA8 26E7A8 0040+00 1/1 1/1 0/0 .text getResource__18JPAResourceManagerCFUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPAResourceManager::getResource(u16 param_0) const { - nofralloc -#include "asm/JSystem/JParticle/JPAResourceManager/getResource__18JPAResourceManagerCFUs.s" +JPAResource* JPAResourceManager::getResource(u16 usrIdx) const { + for (u16 i = 0; i < mResNum; i++) + if (mpResArr[i]->getUsrIdx() == usrIdx) + return mpResArr[i]; + return NULL; } -#pragma pop /* 80273EA8-80273EEC 26E7E8 0044+00 0/0 2/2 0/0 .text * checkUserIndexDuplication__18JPAResourceManagerCFUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPAResourceManager::checkUserIndexDuplication(u16 param_0) const { - nofralloc -#include "asm/JSystem/JParticle/JPAResourceManager/checkUserIndexDuplication__18JPAResourceManagerCFUs.s" +bool JPAResourceManager::checkUserIndexDuplication(u16 usrIdx) const { + for (s32 i = 0; i < mResNum; i++) + if (mpResArr[i]->getUsrIdx() == usrIdx) + return true; + return false; } -#pragma pop /* 80273EEC-80273F8C 26E82C 00A0+00 0/0 2/2 0/0 .text * swapTexture__18JPAResourceManagerFPC7ResTIMGPCc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPAResourceManager::swapTexture(ResTIMG const* param_0, char const* param_1) { - nofralloc -#include "asm/JSystem/JParticle/JPAResourceManager/swapTexture__18JPAResourceManagerFPC7ResTIMGPCc.s" +const ResTIMG* JPAResourceManager::swapTexture(ResTIMG const* img, char const* swapName) { + const ResTIMG* ret = NULL; + + for (s32 i = 0; i < mTexNum; i++) { + if (strcmp(swapName, mpTexArr[i]->getName()) == 0) { + JUTTexture* tex = mpTexArr[i]->getJUTTexture(); + ret = tex->getTexInfo(); + tex->storeTIMG(img, (u8)0); + break; + } + } + + return ret; } -#pragma pop /* 80273F8C-80273FAC 26E8CC 0020+00 0/0 1/1 0/0 .text * registRes__18JPAResourceManagerFP11JPAResource */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPAResourceManager::registRes(JPAResource* param_0) { - nofralloc -#include "asm/JSystem/JParticle/JPAResourceManager/registRes__18JPAResourceManagerFP11JPAResource.s" +void JPAResourceManager::registRes(JPAResource* res) { + mpResArr[mResNum] = res; + mResNum++; } -#pragma pop /* 80273FAC-80273FCC 26E8EC 0020+00 0/0 1/1 0/0 .text * registTex__18JPAResourceManagerFP10JPATexture */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPAResourceManager::registTex(JPATexture* param_0) { - nofralloc -#include "asm/JSystem/JParticle/JPAResourceManager/registTex__18JPAResourceManagerFP10JPATexture.s" +void JPAResourceManager::registTex(JPATexture* tex) { + mpTexArr[mTexNum] = tex; + mTexNum++; } -#pragma pop /* 80273FCC-80274010 26E90C 0044+00 0/0 6/6 0/0 .text getResUserWork__18JPAResourceManagerCFUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JPAResourceManager::getResUserWork(u16 param_0) const { - nofralloc -#include "asm/JSystem/JParticle/JPAResourceManager/getResUserWork__18JPAResourceManagerCFUs.s" +u32 JPAResourceManager::getResUserWork(u16 usrIdx) const { + u32 ret = 0; + + JPAResource* res = getResource(usrIdx); + if (res != NULL) + ret = res->getDyn()->getResUserWork(); + + return ret; } -#pragma pop diff --git a/libs/JSystem/JParticle/JPATexture.cpp b/libs/JSystem/JParticle/JPATexture.cpp index 9a37daf196..c793c37e81 100644 --- a/libs/JSystem/JParticle/JPATexture.cpp +++ b/libs/JSystem/JParticle/JPATexture.cpp @@ -7,67 +7,11 @@ #include "dol2asm.h" #include "dolphin/types.h" -// -// Types: -// - -struct ResTIMG {}; - -struct JUTTexture { - /* 802DE234 */ ~JUTTexture(); - /* 802DE2A8 */ void storeTIMG(ResTIMG const*, u8); -}; - -struct JPATexture { - /* 8027D7D4 */ JPATexture(u8 const*); - /* 8027D83C */ ~JPATexture(); -}; - -// -// Forward References: -// - -extern "C" void __ct__10JPATextureFPCUc(); -extern "C" void __dt__10JPATextureFv(); - -// -// External References: -// - -extern "C" void __dl__FPv(); -extern "C" void __dt__10JUTTextureFv(); -extern "C" void storeTIMG__10JUTTextureFPC7ResTIMGUc(); - -// -// Declarations: -// - -/* ############################################################################################## */ -/* 803C4598-803C45A8 0216B8 000C+04 2/2 0/0 0/0 .data __vt__10JPATexture */ -SECTION_DATA extern void* __vt__10JPATexture[3 + 1 /* padding */] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__10JPATextureFv, - /* padding */ - NULL, -}; - /* 8027D7D4-8027D83C 278114 0068+00 0/0 1/1 0/0 .text __ct__10JPATextureFPCUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JPATexture::JPATexture(u8 const* param_0) { - nofralloc -#include "asm/JSystem/JParticle/JPATexture/__ct__10JPATextureFPCUc.s" +JPATexture::JPATexture(u8 const* pData) { + mpData = (const JPATextureData*)pData; + mTexture.storeTIMG(&mpData->mResTIMG, (u8)0); } -#pragma pop /* 8027D83C-8027D8A0 27817C 0064+00 1/0 0/0 0/0 .text __dt__10JPATextureFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JPATexture::~JPATexture() { - nofralloc -#include "asm/JSystem/JParticle/JPATexture/__dt__10JPATextureFv.s" -} -#pragma pop +JPATexture::~JPATexture() {} diff --git a/src/d/a/d_a_alink.cpp b/src/d/a/d_a_alink.cpp index 124c12632e..dc78fc43d9 100644 --- a/src/d/a/d_a_alink.cpp +++ b/src/d/a/d_a_alink.cpp @@ -3238,7 +3238,6 @@ extern "C" void entryTevRegAnimator__16J3DMaterialTableFP15J3DAnmTevRegKey(); extern "C" void load__20J3DAnmLoaderDataBaseFPCv24J3DAnmLoaderDataBaseFlag(); extern "C" void JMAEulerToQuat__FsssP10Quaternion(); extern "C" void GXClearVtxDesc(); -extern "C" void GXSetChanAmbColor(); extern "C" void GXLoadNrmMtxImm(); extern "C" void __register_global_object(); extern "C" void __destroy_arr(); diff --git a/src/d/d_drawlist.cpp b/src/d/d_drawlist.cpp index 65313866f8..441c99ea92 100644 --- a/src/d/d_drawlist.cpp +++ b/src/d/d_drawlist.cpp @@ -258,16 +258,13 @@ extern "C" void frameInit__13J3DDrawBufferFv(); extern "C" void entryImm__13J3DDrawBufferFP9J3DPacketUs(); extern "C" void draw__13J3DDrawBufferCFv(); extern "C" void GXClearVtxDesc(); -extern "C" void GXSetArray(); extern "C" void GXPixModeSync(); extern "C" void GXPeekZ(); -extern "C" void GXSetPointSize(); extern "C" void GXGetTexObjWidth(); extern "C" void GXGetTexObjHeight(); extern "C" void GXGetTexObjWrapS(); extern "C" void GXGetTexObjWrapT(); extern "C" void GXGetTexObjTlut(); -extern "C" void GXSetColorUpdate(); extern "C" void __destroy_arr(); extern "C" void __construct_array(); extern "C" void _savefpr_26(); @@ -1985,7 +1982,7 @@ SECTION_DATA static _GXColor l_imageDrawColor[4] = {{0xFF, 0x00, 0x00, 0x00}, /* 803A8D8C-803A8D9C 005EAC 0010+00 0/1 0/0 0/0 .data l_tevColorChan$5438 */ #pragma push #pragma force_active on -SECTION_DATA static GXTevColor l_tevColorChan[4] = {GX_CH_RED, GX_CH_BLUE, GX_CH_GREEN, +SECTION_DATA static GXTevColor l_tevColorChan[4] = {GX_CH_RED, GX_CH_GREEN, GX_CH_BLUE, GX_CH_ALPHA}; #pragma pop diff --git a/src/d/kankyo/d_kankyo.cpp b/src/d/kankyo/d_kankyo.cpp index ade576a67a..b70262a10d 100644 --- a/src/d/kankyo/d_kankyo.cpp +++ b/src/d/kankyo/d_kankyo.cpp @@ -337,7 +337,6 @@ extern "C" void setEffectMtx__13J3DTexMtxInfoFPA4_f(); extern "C" void simpleCalcMaterial__12J3DModelDataFUsPA4_f(); extern "C" void init__12J3DFrameCtrlFs(); extern "C" void GXInitLightAttn(); -extern "C" void GXSetChanAmbColor(); extern "C" void __register_global_object(); extern "C" void __destroy_arr(); extern "C" void __construct_array(); diff --git a/src/d/particle/d_particle.cpp b/src/d/particle/d_particle.cpp index d968dc9a1d..0dc21219a2 100644 --- a/src/d/particle/d_particle.cpp +++ b/src/d/particle/d_particle.cpp @@ -33,11 +33,6 @@ struct daPy_py_c { /* 8015F424 */ void checkNowWolfEyeUp(); }; -struct JPABaseParticle { - /* 80280548 */ void getWidth(JPABaseEmitter const*) const; - /* 80280568 */ void getHeight(JPABaseEmitter const*) const; -}; - struct dPa_windPcallBack { /* 8004B4E0 */ void execute(JPABaseEmitter*, JPABaseParticle*); /* 8004FF2C */ ~dPa_windPcallBack(); @@ -48,26 +43,6 @@ struct dPa_wbPcallBack_c { /* 8004FECC */ ~dPa_wbPcallBack_c(); }; -struct JPADrawInfo {}; - -struct JGeometry { - template - struct TVec3 {}; - /* TVec3 */ - struct TVec3__template0 {}; -}; - -struct JPAEmitterManager { - /* 8027DCA0 */ JPAEmitterManager(u32, u32, JKRHeap*, u8, u8); - /* 8027DEBC */ void createSimpleEmitterID(JGeometry::TVec3 const&, u16, u8, u8, - JPAEmitterCallBack*, JPAParticleCallBack*); - /* 8027DFA0 */ void calc(u8); - /* 8027E028 */ void draw(JPADrawInfo const*, u8); - /* 8027E220 */ void forceDeleteAllEmitter(); - /* 8027E344 */ void entryResourceManager(JPAResourceManager*, u8); - /* 8027E354 */ void clearResourceManager(u8); -}; - struct dPa_simpleData_c { /* 8004B024 */ ~dPa_simpleData_c(); /* 8004B060 */ dPa_simpleData_c(); @@ -466,12 +441,8 @@ extern "C" void removeTexNoAnimator__16J3DMaterialTableFP16J3DAnmTexPattern(); extern "C" void removeTevRegAnimator__16J3DMaterialTableFP15J3DAnmTevRegKey(); extern "C" void entryTexNoAnimator__16J3DMaterialTableFP16J3DAnmTexPattern(); extern "C" void entryTevRegAnimator__16J3DMaterialTableFP15J3DAnmTevRegKey(); -extern "C" void GXClearVtxDesc(); extern "C" void GXInvalidateVtxCache(); extern "C" void GXFlush(); -extern "C" void GXEnableTexOffsets(); -extern "C" void GXSetChanAmbColor(); -extern "C" void GXSetColorUpdate(); extern "C" void GXLoadNrmMtxImm(); extern "C" void __register_global_object(); extern "C" void __destroy_new_array(); diff --git a/src/f_op/f_op_actor_mng.cpp b/src/f_op/f_op_actor_mng.cpp index 866b1d5dd8..31214dd964 100644 --- a/src/f_op/f_op_actor_mng.cpp +++ b/src/f_op/f_op_actor_mng.cpp @@ -1053,7 +1053,7 @@ s32 fopAcM_checkCullingBox(Mtx pMtx, f32 x1, f32 y1, f32 z1, f32 x2, f32 y2, f32 Vec tmp1 = {x1, y1, z1}; Vec tmp2 = {x2, y2, z2}; Mtx tmpMtx; - PSMTXConcat(j3dSys.mMtx, pMtx, tmpMtx); + PSMTXConcat(j3dSys.mViewMtx, pMtx, tmpMtx); return mDoLib_clipper::mClipper.clip(tmpMtx, &tmp2, &tmp1) != 0; } diff --git a/src/m_Do/m_Do_ext.cpp b/src/m_Do/m_Do_ext.cpp index e850d25c3e..18c0856a13 100644 --- a/src/m_Do/m_Do_ext.cpp +++ b/src/m_Do/m_Do_ext.cpp @@ -527,7 +527,6 @@ extern "C" void JMAEulerToQuat__FsssP10Quaternion(); extern "C" void JMAQuatLerp__FPC10QuaternionPC10QuaternionfP10Quaternion(); extern "C" void DCStoreRangeNoSync(); extern "C" void GXClearVtxDesc(); -extern "C" void GXSetArray(); extern "C" void GXGetTexObjWidth(); extern "C" void GXGetTexObjHeight(); extern "C" void GXSetTexCoordScaleManually(); diff --git a/src/m_Do/m_Do_lib.cpp b/src/m_Do/m_Do_lib.cpp index 5d49d2f4a0..ee74a13928 100644 --- a/src/m_Do/m_Do_lib.cpp +++ b/src/m_Do/m_Do_lib.cpp @@ -31,7 +31,6 @@ extern "C" f32 mFovyRate__14mDoLib_clipper; extern "C" void init__11J3DUClipperFv(); extern "C" void calcViewFrustum__11J3DUClipperFv(); extern "C" void __dl__FPv(); -extern "C" void PSMTXMultVec(); extern "C" void __register_global_object(); extern "C" void _savegpr_29(); extern "C" void _restgpr_29();