work on J3DShapeMtx (#2002)

* work on J3DShapeMtx

* update Progress.md
This commit is contained in:
Caroline Madsen 2023-12-12 23:42:38 -05:00 committed by GitHub
parent 6eb299f0c3
commit e7a6eb10b5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
25 changed files with 485 additions and 1367 deletions

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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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(); }

View File

@ -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; }

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 */

View File

@ -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; }

View File

@ -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;

View File

@ -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();
}

View File

@ -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

View File

@ -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();
}