From e7a6eb10b574f50014699c1b4eba29c9cf6d9dea Mon Sep 17 00:00:00 2001 From: Caroline Madsen <69010899+randomsalience@users.noreply.github.com> Date: Tue, 12 Dec 2023 23:42:38 -0500 Subject: [PATCH] work on J3DShapeMtx (#2002) * work on J3DShapeMtx * update Progress.md --- Progress.md | 14 +- .../J3DShapeMtx/__dt__16J3DShapeMtxMultiFv.s | 26 - .../__dt__21J3DShapeMtxConcatViewFv.s | 26 - .../__dt__26J3DShapeMtxMultiConcatViewFv.s | 30 - .../__dt__27J3DShapeMtxBBoardConcatViewFv.s | 30 - .../__dt__28J3DShapeMtxYBBoardConcatViewFv.s | 30 - .../J3DShapeMtx/__sinit_J3DShapeMtx_cpp.s | 79 -- ...le__11J3DShapeMtxFRC3VecPA3_A3_fPA3_A3_f.s | 26 - ...6J3DShapeMtxMultiFRC3VecPA3_A3_fPA3_A3_f.s | 50 -- ...rmMtx__21J3DShapeMtxConcatViewCFiUsPA4_f.s | 80 -- ...__26J3DShapeMtxMultiConcatViewCFiUsPA4_f.s | 85 -- .../J3DShapeMtx/load__11J3DShapeMtxCFv.s | 24 - .../J3DShapeMtx/load__16J3DShapeMtxMultiCFv.s | 44 - .../load__21J3DShapeMtxConcatViewCFv.s | 54 -- .../load__26J3DShapeMtxMultiConcatViewCFv.s | 136 --- .../load__27J3DShapeMtxBBoardConcatViewCFv.s | 73 -- .../load__28J3DShapeMtxYBBoardConcatViewCFv.s | 86 -- .../JSystem/J3DGraphAnimator/J3DModelData.h | 1 + .../JSystem/J3DGraphAnimator/J3DMtxBuffer.h | 1 + include/JSystem/J3DGraphBase/J3DShapeMtx.h | 81 +- include/JSystem/J3DGraphBase/J3DSys.h | 1 + include/JSystem/J3DGraphBase/J3DTransform.h | 20 + libs/JSystem/J3DGraphBase/J3DShape.cpp | 2 +- libs/JSystem/J3DGraphBase/J3DShapeMtx.cpp | 847 +++++++++--------- libs/JSystem/J3DU/J3DUDL.cpp | 6 +- 25 files changed, 485 insertions(+), 1367 deletions(-) delete mode 100644 asm/JSystem/J3DGraphBase/J3DShapeMtx/__dt__16J3DShapeMtxMultiFv.s delete mode 100644 asm/JSystem/J3DGraphBase/J3DShapeMtx/__dt__21J3DShapeMtxConcatViewFv.s delete mode 100644 asm/JSystem/J3DGraphBase/J3DShapeMtx/__dt__26J3DShapeMtxMultiConcatViewFv.s delete mode 100644 asm/JSystem/J3DGraphBase/J3DShapeMtx/__dt__27J3DShapeMtxBBoardConcatViewFv.s delete mode 100644 asm/JSystem/J3DGraphBase/J3DShapeMtx/__dt__28J3DShapeMtxYBBoardConcatViewFv.s delete mode 100644 asm/JSystem/J3DGraphBase/J3DShapeMtx/__sinit_J3DShapeMtx_cpp.s delete mode 100644 asm/JSystem/J3DGraphBase/J3DShapeMtx/calcNBTScale__11J3DShapeMtxFRC3VecPA3_A3_fPA3_A3_f.s delete mode 100644 asm/JSystem/J3DGraphBase/J3DShapeMtx/calcNBTScale__16J3DShapeMtxMultiFRC3VecPA3_A3_fPA3_A3_f.s delete mode 100644 asm/JSystem/J3DGraphBase/J3DShapeMtx/loadNrmMtx__21J3DShapeMtxConcatViewCFiUsPA4_f.s delete mode 100644 asm/JSystem/J3DGraphBase/J3DShapeMtx/loadNrmMtx__26J3DShapeMtxMultiConcatViewCFiUsPA4_f.s delete mode 100644 asm/JSystem/J3DGraphBase/J3DShapeMtx/load__11J3DShapeMtxCFv.s delete mode 100644 asm/JSystem/J3DGraphBase/J3DShapeMtx/load__16J3DShapeMtxMultiCFv.s delete mode 100644 asm/JSystem/J3DGraphBase/J3DShapeMtx/load__21J3DShapeMtxConcatViewCFv.s delete mode 100644 asm/JSystem/J3DGraphBase/J3DShapeMtx/load__26J3DShapeMtxMultiConcatViewCFv.s delete mode 100644 asm/JSystem/J3DGraphBase/J3DShapeMtx/load__27J3DShapeMtxBBoardConcatViewCFv.s delete mode 100644 asm/JSystem/J3DGraphBase/J3DShapeMtx/load__28J3DShapeMtxYBBoardConcatViewCFv.s diff --git a/Progress.md b/Progress.md index 6cf0f7b523c..06adc6ff15b 100644 --- a/Progress.md +++ b/Progress.md @@ -7,22 +7,22 @@ Section | Percentage | Decompiled (bytes) | Total (bytes) .init | 97.972973% | 9280 | 9472 .extab | 100.000000% | 96 | 96 .extabindex | 100.000000% | 96 | 96 -.text | 35.549238% | 1278544 | 3596544 +.text | 36.010236% | 1295124 | 3596544 .ctors | 100.000000% | 448 | 448 .dtors | 100.000000% | 32 | 32 .rodata | 100.000000% | 193856 | 193856 .data | 100.000000% | 197632 | 197632 .sdata | 100.000000% | 1408 | 1408 .sdata2 | 100.000000% | 20832 | 20832 -Total | 42.343170% | 1702480 | 4020672 +Total | 42.755539% | 1719060 | 4020672 ## Total Section | Percentage | Decompiled (bytes) | Total (bytes) ---|---|---|--- -main.dol | 42.343170% | 1702480 | 4020672 -RELs | 35.045969% | 4030400 | 11500324 -Total | 36.936289% | 5732880 | 15520996 +main.dol | 42.755539% | 1719060 | 4020672 +RELs | 35.047152% | 4030536 | 11500324 +Total | 37.043989% | 5749596 | 15520996 ## RELs @@ -592,7 +592,7 @@ d_a_obj_scannon | 35.209799% | 5404 | 15348 d_a_obj_scannon_crs | 35.204678% | 3612 | 10260 d_a_obj_scannon_ten | 37.738049% | 3884 | 10292 d_a_obj_sekidoor | 43.834383% | 1948 | 4444 -d_a_obj_sekizo | 53.625171% | 1568 | 2924 +d_a_obj_sekizo | 58.276334% | 1704 | 2924 d_a_obj_sekizoa | 32.789446% | 15112 | 46088 d_a_obj_shield | 34.160959% | 3192 | 9344 d_a_obj_sm_door | 39.302885% | 2616 | 6656 @@ -785,4 +785,4 @@ d_a_vrbox2 | 44.907111% | 2804 | 6244 d_a_warp_bug | 100.000000% | 2024 | 2024 d_a_ykgr | 44.400631% | 2252 | 5072 f_pc_profile_lst | 100.000000% | 28156 | 28156 -Total | 35.045969% | 4030400 | 11500324 +Total | 35.047152% | 4030536 | 11500324 diff --git a/asm/JSystem/J3DGraphBase/J3DShapeMtx/__dt__16J3DShapeMtxMultiFv.s b/asm/JSystem/J3DGraphBase/J3DShapeMtx/__dt__16J3DShapeMtxMultiFv.s deleted file mode 100644 index d3e033eee01..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeMtx/__dt__16J3DShapeMtxMultiFv.s +++ /dev/null @@ -1,26 +0,0 @@ -lbl_803146B0: -/* 803146B0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 803146B4 7C 08 02 A6 */ mflr r0 -/* 803146B8 90 01 00 14 */ stw r0, 0x14(r1) -/* 803146BC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 803146C0 7C 7F 1B 79 */ or. r31, r3, r3 -/* 803146C4 41 82 00 30 */ beq lbl_803146F4 -/* 803146C8 3C 60 80 3D */ lis r3, __vt__16J3DShapeMtxMulti@ha /* 0x803CDBFC@ha */ -/* 803146CC 38 03 DB FC */ addi r0, r3, __vt__16J3DShapeMtxMulti@l /* 0x803CDBFC@l */ -/* 803146D0 90 1F 00 00 */ stw r0, 0(r31) -/* 803146D4 41 82 00 10 */ beq lbl_803146E4 -/* 803146D8 3C 60 80 3D */ lis r3, __vt__11J3DShapeMtx@ha /* 0x803CDC44@ha */ -/* 803146DC 38 03 DC 44 */ addi r0, r3, __vt__11J3DShapeMtx@l /* 0x803CDC44@l */ -/* 803146E0 90 1F 00 00 */ stw r0, 0(r31) -lbl_803146E4: -/* 803146E4 7C 80 07 35 */ extsh. r0, r4 -/* 803146E8 40 81 00 0C */ ble lbl_803146F4 -/* 803146EC 7F E3 FB 78 */ mr r3, r31 -/* 803146F0 4B FB A6 4D */ bl __dl__FPv -lbl_803146F4: -/* 803146F4 7F E3 FB 78 */ mr r3, r31 -/* 803146F8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 803146FC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80314700 7C 08 03 A6 */ mtlr r0 -/* 80314704 38 21 00 10 */ addi r1, r1, 0x10 -/* 80314708 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeMtx/__dt__21J3DShapeMtxConcatViewFv.s b/asm/JSystem/J3DGraphBase/J3DShapeMtx/__dt__21J3DShapeMtxConcatViewFv.s deleted file mode 100644 index 9ff81d4d748..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeMtx/__dt__21J3DShapeMtxConcatViewFv.s +++ /dev/null @@ -1,26 +0,0 @@ -lbl_80314730: -/* 80314730 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80314734 7C 08 02 A6 */ mflr r0 -/* 80314738 90 01 00 14 */ stw r0, 0x14(r1) -/* 8031473C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80314740 7C 7F 1B 79 */ or. r31, r3, r3 -/* 80314744 41 82 00 30 */ beq lbl_80314774 -/* 80314748 3C 60 80 3D */ lis r3, __vt__21J3DShapeMtxConcatView@ha /* 0x803CDC1C@ha */ -/* 8031474C 38 03 DC 1C */ addi r0, r3, __vt__21J3DShapeMtxConcatView@l /* 0x803CDC1C@l */ -/* 80314750 90 1F 00 00 */ stw r0, 0(r31) -/* 80314754 41 82 00 10 */ beq lbl_80314764 -/* 80314758 3C 60 80 3D */ lis r3, __vt__11J3DShapeMtx@ha /* 0x803CDC44@ha */ -/* 8031475C 38 03 DC 44 */ addi r0, r3, __vt__11J3DShapeMtx@l /* 0x803CDC44@l */ -/* 80314760 90 1F 00 00 */ stw r0, 0(r31) -lbl_80314764: -/* 80314764 7C 80 07 35 */ extsh. r0, r4 -/* 80314768 40 81 00 0C */ ble lbl_80314774 -/* 8031476C 7F E3 FB 78 */ mr r3, r31 -/* 80314770 4B FB A5 CD */ bl __dl__FPv -lbl_80314774: -/* 80314774 7F E3 FB 78 */ mr r3, r31 -/* 80314778 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8031477C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80314780 7C 08 03 A6 */ mtlr r0 -/* 80314784 38 21 00 10 */ addi r1, r1, 0x10 -/* 80314788 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeMtx/__dt__26J3DShapeMtxMultiConcatViewFv.s b/asm/JSystem/J3DGraphBase/J3DShapeMtx/__dt__26J3DShapeMtxMultiConcatViewFv.s deleted file mode 100644 index bc02c30a60b..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeMtx/__dt__26J3DShapeMtxMultiConcatViewFv.s +++ /dev/null @@ -1,30 +0,0 @@ -lbl_8031461C: -/* 8031461C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80314620 7C 08 02 A6 */ mflr r0 -/* 80314624 90 01 00 14 */ stw r0, 0x14(r1) -/* 80314628 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8031462C 7C 7F 1B 79 */ or. r31, r3, r3 -/* 80314630 41 82 00 40 */ beq lbl_80314670 -/* 80314634 3C 60 80 3D */ lis r3, __vt__26J3DShapeMtxMultiConcatView@ha /* 0x803CDBD4@ha */ -/* 80314638 38 03 DB D4 */ addi r0, r3, __vt__26J3DShapeMtxMultiConcatView@l /* 0x803CDBD4@l */ -/* 8031463C 90 1F 00 00 */ stw r0, 0(r31) -/* 80314640 41 82 00 20 */ beq lbl_80314660 -/* 80314644 3C 60 80 3D */ lis r3, __vt__21J3DShapeMtxConcatView@ha /* 0x803CDC1C@ha */ -/* 80314648 38 03 DC 1C */ addi r0, r3, __vt__21J3DShapeMtxConcatView@l /* 0x803CDC1C@l */ -/* 8031464C 90 1F 00 00 */ stw r0, 0(r31) -/* 80314650 41 82 00 10 */ beq lbl_80314660 -/* 80314654 3C 60 80 3D */ lis r3, __vt__11J3DShapeMtx@ha /* 0x803CDC44@ha */ -/* 80314658 38 03 DC 44 */ addi r0, r3, __vt__11J3DShapeMtx@l /* 0x803CDC44@l */ -/* 8031465C 90 1F 00 00 */ stw r0, 0(r31) -lbl_80314660: -/* 80314660 7C 80 07 35 */ extsh. r0, r4 -/* 80314664 40 81 00 0C */ ble lbl_80314670 -/* 80314668 7F E3 FB 78 */ mr r3, r31 -/* 8031466C 4B FB A6 D1 */ bl __dl__FPv -lbl_80314670: -/* 80314670 7F E3 FB 78 */ mr r3, r31 -/* 80314674 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80314678 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8031467C 7C 08 03 A6 */ mtlr r0 -/* 80314680 38 21 00 10 */ addi r1, r1, 0x10 -/* 80314684 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeMtx/__dt__27J3DShapeMtxBBoardConcatViewFv.s b/asm/JSystem/J3DGraphBase/J3DShapeMtx/__dt__27J3DShapeMtxBBoardConcatViewFv.s deleted file mode 100644 index 4c88bbd74a7..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeMtx/__dt__27J3DShapeMtxBBoardConcatViewFv.s +++ /dev/null @@ -1,30 +0,0 @@ -lbl_803145A4: -/* 803145A4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 803145A8 7C 08 02 A6 */ mflr r0 -/* 803145AC 90 01 00 14 */ stw r0, 0x14(r1) -/* 803145B0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 803145B4 7C 7F 1B 79 */ or. r31, r3, r3 -/* 803145B8 41 82 00 40 */ beq lbl_803145F8 -/* 803145BC 3C 60 80 3D */ lis r3, __vt__27J3DShapeMtxBBoardConcatView@ha /* 0x803CDBAC@ha */ -/* 803145C0 38 03 DB AC */ addi r0, r3, __vt__27J3DShapeMtxBBoardConcatView@l /* 0x803CDBAC@l */ -/* 803145C4 90 1F 00 00 */ stw r0, 0(r31) -/* 803145C8 41 82 00 20 */ beq lbl_803145E8 -/* 803145CC 3C 60 80 3D */ lis r3, __vt__21J3DShapeMtxConcatView@ha /* 0x803CDC1C@ha */ -/* 803145D0 38 03 DC 1C */ addi r0, r3, __vt__21J3DShapeMtxConcatView@l /* 0x803CDC1C@l */ -/* 803145D4 90 1F 00 00 */ stw r0, 0(r31) -/* 803145D8 41 82 00 10 */ beq lbl_803145E8 -/* 803145DC 3C 60 80 3D */ lis r3, __vt__11J3DShapeMtx@ha /* 0x803CDC44@ha */ -/* 803145E0 38 03 DC 44 */ addi r0, r3, __vt__11J3DShapeMtx@l /* 0x803CDC44@l */ -/* 803145E4 90 1F 00 00 */ stw r0, 0(r31) -lbl_803145E8: -/* 803145E8 7C 80 07 35 */ extsh. r0, r4 -/* 803145EC 40 81 00 0C */ ble lbl_803145F8 -/* 803145F0 7F E3 FB 78 */ mr r3, r31 -/* 803145F4 4B FB A7 49 */ bl __dl__FPv -lbl_803145F8: -/* 803145F8 7F E3 FB 78 */ mr r3, r31 -/* 803145FC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80314600 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80314604 7C 08 03 A6 */ mtlr r0 -/* 80314608 38 21 00 10 */ addi r1, r1, 0x10 -/* 8031460C 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeMtx/__dt__28J3DShapeMtxYBBoardConcatViewFv.s b/asm/JSystem/J3DGraphBase/J3DShapeMtx/__dt__28J3DShapeMtxYBBoardConcatViewFv.s deleted file mode 100644 index 1b1113f27b4..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeMtx/__dt__28J3DShapeMtxYBBoardConcatViewFv.s +++ /dev/null @@ -1,30 +0,0 @@ -lbl_80314520: -/* 80314520 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80314524 7C 08 02 A6 */ mflr r0 -/* 80314528 90 01 00 14 */ stw r0, 0x14(r1) -/* 8031452C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80314530 7C 7F 1B 79 */ or. r31, r3, r3 -/* 80314534 41 82 00 40 */ beq lbl_80314574 -/* 80314538 3C 60 80 3D */ lis r3, __vt__28J3DShapeMtxYBBoardConcatView@ha /* 0x803CDB84@ha */ -/* 8031453C 38 03 DB 84 */ addi r0, r3, __vt__28J3DShapeMtxYBBoardConcatView@l /* 0x803CDB84@l */ -/* 80314540 90 1F 00 00 */ stw r0, 0(r31) -/* 80314544 41 82 00 20 */ beq lbl_80314564 -/* 80314548 3C 60 80 3D */ lis r3, __vt__21J3DShapeMtxConcatView@ha /* 0x803CDC1C@ha */ -/* 8031454C 38 03 DC 1C */ addi r0, r3, __vt__21J3DShapeMtxConcatView@l /* 0x803CDC1C@l */ -/* 80314550 90 1F 00 00 */ stw r0, 0(r31) -/* 80314554 41 82 00 10 */ beq lbl_80314564 -/* 80314558 3C 60 80 3D */ lis r3, __vt__11J3DShapeMtx@ha /* 0x803CDC44@ha */ -/* 8031455C 38 03 DC 44 */ addi r0, r3, __vt__11J3DShapeMtx@l /* 0x803CDC44@l */ -/* 80314560 90 1F 00 00 */ stw r0, 0(r31) -lbl_80314564: -/* 80314564 7C 80 07 35 */ extsh. r0, r4 -/* 80314568 40 81 00 0C */ ble lbl_80314574 -/* 8031456C 7F E3 FB 78 */ mr r3, r31 -/* 80314570 4B FB A7 CD */ bl __dl__FPv -lbl_80314574: -/* 80314574 7F E3 FB 78 */ mr r3, r31 -/* 80314578 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8031457C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80314580 7C 08 03 A6 */ mtlr r0 -/* 80314584 38 21 00 10 */ addi r1, r1, 0x10 -/* 80314588 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeMtx/__sinit_J3DShapeMtx_cpp.s b/asm/JSystem/J3DGraphBase/J3DShapeMtx/__sinit_J3DShapeMtx_cpp.s deleted file mode 100644 index 4898016ee42..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeMtx/__sinit_J3DShapeMtx_cpp.s +++ /dev/null @@ -1,79 +0,0 @@ -lbl_803147EC: -/* 803147EC 3C 60 80 3D */ lis r3, lit_832@ha /* 0x803CD990@ha */ -/* 803147F0 38 63 D9 90 */ addi r3, r3, lit_832@l /* 0x803CD990@l */ -/* 803147F4 80 83 00 00 */ lwz r4, 0(r3) -/* 803147F8 80 03 00 04 */ lwz r0, 4(r3) -/* 803147FC 90 83 00 30 */ stw r4, 0x30(r3) -/* 80314800 90 03 00 34 */ stw r0, 0x34(r3) -/* 80314804 80 03 00 08 */ lwz r0, 8(r3) -/* 80314808 90 03 00 38 */ stw r0, 0x38(r3) -/* 8031480C 38 A3 00 30 */ addi r5, r3, 0x30 -/* 80314810 80 83 00 0C */ lwz r4, 0xc(r3) -/* 80314814 80 03 00 10 */ lwz r0, 0x10(r3) -/* 80314818 90 85 00 0C */ stw r4, 0xc(r5) -/* 8031481C 90 05 00 10 */ stw r0, 0x10(r5) -/* 80314820 80 03 00 14 */ lwz r0, 0x14(r3) -/* 80314824 90 05 00 14 */ stw r0, 0x14(r5) -/* 80314828 80 83 00 18 */ lwz r4, 0x18(r3) -/* 8031482C 80 03 00 1C */ lwz r0, 0x1c(r3) -/* 80314830 90 85 00 18 */ stw r4, 0x18(r5) -/* 80314834 90 05 00 1C */ stw r0, 0x1c(r5) -/* 80314838 80 03 00 20 */ lwz r0, 0x20(r3) -/* 8031483C 90 05 00 20 */ stw r0, 0x20(r5) -/* 80314840 80 83 00 24 */ lwz r4, 0x24(r3) -/* 80314844 80 03 00 28 */ lwz r0, 0x28(r3) -/* 80314848 90 85 00 24 */ stw r4, 0x24(r5) -/* 8031484C 90 05 00 28 */ stw r0, 0x28(r5) -/* 80314850 80 03 00 2C */ lwz r0, 0x2c(r3) -/* 80314854 90 05 00 2C */ stw r0, 0x2c(r5) -/* 80314858 80 83 00 60 */ lwz r4, 0x60(r3) -/* 8031485C 80 03 00 64 */ lwz r0, 0x64(r3) -/* 80314860 90 83 00 90 */ stw r4, 0x90(r3) -/* 80314864 90 03 00 94 */ stw r0, 0x94(r3) -/* 80314868 80 03 00 68 */ lwz r0, 0x68(r3) -/* 8031486C 90 03 00 98 */ stw r0, 0x98(r3) -/* 80314870 38 A3 00 90 */ addi r5, r3, 0x90 -/* 80314874 80 83 00 6C */ lwz r4, 0x6c(r3) -/* 80314878 80 03 00 70 */ lwz r0, 0x70(r3) -/* 8031487C 90 85 00 0C */ stw r4, 0xc(r5) -/* 80314880 90 05 00 10 */ stw r0, 0x10(r5) -/* 80314884 80 03 00 74 */ lwz r0, 0x74(r3) -/* 80314888 90 05 00 14 */ stw r0, 0x14(r5) -/* 8031488C 80 83 00 78 */ lwz r4, 0x78(r3) -/* 80314890 80 03 00 7C */ lwz r0, 0x7c(r3) -/* 80314894 90 85 00 18 */ stw r4, 0x18(r5) -/* 80314898 90 05 00 1C */ stw r0, 0x1c(r5) -/* 8031489C 80 03 00 80 */ lwz r0, 0x80(r3) -/* 803148A0 90 05 00 20 */ stw r0, 0x20(r5) -/* 803148A4 80 83 00 84 */ lwz r4, 0x84(r3) -/* 803148A8 80 03 00 88 */ lwz r0, 0x88(r3) -/* 803148AC 90 85 00 24 */ stw r4, 0x24(r5) -/* 803148B0 90 05 00 28 */ stw r0, 0x28(r5) -/* 803148B4 80 03 00 8C */ lwz r0, 0x8c(r3) -/* 803148B8 90 05 00 2C */ stw r0, 0x2c(r5) -/* 803148BC 80 83 00 C0 */ lwz r4, 0xc0(r3) -/* 803148C0 80 03 00 C4 */ lwz r0, 0xc4(r3) -/* 803148C4 90 83 00 F0 */ stw r4, 0xf0(r3) -/* 803148C8 90 03 00 F4 */ stw r0, 0xf4(r3) -/* 803148CC 80 03 00 C8 */ lwz r0, 0xc8(r3) -/* 803148D0 90 03 00 F8 */ stw r0, 0xf8(r3) -/* 803148D4 38 A3 00 F0 */ addi r5, r3, 0xf0 -/* 803148D8 80 83 00 CC */ lwz r4, 0xcc(r3) -/* 803148DC 80 03 00 D0 */ lwz r0, 0xd0(r3) -/* 803148E0 90 85 00 0C */ stw r4, 0xc(r5) -/* 803148E4 90 05 00 10 */ stw r0, 0x10(r5) -/* 803148E8 80 03 00 D4 */ lwz r0, 0xd4(r3) -/* 803148EC 90 05 00 14 */ stw r0, 0x14(r5) -/* 803148F0 80 83 00 D8 */ lwz r4, 0xd8(r3) -/* 803148F4 80 03 00 DC */ lwz r0, 0xdc(r3) -/* 803148F8 90 85 00 18 */ stw r4, 0x18(r5) -/* 803148FC 90 05 00 1C */ stw r0, 0x1c(r5) -/* 80314900 80 03 00 E0 */ lwz r0, 0xe0(r3) -/* 80314904 90 05 00 20 */ stw r0, 0x20(r5) -/* 80314908 80 83 00 E4 */ lwz r4, 0xe4(r3) -/* 8031490C 80 03 00 E8 */ lwz r0, 0xe8(r3) -/* 80314910 90 85 00 24 */ stw r4, 0x24(r5) -/* 80314914 90 05 00 28 */ stw r0, 0x28(r5) -/* 80314918 80 03 00 EC */ lwz r0, 0xec(r3) -/* 8031491C 90 05 00 2C */ stw r0, 0x2c(r5) -/* 80314920 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeMtx/calcNBTScale__11J3DShapeMtxFRC3VecPA3_A3_fPA3_A3_f.s b/asm/JSystem/J3DGraphBase/J3DShapeMtx/calcNBTScale__11J3DShapeMtxFRC3VecPA3_A3_fPA3_A3_f.s deleted file mode 100644 index 2c7931d5ebd..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeMtx/calcNBTScale__11J3DShapeMtxFRC3VecPA3_A3_fPA3_A3_f.s +++ /dev/null @@ -1,26 +0,0 @@ -lbl_80313BF0: -/* 80313BF0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80313BF4 7C 08 02 A6 */ mflr r0 -/* 80313BF8 90 01 00 14 */ stw r0, 0x14(r1) -/* 80313BFC A0 03 00 04 */ lhz r0, 4(r3) -/* 80313C00 1C 00 00 24 */ mulli r0, r0, 0x24 -/* 80313C04 7C E6 02 14 */ add r7, r6, r0 -/* 80313C08 7C A5 02 14 */ add r5, r5, r0 -/* 80313C0C E0 85 00 00 */ psq_l f4, 0(r5), 0, 0 /* qr0 */ -/* 80313C10 E0 65 00 08 */ psq_l f3, 8(r5), 0, 0 /* qr0 */ -/* 80313C14 E0 45 00 10 */ psq_l f2, 16(r5), 0, 0 /* qr0 */ -/* 80313C18 E0 25 00 18 */ psq_l f1, 24(r5), 0, 0 /* qr0 */ -/* 80313C1C C0 05 00 20 */ lfs f0, 0x20(r5) -/* 80313C20 F0 87 00 00 */ psq_st f4, 0(r7), 0, 0 /* qr0 */ -/* 80313C24 F0 67 00 08 */ psq_st f3, 8(r7), 0, 0 /* qr0 */ -/* 80313C28 F0 47 00 10 */ psq_st f2, 16(r7), 0, 0 /* qr0 */ -/* 80313C2C F0 27 00 18 */ psq_st f1, 24(r7), 0, 0 /* qr0 */ -/* 80313C30 D0 07 00 20 */ stfs f0, 0x20(r7) -/* 80313C34 A0 03 00 04 */ lhz r0, 4(r3) -/* 80313C38 1C 00 00 24 */ mulli r0, r0, 0x24 -/* 80313C3C 7C 66 02 14 */ add r3, r6, r0 -/* 80313C40 4B FF E1 B9 */ bl J3DScaleNrmMtx33__FPA3_fRC3Vec -/* 80313C44 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80313C48 7C 08 03 A6 */ mtlr r0 -/* 80313C4C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80313C50 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeMtx/calcNBTScale__16J3DShapeMtxMultiFRC3VecPA3_A3_fPA3_A3_f.s b/asm/JSystem/J3DGraphBase/J3DShapeMtx/calcNBTScale__16J3DShapeMtxMultiFRC3VecPA3_A3_fPA3_A3_f.s deleted file mode 100644 index 197763b1ac6..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeMtx/calcNBTScale__16J3DShapeMtxMultiFRC3VecPA3_A3_fPA3_A3_f.s +++ /dev/null @@ -1,50 +0,0 @@ -lbl_80313EEC: -/* 80313EEC 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 80313EF0 7C 08 02 A6 */ mflr r0 -/* 80313EF4 90 01 00 34 */ stw r0, 0x34(r1) -/* 80313EF8 39 61 00 30 */ addi r11, r1, 0x30 -/* 80313EFC 48 04 E2 D1 */ bl _savegpr_25 -/* 80313F00 7C 79 1B 78 */ mr r25, r3 -/* 80313F04 7C 9A 23 78 */ mr r26, r4 -/* 80313F08 7C BB 2B 78 */ mr r27, r5 -/* 80313F0C 7C DC 33 78 */ mr r28, r6 -/* 80313F10 A3 C3 00 08 */ lhz r30, 8(r3) -/* 80313F14 3B A0 00 00 */ li r29, 0 -/* 80313F18 3B E0 00 00 */ li r31, 0 -/* 80313F1C 48 00 00 68 */ b lbl_80313F84 -lbl_80313F20: -/* 80313F20 80 79 00 0C */ lwz r3, 0xc(r25) -/* 80313F24 7C 03 FA 2E */ lhzx r0, r3, r31 -/* 80313F28 28 00 FF FF */ cmplwi r0, 0xffff -/* 80313F2C 41 82 00 50 */ beq lbl_80313F7C -/* 80313F30 1C 00 00 24 */ mulli r0, r0, 0x24 -/* 80313F34 7C 9C 02 14 */ add r4, r28, r0 -/* 80313F38 7C 7B 02 14 */ add r3, r27, r0 -/* 80313F3C E0 83 00 00 */ psq_l f4, 0(r3), 0, 0 /* qr0 */ -/* 80313F40 E0 63 00 08 */ psq_l f3, 8(r3), 0, 0 /* qr0 */ -/* 80313F44 E0 43 00 10 */ psq_l f2, 16(r3), 0, 0 /* qr0 */ -/* 80313F48 E0 23 00 18 */ psq_l f1, 24(r3), 0, 0 /* qr0 */ -/* 80313F4C C0 03 00 20 */ lfs f0, 0x20(r3) -/* 80313F50 F0 84 00 00 */ psq_st f4, 0(r4), 0, 0 /* qr0 */ -/* 80313F54 F0 64 00 08 */ psq_st f3, 8(r4), 0, 0 /* qr0 */ -/* 80313F58 F0 44 00 10 */ psq_st f2, 16(r4), 0, 0 /* qr0 */ -/* 80313F5C F0 24 00 18 */ psq_st f1, 24(r4), 0, 0 /* qr0 */ -/* 80313F60 D0 04 00 20 */ stfs f0, 0x20(r4) -/* 80313F64 80 79 00 0C */ lwz r3, 0xc(r25) -/* 80313F68 7C 03 FA 2E */ lhzx r0, r3, r31 -/* 80313F6C 1C 00 00 24 */ mulli r0, r0, 0x24 -/* 80313F70 7C 7C 02 14 */ add r3, r28, r0 -/* 80313F74 7F 44 D3 78 */ mr r4, r26 -/* 80313F78 4B FF DE 81 */ bl J3DScaleNrmMtx33__FPA3_fRC3Vec -lbl_80313F7C: -/* 80313F7C 3B BD 00 01 */ addi r29, r29, 1 -/* 80313F80 3B FF 00 02 */ addi r31, r31, 2 -lbl_80313F84: -/* 80313F84 7C 1D F0 00 */ cmpw r29, r30 -/* 80313F88 41 80 FF 98 */ blt lbl_80313F20 -/* 80313F8C 39 61 00 30 */ addi r11, r1, 0x30 -/* 80313F90 48 04 E2 89 */ bl _restgpr_25 -/* 80313F94 80 01 00 34 */ lwz r0, 0x34(r1) -/* 80313F98 7C 08 03 A6 */ mtlr r0 -/* 80313F9C 38 21 00 30 */ addi r1, r1, 0x30 -/* 80313FA0 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeMtx/loadNrmMtx__21J3DShapeMtxConcatViewCFiUsPA4_f.s b/asm/JSystem/J3DGraphBase/J3DShapeMtx/loadNrmMtx__21J3DShapeMtxConcatViewCFiUsPA4_f.s deleted file mode 100644 index ffa8a602a8e..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeMtx/loadNrmMtx__21J3DShapeMtxConcatViewCFiUsPA4_f.s +++ /dev/null @@ -1,80 +0,0 @@ -lbl_80313D28: -/* 80313D28 94 21 FF A0 */ stwu r1, -0x60(r1) -/* 80313D2C 7C 08 02 A6 */ mflr r0 -/* 80313D30 90 01 00 64 */ stw r0, 0x64(r1) -/* 80313D34 93 E1 00 5C */ stw r31, 0x5c(r1) -/* 80313D38 7C DF 33 78 */ mr r31, r6 -/* 80313D3C 80 6D 90 2C */ lwz r3, sCurrentScaleFlag__11J3DShapeMtx(r13) -/* 80313D40 54 A0 04 3E */ clrlwi r0, r5, 0x10 -/* 80313D44 7C 03 00 AE */ lbzx r0, r3, r0 -/* 80313D48 28 00 00 01 */ cmplwi r0, 1 -/* 80313D4C 40 82 00 8C */ bne lbl_80313DD8 -/* 80313D50 80 0D 90 34 */ lwz r0, sTexMtxLoadType__11J3DShapeMtx(r13) -/* 80313D54 28 00 20 00 */ cmplwi r0, 0x2000 -/* 80313D58 40 82 00 10 */ bne lbl_80313D68 -/* 80313D5C 7F E3 FB 78 */ mr r3, r31 -/* 80313D60 38 80 00 1E */ li r4, 0x1e -/* 80313D64 4B FF BE D5 */ bl J3DFifoLoadNrmMtxToTexMtx__FPA4_fUl -lbl_80313D68: -/* 80313D68 88 0D 90 30 */ lbz r0, struct_804515B0+0x0(r13) -/* 80313D6C 28 00 00 00 */ cmplwi r0, 0 -/* 80313D70 40 82 00 14 */ bne lbl_80313D84 -/* 80313D74 7F E3 FB 78 */ mr r3, r31 -/* 80313D78 38 80 00 00 */ li r4, 0 -/* 80313D7C 4B FF BD E5 */ bl J3DFifoLoadNrmMtxImm__FPA4_fUl -/* 80313D80 48 00 00 B8 */ b lbl_80313E38 -lbl_80313D84: -/* 80313D84 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */ -/* 80313D88 38 63 4A C8 */ addi r3, r3, j3dSys@l /* 0x80434AC8@l */ -/* 80313D8C 80 83 01 18 */ lwz r4, 0x118(r3) -/* 80313D90 38 61 00 2C */ addi r3, r1, 0x2c -/* 80313D94 E0 BF 00 00 */ psq_l f5, 0(r31), 0, 0 /* qr0 */ -/* 80313D98 C0 9F 00 08 */ lfs f4, 8(r31) -/* 80313D9C E0 7F 00 10 */ psq_l f3, 16(r31), 0, 0 /* qr0 */ -/* 80313DA0 C0 5F 00 18 */ lfs f2, 0x18(r31) -/* 80313DA4 E0 3F 00 20 */ psq_l f1, 32(r31), 0, 0 /* qr0 */ -/* 80313DA8 C0 1F 00 28 */ lfs f0, 0x28(r31) -/* 80313DAC F0 A3 00 00 */ psq_st f5, 0(r3), 0, 0 /* qr0 */ -/* 80313DB0 D0 81 00 34 */ stfs f4, 0x34(r1) -/* 80313DB4 F0 63 00 0C */ psq_st f3, 12(r3), 0, 0 /* qr0 */ -/* 80313DB8 D0 41 00 40 */ stfs f2, 0x40(r1) -/* 80313DBC F0 23 00 18 */ psq_st f1, 24(r3), 0, 0 /* qr0 */ -/* 80313DC0 D0 01 00 4C */ stfs f0, 0x4c(r1) -/* 80313DC4 4B FF E0 35 */ bl J3DScaleNrmMtx33__FPA3_fRC3Vec -/* 80313DC8 38 61 00 2C */ addi r3, r1, 0x2c -/* 80313DCC 38 80 00 00 */ li r4, 0 -/* 80313DD0 4B FF BD FD */ bl J3DFifoLoadNrmMtxImm3x3__FPA3_fUl -/* 80313DD4 48 00 00 64 */ b lbl_80313E38 -lbl_80313DD8: -/* 80313DD8 7F E3 FB 78 */ mr r3, r31 -/* 80313DDC 38 81 00 08 */ addi r4, r1, 8 -/* 80313DE0 4B FF DA BD */ bl J3DPSCalcInverseTranspose__FPA4_fPA3_f -/* 80313DE4 80 0D 90 34 */ lwz r0, sTexMtxLoadType__11J3DShapeMtx(r13) -/* 80313DE8 28 00 20 00 */ cmplwi r0, 0x2000 -/* 80313DEC 40 82 00 10 */ bne lbl_80313DFC -/* 80313DF0 38 61 00 08 */ addi r3, r1, 8 -/* 80313DF4 38 80 00 1E */ li r4, 0x1e -/* 80313DF8 4B FF BE D9 */ bl J3DFifoLoadNrmMtxToTexMtx3x3__FPA3_fUl -lbl_80313DFC: -/* 80313DFC 88 0D 90 30 */ lbz r0, struct_804515B0+0x0(r13) -/* 80313E00 28 00 00 00 */ cmplwi r0, 0 -/* 80313E04 40 82 00 14 */ bne lbl_80313E18 -/* 80313E08 38 61 00 08 */ addi r3, r1, 8 -/* 80313E0C 38 80 00 00 */ li r4, 0 -/* 80313E10 4B FF BD BD */ bl J3DFifoLoadNrmMtxImm3x3__FPA3_fUl -/* 80313E14 48 00 00 24 */ b lbl_80313E38 -lbl_80313E18: -/* 80313E18 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */ -/* 80313E1C 38 63 4A C8 */ addi r3, r3, j3dSys@l /* 0x80434AC8@l */ -/* 80313E20 80 83 01 18 */ lwz r4, 0x118(r3) -/* 80313E24 38 61 00 08 */ addi r3, r1, 8 -/* 80313E28 4B FF DF D1 */ bl J3DScaleNrmMtx33__FPA3_fRC3Vec -/* 80313E2C 38 61 00 08 */ addi r3, r1, 8 -/* 80313E30 38 80 00 00 */ li r4, 0 -/* 80313E34 4B FF BD 99 */ bl J3DFifoLoadNrmMtxImm3x3__FPA3_fUl -lbl_80313E38: -/* 80313E38 83 E1 00 5C */ lwz r31, 0x5c(r1) -/* 80313E3C 80 01 00 64 */ lwz r0, 0x64(r1) -/* 80313E40 7C 08 03 A6 */ mtlr r0 -/* 80313E44 38 21 00 60 */ addi r1, r1, 0x60 -/* 80313E48 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeMtx/loadNrmMtx__26J3DShapeMtxMultiConcatViewCFiUsPA4_f.s b/asm/JSystem/J3DGraphBase/J3DShapeMtx/loadNrmMtx__26J3DShapeMtxMultiConcatViewCFiUsPA4_f.s deleted file mode 100644 index 2657cfeef01..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeMtx/loadNrmMtx__26J3DShapeMtxMultiConcatViewCFiUsPA4_f.s +++ /dev/null @@ -1,85 +0,0 @@ -lbl_8031419C: -/* 8031419C 94 21 FF A0 */ stwu r1, -0x60(r1) -/* 803141A0 7C 08 02 A6 */ mflr r0 -/* 803141A4 90 01 00 64 */ stw r0, 0x64(r1) -/* 803141A8 93 E1 00 5C */ stw r31, 0x5c(r1) -/* 803141AC 93 C1 00 58 */ stw r30, 0x58(r1) -/* 803141B0 7C 9E 23 78 */ mr r30, r4 -/* 803141B4 7C DF 33 78 */ mr r31, r6 -/* 803141B8 80 6D 90 2C */ lwz r3, sCurrentScaleFlag__11J3DShapeMtx(r13) -/* 803141BC 54 A0 04 3E */ clrlwi r0, r5, 0x10 -/* 803141C0 7C 03 00 AE */ lbzx r0, r3, r0 -/* 803141C4 28 00 00 01 */ cmplwi r0, 1 -/* 803141C8 40 82 00 90 */ bne lbl_80314258 -/* 803141CC 80 0D 90 34 */ lwz r0, sTexMtxLoadType__11J3DShapeMtx(r13) -/* 803141D0 28 00 20 00 */ cmplwi r0, 0x2000 -/* 803141D4 40 82 00 14 */ bne lbl_803141E8 -/* 803141D8 7F E3 FB 78 */ mr r3, r31 -/* 803141DC 1C 9E 00 03 */ mulli r4, r30, 3 -/* 803141E0 38 84 00 1E */ addi r4, r4, 0x1e -/* 803141E4 4B FF BA 55 */ bl J3DFifoLoadNrmMtxToTexMtx__FPA4_fUl -lbl_803141E8: -/* 803141E8 88 0D 90 30 */ lbz r0, struct_804515B0+0x0(r13) -/* 803141EC 28 00 00 00 */ cmplwi r0, 0 -/* 803141F0 40 82 00 14 */ bne lbl_80314204 -/* 803141F4 7F E3 FB 78 */ mr r3, r31 -/* 803141F8 1C 9E 00 03 */ mulli r4, r30, 3 -/* 803141FC 4B FF B9 65 */ bl J3DFifoLoadNrmMtxImm__FPA4_fUl -/* 80314200 48 00 00 BC */ b lbl_803142BC -lbl_80314204: -/* 80314204 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */ -/* 80314208 38 63 4A C8 */ addi r3, r3, j3dSys@l /* 0x80434AC8@l */ -/* 8031420C 80 83 01 18 */ lwz r4, 0x118(r3) -/* 80314210 38 61 00 2C */ addi r3, r1, 0x2c -/* 80314214 E0 BF 00 00 */ psq_l f5, 0(r31), 0, 0 /* qr0 */ -/* 80314218 C0 9F 00 08 */ lfs f4, 8(r31) -/* 8031421C E0 7F 00 10 */ psq_l f3, 16(r31), 0, 0 /* qr0 */ -/* 80314220 C0 5F 00 18 */ lfs f2, 0x18(r31) -/* 80314224 E0 3F 00 20 */ psq_l f1, 32(r31), 0, 0 /* qr0 */ -/* 80314228 C0 1F 00 28 */ lfs f0, 0x28(r31) -/* 8031422C F0 A3 00 00 */ psq_st f5, 0(r3), 0, 0 /* qr0 */ -/* 80314230 D0 81 00 34 */ stfs f4, 0x34(r1) -/* 80314234 F0 63 00 0C */ psq_st f3, 12(r3), 0, 0 /* qr0 */ -/* 80314238 D0 41 00 40 */ stfs f2, 0x40(r1) -/* 8031423C F0 23 00 18 */ psq_st f1, 24(r3), 0, 0 /* qr0 */ -/* 80314240 D0 01 00 4C */ stfs f0, 0x4c(r1) -/* 80314244 4B FF DB B5 */ bl J3DScaleNrmMtx33__FPA3_fRC3Vec -/* 80314248 38 61 00 2C */ addi r3, r1, 0x2c -/* 8031424C 38 80 00 00 */ li r4, 0 -/* 80314250 4B FF B9 7D */ bl J3DFifoLoadNrmMtxImm3x3__FPA3_fUl -/* 80314254 48 00 00 68 */ b lbl_803142BC -lbl_80314258: -/* 80314258 7F E3 FB 78 */ mr r3, r31 -/* 8031425C 38 81 00 08 */ addi r4, r1, 8 -/* 80314260 4B FF D6 3D */ bl J3DPSCalcInverseTranspose__FPA4_fPA3_f -/* 80314264 80 0D 90 34 */ lwz r0, sTexMtxLoadType__11J3DShapeMtx(r13) -/* 80314268 28 00 20 00 */ cmplwi r0, 0x2000 -/* 8031426C 40 82 00 14 */ bne lbl_80314280 -/* 80314270 38 61 00 08 */ addi r3, r1, 8 -/* 80314274 1C 9E 00 03 */ mulli r4, r30, 3 -/* 80314278 38 84 00 1E */ addi r4, r4, 0x1e -/* 8031427C 4B FF BA 55 */ bl J3DFifoLoadNrmMtxToTexMtx3x3__FPA3_fUl -lbl_80314280: -/* 80314280 88 0D 90 30 */ lbz r0, struct_804515B0+0x0(r13) -/* 80314284 28 00 00 00 */ cmplwi r0, 0 -/* 80314288 40 82 00 14 */ bne lbl_8031429C -/* 8031428C 38 61 00 08 */ addi r3, r1, 8 -/* 80314290 1C 9E 00 03 */ mulli r4, r30, 3 -/* 80314294 4B FF B9 39 */ bl J3DFifoLoadNrmMtxImm3x3__FPA3_fUl -/* 80314298 48 00 00 24 */ b lbl_803142BC -lbl_8031429C: -/* 8031429C 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */ -/* 803142A0 38 63 4A C8 */ addi r3, r3, j3dSys@l /* 0x80434AC8@l */ -/* 803142A4 80 83 01 18 */ lwz r4, 0x118(r3) -/* 803142A8 38 61 00 08 */ addi r3, r1, 8 -/* 803142AC 4B FF DB 4D */ bl J3DScaleNrmMtx33__FPA3_fRC3Vec -/* 803142B0 38 61 00 08 */ addi r3, r1, 8 -/* 803142B4 1C 9E 00 03 */ mulli r4, r30, 3 -/* 803142B8 4B FF B9 15 */ bl J3DFifoLoadNrmMtxImm3x3__FPA3_fUl -lbl_803142BC: -/* 803142BC 83 E1 00 5C */ lwz r31, 0x5c(r1) -/* 803142C0 83 C1 00 58 */ lwz r30, 0x58(r1) -/* 803142C4 80 01 00 64 */ lwz r0, 0x64(r1) -/* 803142C8 7C 08 03 A6 */ mtlr r0 -/* 803142CC 38 21 00 60 */ addi r1, r1, 0x60 -/* 803142D0 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeMtx/load__11J3DShapeMtxCFv.s b/asm/JSystem/J3DGraphBase/J3DShapeMtx/load__11J3DShapeMtxCFv.s deleted file mode 100644 index add8d6f4888..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeMtx/load__11J3DShapeMtxCFv.s +++ /dev/null @@ -1,24 +0,0 @@ -lbl_80313B94: -/* 80313B94 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80313B98 7C 08 02 A6 */ mflr r0 -/* 80313B9C 90 01 00 24 */ stw r0, 0x24(r1) -/* 80313BA0 80 0D 90 28 */ lwz r0, sCurrentPipeline__11J3DShapeMtx(r13) -/* 80313BA4 1C A0 00 0C */ mulli r5, r0, 0xc -/* 80313BA8 3C 80 80 3D */ lis r4, sMtxLoadPipeline__11J3DShapeMtx@ha /* 0x803CD9C0@ha */ -/* 80313BAC 38 04 D9 C0 */ addi r0, r4, sMtxLoadPipeline__11J3DShapeMtx@l /* 0x803CD9C0@l */ -/* 80313BB0 7C A0 2A 14 */ add r5, r0, r5 -/* 80313BB4 80 85 00 00 */ lwz r4, 0(r5) -/* 80313BB8 80 05 00 04 */ lwz r0, 4(r5) -/* 80313BBC 90 81 00 08 */ stw r4, 8(r1) -/* 80313BC0 90 01 00 0C */ stw r0, 0xc(r1) -/* 80313BC4 80 05 00 08 */ lwz r0, 8(r5) -/* 80313BC8 90 01 00 10 */ stw r0, 0x10(r1) -/* 80313BCC 38 80 00 00 */ li r4, 0 -/* 80313BD0 A0 A3 00 04 */ lhz r5, 4(r3) -/* 80313BD4 39 81 00 08 */ addi r12, r1, 8 -/* 80313BD8 48 04 E4 AD */ bl __ptmf_scall -/* 80313BDC 60 00 00 00 */ nop -/* 80313BE0 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80313BE4 7C 08 03 A6 */ mtlr r0 -/* 80313BE8 38 21 00 20 */ addi r1, r1, 0x20 -/* 80313BEC 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeMtx/load__16J3DShapeMtxMultiCFv.s b/asm/JSystem/J3DGraphBase/J3DShapeMtx/load__16J3DShapeMtxMultiCFv.s deleted file mode 100644 index e0976b0e5f1..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeMtx/load__16J3DShapeMtxMultiCFv.s +++ /dev/null @@ -1,44 +0,0 @@ -lbl_80313E4C: -/* 80313E4C 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 80313E50 7C 08 02 A6 */ mflr r0 -/* 80313E54 90 01 00 34 */ stw r0, 0x34(r1) -/* 80313E58 39 61 00 30 */ addi r11, r1, 0x30 -/* 80313E5C 48 04 E3 79 */ bl _savegpr_27 -/* 80313E60 7C 7B 1B 78 */ mr r27, r3 -/* 80313E64 80 0D 90 28 */ lwz r0, sCurrentPipeline__11J3DShapeMtx(r13) -/* 80313E68 1C 80 00 0C */ mulli r4, r0, 0xc -/* 80313E6C 3C 60 80 3D */ lis r3, sMtxLoadPipeline__11J3DShapeMtx@ha /* 0x803CD9C0@ha */ -/* 80313E70 38 03 D9 C0 */ addi r0, r3, sMtxLoadPipeline__11J3DShapeMtx@l /* 0x803CD9C0@l */ -/* 80313E74 7C 80 22 14 */ add r4, r0, r4 -/* 80313E78 80 64 00 00 */ lwz r3, 0(r4) -/* 80313E7C 80 04 00 04 */ lwz r0, 4(r4) -/* 80313E80 90 61 00 08 */ stw r3, 8(r1) -/* 80313E84 90 01 00 0C */ stw r0, 0xc(r1) -/* 80313E88 80 04 00 08 */ lwz r0, 8(r4) -/* 80313E8C 90 01 00 10 */ stw r0, 0x10(r1) -/* 80313E90 A3 BB 00 08 */ lhz r29, 8(r27) -/* 80313E94 3B 80 00 00 */ li r28, 0 -/* 80313E98 3B E0 00 00 */ li r31, 0 -/* 80313E9C 83 DB 00 0C */ lwz r30, 0xc(r27) -/* 80313EA0 48 00 00 2C */ b lbl_80313ECC -lbl_80313EA4: -/* 80313EA4 7C BE FA 2E */ lhzx r5, r30, r31 -/* 80313EA8 28 05 FF FF */ cmplwi r5, 0xffff -/* 80313EAC 41 82 00 18 */ beq lbl_80313EC4 -/* 80313EB0 7F 63 DB 78 */ mr r3, r27 -/* 80313EB4 7F 84 E3 78 */ mr r4, r28 -/* 80313EB8 39 81 00 08 */ addi r12, r1, 8 -/* 80313EBC 48 04 E1 C9 */ bl __ptmf_scall -/* 80313EC0 60 00 00 00 */ nop -lbl_80313EC4: -/* 80313EC4 3B 9C 00 01 */ addi r28, r28, 1 -/* 80313EC8 3B FF 00 02 */ addi r31, r31, 2 -lbl_80313ECC: -/* 80313ECC 7C 1C E8 00 */ cmpw r28, r29 -/* 80313ED0 41 80 FF D4 */ blt lbl_80313EA4 -/* 80313ED4 39 61 00 30 */ addi r11, r1, 0x30 -/* 80313ED8 48 04 E3 49 */ bl _restgpr_27 -/* 80313EDC 80 01 00 34 */ lwz r0, 0x34(r1) -/* 80313EE0 7C 08 03 A6 */ mtlr r0 -/* 80313EE4 38 21 00 30 */ addi r1, r1, 0x30 -/* 80313EE8 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeMtx/load__21J3DShapeMtxConcatViewCFv.s b/asm/JSystem/J3DGraphBase/J3DShapeMtx/load__21J3DShapeMtxConcatViewCFv.s deleted file mode 100644 index d89b7bf19a0..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeMtx/load__21J3DShapeMtxConcatViewCFv.s +++ /dev/null @@ -1,54 +0,0 @@ -lbl_80313C54: -/* 80313C54 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80313C58 7C 08 02 A6 */ mflr r0 -/* 80313C5C 90 01 00 24 */ stw r0, 0x24(r1) -/* 80313C60 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 80313C64 93 C1 00 18 */ stw r30, 0x18(r1) -/* 80313C68 7C 7F 1B 78 */ mr r31, r3 -/* 80313C6C 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */ -/* 80313C70 3B C3 4A C8 */ addi r30, r3, j3dSys@l /* 0x80434AC8@l */ -/* 80313C74 80 DE 00 38 */ lwz r6, 0x38(r30) -/* 80313C78 80 66 00 84 */ lwz r3, 0x84(r6) -/* 80313C7C 80 03 00 34 */ lwz r0, 0x34(r3) -/* 80313C80 90 0D 90 38 */ stw r0, sMtxPtrTbl__21J3DShapeMtxConcatView(r13) -/* 80313C84 80 03 00 10 */ lwz r0, 0x10(r3) -/* 80313C88 38 AD 90 38 */ la r5, sMtxPtrTbl__21J3DShapeMtxConcatView(r13) /* 804515B8-_SDA_BASE_ */ -/* 80313C8C 90 05 00 04 */ stw r0, 4(r5) -/* 80313C90 80 0D 90 28 */ lwz r0, sCurrentPipeline__11J3DShapeMtx(r13) -/* 80313C94 1C 80 00 0C */ mulli r4, r0, 0xc -/* 80313C98 3C 60 80 3D */ lis r3, sMtxLoadPipeline__21J3DShapeMtxConcatView@ha /* 0x803CDA20@ha */ -/* 80313C9C 38 03 DA 20 */ addi r0, r3, sMtxLoadPipeline__21J3DShapeMtxConcatView@l /* 0x803CDA20@l */ -/* 80313CA0 7C 80 22 14 */ add r4, r0, r4 -/* 80313CA4 80 64 00 00 */ lwz r3, 0(r4) -/* 80313CA8 80 04 00 04 */ lwz r0, 4(r4) -/* 80313CAC 90 61 00 08 */ stw r3, 8(r1) -/* 80313CB0 90 01 00 0C */ stw r0, 0xc(r1) -/* 80313CB4 80 04 00 08 */ lwz r0, 8(r4) -/* 80313CB8 90 01 00 10 */ stw r0, 0x10(r1) -/* 80313CBC 80 66 00 04 */ lwz r3, 4(r6) -/* 80313CC0 80 63 00 48 */ lwz r3, 0x48(r3) -/* 80313CC4 A0 1F 00 04 */ lhz r0, 4(r31) -/* 80313CC8 7C 03 00 AE */ lbzx r0, r3, r0 -/* 80313CCC 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d -/* 80313CD0 7C 85 00 2E */ lwzx r4, r5, r0 -/* 80313CD4 90 9E 01 04 */ stw r4, 0x104(r30) -/* 80313CD8 38 60 00 15 */ li r3, 0x15 -/* 80313CDC 38 A0 00 30 */ li r5, 0x30 -/* 80313CE0 48 04 7E 49 */ bl GXSetArray -/* 80313CE4 80 7E 00 38 */ lwz r3, 0x38(r30) -/* 80313CE8 80 63 00 04 */ lwz r3, 4(r3) -/* 80313CEC 80 63 00 4C */ lwz r3, 0x4c(r3) -/* 80313CF0 A0 1F 00 04 */ lhz r0, 4(r31) -/* 80313CF4 54 00 0B FC */ rlwinm r0, r0, 1, 0xf, 0x1e -/* 80313CF8 7C A3 02 2E */ lhzx r5, r3, r0 -/* 80313CFC 7F E3 FB 78 */ mr r3, r31 -/* 80313D00 38 80 00 00 */ li r4, 0 -/* 80313D04 39 81 00 08 */ addi r12, r1, 8 -/* 80313D08 48 04 E3 7D */ bl __ptmf_scall -/* 80313D0C 60 00 00 00 */ nop -/* 80313D10 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 80313D14 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 80313D18 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80313D1C 7C 08 03 A6 */ mtlr r0 -/* 80313D20 38 21 00 20 */ addi r1, r1, 0x20 -/* 80313D24 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeMtx/load__26J3DShapeMtxMultiConcatViewCFv.s b/asm/JSystem/J3DGraphBase/J3DShapeMtx/load__26J3DShapeMtxMultiConcatViewCFv.s deleted file mode 100644 index 4990bb9f527..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeMtx/load__26J3DShapeMtxMultiConcatViewCFv.s +++ /dev/null @@ -1,136 +0,0 @@ -lbl_80313FA4: -/* 80313FA4 94 21 FF B0 */ stwu r1, -0x50(r1) -/* 80313FA8 7C 08 02 A6 */ mflr r0 -/* 80313FAC 90 01 00 54 */ stw r0, 0x54(r1) -/* 80313FB0 39 61 00 50 */ addi r11, r1, 0x50 -/* 80313FB4 48 04 E2 0D */ bl _savegpr_22 -/* 80313FB8 7C 77 1B 78 */ mr r23, r3 -/* 80313FBC 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */ -/* 80313FC0 3B 83 4A C8 */ addi r28, r3, j3dSys@l /* 0x80434AC8@l */ -/* 80313FC4 80 BC 00 38 */ lwz r5, 0x38(r28) -/* 80313FC8 80 65 00 84 */ lwz r3, 0x84(r5) -/* 80313FCC 80 83 00 34 */ lwz r4, 0x34(r3) -/* 80313FD0 90 8D 90 38 */ stw r4, sMtxPtrTbl__21J3DShapeMtxConcatView(r13) -/* 80313FD4 80 03 00 10 */ lwz r0, 0x10(r3) -/* 80313FD8 38 6D 90 38 */ la r3, sMtxPtrTbl__21J3DShapeMtxConcatView(r13) /* 804515B8-_SDA_BASE_ */ -/* 80313FDC 90 03 00 04 */ stw r0, 4(r3) -/* 80313FE0 88 0D 90 31 */ lbz r0, struct_804515B0+0x1(r13) -/* 80313FE4 28 00 00 00 */ cmplwi r0, 0 -/* 80313FE8 40 82 00 B4 */ bne lbl_8031409C -/* 80313FEC 80 0D 90 28 */ lwz r0, sCurrentPipeline__11J3DShapeMtx(r13) -/* 80313FF0 1C 80 00 0C */ mulli r4, r0, 0xc -/* 80313FF4 3C 60 80 3D */ lis r3, sMtxLoadPipeline__21J3DShapeMtxConcatView@ha /* 0x803CDA20@ha */ -/* 80313FF8 38 03 DA 20 */ addi r0, r3, sMtxLoadPipeline__21J3DShapeMtxConcatView@l /* 0x803CDA20@l */ -/* 80313FFC 7C 80 22 14 */ add r4, r0, r4 -/* 80314000 80 64 00 00 */ lwz r3, 0(r4) -/* 80314004 80 04 00 04 */ lwz r0, 4(r4) -/* 80314008 90 61 00 14 */ stw r3, 0x14(r1) -/* 8031400C 90 01 00 18 */ stw r0, 0x18(r1) -/* 80314010 80 04 00 08 */ lwz r0, 8(r4) -/* 80314014 90 01 00 1C */ stw r0, 0x1c(r1) -/* 80314018 A3 57 00 08 */ lhz r26, 8(r23) -/* 8031401C 3B 60 00 00 */ li r27, 0 -/* 80314020 3A C0 00 00 */ li r22, 0 -/* 80314024 83 17 00 0C */ lwz r24, 0xc(r23) -/* 80314028 48 00 00 68 */ b lbl_80314090 -lbl_8031402C: -/* 8031402C 7C B8 B2 2E */ lhzx r5, r24, r22 -/* 80314030 28 05 FF FF */ cmplwi r5, 0xffff -/* 80314034 41 82 00 54 */ beq lbl_80314088 -/* 80314038 80 7C 00 38 */ lwz r3, 0x38(r28) -/* 8031403C 80 83 00 04 */ lwz r4, 4(r3) -/* 80314040 80 64 00 4C */ lwz r3, 0x4c(r4) -/* 80314044 54 A0 0B FC */ rlwinm r0, r5, 1, 0xf, 0x1e -/* 80314048 7F 23 02 2E */ lhzx r25, r3, r0 -/* 8031404C 80 64 00 48 */ lwz r3, 0x48(r4) -/* 80314050 7C 03 28 AE */ lbzx r0, r3, r5 -/* 80314054 54 00 15 BA */ rlwinm r0, r0, 2, 0x16, 0x1d -/* 80314058 38 6D 90 38 */ la r3, sMtxPtrTbl__21J3DShapeMtxConcatView(r13) /* 804515B8-_SDA_BASE_ */ -/* 8031405C 7C 83 00 2E */ lwzx r4, r3, r0 -/* 80314060 90 9C 01 04 */ stw r4, 0x104(r28) -/* 80314064 38 60 00 15 */ li r3, 0x15 -/* 80314068 38 A0 00 30 */ li r5, 0x30 -/* 8031406C 48 04 7A BD */ bl GXSetArray -/* 80314070 7E E3 BB 78 */ mr r3, r23 -/* 80314074 7F 64 DB 78 */ mr r4, r27 -/* 80314078 7F 25 CB 78 */ mr r5, r25 -/* 8031407C 39 81 00 14 */ addi r12, r1, 0x14 -/* 80314080 48 04 E0 05 */ bl __ptmf_scall -/* 80314084 60 00 00 00 */ nop -lbl_80314088: -/* 80314088 3B 7B 00 01 */ addi r27, r27, 1 -/* 8031408C 3A D6 00 02 */ addi r22, r22, 2 -lbl_80314090: -/* 80314090 7C 1B D0 00 */ cmpw r27, r26 -/* 80314094 41 80 FF 98 */ blt lbl_8031402C -/* 80314098 48 00 00 EC */ b lbl_80314184 -lbl_8031409C: -/* 8031409C 80 65 00 04 */ lwz r3, 4(r5) -/* 803140A0 83 63 00 40 */ lwz r27, 0x40(r3) -/* 803140A4 90 9C 01 04 */ stw r4, 0x104(r28) -/* 803140A8 38 60 00 15 */ li r3, 0x15 -/* 803140AC 38 A0 00 30 */ li r5, 0x30 -/* 803140B0 48 04 7A 79 */ bl GXSetArray -/* 803140B4 A3 57 00 08 */ lhz r26, 8(r23) -/* 803140B8 3B 20 00 00 */ li r25, 0 -/* 803140BC 3A C0 00 00 */ li r22, 0 -/* 803140C0 3C 60 80 3D */ lis r3, sMtxLoadLODPipeline__21J3DShapeMtxConcatView@ha /* 0x803CDA80@ha */ -/* 803140C4 3B A3 DA 80 */ addi r29, r3, sMtxLoadLODPipeline__21J3DShapeMtxConcatView@l /* 0x803CDA80@l */ -/* 803140C8 83 D7 00 0C */ lwz r30, 0xc(r23) -/* 803140CC 48 00 00 B0 */ b lbl_8031417C -lbl_803140D0: -/* 803140D0 80 0D 90 28 */ lwz r0, sCurrentPipeline__11J3DShapeMtx(r13) -/* 803140D4 1C A0 00 0C */ mulli r5, r0, 0xc -/* 803140D8 7C 9D 2A 14 */ add r4, r29, r5 -/* 803140DC 80 64 00 00 */ lwz r3, 0(r4) -/* 803140E0 80 04 00 04 */ lwz r0, 4(r4) -/* 803140E4 90 61 00 08 */ stw r3, 8(r1) -/* 803140E8 90 01 00 0C */ stw r0, 0xc(r1) -/* 803140EC 80 04 00 08 */ lwz r0, 8(r4) -/* 803140F0 90 01 00 10 */ stw r0, 0x10(r1) -/* 803140F4 7C 9E B2 2E */ lhzx r4, r30, r22 -/* 803140F8 28 04 FF FF */ cmplwi r4, 0xffff -/* 803140FC 41 82 00 78 */ beq lbl_80314174 -/* 80314100 54 80 0B FC */ rlwinm r0, r4, 1, 0xf, 0x1e -/* 80314104 7F 1B 02 2E */ lhzx r24, r27, r0 -/* 80314108 3C 60 80 43 */ lis r3, sMtxLoadCache__11J3DShapeMtx@ha /* 0x80434C80@ha */ -/* 8031410C 3B E3 4C 80 */ addi r31, r3, sMtxLoadCache__11J3DShapeMtx@l /* 0x80434C80@l */ -/* 80314110 7C 1F B2 2E */ lhzx r0, r31, r22 -/* 80314114 7C 18 00 40 */ cmplw r24, r0 -/* 80314118 41 82 00 5C */ beq lbl_80314174 -/* 8031411C 80 7C 00 38 */ lwz r3, 0x38(r28) -/* 80314120 80 63 00 04 */ lwz r3, 4(r3) -/* 80314124 80 63 00 48 */ lwz r3, 0x48(r3) -/* 80314128 7C 03 20 AE */ lbzx r0, r3, r4 -/* 8031412C 28 00 00 00 */ cmplwi r0, 0 -/* 80314130 40 82 00 28 */ bne lbl_80314158 -/* 80314134 3C 60 80 3D */ lis r3, sMtxLoadPipeline__21J3DShapeMtxConcatView@ha /* 0x803CDA20@ha */ -/* 80314138 38 03 DA 20 */ addi r0, r3, sMtxLoadPipeline__21J3DShapeMtxConcatView@l /* 0x803CDA20@l */ -/* 8031413C 7C 80 2A 14 */ add r4, r0, r5 -/* 80314140 80 64 00 00 */ lwz r3, 0(r4) -/* 80314144 80 04 00 04 */ lwz r0, 4(r4) -/* 80314148 90 61 00 08 */ stw r3, 8(r1) -/* 8031414C 90 01 00 0C */ stw r0, 0xc(r1) -/* 80314150 80 04 00 08 */ lwz r0, 8(r4) -/* 80314154 90 01 00 10 */ stw r0, 0x10(r1) -lbl_80314158: -/* 80314158 7E E3 BB 78 */ mr r3, r23 -/* 8031415C 7F 24 CB 78 */ mr r4, r25 -/* 80314160 7F 05 C3 78 */ mr r5, r24 -/* 80314164 39 81 00 08 */ addi r12, r1, 8 -/* 80314168 48 04 DF 1D */ bl __ptmf_scall -/* 8031416C 60 00 00 00 */ nop -/* 80314170 7F 1F B3 2E */ sthx r24, r31, r22 -lbl_80314174: -/* 80314174 3B 39 00 01 */ addi r25, r25, 1 -/* 80314178 3A D6 00 02 */ addi r22, r22, 2 -lbl_8031417C: -/* 8031417C 7C 19 D0 00 */ cmpw r25, r26 -/* 80314180 41 80 FF 50 */ blt lbl_803140D0 -lbl_80314184: -/* 80314184 39 61 00 50 */ addi r11, r1, 0x50 -/* 80314188 48 04 E0 85 */ bl _restgpr_22 -/* 8031418C 80 01 00 54 */ lwz r0, 0x54(r1) -/* 80314190 7C 08 03 A6 */ mtlr r0 -/* 80314194 38 21 00 50 */ addi r1, r1, 0x50 -/* 80314198 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeMtx/load__27J3DShapeMtxBBoardConcatViewCFv.s b/asm/JSystem/J3DGraphBase/J3DShapeMtx/load__27J3DShapeMtxBBoardConcatViewCFv.s deleted file mode 100644 index 1915c99b714..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeMtx/load__27J3DShapeMtxBBoardConcatViewCFv.s +++ /dev/null @@ -1,73 +0,0 @@ -lbl_803142D4: -/* 803142D4 94 21 FF C0 */ stwu r1, -0x40(r1) -/* 803142D8 7C 08 02 A6 */ mflr r0 -/* 803142DC 90 01 00 44 */ stw r0, 0x44(r1) -/* 803142E0 3C 80 80 43 */ lis r4, j3dSys@ha /* 0x80434AC8@ha */ -/* 803142E4 38 C4 4A C8 */ addi r6, r4, j3dSys@l /* 0x80434AC8@l */ -/* 803142E8 81 06 00 38 */ lwz r8, 0x38(r6) -/* 803142EC 80 E8 00 04 */ lwz r7, 4(r8) -/* 803142F0 80 A7 00 4C */ lwz r5, 0x4c(r7) -/* 803142F4 A0 83 00 04 */ lhz r4, 4(r3) -/* 803142F8 54 80 08 3C */ slwi r0, r4, 1 -/* 803142FC 7C 05 02 2E */ lhzx r0, r5, r0 -/* 80314300 80 67 00 48 */ lwz r3, 0x48(r7) -/* 80314304 7C 63 20 AE */ lbzx r3, r3, r4 -/* 80314308 28 03 00 00 */ cmplwi r3, 0 -/* 8031430C 40 82 00 24 */ bne lbl_80314330 -/* 80314310 80 68 00 84 */ lwz r3, 0x84(r8) -/* 80314314 80 63 00 34 */ lwz r3, 0x34(r3) -/* 80314318 1C 00 00 30 */ mulli r0, r0, 0x30 -/* 8031431C 7C 83 02 14 */ add r4, r3, r0 -/* 80314320 7C C3 33 78 */ mr r3, r6 -/* 80314324 38 A1 00 08 */ addi r5, r1, 8 -/* 80314328 48 03 21 BD */ bl PSMTXConcat -/* 8031432C 48 00 00 20 */ b lbl_8031434C -lbl_80314330: -/* 80314330 80 68 00 84 */ lwz r3, 0x84(r8) -/* 80314334 80 63 00 10 */ lwz r3, 0x10(r3) -/* 80314338 1C 00 00 30 */ mulli r0, r0, 0x30 -/* 8031433C 7C 83 02 14 */ add r4, r3, r0 -/* 80314340 7C C3 33 78 */ mr r3, r6 -/* 80314344 38 A1 00 08 */ addi r5, r1, 8 -/* 80314348 48 03 21 9D */ bl PSMTXConcat -lbl_8031434C: -/* 8031434C 38 61 00 08 */ addi r3, r1, 8 -/* 80314350 4B FF D3 21 */ bl J3DCalcBBoardMtx__FPA4_f -/* 80314354 38 61 00 08 */ addi r3, r1, 8 -/* 80314358 38 80 00 00 */ li r4, 0 -/* 8031435C 4B FF B7 85 */ bl J3DFifoLoadPosMtxImm__FPA4_fUl -/* 80314360 C0 22 C9 9C */ lfs f1, lit_1423(r2) -/* 80314364 C0 01 00 08 */ lfs f0, 8(r1) -/* 80314368 EC 01 00 24 */ fdivs f0, f1, f0 -/* 8031436C D0 01 00 08 */ stfs f0, 8(r1) -/* 80314370 C0 01 00 1C */ lfs f0, 0x1c(r1) -/* 80314374 EC 01 00 24 */ fdivs f0, f1, f0 -/* 80314378 D0 01 00 1C */ stfs f0, 0x1c(r1) -/* 8031437C C0 01 00 30 */ lfs f0, 0x30(r1) -/* 80314380 EC 01 00 24 */ fdivs f0, f1, f0 -/* 80314384 D0 01 00 30 */ stfs f0, 0x30(r1) -/* 80314388 C0 02 C9 98 */ lfs f0, lit_1032(r2) -/* 8031438C D0 01 00 14 */ stfs f0, 0x14(r1) -/* 80314390 D0 01 00 24 */ stfs f0, 0x24(r1) -/* 80314394 D0 01 00 34 */ stfs f0, 0x34(r1) -/* 80314398 88 0D 90 30 */ lbz r0, struct_804515B0+0x0(r13) -/* 8031439C 28 00 00 00 */ cmplwi r0, 0 -/* 803143A0 40 82 00 14 */ bne lbl_803143B4 -/* 803143A4 38 61 00 08 */ addi r3, r1, 8 -/* 803143A8 38 80 00 00 */ li r4, 0 -/* 803143AC 4B FF B7 B5 */ bl J3DFifoLoadNrmMtxImm__FPA4_fUl -/* 803143B0 48 00 00 24 */ b lbl_803143D4 -lbl_803143B4: -/* 803143B4 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */ -/* 803143B8 38 63 4A C8 */ addi r3, r3, j3dSys@l /* 0x80434AC8@l */ -/* 803143BC 80 83 01 18 */ lwz r4, 0x118(r3) -/* 803143C0 38 61 00 08 */ addi r3, r1, 8 -/* 803143C4 4B FF D9 D1 */ bl J3DScaleNrmMtx__FPA4_fRC3Vec -/* 803143C8 38 61 00 08 */ addi r3, r1, 8 -/* 803143CC 38 80 00 00 */ li r4, 0 -/* 803143D0 4B FF B7 91 */ bl J3DFifoLoadNrmMtxImm__FPA4_fUl -lbl_803143D4: -/* 803143D4 80 01 00 44 */ lwz r0, 0x44(r1) -/* 803143D8 7C 08 03 A6 */ mtlr r0 -/* 803143DC 38 21 00 40 */ addi r1, r1, 0x40 -/* 803143E0 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeMtx/load__28J3DShapeMtxYBBoardConcatViewCFv.s b/asm/JSystem/J3DGraphBase/J3DShapeMtx/load__28J3DShapeMtxYBBoardConcatViewCFv.s deleted file mode 100644 index bd2bc4f89aa..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeMtx/load__28J3DShapeMtxYBBoardConcatViewCFv.s +++ /dev/null @@ -1,86 +0,0 @@ -lbl_803143E4: -/* 803143E4 94 21 FF 90 */ stwu r1, -0x70(r1) -/* 803143E8 7C 08 02 A6 */ mflr r0 -/* 803143EC 90 01 00 74 */ stw r0, 0x74(r1) -/* 803143F0 93 E1 00 6C */ stw r31, 0x6c(r1) -/* 803143F4 7C 7F 1B 78 */ mr r31, r3 -/* 803143F8 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */ -/* 803143FC 38 63 4A C8 */ addi r3, r3, j3dSys@l /* 0x80434AC8@l */ -/* 80314400 80 E3 00 38 */ lwz r7, 0x38(r3) -/* 80314404 80 C7 00 04 */ lwz r6, 4(r7) -/* 80314408 80 86 00 4C */ lwz r4, 0x4c(r6) -/* 8031440C A0 BF 00 04 */ lhz r5, 4(r31) -/* 80314410 54 A0 08 3C */ slwi r0, r5, 1 -/* 80314414 7C 04 02 2E */ lhzx r0, r4, r0 -/* 80314418 80 86 00 48 */ lwz r4, 0x48(r6) -/* 8031441C 7C 84 28 AE */ lbzx r4, r4, r5 -/* 80314420 28 04 00 00 */ cmplwi r4, 0 -/* 80314424 40 82 00 20 */ bne lbl_80314444 -/* 80314428 80 87 00 84 */ lwz r4, 0x84(r7) -/* 8031442C 80 84 00 34 */ lwz r4, 0x34(r4) -/* 80314430 1C 00 00 30 */ mulli r0, r0, 0x30 -/* 80314434 7C 84 02 14 */ add r4, r4, r0 -/* 80314438 38 A1 00 2C */ addi r5, r1, 0x2c -/* 8031443C 48 03 20 A9 */ bl PSMTXConcat -/* 80314440 48 00 00 1C */ b lbl_8031445C -lbl_80314444: -/* 80314444 80 87 00 84 */ lwz r4, 0x84(r7) -/* 80314448 80 84 00 10 */ lwz r4, 0x10(r4) -/* 8031444C 1C 00 00 30 */ mulli r0, r0, 0x30 -/* 80314450 7C 84 02 14 */ add r4, r4, r0 -/* 80314454 38 A1 00 2C */ addi r5, r1, 0x2c -/* 80314458 48 03 20 8D */ bl PSMTXConcat -lbl_8031445C: -/* 8031445C 38 61 00 2C */ addi r3, r1, 0x2c -/* 80314460 4B FF D3 01 */ bl J3DCalcYBBoardMtx__FPA4_f -/* 80314464 38 61 00 2C */ addi r3, r1, 0x2c -/* 80314468 38 80 00 00 */ li r4, 0 -/* 8031446C 4B FF B6 75 */ bl J3DFifoLoadPosMtxImm__FPA4_fUl -/* 80314470 80 6D 90 2C */ lwz r3, sCurrentScaleFlag__11J3DShapeMtx(r13) -/* 80314474 A0 1F 00 04 */ lhz r0, 4(r31) -/* 80314478 7C 03 00 AE */ lbzx r0, r3, r0 -/* 8031447C 28 00 00 01 */ cmplwi r0, 1 -/* 80314480 40 82 00 44 */ bne lbl_803144C4 -/* 80314484 88 0D 90 30 */ lbz r0, struct_804515B0+0x0(r13) -/* 80314488 28 00 00 00 */ cmplwi r0, 0 -/* 8031448C 40 82 00 14 */ bne lbl_803144A0 -/* 80314490 38 61 00 2C */ addi r3, r1, 0x2c -/* 80314494 38 80 00 00 */ li r4, 0 -/* 80314498 4B FF B6 C9 */ bl J3DFifoLoadNrmMtxImm__FPA4_fUl -/* 8031449C 48 00 00 70 */ b lbl_8031450C -lbl_803144A0: -/* 803144A0 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */ -/* 803144A4 38 63 4A C8 */ addi r3, r3, j3dSys@l /* 0x80434AC8@l */ -/* 803144A8 80 83 01 18 */ lwz r4, 0x118(r3) -/* 803144AC 38 61 00 2C */ addi r3, r1, 0x2c -/* 803144B0 4B FF D8 E5 */ bl J3DScaleNrmMtx__FPA4_fRC3Vec -/* 803144B4 38 61 00 2C */ addi r3, r1, 0x2c -/* 803144B8 38 80 00 00 */ li r4, 0 -/* 803144BC 4B FF B6 A5 */ bl J3DFifoLoadNrmMtxImm__FPA4_fUl -/* 803144C0 48 00 00 4C */ b lbl_8031450C -lbl_803144C4: -/* 803144C4 38 61 00 2C */ addi r3, r1, 0x2c -/* 803144C8 38 81 00 08 */ addi r4, r1, 8 -/* 803144CC 4B FF D3 D1 */ bl J3DPSCalcInverseTranspose__FPA4_fPA3_f -/* 803144D0 88 0D 90 30 */ lbz r0, struct_804515B0+0x0(r13) -/* 803144D4 28 00 00 00 */ cmplwi r0, 0 -/* 803144D8 40 82 00 14 */ bne lbl_803144EC -/* 803144DC 38 61 00 08 */ addi r3, r1, 8 -/* 803144E0 38 80 00 00 */ li r4, 0 -/* 803144E4 4B FF B6 E9 */ bl J3DFifoLoadNrmMtxImm3x3__FPA3_fUl -/* 803144E8 48 00 00 24 */ b lbl_8031450C -lbl_803144EC: -/* 803144EC 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */ -/* 803144F0 38 63 4A C8 */ addi r3, r3, j3dSys@l /* 0x80434AC8@l */ -/* 803144F4 80 83 01 18 */ lwz r4, 0x118(r3) -/* 803144F8 38 61 00 08 */ addi r3, r1, 8 -/* 803144FC 4B FF D8 FD */ bl J3DScaleNrmMtx33__FPA3_fRC3Vec -/* 80314500 38 61 00 08 */ addi r3, r1, 8 -/* 80314504 38 80 00 00 */ li r4, 0 -/* 80314508 4B FF B6 C5 */ bl J3DFifoLoadNrmMtxImm3x3__FPA3_fUl -lbl_8031450C: -/* 8031450C 83 E1 00 6C */ lwz r31, 0x6c(r1) -/* 80314510 80 01 00 74 */ lwz r0, 0x74(r1) -/* 80314514 7C 08 03 A6 */ mtlr r0 -/* 80314518 38 21 00 70 */ addi r1, r1, 0x70 -/* 8031451C 4E 80 00 20 */ blr diff --git a/include/JSystem/J3DGraphAnimator/J3DModelData.h b/include/JSystem/J3DGraphAnimator/J3DModelData.h index dc1f01d5ce4..c63a79fae8d 100644 --- a/include/JSystem/J3DGraphAnimator/J3DModelData.h +++ b/include/JSystem/J3DGraphAnimator/J3DModelData.h @@ -53,6 +53,7 @@ public: u16* getWEvlpMixMtxIndex() const { return mJointTree.getWEvlpMixIndex(); } f32* getWEvlpMixWeight() const { return mJointTree.getWEvlpMixWeight(); } u8 getWEvlpMixMtxNum(u16 idx) const { return mJointTree.getWEvlpMixMtxNum(idx); } + u16* getWEvlpImportantMtxIndex() const { return mJointTree.getWEvlpImportantMtxIndex(); } u32 getModelDataType() const { return mJointTree.getModelDataType(); } void setModelDataType(u32 type) { mJointTree.setModelDataType(type); } void* getVtxPosArray() const { return mVertexData.getVtxPosArray(); } diff --git a/include/JSystem/J3DGraphAnimator/J3DMtxBuffer.h b/include/JSystem/J3DGraphAnimator/J3DMtxBuffer.h index 904fa1d36b6..fd03736f3c9 100644 --- a/include/JSystem/J3DGraphAnimator/J3DMtxBuffer.h +++ b/include/JSystem/J3DGraphAnimator/J3DMtxBuffer.h @@ -25,6 +25,7 @@ public: MtxP getAnmMtx(int idx) const { return mpAnmMtx[idx]; } void setAnmMtx(int i, Mtx m) { MTXCopy(m, (MtxP)mpAnmMtx[i]); } MtxP getWeightAnmMtx(int idx) const { return mpWeightEvlpMtx[idx]; } + MtxP getUserAnmMtx(int idx) const { return mpUserAnmMtx[idx]; } void setScaleFlag(int idx, u8 flag) { mpScaleFlagArr[idx] = flag; } u32* getCurrentViewNoPtr() { return &mCurrentViewNo; } diff --git a/include/JSystem/J3DGraphBase/J3DShapeMtx.h b/include/JSystem/J3DGraphBase/J3DShapeMtx.h index d850b3c3987..824ab06de02 100644 --- a/include/JSystem/J3DGraphBase/J3DShapeMtx.h +++ b/include/JSystem/J3DGraphBase/J3DShapeMtx.h @@ -9,9 +9,12 @@ class J3DTexGenBlock; class J3DTexMtxObj { public: Mtx& getMtx(u16 idx) { return mpTexMtx[idx]; } + Mtx44& getEffectMtx(u16 idx) { return mpEffectMtx[idx]; } + u16 getNumTexMtx() { return mTexMtxNum; } -private: - /* 0x00 */ Mtx *mpTexMtx; + /* 0x00 */ Mtx* mpTexMtx; + /* 0x04 */ Mtx44* mpEffectMtx; + /* 0x08 */ u16 mTexMtxNum; }; class J3DDifferedTexMtx { @@ -27,10 +30,8 @@ public: static J3DTexMtxObj* sTexMtxObj; }; -extern u8 struct_804515B0; -extern u8 struct_804515B1; -extern u8 struct_804515B2; -extern u8 struct_804515B3; +class J3DShapeMtx; +typedef void (J3DShapeMtx::*J3DShapeMtx_LoadFunc)(int, u16) const; class J3DShapeMtx { public: @@ -43,39 +44,43 @@ public: /* 80313188 */ void loadMtxIndx_NCPU(int, u16) const; /* 803131D4 */ void loadMtxIndx_PNCPU(int, u16) const; - /* 80314798 */ virtual ~J3DShapeMtx(); - /* 803147E0 */ virtual u32 getType() const; - /* 80273E08 */ virtual u32 getUseMtxNum() const; - /* 8031459C */ virtual u32 getUseMtxIndex(u16) const; + /* 80314798 */ virtual ~J3DShapeMtx() {} + /* 803147E0 */ virtual u32 getType() const { return 'SMTX'; } + /* 80273E08 */ virtual u32 getUseMtxNum() const { return 1; } + /* 8031459C */ virtual u32 getUseMtxIndex(u16) const { return mUseMtxIndex; } /* 80313B94 */ virtual void load() const; /* 80313BF0 */ virtual void calcNBTScale(Vec const&, f32 (*)[3][3], f32 (*)[3][3]); - static u8 sMtxLoadPipeline[48]; + static J3DShapeMtx_LoadFunc sMtxLoadPipeline[4]; static u16 sMtxLoadCache[10 + 2 /* padding */]; static u32 sCurrentPipeline; - // static J3DScaleFlag sCurrentScaleFlag; static u8* sCurrentScaleFlag; + static u8 sNBTFlag; + static u8 sLODFlag; static u32 sTexMtxLoadType; static void setCurrentPipeline(u32 pipeline) { sCurrentPipeline = pipeline; } - static void setLODFlag(u8 flag) { struct_804515B1 = flag; } - static u8 getLODFlag() { return struct_804515B1; } + static void setLODFlag(u8 flag) { sLODFlag = flag; } + static u8 getLODFlag() { return sLODFlag; } static void resetMtxLoadCache(); -private: +protected: /* 0x04 */ u16 mUseMtxIndex; }; +class J3DShapeMtxConcatView; +typedef void (J3DShapeMtxConcatView::*J3DShapeMtxConcatView_LoadFunc)(int, u16) const; + class J3DShapeMtxConcatView : public J3DShapeMtx { public: J3DShapeMtxConcatView(u16 useMtxIndex) : J3DShapeMtx(useMtxIndex) {} - /* 80314730 */ virtual ~J3DShapeMtxConcatView(); - /* 803147E0 */ virtual u32 getType() const; + /* 80314730 */ virtual ~J3DShapeMtxConcatView() {} + /* 803147E0 */ virtual u32 getType() const { return 'SMCV'; } /* 80313C54 */ virtual void load() const; - /* 80314598 */ virtual void loadNrmMtx(int, u16) const; + /* 80314598 */ virtual void loadNrmMtx(int, u16) const {} /* 80313D28 */ virtual void loadNrmMtx(int, u16, f32 (*)[4]) const; /* 80313828 */ void loadMtxConcatView_PNGP(int, u16) const; @@ -84,9 +89,9 @@ public: /* 80313A14 */ void loadMtxConcatView_PNCPU(int, u16) const; /* 80313AC8 */ void loadMtxConcatView_PNGP_LOD(int, u16) const; - static u8 sMtxLoadPipeline[48]; - static u8 sMtxLoadLODPipeline[48]; - static u8 sMtxPtrTbl[8]; + static J3DShapeMtxConcatView_LoadFunc sMtxLoadPipeline[4]; + static J3DShapeMtxConcatView_LoadFunc sMtxLoadLODPipeline[4]; + static MtxP sMtxPtrTbl[2]; }; class J3DShapeMtxYBBoardConcatView : public J3DShapeMtxConcatView { @@ -95,8 +100,8 @@ public: : J3DShapeMtxConcatView(useMtxIndex) {} - /* 80314520 */ virtual ~J3DShapeMtxYBBoardConcatView(); - /* 803147E0 */ virtual u32 getType() const; + /* 80314520 */ virtual ~J3DShapeMtxYBBoardConcatView() {} + /* 803147E0 */ virtual u32 getType() const { return 'SMYB'; } /* 803143E4 */ virtual void load() const; }; @@ -106,8 +111,8 @@ public: : J3DShapeMtxConcatView(useMtxIndex) {} - /* 803145A4 */ virtual ~J3DShapeMtxBBoardConcatView(); - /* 803147E0 */ virtual u32 getType() const; + /* 803145A4 */ virtual ~J3DShapeMtxBBoardConcatView() {} + /* 803147E0 */ virtual u32 getType() const { return 'SMBB'; } /* 803142D4 */ virtual void load() const; }; @@ -119,16 +124,16 @@ public: , mUseMtxIndexTable(useMtxIndexTable) {} - /* 803146B0 */ virtual ~J3DShapeMtxMulti(); - /* 803147E0 */ virtual u32 getType() const; - /* 80273E08 */ virtual u32 getUseMtxNum() const; - /* 8031459C */ virtual u32 getUseMtxIndex(u16) const; + /* 803146B0 */ virtual ~J3DShapeMtxMulti() {} + /* 803147E0 */ virtual u32 getType() const { return 'SMML'; } + /* 80273E08 */ virtual u32 getUseMtxNum() const { return mUseMtxNum; } + /* 8031459C */ virtual u32 getUseMtxIndex(u16 no) const { return mUseMtxIndexTable[no]; } /* 80313E4C */ virtual void load() const; /* 80313EEC */ virtual void calcNBTScale(Vec const&, f32 (*)[3][3], f32 (*)[3][3]); private: - /* 0x6 */ u16 mUseMtxNum; - /* 0x8 */ u16* mUseMtxIndexTable; + /* 0x8 */ u16 mUseMtxNum; + /* 0xC */ u16* mUseMtxIndexTable; }; class J3DShapeMtxMultiConcatView : public J3DShapeMtxConcatView { @@ -139,17 +144,17 @@ public: , mUseMtxIndexTable(useMtxIndexTable) {} - /* 8031461C */ virtual ~J3DShapeMtxMultiConcatView(); - /* 803147E0 */ virtual u32 getType() const; - /* 80273E08 */ virtual u32 getUseMtxNum() const; - /* 8031459C */ virtual u32 getUseMtxIndex(u16) const; + /* 8031461C */ virtual ~J3DShapeMtxMultiConcatView() {} + /* 803147E0 */ virtual u32 getType() const { return 'SMMC'; } + /* 80273E08 */ virtual u32 getUseMtxNum() const { return mUseMtxNum; } + /* 8031459C */ virtual u32 getUseMtxIndex(u16 no) const { return mUseMtxIndexTable[no]; } /* 80313FA4 */ virtual void load() const; - /* 803146AC */ virtual void loadNrmMtx(int, u16) const; + /* 803146AC */ virtual void loadNrmMtx(int, u16) const {} /* 8031419C */ virtual void loadNrmMtx(int, u16, f32 (*)[4]) const; private: - /* 0x6 */ u16 mUseMtxNum; - /* 0x8 */ u16* mUseMtxIndexTable; + /* 0x8 */ u16 mUseMtxNum; + /* 0xC */ u16* mUseMtxIndexTable; }; #endif /* J3DSHAPEMTX_H */ \ No newline at end of file diff --git a/include/JSystem/J3DGraphBase/J3DSys.h b/include/JSystem/J3DGraphBase/J3DSys.h index bf96165bb05..a7a34699388 100644 --- a/include/JSystem/J3DGraphBase/J3DSys.h +++ b/include/JSystem/J3DGraphBase/J3DSys.h @@ -106,6 +106,7 @@ struct J3DSys { J3DTexture* getTexture() { return mTexture; } void setNBTScale(Vec* scale) { mNBTScale = scale; } + Vec* getNBTScale() { return mNBTScale; } void onFlag(u32 flag) { mFlags |= flag; } diff --git a/include/JSystem/J3DGraphBase/J3DTransform.h b/include/JSystem/J3DGraphBase/J3DTransform.h index 5c3f2170526..5cd4601ef57 100644 --- a/include/JSystem/J3DGraphBase/J3DTransform.h +++ b/include/JSystem/J3DGraphBase/J3DTransform.h @@ -32,6 +32,26 @@ void J3DScaleNrmMtx33(f32 (*)[3], const Vec&); void J3DMtxProjConcat(f32 (*)[4], f32 (*)[4], f32 (*)[4]); void J3DPSMtxArrayConcat(f32 (*)[4], f32 (*)[4], f32 (*)[4], u32); +inline void J3DPSMtx33Copy(register Mtx3P src, register Mtx3P dst) { + register f32 fr4; + register f32 fr3; + register f32 fr2; + register f32 fr1; + register f32 fr0; + asm { + psq_l fr4, 0(src), 0, 0 + psq_l fr3, 8(src), 0, 0 + psq_l fr2, 0x10(src), 0, 0 + psq_l fr1, 0x18(src), 0, 0 + lfs fr0, 0x20(src) + psq_st fr4, 0(dst), 0, 0 + psq_st fr3, 8(dst), 0, 0 + psq_st fr2, 0x10(dst), 0, 0 + psq_st fr1, 0x18(dst), 0, 0 + stfs fr0, 0x20(dst) + } +} + inline void J3DPSMtx33CopyFrom34(register MtxP src, register Mtx3P dst) { register f32 x_y1; register f32 z1; diff --git a/libs/JSystem/J3DGraphBase/J3DShape.cpp b/libs/JSystem/J3DGraphBase/J3DShape.cpp index 81323efb13a..820f8dc0cd9 100644 --- a/libs/JSystem/J3DGraphBase/J3DShape.cpp +++ b/libs/JSystem/J3DGraphBase/J3DShape.cpp @@ -298,7 +298,7 @@ void J3DShape::setArrayAndBindPipeline() const { 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 = mHasNBT; + J3DShapeMtx::sNBTFlag = mHasNBT; data_804515D4[0] = mHasPNMTXIdx; J3DShapeMtx::sTexMtxLoadType = getTexMtxLoadType(); } diff --git a/libs/JSystem/J3DGraphBase/J3DShapeMtx.cpp b/libs/JSystem/J3DGraphBase/J3DShapeMtx.cpp index 013b0874927..453101a0e05 100644 --- a/libs/JSystem/J3DGraphBase/J3DShapeMtx.cpp +++ b/libs/JSystem/J3DGraphBase/J3DShapeMtx.cpp @@ -6,6 +6,7 @@ #include "JSystem/J3DGraphBase/J3DShapeMtx.h" #include "JSystem/J3DGraphAnimator/J3DModel.h" #include "JSystem/J3DGraphBase/J3DGD.h" +#include "JSystem/J3DGraphBase/J3DMatBlock.h" #include "dol2asm.h" #include "dolphin/types.h" @@ -155,146 +156,32 @@ void J3DShapeMtx::loadMtxIndx_PNCPU(int slot, u16 indx) const { J3DFifoLoadNrmMtxImm(*j3dSys.getShapePacket()->getBaseMtxPtr(), slot * 3); } -/* ############################################################################################## */ -/* 803CD990-803CD99C -00001 000C+00 1/1 0/0 0/0 .data @832 */ -SECTION_DATA static void* lit_832[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)loadMtxIndx_PNGP__11J3DShapeMtxCFiUs, -}; - -/* 803CD99C-803CD9A8 -00001 000C+00 0/1 0/0 0/0 .data @833 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_833[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)loadMtxIndx_PCPU__11J3DShapeMtxCFiUs, -}; -#pragma pop - -/* 803CD9A8-803CD9B4 -00001 000C+00 0/1 0/0 0/0 .data @834 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_834[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)loadMtxIndx_NCPU__11J3DShapeMtxCFiUs, -}; -#pragma pop - -/* 803CD9B4-803CD9C0 -00001 000C+00 0/1 0/0 0/0 .data @835 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_835[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)loadMtxIndx_PNCPU__11J3DShapeMtxCFiUs, -}; -#pragma pop - /* 803CD9C0-803CD9F0 02AAE0 0030+00 2/3 0/0 0/0 .data sMtxLoadPipeline__11J3DShapeMtx */ -SECTION_DATA u8 J3DShapeMtx::sMtxLoadPipeline[48] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +J3DShapeMtx_LoadFunc J3DShapeMtx::sMtxLoadPipeline[4] = { + &loadMtxIndx_PNGP, + &loadMtxIndx_PCPU, + &loadMtxIndx_NCPU, + &loadMtxIndx_PNCPU, }; -/* 803CD9F0-803CD9FC -00001 000C+00 0/1 0/0 0/0 .data @836 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_836[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)loadMtxConcatView_PNGP__21J3DShapeMtxConcatViewCFiUs, -}; -#pragma pop - -/* 803CD9FC-803CDA08 -00001 000C+00 0/1 0/0 0/0 .data @837 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_837[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)loadMtxConcatView_PCPU__21J3DShapeMtxConcatViewCFiUs, -}; -#pragma pop - -/* 803CDA08-803CDA14 -00001 000C+00 0/1 0/0 0/0 .data @838 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_838[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)loadMtxConcatView_NCPU__21J3DShapeMtxConcatViewCFiUs, -}; -#pragma pop - -/* 803CDA14-803CDA20 -00001 000C+00 0/1 0/0 0/0 .data @839 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_839[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)loadMtxConcatView_PNCPU__21J3DShapeMtxConcatViewCFiUs, -}; -#pragma pop - /* 803CDA20-803CDA50 02AB40 0030+00 2/3 0/0 0/0 .data sMtxLoadPipeline__21J3DShapeMtxConcatView */ -SECTION_DATA u8 J3DShapeMtxConcatView::sMtxLoadPipeline[48] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +J3DShapeMtxConcatView_LoadFunc J3DShapeMtxConcatView::sMtxLoadPipeline[4] = { + &loadMtxConcatView_PNGP, + &loadMtxConcatView_PCPU, + &loadMtxConcatView_NCPU, + &loadMtxConcatView_PNCPU, }; -/* 803CDA50-803CDA5C -00001 000C+00 0/1 0/0 0/0 .data @840 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_840[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)loadMtxConcatView_PNGP_LOD__21J3DShapeMtxConcatViewCFiUs, -}; -#pragma pop - -/* 803CDA5C-803CDA68 -00001 000C+00 0/1 0/0 0/0 .data @841 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_841[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)loadMtxConcatView_PCPU__21J3DShapeMtxConcatViewCFiUs, -}; -#pragma pop - -/* 803CDA68-803CDA74 -00001 000C+00 0/1 0/0 0/0 .data @842 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_842[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)loadMtxConcatView_NCPU__21J3DShapeMtxConcatViewCFiUs, -}; -#pragma pop - -/* 803CDA74-803CDA80 -00001 000C+00 0/1 0/0 0/0 .data @843 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_843[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)loadMtxConcatView_PNCPU__21J3DShapeMtxConcatViewCFiUs, -}; -#pragma pop - /* 803CDA80-803CDAB0 02ABA0 0030+00 1/2 0/0 0/0 .data sMtxLoadLODPipeline__21J3DShapeMtxConcatView */ -SECTION_DATA u8 J3DShapeMtxConcatView::sMtxLoadLODPipeline[48] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +J3DShapeMtxConcatView_LoadFunc J3DShapeMtxConcatView::sMtxLoadLODPipeline[4] = { + &loadMtxConcatView_PNGP_LOD, + &loadMtxConcatView_PCPU, + &loadMtxConcatView_NCPU, + &loadMtxConcatView_PNCPU, }; +#ifndef NONMATCHING /* 803CDAB0-803CDAE0 02ABD0 0030+00 1/1 0/0 0/0 .data qMtx$895 */ SECTION_DATA static u8 qMtx[48] = { 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -340,6 +227,7 @@ SECTION_DATA static void* lit_1034[12] = { (void*)(((char*)loadExecute__17J3DDifferedTexMtxFPA4_Cf) + 0x224), (void*)(((char*)loadExecute__17J3DDifferedTexMtxFPA4_Cf) + 0x190), }; +#endif /* 804515A8-804515AC 000AA8 0004+00 4/4 2/2 0/0 .sbss sCurrentPipeline__11J3DShapeMtx */ u32 J3DShapeMtx::sCurrentPipeline; @@ -352,17 +240,16 @@ u8* J3DShapeMtx::sCurrentScaleFlag; /* 804515B0-804515B4 -00001 0004+00 5/5 3/3 0/0 .sbss None */ /* 804515B0 0001+00 data_804515B0 None */ /* 804515B1 0003+00 data_804515B1 None */ -u8 struct_804515B0; -u8 struct_804515B1; -u8 struct_804515B2; -u8 struct_804515B3; +extern u8 struct_804515B0; // temporary +u8 J3DShapeMtx::sNBTFlag; +u8 J3DShapeMtx::sLODFlag; /* 804515B4-804515B8 000AB4 0004+00 4/4 1/1 0/0 .sbss sTexMtxLoadType__11J3DShapeMtx */ u32 J3DShapeMtx::sTexMtxLoadType; /* 804515B8-804515C0 000AB8 0008+00 2/2 0/0 0/0 .sbss sMtxPtrTbl__21J3DShapeMtxConcatView */ -u8 J3DShapeMtxConcatView::sMtxPtrTbl[8]; +MtxP J3DShapeMtxConcatView::sMtxPtrTbl[2]; /* 804515C0-804515C4 000AC0 0004+00 6/6 2/2 0/0 .sbss sTexGenBlock__17J3DDifferedTexMtx */ @@ -380,6 +267,208 @@ SECTION_SDATA2 static u8 lit_1032[4] = { }; /* 8031322C-80313828 30DB6C 05FC+00 7/5 0/0 0/0 .text loadExecute__17J3DDifferedTexMtxFPA4_Cf */ +#ifdef NONMATCHING +void J3DDifferedTexMtx::loadExecute(f32 const (*param_0)[4]) { +// regalloc + static Mtx qMtx = { + {0.5f, 0.0f, 0.5f, 0.0f}, + {0.0f, -0.5f, 0.5f, 0.0f}, + {0.0f, 0.0f, 1.0f, 0.0f}, + }; + static Mtx qMtx2 = { + {0.5f, 0.0f, 0.0f, 0.5f}, + {0.0f, -0.5f, 0.0f, 0.5f}, + {0.0f, 0.0f, 1.0f, 0.0f} + }; + J3DTexCoord* tex_coord; + J3DTexMtx* tex_mtx; + Mtx* mtx; + Mtx44* eff_mtx; + Mtx tmp2; + Mtx44 tmp1, tmp0; + J3DTexMtxInfo* tex_mtx_info; + J3DTexGenBlock* tex_gen_block = sTexGenBlock; + J3DTexMtxObj* tex_mtx_obj = sTexMtxObj; + u16 tex_mtx_num = tex_mtx_obj->getNumTexMtx(); + if ((j3dSys.checkFlag(J3DSysFlag_PostTexMtx))) { + for (u16 i = 0; i < (u16)tex_mtx_num; i++) { + tex_coord = tex_gen_block->getTexCoord(i); + int tex_gen_type = tex_coord->getTexGenType(); + if (tex_gen_type == 1 || tex_gen_type == 0) { + tex_mtx = tex_gen_block->getTexMtx(i); + u8 tex_gen_src = tex_coord->getTexGenSrc(); + u32 unk; + switch (tex_gen_src & 0x3f) { + case 3: + case 9: + mtx = &tex_mtx_obj->getMtx(i); + break; + case 1: + case 6: + case 7: + mtx = &tex_mtx_obj->getMtx(i); + break; + case 2: + case 8: + PSMTXInverse(j3dSys.mViewMtx, tmp2); + PSMTXConcat(tex_mtx_obj->getMtx(i), tmp2, tmp2); + mtx = &tmp2; + break; + case 5: + tex_mtx_info = &tex_mtx->getTexMtxInfo(); + unk = (tex_gen_src & 0x80) >> 7; + if (unk == 0) { + J3DGetTextureMtxOld(tex_mtx_info->mSRT, tex_mtx_info->mCenter, tmp0); + } else if (unk == 1) { + J3DGetTextureMtxMayaOld(tex_mtx_info->mSRT, tmp0); + } + eff_mtx = &tex_mtx_obj->getEffectMtx(i); + J3DMtxProjConcat(tmp0, *eff_mtx, tmp2); + PSMTXInverse(j3dSys.mViewMtx, tmp1); + PSMTXConcat(tmp2, tmp1, tmp2); + tmp2[2][3] = 0.0f; + tmp2[1][3] = 0.0f; + tmp2[0][3] = 0.0f; + mtx = &tmp2; + break; + case 10: + tex_mtx_info = &tex_mtx->getTexMtxInfo(); + unk = (tex_gen_src & 0x80) >> 7; + if (unk == 0) { + J3DGetTextureMtxOld(tex_mtx_info->mSRT, tex_mtx_info->mCenter, tmp0); + } else if (unk == 1) { + J3DGetTextureMtxMayaOld(tex_mtx_info->mSRT, tmp0); + } + PSMTXConcat(tmp0, qMtx2, tmp0); + eff_mtx = &tex_mtx_obj->getEffectMtx(i); + J3DMtxProjConcat(tmp0, *eff_mtx, tmp2); + PSMTXInverse(j3dSys.mViewMtx, tmp1); + PSMTXConcat(tmp2, tmp1, tmp2); + tmp2[2][3] = 0.0f; + tmp2[1][3] = 0.0f; + tmp2[0][3] = 0.0f; + mtx = &tmp2; + break; + case 11: + tex_mtx_info = &tex_mtx->getTexMtxInfo(); + unk = (tex_gen_src & 0x80) >> 7; + if (unk == 0) { + J3DGetTextureMtxOld(tex_mtx_info->mSRT, tex_mtx_info->mCenter, tmp0); + } else if (unk == 1) { + J3DGetTextureMtxMayaOld(tex_mtx_info->mSRT, tmp0); + } + PSMTXConcat(tmp0, qMtx, tmp0); + eff_mtx = &tex_mtx_obj->getEffectMtx(i); + J3DMtxProjConcat(tmp0, *eff_mtx, tmp2); + PSMTXInverse(j3dSys.mViewMtx, tmp1); + PSMTXConcat(tmp2, tmp1, tmp2); + tmp2[2][3] = 0.0f; + tmp2[1][3] = 0.0f; + tmp2[0][3] = 0.0f; + mtx = &tmp2; + break; + default: + mtx = &tex_mtx_obj->getMtx(i); + break; + } + GXLoadTexMtxImm(*mtx, i * 3 + 0x40, GX_MTX3x4); + } + } + } else { + for (u16 i = 0; i < (u16)tex_mtx_num; i++) { + tex_coord = tex_gen_block->getTexCoord(i); + int tex_gen_type = tex_coord->getTexGenType(); + if (tex_gen_type == 1 || tex_gen_type == 0) { + tex_mtx = tex_gen_block->getTexMtx(i); + u8 tex_gen_src = tex_coord->getTexGenSrc(); + u32 unk; + switch (tex_gen_src & 0x3f) { + case 3: + case 9: + PSMTXConcat(tex_mtx_obj->getMtx(i), param_0, tmp2); + mtx = &tmp2; + break; + case 1: + case 6: + case 7: + PSMTXCopy(param_0, tmp1); + tmp1[2][3] = 0.0f; + tmp1[1][3] = 0.0f; + tmp1[0][3] = 0.0f; + PSMTXConcat(tex_mtx_obj->getMtx(i), tmp1, tmp2); + mtx = &tmp2; + break; + case 2: + case 8: + mtx = &tex_mtx_obj->getMtx(i); + break; + case 5: + tex_mtx_info = &tex_mtx->getTexMtxInfo(); + unk = (tex_gen_src & 0x80) >> 7; + if (unk == 0) { + J3DGetTextureMtxOld(tex_mtx_info->mSRT, tex_mtx_info->mCenter, tmp0); + } else if (unk == 1) { + J3DGetTextureMtxMayaOld(tex_mtx_info->mSRT, tmp0); + } + eff_mtx = &tex_mtx_obj->getEffectMtx(i); + J3DMtxProjConcat(tmp0, *eff_mtx, tmp2); + PSMTXInverse(j3dSys.mViewMtx, tmp1); + PSMTXConcat(tmp2, tmp1, tmp2); + PSMTXConcat(tmp2, param_0, tmp2); + tmp2[2][3] = 0.0f; + tmp2[1][3] = 0.0f; + tmp2[0][3] = 0.0f; + mtx = &tmp2; + break; + case 10: + tex_mtx_info = &tex_mtx->getTexMtxInfo(); + unk = (tex_gen_src & 0x80) >> 7; + if (unk == 0) { + J3DGetTextureMtxOld(tex_mtx_info->mSRT, tex_mtx_info->mCenter, tmp0); + } else if (unk == 1) { + J3DGetTextureMtxMayaOld(tex_mtx_info->mSRT, tmp0); + } + PSMTXConcat(tmp0, qMtx2, tmp0); + eff_mtx = &tex_mtx_obj->getEffectMtx(i); + J3DMtxProjConcat(tmp0, *eff_mtx, tmp2); + PSMTXInverse(j3dSys.mViewMtx, tmp1); + PSMTXConcat(tmp2, tmp1, tmp2); + PSMTXConcat(tmp2, param_0, tmp2); + tmp2[2][3] = 0.0f; + tmp2[1][3] = 0.0f; + tmp2[0][3] = 0.0f; + mtx = &tmp2; + break; + case 11: + tex_mtx_info = &tex_mtx->getTexMtxInfo(); + unk = (tex_gen_src & 0x80) >> 7; + if (unk == 0) { + J3DGetTextureMtxOld(tex_mtx_info->mSRT, tex_mtx_info->mCenter, tmp0); + } else if (unk == 1) { + J3DGetTextureMtxMayaOld(tex_mtx_info->mSRT, tmp0); + } + PSMTXConcat(tmp0, qMtx, tmp0); + eff_mtx = &tex_mtx_obj->getEffectMtx(i); + J3DMtxProjConcat(tmp0, *eff_mtx, tmp2); + PSMTXInverse(j3dSys.mViewMtx, tmp1); + PSMTXConcat(tmp2, tmp1, tmp2); + PSMTXConcat(tmp2, param_0, tmp2); + tmp2[2][3] = 0.0f; + tmp2[1][3] = 0.0f; + tmp2[0][3] = 0.0f; + mtx = &tmp2; + break; + default: + mtx = &tex_mtx_obj->getMtx(i); + break; + } + GXLoadTexMtxImm(*mtx, i * 3 + 0x1e, + (GXTexMtxType)tex_mtx->getTexMtxInfo().mProjection); + } + } + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -388,6 +477,7 @@ asm void J3DDifferedTexMtx::loadExecute(f32 const (*param_0)[4]) { #include "asm/JSystem/J3DGraphBase/J3DShapeMtx/loadExecute__17J3DDifferedTexMtxFPA4_Cf.s" } #pragma pop +#endif /* 80313828-803138C8 30E168 00A0+00 1/0 0/0 0/0 .text * loadMtxConcatView_PNGP__21J3DShapeMtxConcatViewCFiUs */ @@ -447,113 +537,221 @@ void J3DShapeMtxConcatView::loadMtxConcatView_PNGP_LOD(int slot, u16 drw) const } /* 80313B94-80313BF0 30E4D4 005C+00 1/0 0/0 0/0 .text load__11J3DShapeMtxCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapeMtx::load() const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/load__11J3DShapeMtxCFv.s" +void J3DShapeMtx::load() const { + J3DShapeMtx_LoadFunc func = sMtxLoadPipeline[sCurrentPipeline]; + (this->*func)(0, mUseMtxIndex); } -#pragma pop /* 80313BF0-80313C54 30E530 0064+00 5/0 0/0 0/0 .text * calcNBTScale__11J3DShapeMtxFRC3VecPA3_A3_fPA3_A3_f */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapeMtx::calcNBTScale(Vec const& param_0, f32 (*param_1)[3][3], f32 (*param_2)[3][3]) { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/calcNBTScale__11J3DShapeMtxFRC3VecPA3_A3_fPA3_A3_f.s" +void J3DShapeMtx::calcNBTScale(Vec const& param_0, Mtx33* param_1, Mtx33* param_2) { + J3DPSMtx33Copy(param_1[mUseMtxIndex], param_2[mUseMtxIndex]); + J3DScaleNrmMtx33(param_2[mUseMtxIndex], param_0); } -#pragma pop /* 80313C54-80313D28 30E594 00D4+00 1/0 0/0 0/0 .text load__21J3DShapeMtxConcatViewCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapeMtxConcatView::load() const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/load__21J3DShapeMtxConcatViewCFv.s" +void J3DShapeMtxConcatView::load() const { + sMtxPtrTbl[0] = j3dSys.getModel()->getMtxBuffer()->getUserAnmMtx(0); + sMtxPtrTbl[1] = j3dSys.getModel()->getMtxBuffer()->getWeightAnmMtx(0); + J3DShapeMtxConcatView_LoadFunc func = sMtxLoadPipeline[sCurrentPipeline]; + u32 draw_mtx_flag = j3dSys.getModel()->getModelData()->getDrawMtxFlag(mUseMtxIndex); + j3dSys.setModelDrawMtx((Mtx*)sMtxPtrTbl[draw_mtx_flag]); + u16 draw_mtx_index = j3dSys.getModel()->getModelData()->getDrawMtxIndex(mUseMtxIndex); + (this->*func)(0, draw_mtx_index); } -#pragma pop /* 80313D28-80313E4C 30E668 0124+00 3/0 0/0 0/0 .text * loadNrmMtx__21J3DShapeMtxConcatViewCFiUsPA4_f */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapeMtxConcatView::loadNrmMtx(int param_0, u16 param_1, f32 (*param_2)[4]) const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/loadNrmMtx__21J3DShapeMtxConcatViewCFiUsPA4_f.s" +void J3DShapeMtxConcatView::loadNrmMtx(int param_0, u16 param_1, MtxP param_2) const { + if (sCurrentScaleFlag[param_1] == 1) { + if (sTexMtxLoadType == 0x2000) { + J3DFifoLoadNrmMtxToTexMtx(param_2, 0x1e); + } + if (!sNBTFlag) { + J3DFifoLoadNrmMtxImm(param_2, 0); + } else { + Mtx33 mtx; + Vec* scale = j3dSys.getNBTScale(); + J3DPSMtx33CopyFrom34(param_2, mtx); + J3DScaleNrmMtx33(mtx, *scale); + J3DFifoLoadNrmMtxImm3x3(mtx, 0); + } + } else { + Mtx33 mtx; + J3DPSCalcInverseTranspose(param_2, mtx); + if (sTexMtxLoadType == 0x2000) { + J3DFifoLoadNrmMtxToTexMtx3x3(mtx, 0x1e); + } + if (!sNBTFlag) { + J3DFifoLoadNrmMtxImm3x3(mtx, 0); + } else { + Vec* scale = j3dSys.getNBTScale(); + J3DScaleNrmMtx33(mtx, *scale); + J3DFifoLoadNrmMtxImm3x3(mtx, 0); + } + } } -#pragma pop /* 80313E4C-80313EEC 30E78C 00A0+00 1/0 0/0 0/0 .text load__16J3DShapeMtxMultiCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapeMtxMulti::load() const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/load__16J3DShapeMtxMultiCFv.s" +void J3DShapeMtxMulti::load() const { + J3DShapeMtx_LoadFunc func = sMtxLoadPipeline[sCurrentPipeline]; + int use_mtx_num = mUseMtxNum; + for (int i = 0; i < use_mtx_num; i++) { + u16 use_mtx_index = mUseMtxIndexTable[i]; + if (use_mtx_index != 0xffff) { + (this->*func)(i, use_mtx_index); + } + } } -#pragma pop /* 80313EEC-80313FA4 30E82C 00B8+00 1/0 0/0 0/0 .text * calcNBTScale__16J3DShapeMtxMultiFRC3VecPA3_A3_fPA3_A3_f */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapeMtxMulti::calcNBTScale(Vec const& param_0, f32 (*param_1)[3][3], - f32 (*param_2)[3][3]) { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/calcNBTScale__16J3DShapeMtxMultiFRC3VecPA3_A3_fPA3_A3_f.s" +void J3DShapeMtxMulti::calcNBTScale(Vec const& param_0, Mtx33* param_1, Mtx33* param_2) { + int use_mtx_num = mUseMtxNum; + for (int i = 0; i < use_mtx_num; i++) { + u16 use_mtx_index = mUseMtxIndexTable[i]; + if (use_mtx_index != 0xffff) { + J3DPSMtx33Copy(param_1[use_mtx_index], param_2[use_mtx_index]); + J3DScaleNrmMtx33(param_2[mUseMtxIndexTable[i]], param_0); + } + } } -#pragma pop /* 80313FA4-8031419C 30E8E4 01F8+00 1/0 0/0 0/0 .text load__26J3DShapeMtxMultiConcatViewCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapeMtxMultiConcatView::load() const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/load__26J3DShapeMtxMultiConcatViewCFv.s" +void J3DShapeMtxMultiConcatView::load() const { + sMtxPtrTbl[0] = j3dSys.getModel()->getMtxBuffer()->getUserAnmMtx(0); + sMtxPtrTbl[1] = j3dSys.getModel()->getMtxBuffer()->getWeightAnmMtx(0); + if (!sLODFlag) { + J3DShapeMtxConcatView_LoadFunc func = sMtxLoadPipeline[sCurrentPipeline]; + int use_mtx_num = mUseMtxNum; + for (int i = 0; i < use_mtx_num; i++) { + u16 use_mtx_index = mUseMtxIndexTable[i]; + if (use_mtx_index != 0xffff) { + u16 draw_mtx_index = + j3dSys.getModel()->getModelData()->getDrawMtxIndex(use_mtx_index); + u8 draw_mtx_flag = j3dSys.getModel()->getModelData()->getDrawMtxFlag(use_mtx_index); + j3dSys.setModelDrawMtx((Mtx*)sMtxPtrTbl[draw_mtx_flag]); + (this->*func)(i, draw_mtx_index); + } + } + } else { + u16* important_mtx_indices = j3dSys.getModel()->getModelData()->getWEvlpImportantMtxIndex(); + j3dSys.setModelDrawMtx((Mtx*)sMtxPtrTbl[0]); + int use_mtx_num = mUseMtxNum; + for (int i = 0; i < use_mtx_num; i++) { + u32 current_pipeline = sCurrentPipeline; + J3DShapeMtxConcatView_LoadFunc func = sMtxLoadLODPipeline[current_pipeline]; + u16 use_mtx_index = mUseMtxIndexTable[i]; + if (use_mtx_index != 0xffff) { + u16 important_mtx_index = important_mtx_indices[use_mtx_index]; + if (important_mtx_index != sMtxLoadCache[i]) { + u8 draw_mtx_flag = + j3dSys.getModel()->getModelData()->getDrawMtxFlag(use_mtx_index); + if (draw_mtx_flag == 0) { + func = sMtxLoadPipeline[current_pipeline]; + } + (this->*func)(i, important_mtx_index); + sMtxLoadCache[i] = important_mtx_index; + } + } + } + } } -#pragma pop /* 8031419C-803142D4 30EADC 0138+00 1/0 0/0 0/0 .text * loadNrmMtx__26J3DShapeMtxMultiConcatViewCFiUsPA4_f */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapeMtxMultiConcatView::loadNrmMtx(int param_0, u16 param_1, f32 (*param_2)[4]) const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/loadNrmMtx__26J3DShapeMtxMultiConcatViewCFiUsPA4_f.s" +void J3DShapeMtxMultiConcatView::loadNrmMtx(int param_0, u16 param_1, MtxP param_2) const { + Mtx33 mtx1, mtx2; + if (sCurrentScaleFlag[param_1] == 1) { + if (sTexMtxLoadType == 0x2000) { + J3DFifoLoadNrmMtxToTexMtx(param_2, param_0 * 3 + 0x1e); + } + if (!sNBTFlag) { + J3DFifoLoadNrmMtxImm(param_2, param_0 * 3); + } else { + Vec* nbt_scale = j3dSys.getNBTScale(); + J3DPSMtx33CopyFrom34(param_2, mtx1); + J3DScaleNrmMtx33(mtx1, *nbt_scale); + J3DFifoLoadNrmMtxImm3x3(mtx1, 0); + } + } else { + J3DPSCalcInverseTranspose(param_2, mtx2); + if (sTexMtxLoadType == 0x2000) { + J3DFifoLoadNrmMtxToTexMtx3x3(mtx2, param_0 * 3 + 0x1e); + } + if (!sNBTFlag) { + J3DFifoLoadNrmMtxImm3x3(mtx2, param_0 * 3); + } else { + Vec* nbt_scale = j3dSys.getNBTScale(); + J3DScaleNrmMtx33(mtx2, *nbt_scale); + J3DFifoLoadNrmMtxImm3x3(mtx2, param_0 * 3); + } + } } -#pragma pop - -/* ############################################################################################## */ -/* 8045639C-804563A0 00499C 0004+00 1/1 0/0 0/0 .sdata2 @1423 */ -SECTION_SDATA2 static f32 lit_1423 = 1.0f; /* 803142D4-803143E4 30EC14 0110+00 1/0 0/0 0/0 .text load__27J3DShapeMtxBBoardConcatViewCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapeMtxBBoardConcatView::load() const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/load__27J3DShapeMtxBBoardConcatViewCFv.s" +void J3DShapeMtxBBoardConcatView::load() const { + Mtx mtx; + u16 draw_mtx_index = j3dSys.getModel()->getModelData()->getDrawMtxIndex(mUseMtxIndex); + u8 draw_mtx_flag = j3dSys.getModel()->getModelData()->getDrawMtxFlag(mUseMtxIndex); + if (draw_mtx_flag == 0) { + MtxP user_anm_mtx = j3dSys.getModel()->getMtxBuffer()->getUserAnmMtx(draw_mtx_index); + PSMTXConcat(j3dSys.getViewMtx(), user_anm_mtx, mtx); + } else { + MtxP weight_anm_mtx = j3dSys.getModel()->getMtxBuffer()->getWeightAnmMtx(draw_mtx_index); + PSMTXConcat(j3dSys.getViewMtx(), weight_anm_mtx, mtx); + } + J3DCalcBBoardMtx(mtx); + J3DFifoLoadPosMtxImm(mtx, 0); + mtx[0][0] = 1.0f / mtx[0][0]; + mtx[1][1] = 1.0f / mtx[1][1]; + mtx[2][2] = 1.0f / mtx[2][2]; + mtx[0][3] = FLOAT_LABEL(lit_1032); // 0.0f; + mtx[1][3] = FLOAT_LABEL(lit_1032); // 0.0f; + mtx[2][3] = FLOAT_LABEL(lit_1032); // 0.0f; + if (!sNBTFlag) { + J3DFifoLoadNrmMtxImm(mtx, 0); + } else { + Vec* nbt_scale = j3dSys.getNBTScale(); + J3DScaleNrmMtx(mtx, *nbt_scale); + J3DFifoLoadNrmMtxImm(mtx, 0); + } } -#pragma pop /* 803143E4-80314520 30ED24 013C+00 1/0 0/0 0/0 .text load__28J3DShapeMtxYBBoardConcatViewCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapeMtxYBBoardConcatView::load() const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/load__28J3DShapeMtxYBBoardConcatViewCFv.s" +void J3DShapeMtxYBBoardConcatView::load() const { + Mtx mtx1; + Mtx33 mtx2; + u16 draw_mtx_index = j3dSys.getModel()->getModelData()->getDrawMtxIndex(mUseMtxIndex); + u8 draw_mtx_flag = j3dSys.getModel()->getModelData()->getDrawMtxFlag(mUseMtxIndex); + if (draw_mtx_flag == 0) { + MtxP user_anm_mtx = j3dSys.getModel()->getMtxBuffer()->getUserAnmMtx(draw_mtx_index); + PSMTXConcat(j3dSys.getViewMtx(), user_anm_mtx, mtx1); + } else { + MtxP weight_anm_mtx = j3dSys.getModel()->getMtxBuffer()->getWeightAnmMtx(draw_mtx_index); + PSMTXConcat(j3dSys.getViewMtx(), weight_anm_mtx, mtx1); + } + J3DCalcYBBoardMtx(mtx1); + J3DFifoLoadPosMtxImm(mtx1, 0); + if (sCurrentScaleFlag[mUseMtxIndex] == 1) { + if (!sNBTFlag) { + J3DFifoLoadNrmMtxImm(mtx1, 0); + } else { + Vec* nbt_scale = j3dSys.getNBTScale(); + J3DScaleNrmMtx(mtx1, *nbt_scale); + J3DFifoLoadNrmMtxImm(mtx1, 0); + } + } else { + J3DPSCalcInverseTranspose(mtx1, mtx2); + if (!sNBTFlag) { + J3DFifoLoadNrmMtxImm3x3(mtx2, 0); + } else { + Vec* nbt_scale = j3dSys.getNBTScale(); + J3DScaleNrmMtx33(mtx2, *nbt_scale); + J3DFifoLoadNrmMtxImm3x3(mtx2, 0); + } + } } -#pragma pop /* ############################################################################################## */ /* 803CDB70-803CDB84 02AC90 0014+00 0/0 0/0 0/0 .data mtxCache$1263 */ @@ -564,232 +762,3 @@ SECTION_DATA static u8 mtxCache[20] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, }; #pragma pop - -/* 803CDB84-803CDBAC 02ACA4 0028+00 1/1 1/1 0/0 .data __vt__28J3DShapeMtxYBBoardConcatView */ -SECTION_DATA extern void* __vt__28J3DShapeMtxYBBoardConcatView[10] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__28J3DShapeMtxYBBoardConcatViewFv, - (void*)getType__28J3DShapeMtxYBBoardConcatViewCFv, - (void*)getUseMtxNum__11J3DShapeMtxCFv, - (void*)getUseMtxIndex__11J3DShapeMtxCFUs, - (void*)load__28J3DShapeMtxYBBoardConcatViewCFv, - (void*)calcNBTScale__11J3DShapeMtxFRC3VecPA3_A3_fPA3_A3_f, - (void*)loadNrmMtx__21J3DShapeMtxConcatViewCFiUs, - (void*)loadNrmMtx__21J3DShapeMtxConcatViewCFiUsPA4_f, -}; - -/* 803CDBAC-803CDBD4 02ACCC 0028+00 1/1 1/1 0/0 .data __vt__27J3DShapeMtxBBoardConcatView - */ -SECTION_DATA extern void* __vt__27J3DShapeMtxBBoardConcatView[10] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__27J3DShapeMtxBBoardConcatViewFv, - (void*)getType__27J3DShapeMtxBBoardConcatViewCFv, - (void*)getUseMtxNum__11J3DShapeMtxCFv, - (void*)getUseMtxIndex__11J3DShapeMtxCFUs, - (void*)load__27J3DShapeMtxBBoardConcatViewCFv, - (void*)calcNBTScale__11J3DShapeMtxFRC3VecPA3_A3_fPA3_A3_f, - (void*)loadNrmMtx__21J3DShapeMtxConcatViewCFiUs, - (void*)loadNrmMtx__21J3DShapeMtxConcatViewCFiUsPA4_f, -}; - -/* 803CDBD4-803CDBFC 02ACF4 0028+00 1/1 1/1 0/0 .data __vt__26J3DShapeMtxMultiConcatView - */ -SECTION_DATA extern void* __vt__26J3DShapeMtxMultiConcatView[10] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__26J3DShapeMtxMultiConcatViewFv, - (void*)getType__26J3DShapeMtxMultiConcatViewCFv, - (void*)getUseMtxNum__26J3DShapeMtxMultiConcatViewCFv, - (void*)getUseMtxIndex__26J3DShapeMtxMultiConcatViewCFUs, - (void*)load__26J3DShapeMtxMultiConcatViewCFv, - (void*)calcNBTScale__11J3DShapeMtxFRC3VecPA3_A3_fPA3_A3_f, - (void*)loadNrmMtx__26J3DShapeMtxMultiConcatViewCFiUs, - (void*)loadNrmMtx__26J3DShapeMtxMultiConcatViewCFiUsPA4_f, -}; - -/* 803CDBFC-803CDC1C 02AD1C 0020+00 1/1 1/1 0/0 .data __vt__16J3DShapeMtxMulti */ -SECTION_DATA extern void* __vt__16J3DShapeMtxMulti[8] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__16J3DShapeMtxMultiFv, - (void*)getType__16J3DShapeMtxMultiCFv, - (void*)getUseMtxNum__16J3DShapeMtxMultiCFv, - (void*)getUseMtxIndex__16J3DShapeMtxMultiCFUs, - (void*)load__16J3DShapeMtxMultiCFv, - (void*)calcNBTScale__16J3DShapeMtxMultiFRC3VecPA3_A3_fPA3_A3_f, -}; - -/* 803CDC1C-803CDC44 02AD3C 0028+00 4/4 1/1 0/0 .data __vt__21J3DShapeMtxConcatView */ -SECTION_DATA extern void* __vt__21J3DShapeMtxConcatView[10] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__21J3DShapeMtxConcatViewFv, - (void*)getType__21J3DShapeMtxConcatViewCFv, - (void*)getUseMtxNum__11J3DShapeMtxCFv, - (void*)getUseMtxIndex__11J3DShapeMtxCFUs, - (void*)load__21J3DShapeMtxConcatViewCFv, - (void*)calcNBTScale__11J3DShapeMtxFRC3VecPA3_A3_fPA3_A3_f, - (void*)loadNrmMtx__21J3DShapeMtxConcatViewCFiUs, - (void*)loadNrmMtx__21J3DShapeMtxConcatViewCFiUsPA4_f, -}; - -/* 803CDC44-803CDC68 02AD64 0020+04 6/6 1/1 0/0 .data __vt__11J3DShapeMtx */ -SECTION_DATA extern void* __vt__11J3DShapeMtx[8 + 1 /* padding */] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__11J3DShapeMtxFv, - (void*)getType__11J3DShapeMtxCFv, - (void*)getUseMtxNum__11J3DShapeMtxCFv, - (void*)getUseMtxIndex__11J3DShapeMtxCFUs, - (void*)load__11J3DShapeMtxCFv, - (void*)calcNBTScale__11J3DShapeMtxFRC3VecPA3_A3_fPA3_A3_f, - /* padding */ - NULL, -}; - -/* 80314520-8031458C 30EE60 006C+00 1/0 0/0 0/0 .text __dt__28J3DShapeMtxYBBoardConcatViewFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -extern "C" asm void __dt__28J3DShapeMtxYBBoardConcatViewFv() { - // asm J3DShapeMtxYBBoardConcatView::~J3DShapeMtxYBBoardConcatView() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/__dt__28J3DShapeMtxYBBoardConcatViewFv.s" -} -#pragma pop - -/* 8031458C-80314598 30EECC 000C+00 1/0 0/0 0/0 .text getType__28J3DShapeMtxYBBoardConcatViewCFv - */ -u32 J3DShapeMtxYBBoardConcatView::getType() const { - return 'SMYB'; -} - -/* 80314598-8031459C 30EED8 0004+00 3/0 0/0 0/0 .text loadNrmMtx__21J3DShapeMtxConcatViewCFiUs */ -void J3DShapeMtxConcatView::loadNrmMtx(int param_0, u16 param_1) const { - /* empty function */ -} - -/* 8031459C-803145A4 30EEDC 0008+00 4/0 0/0 0/0 .text getUseMtxIndex__11J3DShapeMtxCFUs - */ -u32 J3DShapeMtx::getUseMtxIndex(u16 param_0) const { - return mUseMtxIndex; -} - -/* 803145A4-80314610 30EEE4 006C+00 1/0 0/0 0/0 .text __dt__27J3DShapeMtxBBoardConcatViewFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -extern "C" asm void __dt__27J3DShapeMtxBBoardConcatViewFv() { - // asm J3DShapeMtxBBoardConcatView::~J3DShapeMtxBBoardConcatView() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/__dt__27J3DShapeMtxBBoardConcatViewFv.s" -} -#pragma pop - -/* 80314610-8031461C 30EF50 000C+00 1/0 0/0 0/0 .text getType__27J3DShapeMtxBBoardConcatViewCFv */ -u32 J3DShapeMtxBBoardConcatView::getType() const { - return 'SMBB'; -} - -/* 8031461C-80314688 30EF5C 006C+00 1/0 0/0 0/0 .text __dt__26J3DShapeMtxMultiConcatViewFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -extern "C" asm void __dt__26J3DShapeMtxMultiConcatViewFv() { - // asm J3DShapeMtxMultiConcatView::~J3DShapeMtxMultiConcatView() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/__dt__26J3DShapeMtxMultiConcatViewFv.s" -} -#pragma pop - -/* 80314688-80314694 30EFC8 000C+00 1/0 0/0 0/0 .text getType__26J3DShapeMtxMultiConcatViewCFv */ -u32 J3DShapeMtxMultiConcatView::getType() const { - return 'SMMC'; -} - -/* 80314694-8031469C 30EFD4 0008+00 1/0 0/0 0/0 .text - * getUseMtxNum__26J3DShapeMtxMultiConcatViewCFv */ -u32 J3DShapeMtxMultiConcatView::getUseMtxNum() const { - return mUseMtxNum; -} - -/* 8031469C-803146AC 30EFDC 0010+00 1/0 0/0 0/0 .text - * getUseMtxIndex__26J3DShapeMtxMultiConcatViewCFUs */ -u32 J3DShapeMtxMultiConcatView::getUseMtxIndex(u16 no) const { - return mUseMtxIndexTable[no]; -} - -/* 803146AC-803146B0 30EFEC 0004+00 1/0 0/0 0/0 .text - * loadNrmMtx__26J3DShapeMtxMultiConcatViewCFiUs */ -void J3DShapeMtxMultiConcatView::loadNrmMtx(int param_0, u16 param_1) const { - /* empty function */ -} - -/* 803146B0-8031470C 30EFF0 005C+00 1/0 0/0 0/0 .text __dt__16J3DShapeMtxMultiFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -extern "C" asm void __dt__16J3DShapeMtxMultiFv() { - // asm J3DShapeMtxMulti::~J3DShapeMtxMulti() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/__dt__16J3DShapeMtxMultiFv.s" -} -#pragma pop - -/* 8031470C-80314718 30F04C 000C+00 1/0 0/0 0/0 .text getType__16J3DShapeMtxMultiCFv */ -u32 J3DShapeMtxMulti::getType() const { - return 'SMML'; -} - -/* 80314718-80314720 30F058 0008+00 1/0 0/0 0/0 .text getUseMtxNum__16J3DShapeMtxMultiCFv - */ -u32 J3DShapeMtxMulti::getUseMtxNum() const { - return mUseMtxNum; -} - -/* 80314720-80314730 30F060 0010+00 1/0 0/0 0/0 .text getUseMtxIndex__16J3DShapeMtxMultiCFUs */ -u32 J3DShapeMtxMulti::getUseMtxIndex(u16 no) const { - return mUseMtxIndexTable[no]; -} - -/* 80314730-8031478C 30F070 005C+00 1/0 0/0 0/0 .text __dt__21J3DShapeMtxConcatViewFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -extern "C" asm void __dt__21J3DShapeMtxConcatViewFv() { - // asm J3DShapeMtxConcatView::~J3DShapeMtxConcatView() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/__dt__21J3DShapeMtxConcatViewFv.s" -} -#pragma pop - -/* 8031478C-80314798 30F0CC 000C+00 1/0 0/0 0/0 .text getType__21J3DShapeMtxConcatViewCFv - */ -u32 J3DShapeMtxConcatView::getType() const { - return 'SMCV'; -} - -/* 80314798-803147E0 30F0D8 0048+00 1/0 0/0 0/0 .text __dt__11J3DShapeMtxFv */ -J3DShapeMtx::~J3DShapeMtx() {} - -/* 803147E0-803147EC 30F120 000C+00 1/0 0/0 0/0 .text getType__11J3DShapeMtxCFv */ -u32 J3DShapeMtx::getType() const { - return 'SMTX'; -} - -/* 803147EC-80314924 30F12C 0138+00 0/0 1/0 0/0 .text __sinit_J3DShapeMtx_cpp */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __sinit_J3DShapeMtx_cpp() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/__sinit_J3DShapeMtx_cpp.s" -} -#pragma pop - -#pragma push -#pragma force_active on -REGISTER_CTORS(0x803147EC, __sinit_J3DShapeMtx_cpp); -#pragma pop diff --git a/libs/JSystem/J3DU/J3DUDL.cpp b/libs/JSystem/J3DU/J3DUDL.cpp index 603a02670b2..a57a23f8c2f 100644 --- a/libs/JSystem/J3DU/J3DUDL.cpp +++ b/libs/JSystem/J3DU/J3DUDL.cpp @@ -6,7 +6,7 @@ #include "JSystem/J3DU/J3DUDL.h" #include "JSystem/J3DGraphBase/J3DShapeMtx.h" -/* 80273E08-80273E10 26E748 0008+00 0/0 4/0 0/0 .text getUseMtxNum__11J3DShapeMtxCFv */ -u32 J3DShapeMtx::getUseMtxNum() const { - return 1; +// Fake function to make the weak function J3DShapeMtx::getUseMtxNum appear in this TU +u32 J3DUGetUseMtxNum(J3DShapeMtx* i_shapeMtx) { + return i_shapeMtx->getUseMtxNum(); }