diff --git a/asm/JSystem/J3DGraphBase/J3DTevs/calcPostTexMtx__9J3DTexMtxFPA4_Cf.s b/asm/JSystem/J3DGraphBase/J3DTevs/calcPostTexMtx__9J3DTexMtxFPA4_Cf.s deleted file mode 100644 index f64966e7890..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DTevs/calcPostTexMtx__9J3DTexMtxFPA4_Cf.s +++ /dev/null @@ -1,235 +0,0 @@ -lbl_80323C0C: -/* 80323C0C 94 21 FF 70 */ stwu r1, -0x90(r1) -/* 80323C10 7C 08 02 A6 */ mflr r0 -/* 80323C14 90 01 00 94 */ stw r0, 0x94(r1) -/* 80323C18 93 E1 00 8C */ stw r31, 0x8c(r1) -/* 80323C1C 93 C1 00 88 */ stw r30, 0x88(r1) -/* 80323C20 7C 7F 1B 78 */ mr r31, r3 -/* 80323C24 7C 9E 23 78 */ mr r30, r4 -/* 80323C28 88 03 00 01 */ lbz r0, 1(r3) -/* 80323C2C 54 04 CF FE */ rlwinm r4, r0, 0x19, 0x1f, 0x1f -/* 80323C30 54 00 06 BE */ clrlwi r0, r0, 0x1a -/* 80323C34 28 00 00 0B */ cmplwi r0, 0xb -/* 80323C38 41 81 02 E4 */ bgt lbl_80323F1C -/* 80323C3C 3C 60 80 3D */ lis r3, lit_1131@ha /* 0x803CEBB8@ha */ -/* 80323C40 38 63 EB B8 */ addi r3, r3, lit_1131@l /* 0x803CEBB8@l */ -/* 80323C44 54 00 10 3A */ slwi r0, r0, 2 -/* 80323C48 7C 03 00 2E */ lwzx r0, r3, r0 -/* 80323C4C 7C 09 03 A6 */ mtctr r0 -/* 80323C50 4E 80 04 20 */ bctr -/* 80323C54 28 04 00 00 */ cmplwi r4, 0 -/* 80323C58 40 82 00 18 */ bne lbl_80323C70 -/* 80323C5C 38 7F 00 10 */ addi r3, r31, 0x10 -/* 80323C60 38 9F 00 04 */ addi r4, r31, 4 -/* 80323C64 38 A1 00 08 */ addi r5, r1, 8 -/* 80323C68 4B FE DE 65 */ bl J3DGetTextureMtx__FRC17J3DTextureSRTInfoRC3VecPA4_f -/* 80323C6C 48 00 00 18 */ b lbl_80323C84 -lbl_80323C70: -/* 80323C70 28 04 00 01 */ cmplwi r4, 1 -/* 80323C74 40 82 00 10 */ bne lbl_80323C84 -/* 80323C78 38 7F 00 10 */ addi r3, r31, 0x10 -/* 80323C7C 38 81 00 08 */ addi r4, r1, 8 -/* 80323C80 4B FE DF B5 */ bl J3DGetTextureMtxMaya__FRC17J3DTextureSRTInfoPA4_f -lbl_80323C84: -/* 80323C84 38 61 00 08 */ addi r3, r1, 8 -/* 80323C88 3C 80 80 3D */ lis r4, qMtx_1063@ha /* 0x803CEB58@ha */ -/* 80323C8C 38 84 EB 58 */ addi r4, r4, qMtx_1063@l /* 0x803CEB58@l */ -/* 80323C90 7C 65 1B 78 */ mr r5, r3 -/* 80323C94 48 02 28 51 */ bl PSMTXConcat -/* 80323C98 38 61 00 08 */ addi r3, r1, 8 -/* 80323C9C 38 9F 00 24 */ addi r4, r31, 0x24 -/* 80323CA0 38 A1 00 48 */ addi r5, r1, 0x48 -/* 80323CA4 4B FE E1 A9 */ bl J3DMtxProjConcat__FPA4_fPA4_fPA4_f -/* 80323CA8 38 61 00 48 */ addi r3, r1, 0x48 -/* 80323CAC 7F C4 F3 78 */ mr r4, r30 -/* 80323CB0 38 BF 00 64 */ addi r5, r31, 0x64 -/* 80323CB4 48 02 28 31 */ bl PSMTXConcat -/* 80323CB8 48 00 02 94 */ b lbl_80323F4C -/* 80323CBC 28 04 00 00 */ cmplwi r4, 0 -/* 80323CC0 40 82 00 18 */ bne lbl_80323CD8 -/* 80323CC4 38 7F 00 10 */ addi r3, r31, 0x10 -/* 80323CC8 38 9F 00 04 */ addi r4, r31, 4 -/* 80323CCC 38 A1 00 08 */ addi r5, r1, 8 -/* 80323CD0 4B FE DD FD */ bl J3DGetTextureMtx__FRC17J3DTextureSRTInfoRC3VecPA4_f -/* 80323CD4 48 00 00 18 */ b lbl_80323CEC -lbl_80323CD8: -/* 80323CD8 28 04 00 01 */ cmplwi r4, 1 -/* 80323CDC 40 82 00 10 */ bne lbl_80323CEC -/* 80323CE0 38 7F 00 10 */ addi r3, r31, 0x10 -/* 80323CE4 38 81 00 08 */ addi r4, r1, 8 -/* 80323CE8 4B FE DF 4D */ bl J3DGetTextureMtxMaya__FRC17J3DTextureSRTInfoPA4_f -lbl_80323CEC: -/* 80323CEC 38 61 00 08 */ addi r3, r1, 8 -/* 80323CF0 3C 80 80 3D */ lis r4, qMtx_1063@ha /* 0x803CEB58@ha */ -/* 80323CF4 38 84 EB 58 */ addi r4, r4, qMtx_1063@l /* 0x803CEB58@l */ -/* 80323CF8 7C 65 1B 78 */ mr r5, r3 -/* 80323CFC 48 02 27 E9 */ bl PSMTXConcat -/* 80323D00 38 61 00 08 */ addi r3, r1, 8 -/* 80323D04 38 9F 00 24 */ addi r4, r31, 0x24 -/* 80323D08 38 BF 00 64 */ addi r5, r31, 0x64 -/* 80323D0C 4B FE E1 41 */ bl J3DMtxProjConcat__FPA4_fPA4_fPA4_f -/* 80323D10 48 00 02 3C */ b lbl_80323F4C -/* 80323D14 28 04 00 00 */ cmplwi r4, 0 -/* 80323D18 40 82 00 18 */ bne lbl_80323D30 -/* 80323D1C 38 7F 00 10 */ addi r3, r31, 0x10 -/* 80323D20 38 9F 00 04 */ addi r4, r31, 4 -/* 80323D24 38 A1 00 48 */ addi r5, r1, 0x48 -/* 80323D28 4B FE DD A5 */ bl J3DGetTextureMtx__FRC17J3DTextureSRTInfoRC3VecPA4_f -/* 80323D2C 48 00 00 18 */ b lbl_80323D44 -lbl_80323D30: -/* 80323D30 28 04 00 01 */ cmplwi r4, 1 -/* 80323D34 40 82 00 10 */ bne lbl_80323D44 -/* 80323D38 38 7F 00 10 */ addi r3, r31, 0x10 -/* 80323D3C 38 81 00 48 */ addi r4, r1, 0x48 -/* 80323D40 4B FE DE F5 */ bl J3DGetTextureMtxMaya__FRC17J3DTextureSRTInfoPA4_f -lbl_80323D44: -/* 80323D44 38 61 00 48 */ addi r3, r1, 0x48 -/* 80323D48 3C 80 80 3D */ lis r4, qMtx_1063@ha /* 0x803CEB58@ha */ -/* 80323D4C 38 84 EB 58 */ addi r4, r4, qMtx_1063@l /* 0x803CEB58@l */ -/* 80323D50 38 BF 00 64 */ addi r5, r31, 0x64 -/* 80323D54 48 02 27 91 */ bl PSMTXConcat -/* 80323D58 48 00 01 F4 */ b lbl_80323F4C -/* 80323D5C 28 04 00 00 */ cmplwi r4, 0 -/* 80323D60 40 82 00 18 */ bne lbl_80323D78 -/* 80323D64 38 7F 00 10 */ addi r3, r31, 0x10 -/* 80323D68 38 9F 00 04 */ addi r4, r31, 4 -/* 80323D6C 38 A1 00 08 */ addi r5, r1, 8 -/* 80323D70 4B FE DE 11 */ bl J3DGetTextureMtxOld__FRC17J3DTextureSRTInfoRC3VecPA4_f -/* 80323D74 48 00 00 18 */ b lbl_80323D8C -lbl_80323D78: -/* 80323D78 28 04 00 01 */ cmplwi r4, 1 -/* 80323D7C 40 82 00 10 */ bne lbl_80323D8C -/* 80323D80 38 7F 00 10 */ addi r3, r31, 0x10 -/* 80323D84 38 81 00 08 */ addi r4, r1, 8 -/* 80323D88 4B FE DF 5D */ bl J3DGetTextureMtxMayaOld__FRC17J3DTextureSRTInfoPA4_f -lbl_80323D8C: -/* 80323D8C 38 61 00 08 */ addi r3, r1, 8 -/* 80323D90 3C 80 80 3D */ lis r4, qMtx2_1064@ha /* 0x803CEB88@ha */ -/* 80323D94 38 84 EB 88 */ addi r4, r4, qMtx2_1064@l /* 0x803CEB88@l */ -/* 80323D98 7C 65 1B 78 */ mr r5, r3 -/* 80323D9C 48 02 27 49 */ bl PSMTXConcat -/* 80323DA0 38 61 00 08 */ addi r3, r1, 8 -/* 80323DA4 38 9F 00 24 */ addi r4, r31, 0x24 -/* 80323DA8 38 A1 00 48 */ addi r5, r1, 0x48 -/* 80323DAC 4B FE E0 A1 */ bl J3DMtxProjConcat__FPA4_fPA4_fPA4_f -/* 80323DB0 38 61 00 48 */ addi r3, r1, 0x48 -/* 80323DB4 7F C4 F3 78 */ mr r4, r30 -/* 80323DB8 38 BF 00 64 */ addi r5, r31, 0x64 -/* 80323DBC 48 02 27 29 */ bl PSMTXConcat -/* 80323DC0 48 00 01 8C */ b lbl_80323F4C -/* 80323DC4 28 04 00 00 */ cmplwi r4, 0 -/* 80323DC8 40 82 00 18 */ bne lbl_80323DE0 -/* 80323DCC 38 7F 00 10 */ addi r3, r31, 0x10 -/* 80323DD0 38 9F 00 04 */ addi r4, r31, 4 -/* 80323DD4 38 A1 00 48 */ addi r5, r1, 0x48 -/* 80323DD8 4B FE DD A9 */ bl J3DGetTextureMtxOld__FRC17J3DTextureSRTInfoRC3VecPA4_f -/* 80323DDC 48 00 00 18 */ b lbl_80323DF4 -lbl_80323DE0: -/* 80323DE0 28 04 00 01 */ cmplwi r4, 1 -/* 80323DE4 40 82 00 10 */ bne lbl_80323DF4 -/* 80323DE8 38 7F 00 10 */ addi r3, r31, 0x10 -/* 80323DEC 38 81 00 48 */ addi r4, r1, 0x48 -/* 80323DF0 4B FE DE F5 */ bl J3DGetTextureMtxMayaOld__FRC17J3DTextureSRTInfoPA4_f -lbl_80323DF4: -/* 80323DF4 38 61 00 48 */ addi r3, r1, 0x48 -/* 80323DF8 3C 80 80 3D */ lis r4, qMtx2_1064@ha /* 0x803CEB88@ha */ -/* 80323DFC 38 84 EB 88 */ addi r4, r4, qMtx2_1064@l /* 0x803CEB88@l */ -/* 80323E00 38 BF 00 64 */ addi r5, r31, 0x64 -/* 80323E04 48 02 26 E1 */ bl PSMTXConcat -/* 80323E08 48 00 01 44 */ b lbl_80323F4C -/* 80323E0C 28 04 00 00 */ cmplwi r4, 0 -/* 80323E10 40 82 00 18 */ bne lbl_80323E28 -/* 80323E14 38 7F 00 10 */ addi r3, r31, 0x10 -/* 80323E18 38 9F 00 04 */ addi r4, r31, 4 -/* 80323E1C 38 BF 00 64 */ addi r5, r31, 0x64 -/* 80323E20 4B FE DD 61 */ bl J3DGetTextureMtxOld__FRC17J3DTextureSRTInfoRC3VecPA4_f -/* 80323E24 48 00 01 28 */ b lbl_80323F4C -lbl_80323E28: -/* 80323E28 28 04 00 01 */ cmplwi r4, 1 -/* 80323E2C 40 82 01 20 */ bne lbl_80323F4C -/* 80323E30 38 7F 00 10 */ addi r3, r31, 0x10 -/* 80323E34 38 9F 00 64 */ addi r4, r31, 0x64 -/* 80323E38 4B FE DE AD */ bl J3DGetTextureMtxMayaOld__FRC17J3DTextureSRTInfoPA4_f -/* 80323E3C 48 00 01 10 */ b lbl_80323F4C -/* 80323E40 28 04 00 00 */ cmplwi r4, 0 -/* 80323E44 40 82 00 18 */ bne lbl_80323E5C -/* 80323E48 38 7F 00 10 */ addi r3, r31, 0x10 -/* 80323E4C 38 9F 00 04 */ addi r4, r31, 4 -/* 80323E50 38 A1 00 08 */ addi r5, r1, 8 -/* 80323E54 4B FE DD 2D */ bl J3DGetTextureMtxOld__FRC17J3DTextureSRTInfoRC3VecPA4_f -/* 80323E58 48 00 00 18 */ b lbl_80323E70 -lbl_80323E5C: -/* 80323E5C 28 04 00 01 */ cmplwi r4, 1 -/* 80323E60 40 82 00 10 */ bne lbl_80323E70 -/* 80323E64 38 7F 00 10 */ addi r3, r31, 0x10 -/* 80323E68 38 81 00 08 */ addi r4, r1, 8 -/* 80323E6C 4B FE DE 79 */ bl J3DGetTextureMtxMayaOld__FRC17J3DTextureSRTInfoPA4_f -lbl_80323E70: -/* 80323E70 38 61 00 08 */ addi r3, r1, 8 -/* 80323E74 38 9F 00 24 */ addi r4, r31, 0x24 -/* 80323E78 38 A1 00 48 */ addi r5, r1, 0x48 -/* 80323E7C 4B FE DF D1 */ bl J3DMtxProjConcat__FPA4_fPA4_fPA4_f -/* 80323E80 38 61 00 48 */ addi r3, r1, 0x48 -/* 80323E84 7F C4 F3 78 */ mr r4, r30 -/* 80323E88 38 BF 00 64 */ addi r5, r31, 0x64 -/* 80323E8C 48 02 26 59 */ bl PSMTXConcat -/* 80323E90 48 00 00 BC */ b lbl_80323F4C -/* 80323E94 28 04 00 00 */ cmplwi r4, 0 -/* 80323E98 40 82 00 18 */ bne lbl_80323EB0 -/* 80323E9C 38 7F 00 10 */ addi r3, r31, 0x10 -/* 80323EA0 38 9F 00 04 */ addi r4, r31, 4 -/* 80323EA4 38 A1 00 08 */ addi r5, r1, 8 -/* 80323EA8 4B FE DC D9 */ bl J3DGetTextureMtxOld__FRC17J3DTextureSRTInfoRC3VecPA4_f -/* 80323EAC 48 00 00 18 */ b lbl_80323EC4 -lbl_80323EB0: -/* 80323EB0 28 04 00 01 */ cmplwi r4, 1 -/* 80323EB4 40 82 00 10 */ bne lbl_80323EC4 -/* 80323EB8 38 7F 00 10 */ addi r3, r31, 0x10 -/* 80323EBC 38 81 00 08 */ addi r4, r1, 8 -/* 80323EC0 4B FE DE 25 */ bl J3DGetTextureMtxMayaOld__FRC17J3DTextureSRTInfoPA4_f -lbl_80323EC4: -/* 80323EC4 38 61 00 08 */ addi r3, r1, 8 -/* 80323EC8 38 9F 00 24 */ addi r4, r31, 0x24 -/* 80323ECC 38 BF 00 64 */ addi r5, r31, 0x64 -/* 80323ED0 4B FE DF 7D */ bl J3DMtxProjConcat__FPA4_fPA4_fPA4_f -/* 80323ED4 48 00 00 78 */ b lbl_80323F4C -/* 80323ED8 28 04 00 00 */ cmplwi r4, 0 -/* 80323EDC 40 82 00 18 */ bne lbl_80323EF4 -/* 80323EE0 38 7F 00 10 */ addi r3, r31, 0x10 -/* 80323EE4 38 9F 00 04 */ addi r4, r31, 4 -/* 80323EE8 38 A1 00 08 */ addi r5, r1, 8 -/* 80323EEC 4B FE DC 95 */ bl J3DGetTextureMtxOld__FRC17J3DTextureSRTInfoRC3VecPA4_f -/* 80323EF0 48 00 00 18 */ b lbl_80323F08 -lbl_80323EF4: -/* 80323EF4 28 04 00 01 */ cmplwi r4, 1 -/* 80323EF8 40 82 00 10 */ bne lbl_80323F08 -/* 80323EFC 38 7F 00 10 */ addi r3, r31, 0x10 -/* 80323F00 38 81 00 08 */ addi r4, r1, 8 -/* 80323F04 4B FE DD E1 */ bl J3DGetTextureMtxMayaOld__FRC17J3DTextureSRTInfoPA4_f -lbl_80323F08: -/* 80323F08 38 61 00 08 */ addi r3, r1, 8 -/* 80323F0C 38 9F 00 24 */ addi r4, r31, 0x24 -/* 80323F10 38 BF 00 64 */ addi r5, r31, 0x64 -/* 80323F14 4B FE DF 39 */ bl J3DMtxProjConcat__FPA4_fPA4_fPA4_f -/* 80323F18 48 00 00 34 */ b lbl_80323F4C -lbl_80323F1C: -/* 80323F1C 28 04 00 00 */ cmplwi r4, 0 -/* 80323F20 40 82 00 18 */ bne lbl_80323F38 -/* 80323F24 38 7F 00 10 */ addi r3, r31, 0x10 -/* 80323F28 38 9F 00 04 */ addi r4, r31, 4 -/* 80323F2C 38 BF 00 64 */ addi r5, r31, 0x64 -/* 80323F30 4B FE DC 51 */ bl J3DGetTextureMtxOld__FRC17J3DTextureSRTInfoRC3VecPA4_f -/* 80323F34 48 00 00 18 */ b lbl_80323F4C -lbl_80323F38: -/* 80323F38 28 04 00 01 */ cmplwi r4, 1 -/* 80323F3C 40 82 00 10 */ bne lbl_80323F4C -/* 80323F40 38 7F 00 10 */ addi r3, r31, 0x10 -/* 80323F44 38 9F 00 64 */ addi r4, r31, 0x64 -/* 80323F48 4B FE DD 9D */ bl J3DGetTextureMtxMayaOld__FRC17J3DTextureSRTInfoPA4_f -lbl_80323F4C: -/* 80323F4C 83 E1 00 8C */ lwz r31, 0x8c(r1) -/* 80323F50 83 C1 00 88 */ lwz r30, 0x88(r1) -/* 80323F54 80 01 00 94 */ lwz r0, 0x94(r1) -/* 80323F58 7C 08 03 A6 */ mtlr r0 -/* 80323F5C 38 21 00 90 */ addi r1, r1, 0x90 -/* 80323F60 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DTevs/calcTexMtx__9J3DTexMtxFPA4_Cf.s b/asm/JSystem/J3DGraphBase/J3DTevs/calcTexMtx__9J3DTexMtxFPA4_Cf.s deleted file mode 100644 index 4c51c9ea031..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DTevs/calcTexMtx__9J3DTexMtxFPA4_Cf.s +++ /dev/null @@ -1,205 +0,0 @@ -lbl_80323920: -/* 80323920 94 21 FF 70 */ stwu r1, -0x90(r1) -/* 80323924 7C 08 02 A6 */ mflr r0 -/* 80323928 90 01 00 94 */ stw r0, 0x94(r1) -/* 8032392C 93 E1 00 8C */ stw r31, 0x8c(r1) -/* 80323930 93 C1 00 88 */ stw r30, 0x88(r1) -/* 80323934 7C 7E 1B 78 */ mr r30, r3 -/* 80323938 7C 9F 23 78 */ mr r31, r4 -/* 8032393C 88 03 00 01 */ lbz r0, 1(r3) -/* 80323940 54 04 CF FE */ rlwinm r4, r0, 0x19, 0x1f, 0x1f -/* 80323944 54 00 06 BE */ clrlwi r0, r0, 0x1a -/* 80323948 28 00 00 0B */ cmplwi r0, 0xb -/* 8032394C 41 81 02 78 */ bgt lbl_80323BC4 -/* 80323950 3C 60 80 3D */ lis r3, lit_1059@ha /* 0x803CEB28@ha */ -/* 80323954 38 63 EB 28 */ addi r3, r3, lit_1059@l /* 0x803CEB28@l */ -/* 80323958 54 00 10 3A */ slwi r0, r0, 2 -/* 8032395C 7C 03 00 2E */ lwzx r0, r3, r0 -/* 80323960 7C 09 03 A6 */ mtctr r0 -/* 80323964 4E 80 04 20 */ bctr -/* 80323968 28 04 00 00 */ cmplwi r4, 0 -/* 8032396C 40 82 00 18 */ bne lbl_80323984 -/* 80323970 38 7E 00 10 */ addi r3, r30, 0x10 -/* 80323974 38 9E 00 04 */ addi r4, r30, 4 -/* 80323978 38 A1 00 08 */ addi r5, r1, 8 -/* 8032397C 4B FE E1 51 */ bl J3DGetTextureMtx__FRC17J3DTextureSRTInfoRC3VecPA4_f -/* 80323980 48 00 00 18 */ b lbl_80323998 -lbl_80323984: -/* 80323984 28 04 00 01 */ cmplwi r4, 1 -/* 80323988 40 82 00 10 */ bne lbl_80323998 -/* 8032398C 38 7E 00 10 */ addi r3, r30, 0x10 -/* 80323990 38 81 00 08 */ addi r4, r1, 8 -/* 80323994 4B FE E2 A1 */ bl J3DGetTextureMtxMaya__FRC17J3DTextureSRTInfoPA4_f -lbl_80323998: -/* 80323998 38 61 00 08 */ addi r3, r1, 8 -/* 8032399C 3C 80 80 3D */ lis r4, qMtx_1001@ha /* 0x803CEAC8@ha */ -/* 803239A0 38 84 EA C8 */ addi r4, r4, qMtx_1001@l /* 0x803CEAC8@l */ -/* 803239A4 7C 65 1B 78 */ mr r5, r3 -/* 803239A8 48 02 2B 3D */ bl PSMTXConcat -/* 803239AC 38 61 00 08 */ addi r3, r1, 8 -/* 803239B0 38 9E 00 24 */ addi r4, r30, 0x24 -/* 803239B4 38 A1 00 48 */ addi r5, r1, 0x48 -/* 803239B8 4B FE E4 95 */ bl J3DMtxProjConcat__FPA4_fPA4_fPA4_f -/* 803239BC 38 61 00 48 */ addi r3, r1, 0x48 -/* 803239C0 7F E4 FB 78 */ mr r4, r31 -/* 803239C4 38 BE 00 64 */ addi r5, r30, 0x64 -/* 803239C8 48 02 2B 1D */ bl PSMTXConcat -/* 803239CC 48 00 02 28 */ b lbl_80323BF4 -/* 803239D0 28 04 00 00 */ cmplwi r4, 0 -/* 803239D4 40 82 00 18 */ bne lbl_803239EC -/* 803239D8 38 7E 00 10 */ addi r3, r30, 0x10 -/* 803239DC 38 9E 00 04 */ addi r4, r30, 4 -/* 803239E0 38 A1 00 48 */ addi r5, r1, 0x48 -/* 803239E4 4B FE E0 E9 */ bl J3DGetTextureMtx__FRC17J3DTextureSRTInfoRC3VecPA4_f -/* 803239E8 48 00 00 18 */ b lbl_80323A00 -lbl_803239EC: -/* 803239EC 28 04 00 01 */ cmplwi r4, 1 -/* 803239F0 40 82 00 10 */ bne lbl_80323A00 -/* 803239F4 38 7E 00 10 */ addi r3, r30, 0x10 -/* 803239F8 38 81 00 48 */ addi r4, r1, 0x48 -/* 803239FC 4B FE E2 39 */ bl J3DGetTextureMtxMaya__FRC17J3DTextureSRTInfoPA4_f -lbl_80323A00: -/* 80323A00 38 61 00 48 */ addi r3, r1, 0x48 -/* 80323A04 3C 80 80 3D */ lis r4, qMtx_1001@ha /* 0x803CEAC8@ha */ -/* 80323A08 38 84 EA C8 */ addi r4, r4, qMtx_1001@l /* 0x803CEAC8@l */ -/* 80323A0C 7C 65 1B 78 */ mr r5, r3 -/* 80323A10 48 02 2A D5 */ bl PSMTXConcat -/* 80323A14 38 61 00 48 */ addi r3, r1, 0x48 -/* 80323A18 7F E4 FB 78 */ mr r4, r31 -/* 80323A1C 38 BE 00 64 */ addi r5, r30, 0x64 -/* 80323A20 48 02 2A C5 */ bl PSMTXConcat -/* 80323A24 48 00 01 D0 */ b lbl_80323BF4 -/* 80323A28 28 04 00 00 */ cmplwi r4, 0 -/* 80323A2C 40 82 00 18 */ bne lbl_80323A44 -/* 80323A30 38 7E 00 10 */ addi r3, r30, 0x10 -/* 80323A34 38 9E 00 04 */ addi r4, r30, 4 -/* 80323A38 38 A1 00 08 */ addi r5, r1, 8 -/* 80323A3C 4B FE E1 45 */ bl J3DGetTextureMtxOld__FRC17J3DTextureSRTInfoRC3VecPA4_f -/* 80323A40 48 00 00 18 */ b lbl_80323A58 -lbl_80323A44: -/* 80323A44 28 04 00 01 */ cmplwi r4, 1 -/* 80323A48 40 82 00 10 */ bne lbl_80323A58 -/* 80323A4C 38 7E 00 10 */ addi r3, r30, 0x10 -/* 80323A50 38 81 00 08 */ addi r4, r1, 8 -/* 80323A54 4B FE E2 91 */ bl J3DGetTextureMtxMayaOld__FRC17J3DTextureSRTInfoPA4_f -lbl_80323A58: -/* 80323A58 38 61 00 08 */ addi r3, r1, 8 -/* 80323A5C 3C 80 80 3D */ lis r4, qMtx2_1002@ha /* 0x803CEAF8@ha */ -/* 80323A60 38 84 EA F8 */ addi r4, r4, qMtx2_1002@l /* 0x803CEAF8@l */ -/* 80323A64 7C 65 1B 78 */ mr r5, r3 -/* 80323A68 48 02 2A 7D */ bl PSMTXConcat -/* 80323A6C 38 61 00 08 */ addi r3, r1, 8 -/* 80323A70 38 9E 00 24 */ addi r4, r30, 0x24 -/* 80323A74 38 A1 00 48 */ addi r5, r1, 0x48 -/* 80323A78 4B FE E3 D5 */ bl J3DMtxProjConcat__FPA4_fPA4_fPA4_f -/* 80323A7C 38 61 00 48 */ addi r3, r1, 0x48 -/* 80323A80 7F E4 FB 78 */ mr r4, r31 -/* 80323A84 38 BE 00 64 */ addi r5, r30, 0x64 -/* 80323A88 48 02 2A 5D */ bl PSMTXConcat -/* 80323A8C 48 00 01 68 */ b lbl_80323BF4 -/* 80323A90 28 04 00 00 */ cmplwi r4, 0 -/* 80323A94 40 82 00 18 */ bne lbl_80323AAC -/* 80323A98 38 7E 00 10 */ addi r3, r30, 0x10 -/* 80323A9C 38 9E 00 04 */ addi r4, r30, 4 -/* 80323AA0 38 A1 00 48 */ addi r5, r1, 0x48 -/* 80323AA4 4B FE E0 DD */ bl J3DGetTextureMtxOld__FRC17J3DTextureSRTInfoRC3VecPA4_f -/* 80323AA8 48 00 00 18 */ b lbl_80323AC0 -lbl_80323AAC: -/* 80323AAC 28 04 00 01 */ cmplwi r4, 1 -/* 80323AB0 40 82 00 10 */ bne lbl_80323AC0 -/* 80323AB4 38 7E 00 10 */ addi r3, r30, 0x10 -/* 80323AB8 38 81 00 48 */ addi r4, r1, 0x48 -/* 80323ABC 4B FE E2 29 */ bl J3DGetTextureMtxMayaOld__FRC17J3DTextureSRTInfoPA4_f -lbl_80323AC0: -/* 80323AC0 38 61 00 48 */ addi r3, r1, 0x48 -/* 80323AC4 3C 80 80 3D */ lis r4, qMtx2_1002@ha /* 0x803CEAF8@ha */ -/* 80323AC8 38 84 EA F8 */ addi r4, r4, qMtx2_1002@l /* 0x803CEAF8@l */ -/* 80323ACC 7C 65 1B 78 */ mr r5, r3 -/* 80323AD0 48 02 2A 15 */ bl PSMTXConcat -/* 80323AD4 38 61 00 48 */ addi r3, r1, 0x48 -/* 80323AD8 7F E4 FB 78 */ mr r4, r31 -/* 80323ADC 38 BE 00 64 */ addi r5, r30, 0x64 -/* 80323AE0 48 02 2A 05 */ bl PSMTXConcat -/* 80323AE4 48 00 01 10 */ b lbl_80323BF4 -/* 80323AE8 28 04 00 00 */ cmplwi r4, 0 -/* 80323AEC 40 82 00 18 */ bne lbl_80323B04 -/* 80323AF0 38 7E 00 10 */ addi r3, r30, 0x10 -/* 80323AF4 38 9E 00 04 */ addi r4, r30, 4 -/* 80323AF8 38 A1 00 48 */ addi r5, r1, 0x48 -/* 80323AFC 4B FE E0 85 */ bl J3DGetTextureMtxOld__FRC17J3DTextureSRTInfoRC3VecPA4_f -/* 80323B00 48 00 00 18 */ b lbl_80323B18 -lbl_80323B04: -/* 80323B04 28 04 00 01 */ cmplwi r4, 1 -/* 80323B08 40 82 00 10 */ bne lbl_80323B18 -/* 80323B0C 38 7E 00 10 */ addi r3, r30, 0x10 -/* 80323B10 38 81 00 48 */ addi r4, r1, 0x48 -/* 80323B14 4B FE E1 D1 */ bl J3DGetTextureMtxMayaOld__FRC17J3DTextureSRTInfoPA4_f -lbl_80323B18: -/* 80323B18 38 61 00 48 */ addi r3, r1, 0x48 -/* 80323B1C 7F E4 FB 78 */ mr r4, r31 -/* 80323B20 38 BE 00 64 */ addi r5, r30, 0x64 -/* 80323B24 48 02 29 C1 */ bl PSMTXConcat -/* 80323B28 48 00 00 CC */ b lbl_80323BF4 -/* 80323B2C 28 04 00 00 */ cmplwi r4, 0 -/* 80323B30 40 82 00 18 */ bne lbl_80323B48 -/* 80323B34 38 7E 00 10 */ addi r3, r30, 0x10 -/* 80323B38 38 9E 00 04 */ addi r4, r30, 4 -/* 80323B3C 38 A1 00 08 */ addi r5, r1, 8 -/* 80323B40 4B FE E0 41 */ bl J3DGetTextureMtxOld__FRC17J3DTextureSRTInfoRC3VecPA4_f -/* 80323B44 48 00 00 18 */ b lbl_80323B5C -lbl_80323B48: -/* 80323B48 28 04 00 01 */ cmplwi r4, 1 -/* 80323B4C 40 82 00 10 */ bne lbl_80323B5C -/* 80323B50 38 7E 00 10 */ addi r3, r30, 0x10 -/* 80323B54 38 81 00 08 */ addi r4, r1, 8 -/* 80323B58 4B FE E1 8D */ bl J3DGetTextureMtxMayaOld__FRC17J3DTextureSRTInfoPA4_f -lbl_80323B5C: -/* 80323B5C 38 61 00 08 */ addi r3, r1, 8 -/* 80323B60 38 9E 00 24 */ addi r4, r30, 0x24 -/* 80323B64 38 A1 00 48 */ addi r5, r1, 0x48 -/* 80323B68 4B FE E2 E5 */ bl J3DMtxProjConcat__FPA4_fPA4_fPA4_f -/* 80323B6C 38 61 00 48 */ addi r3, r1, 0x48 -/* 80323B70 7F E4 FB 78 */ mr r4, r31 -/* 80323B74 38 BE 00 64 */ addi r5, r30, 0x64 -/* 80323B78 48 02 29 6D */ bl PSMTXConcat -/* 80323B7C 48 00 00 78 */ b lbl_80323BF4 -/* 80323B80 28 04 00 00 */ cmplwi r4, 0 -/* 80323B84 40 82 00 18 */ bne lbl_80323B9C -/* 80323B88 38 7E 00 10 */ addi r3, r30, 0x10 -/* 80323B8C 38 9E 00 04 */ addi r4, r30, 4 -/* 80323B90 38 A1 00 08 */ addi r5, r1, 8 -/* 80323B94 4B FE DF ED */ bl J3DGetTextureMtxOld__FRC17J3DTextureSRTInfoRC3VecPA4_f -/* 80323B98 48 00 00 18 */ b lbl_80323BB0 -lbl_80323B9C: -/* 80323B9C 28 04 00 01 */ cmplwi r4, 1 -/* 80323BA0 40 82 00 10 */ bne lbl_80323BB0 -/* 80323BA4 38 7E 00 10 */ addi r3, r30, 0x10 -/* 80323BA8 38 81 00 08 */ addi r4, r1, 8 -/* 80323BAC 4B FE E1 39 */ bl J3DGetTextureMtxMayaOld__FRC17J3DTextureSRTInfoPA4_f -lbl_80323BB0: -/* 80323BB0 38 61 00 08 */ addi r3, r1, 8 -/* 80323BB4 38 9E 00 24 */ addi r4, r30, 0x24 -/* 80323BB8 38 BE 00 64 */ addi r5, r30, 0x64 -/* 80323BBC 4B FE E2 91 */ bl J3DMtxProjConcat__FPA4_fPA4_fPA4_f -/* 80323BC0 48 00 00 34 */ b lbl_80323BF4 -lbl_80323BC4: -/* 80323BC4 28 04 00 00 */ cmplwi r4, 0 -/* 80323BC8 40 82 00 18 */ bne lbl_80323BE0 -/* 80323BCC 38 7E 00 10 */ addi r3, r30, 0x10 -/* 80323BD0 38 9E 00 04 */ addi r4, r30, 4 -/* 80323BD4 38 BE 00 64 */ addi r5, r30, 0x64 -/* 80323BD8 4B FE DF A9 */ bl J3DGetTextureMtxOld__FRC17J3DTextureSRTInfoRC3VecPA4_f -/* 80323BDC 48 00 00 18 */ b lbl_80323BF4 -lbl_80323BE0: -/* 80323BE0 28 04 00 01 */ cmplwi r4, 1 -/* 80323BE4 40 82 00 10 */ bne lbl_80323BF4 -/* 80323BE8 38 7E 00 10 */ addi r3, r30, 0x10 -/* 80323BEC 38 9E 00 64 */ addi r4, r30, 0x64 -/* 80323BF0 4B FE E0 F5 */ bl J3DGetTextureMtxMayaOld__FRC17J3DTextureSRTInfoPA4_f -lbl_80323BF4: -/* 80323BF4 83 E1 00 8C */ lwz r31, 0x8c(r1) -/* 80323BF8 83 C1 00 88 */ lwz r30, 0x88(r1) -/* 80323BFC 80 01 00 94 */ lwz r0, 0x94(r1) -/* 80323C00 7C 08 03 A6 */ mtlr r0 -/* 80323C04 38 21 00 90 */ addi r1, r1, 0x90 -/* 80323C08 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DTevs/getTexNoReg__FPv.s b/asm/JSystem/J3DGraphBase/J3DTevs/getTexNoReg__FPv.s deleted file mode 100644 index 026b8da46bd..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DTevs/getTexNoReg__FPv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_80323F88: -/* 80323F88 80 03 00 01 */ lwz r0, 1(r3) -/* 80323F8C 54 03 04 3E */ clrlwi r3, r0, 0x10 -/* 80323F90 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DTevs/isTexNoReg__FPv.s b/asm/JSystem/J3DGraphBase/J3DTevs/isTexNoReg__FPv.s deleted file mode 100644 index 2e349fa0598..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DTevs/isTexNoReg__FPv.s +++ /dev/null @@ -1,11 +0,0 @@ -lbl_80323F64: -/* 80323F64 88 03 00 01 */ lbz r0, 1(r3) -/* 80323F68 28 00 00 80 */ cmplwi r0, 0x80 -/* 80323F6C 41 80 00 14 */ blt lbl_80323F80 -/* 80323F70 28 00 00 BB */ cmplwi r0, 0xbb -/* 80323F74 41 81 00 0C */ bgt lbl_80323F80 -/* 80323F78 38 60 00 01 */ li r3, 1 -/* 80323F7C 4E 80 00 20 */ blr -lbl_80323F80: -/* 80323F80 38 60 00 00 */ li r3, 0 -/* 80323F84 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DTevs/loadNBTScale__FR11J3DNBTScale.s b/asm/JSystem/J3DGraphBase/J3DTevs/loadNBTScale__FR11J3DNBTScale.s deleted file mode 100644 index b76aab103c7..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DTevs/loadNBTScale__FR11J3DNBTScale.s +++ /dev/null @@ -1,15 +0,0 @@ -lbl_80324160: -/* 80324160 88 03 00 00 */ lbz r0, 0(r3) -/* 80324164 28 00 00 01 */ cmplwi r0, 1 -/* 80324168 40 82 00 18 */ bne lbl_80324180 -/* 8032416C 38 03 00 04 */ addi r0, r3, 4 -/* 80324170 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */ -/* 80324174 38 63 4A C8 */ addi r3, r3, j3dSys@l /* 0x80434AC8@l */ -/* 80324178 90 03 01 18 */ stw r0, 0x118(r3) -/* 8032417C 4E 80 00 20 */ blr -lbl_80324180: -/* 80324180 38 00 00 00 */ li r0, 0 -/* 80324184 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */ -/* 80324188 38 63 4A C8 */ addi r3, r3, j3dSys@l /* 0x80434AC8@l */ -/* 8032418C 90 03 01 18 */ stw r0, 0x118(r3) -/* 80324190 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DTevs/loadTexCoordGens__FUlP11J3DTexCoord.s b/asm/JSystem/J3DGraphBase/J3DTevs/loadTexCoordGens__FUlP11J3DTexCoord.s deleted file mode 100644 index a3cce7e0db3..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DTevs/loadTexCoordGens__FUlP11J3DTexCoord.s +++ /dev/null @@ -1,169 +0,0 @@ -lbl_80323644: -/* 80323644 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80323648 7C 08 02 A6 */ mflr r0 -/* 8032364C 90 01 00 24 */ stw r0, 0x24(r1) -/* 80323650 39 61 00 20 */ addi r11, r1, 0x20 -/* 80323654 48 03 EB 7D */ bl _savegpr_26 -/* 80323658 7C 7C 1B 78 */ mr r28, r3 -/* 8032365C 7C 9D 23 78 */ mr r29, r4 -/* 80323660 80 8D 94 00 */ lwz r4, __GDCurrentDL(r13) -/* 80323664 80 64 00 08 */ lwz r3, 8(r4) -/* 80323668 57 80 18 38 */ slwi r0, r28, 3 -/* 8032366C 7C 60 1A 14 */ add r3, r0, r3 -/* 80323670 38 63 00 0A */ addi r3, r3, 0xa -/* 80323674 80 04 00 0C */ lwz r0, 0xc(r4) -/* 80323678 7C 03 00 40 */ cmplw r3, r0 -/* 8032367C 40 81 00 08 */ ble lbl_80323684 -/* 80323680 48 03 DA 55 */ bl GDOverflowed -lbl_80323684: -/* 80323684 38 C0 00 10 */ li r6, 0x10 -/* 80323688 80 8D 94 00 */ lwz r4, __GDCurrentDL(r13) -/* 8032368C 80 64 00 08 */ lwz r3, 8(r4) -/* 80323690 38 03 00 01 */ addi r0, r3, 1 -/* 80323694 90 04 00 08 */ stw r0, 8(r4) -/* 80323698 98 C3 00 00 */ stb r6, 0(r3) -/* 8032369C 57 83 06 3E */ clrlwi r3, r28, 0x18 -/* 803236A0 38 A3 FF FF */ addi r5, r3, -1 -/* 803236A4 54 BF C6 3E */ rlwinm r31, r5, 0x18, 0x18, 0x1f -/* 803236A8 80 8D 94 00 */ lwz r4, __GDCurrentDL(r13) -/* 803236AC 80 64 00 08 */ lwz r3, 8(r4) -/* 803236B0 38 03 00 01 */ addi r0, r3, 1 -/* 803236B4 90 04 00 08 */ stw r0, 8(r4) -/* 803236B8 9B E3 00 00 */ stb r31, 0(r3) -/* 803236BC 54 BE 06 3E */ clrlwi r30, r5, 0x18 -/* 803236C0 80 8D 94 00 */ lwz r4, __GDCurrentDL(r13) -/* 803236C4 80 64 00 08 */ lwz r3, 8(r4) -/* 803236C8 38 03 00 01 */ addi r0, r3, 1 -/* 803236CC 90 04 00 08 */ stw r0, 8(r4) -/* 803236D0 98 A3 00 00 */ stb r5, 0(r3) -/* 803236D4 80 8D 94 00 */ lwz r4, __GDCurrentDL(r13) -/* 803236D8 80 64 00 08 */ lwz r3, 8(r4) -/* 803236DC 38 03 00 01 */ addi r0, r3, 1 -/* 803236E0 90 04 00 08 */ stw r0, 8(r4) -/* 803236E4 98 C3 00 00 */ stb r6, 0(r3) -/* 803236E8 38 A0 00 40 */ li r5, 0x40 -/* 803236EC 80 8D 94 00 */ lwz r4, __GDCurrentDL(r13) -/* 803236F0 80 64 00 08 */ lwz r3, 8(r4) -/* 803236F4 38 03 00 01 */ addi r0, r3, 1 -/* 803236F8 90 04 00 08 */ stw r0, 8(r4) -/* 803236FC 98 A3 00 00 */ stb r5, 0(r3) -/* 80323700 3B 40 00 00 */ li r26, 0 -/* 80323704 3B 60 00 00 */ li r27, 0 -/* 80323708 48 00 00 1C */ b lbl_80323724 -lbl_8032370C: -/* 8032370C 7C 9D DA 14 */ add r4, r29, r27 -/* 80323710 88 64 00 00 */ lbz r3, 0(r4) -/* 80323714 88 84 00 01 */ lbz r4, 1(r4) -/* 80323718 4B FE A9 4D */ bl J3DGDSetTexCoordGen__F13_GXTexGenType12_GXTexGenSrc -/* 8032371C 3B 5A 00 01 */ addi r26, r26, 1 -/* 80323720 3B 7B 00 06 */ addi r27, r27, 6 -lbl_80323724: -/* 80323724 7C 1A E0 40 */ cmplw r26, r28 -/* 80323728 41 80 FF E4 */ blt lbl_8032370C -/* 8032372C 38 A0 00 10 */ li r5, 0x10 -/* 80323730 80 8D 94 00 */ lwz r4, __GDCurrentDL(r13) -/* 80323734 80 64 00 08 */ lwz r3, 8(r4) -/* 80323738 38 03 00 01 */ addi r0, r3, 1 -/* 8032373C 90 04 00 08 */ stw r0, 8(r4) -/* 80323740 98 A3 00 00 */ stb r5, 0(r3) -/* 80323744 80 8D 94 00 */ lwz r4, __GDCurrentDL(r13) -/* 80323748 80 64 00 08 */ lwz r3, 8(r4) -/* 8032374C 38 03 00 01 */ addi r0, r3, 1 -/* 80323750 90 04 00 08 */ stw r0, 8(r4) -/* 80323754 9B E3 00 00 */ stb r31, 0(r3) -/* 80323758 80 8D 94 00 */ lwz r4, __GDCurrentDL(r13) -/* 8032375C 80 64 00 08 */ lwz r3, 8(r4) -/* 80323760 38 03 00 01 */ addi r0, r3, 1 -/* 80323764 90 04 00 08 */ stw r0, 8(r4) -/* 80323768 9B C3 00 00 */ stb r30, 0(r3) -/* 8032376C 80 8D 94 00 */ lwz r4, __GDCurrentDL(r13) -/* 80323770 80 64 00 08 */ lwz r3, 8(r4) -/* 80323774 38 03 00 01 */ addi r0, r3, 1 -/* 80323778 90 04 00 08 */ stw r0, 8(r4) -/* 8032377C 98 A3 00 00 */ stb r5, 0(r3) -/* 80323780 38 A0 00 50 */ li r5, 0x50 -/* 80323784 80 8D 94 00 */ lwz r4, __GDCurrentDL(r13) -/* 80323788 80 64 00 08 */ lwz r3, 8(r4) -/* 8032378C 38 03 00 01 */ addi r0, r3, 1 -/* 80323790 90 04 00 08 */ stw r0, 8(r4) -/* 80323794 98 A3 00 00 */ stb r5, 0(r3) -/* 80323798 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */ -/* 8032379C 38 63 4A C8 */ addi r3, r3, j3dSys@l /* 0x80434AC8@l */ -/* 803237A0 80 03 00 34 */ lwz r0, 0x34(r3) -/* 803237A4 54 00 00 43 */ rlwinm. r0, r0, 0, 1, 1 -/* 803237A8 41 82 00 9C */ beq lbl_80323844 -/* 803237AC 39 00 00 00 */ li r8, 0 -/* 803237B0 38 60 00 00 */ li r3, 0 -/* 803237B4 7F 89 03 A6 */ mtctr r28 -/* 803237B8 28 1C 00 00 */ cmplwi r28, 0 -/* 803237BC 40 81 00 F0 */ ble lbl_803238AC -lbl_803237C0: -/* 803237C0 38 03 00 02 */ addi r0, r3, 2 -/* 803237C4 7C 1D 00 AE */ lbzx r0, r29, r0 -/* 803237C8 28 00 00 3C */ cmplwi r0, 0x3c -/* 803237CC 38 E0 00 3D */ li r7, 0x3d -/* 803237D0 41 82 00 08 */ beq lbl_803237D8 -/* 803237D4 1C E8 00 03 */ mulli r7, r8, 3 -lbl_803237D8: -/* 803237D8 54 E6 46 3E */ srwi r6, r7, 0x18 -/* 803237DC 80 AD 94 00 */ lwz r5, __GDCurrentDL(r13) -/* 803237E0 80 85 00 08 */ lwz r4, 8(r5) -/* 803237E4 38 04 00 01 */ addi r0, r4, 1 -/* 803237E8 90 05 00 08 */ stw r0, 8(r5) -/* 803237EC 98 C4 00 00 */ stb r6, 0(r4) -/* 803237F0 54 E6 86 3E */ rlwinm r6, r7, 0x10, 0x18, 0x1f -/* 803237F4 80 AD 94 00 */ lwz r5, __GDCurrentDL(r13) -/* 803237F8 80 85 00 08 */ lwz r4, 8(r5) -/* 803237FC 38 04 00 01 */ addi r0, r4, 1 -/* 80323800 90 05 00 08 */ stw r0, 8(r5) -/* 80323804 98 C4 00 00 */ stb r6, 0(r4) -/* 80323808 54 E6 C6 3E */ rlwinm r6, r7, 0x18, 0x18, 0x1f -/* 8032380C 80 AD 94 00 */ lwz r5, __GDCurrentDL(r13) -/* 80323810 80 85 00 08 */ lwz r4, 8(r5) -/* 80323814 38 04 00 01 */ addi r0, r4, 1 -/* 80323818 90 05 00 08 */ stw r0, 8(r5) -/* 8032381C 98 C4 00 00 */ stb r6, 0(r4) -/* 80323820 80 AD 94 00 */ lwz r5, __GDCurrentDL(r13) -/* 80323824 80 85 00 08 */ lwz r4, 8(r5) -/* 80323828 38 04 00 01 */ addi r0, r4, 1 -/* 8032382C 90 05 00 08 */ stw r0, 8(r5) -/* 80323830 98 E4 00 00 */ stb r7, 0(r4) -/* 80323834 39 08 00 01 */ addi r8, r8, 1 -/* 80323838 38 63 00 06 */ addi r3, r3, 6 -/* 8032383C 42 00 FF 84 */ bdnz lbl_803237C0 -/* 80323840 48 00 00 6C */ b lbl_803238AC -lbl_80323844: -/* 80323844 7F 89 03 A6 */ mtctr r28 -/* 80323848 28 1C 00 00 */ cmplwi r28, 0 -/* 8032384C 40 81 00 60 */ ble lbl_803238AC -lbl_80323850: -/* 80323850 38 A0 00 00 */ li r5, 0 -/* 80323854 80 8D 94 00 */ lwz r4, __GDCurrentDL(r13) -/* 80323858 80 64 00 08 */ lwz r3, 8(r4) -/* 8032385C 38 03 00 01 */ addi r0, r3, 1 -/* 80323860 90 04 00 08 */ stw r0, 8(r4) -/* 80323864 98 A3 00 00 */ stb r5, 0(r3) -/* 80323868 80 8D 94 00 */ lwz r4, __GDCurrentDL(r13) -/* 8032386C 80 64 00 08 */ lwz r3, 8(r4) -/* 80323870 38 03 00 01 */ addi r0, r3, 1 -/* 80323874 90 04 00 08 */ stw r0, 8(r4) -/* 80323878 98 A3 00 00 */ stb r5, 0(r3) -/* 8032387C 80 8D 94 00 */ lwz r4, __GDCurrentDL(r13) -/* 80323880 80 64 00 08 */ lwz r3, 8(r4) -/* 80323884 38 03 00 01 */ addi r0, r3, 1 -/* 80323888 90 04 00 08 */ stw r0, 8(r4) -/* 8032388C 98 A3 00 00 */ stb r5, 0(r3) -/* 80323890 38 A0 00 3D */ li r5, 0x3d -/* 80323894 80 8D 94 00 */ lwz r4, __GDCurrentDL(r13) -/* 80323898 80 64 00 08 */ lwz r3, 8(r4) -/* 8032389C 38 03 00 01 */ addi r0, r3, 1 -/* 803238A0 90 04 00 08 */ stw r0, 8(r4) -/* 803238A4 98 A3 00 00 */ stb r5, 0(r3) -/* 803238A8 42 00 FF A8 */ bdnz lbl_80323850 -lbl_803238AC: -/* 803238AC 39 61 00 20 */ addi r11, r1, 0x20 -/* 803238B0 48 03 E9 6D */ bl _restgpr_26 -/* 803238B4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 803238B8 7C 08 03 A6 */ mtlr r0 -/* 803238BC 38 21 00 20 */ addi r1, r1, 0x20 -/* 803238C0 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DTevs/loadTexNo__FUlRCUs.s b/asm/JSystem/J3DGraphBase/J3DTevs/loadTexNo__FUlRCUs.s deleted file mode 100644 index 84d003fd406..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DTevs/loadTexNo__FUlRCUs.s +++ /dev/null @@ -1,111 +0,0 @@ -lbl_80323F94: -/* 80323F94 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 80323F98 7C 08 02 A6 */ mflr r0 -/* 80323F9C 90 01 00 34 */ stw r0, 0x34(r1) -/* 80323FA0 39 61 00 30 */ addi r11, r1, 0x30 -/* 80323FA4 48 03 E2 35 */ bl _savegpr_28 -/* 80323FA8 7C 7E 1B 78 */ mr r30, r3 -/* 80323FAC 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */ -/* 80323FB0 38 63 4A C8 */ addi r3, r3, j3dSys@l /* 0x80434AC8@l */ -/* 80323FB4 80 63 00 58 */ lwz r3, 0x58(r3) -/* 80323FB8 80 63 00 04 */ lwz r3, 4(r3) -/* 80323FBC A0 04 00 00 */ lhz r0, 0(r4) -/* 80323FC0 54 00 2A F4 */ rlwinm r0, r0, 5, 0xb, 0x1a -/* 80323FC4 7F E3 02 14 */ add r31, r3, r0 -/* 80323FC8 A0 1F 00 02 */ lhz r0, 2(r31) -/* 80323FCC 57 C4 18 38 */ slwi r4, r30, 3 -/* 80323FD0 3C 60 80 43 */ lis r3, sTexCoordScaleTable__6J3DSys@ha /* 0x80434C2C@ha */ -/* 80323FD4 38 63 4C 2C */ addi r3, r3, sTexCoordScaleTable__6J3DSys@l /* 0x80434C2C@l */ -/* 80323FD8 7C 03 23 2E */ sthx r0, r3, r4 -/* 80323FDC A0 1F 00 04 */ lhz r0, 4(r31) -/* 80323FE0 7C 63 22 14 */ add r3, r3, r4 -/* 80323FE4 B0 03 00 02 */ sth r0, 2(r3) -/* 80323FE8 80 8D 94 00 */ lwz r4, __GDCurrentDL(r13) -/* 80323FEC 80 64 00 08 */ lwz r3, 8(r4) -/* 80323FF0 38 63 00 14 */ addi r3, r3, 0x14 -/* 80323FF4 80 04 00 0C */ lwz r0, 0xc(r4) -/* 80323FF8 7C 03 00 40 */ cmplw r3, r0 -/* 80323FFC 40 81 00 08 */ ble lbl_80324004 -/* 80324000 48 03 D0 D5 */ bl GDOverflowed -lbl_80324004: -/* 80324004 7F C3 F3 78 */ mr r3, r30 -/* 80324008 80 1F 00 1C */ lwz r0, 0x1c(r31) -/* 8032400C 7C 9F 02 14 */ add r4, r31, r0 -/* 80324010 4B FE A6 6D */ bl J3DGDSetTexImgPtr__F11_GXTexMapIDPv -/* 80324014 7F C3 F3 78 */ mr r3, r30 -/* 80324018 A0 9F 00 02 */ lhz r4, 2(r31) -/* 8032401C A0 BF 00 04 */ lhz r5, 4(r31) -/* 80324020 88 1F 00 00 */ lbz r0, 0(r31) -/* 80324024 54 06 07 3E */ clrlwi r6, r0, 0x1c -/* 80324028 4B FE A5 AD */ bl J3DGDSetTexImgAttr__F11_GXTexMapIDUsUs9_GXTexFmt -/* 8032402C 7F C3 F3 78 */ mr r3, r30 -/* 80324030 88 9F 00 06 */ lbz r4, 6(r31) -/* 80324034 88 BF 00 07 */ lbz r5, 7(r31) -/* 80324038 88 DF 00 14 */ lbz r6, 0x14(r31) -/* 8032403C 88 FF 00 15 */ lbz r7, 0x15(r31) -/* 80324040 C0 42 C9 B0 */ lfs f2, lit_1167(r2) -/* 80324044 88 1F 00 16 */ lbz r0, 0x16(r31) -/* 80324048 7C 00 07 74 */ extsb r0, r0 -/* 8032404C C8 82 C9 B8 */ lfd f4, lit_1171(r2) -/* 80324050 6C 00 80 00 */ xoris r0, r0, 0x8000 -/* 80324054 90 01 00 0C */ stw r0, 0xc(r1) -/* 80324058 3D 00 43 30 */ lis r8, 0x4330 -/* 8032405C 91 01 00 08 */ stw r8, 8(r1) -/* 80324060 C8 01 00 08 */ lfd f0, 8(r1) -/* 80324064 EC 00 20 28 */ fsubs f0, f0, f4 -/* 80324068 EC 22 00 32 */ fmuls f1, f2, f0 -/* 8032406C 88 1F 00 17 */ lbz r0, 0x17(r31) -/* 80324070 7C 00 07 74 */ extsb r0, r0 -/* 80324074 6C 00 80 00 */ xoris r0, r0, 0x8000 -/* 80324078 90 01 00 14 */ stw r0, 0x14(r1) -/* 8032407C 91 01 00 10 */ stw r8, 0x10(r1) -/* 80324080 C8 01 00 10 */ lfd f0, 0x10(r1) -/* 80324084 EC 00 20 28 */ fsubs f0, f0, f4 -/* 80324088 EC 42 00 32 */ fmuls f2, f2, f0 -/* 8032408C C0 62 C9 B4 */ lfs f3, lit_1168(r2) -/* 80324090 A8 1F 00 1A */ lha r0, 0x1a(r31) -/* 80324094 6C 00 80 00 */ xoris r0, r0, 0x8000 -/* 80324098 90 01 00 1C */ stw r0, 0x1c(r1) -/* 8032409C 91 01 00 18 */ stw r8, 0x18(r1) -/* 803240A0 C8 01 00 18 */ lfd f0, 0x18(r1) -/* 803240A4 EC 00 20 28 */ fsubs f0, f0, f4 -/* 803240A8 EC 63 00 32 */ fmuls f3, f3, f0 -/* 803240AC 89 1F 00 12 */ lbz r8, 0x12(r31) -/* 803240B0 89 3F 00 11 */ lbz r9, 0x11(r31) -/* 803240B4 89 5F 00 13 */ lbz r10, 0x13(r31) -/* 803240B8 4B FE A3 81 */ bl J3DGDSetTexLookupMode__F11_GXTexMapID14_GXTexWrapMode14_GXTexWrapMode12_GXTexFilter12_GXTexFilterfffUcUc13_GXAnisotropy -/* 803240BC 88 1F 00 08 */ lbz r0, 8(r31) -/* 803240C0 28 00 00 01 */ cmplwi r0, 1 -/* 803240C4 40 82 00 60 */ bne lbl_80324124 -/* 803240C8 A0 1F 00 0A */ lhz r0, 0xa(r31) -/* 803240CC 28 00 00 10 */ cmplwi r0, 0x10 -/* 803240D0 3B A0 00 01 */ li r29, 1 -/* 803240D4 40 81 00 08 */ ble lbl_803240DC -/* 803240D8 3B A0 00 10 */ li r29, 0x10 -lbl_803240DC: -/* 803240DC 80 8D 94 00 */ lwz r4, __GDCurrentDL(r13) -/* 803240E0 80 64 00 08 */ lwz r3, 8(r4) -/* 803240E4 38 63 00 14 */ addi r3, r3, 0x14 -/* 803240E8 80 04 00 0C */ lwz r0, 0xc(r4) -/* 803240EC 7C 03 00 40 */ cmplw r3, r0 -/* 803240F0 40 81 00 08 */ ble lbl_803240F8 -/* 803240F4 48 03 CF E1 */ bl GDOverflowed -lbl_803240F8: -/* 803240F8 80 1F 00 0C */ lwz r0, 0xc(r31) -/* 803240FC 7C 7F 02 14 */ add r3, r31, r0 -/* 80324100 57 C4 68 24 */ slwi r4, r30, 0xd -/* 80324104 3F 84 00 0F */ addis r28, r4, 0xf -/* 80324108 7F 84 E3 78 */ mr r4, r28 -/* 8032410C 7F A5 EB 78 */ mr r5, r29 -/* 80324110 4B FE A7 69 */ bl J3DGDLoadTlut__FPvUl11_GXTlutSize -/* 80324114 7F C3 F3 78 */ mr r3, r30 -/* 80324118 7F 84 E3 78 */ mr r4, r28 -/* 8032411C 88 BF 00 09 */ lbz r5, 9(r31) -/* 80324120 4B FE A6 C1 */ bl J3DGDSetTexTlut__F11_GXTexMapIDUl10_GXTlutFmt -lbl_80324124: -/* 80324124 39 61 00 30 */ addi r11, r1, 0x30 -/* 80324128 48 03 E0 FD */ bl _restgpr_28 -/* 8032412C 80 01 00 34 */ lwz r0, 0x34(r1) -/* 80324130 7C 08 03 A6 */ mtlr r0 -/* 80324134 38 21 00 30 */ addi r1, r1, 0x30 -/* 80324138 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DTevs/makeAlphaCmpTable__Fv.s b/asm/JSystem/J3DGraphBase/J3DTevs/makeAlphaCmpTable__Fv.s deleted file mode 100644 index e9c7647520d..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DTevs/makeAlphaCmpTable__Fv.s +++ /dev/null @@ -1,31 +0,0 @@ -lbl_8032423C: -/* 8032423C 3C 60 80 43 */ lis r3, j3dAlphaCmpTable@ha /* 0x80436E60@ha */ -/* 80324240 38 A3 6E 60 */ addi r5, r3, j3dAlphaCmpTable@l /* 0x80436E60@l */ -/* 80324244 39 00 00 00 */ li r8, 0 -/* 80324248 38 60 00 00 */ li r3, 0 -lbl_8032424C: -/* 8032424C 39 20 00 00 */ li r9, 0 -/* 80324250 38 80 00 00 */ li r4, 0 -lbl_80324254: -/* 80324254 39 40 00 00 */ li r10, 0 -/* 80324258 7C C3 22 14 */ add r6, r3, r4 -/* 8032425C 38 00 00 08 */ li r0, 8 -/* 80324260 7C 09 03 A6 */ mtctr r0 -lbl_80324264: -/* 80324264 7C 0A 32 14 */ add r0, r10, r6 -/* 80324268 1C 00 00 03 */ mulli r0, r0, 3 -/* 8032426C 7C E5 02 14 */ add r7, r5, r0 -/* 80324270 99 07 00 00 */ stb r8, 0(r7) -/* 80324274 99 27 00 01 */ stb r9, 1(r7) -/* 80324278 99 47 00 02 */ stb r10, 2(r7) -/* 8032427C 39 4A 00 01 */ addi r10, r10, 1 -/* 80324280 42 00 FF E4 */ bdnz lbl_80324264 -/* 80324284 39 29 00 01 */ addi r9, r9, 1 -/* 80324288 2C 09 00 04 */ cmpwi r9, 4 -/* 8032428C 38 84 00 08 */ addi r4, r4, 8 -/* 80324290 41 80 FF C4 */ blt lbl_80324254 -/* 80324294 39 08 00 01 */ addi r8, r8, 1 -/* 80324298 28 08 00 08 */ cmplwi r8, 8 -/* 8032429C 38 63 00 20 */ addi r3, r3, 0x20 -/* 803242A0 41 80 FF AC */ blt lbl_8032424C -/* 803242A4 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DTevs/makeTevSwapTable__Fv.s b/asm/JSystem/J3DGraphBase/J3DTevs/makeTevSwapTable__Fv.s deleted file mode 100644 index ba9c4d09735..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DTevs/makeTevSwapTable__Fv.s +++ /dev/null @@ -1,19 +0,0 @@ -lbl_80324314: -/* 80324314 3C 60 80 43 */ lis r3, j3dTevSwapTableTable@ha /* 0x80436A60@ha */ -/* 80324318 38 03 6A 60 */ addi r0, r3, j3dTevSwapTableTable@l /* 0x80436A60@l */ -/* 8032431C 7C 03 03 78 */ mr r3, r0 -/* 80324320 38 80 00 00 */ li r4, 0 -lbl_80324324: -/* 80324324 7C 80 36 70 */ srawi r0, r4, 6 -/* 80324328 98 03 00 00 */ stb r0, 0(r3) -/* 8032432C 54 80 E7 BE */ rlwinm r0, r4, 0x1c, 0x1e, 0x1f -/* 80324330 98 03 00 01 */ stb r0, 1(r3) -/* 80324334 54 80 F7 BE */ rlwinm r0, r4, 0x1e, 0x1e, 0x1f -/* 80324338 98 03 00 02 */ stb r0, 2(r3) -/* 8032433C 54 80 07 BE */ clrlwi r0, r4, 0x1e -/* 80324340 98 03 00 03 */ stb r0, 3(r3) -/* 80324344 38 84 00 01 */ addi r4, r4, 1 -/* 80324348 2C 04 01 00 */ cmpwi r4, 0x100 -/* 8032434C 38 63 00 04 */ addi r3, r3, 4 -/* 80324350 41 80 FF D4 */ blt lbl_80324324 -/* 80324354 4E 80 00 20 */ blr diff --git a/include/JSystem/J3DGraphBase/J3DGD.h b/include/JSystem/J3DGraphBase/J3DGD.h index 6047a410207..35e8ac45d5b 100644 --- a/include/JSystem/J3DGraphBase/J3DGD.h +++ b/include/JSystem/J3DGraphBase/J3DGD.h @@ -1,8 +1,8 @@ #ifndef J3DGD_H #define J3DGD_H -#include "dolphin/gx/GX.h" #include "dolphin/gd/GDBase.h" +#include "dolphin/gx/GX.h" inline void J3DGDWrite_u8(u8 param) { __GDWrite(param); @@ -20,15 +20,63 @@ inline void J3DGDWrite_u32(u32 param) { __GDWrite(param & 0xff); } -inline void J3DGDWriteXFCmd(u16 param_1, u32 param_2) { - J3DGDWrite_u8(0x10); - J3DGDWrite_u16(0); - J3DGDWrite_u16(param_1); - J3DGDWrite_u32(param_2); +inline void J3DGDWrite_f32(f32 param) { + u32 tmp = *(u32*)¶m; + J3DGDWrite_u32(tmp); } -void J3DGDSetGenMode(u8 texGenNum, u8 colorChanNum, u8 tevStageNum, u8 IndTexStageNum, _GXCullMode cullMode); +inline void J3DGDWriteBPCmd(u32 param_1) { + J3DGDWrite_u8(0x61); + J3DGDWrite_u32(param_1); +} + +inline void J3DGDWriteXFCmd(u16 param_1, u32 param_2) { + J3DGDWrite_u8(0x10); + J3DGDWrite_u16(0); + J3DGDWrite_u16(param_1); + J3DGDWrite_u32(param_2); +} + +inline void J3DGDWriteXFCmdHdr(u16 cmd, u8 len) { + J3DGDWrite_u8(0x10); + J3DGDWrite_u16(len - 1); + J3DGDWrite_u16(cmd); +} + +void J3DGDSetGenMode(u8 texGenNum, u8 colorChanNum, u8 tevStageNum, u8 IndTexStageNum, + GXCullMode cullMode); void J3DGDSetGenMode_3Param(u8 texGenNum, u8 tevStageNum, u8 indTexStageNum); +void J3DGDSetLightAttn(GXLightID, f32, f32, f32, f32, f32, f32); +void J3DGDSetLightColor(GXLightID, GXColor); +void J3DGDSetLightPos(GXLightID, f32, f32, f32); +void J3DGDSetLightDir(GXLightID, f32, f32, f32); +void J3DGDSetVtxAttrFmtv(GXVtxFmt, GXVtxAttrFmtList const*, bool); +void J3DGDSetTexCoordGen(GXTexGenType, GXTexGenSrc); +void J3DGDSetTexCoordScale2(GXTexCoordID, u16, u8, u8, u16, u8, u8); +void J3DGDSetTexLookupMode(GXTexMapID, GXTexWrapMode, GXTexWrapMode, GXTexFilter, GXTexFilter, f32, + f32, f32, u8, u8, GXAnisotropy); +void J3DGDSetTexImgAttr(GXTexMapID, u16, u16, GXTexFmt); +void J3DGDSetTexImgPtr(GXTexMapID, void*); +void J3DGDSetTexImgPtrRaw(GXTexMapID, u32); +void J3DGDSetTexTlut(GXTexMapID, u32, _GXTlutFmt); +void J3DGDLoadTlut(void*, u32, _GXTlutSize); +void J3DGDSetIndTexMtx(GXIndTexMtxID, f32 (*)[3], s8); +void J3DGDSetIndTexCoordScale(GXIndTexStageID, GXIndTexScale, GXIndTexScale, GXIndTexScale, + GXIndTexScale); +void J3DGDSetIndTexOrder(u32, GXTexCoordID, GXTexMapID, GXTexCoordID, GXTexMapID, GXTexCoordID, + GXTexMapID, GXTexCoordID, GXTexMapID); +void J3DGDSetTevOrder(GXTevStageID, GXTexCoordID, GXTexMapID, GXChannelID, GXTexCoordID, GXTexMapID, + GXChannelID); +void J3DGDSetTevKColor(GXTevKColorID, GXColor); +void J3DGDSetTevColorS10(GXTevRegID, GXColorS10); +void J3DGDSetFog(GXFogType, f32, f32, f32, f32, GXColor); +void J3DGDSetFogRangeAdj(u8, u16, _GXFogAdjTable*); +void J3DFifoLoadPosMtxImm(f32 (*)[4], u32); +void J3DFifoLoadNrmMtxImm(f32 (*)[4], u32); +void J3DFifoLoadNrmMtxImm3x3(f32 (*)[3], u32); +void J3DFifoLoadNrmMtxToTexMtx(f32 (*)[4], u32); +void J3DFifoLoadNrmMtxToTexMtx3x3(f32 (*)[3], u32); +void J3DFifoLoadTexCached(GXTexMapID, u32, GXTexCacheSize, u32, GXTexCacheSize); static inline void J3DFifoLoadIndx(u8 cmd, u16 indx, u16 addr) { GFX_FIFO(u8) = cmd; diff --git a/include/JSystem/J3DGraphBase/J3DStruct.h b/include/JSystem/J3DGraphBase/J3DStruct.h index 2e2eef1b2b4..8693afa6484 100644 --- a/include/JSystem/J3DGraphBase/J3DStruct.h +++ b/include/JSystem/J3DGraphBase/J3DStruct.h @@ -65,7 +65,7 @@ struct J3DTexMtxInfo { /* 80325794 */ void setEffectMtx(Mtx); /* 0x00 */ u8 mProjection; - /* 0x01 */ s8 mInfo; + /* 0x01 */ u8 mInfo; /* 0x04 */ Vec mCenter; /* 0x10 */ J3DTextureSRTInfo mSRT; /* 0x24 */ Mtx44 mEffectMtx; @@ -98,7 +98,7 @@ struct J3DFogInfo { struct J3DNBTScaleInfo { /* 8032587C */ void operator=(J3DNBTScaleInfo const&); - /* 0x0 */ u8 mbHasScale; + /* 0x0 */ bool mbHasScale; /* 0x4 */ Vec mScale; }; // Size: 0x10 diff --git a/include/JSystem/J3DGraphBase/J3DSys.h b/include/JSystem/J3DGraphBase/J3DSys.h index 3bcf84f71f3..914cc2d610c 100644 --- a/include/JSystem/J3DGraphBase/J3DSys.h +++ b/include/JSystem/J3DGraphBase/J3DSys.h @@ -23,6 +23,13 @@ class J3DShape; class J3DDrawBuffer; class J3DTexture; +struct J3DTexCoordScaleInfo { + /* 0x0 */ u16 field_0x00; + /* 0x2 */ u16 field_0x02; + /* 0x4 */ u16 field_0x04; + /* 0x6 */ u16 field_0x06; +}; + enum J3DSysFlag { J3DSysFlag_SkinPosCpu = 0x00000004, J3DSysFlag_SkinNrmCpu = 0x00000008, @@ -131,7 +138,7 @@ struct J3DSys { static Mtx mCurrentMtx; static Vec mCurrentS; static Vec mParentS; - static u16 sTexCoordScaleTable[32]; + static J3DTexCoordScaleInfo sTexCoordScaleTable[8]; }; extern u32 j3dDefaultViewNo; diff --git a/include/JSystem/J3DGraphBase/J3DTexture.h b/include/JSystem/J3DGraphBase/J3DTexture.h index 8f646bbe99c..adb98ecde70 100644 --- a/include/JSystem/J3DGraphBase/J3DTexture.h +++ b/include/JSystem/J3DGraphBase/J3DTexture.h @@ -32,9 +32,9 @@ public: mTexMtxInfo = info; } /* 803238C4 */ void load(u32) const; - /* 80323900 */ void calc(f32 const (*)[4]); - /* 80323920 */ void calcTexMtx(f32 const (*)[4]); - /* 80323C0C */ void calcPostTexMtx(f32 const (*)[4]); + /* 80323900 */ void calc(const Mtx); + /* 80323920 */ void calcTexMtx(const Mtx); + /* 80323C0C */ void calcPostTexMtx(const Mtx); /* 80324358 */ void loadTexMtx(u32) const; /* 803243BC */ void loadPostTexMtx(u32) const; @@ -62,6 +62,8 @@ struct J3DTexCoord : public J3DTexCoordInfo { *(J3DTexCoordInfo*)this = *param_1; } + u8 getTexGenType() { return mTexGenType; } + u8 getTexGenSrc() { return mTexGenSrc; } u8 getTexGenMtx() { return mTexGenMtx & 0xff; } u16 getTexMtxReg() { return mTexMtxReg & 0xff; } diff --git a/include/JSystem/J3DGraphBase/J3DTransform.h b/include/JSystem/J3DGraphBase/J3DTransform.h index 327774c7502..5c3f2170526 100644 --- a/include/JSystem/J3DGraphBase/J3DTransform.h +++ b/include/JSystem/J3DGraphBase/J3DTransform.h @@ -4,6 +4,8 @@ #include "JSystem/JGeometry.h" #include "dolphin/mtx/mtxvec.h" +struct J3DTextureSRTInfo; + struct J3DTransformInfo { /* 0x00 */ JGeometry::TVec3 mScale; /* 0x0C */ JGeometry::TVec3 mRotation; @@ -15,10 +17,20 @@ extern Vec const j3dDefaultScale; extern Mtx const j3dDefaultMtx; extern f32 PSMulUnit01[2]; -void J3DGetTranslateRotateMtx(J3DTransformInfo const&, Mtx); -void J3DGetTranslateRotateMtx(s16, s16, s16, f32, f32, f32, Mtx); -void J3DPSCalcInverseTranspose(f32 (*param_0)[4], f32 (*param_1)[3]); void J3DGQRSetup7(u32 param_0, u32 param_1, u32 param_2, u32 param_3); +void J3DCalcBBoardMtx(f32 (*)[4]); +void J3DCalcYBBoardMtx(f32 (*)[4]); +void J3DPSCalcInverseTranspose(f32 (*param_0)[4], f32 (*param_1)[3]); +void J3DGetTranslateRotateMtx(const J3DTransformInfo&, Mtx); +void J3DGetTranslateRotateMtx(s16, s16, s16, f32, f32, f32, Mtx); +void J3DGetTextureMtx(const J3DTextureSRTInfo&, const Vec&, f32 (*)[4]); +void J3DGetTextureMtxOld(const J3DTextureSRTInfo&, const Vec&, f32 (*)[4]); +void J3DGetTextureMtxMaya(const J3DTextureSRTInfo&, f32 (*)[4]); +void J3DGetTextureMtxMayaOld(const J3DTextureSRTInfo& param_0, f32 (*)[4]); +void J3DScaleNrmMtx(f32 (*)[4], const Vec&); +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 J3DPSMtx33CopyFrom34(register MtxP src, register Mtx3P dst) { register f32 x_y1; diff --git a/include/dolphin/gd/GDBase.h b/include/dolphin/gd/GDBase.h index 712b92f24ee..2c2346b2a6f 100644 --- a/include/dolphin/gd/GDBase.h +++ b/include/dolphin/gd/GDBase.h @@ -16,23 +16,65 @@ typedef struct GDLObj { extern GDLObj* __GDCurrentDL; -inline void GDSetCurrent(GDLObj* obj) { - __GDCurrentDL = obj; -} +typedef void (*GDOverflowCallback)(void); + +void GDInitGDLObj(GDLObj*, u8*, u32); +void GDFlushCurrToMem(); +void GDPadCurr32(); +void GDOverflowed(void); inline void __GDWrite(u8 data) { *__GDCurrentDL->ptr++ = data; } +inline void GDSetCurrent(GDLObj* obj) { + __GDCurrentDL = obj; +} + inline u32 GDGetGDLObjOffset(GDLObj* obj) { return (u32)(obj->ptr - obj->start); } -void GDInitGDLObj(GDLObj*, u8*, u32); -void GDFlushCurrToMem(); -void GDPadCurr32(); +inline u8* GDGetCurrPointer() { + return __GDCurrentDL->ptr; +} -typedef void (*GDOverflowCallback)(void); +inline s32 GDGetCurrOffset() { + return __GDCurrentDL->ptr - __GDCurrentDL->start; +} + +inline void GDSetCurrOffset(s32 offs) { + __GDCurrentDL->ptr = __GDCurrentDL->start + offs; +} + +inline void GDAdvCurrOffset(s32 offs) { + __GDCurrentDL->ptr += offs; +} + +inline void GDOverflowCheck(u32 len) { + if (__GDCurrentDL->ptr + len > __GDCurrentDL->end) { + GDOverflowed(); + } +} + +inline void GDWrite_u32(u32 v) { + GDOverflowCheck(4); + __GDWrite((v >> 24) & 0xff); + __GDWrite((v >> 16) & 0xff); + __GDWrite((v >> 8) & 0xff); + __GDWrite((v >> 0) & 0xff); +} + +inline void GDWrite_u16(u16 v) { + GDOverflowCheck(2); + __GDWrite(v >> 8); + __GDWrite(v & 0xff); +} + +inline void GDWrite_u8(u8 v) { + GDOverflowCheck(1); + __GDWrite(v); +} #ifdef __cplusplus }; diff --git a/libs/JSystem/J3DGraphBase/J3DSys.cpp b/libs/JSystem/J3DGraphBase/J3DSys.cpp index 66e0894ca61..5445c572b35 100644 --- a/libs/JSystem/J3DGraphBase/J3DSys.cpp +++ b/libs/JSystem/J3DGraphBase/J3DSys.cpp @@ -51,7 +51,7 @@ Vec J3DSys::mCurrentS; Vec J3DSys::mParentS; /* 80434C2C-80434C70 06194C 0040+04 1/1 17/17 0/0 .bss sTexCoordScaleTable__6J3DSys */ -u16 J3DSys::sTexCoordScaleTable[32]; +J3DTexCoordScaleInfo J3DSys::sTexCoordScaleTable[8]; /* 8030FDE8-8030FEC0 30A728 00D8+00 1/1 0/0 0/0 .text __ct__6J3DSysFv */ J3DSys::J3DSys() { @@ -77,11 +77,11 @@ J3DSys::J3DSys() { mVtxNrm = NULL; mVtxCol = NULL; - for (u32 i = 0; i < 32; i += 4) { - sTexCoordScaleTable[i + 0] = 1; - sTexCoordScaleTable[i + 1] = 1; - sTexCoordScaleTable[i + 2] = 0; - sTexCoordScaleTable[i + 3] = 0; + for (u32 i = 0; i < 8; i++) { + sTexCoordScaleTable[i].field_0x00 = 1; + sTexCoordScaleTable[i].field_0x02 = 1; + sTexCoordScaleTable[i].field_0x04 = 0; + sTexCoordScaleTable[i].field_0x06 = 0; } } diff --git a/libs/JSystem/J3DGraphBase/J3DTevs.cpp b/libs/JSystem/J3DGraphBase/J3DTevs.cpp index b46c586d8cc..879bbac1fd1 100644 --- a/libs/JSystem/J3DGraphBase/J3DTevs.cpp +++ b/libs/JSystem/J3DGraphBase/J3DTevs.cpp @@ -4,16 +4,17 @@ // #include "JSystem/J3DGraphBase/J3DTevs.h" +#include "JSystem/J3DGraphBase/J3DGD.h" +#include "JSystem/J3DGraphBase/J3DMatBlock.h" #include "JSystem/J3DGraphBase/J3DSys.h" #include "JSystem/J3DGraphBase/J3DTexture.h" +#include "JSystem/J3DGraphBase/J3DTransform.h" #include "dol2asm.h" // // Types: // -struct J3DNBTScale {}; - // // Forward References: // @@ -47,11 +48,8 @@ extern "C" extern u8 j3dDefaultIndTexCoordScaleInfo[4]; extern "C" extern GXColor j3dDefaultTevKColor; extern "C" extern u8 j3dDefaultTevSwapMode[4]; extern "C" extern u32 j3dDefaultTevSwapModeTable; -extern "C" extern u32 j3dDefaultBlendInfo; extern "C" extern u8 j3dDefaultColorChanInfo[8]; extern "C" extern u16 data_804563F8; -extern "C" extern u16 j3dDefaultAlphaCmpID; -extern "C" extern u16 j3dDefaultZModeID[1 + 1 /* padding */]; // // External References: @@ -81,13 +79,22 @@ extern "C" void _savegpr_28(); extern "C" void _restgpr_26(); extern "C" void _restgpr_28(); extern "C" u8 sTexCoordScaleTable__6J3DSys[64 + 4 /* padding */]; -extern "C" extern u8 __GDCurrentDL[4]; // // Declarations: // /* 80323590-80323644 31DED0 00B4+00 0/0 3/3 0/0 .text load__11J3DLightObjCFUl */ +// missing instruction +#ifdef NONMATCHING +void J3DLightObj::load(u32 param_0) const { + GDOverflowCheck(0x48); + J3DGDSetLightPos(GXLightID(param_0 * 2), mInfo.mLightPosition.x, mInfo.mLightPosition.y, mInfo.mLightPosition.z); + J3DGDSetLightAttn(GXLightID(param_0 * 2), mInfo.mCosAtten.x, mInfo.mCosAtten.y, mInfo.mCosAtten.z, mInfo.mDistAtten.x, mInfo.mDistAtten.y, mInfo.mDistAtten.z); + J3DGDSetLightColor(GXLightID(param_0 * 2), mInfo.mColor); + J3DGDSetLightDir(GXLightID(param_0 * 2), mInfo.mLightDirection.x, mInfo.mLightDirection.y, mInfo.mLightDirection.z); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -96,17 +103,30 @@ asm void J3DLightObj::load(u32 param_0) const { #include "asm/JSystem/J3DGraphBase/J3DTevs/load__11J3DLightObjCFUl.s" } #pragma pop +#endif /* 80323644-803238C4 31DF84 0280+00 0/0 3/3 0/0 .text loadTexCoordGens__FUlP11J3DTexCoord */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void loadTexCoordGens(u32 param_0, J3DTexCoord* param_1) { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DTevs/loadTexCoordGens__FUlP11J3DTexCoord.s" +void loadTexCoordGens(u32 param_0, J3DTexCoord* param_1) { + GDOverflowCheck(param_0 * 8 + 10); + J3DGDWriteXFCmdHdr(0x1040, param_0); + for (int i = 0; i < param_0; i++) { + J3DGDSetTexCoordGen( + GXTexGenType(param_1[i].getTexGenType()), + GXTexGenSrc(param_1[i].getTexGenSrc()) + ); + } + J3DGDWriteXFCmdHdr(0x1050, param_0); + if (j3dSys.checkFlag(0x40000000)) { + for (int i = 0; i < param_0; i++) { + J3DGDWrite_u32(param_1[i].getTexGenMtx() == 60 ? 61 : i * 3); + } + } else { + for (int i = 0; i < param_0; i++) { + J3DGDWrite_u32(61); + } + } } -#pragma pop /* 803238C4-80323900 31E204 003C+00 0/0 6/6 0/0 .text load__9J3DTexMtxCFUl */ void J3DTexMtx::load(u32 mtxIdx) const { @@ -122,108 +142,224 @@ void J3DTexMtx::calc(f32 const (*param_0)[4]) { calcTexMtx(param_0); } -/* ############################################################################################## */ -/* 803CEAC8-803CEAF8 02BBE8 0030+00 1/1 0/0 0/0 .data qMtx$1001 */ -SECTION_DATA static u8 qMtx_1001[48] = { - 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xBF, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -/* 803CEAF8-803CEB28 02BC18 0030+00 1/1 0/0 0/0 .data qMtx2$1002 */ -SECTION_DATA static u8 qMtx2_1002[48] = { - 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -/* 803CEB28-803CEB58 -00001 0030+00 1/1 0/0 0/0 .data @1059 */ -SECTION_DATA static void* lit_1059[12] = { - (void*)(((char*)calcTexMtx__9J3DTexMtxFPA4_Cf) + 0x2A4), - (void*)(((char*)calcTexMtx__9J3DTexMtxFPA4_Cf) + 0x1C8), - (void*)(((char*)calcTexMtx__9J3DTexMtxFPA4_Cf) + 0x20C), - (void*)(((char*)calcTexMtx__9J3DTexMtxFPA4_Cf) + 0x20C), - (void*)(((char*)calcTexMtx__9J3DTexMtxFPA4_Cf) + 0x260), - (void*)(((char*)calcTexMtx__9J3DTexMtxFPA4_Cf) + 0x20C), - (void*)(((char*)calcTexMtx__9J3DTexMtxFPA4_Cf) + 0x170), - (void*)(((char*)calcTexMtx__9J3DTexMtxFPA4_Cf) + 0xB0), - (void*)(((char*)calcTexMtx__9J3DTexMtxFPA4_Cf) + 0x48), - (void*)(((char*)calcTexMtx__9J3DTexMtxFPA4_Cf) + 0x48), - (void*)(((char*)calcTexMtx__9J3DTexMtxFPA4_Cf) + 0x108), - (void*)(((char*)calcTexMtx__9J3DTexMtxFPA4_Cf) + 0x48), -}; - /* 80323920-80323C0C 31E260 02EC+00 2/1 0/0 0/0 .text calcTexMtx__9J3DTexMtxFPA4_Cf */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DTexMtx::calcTexMtx(f32 const (*param_0)[4]) { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DTevs/calcTexMtx__9J3DTexMtxFPA4_Cf.s" +void J3DTexMtx::calcTexMtx(const Mtx param_0) { + Mtx44 mtx1; + Mtx44 mtx2; + + 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, + }; + + u8 r28 = mTexMtxInfo.mInfo & 0x3f; + u32 r30 = (mTexMtxInfo.mInfo >> 7) & 1; + switch (r28) { + case 8: + case 9: + case 11: + if (r30 == 0) { + J3DGetTextureMtx(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mtx2); + } else if (r30 == 1) { + J3DGetTextureMtxMaya(mTexMtxInfo.mSRT, mtx2); + } + MTXConcat(mtx2, qMtx, mtx2); + J3DMtxProjConcat(mtx2, mTexMtxInfo.mEffectMtx, mtx1); + MTXConcat(mtx1, param_0, mMtx); + break; + case 7: + if (r30 == 0) { + J3DGetTextureMtx(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mtx1); + } else if (r30 == 1) { + J3DGetTextureMtxMaya(mTexMtxInfo.mSRT, mtx1); + } + MTXConcat(mtx1, qMtx, mtx1); + MTXConcat(mtx1, param_0, mMtx); + break; + case 10: + if (r30 == 0) { + J3DGetTextureMtxOld(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mtx2); + } else if (r30 == 1) { + J3DGetTextureMtxMayaOld(mTexMtxInfo.mSRT, mtx2); + } + MTXConcat(mtx2, qMtx2, mtx2); + J3DMtxProjConcat(mtx2, mTexMtxInfo.mEffectMtx, mtx1); + MTXConcat(mtx1, param_0, mMtx); + break; + case 6: + if (r30 == 0) { + J3DGetTextureMtxOld(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mtx1); + } else if (r30 == 1) { + J3DGetTextureMtxMayaOld(mTexMtxInfo.mSRT, mtx1); + } + MTXConcat(mtx1, qMtx2, mtx1); + MTXConcat(mtx1, param_0, mMtx); + break; + case 1: + if (r30 == 0) { + J3DGetTextureMtxOld(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mtx1); + } else if (r30 == 1) { + J3DGetTextureMtxMayaOld(mTexMtxInfo.mSRT, mtx1); + } + MTXConcat(mtx1, param_0, mMtx); + break; + case 2: + case 3: + case 5: + if (r30 == 0) { + J3DGetTextureMtxOld(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mtx2); + } else if (r30 == 1) { + J3DGetTextureMtxMayaOld(mTexMtxInfo.mSRT, mtx2); + } + J3DMtxProjConcat(mtx2, mTexMtxInfo.mEffectMtx, mtx1); + MTXConcat(mtx1, param_0, mMtx); + break; + case 4: + if (r30 == 0) { + J3DGetTextureMtxOld(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mtx2); + } else if (r30 == 1) { + J3DGetTextureMtxMayaOld(mTexMtxInfo.mSRT, mtx2); + } + J3DMtxProjConcat(mtx2, mTexMtxInfo.mEffectMtx, mMtx); + break; + default: + if (r30 == 0) { + J3DGetTextureMtxOld(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mMtx); + } else if (r30 == 1) { + J3DGetTextureMtxMayaOld(mTexMtxInfo.mSRT, mMtx); + } + break; + } } -#pragma pop - -/* ############################################################################################## */ -/* 803CEB58-803CEB88 02BC78 0030+00 1/1 0/0 0/0 .data qMtx$1063 */ -SECTION_DATA static u8 qMtx_1063[48] = { - 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xBF, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -/* 803CEB88-803CEBB8 02BCA8 0030+00 1/1 0/0 0/0 .data qMtx2$1064 */ -SECTION_DATA static u8 qMtx2_1064[48] = { - 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -/* 803CEBB8-803CEBE8 -00001 0030+00 1/1 0/0 0/0 .data @1131 */ -SECTION_DATA static void* lit_1131[12] = { - (void*)(((char*)calcPostTexMtx__9J3DTexMtxFPA4_Cf) + 0x310), - (void*)(((char*)calcPostTexMtx__9J3DTexMtxFPA4_Cf) + 0x200), - (void*)(((char*)calcPostTexMtx__9J3DTexMtxFPA4_Cf) + 0x234), - (void*)(((char*)calcPostTexMtx__9J3DTexMtxFPA4_Cf) + 0x288), - (void*)(((char*)calcPostTexMtx__9J3DTexMtxFPA4_Cf) + 0x2CC), - (void*)(((char*)calcPostTexMtx__9J3DTexMtxFPA4_Cf) + 0x234), - (void*)(((char*)calcPostTexMtx__9J3DTexMtxFPA4_Cf) + 0x1B8), - (void*)(((char*)calcPostTexMtx__9J3DTexMtxFPA4_Cf) + 0x108), - (void*)(((char*)calcPostTexMtx__9J3DTexMtxFPA4_Cf) + 0x48), - (void*)(((char*)calcPostTexMtx__9J3DTexMtxFPA4_Cf) + 0xB0), - (void*)(((char*)calcPostTexMtx__9J3DTexMtxFPA4_Cf) + 0x150), - (void*)(((char*)calcPostTexMtx__9J3DTexMtxFPA4_Cf) + 0x48), -}; /* 80323C0C-80323F64 31E54C 0358+00 1/0 2/2 0/0 .text calcPostTexMtx__9J3DTexMtxFPA4_Cf */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DTexMtx::calcPostTexMtx(f32 const (*param_0)[4]) { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DTevs/calcPostTexMtx__9J3DTexMtxFPA4_Cf.s" +void J3DTexMtx::calcPostTexMtx(const Mtx param_0) { + Mtx44 mtx1; + Mtx44 mtx2; + + 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, + }; + + u8 r29 = mTexMtxInfo.mInfo & 0x3f; + u32 r30 = (mTexMtxInfo.mInfo >> 7) & 1; + switch (r29) { + case 8: + case 11: + if (r30 == 0) { + J3DGetTextureMtx(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mtx2); + } else if (r30 == 1) { + J3DGetTextureMtxMaya(mTexMtxInfo.mSRT, mtx2); + } + MTXConcat(mtx2, qMtx, mtx2); + J3DMtxProjConcat(mtx2, mTexMtxInfo.mEffectMtx, mtx1); + MTXConcat(mtx1, param_0, mMtx); + break; + case 9: + if (r30 == 0) { + J3DGetTextureMtx(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mtx2); + } else if (r30 == 1) { + J3DGetTextureMtxMaya(mTexMtxInfo.mSRT, mtx2); + } + MTXConcat(mtx2, qMtx, mtx2); + J3DMtxProjConcat(mtx2, mTexMtxInfo.mEffectMtx, mMtx); + break; + case 7: + if (r30 == 0) { + J3DGetTextureMtx(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mtx1); + } else if (r30 == 1) { + J3DGetTextureMtxMaya(mTexMtxInfo.mSRT, mtx1); + } + MTXConcat(mtx1, qMtx, mMtx); + break; + case 10: + if (r30 == 0) { + J3DGetTextureMtxOld(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mtx2); + } else if (r30 == 1) { + J3DGetTextureMtxMayaOld(mTexMtxInfo.mSRT, mtx2); + } + MTXConcat(mtx2, qMtx2, mtx2); + J3DMtxProjConcat(mtx2, mTexMtxInfo.mEffectMtx, mtx1); + MTXConcat(mtx1, param_0, mMtx); + break; + case 6: + if (r30 == 0) { + J3DGetTextureMtxOld(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mtx1); + } else if (r30 == 1) { + J3DGetTextureMtxMayaOld(mTexMtxInfo.mSRT, mtx1); + } + MTXConcat(mtx1, qMtx2, mMtx); + break; + case 1: + if (r30 == 0) { + J3DGetTextureMtxOld(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mMtx); + } else if (r30 == 1) { + J3DGetTextureMtxMayaOld(mTexMtxInfo.mSRT, mMtx); + } + break; + case 2: + case 5: + if (r30 == 0) { + J3DGetTextureMtxOld(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mtx2); + } else if (r30 == 1) { + J3DGetTextureMtxMayaOld(mTexMtxInfo.mSRT, mtx2); + } + J3DMtxProjConcat(mtx2, mTexMtxInfo.mEffectMtx, mtx1); + MTXConcat(mtx1, param_0, mMtx); + break; + case 3: + if (r30 == 0) { + J3DGetTextureMtxOld(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mtx2); + } else if (r30 == 1) { + J3DGetTextureMtxMayaOld(mTexMtxInfo.mSRT, mtx2); + } + J3DMtxProjConcat(mtx2, mTexMtxInfo.mEffectMtx, mMtx); + break; + case 4: + if (r30 == 0) { + J3DGetTextureMtxOld(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mtx2); + } else if (r30 == 1) { + J3DGetTextureMtxMayaOld(mTexMtxInfo.mSRT, mtx2); + } + J3DMtxProjConcat(mtx2, mTexMtxInfo.mEffectMtx, mMtx); + break; + default: + if (r30 == 0) { + J3DGetTextureMtxOld(mTexMtxInfo.mSRT, mTexMtxInfo.mCenter, mMtx); + } else if (r30 == 1) { + J3DGetTextureMtxMayaOld(mTexMtxInfo.mSRT, mMtx); + } + break; + } } -#pragma pop /* 80323F64-80323F88 31E8A4 0024+00 0/0 1/1 0/0 .text isTexNoReg__FPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void isTexNoReg(void* param_0) { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DTevs/isTexNoReg__FPv.s" +bool isTexNoReg(void* param_0) { + u8 r31 = ((u8*)param_0)[1]; + if (r31 >= 0x80 && r31 <= 0xbb) { + return true; + } + return false; } -#pragma pop /* 80323F88-80323F94 31E8C8 000C+00 0/0 1/1 0/0 .text getTexNoReg__FPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void getTexNoReg(void* param_0) { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DTevs/getTexNoReg__FPv.s" +u16 getTexNoReg(void* param_0) { + return *(u32*)((u8*)param_0 + 1); } -#pragma pop /* ############################################################################################## */ /* 804563B0-804563B4 0049B0 0004+00 1/1 0/0 0/0 .sdata2 @1167 */ @@ -236,29 +372,35 @@ SECTION_SDATA2 static f32 lit_1168 = 1.0f / 100.0f; SECTION_SDATA2 static f64 lit_1171 = 4503601774854144.0 /* cast s32 to float */; /* 80323F94-8032413C 31E8D4 01A8+00 0/0 20/20 0/0 .text loadTexNo__FUlRCUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void loadTexNo(u32 param_0, u16 const& param_1) { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DTevs/loadTexNo__FUlRCUs.s" +void loadTexNo(u32 param_0, u16 const& param_1) { + ResTIMG* resTIMG = j3dSys.getTexture()->getResTIMG(param_1); + J3DSys::sTexCoordScaleTable[param_0].field_0x00 = resTIMG->width; + J3DSys::sTexCoordScaleTable[param_0].field_0x02 = resTIMG->height; + GDOverflowCheck(0x14); + J3DGDSetTexImgPtr(GXTexMapID(param_0), (u8*)resTIMG + resTIMG->imageOffset); + J3DGDSetTexImgAttr(GXTexMapID(param_0), resTIMG->width, resTIMG->height, GXTexFmt(resTIMG->format & 0x0f)); + J3DGDSetTexLookupMode(GXTexMapID(param_0), GXTexWrapMode(resTIMG->wrapS), GXTexWrapMode(resTIMG->wrapT), GXTexFilter(resTIMG->minFilter), GXTexFilter(resTIMG->magFilter), resTIMG->minLOD * 0.125f, resTIMG->maxLOD * 0.125f, resTIMG->LODBias * 0.01f, resTIMG->biasClamp, resTIMG->doEdgeLOD, GXAnisotropy(resTIMG->maxAnisotropy)); + if (resTIMG->indexTexture == true) { + GXTlutSize tlutSize = resTIMG->numColors > 16 ? GX_TLUT_256 : GX_TLUT_16; + GDOverflowCheck(0x14); + J3DGDLoadTlut((u8*)resTIMG + resTIMG->paletteOffset, (param_0 << 13) + 0xf0000, tlutSize); + J3DGDSetTexTlut(GXTexMapID(param_0), (param_0 << 13) + 0xf0000, GXTlutFmt(resTIMG->colorFormat)); + } } -#pragma pop /* 8032413C-80324160 31EA7C 0024+00 0/0 2/2 0/0 .text patchTexNo_PtrToIdx__FUlRCUs */ void patchTexNo_PtrToIdx(u32 texID, u16 const& idx) { - J3DGDSetTexImgPtrRaw((GXTexMapID)texID, idx); + J3DGDSetTexImgPtrRaw(GXTexMapID(texID), idx); } /* 80324160-80324194 31EAA0 0034+00 0/0 2/2 0/0 .text loadNBTScale__FR11J3DNBTScale */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void loadNBTScale(J3DNBTScale& param_0) { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DTevs/loadNBTScale__FR11J3DNBTScale.s" +void loadNBTScale(J3DNBTScale& param_0) { + if (param_0.mbHasScale == true) { + j3dSys.setNBTScale(¶m_0.mScale); + } else { + j3dSys.setNBTScale(NULL); + } } -#pragma pop /* ############################################################################################## */ /* 803A1EC8-803A1EFC 02E528 0034+00 0/0 9/9 24/24 .rodata j3dDefaultLightInfo */ @@ -313,16 +455,15 @@ SECTION_RODATA extern u8 const j3dDefaultIndTevStageInfo[12] = { COMPILER_STRIP_GATE(0x803A1FB0, &j3dDefaultIndTevStageInfo); /* 803A1FBC-803A1FE8 02E61C 002C+00 0/0 3/3 0/0 .rodata j3dDefaultFogInfo */ -SECTION_RODATA extern u8 const j3dDefaultFogInfo[44] = { - 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3D, 0xCC, 0xCC, - 0xCD, 0x46, 0x1C, 0x40, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +SECTION_RODATA extern J3DFogInfo const j3dDefaultFogInfo = { + 0x00, 0x00, 0x0140, 0.0f, 0.0f, 0.1f, 10000.0f, 0xFF, 0xFF, 0xFF, 0x00, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, }; COMPILER_STRIP_GATE(0x803A1FBC, &j3dDefaultFogInfo); /* 803A1FE8-803A1FF8 02E648 0010+00 0/0 3/3 0/0 .rodata j3dDefaultNBTScaleInfo */ -SECTION_RODATA extern u8 const j3dDefaultNBTScaleInfo[16] = { - 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, +SECTION_RODATA extern J3DNBTScaleInfo const j3dDefaultNBTScaleInfo = { + 0x00, 1.0f, 1.0f, 1.0f, }; COMPILER_STRIP_GATE(0x803A1FE8, &j3dDefaultNBTScaleInfo); @@ -352,6 +493,24 @@ COMPILER_STRIP_GATE(0x803A1FF8, &lit_1197); static u8 j3dTexCoordTable[7623 + 1 /* padding */]; /* 80324194-8032423C 31EAD4 00A8+00 0/0 1/1 0/0 .text makeTexCoordTable__Fv */ +// regswap +#ifdef NONMATCHING +void makeTexCoordTable() { + u8 bytes[] = { 0x1e, 0x21, 0x24, 0x27, 0x2a, 0x2d, 0x30, 0x33, 0x36, 0x39, 0x3c }; + + u8* table = j3dTexCoordTable; + for (u32 i = 0; i < 11; i++) { + for (u32 j = 0; j < 21; j++) { + for (int k = 0; k < 11; k++) { + u32 idx = i * 0xe7 + j * 11 + k; + table[idx * 3] = i; + table[idx * 3 + 1] = j; + table[idx * 3 + 2] = bytes[k]; + } + } + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -360,6 +519,7 @@ asm void makeTexCoordTable() { #include "asm/JSystem/J3DGraphBase/J3DTevs/makeTexCoordTable__Fv.s" } #pragma pop +#endif /* ############################################################################################## */ /* 80436A60-80436E60 063780 0400+00 1/1 3/3 0/0 .bss j3dTevSwapTableTable */ @@ -371,14 +531,19 @@ extern u8 j3dAlphaCmpTable[768]; u8 j3dAlphaCmpTable[768]; /* 8032423C-803242A8 31EB7C 006C+00 0/0 1/1 0/0 .text makeAlphaCmpTable__Fv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void makeAlphaCmpTable() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DTevs/makeAlphaCmpTable__Fv.s" +void makeAlphaCmpTable() { + u8* table = j3dAlphaCmpTable; + for (u32 i = 0; i < 8; i++) { + for (int j = 0; j < 4; j++) { + for (u32 k = 0; k < 8; k++) { + u32 idx = i * 32 + j * 8 + k; + table[idx * 3] = i; + table[idx * 3 + 1] = j; + table[idx * 3 + 2] = k; + } + } + } } -#pragma pop /* ############################################################################################## */ /* 80437160-804371C0 063E80 0060+00 1/1 4/4 5/5 .bss j3dZModeTable */ @@ -386,6 +551,22 @@ extern u8 j3dZModeTable[96]; u8 j3dZModeTable[96]; /* 803242A8-80324314 31EBE8 006C+00 0/0 1/1 0/0 .text makeZModeTable__Fv */ +// regswap +#ifdef NONMATCHING +void makeZModeTable() { + u8* table = j3dZModeTable; + for (int i = 0; i < 2; i++) { + for (u32 j = 0; j < 8; j++) { + for (int k = 0; k < 2; k++) { + u32 idx = i * 16 + j * 2 + k; + table[idx * 3] = i; + table[idx * 3 + 1] = j; + table[idx * 3 + 2] = k; + } + } + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -394,16 +575,21 @@ asm void makeZModeTable() { #include "asm/JSystem/J3DGraphBase/J3DTevs/makeZModeTable__Fv.s" } #pragma pop +#endif /* 80324314-80324358 31EC54 0044+00 0/0 1/1 0/0 .text makeTevSwapTable__Fv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void makeTevSwapTable() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DTevs/makeTevSwapTable__Fv.s" +void makeTevSwapTable() { + u8* table = j3dTevSwapTableTable; + int i = 0; + do { + table[0] = i >> 6; + table[1] = (i >> 4) & 3; + table[2] = (i >> 2) & 3; + table[3] = i & 3; + i++; + table += 4; + } while (i < 256); } -#pragma pop /* 80324358-803243BC 31EC98 0064+00 1/1 0/0 0/0 .text loadTexMtx__9J3DTexMtxCFUl */ #pragma push @@ -488,7 +674,7 @@ SECTION_SDATA2 extern u8 j3dDefaultTevSwapMode[4] = { SECTION_SDATA2 extern u32 j3dDefaultTevSwapModeTable = 0x00010203; /* 804563EC-804563F0 0049EC 0004+00 0/0 3/3 0/0 .sdata2 j3dDefaultBlendInfo */ -SECTION_SDATA2 extern u32 j3dDefaultBlendInfo = 0x01040505; +SECTION_SDATA2 extern const J3DBlendInfo j3dDefaultBlendInfo = {GX_BM_BLEND, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, GX_LO_NOOP}; /* 804563F0-804563F8 0049F0 0008+00 0/0 3/3 0/0 .sdata2 j3dDefaultColorChanInfo */ SECTION_SDATA2 extern u8 j3dDefaultColorChanInfo[8] = { @@ -499,11 +685,7 @@ SECTION_SDATA2 extern u8 j3dDefaultColorChanInfo[8] = { SECTION_SDATA2 extern u16 data_804563F8 = 0x1B00; /* 804563FA-804563FC 0049FA 0002+00 0/0 1/1 0/0 .sdata2 j3dDefaultAlphaCmpID */ -SECTION_SDATA2 extern u16 j3dDefaultAlphaCmpID = 0x00E7; +SECTION_SDATA2 extern const u16 j3dDefaultAlphaCmpID = 0x00E7; /* 804563FC-80456400 0049FC 0002+02 0/0 3/3 0/0 .sdata2 j3dDefaultZModeID */ -SECTION_SDATA2 extern u16 j3dDefaultZModeID[1 + 1 /* padding */] = { - 0x0017, - /* padding */ - 0x0000, -}; +SECTION_SDATA2 extern const u16 j3dDefaultZModeID = 0x0017;