From f1f9cc713d57df482fc8ea1ec6b73a928f088d21 Mon Sep 17 00:00:00 2001 From: "Jasper St. Pierre" Date: Sat, 23 Apr 2022 22:17:28 -0700 Subject: [PATCH] J3DShape/J3DShapeMtx: More work --- .../addTexMtxIndexInVcd__8J3DShapeF7_GXAttr.s | 67 ----- ...TScale__8J3DShapeFRC3VecPA3_A3_fPA3_A3_f.s | 35 --- .../J3DShape/countBumpMtxNum__8J3DShapeCFv.s | 31 --- .../J3DShape/draw__8J3DShapeCFv.s | 19 -- .../J3DShape/simpleDrawCache__8J3DShapeCFv.s | 67 ----- .../J3DShapeMtx/getType__11J3DShapeMtxCFv.s | 4 - .../getType__16J3DShapeMtxMultiCFv.s | 4 - .../getType__21J3DShapeMtxConcatViewCFv.s | 4 - ...getType__26J3DShapeMtxMultiConcatViewCFv.s | 4 - ...etType__27J3DShapeMtxBBoardConcatViewCFv.s | 4 - ...tType__28J3DShapeMtxYBBoardConcatViewCFv.s | 4 - .../getUseMtxIndex__11J3DShapeMtxCFUs.s | 3 - .../getUseMtxIndex__16J3DShapeMtxMultiCFUs.s | 5 - ...xIndex__26J3DShapeMtxMultiConcatViewCFUs.s | 5 - .../getUseMtxNum__16J3DShapeMtxMultiCFv.s | 3 - ...eMtxNum__26J3DShapeMtxMultiConcatViewCFv.s | 3 - .../loadMtxIndx_NCPU__11J3DShapeMtxCFiUs.s | 20 -- .../loadMtxIndx_PCPU__11J3DShapeMtxCFiUs.s | 25 -- .../loadMtxIndx_PNCPU__11J3DShapeMtxCFiUs.s | 23 -- .../loadMtxIndx_PNGP__11J3DShapeMtxCFiUs.s | 18 -- .../JSystem/J3DGraphAnimator/J3DJointTree.h | 1 + .../JSystem/J3DGraphAnimator/J3DModelData.h | 3 +- include/JSystem/J3DGraphBase/J3DShape.h | 2 +- include/JSystem/J3DGraphBase/J3DShapeMtx.h | 31 ++- include/JSystem/J3DGraphBase/J3DSys.h | 3 + include/dolphin/gx/GX.h | 6 +- libs/JSystem/J3DGraphBase/J3DShape.cpp | 95 +++++-- libs/JSystem/J3DGraphBase/J3DShapeMtx.cpp | 253 +++++++----------- 28 files changed, 192 insertions(+), 550 deletions(-) delete mode 100644 asm/JSystem/J3DGraphBase/J3DShape/addTexMtxIndexInVcd__8J3DShapeF7_GXAttr.s delete mode 100644 asm/JSystem/J3DGraphBase/J3DShape/calcNBTScale__8J3DShapeFRC3VecPA3_A3_fPA3_A3_f.s delete mode 100644 asm/JSystem/J3DGraphBase/J3DShape/countBumpMtxNum__8J3DShapeCFv.s delete mode 100644 asm/JSystem/J3DGraphBase/J3DShape/draw__8J3DShapeCFv.s delete mode 100644 asm/JSystem/J3DGraphBase/J3DShape/simpleDrawCache__8J3DShapeCFv.s delete mode 100644 asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__11J3DShapeMtxCFv.s delete mode 100644 asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__16J3DShapeMtxMultiCFv.s delete mode 100644 asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__21J3DShapeMtxConcatViewCFv.s delete mode 100644 asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__26J3DShapeMtxMultiConcatViewCFv.s delete mode 100644 asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__27J3DShapeMtxBBoardConcatViewCFv.s delete mode 100644 asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__28J3DShapeMtxYBBoardConcatViewCFv.s delete mode 100644 asm/JSystem/J3DGraphBase/J3DShapeMtx/getUseMtxIndex__11J3DShapeMtxCFUs.s delete mode 100644 asm/JSystem/J3DGraphBase/J3DShapeMtx/getUseMtxIndex__16J3DShapeMtxMultiCFUs.s delete mode 100644 asm/JSystem/J3DGraphBase/J3DShapeMtx/getUseMtxIndex__26J3DShapeMtxMultiConcatViewCFUs.s delete mode 100644 asm/JSystem/J3DGraphBase/J3DShapeMtx/getUseMtxNum__16J3DShapeMtxMultiCFv.s delete mode 100644 asm/JSystem/J3DGraphBase/J3DShapeMtx/getUseMtxNum__26J3DShapeMtxMultiConcatViewCFv.s delete mode 100644 asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxIndx_NCPU__11J3DShapeMtxCFiUs.s delete mode 100644 asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxIndx_PCPU__11J3DShapeMtxCFiUs.s delete mode 100644 asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxIndx_PNCPU__11J3DShapeMtxCFiUs.s delete mode 100644 asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxIndx_PNGP__11J3DShapeMtxCFiUs.s diff --git a/asm/JSystem/J3DGraphBase/J3DShape/addTexMtxIndexInVcd__8J3DShapeF7_GXAttr.s b/asm/JSystem/J3DGraphBase/J3DShape/addTexMtxIndexInVcd__8J3DShapeF7_GXAttr.s deleted file mode 100644 index b337c35aecc..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShape/addTexMtxIndexInVcd__8J3DShapeF7_GXAttr.s +++ /dev/null @@ -1,67 +0,0 @@ -lbl_80314CBC: -/* 80314CBC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80314CC0 7C 08 02 A6 */ mflr r0 -/* 80314CC4 90 01 00 14 */ stw r0, 0x14(r1) -/* 80314CC8 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80314CCC 93 C1 00 08 */ stw r30, 8(r1) -/* 80314CD0 7C 7F 1B 78 */ mr r31, r3 -/* 80314CD4 7C 9E 23 78 */ mr r30, r4 -/* 80314CD8 38 60 FF FF */ li r3, -1 -/* 80314CDC 80 9F 00 30 */ lwz r4, 0x30(r31) -/* 80314CE0 38 A0 00 00 */ li r5, 0 -/* 80314CE4 48 00 00 18 */ b lbl_80314CFC -lbl_80314CE8: -/* 80314CE8 2C 00 00 00 */ cmpwi r0, 0 -/* 80314CEC 40 82 00 08 */ bne lbl_80314CF4 -/* 80314CF0 38 60 00 00 */ li r3, 0 -lbl_80314CF4: -/* 80314CF4 38 A5 00 01 */ addi r5, r5, 1 -/* 80314CF8 38 84 00 08 */ addi r4, r4, 8 -lbl_80314CFC: -/* 80314CFC 80 04 00 00 */ lwz r0, 0(r4) -/* 80314D00 2C 00 00 FF */ cmpwi r0, 0xff -/* 80314D04 40 82 FF E4 */ bne lbl_80314CE8 -/* 80314D08 2C 03 FF FF */ cmpwi r3, -1 -/* 80314D0C 41 82 00 84 */ beq lbl_80314D90 -/* 80314D10 38 05 00 02 */ addi r0, r5, 2 -/* 80314D14 54 03 18 38 */ slwi r3, r0, 3 -/* 80314D18 4B FB 9F AD */ bl __nwa__FUl -/* 80314D1C 38 C0 00 00 */ li r6, 0 -/* 80314D20 80 BF 00 30 */ lwz r5, 0x30(r31) -/* 80314D24 7C 67 1B 78 */ mr r7, r3 -/* 80314D28 38 80 00 01 */ li r4, 1 -/* 80314D2C 48 00 00 3C */ b lbl_80314D68 -lbl_80314D30: -/* 80314D30 7C 1E 00 00 */ cmpw r30, r0 -/* 80314D34 40 80 00 1C */ bge lbl_80314D50 -/* 80314D38 54 C0 06 3F */ clrlwi. r0, r6, 0x18 -/* 80314D3C 40 82 00 14 */ bne lbl_80314D50 -/* 80314D40 93 C7 00 00 */ stw r30, 0(r7) -/* 80314D44 90 87 00 04 */ stw r4, 4(r7) -/* 80314D48 38 C0 00 01 */ li r6, 1 -/* 80314D4C 38 E7 00 08 */ addi r7, r7, 8 -lbl_80314D50: -/* 80314D50 80 05 00 00 */ lwz r0, 0(r5) -/* 80314D54 90 07 00 00 */ stw r0, 0(r7) -/* 80314D58 80 05 00 04 */ lwz r0, 4(r5) -/* 80314D5C 90 07 00 04 */ stw r0, 4(r7) -/* 80314D60 38 E7 00 08 */ addi r7, r7, 8 -/* 80314D64 38 A5 00 08 */ addi r5, r5, 8 -lbl_80314D68: -/* 80314D68 80 05 00 00 */ lwz r0, 0(r5) -/* 80314D6C 2C 00 00 FF */ cmpwi r0, 0xff -/* 80314D70 40 82 FF C0 */ bne lbl_80314D30 -/* 80314D74 38 00 00 FF */ li r0, 0xff -/* 80314D78 90 07 00 00 */ stw r0, 0(r7) -/* 80314D7C 38 00 00 00 */ li r0, 0 -/* 80314D80 90 07 00 04 */ stw r0, 4(r7) -/* 80314D84 90 7F 00 30 */ stw r3, 0x30(r31) -/* 80314D88 7F E3 FB 78 */ mr r3, r31 -/* 80314D8C 48 00 04 D5 */ bl makeVcdVatCmd__8J3DShapeFv -lbl_80314D90: -/* 80314D90 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80314D94 83 C1 00 08 */ lwz r30, 8(r1) -/* 80314D98 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80314D9C 7C 08 03 A6 */ mtlr r0 -/* 80314DA0 38 21 00 10 */ addi r1, r1, 0x10 -/* 80314DA4 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShape/calcNBTScale__8J3DShapeFRC3VecPA3_A3_fPA3_A3_f.s b/asm/JSystem/J3DGraphBase/J3DShape/calcNBTScale__8J3DShapeFRC3VecPA3_A3_fPA3_A3_f.s deleted file mode 100644 index 8aad5682908..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShape/calcNBTScale__8J3DShapeFRC3VecPA3_A3_fPA3_A3_f.s +++ /dev/null @@ -1,35 +0,0 @@ -lbl_80314DA8: -/* 80314DA8 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80314DAC 7C 08 02 A6 */ mflr r0 -/* 80314DB0 90 01 00 24 */ stw r0, 0x24(r1) -/* 80314DB4 39 61 00 20 */ addi r11, r1, 0x20 -/* 80314DB8 48 04 D4 1D */ bl _savegpr_27 -/* 80314DBC 7C 7B 1B 78 */ mr r27, r3 -/* 80314DC0 7C 9C 23 78 */ mr r28, r4 -/* 80314DC4 7C BD 2B 78 */ mr r29, r5 -/* 80314DC8 7C DE 33 78 */ mr r30, r6 -/* 80314DCC 3B E0 00 00 */ li r31, 0 -/* 80314DD0 48 00 00 30 */ b lbl_80314E00 -lbl_80314DD4: -/* 80314DD4 80 7B 00 38 */ lwz r3, 0x38(r27) -/* 80314DD8 57 E0 13 BA */ rlwinm r0, r31, 2, 0xe, 0x1d -/* 80314DDC 7C 63 00 2E */ lwzx r3, r3, r0 -/* 80314DE0 7F 84 E3 78 */ mr r4, r28 -/* 80314DE4 7F A5 EB 78 */ mr r5, r29 -/* 80314DE8 7F C6 F3 78 */ mr r6, r30 -/* 80314DEC 81 83 00 00 */ lwz r12, 0(r3) -/* 80314DF0 81 8C 00 1C */ lwz r12, 0x1c(r12) -/* 80314DF4 7D 89 03 A6 */ mtctr r12 -/* 80314DF8 4E 80 04 21 */ bctrl -/* 80314DFC 3B FF 00 01 */ addi r31, r31, 1 -lbl_80314E00: -/* 80314E00 57 E3 04 3E */ clrlwi r3, r31, 0x10 -/* 80314E04 A0 1B 00 0A */ lhz r0, 0xa(r27) -/* 80314E08 7C 03 00 40 */ cmplw r3, r0 -/* 80314E0C 41 80 FF C8 */ blt lbl_80314DD4 -/* 80314E10 39 61 00 20 */ addi r11, r1, 0x20 -/* 80314E14 48 04 D4 0D */ bl _restgpr_27 -/* 80314E18 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80314E1C 7C 08 03 A6 */ mtlr r0 -/* 80314E20 38 21 00 20 */ addi r1, r1, 0x20 -/* 80314E24 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShape/countBumpMtxNum__8J3DShapeCFv.s b/asm/JSystem/J3DGraphBase/J3DShape/countBumpMtxNum__8J3DShapeCFv.s deleted file mode 100644 index 211db9d1379..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShape/countBumpMtxNum__8J3DShapeCFv.s +++ /dev/null @@ -1,31 +0,0 @@ -lbl_80314E28: -/* 80314E28 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80314E2C 7C 08 02 A6 */ mflr r0 -/* 80314E30 90 01 00 24 */ stw r0, 0x24(r1) -/* 80314E34 39 61 00 20 */ addi r11, r1, 0x20 -/* 80314E38 48 04 D3 A1 */ bl _savegpr_28 -/* 80314E3C 3B A0 00 00 */ li r29, 0 -/* 80314E40 3B 80 00 00 */ li r28, 0 -/* 80314E44 83 C3 00 38 */ lwz r30, 0x38(r3) -/* 80314E48 A3 E3 00 0A */ lhz r31, 0xa(r3) -/* 80314E4C 48 00 00 24 */ b lbl_80314E70 -lbl_80314E50: -/* 80314E50 57 80 13 BA */ rlwinm r0, r28, 2, 0xe, 0x1d -/* 80314E54 7C 7E 00 2E */ lwzx r3, r30, r0 -/* 80314E58 81 83 00 00 */ lwz r12, 0(r3) -/* 80314E5C 81 8C 00 10 */ lwz r12, 0x10(r12) -/* 80314E60 7D 89 03 A6 */ mtctr r12 -/* 80314E64 4E 80 04 21 */ bctrl -/* 80314E68 7F BD 1A 14 */ add r29, r29, r3 -/* 80314E6C 3B 9C 00 01 */ addi r28, r28, 1 -lbl_80314E70: -/* 80314E70 57 80 04 3E */ clrlwi r0, r28, 0x10 -/* 80314E74 7C 00 F8 40 */ cmplw r0, r31 -/* 80314E78 41 80 FF D8 */ blt lbl_80314E50 -/* 80314E7C 7F A3 EB 78 */ mr r3, r29 -/* 80314E80 39 61 00 20 */ addi r11, r1, 0x20 -/* 80314E84 48 04 D3 A1 */ bl _restgpr_28 -/* 80314E88 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80314E8C 7C 08 03 A6 */ mtlr r0 -/* 80314E90 38 21 00 20 */ addi r1, r1, 0x20 -/* 80314E94 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShape/draw__8J3DShapeCFv.s b/asm/JSystem/J3DGraphBase/J3DShape/draw__8J3DShapeCFv.s deleted file mode 100644 index 60c6b7128a2..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShape/draw__8J3DShapeCFv.s +++ /dev/null @@ -1,19 +0,0 @@ -lbl_803155E0: -/* 803155E0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 803155E4 7C 08 02 A6 */ mflr r0 -/* 803155E8 90 01 00 14 */ stw r0, 0x14(r1) -/* 803155EC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 803155F0 7C 7F 1B 78 */ mr r31, r3 -/* 803155F4 38 00 00 00 */ li r0, 0 -/* 803155F8 90 0D 90 50 */ stw r0, sOldVcdVatCmd__8J3DShape(r13) -/* 803155FC 4B FF FD 05 */ bl loadPreDrawSetting__8J3DShapeCFv -/* 80315600 7F E3 FB 78 */ mr r3, r31 -/* 80315604 81 9F 00 00 */ lwz r12, 0(r31) -/* 80315608 81 8C 00 0C */ lwz r12, 0xc(r12) -/* 8031560C 7D 89 03 A6 */ mtctr r12 -/* 80315610 4E 80 04 21 */ bctrl -/* 80315614 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80315618 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8031561C 7C 08 03 A6 */ mtlr r0 -/* 80315620 38 21 00 10 */ addi r1, r1, 0x10 -/* 80315624 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShape/simpleDrawCache__8J3DShapeCFv.s b/asm/JSystem/J3DGraphBase/J3DShape/simpleDrawCache__8J3DShapeCFv.s deleted file mode 100644 index b45781bdf51..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShape/simpleDrawCache__8J3DShapeCFv.s +++ /dev/null @@ -1,67 +0,0 @@ -lbl_803156AC: -/* 803156AC 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 803156B0 7C 08 02 A6 */ mflr r0 -/* 803156B4 90 01 00 24 */ stw r0, 0x24(r1) -/* 803156B8 39 61 00 20 */ addi r11, r1, 0x20 -/* 803156BC 48 04 CB 21 */ bl _savegpr_29 -/* 803156C0 7C 7E 1B 78 */ mr r30, r3 -/* 803156C4 80 0D 90 50 */ lwz r0, sOldVcdVatCmd__8J3DShape(r13) -/* 803156C8 80 63 00 2C */ lwz r3, 0x2c(r3) -/* 803156CC 7C 00 18 40 */ cmplw r0, r3 -/* 803156D0 41 82 00 14 */ beq lbl_803156E4 -/* 803156D4 38 80 00 C0 */ li r4, 0xc0 -/* 803156D8 48 04 A8 19 */ bl GXCallDisplayList -/* 803156DC 80 1E 00 2C */ lwz r0, 0x2c(r30) -/* 803156E0 90 0D 90 50 */ stw r0, sOldVcdVatCmd__8J3DShape(r13) -lbl_803156E4: -/* 803156E4 88 0D 90 54 */ lbz r0, data_804515D4(r13) -/* 803156E8 28 00 00 00 */ cmplwi r0, 0 -/* 803156EC 41 82 00 60 */ beq lbl_8031574C -/* 803156F0 88 1E 00 48 */ lbz r0, 0x48(r30) -/* 803156F4 28 00 00 00 */ cmplwi r0, 0 -/* 803156F8 40 82 00 54 */ bne lbl_8031574C -/* 803156FC 80 BE 00 40 */ lwz r5, 0x40(r30) -/* 80315700 38 80 00 08 */ li r4, 8 -/* 80315704 3C 60 CC 01 */ lis r3, 0xCC01 /* 0xCC008000@ha */ -/* 80315708 98 83 80 00 */ stb r4, 0x8000(r3) /* 0xCC008000@l */ -/* 8031570C 38 00 00 30 */ li r0, 0x30 -/* 80315710 98 03 80 00 */ stb r0, -0x8000(r3) -/* 80315714 90 A3 80 00 */ stw r5, -0x8000(r3) -/* 80315718 80 DE 00 44 */ lwz r6, 0x44(r30) -/* 8031571C 98 83 80 00 */ stb r4, -0x8000(r3) -/* 80315720 38 00 00 40 */ li r0, 0x40 -/* 80315724 98 03 80 00 */ stb r0, -0x8000(r3) -/* 80315728 90 C3 80 00 */ stw r6, -0x8000(r3) -/* 8031572C 38 00 00 10 */ li r0, 0x10 -/* 80315730 98 03 80 00 */ stb r0, -0x8000(r3) -/* 80315734 38 00 00 01 */ li r0, 1 -/* 80315738 B0 03 80 00 */ sth r0, -0x8000(r3) -/* 8031573C 38 00 10 18 */ li r0, 0x1018 -/* 80315740 B0 03 80 00 */ sth r0, -0x8000(r3) -/* 80315744 90 A3 80 00 */ stw r5, -0x8000(r3) -/* 80315748 90 C3 80 00 */ stw r6, -0x8000(r3) -lbl_8031574C: -/* 8031574C 7F C3 F3 78 */ mr r3, r30 -/* 80315750 4B FF F7 9D */ bl loadVtxArray__8J3DShapeCFv -/* 80315754 A3 FE 00 0A */ lhz r31, 0xa(r30) -/* 80315758 3B A0 00 00 */ li r29, 0 -/* 8031575C 83 DE 00 3C */ lwz r30, 0x3c(r30) -/* 80315760 48 00 00 1C */ b lbl_8031577C -lbl_80315764: -/* 80315764 57 A0 13 BA */ rlwinm r0, r29, 2, 0xe, 0x1d -/* 80315768 7C 7E 00 2E */ lwzx r3, r30, r0 -/* 8031576C 28 03 00 00 */ cmplwi r3, 0 -/* 80315770 41 82 00 08 */ beq lbl_80315778 -/* 80315774 4B FF F3 61 */ bl draw__12J3DShapeDrawCFv -lbl_80315778: -/* 80315778 3B BD 00 01 */ addi r29, r29, 1 -lbl_8031577C: -/* 8031577C 57 A0 04 3E */ clrlwi r0, r29, 0x10 -/* 80315780 7C 00 F8 40 */ cmplw r0, r31 -/* 80315784 41 80 FF E0 */ blt lbl_80315764 -/* 80315788 39 61 00 20 */ addi r11, r1, 0x20 -/* 8031578C 48 04 CA 9D */ bl _restgpr_29 -/* 80315790 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80315794 7C 08 03 A6 */ mtlr r0 -/* 80315798 38 21 00 20 */ addi r1, r1, 0x20 -/* 8031579C 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__11J3DShapeMtxCFv.s b/asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__11J3DShapeMtxCFv.s deleted file mode 100644 index bba4e297969..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__11J3DShapeMtxCFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_803147E0: -/* 803147E0 3C 60 53 4D */ lis r3, 0x534D /* 0x534D5458@ha */ -/* 803147E4 38 63 54 58 */ addi r3, r3, 0x5458 /* 0x534D5458@l */ -/* 803147E8 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__16J3DShapeMtxMultiCFv.s b/asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__16J3DShapeMtxMultiCFv.s deleted file mode 100644 index f4c08ab8647..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__16J3DShapeMtxMultiCFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_8031470C: -/* 8031470C 3C 60 53 4D */ lis r3, 0x534D /* 0x534D4D4C@ha */ -/* 80314710 38 63 4D 4C */ addi r3, r3, 0x4D4C /* 0x534D4D4C@l */ -/* 80314714 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__21J3DShapeMtxConcatViewCFv.s b/asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__21J3DShapeMtxConcatViewCFv.s deleted file mode 100644 index b555f83b112..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__21J3DShapeMtxConcatViewCFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_8031478C: -/* 8031478C 3C 60 53 4D */ lis r3, 0x534D /* 0x534D4356@ha */ -/* 80314790 38 63 43 56 */ addi r3, r3, 0x4356 /* 0x534D4356@l */ -/* 80314794 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__26J3DShapeMtxMultiConcatViewCFv.s b/asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__26J3DShapeMtxMultiConcatViewCFv.s deleted file mode 100644 index 5f47cd30246..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__26J3DShapeMtxMultiConcatViewCFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_80314688: -/* 80314688 3C 60 53 4D */ lis r3, 0x534D /* 0x534D4D43@ha */ -/* 8031468C 38 63 4D 43 */ addi r3, r3, 0x4D43 /* 0x534D4D43@l */ -/* 80314690 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__27J3DShapeMtxBBoardConcatViewCFv.s b/asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__27J3DShapeMtxBBoardConcatViewCFv.s deleted file mode 100644 index 9baee6b1aec..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__27J3DShapeMtxBBoardConcatViewCFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_80314610: -/* 80314610 3C 60 53 4D */ lis r3, 0x534D /* 0x534D4242@ha */ -/* 80314614 38 63 42 42 */ addi r3, r3, 0x4242 /* 0x534D4242@l */ -/* 80314618 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__28J3DShapeMtxYBBoardConcatViewCFv.s b/asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__28J3DShapeMtxYBBoardConcatViewCFv.s deleted file mode 100644 index eb7b0f16652..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__28J3DShapeMtxYBBoardConcatViewCFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_8031458C: -/* 8031458C 3C 60 53 4D */ lis r3, 0x534D /* 0x534D5942@ha */ -/* 80314590 38 63 59 42 */ addi r3, r3, 0x5942 /* 0x534D5942@l */ -/* 80314594 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeMtx/getUseMtxIndex__11J3DShapeMtxCFUs.s b/asm/JSystem/J3DGraphBase/J3DShapeMtx/getUseMtxIndex__11J3DShapeMtxCFUs.s deleted file mode 100644 index eea0e0c9c69..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeMtx/getUseMtxIndex__11J3DShapeMtxCFUs.s +++ /dev/null @@ -1,3 +0,0 @@ -lbl_8031459C: -/* 8031459C A0 63 00 04 */ lhz r3, 4(r3) -/* 803145A0 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeMtx/getUseMtxIndex__16J3DShapeMtxMultiCFUs.s b/asm/JSystem/J3DGraphBase/J3DShapeMtx/getUseMtxIndex__16J3DShapeMtxMultiCFUs.s deleted file mode 100644 index 10bdbf7c7c0..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeMtx/getUseMtxIndex__16J3DShapeMtxMultiCFUs.s +++ /dev/null @@ -1,5 +0,0 @@ -lbl_80314720: -/* 80314720 80 63 00 0C */ lwz r3, 0xc(r3) -/* 80314724 54 80 0B FC */ rlwinm r0, r4, 1, 0xf, 0x1e -/* 80314728 7C 63 02 2E */ lhzx r3, r3, r0 -/* 8031472C 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeMtx/getUseMtxIndex__26J3DShapeMtxMultiConcatViewCFUs.s b/asm/JSystem/J3DGraphBase/J3DShapeMtx/getUseMtxIndex__26J3DShapeMtxMultiConcatViewCFUs.s deleted file mode 100644 index 34afa503c6c..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeMtx/getUseMtxIndex__26J3DShapeMtxMultiConcatViewCFUs.s +++ /dev/null @@ -1,5 +0,0 @@ -lbl_8031469C: -/* 8031469C 80 63 00 0C */ lwz r3, 0xc(r3) -/* 803146A0 54 80 0B FC */ rlwinm r0, r4, 1, 0xf, 0x1e -/* 803146A4 7C 63 02 2E */ lhzx r3, r3, r0 -/* 803146A8 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeMtx/getUseMtxNum__16J3DShapeMtxMultiCFv.s b/asm/JSystem/J3DGraphBase/J3DShapeMtx/getUseMtxNum__16J3DShapeMtxMultiCFv.s deleted file mode 100644 index c0993bfd8ed..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeMtx/getUseMtxNum__16J3DShapeMtxMultiCFv.s +++ /dev/null @@ -1,3 +0,0 @@ -lbl_80314718: -/* 80314718 A0 63 00 08 */ lhz r3, 8(r3) -/* 8031471C 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeMtx/getUseMtxNum__26J3DShapeMtxMultiConcatViewCFv.s b/asm/JSystem/J3DGraphBase/J3DShapeMtx/getUseMtxNum__26J3DShapeMtxMultiConcatViewCFv.s deleted file mode 100644 index 55405c6a4e5..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeMtx/getUseMtxNum__26J3DShapeMtxMultiConcatViewCFv.s +++ /dev/null @@ -1,3 +0,0 @@ -lbl_80314694: -/* 80314694 A0 63 00 08 */ lhz r3, 8(r3) -/* 80314698 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxIndx_NCPU__11J3DShapeMtxCFiUs.s b/asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxIndx_NCPU__11J3DShapeMtxCFiUs.s deleted file mode 100644 index e3a24c9b7e1..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxIndx_NCPU__11J3DShapeMtxCFiUs.s +++ /dev/null @@ -1,20 +0,0 @@ -lbl_80313188: -/* 80313188 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8031318C 7C 08 02 A6 */ mflr r0 -/* 80313190 90 01 00 14 */ stw r0, 0x14(r1) -/* 80313194 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80313198 7C 9F 23 78 */ mr r31, r4 -/* 8031319C 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */ -/* 803131A0 38 63 4A C8 */ addi r3, r3, j3dSys@l /* 0x80434AC8@l */ -/* 803131A4 4B FF CD 1D */ bl loadPosMtxIndx__6J3DSysCFiUs -/* 803131A8 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */ -/* 803131AC 38 63 4A C8 */ addi r3, r3, j3dSys@l /* 0x80434AC8@l */ -/* 803131B0 80 63 00 40 */ lwz r3, 0x40(r3) -/* 803131B4 80 63 00 30 */ lwz r3, 0x30(r3) -/* 803131B8 1C 9F 00 03 */ mulli r4, r31, 3 -/* 803131BC 4B FF C9 A5 */ bl J3DFifoLoadNrmMtxImm__FPA4_fUl -/* 803131C0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 803131C4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 803131C8 7C 08 03 A6 */ mtlr r0 -/* 803131CC 38 21 00 10 */ addi r1, r1, 0x10 -/* 803131D0 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxIndx_PCPU__11J3DShapeMtxCFiUs.s b/asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxIndx_PCPU__11J3DShapeMtxCFiUs.s deleted file mode 100644 index 5dddc88ff8c..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxIndx_PCPU__11J3DShapeMtxCFiUs.s +++ /dev/null @@ -1,25 +0,0 @@ -lbl_80313128: -/* 80313128 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8031312C 7C 08 02 A6 */ mflr r0 -/* 80313130 90 01 00 14 */ stw r0, 0x14(r1) -/* 80313134 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80313138 93 C1 00 08 */ stw r30, 8(r1) -/* 8031313C 7C 9E 23 78 */ mr r30, r4 -/* 80313140 7C BF 2B 78 */ mr r31, r5 -/* 80313144 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */ -/* 80313148 38 63 4A C8 */ addi r3, r3, j3dSys@l /* 0x80434AC8@l */ -/* 8031314C 80 63 00 40 */ lwz r3, 0x40(r3) -/* 80313150 80 63 00 30 */ lwz r3, 0x30(r3) -/* 80313154 1C 9E 00 03 */ mulli r4, r30, 3 -/* 80313158 4B FF C9 89 */ bl J3DFifoLoadPosMtxImm__FPA4_fUl -/* 8031315C 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */ -/* 80313160 38 63 4A C8 */ addi r3, r3, j3dSys@l /* 0x80434AC8@l */ -/* 80313164 7F C4 F3 78 */ mr r4, r30 -/* 80313168 7F E5 FB 78 */ mr r5, r31 -/* 8031316C 4B FF CD 79 */ bl loadNrmMtxIndx__6J3DSysCFiUs -/* 80313170 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80313174 83 C1 00 08 */ lwz r30, 8(r1) -/* 80313178 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8031317C 7C 08 03 A6 */ mtlr r0 -/* 80313180 38 21 00 10 */ addi r1, r1, 0x10 -/* 80313184 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxIndx_PNCPU__11J3DShapeMtxCFiUs.s b/asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxIndx_PNCPU__11J3DShapeMtxCFiUs.s deleted file mode 100644 index b7a6bf538cc..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxIndx_PNCPU__11J3DShapeMtxCFiUs.s +++ /dev/null @@ -1,23 +0,0 @@ -lbl_803131D4: -/* 803131D4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 803131D8 7C 08 02 A6 */ mflr r0 -/* 803131DC 90 01 00 14 */ stw r0, 0x14(r1) -/* 803131E0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 803131E4 93 C1 00 08 */ stw r30, 8(r1) -/* 803131E8 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */ -/* 803131EC 3B E3 4A C8 */ addi r31, r3, j3dSys@l /* 0x80434AC8@l */ -/* 803131F0 80 7F 00 40 */ lwz r3, 0x40(r31) -/* 803131F4 80 63 00 30 */ lwz r3, 0x30(r3) -/* 803131F8 1F C4 00 03 */ mulli r30, r4, 3 -/* 803131FC 7F C4 F3 78 */ mr r4, r30 -/* 80313200 4B FF C8 E1 */ bl J3DFifoLoadPosMtxImm__FPA4_fUl -/* 80313204 80 7F 00 40 */ lwz r3, 0x40(r31) -/* 80313208 80 63 00 30 */ lwz r3, 0x30(r3) -/* 8031320C 7F C4 F3 78 */ mr r4, r30 -/* 80313210 4B FF C9 51 */ bl J3DFifoLoadNrmMtxImm__FPA4_fUl -/* 80313214 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80313218 83 C1 00 08 */ lwz r30, 8(r1) -/* 8031321C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80313220 7C 08 03 A6 */ mtlr r0 -/* 80313224 38 21 00 10 */ addi r1, r1, 0x10 -/* 80313228 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxIndx_PNGP__11J3DShapeMtxCFiUs.s b/asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxIndx_PNGP__11J3DShapeMtxCFiUs.s deleted file mode 100644 index 71d459bd1f6..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxIndx_PNGP__11J3DShapeMtxCFiUs.s +++ /dev/null @@ -1,18 +0,0 @@ -lbl_803130E4: -/* 803130E4 38 00 00 20 */ li r0, 0x20 -/* 803130E8 3C C0 CC 01 */ lis r6, 0xCC01 /* 0xCC008000@ha */ -/* 803130EC 98 06 80 00 */ stb r0, 0x8000(r6) /* 0xCC008000@l */ -/* 803130F0 B0 A6 80 00 */ sth r5, -0x8000(r6) -/* 803130F4 1C 04 00 0C */ mulli r0, r4, 0xc -/* 803130F8 54 00 04 3E */ clrlwi r0, r0, 0x10 -/* 803130FC 60 00 B0 00 */ ori r0, r0, 0xb000 -/* 80313100 B0 06 80 00 */ sth r0, -0x8000(r6) -/* 80313104 38 00 00 28 */ li r0, 0x28 -/* 80313108 98 06 80 00 */ stb r0, -0x8000(r6) -/* 8031310C B0 A6 80 00 */ sth r5, -0x8000(r6) -/* 80313110 1C 64 00 09 */ mulli r3, r4, 9 -/* 80313114 38 03 04 00 */ addi r0, r3, 0x400 -/* 80313118 54 00 04 3E */ clrlwi r0, r0, 0x10 -/* 8031311C 60 00 80 00 */ ori r0, r0, 0x8000 -/* 80313120 B0 06 80 00 */ sth r0, -0x8000(r6) -/* 80313124 4E 80 00 20 */ blr diff --git a/include/JSystem/J3DGraphAnimator/J3DJointTree.h b/include/JSystem/J3DGraphAnimator/J3DJointTree.h index 181d3554f5b..b8e82673399 100644 --- a/include/JSystem/J3DGraphAnimator/J3DJointTree.h +++ b/include/JSystem/J3DGraphAnimator/J3DJointTree.h @@ -37,6 +37,7 @@ public: J3DJoint* getRootNode() { return mRootNode; } J3DJoint* getJointNodePointer(u16 idx) const { return mJointNodePointer[idx]; } J3DMtxCalc* getBasicMtxCalc() const { return mBasicMtxCalc; } + Mtx& getInvJointMtx(s32 idx) const { return mInvJointMtx[idx]; } private: /* 0x04 */ J3DModelHierarchy* mHierarchy; diff --git a/include/JSystem/J3DGraphAnimator/J3DModelData.h b/include/JSystem/J3DGraphAnimator/J3DModelData.h index 12e98f3869e..56b896c9267 100644 --- a/include/JSystem/J3DGraphAnimator/J3DModelData.h +++ b/include/JSystem/J3DGraphAnimator/J3DModelData.h @@ -33,12 +33,13 @@ public: J3DShape* getShapeNodePointer(u16 idx) const { return mShapeTable.getShapeNodePointer(idx); } J3DJoint* getJointNodePointer(u16 idx) const { return mJointTree.getJointNodePointer(idx); } J3DJointTree& getJointTree() { return mJointTree; } + Mtx& getInvJointMtx(s32 idx) const { return mJointTree.getInvJointMtx(idx); } J3DTexture* getTexture() const { return mMaterialTable.getTexture(); } JUTNameTab* getTextureName() const { return mMaterialTable.getTextureName(); } u16 getWEvlpMtxNum() const { return mJointTree.getWEvlpMtxNum(); } void* getVtxPosArray() const { return mVertexData.getVtxPosArray(); } void* getVtxNrmArray() const { return mVertexData.getVtxNrmArray(); } - _GXColor* getVtxColorArray(u8 idx) const { return mVertexData.getVtxColorArray(idx); } + GXColor* getVtxColorArray(u8 idx) const { return mVertexData.getVtxColorArray(idx); } bool checkFlag(u32 flag) const { return !!(mFlags & flag); } bool checkBumpFlag() const { return mbHasBumpArray; } bool checkBBoardFlag() const { return mbHasBillboard == 1; } diff --git a/include/JSystem/J3DGraphBase/J3DShape.h b/include/JSystem/J3DGraphBase/J3DShape.h index e2d0cccae9f..5bac7d8ddf7 100644 --- a/include/JSystem/J3DGraphBase/J3DShape.h +++ b/include/JSystem/J3DGraphBase/J3DShape.h @@ -58,7 +58,7 @@ public: /* 80314BB8 */ void addTexMtxIndexInDL(_GXAttr, u32); /* 80314CBC */ void addTexMtxIndexInVcd(_GXAttr); /* 80314DA8 */ void calcNBTScale(Vec const&, f32 (*)[3][3], f32 (*)[3][3]); - /* 80314E28 */ void countBumpMtxNum() const; + /* 80314E28 */ u32 countBumpMtxNum() const; /* 80314EEC */ void loadVtxArray() const; /* 80314F5C */ bool isSameVcdVatCmd(J3DShape*); /* 80314F98 */ void makeVtxArrayCmd(); diff --git a/include/JSystem/J3DGraphBase/J3DShapeMtx.h b/include/JSystem/J3DGraphBase/J3DShapeMtx.h index 4b0249ac4cf..0a346b20683 100644 --- a/include/JSystem/J3DGraphBase/J3DShapeMtx.h +++ b/include/JSystem/J3DGraphBase/J3DShapeMtx.h @@ -9,7 +9,12 @@ class J3DTexGenBlock; class J3DDifferedTexMtx { public: - /* 8031322C */ void loadExecute(f32 const (*)[4]); + /* 8031322C */ static void loadExecute(f32 const (*)[4]); + + static inline void load(Mtx m) { + if (sTexGenBlock != NULL) + loadExecute(m); + } static J3DTexGenBlock* sTexGenBlock; static J3DTexMtx* sTexMtxObj; @@ -26,9 +31,9 @@ public: /* 803131D4 */ void loadMtxIndx_PNCPU(int, u16) const; /* 80314798 */ virtual ~J3DShapeMtx(); - /* 803147E0 */ virtual void getType() const; - /* 80273E08 */ virtual bool getUseMtxNum() const; - /* 8031459C */ virtual void getUseMtxIndex(u16) const; + /* 803147E0 */ virtual u32 getType() const; + /* 80273E08 */ virtual u32 getUseMtxNum() const; + /* 8031459C */ virtual u32 getUseMtxIndex(u16) const; /* 80313B94 */ virtual void load() const; /* 80313BF0 */ virtual void calcNBTScale(Vec const&, f32 (*)[3][3], f32 (*)[3][3]); @@ -50,7 +55,7 @@ private: class J3DShapeMtxConcatView : public J3DShapeMtx { public: /* 80314730 */ virtual ~J3DShapeMtxConcatView(); - /* 8031478C */ virtual void getType() const; + /* 803147E0 */ virtual u32 getType() const; /* 80313C54 */ virtual void load() const; /* 80314598 */ virtual void loadNrmMtx(int, u16) const; /* 80313D28 */ virtual void loadNrmMtx(int, u16, f32 (*)[4]) const; @@ -69,23 +74,23 @@ public: class J3DShapeMtxYBBoardConcatView : public J3DShapeMtxConcatView { public: /* 80314520 */ virtual ~J3DShapeMtxYBBoardConcatView(); - /* 8031458C */ virtual void getType() const; + /* 803147E0 */ virtual u32 getType() const; /* 803143E4 */ virtual void load() const; }; class J3DShapeMtxBBoardConcatView : public J3DShapeMtxConcatView { public: /* 803145A4 */ virtual ~J3DShapeMtxBBoardConcatView(); - /* 80314610 */ virtual void getType() const; + /* 803147E0 */ virtual u32 getType() const; /* 803142D4 */ virtual void load() const; }; class J3DShapeMtxMulti : public J3DShapeMtx { public: /* 803146B0 */ virtual ~J3DShapeMtxMulti(); - /* 8031470C */ virtual void getType() const; - /* 80314718 */ virtual void getUseMtxNum() const; - /* 80314720 */ virtual void getUseMtxIndex(u16) const; + /* 803147E0 */ virtual u32 getType() const; + /* 80273E08 */ virtual u32 getUseMtxNum() const; + /* 8031459C */ virtual u32 getUseMtxIndex(u16) const; /* 80313E4C */ virtual void load() const; /* 80313EEC */ virtual void calcNBTScale(Vec const&, f32 (*)[3][3], f32 (*)[3][3]); @@ -97,9 +102,9 @@ private: class J3DShapeMtxMultiConcatView : public J3DShapeMtx { public: /* 8031461C */ virtual ~J3DShapeMtxMultiConcatView(); - /* 80314688 */ virtual void getType() const; - /* 80314694 */ virtual void getUseMtxNum() const; - /* 8031469C */ virtual void getUseMtxIndex(u16) const; + /* 803147E0 */ virtual u32 getType() const; + /* 80273E08 */ virtual u32 getUseMtxNum() const; + /* 8031459C */ virtual u32 getUseMtxIndex(u16) const; /* 80313FA4 */ virtual void load() const; /* 803146AC */ virtual void loadNrmMtx(int, u16) const; /* 8031419C */ virtual void loadNrmMtx(int, u16, f32 (*)[4]) const; diff --git a/include/JSystem/J3DGraphBase/J3DSys.h b/include/JSystem/J3DGraphBase/J3DSys.h index c06c9a5777c..a4bded7e42c 100644 --- a/include/JSystem/J3DGraphBase/J3DSys.h +++ b/include/JSystem/J3DGraphBase/J3DSys.h @@ -118,6 +118,9 @@ struct J3DSys { // Type 1: Xlu Buffer J3DDrawBuffer* getDrawBuffer(int type) { return mDrawBuffer[type]; } + Mtx& getModelDrawMtx(u16 no) const { return mModelDrawMtx[no]; } + J3DShapePacket* getShapePacket() const { return mShapePacket; } + void setViewMtx(Mtx m) { PSMTXCopy(m, mViewMtx); } static Mtx mCurrentMtx; diff --git a/include/dolphin/gx/GX.h b/include/dolphin/gx/GX.h index a6d8bf4df85..baceefa1e8a 100644 --- a/include/dolphin/gx/GX.h +++ b/include/dolphin/gx/GX.h @@ -826,9 +826,9 @@ typedef enum _GXPTTexMtx { }; typedef struct _GXVtxDescList { - GXAttr attr; - GXAttrType type; -} GXVtxDescList; + /* 0x0 */ GXAttr attr; + /* 0x4 */ GXAttrType type; +} GXVtxDescList; // Size: 0x08 typedef enum _GXFBClamp { /* 0x0 */ GX_CLAMP_NONE, diff --git a/libs/JSystem/J3DGraphBase/J3DShape.cpp b/libs/JSystem/J3DGraphBase/J3DShape.cpp index 858f8e214e7..306362d4947 100644 --- a/libs/JSystem/J3DGraphBase/J3DShape.cpp +++ b/libs/JSystem/J3DGraphBase/J3DShape.cpp @@ -90,6 +90,36 @@ asm void J3DShape::initialize() { } #pragma pop +/* 80314BB8-80314CBC 30F4F8 0104+00 0/0 1/1 0/0 .text addTexMtxIndexInDL__8J3DShapeF7_GXAttrUl */ +#ifdef NONMATCHING +void J3DShape::addTexMtxIndexInDL(GXAttr attr, u32 param_1) { + u32 kSize[] = { 0, 1, 1, 2 }; + + s32 pnmtxidxOffs = -1; + s32 attrOffs = -1; + u32 stride = 0; + bool found = false; + + for (GXVtxDescList* vtxDesc = mVtxDesc; vtxDesc->attr != GX_VA_NULL; vtxDesc++) { + if (vtxDesc->attr == GX_VA_PNMTXIDX) + pnmtxidxOffs = stride; + + if (attr < vtxDesc->attr && !found) { + attrOffs = stride; + found = true; + } + + stride = stride + kSize[vtxDesc->type]; + } + + if (pnmtxidxOffs == -1) + return; + + for (u16 i = 0; i < mMtxGroupNum; i++) + mShapeDraw[i]->addTexMtxIndexInDL(stride, attrOffs, param_1); +} +#else + /* ############################################################################################## */ /* 803A1E98-803A1EA8 02E4F8 0010+00 1/1 0/0 0/0 .rodata @697 */ SECTION_RODATA static u8 const lit_697[16] = { @@ -97,7 +127,6 @@ SECTION_RODATA static u8 const lit_697[16] = { }; COMPILER_STRIP_GATE(0x803A1E98, &lit_697); -/* 80314BB8-80314CBC 30F4F8 0104+00 0/0 1/1 0/0 .text addTexMtxIndexInDL__8J3DShapeF7_GXAttrUl */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -107,36 +136,58 @@ asm void J3DShape::addTexMtxIndexInDL(_GXAttr param_0, u32 param_1) { } #pragma pop +#endif + /* 80314CBC-80314DA8 30F5FC 00EC+00 0/0 1/1 0/0 .text addTexMtxIndexInVcd__8J3DShapeF7_GXAttr */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShape::addTexMtxIndexInVcd(_GXAttr param_0) { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShape/addTexMtxIndexInVcd__8J3DShapeF7_GXAttr.s" +void J3DShape::addTexMtxIndexInVcd(GXAttr attr) { + s32 attrIdx = -1; + GXVtxDescList* vtxDesc = mVtxDesc; + s32 attrCount = 0; + + for (; vtxDesc->attr != GX_VA_NULL; attrCount++, vtxDesc++) { + if (vtxDesc->attr == GX_VA_PNMTXIDX) + attrIdx = 0; + } + + if (attrIdx == -1) + return; + + GXVtxDescList* newVtxDesc = new GXVtxDescList[attrCount + 2]; + bool inserted = false; + + vtxDesc = mVtxDesc; + GXVtxDescList* dst = newVtxDesc; + for (; vtxDesc->attr != GX_VA_NULL; dst++, vtxDesc++) { + if ((attr < vtxDesc->attr) && !inserted) { + dst->attr = attr; + dst->type = GX_DIRECT; + inserted = true; + dst++; + } + + *dst = *vtxDesc; + } + + dst->attr = GX_VA_NULL; + dst->type = GX_NONE; + mVtxDesc = newVtxDesc; + makeVcdVatCmd(); } -#pragma pop /* 80314DA8-80314E28 30F6E8 0080+00 0/0 1/1 0/0 .text * calcNBTScale__8J3DShapeFRC3VecPA3_A3_fPA3_A3_f */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShape::calcNBTScale(Vec const& param_0, f32 (*param_1)[3][3], f32 (*param_2)[3][3]) { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShape/calcNBTScale__8J3DShapeFRC3VecPA3_A3_fPA3_A3_f.s" +void J3DShape::calcNBTScale(Vec const& param_0, f32 (*param_1)[3][3], f32 (*param_2)[3][3]) { + for (u16 i = 0; i < mMtxGroupNum; i++) + mShapeMtx[i]->calcNBTScale(param_0, param_1, param_2); } -#pragma pop /* 80314E28-80314E98 30F768 0070+00 0/0 1/1 0/0 .text countBumpMtxNum__8J3DShapeCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShape::countBumpMtxNum() const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShape/countBumpMtxNum__8J3DShapeCFv.s" +u32 J3DShape::countBumpMtxNum() const { + u32 num = 0; + for (u16 i = 0; i < mMtxGroupNum; i++) + num += mShapeMtx[i]->getUseMtxNum(); + return num; } -#pragma pop /* 80314E98-80314EB0 30F7D8 0018+00 1/1 0/0 0/0 .text J3DLoadCPCmd__FUcUl */ void J3DLoadCPCmd(u8 cmd, u32 param) { diff --git a/libs/JSystem/J3DGraphBase/J3DShapeMtx.cpp b/libs/JSystem/J3DGraphBase/J3DShapeMtx.cpp index 1615479a07e..20b5ce966a9 100644 --- a/libs/JSystem/J3DGraphBase/J3DShapeMtx.cpp +++ b/libs/JSystem/J3DGraphBase/J3DShapeMtx.cpp @@ -4,20 +4,13 @@ // #include "JSystem/J3DGraphBase/J3DShapeMtx.h" +#include "JSystem/J3DGraphAnimator/J3DModel.h" +#include "JSystem/J3DGraphAnimator/J3DModelData.h" +#include "JSystem/J3DGraphBase/J3DPacket.h" +#include "JSystem/J3DGraphBase/J3DSys.h" #include "dol2asm.h" #include "dolphin/types.h" -// -// Types: -// - -struct J3DTextureSRTInfo {}; - -struct J3DSys { - /* 8030FEC0 */ void loadPosMtxIndx(int, u16) const; - /* 8030FEE4 */ void loadNrmMtxIndx(int, u16) const; -}; - // // Forward References: // @@ -78,6 +71,12 @@ extern "C" u8 sTexMtxObj__17J3DDifferedTexMtx[4]; // External References: // +void J3DFifoLoadPosMtxImm(Mtx, u32); +void J3DFifoLoadNrmMtxImm(Mtx, u32); +void J3DFifoLoadNrmMtxImm3x3(Mtx33, u32); +void J3DFifoLoadNrmMtxToTexMtx(Mtx, u32); +void J3DFifoLoadNrmMtxToTexMtx33(Mtx33, u32); + extern "C" bool getUseMtxNum__11J3DShapeMtxCFv(); extern "C" void __dl__FPv(); extern "C" void J3DFifoLoadPosMtxImm__FPA4_fUl(); @@ -97,8 +96,6 @@ extern "C" void J3DGetTextureMtxMayaOld__FRC17J3DTextureSRTInfoPA4_f(); extern "C" void J3DScaleNrmMtx__FPA4_fRC3Vec(); extern "C" void J3DScaleNrmMtx33__FPA3_fRC3Vec(); extern "C" void J3DMtxProjConcat__FPA4_fPA4_fPA4_f(); -extern "C" void GXSetArray(); -extern "C" void GXLoadTexMtxImm(); extern "C" void __ptmf_scall(); extern "C" void _savegpr_22(); extern "C" void _savegpr_25(); @@ -110,7 +107,6 @@ extern "C" void _restgpr_25(); extern "C" void _restgpr_27(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); -extern "C" extern u8 j3dSys[284]; // // Declarations: @@ -135,45 +131,37 @@ void J3DShapeMtx::resetMtxLoadCache() { sMtxLoadCache[0] = 0xFFFF; } -/* 803130E4-80313128 30DA24 0044+00 1/0 0/0 0/0 .text loadMtxIndx_PNGP__11J3DShapeMtxCFiUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapeMtx::loadMtxIndx_PNGP(int param_0, u16 param_1) const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxIndx_PNGP__11J3DShapeMtxCFiUs.s" +static inline void J3DFifoLoadIndx(u8 cmd, u16 indx, u16 addr) { + GFX_FIFO(u8) = cmd; + GFX_FIFO(u16) = indx; + GFX_FIFO(u16) = addr; +} + +/* 803130E4-80313128 30DA24 0044+00 1/0 0/0 0/0 .text loadMtxIndx_PNGP__11J3DShapeMtxCFiUs */ +void J3DShapeMtx::loadMtxIndx_PNGP(int slot, u16 indx) const { + // inlined J3DFifoLoadPosMtxIndx + J3DFifoLoadIndx(GX_CMD_LOAD_INDX_A, indx, 0xB000 | ((u16)(slot * 0x0C))); + // inlined J3DFifoLoadNrmMtxIndx3x3 + J3DFifoLoadIndx(GX_CMD_LOAD_INDX_B, indx, 0x8000 | ((u16)((slot * 0x09) + 0x400))); } -#pragma pop /* 80313128-80313188 30DA68 0060+00 1/0 0/0 0/0 .text loadMtxIndx_PCPU__11J3DShapeMtxCFiUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapeMtx::loadMtxIndx_PCPU(int param_0, u16 param_1) const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxIndx_PCPU__11J3DShapeMtxCFiUs.s" +void J3DShapeMtx::loadMtxIndx_PCPU(int slot, u16 indx) const { + J3DFifoLoadPosMtxImm(*j3dSys.getShapePacket()->getBaseMtxPtr(), slot * 3); + j3dSys.loadNrmMtxIndx(slot, indx); } -#pragma pop /* 80313188-803131D4 30DAC8 004C+00 1/0 0/0 0/0 .text loadMtxIndx_NCPU__11J3DShapeMtxCFiUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapeMtx::loadMtxIndx_NCPU(int param_0, u16 param_1) const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxIndx_NCPU__11J3DShapeMtxCFiUs.s" +void J3DShapeMtx::loadMtxIndx_NCPU(int slot, u16 indx) const { + j3dSys.loadPosMtxIndx(slot, indx); + J3DFifoLoadNrmMtxImm(*j3dSys.getShapePacket()->getBaseMtxPtr(), slot * 3); } -#pragma pop /* 803131D4-8031322C 30DB14 0058+00 1/0 0/0 0/0 .text loadMtxIndx_PNCPU__11J3DShapeMtxCFiUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapeMtx::loadMtxIndx_PNCPU(int param_0, u16 param_1) const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxIndx_PNCPU__11J3DShapeMtxCFiUs.s" +void J3DShapeMtx::loadMtxIndx_PNCPU(int slot, u16 indx) const { + J3DFifoLoadPosMtxImm(*j3dSys.getShapePacket()->getBaseMtxPtr(), slot * 3); + J3DFifoLoadNrmMtxImm(*j3dSys.getShapePacket()->getBaseMtxPtr(), slot * 3); } -#pragma pop /* ############################################################################################## */ /* 803CD990-803CD99C -00001 000C+00 1/1 0/0 0/0 .data @832 */ @@ -409,58 +397,60 @@ asm void J3DDifferedTexMtx::loadExecute(f32 const (*param_0)[4]) { /* 80313828-803138C8 30E168 00A0+00 1/0 0/0 0/0 .text * loadMtxConcatView_PNGP__21J3DShapeMtxConcatViewCFiUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapeMtxConcatView::loadMtxConcatView_PNGP(int param_0, u16 param_1) const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxConcatView_PNGP__21J3DShapeMtxConcatViewCFiUs.s" +void J3DShapeMtxConcatView::loadMtxConcatView_PNGP(int slot, u16 drw) const { + Mtx m; + PSMTXConcat(*j3dSys.getShapePacket()->getBaseMtxPtr(), j3dSys.getModelDrawMtx(drw), m); + J3DDifferedTexMtx::load(m); + J3DFifoLoadPosMtxImm(m, slot * 3); + loadNrmMtx(slot, drw, m); } -#pragma pop /* 803138C8-8031396C 30E208 00A4+00 2/0 0/0 0/0 .text * loadMtxConcatView_PCPU__21J3DShapeMtxConcatViewCFiUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapeMtxConcatView::loadMtxConcatView_PCPU(int param_0, u16 param_1) const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxConcatView_PCPU__21J3DShapeMtxConcatViewCFiUs.s" +void J3DShapeMtxConcatView::loadMtxConcatView_PCPU(int slot, u16 drw) const { + Mtx m; + PSMTXConcat(*j3dSys.getShapePacket()->getBaseMtxPtr(), j3dSys.getModelDrawMtx(drw), m); + J3DDifferedTexMtx::load(m); + J3DFifoLoadPosMtxImm(*j3dSys.getShapePacket()->getBaseMtxPtr(), slot * 3); + loadNrmMtx(slot, drw, m); } -#pragma pop /* 8031396C-80313A14 30E2AC 00A8+00 2/0 0/0 0/0 .text * loadMtxConcatView_NCPU__21J3DShapeMtxConcatViewCFiUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapeMtxConcatView::loadMtxConcatView_NCPU(int param_0, u16 param_1) const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxConcatView_NCPU__21J3DShapeMtxConcatViewCFiUs.s" +void J3DShapeMtxConcatView::loadMtxConcatView_NCPU(int slot, u16 drw) const { + Mtx m; + PSMTXConcat(*j3dSys.getShapePacket()->getBaseMtxPtr(), j3dSys.getModelDrawMtx(drw), m); + J3DDifferedTexMtx::load(m); + J3DFifoLoadPosMtxImm(m, slot * 3); + J3DFifoLoadNrmMtxImm(*j3dSys.getShapePacket()->getBaseMtxPtr(), slot * 3); + if (J3DShapeMtx::sTexMtxLoadType == 0x2000) + J3DFifoLoadNrmMtxToTexMtx(*j3dSys.getShapePacket()->getBaseMtxPtr(), slot * 3 + GX_TEXMTX0); } -#pragma pop /* 80313A14-80313AC8 30E354 00B4+00 2/0 0/0 0/0 .text * loadMtxConcatView_PNCPU__21J3DShapeMtxConcatViewCFiUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapeMtxConcatView::loadMtxConcatView_PNCPU(int param_0, u16 param_1) const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxConcatView_PNCPU__21J3DShapeMtxConcatViewCFiUs.s" +void J3DShapeMtxConcatView::loadMtxConcatView_PNCPU(int slot, u16 drw) const { + Mtx m; + if (J3DDifferedTexMtx::sTexGenBlock != NULL) { + PSMTXConcat(*j3dSys.getShapePacket()->getBaseMtxPtr(), j3dSys.getModelDrawMtx(drw), m); + J3DDifferedTexMtx::loadExecute(m); + } + J3DFifoLoadPosMtxImm(*j3dSys.getShapePacket()->getBaseMtxPtr(), slot * 3); + J3DFifoLoadNrmMtxImm(*j3dSys.getShapePacket()->getBaseMtxPtr(), slot * 3); + if (J3DShapeMtx::sTexMtxLoadType == 0x2000) + J3DFifoLoadNrmMtxToTexMtx(*j3dSys.getShapePacket()->getBaseMtxPtr(), slot * 3 + GX_TEXMTX0); } -#pragma pop /* 80313AC8-80313B94 30E408 00CC+00 1/0 0/0 0/0 .text * loadMtxConcatView_PNGP_LOD__21J3DShapeMtxConcatViewCFiUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapeMtxConcatView::loadMtxConcatView_PNGP_LOD(int param_0, u16 param_1) const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxConcatView_PNGP_LOD__21J3DShapeMtxConcatViewCFiUs.s" +void J3DShapeMtxConcatView::loadMtxConcatView_PNGP_LOD(int slot, u16 drw) const { + Mtx m; + PSMTXConcat(*j3dSys.getShapePacket()->getBaseMtxPtr(), j3dSys.getModelDrawMtx(drw), m); + PSMTXConcat(m, j3dSys.mModel->getModelData()->getInvJointMtx(drw), m); + J3DDifferedTexMtx::load(m); + J3DFifoLoadPosMtxImm(m, slot * 3); + loadNrmMtx(slot, drw, m); } -#pragma pop /* 80313B94-80313BF0 30E4D4 005C+00 1/0 0/0 0/0 .text load__11J3DShapeMtxCFv */ #pragma push @@ -678,14 +668,9 @@ extern "C" asm void __dt__28J3DShapeMtxYBBoardConcatViewFv() { /* 8031458C-80314598 30EECC 000C+00 1/0 0/0 0/0 .text getType__28J3DShapeMtxYBBoardConcatViewCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapeMtxYBBoardConcatView::getType() const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__28J3DShapeMtxYBBoardConcatViewCFv.s" +u32 J3DShapeMtxYBBoardConcatView::getType() const { + return 'SMYB'; } -#pragma pop /* 80314598-8031459C 30EED8 0004+00 3/0 0/0 0/0 .text loadNrmMtx__21J3DShapeMtxConcatViewCFiUs */ void J3DShapeMtxConcatView::loadNrmMtx(int param_0, u16 param_1) const { @@ -694,14 +679,9 @@ void J3DShapeMtxConcatView::loadNrmMtx(int param_0, u16 param_1) const { /* 8031459C-803145A4 30EEDC 0008+00 4/0 0/0 0/0 .text getUseMtxIndex__11J3DShapeMtxCFUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapeMtx::getUseMtxIndex(u16 param_0) const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/getUseMtxIndex__11J3DShapeMtxCFUs.s" +u32 J3DShapeMtx::getUseMtxIndex(u16 param_0) const { + return mUseMtxIndex; } -#pragma pop /* 803145A4-80314610 30EEE4 006C+00 1/0 0/0 0/0 .text __dt__27J3DShapeMtxBBoardConcatViewFv */ #pragma push @@ -715,14 +695,9 @@ extern "C" asm void __dt__27J3DShapeMtxBBoardConcatViewFv() { #pragma pop /* 80314610-8031461C 30EF50 000C+00 1/0 0/0 0/0 .text getType__27J3DShapeMtxBBoardConcatViewCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapeMtxBBoardConcatView::getType() const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__27J3DShapeMtxBBoardConcatViewCFv.s" +u32 J3DShapeMtxBBoardConcatView::getType() const { + return 'SMBB'; } -#pragma pop /* 8031461C-80314688 30EF5C 006C+00 1/0 0/0 0/0 .text __dt__26J3DShapeMtxMultiConcatViewFv */ #pragma push @@ -736,36 +711,21 @@ extern "C" asm void __dt__26J3DShapeMtxMultiConcatViewFv() { #pragma pop /* 80314688-80314694 30EFC8 000C+00 1/0 0/0 0/0 .text getType__26J3DShapeMtxMultiConcatViewCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapeMtxMultiConcatView::getType() const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__26J3DShapeMtxMultiConcatViewCFv.s" +u32 J3DShapeMtxMultiConcatView::getType() const { + return 'SMMC'; } -#pragma pop /* 80314694-8031469C 30EFD4 0008+00 1/0 0/0 0/0 .text * getUseMtxNum__26J3DShapeMtxMultiConcatViewCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapeMtxMultiConcatView::getUseMtxNum() const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/getUseMtxNum__26J3DShapeMtxMultiConcatViewCFv.s" +u32 J3DShapeMtxMultiConcatView::getUseMtxNum() const { + return mUseMtxNum; } -#pragma pop /* 8031469C-803146AC 30EFDC 0010+00 1/0 0/0 0/0 .text * getUseMtxIndex__26J3DShapeMtxMultiConcatViewCFUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapeMtxMultiConcatView::getUseMtxIndex(u16 param_0) const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/getUseMtxIndex__26J3DShapeMtxMultiConcatViewCFUs.s" +u32 J3DShapeMtxMultiConcatView::getUseMtxIndex(u16 no) const { + return mUseMtxIndex[no]; } -#pragma pop /* 803146AC-803146B0 30EFEC 0004+00 1/0 0/0 0/0 .text * loadNrmMtx__26J3DShapeMtxMultiConcatViewCFiUs */ @@ -785,35 +745,20 @@ extern "C" asm void __dt__16J3DShapeMtxMultiFv() { #pragma pop /* 8031470C-80314718 30F04C 000C+00 1/0 0/0 0/0 .text getType__16J3DShapeMtxMultiCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapeMtxMulti::getType() const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__16J3DShapeMtxMultiCFv.s" +u32 J3DShapeMtxMulti::getType() const { + return 'SMML'; } -#pragma pop /* 80314718-80314720 30F058 0008+00 1/0 0/0 0/0 .text getUseMtxNum__16J3DShapeMtxMultiCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapeMtxMulti::getUseMtxNum() const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/getUseMtxNum__16J3DShapeMtxMultiCFv.s" +u32 J3DShapeMtxMulti::getUseMtxNum() const { + return mUseMtxNum; } -#pragma pop /* 80314720-80314730 30F060 0010+00 1/0 0/0 0/0 .text getUseMtxIndex__16J3DShapeMtxMultiCFUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapeMtxMulti::getUseMtxIndex(u16 param_0) const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/getUseMtxIndex__16J3DShapeMtxMultiCFUs.s" +u32 J3DShapeMtxMulti::getUseMtxIndex(u16 no) const { + return mUseMtxIndex[no]; } -#pragma pop /* 80314730-8031478C 30F070 005C+00 1/0 0/0 0/0 .text __dt__21J3DShapeMtxConcatViewFv */ #pragma push @@ -828,34 +773,18 @@ extern "C" asm void __dt__21J3DShapeMtxConcatViewFv() { /* 8031478C-80314798 30F0CC 000C+00 1/0 0/0 0/0 .text getType__21J3DShapeMtxConcatViewCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapeMtxConcatView::getType() const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__21J3DShapeMtxConcatViewCFv.s" +u32 J3DShapeMtxConcatView::getType() const { + return 'SMCV'; } -#pragma pop /* 80314798-803147E0 30F0D8 0048+00 1/0 0/0 0/0 .text __dt__11J3DShapeMtxFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm J3DShapeMtx::~J3DShapeMtx() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/__dt__11J3DShapeMtxFv.s" +J3DShapeMtx::~J3DShapeMtx() { } -#pragma pop /* 803147E0-803147EC 30F120 000C+00 1/0 0/0 0/0 .text getType__11J3DShapeMtxCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapeMtx::getType() const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__11J3DShapeMtxCFv.s" +u32 J3DShapeMtx::getType() const { + return 'SMTX'; } -#pragma pop /* 803147EC-80314924 30F12C 0138+00 0/0 1/0 0/0 .text __sinit_J3DShapeMtx_cpp */ #pragma push