work on J3DShapeMtx (#2002)

* work on J3DShapeMtx

* update Progress.md
This commit is contained in:
Caroline Madsen
2023-12-13 06:42:38 +02:00
committed by GitHub
parent 6eb299f0c3
commit e7a6eb10b5
25 changed files with 485 additions and 1367 deletions
+7 -7
View File
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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(); }
@@ -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; }
+43 -38
View File
@@ -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 */

Some files were not shown because too many files have changed in this diff Show More