diff --git a/.gitignore b/.gitignore index ae9d90c75bd..99b16cd3fa6 100644 --- a/.gitignore +++ b/.gitignore @@ -27,4 +27,7 @@ docs/doxygen/ .vscode/ # Python -__pycache__/ \ No newline at end of file +__pycache__/ + +m2ctx.py +ctx.c diff --git a/asm/JSystem/J3DGraphBase/J3DPacket/__dt__13J3DDrawPacketFv.s b/asm/JSystem/J3DGraphBase/J3DPacket/__dt__13J3DDrawPacketFv.s deleted file mode 100644 index acb3cf6f629..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DPacket/__dt__13J3DDrawPacketFv.s +++ /dev/null @@ -1,26 +0,0 @@ -lbl_803127B0: -/* 803127B0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 803127B4 7C 08 02 A6 */ mflr r0 -/* 803127B8 90 01 00 14 */ stw r0, 0x14(r1) -/* 803127BC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 803127C0 7C 7F 1B 79 */ or. r31, r3, r3 -/* 803127C4 41 82 00 30 */ beq lbl_803127F4 -/* 803127C8 3C 60 80 3D */ lis r3, __vt__13J3DDrawPacket@ha /* 0x803CD968@ha */ -/* 803127CC 38 03 D9 68 */ addi r0, r3, __vt__13J3DDrawPacket@l /* 0x803CD968@l */ -/* 803127D0 90 1F 00 00 */ stw r0, 0(r31) -/* 803127D4 41 82 00 10 */ beq lbl_803127E4 -/* 803127D8 3C 60 80 3D */ lis r3, __vt__9J3DPacket@ha /* 0x803CD97C@ha */ -/* 803127DC 38 03 D9 7C */ addi r0, r3, __vt__9J3DPacket@l /* 0x803CD97C@l */ -/* 803127E0 90 1F 00 00 */ stw r0, 0(r31) -lbl_803127E4: -/* 803127E4 7C 80 07 35 */ extsh. r0, r4 -/* 803127E8 40 81 00 0C */ ble lbl_803127F4 -/* 803127EC 7F E3 FB 78 */ mr r3, r31 -/* 803127F0 4B FB C5 4D */ bl __dl__FPv -lbl_803127F4: -/* 803127F4 7F E3 FB 78 */ mr r3, r31 -/* 803127F8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 803127FC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80312800 7C 08 03 A6 */ mtlr r0 -/* 80312804 38 21 00 10 */ addi r1, r1, 0x10 -/* 80312808 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DPacket/newDisplayList__13J3DDrawPacketFUl.s b/asm/JSystem/J3DGraphBase/J3DPacket/newDisplayList__13J3DDrawPacketFUl.s deleted file mode 100644 index d7a6ca69e12..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DPacket/newDisplayList__13J3DDrawPacketFUl.s +++ /dev/null @@ -1,40 +0,0 @@ -lbl_8031280C: -/* 8031280C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80312810 7C 08 02 A6 */ mflr r0 -/* 80312814 90 01 00 14 */ stw r0, 0x14(r1) -/* 80312818 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8031281C 93 C1 00 08 */ stw r30, 8(r1) -/* 80312820 7C 7E 1B 78 */ mr r30, r3 -/* 80312824 7C 9F 23 78 */ mr r31, r4 -/* 80312828 38 60 00 10 */ li r3, 0x10 -/* 8031282C 4B FB C4 21 */ bl __nw__FUl -/* 80312830 28 03 00 00 */ cmplwi r3, 0 -/* 80312834 41 82 00 18 */ beq lbl_8031284C -/* 80312838 38 00 00 00 */ li r0, 0 -/* 8031283C 90 03 00 00 */ stw r0, 0(r3) -/* 80312840 90 03 00 04 */ stw r0, 4(r3) -/* 80312844 90 03 00 08 */ stw r0, 8(r3) -/* 80312848 90 03 00 0C */ stw r0, 0xc(r3) -lbl_8031284C: -/* 8031284C 90 7E 00 20 */ stw r3, 0x20(r30) -/* 80312850 80 7E 00 20 */ lwz r3, 0x20(r30) -/* 80312854 28 03 00 00 */ cmplwi r3, 0 -/* 80312858 40 82 00 0C */ bne lbl_80312864 -/* 8031285C 38 60 00 04 */ li r3, 4 -/* 80312860 48 00 00 20 */ b lbl_80312880 -lbl_80312864: -/* 80312864 7F E4 FB 78 */ mr r4, r31 -/* 80312868 4B FF FC 21 */ bl newDisplayList__17J3DDisplayListObjFUl -/* 8031286C 2C 03 00 00 */ cmpwi r3, 0 -/* 80312870 38 00 00 00 */ li r0, 0 -/* 80312874 41 82 00 08 */ beq lbl_8031287C -/* 80312878 7C 60 1B 78 */ mr r0, r3 -lbl_8031287C: -/* 8031287C 7C 03 03 78 */ mr r3, r0 -lbl_80312880: -/* 80312880 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80312884 83 C1 00 08 */ lwz r30, 8(r1) -/* 80312888 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8031288C 7C 08 03 A6 */ mtlr r0 -/* 80312890 38 21 00 10 */ addi r1, r1, 0x10 -/* 80312894 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DPacket/newSingleDisplayList__13J3DDrawPacketFUl.s b/asm/JSystem/J3DGraphBase/J3DPacket/newSingleDisplayList__13J3DDrawPacketFUl.s deleted file mode 100644 index 36bc7f3c04b..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DPacket/newSingleDisplayList__13J3DDrawPacketFUl.s +++ /dev/null @@ -1,40 +0,0 @@ -lbl_80312898: -/* 80312898 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8031289C 7C 08 02 A6 */ mflr r0 -/* 803128A0 90 01 00 14 */ stw r0, 0x14(r1) -/* 803128A4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 803128A8 93 C1 00 08 */ stw r30, 8(r1) -/* 803128AC 7C 7E 1B 78 */ mr r30, r3 -/* 803128B0 7C 9F 23 78 */ mr r31, r4 -/* 803128B4 38 60 00 10 */ li r3, 0x10 -/* 803128B8 4B FB C3 95 */ bl __nw__FUl -/* 803128BC 28 03 00 00 */ cmplwi r3, 0 -/* 803128C0 41 82 00 18 */ beq lbl_803128D8 -/* 803128C4 38 00 00 00 */ li r0, 0 -/* 803128C8 90 03 00 00 */ stw r0, 0(r3) -/* 803128CC 90 03 00 04 */ stw r0, 4(r3) -/* 803128D0 90 03 00 08 */ stw r0, 8(r3) -/* 803128D4 90 03 00 0C */ stw r0, 0xc(r3) -lbl_803128D8: -/* 803128D8 90 7E 00 20 */ stw r3, 0x20(r30) -/* 803128DC 80 7E 00 20 */ lwz r3, 0x20(r30) -/* 803128E0 28 03 00 00 */ cmplwi r3, 0 -/* 803128E4 40 82 00 0C */ bne lbl_803128F0 -/* 803128E8 38 60 00 04 */ li r3, 4 -/* 803128EC 48 00 00 20 */ b lbl_8031290C -lbl_803128F0: -/* 803128F0 7F E4 FB 78 */ mr r4, r31 -/* 803128F4 4B FF FC 15 */ bl newSingleDisplayList__17J3DDisplayListObjFUl -/* 803128F8 2C 03 00 00 */ cmpwi r3, 0 -/* 803128FC 38 00 00 00 */ li r0, 0 -/* 80312900 41 82 00 08 */ beq lbl_80312908 -/* 80312904 7C 60 1B 78 */ mr r0, r3 -lbl_80312908: -/* 80312908 7C 03 03 78 */ mr r3, r0 -lbl_8031290C: -/* 8031290C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80312910 83 C1 00 08 */ lwz r30, 8(r1) -/* 80312914 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80312918 7C 08 03 A6 */ mtlr r0 -/* 8031291C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80312920 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShape/J3DLoadArrayBasePtr__F7_GXAttrPv.s b/asm/JSystem/J3DGraphBase/J3DShape/J3DLoadArrayBasePtr__F7_GXAttrPv.s deleted file mode 100644 index 3b3e689d06c..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShape/J3DLoadArrayBasePtr__F7_GXAttrPv.s +++ /dev/null @@ -1,17 +0,0 @@ -lbl_80314EB0: -/* 80314EB0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80314EB4 7C 08 02 A6 */ mflr r0 -/* 80314EB8 90 01 00 14 */ stw r0, 0x14(r1) -/* 80314EBC 2C 03 00 19 */ cmpwi r3, 0x19 -/* 80314EC0 38 A0 00 01 */ li r5, 1 -/* 80314EC4 41 82 00 08 */ beq lbl_80314ECC -/* 80314EC8 38 A3 FF F7 */ addi r5, r3, -9 -lbl_80314ECC: -/* 80314ECC 38 05 00 A0 */ addi r0, r5, 0xa0 -/* 80314ED0 54 03 06 3E */ clrlwi r3, r0, 0x18 -/* 80314ED4 54 84 00 7E */ clrlwi r4, r4, 1 -/* 80314ED8 4B FF FF C1 */ bl J3DLoadCPCmd__FUcUl -/* 80314EDC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80314EE0 7C 08 03 A6 */ mtlr r0 -/* 80314EE4 38 21 00 10 */ addi r1, r1, 0x10 -/* 80314EE8 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShape/J3DLoadCPCmd__FUcUl.s b/asm/JSystem/J3DGraphBase/J3DShape/J3DLoadCPCmd__FUcUl.s deleted file mode 100644 index 3b756fb2734..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShape/J3DLoadCPCmd__FUcUl.s +++ /dev/null @@ -1,7 +0,0 @@ -lbl_80314E98: -/* 80314E98 38 00 00 08 */ li r0, 8 -/* 80314E9C 3C A0 CC 01 */ lis r5, 0xCC01 /* 0xCC008000@ha */ -/* 80314EA0 98 05 80 00 */ stb r0, 0x8000(r5) /* 0xCC008000@l */ -/* 80314EA4 98 65 80 00 */ stb r3, -0x8000(r5) -/* 80314EA8 90 85 80 00 */ stw r4, -0x8000(r5) -/* 80314EAC 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShape/addTexMtxIndexInDL__8J3DShapeF7_GXAttrUl.s b/asm/JSystem/J3DGraphBase/J3DShape/addTexMtxIndexInDL__8J3DShapeF7_GXAttrUl.s deleted file mode 100644 index aa96206cbd9..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShape/addTexMtxIndexInDL__8J3DShapeF7_GXAttrUl.s +++ /dev/null @@ -1,73 +0,0 @@ -lbl_80314BB8: -/* 80314BB8 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 80314BBC 7C 08 02 A6 */ mflr r0 -/* 80314BC0 90 01 00 34 */ stw r0, 0x34(r1) -/* 80314BC4 39 61 00 30 */ addi r11, r1, 0x30 -/* 80314BC8 48 04 D6 0D */ bl _savegpr_27 -/* 80314BCC 7C 7F 1B 78 */ mr r31, r3 -/* 80314BD0 3C 60 80 3A */ lis r3, lit_697@ha /* 0x803A1E98@ha */ -/* 80314BD4 38 C3 1E 98 */ addi r6, r3, lit_697@l /* 0x803A1E98@l */ -/* 80314BD8 80 66 00 00 */ lwz r3, 0(r6) -/* 80314BDC 80 06 00 04 */ lwz r0, 4(r6) -/* 80314BE0 90 61 00 08 */ stw r3, 8(r1) -/* 80314BE4 90 01 00 0C */ stw r0, 0xc(r1) -/* 80314BE8 80 66 00 08 */ lwz r3, 8(r6) -/* 80314BEC 80 06 00 0C */ lwz r0, 0xc(r6) -/* 80314BF0 90 61 00 10 */ stw r3, 0x10(r1) -/* 80314BF4 90 01 00 14 */ stw r0, 0x14(r1) -/* 80314BF8 38 C0 FF FF */ li r6, -1 -/* 80314BFC 38 E0 FF FF */ li r7, -1 -/* 80314C00 39 00 00 00 */ li r8, 0 -/* 80314C04 39 20 00 00 */ li r9, 0 -/* 80314C08 81 5F 00 30 */ lwz r10, 0x30(r31) -/* 80314C0C 38 61 00 08 */ addi r3, r1, 8 -/* 80314C10 48 00 00 3C */ b lbl_80314C4C -lbl_80314C14: -/* 80314C14 2C 00 00 00 */ cmpwi r0, 0 -/* 80314C18 40 82 00 08 */ bne lbl_80314C20 -/* 80314C1C 7D 06 43 78 */ mr r6, r8 -lbl_80314C20: -/* 80314C20 7C 04 00 00 */ cmpw r4, r0 -/* 80314C24 40 80 00 14 */ bge lbl_80314C38 -/* 80314C28 55 20 06 3F */ clrlwi. r0, r9, 0x18 -/* 80314C2C 40 82 00 0C */ bne lbl_80314C38 -/* 80314C30 7D 07 43 78 */ mr r7, r8 -/* 80314C34 39 20 00 01 */ li r9, 1 -lbl_80314C38: -/* 80314C38 80 0A 00 04 */ lwz r0, 4(r10) -/* 80314C3C 54 00 10 3A */ slwi r0, r0, 2 -/* 80314C40 7C 03 00 2E */ lwzx r0, r3, r0 -/* 80314C44 7D 08 02 14 */ add r8, r8, r0 -/* 80314C48 39 4A 00 08 */ addi r10, r10, 8 -lbl_80314C4C: -/* 80314C4C 80 0A 00 00 */ lwz r0, 0(r10) -/* 80314C50 2C 00 00 FF */ cmpwi r0, 0xff -/* 80314C54 40 82 FF C0 */ bne lbl_80314C14 -/* 80314C58 2C 06 FF FF */ cmpwi r6, -1 -/* 80314C5C 41 82 00 48 */ beq lbl_80314CA4 -/* 80314C60 3B 60 00 00 */ li r27, 0 -/* 80314C64 7C BE 2B 78 */ mr r30, r5 -/* 80314C68 7C FD 3B 78 */ mr r29, r7 -/* 80314C6C 7D 1C 43 78 */ mr r28, r8 -/* 80314C70 48 00 00 24 */ b lbl_80314C94 -lbl_80314C74: -/* 80314C74 80 7F 00 3C */ lwz r3, 0x3c(r31) -/* 80314C78 57 60 13 BA */ rlwinm r0, r27, 2, 0xe, 0x1d -/* 80314C7C 7C 63 00 2E */ lwzx r3, r3, r0 -/* 80314C80 7F 84 E3 78 */ mr r4, r28 -/* 80314C84 7F A5 EB 78 */ mr r5, r29 -/* 80314C88 7F C6 F3 78 */ mr r6, r30 -/* 80314C8C 4B FF FC E9 */ bl addTexMtxIndexInDL__12J3DShapeDrawFUlUlUl -/* 80314C90 3B 7B 00 01 */ addi r27, r27, 1 -lbl_80314C94: -/* 80314C94 57 63 04 3E */ clrlwi r3, r27, 0x10 -/* 80314C98 A0 1F 00 0A */ lhz r0, 0xa(r31) -/* 80314C9C 7C 03 00 40 */ cmplw r3, r0 -/* 80314CA0 41 80 FF D4 */ blt lbl_80314C74 -lbl_80314CA4: -/* 80314CA4 39 61 00 30 */ addi r11, r1, 0x30 -/* 80314CA8 48 04 D5 79 */ bl _restgpr_27 -/* 80314CAC 80 01 00 34 */ lwz r0, 0x34(r1) -/* 80314CB0 7C 08 03 A6 */ mtlr r0 -/* 80314CB4 38 21 00 30 */ addi r1, r1, 0x30 -/* 80314CB8 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShape/addTexMtxIndexInVcd__8J3DShapeF7_GXAttr.s b/asm/JSystem/J3DGraphBase/J3DShape/addTexMtxIndexInVcd__8J3DShapeF7_GXAttr.s deleted file mode 100644 index b337c35aecc..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShape/addTexMtxIndexInVcd__8J3DShapeF7_GXAttr.s +++ /dev/null @@ -1,67 +0,0 @@ -lbl_80314CBC: -/* 80314CBC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80314CC0 7C 08 02 A6 */ mflr r0 -/* 80314CC4 90 01 00 14 */ stw r0, 0x14(r1) -/* 80314CC8 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80314CCC 93 C1 00 08 */ stw r30, 8(r1) -/* 80314CD0 7C 7F 1B 78 */ mr r31, r3 -/* 80314CD4 7C 9E 23 78 */ mr r30, r4 -/* 80314CD8 38 60 FF FF */ li r3, -1 -/* 80314CDC 80 9F 00 30 */ lwz r4, 0x30(r31) -/* 80314CE0 38 A0 00 00 */ li r5, 0 -/* 80314CE4 48 00 00 18 */ b lbl_80314CFC -lbl_80314CE8: -/* 80314CE8 2C 00 00 00 */ cmpwi r0, 0 -/* 80314CEC 40 82 00 08 */ bne lbl_80314CF4 -/* 80314CF0 38 60 00 00 */ li r3, 0 -lbl_80314CF4: -/* 80314CF4 38 A5 00 01 */ addi r5, r5, 1 -/* 80314CF8 38 84 00 08 */ addi r4, r4, 8 -lbl_80314CFC: -/* 80314CFC 80 04 00 00 */ lwz r0, 0(r4) -/* 80314D00 2C 00 00 FF */ cmpwi r0, 0xff -/* 80314D04 40 82 FF E4 */ bne lbl_80314CE8 -/* 80314D08 2C 03 FF FF */ cmpwi r3, -1 -/* 80314D0C 41 82 00 84 */ beq lbl_80314D90 -/* 80314D10 38 05 00 02 */ addi r0, r5, 2 -/* 80314D14 54 03 18 38 */ slwi r3, r0, 3 -/* 80314D18 4B FB 9F AD */ bl __nwa__FUl -/* 80314D1C 38 C0 00 00 */ li r6, 0 -/* 80314D20 80 BF 00 30 */ lwz r5, 0x30(r31) -/* 80314D24 7C 67 1B 78 */ mr r7, r3 -/* 80314D28 38 80 00 01 */ li r4, 1 -/* 80314D2C 48 00 00 3C */ b lbl_80314D68 -lbl_80314D30: -/* 80314D30 7C 1E 00 00 */ cmpw r30, r0 -/* 80314D34 40 80 00 1C */ bge lbl_80314D50 -/* 80314D38 54 C0 06 3F */ clrlwi. r0, r6, 0x18 -/* 80314D3C 40 82 00 14 */ bne lbl_80314D50 -/* 80314D40 93 C7 00 00 */ stw r30, 0(r7) -/* 80314D44 90 87 00 04 */ stw r4, 4(r7) -/* 80314D48 38 C0 00 01 */ li r6, 1 -/* 80314D4C 38 E7 00 08 */ addi r7, r7, 8 -lbl_80314D50: -/* 80314D50 80 05 00 00 */ lwz r0, 0(r5) -/* 80314D54 90 07 00 00 */ stw r0, 0(r7) -/* 80314D58 80 05 00 04 */ lwz r0, 4(r5) -/* 80314D5C 90 07 00 04 */ stw r0, 4(r7) -/* 80314D60 38 E7 00 08 */ addi r7, r7, 8 -/* 80314D64 38 A5 00 08 */ addi r5, r5, 8 -lbl_80314D68: -/* 80314D68 80 05 00 00 */ lwz r0, 0(r5) -/* 80314D6C 2C 00 00 FF */ cmpwi r0, 0xff -/* 80314D70 40 82 FF C0 */ bne lbl_80314D30 -/* 80314D74 38 00 00 FF */ li r0, 0xff -/* 80314D78 90 07 00 00 */ stw r0, 0(r7) -/* 80314D7C 38 00 00 00 */ li r0, 0 -/* 80314D80 90 07 00 04 */ stw r0, 4(r7) -/* 80314D84 90 7F 00 30 */ stw r3, 0x30(r31) -/* 80314D88 7F E3 FB 78 */ mr r3, r31 -/* 80314D8C 48 00 04 D5 */ bl makeVcdVatCmd__8J3DShapeFv -lbl_80314D90: -/* 80314D90 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80314D94 83 C1 00 08 */ lwz r30, 8(r1) -/* 80314D98 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80314D9C 7C 08 03 A6 */ mtlr r0 -/* 80314DA0 38 21 00 10 */ addi r1, r1, 0x10 -/* 80314DA4 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShape/calcNBTScale__8J3DShapeFRC3VecPA3_A3_fPA3_A3_f.s b/asm/JSystem/J3DGraphBase/J3DShape/calcNBTScale__8J3DShapeFRC3VecPA3_A3_fPA3_A3_f.s deleted file mode 100644 index 8aad5682908..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShape/calcNBTScale__8J3DShapeFRC3VecPA3_A3_fPA3_A3_f.s +++ /dev/null @@ -1,35 +0,0 @@ -lbl_80314DA8: -/* 80314DA8 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80314DAC 7C 08 02 A6 */ mflr r0 -/* 80314DB0 90 01 00 24 */ stw r0, 0x24(r1) -/* 80314DB4 39 61 00 20 */ addi r11, r1, 0x20 -/* 80314DB8 48 04 D4 1D */ bl _savegpr_27 -/* 80314DBC 7C 7B 1B 78 */ mr r27, r3 -/* 80314DC0 7C 9C 23 78 */ mr r28, r4 -/* 80314DC4 7C BD 2B 78 */ mr r29, r5 -/* 80314DC8 7C DE 33 78 */ mr r30, r6 -/* 80314DCC 3B E0 00 00 */ li r31, 0 -/* 80314DD0 48 00 00 30 */ b lbl_80314E00 -lbl_80314DD4: -/* 80314DD4 80 7B 00 38 */ lwz r3, 0x38(r27) -/* 80314DD8 57 E0 13 BA */ rlwinm r0, r31, 2, 0xe, 0x1d -/* 80314DDC 7C 63 00 2E */ lwzx r3, r3, r0 -/* 80314DE0 7F 84 E3 78 */ mr r4, r28 -/* 80314DE4 7F A5 EB 78 */ mr r5, r29 -/* 80314DE8 7F C6 F3 78 */ mr r6, r30 -/* 80314DEC 81 83 00 00 */ lwz r12, 0(r3) -/* 80314DF0 81 8C 00 1C */ lwz r12, 0x1c(r12) -/* 80314DF4 7D 89 03 A6 */ mtctr r12 -/* 80314DF8 4E 80 04 21 */ bctrl -/* 80314DFC 3B FF 00 01 */ addi r31, r31, 1 -lbl_80314E00: -/* 80314E00 57 E3 04 3E */ clrlwi r3, r31, 0x10 -/* 80314E04 A0 1B 00 0A */ lhz r0, 0xa(r27) -/* 80314E08 7C 03 00 40 */ cmplw r3, r0 -/* 80314E0C 41 80 FF C8 */ blt lbl_80314DD4 -/* 80314E10 39 61 00 20 */ addi r11, r1, 0x20 -/* 80314E14 48 04 D4 0D */ bl _restgpr_27 -/* 80314E18 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80314E1C 7C 08 03 A6 */ mtlr r0 -/* 80314E20 38 21 00 20 */ addi r1, r1, 0x20 -/* 80314E24 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShape/countBumpMtxNum__8J3DShapeCFv.s b/asm/JSystem/J3DGraphBase/J3DShape/countBumpMtxNum__8J3DShapeCFv.s deleted file mode 100644 index 211db9d1379..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShape/countBumpMtxNum__8J3DShapeCFv.s +++ /dev/null @@ -1,31 +0,0 @@ -lbl_80314E28: -/* 80314E28 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80314E2C 7C 08 02 A6 */ mflr r0 -/* 80314E30 90 01 00 24 */ stw r0, 0x24(r1) -/* 80314E34 39 61 00 20 */ addi r11, r1, 0x20 -/* 80314E38 48 04 D3 A1 */ bl _savegpr_28 -/* 80314E3C 3B A0 00 00 */ li r29, 0 -/* 80314E40 3B 80 00 00 */ li r28, 0 -/* 80314E44 83 C3 00 38 */ lwz r30, 0x38(r3) -/* 80314E48 A3 E3 00 0A */ lhz r31, 0xa(r3) -/* 80314E4C 48 00 00 24 */ b lbl_80314E70 -lbl_80314E50: -/* 80314E50 57 80 13 BA */ rlwinm r0, r28, 2, 0xe, 0x1d -/* 80314E54 7C 7E 00 2E */ lwzx r3, r30, r0 -/* 80314E58 81 83 00 00 */ lwz r12, 0(r3) -/* 80314E5C 81 8C 00 10 */ lwz r12, 0x10(r12) -/* 80314E60 7D 89 03 A6 */ mtctr r12 -/* 80314E64 4E 80 04 21 */ bctrl -/* 80314E68 7F BD 1A 14 */ add r29, r29, r3 -/* 80314E6C 3B 9C 00 01 */ addi r28, r28, 1 -lbl_80314E70: -/* 80314E70 57 80 04 3E */ clrlwi r0, r28, 0x10 -/* 80314E74 7C 00 F8 40 */ cmplw r0, r31 -/* 80314E78 41 80 FF D8 */ blt lbl_80314E50 -/* 80314E7C 7F A3 EB 78 */ mr r3, r29 -/* 80314E80 39 61 00 20 */ addi r11, r1, 0x20 -/* 80314E84 48 04 D3 A1 */ bl _restgpr_28 -/* 80314E88 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80314E8C 7C 08 03 A6 */ mtlr r0 -/* 80314E90 38 21 00 20 */ addi r1, r1, 0x20 -/* 80314E94 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShape/draw__8J3DShapeCFv.s b/asm/JSystem/J3DGraphBase/J3DShape/draw__8J3DShapeCFv.s deleted file mode 100644 index 60c6b7128a2..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShape/draw__8J3DShapeCFv.s +++ /dev/null @@ -1,19 +0,0 @@ -lbl_803155E0: -/* 803155E0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 803155E4 7C 08 02 A6 */ mflr r0 -/* 803155E8 90 01 00 14 */ stw r0, 0x14(r1) -/* 803155EC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 803155F0 7C 7F 1B 78 */ mr r31, r3 -/* 803155F4 38 00 00 00 */ li r0, 0 -/* 803155F8 90 0D 90 50 */ stw r0, sOldVcdVatCmd__8J3DShape(r13) -/* 803155FC 4B FF FD 05 */ bl loadPreDrawSetting__8J3DShapeCFv -/* 80315600 7F E3 FB 78 */ mr r3, r31 -/* 80315604 81 9F 00 00 */ lwz r12, 0(r31) -/* 80315608 81 8C 00 0C */ lwz r12, 0xc(r12) -/* 8031560C 7D 89 03 A6 */ mtctr r12 -/* 80315610 4E 80 04 21 */ bctrl -/* 80315614 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80315618 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8031561C 7C 08 03 A6 */ mtlr r0 -/* 80315620 38 21 00 10 */ addi r1, r1, 0x10 -/* 80315624 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShape/initialize__8J3DShapeFv.s b/asm/JSystem/J3DGraphBase/J3DShape/initialize__8J3DShapeFv.s deleted file mode 100644 index fcf5c7a8c46..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShape/initialize__8J3DShapeFv.s +++ /dev/null @@ -1,29 +0,0 @@ -lbl_80314B48: -/* 80314B48 38 A0 00 00 */ li r5, 0 -/* 80314B4C 90 A3 00 04 */ stw r5, 4(r3) -/* 80314B50 3C 80 00 01 */ lis r4, 0x0001 /* 0x0000FFFF@ha */ -/* 80314B54 38 04 FF FF */ addi r0, r4, 0xFFFF /* 0x0000FFFF@l */ -/* 80314B58 B0 03 00 08 */ sth r0, 8(r3) -/* 80314B5C B0 A3 00 0A */ sth r5, 0xa(r3) -/* 80314B60 90 A3 00 0C */ stw r5, 0xc(r3) -/* 80314B64 C0 02 C9 A0 */ lfs f0, lit_687(r2) -/* 80314B68 D0 03 00 10 */ stfs f0, 0x10(r3) -/* 80314B6C D0 03 00 14 */ stfs f0, 0x14(r3) -/* 80314B70 D0 03 00 18 */ stfs f0, 0x18(r3) -/* 80314B74 D0 03 00 1C */ stfs f0, 0x1c(r3) -/* 80314B78 D0 03 00 20 */ stfs f0, 0x20(r3) -/* 80314B7C D0 03 00 24 */ stfs f0, 0x24(r3) -/* 80314B80 D0 03 00 28 */ stfs f0, 0x28(r3) -/* 80314B84 90 A3 00 30 */ stw r5, 0x30(r3) -/* 80314B88 90 A3 00 38 */ stw r5, 0x38(r3) -/* 80314B8C 90 A3 00 3C */ stw r5, 0x3c(r3) -/* 80314B90 90 A3 00 4C */ stw r5, 0x4c(r3) -/* 80314B94 90 A3 00 50 */ stw r5, 0x50(r3) -/* 80314B98 90 A3 00 54 */ stw r5, 0x54(r3) -/* 80314B9C 90 A3 00 58 */ stw r5, 0x58(r3) -/* 80314BA0 90 A3 00 5C */ stw r5, 0x5c(r3) -/* 80314BA4 38 0D 90 18 */ la r0, j3dDefaultViewNo(r13) /* 80451598-_SDA_BASE_ */ -/* 80314BA8 90 03 00 60 */ stw r0, 0x60(r3) -/* 80314BAC 98 A3 00 34 */ stb r5, 0x34(r3) -/* 80314BB0 98 A3 00 48 */ stb r5, 0x48(r3) -/* 80314BB4 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShape/isSameVcdVatCmd__8J3DShapeFP8J3DShape.s b/asm/JSystem/J3DGraphBase/J3DShape/isSameVcdVatCmd__8J3DShapeFP8J3DShape.s deleted file mode 100644 index 992dac6d8ca..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShape/isSameVcdVatCmd__8J3DShapeFP8J3DShape.s +++ /dev/null @@ -1,18 +0,0 @@ -lbl_80314F5C: -/* 80314F5C 80 84 00 2C */ lwz r4, 0x2c(r4) -/* 80314F60 80 63 00 2C */ lwz r3, 0x2c(r3) -/* 80314F64 38 00 00 C0 */ li r0, 0xc0 -/* 80314F68 7C 09 03 A6 */ mtctr r0 -lbl_80314F6C: -/* 80314F6C 88 A4 00 00 */ lbz r5, 0(r4) -/* 80314F70 88 03 00 00 */ lbz r0, 0(r3) -/* 80314F74 7C 05 00 40 */ cmplw r5, r0 -/* 80314F78 41 82 00 0C */ beq lbl_80314F84 -/* 80314F7C 38 60 00 00 */ li r3, 0 -/* 80314F80 4E 80 00 20 */ blr -lbl_80314F84: -/* 80314F84 38 63 00 01 */ addi r3, r3, 1 -/* 80314F88 38 84 00 01 */ addi r4, r4, 1 -/* 80314F8C 42 00 FF E0 */ bdnz lbl_80314F6C -/* 80314F90 38 60 00 01 */ li r3, 1 -/* 80314F94 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShape/loadPreDrawSetting__8J3DShapeCFv.s b/asm/JSystem/J3DGraphBase/J3DShape/loadPreDrawSetting__8J3DShapeCFv.s deleted file mode 100644 index 36e13e129bc..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShape/loadPreDrawSetting__8J3DShapeCFv.s +++ /dev/null @@ -1,40 +0,0 @@ -lbl_80315300: -/* 80315300 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80315304 7C 08 02 A6 */ mflr r0 -/* 80315308 90 01 00 14 */ stw r0, 0x14(r1) -/* 8031530C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80315310 7C 7F 1B 78 */ mr r31, r3 -/* 80315314 80 0D 90 50 */ lwz r0, sOldVcdVatCmd__8J3DShape(r13) -/* 80315318 80 63 00 2C */ lwz r3, 0x2c(r3) -/* 8031531C 7C 00 18 40 */ cmplw r0, r3 -/* 80315320 41 82 00 14 */ beq lbl_80315334 -/* 80315324 38 80 00 C0 */ li r4, 0xc0 -/* 80315328 48 04 AB C9 */ bl GXCallDisplayList -/* 8031532C 80 1F 00 2C */ lwz r0, 0x2c(r31) -/* 80315330 90 0D 90 50 */ stw r0, sOldVcdVatCmd__8J3DShape(r13) -lbl_80315334: -/* 80315334 80 BF 00 40 */ lwz r5, 0x40(r31) -/* 80315338 38 80 00 08 */ li r4, 8 -/* 8031533C 3C 60 CC 01 */ lis r3, 0xCC01 /* 0xCC008000@ha */ -/* 80315340 98 83 80 00 */ stb r4, 0x8000(r3) /* 0xCC008000@l */ -/* 80315344 38 00 00 30 */ li r0, 0x30 -/* 80315348 98 03 80 00 */ stb r0, -0x8000(r3) -/* 8031534C 90 A3 80 00 */ stw r5, -0x8000(r3) -/* 80315350 80 DF 00 44 */ lwz r6, 0x44(r31) -/* 80315354 98 83 80 00 */ stb r4, -0x8000(r3) -/* 80315358 38 00 00 40 */ li r0, 0x40 -/* 8031535C 98 03 80 00 */ stb r0, -0x8000(r3) -/* 80315360 90 C3 80 00 */ stw r6, -0x8000(r3) -/* 80315364 38 00 00 10 */ li r0, 0x10 -/* 80315368 98 03 80 00 */ stb r0, -0x8000(r3) -/* 8031536C 38 00 00 01 */ li r0, 1 -/* 80315370 B0 03 80 00 */ sth r0, -0x8000(r3) -/* 80315374 38 00 10 18 */ li r0, 0x1018 -/* 80315378 B0 03 80 00 */ sth r0, -0x8000(r3) -/* 8031537C 90 A3 80 00 */ stw r5, -0x8000(r3) -/* 80315380 90 C3 80 00 */ stw r6, -0x8000(r3) -/* 80315384 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80315388 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8031538C 7C 08 03 A6 */ mtlr r0 -/* 80315390 38 21 00 10 */ addi r1, r1, 0x10 -/* 80315394 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShape/makeVcdVatCmd__8J3DShapeFv.s b/asm/JSystem/J3DGraphBase/J3DShape/makeVcdVatCmd__8J3DShapeFv.s deleted file mode 100644 index 8ebb48d9e8a..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShape/makeVcdVatCmd__8J3DShapeFv.s +++ /dev/null @@ -1,42 +0,0 @@ -lbl_80315260: -/* 80315260 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80315264 7C 08 02 A6 */ mflr r0 -/* 80315268 90 01 00 24 */ stw r0, 0x24(r1) -/* 8031526C 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 80315270 7C 7F 1B 78 */ mr r31, r3 -/* 80315274 88 0D 90 4C */ lbz r0, data_804515CC(r13) -/* 80315278 7C 00 07 75 */ extsb. r0, r0 -/* 8031527C 40 82 00 14 */ bne lbl_80315290 -/* 80315280 48 02 84 75 */ bl OSDisableInterrupts -/* 80315284 90 6D 90 48 */ stw r3, sInterruptFlag(r13) -/* 80315288 38 00 00 01 */ li r0, 1 -/* 8031528C 98 0D 90 4C */ stb r0, data_804515CC(r13) -lbl_80315290: -/* 80315290 48 02 BA 35 */ bl OSDisableScheduler -/* 80315294 38 61 00 08 */ addi r3, r1, 8 -/* 80315298 80 9F 00 2C */ lwz r4, 0x2c(r31) -/* 8031529C 38 A0 00 C0 */ li r5, 0xc0 -/* 803152A0 48 04 BC F9 */ bl GDInitGDLObj -/* 803152A4 38 01 00 08 */ addi r0, r1, 8 -/* 803152A8 90 0D 94 00 */ stw r0, __GDCurrentDL(r13) -/* 803152AC 80 7F 00 30 */ lwz r3, 0x30(r31) -/* 803152B0 48 04 BE 55 */ bl GDSetVtxDescv -/* 803152B4 7F E3 FB 78 */ mr r3, r31 -/* 803152B8 4B FF FC E1 */ bl makeVtxArrayCmd__8J3DShapeFv -/* 803152BC 80 7F 00 4C */ lwz r3, 0x4c(r31) -/* 803152C0 80 83 00 14 */ lwz r4, 0x14(r3) -/* 803152C4 38 60 00 00 */ li r3, 0 -/* 803152C8 88 BF 00 34 */ lbz r5, 0x34(r31) -/* 803152CC 4B FF 88 39 */ bl J3DGDSetVtxAttrFmtv__F9_GXVtxFmtPC17_GXVtxAttrFmtListb -/* 803152D0 48 04 BD 0D */ bl GDPadCurr32 -/* 803152D4 48 04 BC DD */ bl GDFlushCurrToMem -/* 803152D8 38 00 00 00 */ li r0, 0 -/* 803152DC 90 0D 94 00 */ stw r0, __GDCurrentDL(r13) -/* 803152E0 48 02 BA 25 */ bl OSEnableScheduler -/* 803152E4 80 6D 90 48 */ lwz r3, sInterruptFlag(r13) -/* 803152E8 48 02 84 35 */ bl OSRestoreInterrupts -/* 803152EC 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 803152F0 80 01 00 24 */ lwz r0, 0x24(r1) -/* 803152F4 7C 08 03 A6 */ mtlr r0 -/* 803152F8 38 21 00 20 */ addi r1, r1, 0x20 -/* 803152FC 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShape/makeVtxArrayCmd__8J3DShapeFv.s b/asm/JSystem/J3DGraphBase/J3DShape/makeVtxArrayCmd__8J3DShapeFv.s deleted file mode 100644 index 57733281acd..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShape/makeVtxArrayCmd__8J3DShapeFv.s +++ /dev/null @@ -1,201 +0,0 @@ -lbl_80314F98: -/* 80314F98 94 21 FF A0 */ stwu r1, -0x60(r1) -/* 80314F9C 7C 08 02 A6 */ mflr r0 -/* 80314FA0 90 01 00 64 */ stw r0, 0x64(r1) -/* 80314FA4 39 61 00 60 */ addi r11, r1, 0x60 -/* 80314FA8 48 04 D2 2D */ bl _savegpr_27 -/* 80314FAC 80 83 00 4C */ lwz r4, 0x4c(r3) -/* 80314FB0 80 84 00 14 */ lwz r4, 0x14(r4) -/* 80314FB4 38 A0 00 00 */ li r5, 0 -/* 80314FB8 39 00 00 00 */ li r8, 0 -/* 80314FBC 38 E1 00 14 */ addi r7, r1, 0x14 -/* 80314FC0 38 C1 00 08 */ addi r6, r1, 8 -/* 80314FC4 38 00 00 0C */ li r0, 0xc -/* 80314FC8 7C 09 03 A6 */ mtctr r0 -lbl_80314FCC: -/* 80314FCC 99 06 00 00 */ stb r8, 0(r6) -/* 80314FD0 7D 07 29 2E */ stwx r8, r7, r5 -/* 80314FD4 38 A5 00 04 */ addi r5, r5, 4 -/* 80314FD8 38 C6 00 01 */ addi r6, r6, 1 -/* 80314FDC 42 00 FF F0 */ bdnz lbl_80314FCC -/* 80314FE0 48 00 01 90 */ b lbl_80315170 -lbl_80314FE4: -/* 80314FE4 2C 07 00 0A */ cmpwi r7, 0xa -/* 80314FE8 41 82 00 8C */ beq lbl_80315074 -/* 80314FEC 40 80 00 10 */ bge lbl_80314FFC -/* 80314FF0 2C 07 00 09 */ cmpwi r7, 9 -/* 80314FF4 40 80 00 1C */ bge lbl_80315010 -/* 80314FF8 48 00 01 74 */ b lbl_8031516C -lbl_80314FFC: -/* 80314FFC 2C 07 00 15 */ cmpwi r7, 0x15 -/* 80315000 40 80 01 6C */ bge lbl_8031516C -/* 80315004 2C 07 00 0D */ cmpwi r7, 0xd -/* 80315008 40 80 01 0C */ bge lbl_80315114 -/* 8031500C 48 00 00 CC */ b lbl_803150D8 -lbl_80315010: -/* 80315010 80 04 00 08 */ lwz r0, 8(r4) -/* 80315014 2C 00 00 04 */ cmpwi r0, 4 -/* 80315018 40 82 00 18 */ bne lbl_80315030 -/* 8031501C 38 C0 00 0C */ li r6, 0xc -/* 80315020 38 A1 00 08 */ addi r5, r1, 8 -/* 80315024 38 07 FF F7 */ addi r0, r7, -9 -/* 80315028 7C C5 01 AE */ stbx r6, r5, r0 -/* 8031502C 48 00 00 14 */ b lbl_80315040 -lbl_80315030: -/* 80315030 38 C0 00 06 */ li r6, 6 -/* 80315034 38 A1 00 08 */ addi r5, r1, 8 -/* 80315038 38 07 FF F7 */ addi r0, r7, -9 -/* 8031503C 7C C5 01 AE */ stbx r6, r5, r0 -lbl_80315040: -/* 80315040 80 E3 00 4C */ lwz r7, 0x4c(r3) -/* 80315044 81 07 00 18 */ lwz r8, 0x18(r7) -/* 80315048 80 04 00 00 */ lwz r0, 0(r4) -/* 8031504C 54 06 10 3A */ slwi r6, r0, 2 -/* 80315050 38 A1 00 14 */ addi r5, r1, 0x14 -/* 80315054 38 06 FF DC */ addi r0, r6, -36 -/* 80315058 7D 05 01 2E */ stwx r8, r5, r0 -/* 8031505C 88 04 00 0C */ lbz r0, 0xc(r4) -/* 80315060 98 07 00 4C */ stb r0, 0x4c(r7) -/* 80315064 80 04 00 08 */ lwz r0, 8(r4) -/* 80315068 80 A3 00 4C */ lwz r5, 0x4c(r3) -/* 8031506C 90 05 00 50 */ stw r0, 0x50(r5) -/* 80315070 48 00 00 FC */ b lbl_8031516C -lbl_80315074: -/* 80315074 80 04 00 08 */ lwz r0, 8(r4) -/* 80315078 2C 00 00 04 */ cmpwi r0, 4 -/* 8031507C 40 82 00 18 */ bne lbl_80315094 -/* 80315080 38 C0 00 0C */ li r6, 0xc -/* 80315084 38 A1 00 08 */ addi r5, r1, 8 -/* 80315088 38 07 FF F7 */ addi r0, r7, -9 -/* 8031508C 7C C5 01 AE */ stbx r6, r5, r0 -/* 80315090 48 00 00 14 */ b lbl_803150A4 -lbl_80315094: -/* 80315094 38 C0 00 06 */ li r6, 6 -/* 80315098 38 A1 00 08 */ addi r5, r1, 8 -/* 8031509C 38 07 FF F7 */ addi r0, r7, -9 -/* 803150A0 7C C5 01 AE */ stbx r6, r5, r0 -lbl_803150A4: -/* 803150A4 80 E3 00 4C */ lwz r7, 0x4c(r3) -/* 803150A8 81 07 00 1C */ lwz r8, 0x1c(r7) -/* 803150AC 80 04 00 00 */ lwz r0, 0(r4) -/* 803150B0 54 06 10 3A */ slwi r6, r0, 2 -/* 803150B4 38 A1 00 14 */ addi r5, r1, 0x14 -/* 803150B8 38 06 FF DC */ addi r0, r6, -36 -/* 803150BC 7D 05 01 2E */ stwx r8, r5, r0 -/* 803150C0 88 04 00 0C */ lbz r0, 0xc(r4) -/* 803150C4 98 07 00 54 */ stb r0, 0x54(r7) -/* 803150C8 80 04 00 08 */ lwz r0, 8(r4) -/* 803150CC 80 A3 00 4C */ lwz r5, 0x4c(r3) -/* 803150D0 90 05 00 58 */ stw r0, 0x58(r5) -/* 803150D4 48 00 00 98 */ b lbl_8031516C -lbl_803150D8: -/* 803150D8 38 C0 00 04 */ li r6, 4 -/* 803150DC 38 A1 00 08 */ addi r5, r1, 8 -/* 803150E0 38 07 FF F7 */ addi r0, r7, -9 -/* 803150E4 7C C5 01 AE */ stbx r6, r5, r0 -/* 803150E8 80 C3 00 4C */ lwz r6, 0x4c(r3) -/* 803150EC 81 04 00 00 */ lwz r8, 0(r4) -/* 803150F0 38 08 FF F5 */ addi r0, r8, -11 -/* 803150F4 54 05 15 BA */ rlwinm r5, r0, 2, 0x16, 0x1d -/* 803150F8 38 05 00 24 */ addi r0, r5, 0x24 -/* 803150FC 7C E6 00 2E */ lwzx r7, r6, r0 -/* 80315100 55 06 10 3A */ slwi r6, r8, 2 -/* 80315104 38 A1 00 14 */ addi r5, r1, 0x14 -/* 80315108 38 06 FF DC */ addi r0, r6, -36 -/* 8031510C 7C E5 01 2E */ stwx r7, r5, r0 -/* 80315110 48 00 00 5C */ b lbl_8031516C -lbl_80315114: -/* 80315114 80 04 00 08 */ lwz r0, 8(r4) -/* 80315118 2C 00 00 04 */ cmpwi r0, 4 -/* 8031511C 40 82 00 18 */ bne lbl_80315134 -/* 80315120 38 C0 00 08 */ li r6, 8 -/* 80315124 38 A1 00 08 */ addi r5, r1, 8 -/* 80315128 38 07 FF F7 */ addi r0, r7, -9 -/* 8031512C 7C C5 01 AE */ stbx r6, r5, r0 -/* 80315130 48 00 00 14 */ b lbl_80315144 -lbl_80315134: -/* 80315134 38 C0 00 04 */ li r6, 4 -/* 80315138 38 A1 00 08 */ addi r5, r1, 8 -/* 8031513C 38 07 FF F7 */ addi r0, r7, -9 -/* 80315140 7C C5 01 AE */ stbx r6, r5, r0 -lbl_80315144: -/* 80315144 80 C3 00 4C */ lwz r6, 0x4c(r3) -/* 80315148 81 04 00 00 */ lwz r8, 0(r4) -/* 8031514C 38 08 FF F3 */ addi r0, r8, -13 -/* 80315150 54 05 15 BA */ rlwinm r5, r0, 2, 0x16, 0x1d -/* 80315154 38 05 00 2C */ addi r0, r5, 0x2c -/* 80315158 7C E6 00 2E */ lwzx r7, r6, r0 -/* 8031515C 55 06 10 3A */ slwi r6, r8, 2 -/* 80315160 38 A1 00 14 */ addi r5, r1, 0x14 -/* 80315164 38 06 FF DC */ addi r0, r6, -36 -/* 80315168 7C E5 01 2E */ stwx r7, r5, r0 -lbl_8031516C: -/* 8031516C 38 84 00 10 */ addi r4, r4, 0x10 -lbl_80315170: -/* 80315170 80 E4 00 00 */ lwz r7, 0(r4) -/* 80315174 2C 07 00 FF */ cmpwi r7, 0xff -/* 80315178 40 82 FE 6C */ bne lbl_80314FE4 -/* 8031517C 80 A3 00 30 */ lwz r5, 0x30(r3) -/* 80315180 38 00 00 00 */ li r0, 0 -/* 80315184 98 03 00 48 */ stb r0, 0x48(r3) -/* 80315188 48 00 00 5C */ b lbl_803151E4 -lbl_8031518C: -/* 8031518C 2C 04 00 19 */ cmpwi r4, 0x19 -/* 80315190 40 82 00 34 */ bne lbl_803151C4 -/* 80315194 80 05 00 04 */ lwz r0, 4(r5) -/* 80315198 2C 00 00 00 */ cmpwi r0, 0 -/* 8031519C 41 82 00 28 */ beq lbl_803151C4 -/* 803151A0 38 00 00 01 */ li r0, 1 -/* 803151A4 98 03 00 34 */ stb r0, 0x34(r3) -/* 803151A8 88 01 00 09 */ lbz r0, 9(r1) -/* 803151AC 1C 00 00 03 */ mulli r0, r0, 3 -/* 803151B0 98 01 00 09 */ stb r0, 9(r1) -/* 803151B4 80 83 00 4C */ lwz r4, 0x4c(r3) -/* 803151B8 80 04 00 20 */ lwz r0, 0x20(r4) -/* 803151BC 90 01 00 18 */ stw r0, 0x18(r1) -/* 803151C0 48 00 00 20 */ b lbl_803151E0 -lbl_803151C4: -/* 803151C4 2C 04 00 00 */ cmpwi r4, 0 -/* 803151C8 40 82 00 18 */ bne lbl_803151E0 -/* 803151CC 80 05 00 04 */ lwz r0, 4(r5) -/* 803151D0 2C 00 00 00 */ cmpwi r0, 0 -/* 803151D4 41 82 00 0C */ beq lbl_803151E0 -/* 803151D8 38 00 00 01 */ li r0, 1 -/* 803151DC 98 03 00 48 */ stb r0, 0x48(r3) -lbl_803151E0: -/* 803151E0 38 A5 00 08 */ addi r5, r5, 8 -lbl_803151E4: -/* 803151E4 80 85 00 00 */ lwz r4, 0(r5) -/* 803151E8 2C 04 00 FF */ cmpwi r4, 0xff -/* 803151EC 40 82 FF A0 */ bne lbl_8031518C -/* 803151F0 3B 60 00 00 */ li r27, 0 -/* 803151F4 3B A0 00 00 */ li r29, 0 -/* 803151F8 3B 81 00 14 */ addi r28, r1, 0x14 -/* 803151FC 3B C1 00 08 */ addi r30, r1, 8 -/* 80315200 7F DF F3 78 */ mr r31, r30 -lbl_80315204: -/* 80315204 7C 9C E8 2E */ lwzx r4, r28, r29 -/* 80315208 28 04 00 00 */ cmplwi r4, 0 -/* 8031520C 41 82 00 14 */ beq lbl_80315220 -/* 80315210 38 7B 00 09 */ addi r3, r27, 9 -/* 80315214 88 BE 00 00 */ lbz r5, 0(r30) -/* 80315218 48 04 C4 E9 */ bl GDSetArray -/* 8031521C 48 00 00 14 */ b lbl_80315230 -lbl_80315220: -/* 80315220 38 7B 00 09 */ addi r3, r27, 9 -/* 80315224 38 80 00 00 */ li r4, 0 -/* 80315228 88 BF 00 00 */ lbz r5, 0(r31) -/* 8031522C 48 04 C6 E1 */ bl GDSetArrayRaw -lbl_80315230: -/* 80315230 3B 7B 00 01 */ addi r27, r27, 1 -/* 80315234 28 1B 00 0C */ cmplwi r27, 0xc -/* 80315238 3B FF 00 01 */ addi r31, r31, 1 -/* 8031523C 3B DE 00 01 */ addi r30, r30, 1 -/* 80315240 3B BD 00 04 */ addi r29, r29, 4 -/* 80315244 41 80 FF C0 */ blt lbl_80315204 -/* 80315248 39 61 00 60 */ addi r11, r1, 0x60 -/* 8031524C 48 04 CF D5 */ bl _restgpr_27 -/* 80315250 80 01 00 64 */ lwz r0, 0x64(r1) -/* 80315254 7C 08 03 A6 */ mtlr r0 -/* 80315258 38 21 00 60 */ addi r1, r1, 0x60 -/* 8031525C 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShape/simpleDrawCache__8J3DShapeCFv.s b/asm/JSystem/J3DGraphBase/J3DShape/simpleDrawCache__8J3DShapeCFv.s deleted file mode 100644 index b45781bdf51..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShape/simpleDrawCache__8J3DShapeCFv.s +++ /dev/null @@ -1,67 +0,0 @@ -lbl_803156AC: -/* 803156AC 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 803156B0 7C 08 02 A6 */ mflr r0 -/* 803156B4 90 01 00 24 */ stw r0, 0x24(r1) -/* 803156B8 39 61 00 20 */ addi r11, r1, 0x20 -/* 803156BC 48 04 CB 21 */ bl _savegpr_29 -/* 803156C0 7C 7E 1B 78 */ mr r30, r3 -/* 803156C4 80 0D 90 50 */ lwz r0, sOldVcdVatCmd__8J3DShape(r13) -/* 803156C8 80 63 00 2C */ lwz r3, 0x2c(r3) -/* 803156CC 7C 00 18 40 */ cmplw r0, r3 -/* 803156D0 41 82 00 14 */ beq lbl_803156E4 -/* 803156D4 38 80 00 C0 */ li r4, 0xc0 -/* 803156D8 48 04 A8 19 */ bl GXCallDisplayList -/* 803156DC 80 1E 00 2C */ lwz r0, 0x2c(r30) -/* 803156E0 90 0D 90 50 */ stw r0, sOldVcdVatCmd__8J3DShape(r13) -lbl_803156E4: -/* 803156E4 88 0D 90 54 */ lbz r0, data_804515D4(r13) -/* 803156E8 28 00 00 00 */ cmplwi r0, 0 -/* 803156EC 41 82 00 60 */ beq lbl_8031574C -/* 803156F0 88 1E 00 48 */ lbz r0, 0x48(r30) -/* 803156F4 28 00 00 00 */ cmplwi r0, 0 -/* 803156F8 40 82 00 54 */ bne lbl_8031574C -/* 803156FC 80 BE 00 40 */ lwz r5, 0x40(r30) -/* 80315700 38 80 00 08 */ li r4, 8 -/* 80315704 3C 60 CC 01 */ lis r3, 0xCC01 /* 0xCC008000@ha */ -/* 80315708 98 83 80 00 */ stb r4, 0x8000(r3) /* 0xCC008000@l */ -/* 8031570C 38 00 00 30 */ li r0, 0x30 -/* 80315710 98 03 80 00 */ stb r0, -0x8000(r3) -/* 80315714 90 A3 80 00 */ stw r5, -0x8000(r3) -/* 80315718 80 DE 00 44 */ lwz r6, 0x44(r30) -/* 8031571C 98 83 80 00 */ stb r4, -0x8000(r3) -/* 80315720 38 00 00 40 */ li r0, 0x40 -/* 80315724 98 03 80 00 */ stb r0, -0x8000(r3) -/* 80315728 90 C3 80 00 */ stw r6, -0x8000(r3) -/* 8031572C 38 00 00 10 */ li r0, 0x10 -/* 80315730 98 03 80 00 */ stb r0, -0x8000(r3) -/* 80315734 38 00 00 01 */ li r0, 1 -/* 80315738 B0 03 80 00 */ sth r0, -0x8000(r3) -/* 8031573C 38 00 10 18 */ li r0, 0x1018 -/* 80315740 B0 03 80 00 */ sth r0, -0x8000(r3) -/* 80315744 90 A3 80 00 */ stw r5, -0x8000(r3) -/* 80315748 90 C3 80 00 */ stw r6, -0x8000(r3) -lbl_8031574C: -/* 8031574C 7F C3 F3 78 */ mr r3, r30 -/* 80315750 4B FF F7 9D */ bl loadVtxArray__8J3DShapeCFv -/* 80315754 A3 FE 00 0A */ lhz r31, 0xa(r30) -/* 80315758 3B A0 00 00 */ li r29, 0 -/* 8031575C 83 DE 00 3C */ lwz r30, 0x3c(r30) -/* 80315760 48 00 00 1C */ b lbl_8031577C -lbl_80315764: -/* 80315764 57 A0 13 BA */ rlwinm r0, r29, 2, 0xe, 0x1d -/* 80315768 7C 7E 00 2E */ lwzx r3, r30, r0 -/* 8031576C 28 03 00 00 */ cmplwi r3, 0 -/* 80315770 41 82 00 08 */ beq lbl_80315778 -/* 80315774 4B FF F3 61 */ bl draw__12J3DShapeDrawCFv -lbl_80315778: -/* 80315778 3B BD 00 01 */ addi r29, r29, 1 -lbl_8031577C: -/* 8031577C 57 A0 04 3E */ clrlwi r0, r29, 0x10 -/* 80315780 7C 00 F8 40 */ cmplw r0, r31 -/* 80315784 41 80 FF E0 */ blt lbl_80315764 -/* 80315788 39 61 00 20 */ addi r11, r1, 0x20 -/* 8031578C 48 04 CA 9D */ bl _restgpr_29 -/* 80315790 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80315794 7C 08 03 A6 */ mtlr r0 -/* 80315798 38 21 00 20 */ addi r1, r1, 0x20 -/* 8031579C 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeDraw/countVertex__12J3DShapeDrawFUl.s b/asm/JSystem/J3DGraphBase/J3DShapeDraw/countVertex__12J3DShapeDrawFUl.s deleted file mode 100644 index 3e4e9378551..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeDraw/countVertex__12J3DShapeDrawFUl.s +++ /dev/null @@ -1,25 +0,0 @@ -lbl_80314924: -/* 80314924 38 A0 00 00 */ li r5, 0 -/* 80314928 80 C3 00 08 */ lwz r6, 8(r3) -/* 8031492C 7C C7 33 78 */ mr r7, r6 -/* 80314930 80 63 00 04 */ lwz r3, 4(r3) -/* 80314934 48 00 00 2C */ b lbl_80314960 -lbl_80314938: -/* 80314938 88 07 00 00 */ lbz r0, 0(r7) -/* 8031493C 28 00 00 A0 */ cmplwi r0, 0xa0 -/* 80314940 41 82 00 0C */ beq lbl_8031494C -/* 80314944 28 00 00 98 */ cmplwi r0, 0x98 -/* 80314948 40 82 00 24 */ bne lbl_8031496C -lbl_8031494C: -/* 8031494C A0 07 00 01 */ lhz r0, 1(r7) -/* 80314950 7C A5 02 14 */ add r5, r5, r0 -/* 80314954 7C 04 01 D6 */ mullw r0, r4, r0 -/* 80314958 7C E7 02 14 */ add r7, r7, r0 -/* 8031495C 38 E7 00 03 */ addi r7, r7, 3 -lbl_80314960: -/* 80314960 7C 06 38 50 */ subf r0, r6, r7 -/* 80314964 7C 00 18 40 */ cmplw r0, r3 -/* 80314968 41 80 FF D0 */ blt lbl_80314938 -lbl_8031496C: -/* 8031496C 7C A3 2B 78 */ mr r3, r5 -/* 80314970 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__11J3DShapeMtxCFv.s b/asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__11J3DShapeMtxCFv.s deleted file mode 100644 index bba4e297969..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__11J3DShapeMtxCFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_803147E0: -/* 803147E0 3C 60 53 4D */ lis r3, 0x534D /* 0x534D5458@ha */ -/* 803147E4 38 63 54 58 */ addi r3, r3, 0x5458 /* 0x534D5458@l */ -/* 803147E8 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__16J3DShapeMtxMultiCFv.s b/asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__16J3DShapeMtxMultiCFv.s deleted file mode 100644 index f4c08ab8647..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__16J3DShapeMtxMultiCFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_8031470C: -/* 8031470C 3C 60 53 4D */ lis r3, 0x534D /* 0x534D4D4C@ha */ -/* 80314710 38 63 4D 4C */ addi r3, r3, 0x4D4C /* 0x534D4D4C@l */ -/* 80314714 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__21J3DShapeMtxConcatViewCFv.s b/asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__21J3DShapeMtxConcatViewCFv.s deleted file mode 100644 index b555f83b112..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__21J3DShapeMtxConcatViewCFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_8031478C: -/* 8031478C 3C 60 53 4D */ lis r3, 0x534D /* 0x534D4356@ha */ -/* 80314790 38 63 43 56 */ addi r3, r3, 0x4356 /* 0x534D4356@l */ -/* 80314794 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__26J3DShapeMtxMultiConcatViewCFv.s b/asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__26J3DShapeMtxMultiConcatViewCFv.s deleted file mode 100644 index 5f47cd30246..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__26J3DShapeMtxMultiConcatViewCFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_80314688: -/* 80314688 3C 60 53 4D */ lis r3, 0x534D /* 0x534D4D43@ha */ -/* 8031468C 38 63 4D 43 */ addi r3, r3, 0x4D43 /* 0x534D4D43@l */ -/* 80314690 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__27J3DShapeMtxBBoardConcatViewCFv.s b/asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__27J3DShapeMtxBBoardConcatViewCFv.s deleted file mode 100644 index 9baee6b1aec..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__27J3DShapeMtxBBoardConcatViewCFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_80314610: -/* 80314610 3C 60 53 4D */ lis r3, 0x534D /* 0x534D4242@ha */ -/* 80314614 38 63 42 42 */ addi r3, r3, 0x4242 /* 0x534D4242@l */ -/* 80314618 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__28J3DShapeMtxYBBoardConcatViewCFv.s b/asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__28J3DShapeMtxYBBoardConcatViewCFv.s deleted file mode 100644 index eb7b0f16652..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__28J3DShapeMtxYBBoardConcatViewCFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_8031458C: -/* 8031458C 3C 60 53 4D */ lis r3, 0x534D /* 0x534D5942@ha */ -/* 80314590 38 63 59 42 */ addi r3, r3, 0x5942 /* 0x534D5942@l */ -/* 80314594 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeMtx/getUseMtxIndex__11J3DShapeMtxCFUs.s b/asm/JSystem/J3DGraphBase/J3DShapeMtx/getUseMtxIndex__11J3DShapeMtxCFUs.s deleted file mode 100644 index eea0e0c9c69..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeMtx/getUseMtxIndex__11J3DShapeMtxCFUs.s +++ /dev/null @@ -1,3 +0,0 @@ -lbl_8031459C: -/* 8031459C A0 63 00 04 */ lhz r3, 4(r3) -/* 803145A0 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeMtx/getUseMtxIndex__16J3DShapeMtxMultiCFUs.s b/asm/JSystem/J3DGraphBase/J3DShapeMtx/getUseMtxIndex__16J3DShapeMtxMultiCFUs.s deleted file mode 100644 index 10bdbf7c7c0..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeMtx/getUseMtxIndex__16J3DShapeMtxMultiCFUs.s +++ /dev/null @@ -1,5 +0,0 @@ -lbl_80314720: -/* 80314720 80 63 00 0C */ lwz r3, 0xc(r3) -/* 80314724 54 80 0B FC */ rlwinm r0, r4, 1, 0xf, 0x1e -/* 80314728 7C 63 02 2E */ lhzx r3, r3, r0 -/* 8031472C 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeMtx/getUseMtxIndex__26J3DShapeMtxMultiConcatViewCFUs.s b/asm/JSystem/J3DGraphBase/J3DShapeMtx/getUseMtxIndex__26J3DShapeMtxMultiConcatViewCFUs.s deleted file mode 100644 index 34afa503c6c..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeMtx/getUseMtxIndex__26J3DShapeMtxMultiConcatViewCFUs.s +++ /dev/null @@ -1,5 +0,0 @@ -lbl_8031469C: -/* 8031469C 80 63 00 0C */ lwz r3, 0xc(r3) -/* 803146A0 54 80 0B FC */ rlwinm r0, r4, 1, 0xf, 0x1e -/* 803146A4 7C 63 02 2E */ lhzx r3, r3, r0 -/* 803146A8 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeMtx/getUseMtxNum__16J3DShapeMtxMultiCFv.s b/asm/JSystem/J3DGraphBase/J3DShapeMtx/getUseMtxNum__16J3DShapeMtxMultiCFv.s deleted file mode 100644 index c0993bfd8ed..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeMtx/getUseMtxNum__16J3DShapeMtxMultiCFv.s +++ /dev/null @@ -1,3 +0,0 @@ -lbl_80314718: -/* 80314718 A0 63 00 08 */ lhz r3, 8(r3) -/* 8031471C 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeMtx/getUseMtxNum__26J3DShapeMtxMultiConcatViewCFv.s b/asm/JSystem/J3DGraphBase/J3DShapeMtx/getUseMtxNum__26J3DShapeMtxMultiConcatViewCFv.s deleted file mode 100644 index 55405c6a4e5..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeMtx/getUseMtxNum__26J3DShapeMtxMultiConcatViewCFv.s +++ /dev/null @@ -1,3 +0,0 @@ -lbl_80314694: -/* 80314694 A0 63 00 08 */ lhz r3, 8(r3) -/* 80314698 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxConcatView_NCPU__21J3DShapeMtxConcatViewCFiUs.s b/asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxConcatView_NCPU__21J3DShapeMtxConcatViewCFiUs.s deleted file mode 100644 index 54c4a8fe114..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxConcatView_NCPU__21J3DShapeMtxConcatViewCFiUs.s +++ /dev/null @@ -1,45 +0,0 @@ -lbl_8031396C: -/* 8031396C 94 21 FF C0 */ stwu r1, -0x40(r1) -/* 80313970 7C 08 02 A6 */ mflr r0 -/* 80313974 90 01 00 44 */ stw r0, 0x44(r1) -/* 80313978 93 E1 00 3C */ stw r31, 0x3c(r1) -/* 8031397C 93 C1 00 38 */ stw r30, 0x38(r1) -/* 80313980 7C 9E 23 78 */ mr r30, r4 -/* 80313984 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */ -/* 80313988 3B E3 4A C8 */ addi r31, r3, j3dSys@l /* 0x80434AC8@l */ -/* 8031398C 80 7F 00 40 */ lwz r3, 0x40(r31) -/* 80313990 80 63 00 30 */ lwz r3, 0x30(r3) -/* 80313994 80 9F 01 04 */ lwz r4, 0x104(r31) -/* 80313998 54 A0 04 3E */ clrlwi r0, r5, 0x10 -/* 8031399C 1C 00 00 30 */ mulli r0, r0, 0x30 -/* 803139A0 7C 84 02 14 */ add r4, r4, r0 -/* 803139A4 38 A1 00 08 */ addi r5, r1, 8 -/* 803139A8 48 03 2B 3D */ bl PSMTXConcat -/* 803139AC 80 0D 90 40 */ lwz r0, sTexGenBlock__17J3DDifferedTexMtx(r13) -/* 803139B0 28 00 00 00 */ cmplwi r0, 0 -/* 803139B4 41 82 00 0C */ beq lbl_803139C0 -/* 803139B8 38 61 00 08 */ addi r3, r1, 8 -/* 803139BC 4B FF F8 71 */ bl loadExecute__17J3DDifferedTexMtxFPA4_Cf -lbl_803139C0: -/* 803139C0 38 61 00 08 */ addi r3, r1, 8 -/* 803139C4 1F DE 00 03 */ mulli r30, r30, 3 -/* 803139C8 7F C4 F3 78 */ mr r4, r30 -/* 803139CC 4B FF C1 15 */ bl J3DFifoLoadPosMtxImm__FPA4_fUl -/* 803139D0 80 7F 00 40 */ lwz r3, 0x40(r31) -/* 803139D4 80 63 00 30 */ lwz r3, 0x30(r3) -/* 803139D8 7F C4 F3 78 */ mr r4, r30 -/* 803139DC 4B FF C1 85 */ bl J3DFifoLoadNrmMtxImm__FPA4_fUl -/* 803139E0 80 0D 90 34 */ lwz r0, sTexMtxLoadType__11J3DShapeMtx(r13) -/* 803139E4 28 00 20 00 */ cmplwi r0, 0x2000 -/* 803139E8 40 82 00 14 */ bne lbl_803139FC -/* 803139EC 80 7F 00 40 */ lwz r3, 0x40(r31) -/* 803139F0 80 63 00 30 */ lwz r3, 0x30(r3) -/* 803139F4 38 9E 00 1E */ addi r4, r30, 0x1e -/* 803139F8 4B FF C2 41 */ bl J3DFifoLoadNrmMtxToTexMtx__FPA4_fUl -lbl_803139FC: -/* 803139FC 83 E1 00 3C */ lwz r31, 0x3c(r1) -/* 80313A00 83 C1 00 38 */ lwz r30, 0x38(r1) -/* 80313A04 80 01 00 44 */ lwz r0, 0x44(r1) -/* 80313A08 7C 08 03 A6 */ mtlr r0 -/* 80313A0C 38 21 00 40 */ addi r1, r1, 0x40 -/* 80313A10 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxConcatView_PCPU__21J3DShapeMtxConcatViewCFiUs.s b/asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxConcatView_PCPU__21J3DShapeMtxConcatViewCFiUs.s deleted file mode 100644 index 764a7251f6e..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxConcatView_PCPU__21J3DShapeMtxConcatViewCFiUs.s +++ /dev/null @@ -1,43 +0,0 @@ -lbl_803138C8: -/* 803138C8 94 21 FF B0 */ stwu r1, -0x50(r1) -/* 803138CC 7C 08 02 A6 */ mflr r0 -/* 803138D0 90 01 00 54 */ stw r0, 0x54(r1) -/* 803138D4 39 61 00 50 */ addi r11, r1, 0x50 -/* 803138D8 48 04 E9 01 */ bl _savegpr_28 -/* 803138DC 7C 7C 1B 78 */ mr r28, r3 -/* 803138E0 7C 9D 23 78 */ mr r29, r4 -/* 803138E4 7C BE 2B 78 */ mr r30, r5 -/* 803138E8 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */ -/* 803138EC 3B E3 4A C8 */ addi r31, r3, j3dSys@l /* 0x80434AC8@l */ -/* 803138F0 80 7F 00 40 */ lwz r3, 0x40(r31) -/* 803138F4 80 63 00 30 */ lwz r3, 0x30(r3) -/* 803138F8 80 9F 01 04 */ lwz r4, 0x104(r31) -/* 803138FC 54 A0 04 3E */ clrlwi r0, r5, 0x10 -/* 80313900 1C 00 00 30 */ mulli r0, r0, 0x30 -/* 80313904 7C 84 02 14 */ add r4, r4, r0 -/* 80313908 38 A1 00 08 */ addi r5, r1, 8 -/* 8031390C 48 03 2B D9 */ bl PSMTXConcat -/* 80313910 80 0D 90 40 */ lwz r0, sTexGenBlock__17J3DDifferedTexMtx(r13) -/* 80313914 28 00 00 00 */ cmplwi r0, 0 -/* 80313918 41 82 00 0C */ beq lbl_80313924 -/* 8031391C 38 61 00 08 */ addi r3, r1, 8 -/* 80313920 4B FF F9 0D */ bl loadExecute__17J3DDifferedTexMtxFPA4_Cf -lbl_80313924: -/* 80313924 80 7F 00 40 */ lwz r3, 0x40(r31) -/* 80313928 80 63 00 30 */ lwz r3, 0x30(r3) -/* 8031392C 1C 9D 00 03 */ mulli r4, r29, 3 -/* 80313930 4B FF C1 B1 */ bl J3DFifoLoadPosMtxImm__FPA4_fUl -/* 80313934 7F 83 E3 78 */ mr r3, r28 -/* 80313938 7F A4 EB 78 */ mr r4, r29 -/* 8031393C 7F C5 F3 78 */ mr r5, r30 -/* 80313940 38 C1 00 08 */ addi r6, r1, 8 -/* 80313944 81 9C 00 00 */ lwz r12, 0(r28) -/* 80313948 81 8C 00 24 */ lwz r12, 0x24(r12) -/* 8031394C 7D 89 03 A6 */ mtctr r12 -/* 80313950 4E 80 04 21 */ bctrl -/* 80313954 39 61 00 50 */ addi r11, r1, 0x50 -/* 80313958 48 04 E8 CD */ bl _restgpr_28 -/* 8031395C 80 01 00 54 */ lwz r0, 0x54(r1) -/* 80313960 7C 08 03 A6 */ mtlr r0 -/* 80313964 38 21 00 50 */ addi r1, r1, 0x50 -/* 80313968 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxConcatView_PNCPU__21J3DShapeMtxConcatViewCFiUs.s b/asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxConcatView_PNCPU__21J3DShapeMtxConcatViewCFiUs.s deleted file mode 100644 index 39c73b1543f..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxConcatView_PNCPU__21J3DShapeMtxConcatViewCFiUs.s +++ /dev/null @@ -1,48 +0,0 @@ -lbl_80313A14: -/* 80313A14 94 21 FF C0 */ stwu r1, -0x40(r1) -/* 80313A18 7C 08 02 A6 */ mflr r0 -/* 80313A1C 90 01 00 44 */ stw r0, 0x44(r1) -/* 80313A20 93 E1 00 3C */ stw r31, 0x3c(r1) -/* 80313A24 93 C1 00 38 */ stw r30, 0x38(r1) -/* 80313A28 7C 9E 23 78 */ mr r30, r4 -/* 80313A2C 80 0D 90 40 */ lwz r0, sTexGenBlock__17J3DDifferedTexMtx(r13) -/* 80313A30 28 00 00 00 */ cmplwi r0, 0 -/* 80313A34 41 82 00 34 */ beq lbl_80313A68 -/* 80313A38 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */ -/* 80313A3C 38 83 4A C8 */ addi r4, r3, j3dSys@l /* 0x80434AC8@l */ -/* 80313A40 80 64 00 40 */ lwz r3, 0x40(r4) -/* 80313A44 80 63 00 30 */ lwz r3, 0x30(r3) -/* 80313A48 80 84 01 04 */ lwz r4, 0x104(r4) -/* 80313A4C 54 A0 04 3E */ clrlwi r0, r5, 0x10 -/* 80313A50 1C 00 00 30 */ mulli r0, r0, 0x30 -/* 80313A54 7C 84 02 14 */ add r4, r4, r0 -/* 80313A58 38 A1 00 08 */ addi r5, r1, 8 -/* 80313A5C 48 03 2A 89 */ bl PSMTXConcat -/* 80313A60 38 61 00 08 */ addi r3, r1, 8 -/* 80313A64 4B FF F7 C9 */ bl loadExecute__17J3DDifferedTexMtxFPA4_Cf -lbl_80313A68: -/* 80313A68 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */ -/* 80313A6C 3B E3 4A C8 */ addi r31, r3, j3dSys@l /* 0x80434AC8@l */ -/* 80313A70 80 7F 00 40 */ lwz r3, 0x40(r31) -/* 80313A74 80 63 00 30 */ lwz r3, 0x30(r3) -/* 80313A78 1F DE 00 03 */ mulli r30, r30, 3 -/* 80313A7C 7F C4 F3 78 */ mr r4, r30 -/* 80313A80 4B FF C0 61 */ bl J3DFifoLoadPosMtxImm__FPA4_fUl -/* 80313A84 80 7F 00 40 */ lwz r3, 0x40(r31) -/* 80313A88 80 63 00 30 */ lwz r3, 0x30(r3) -/* 80313A8C 7F C4 F3 78 */ mr r4, r30 -/* 80313A90 4B FF C0 D1 */ bl J3DFifoLoadNrmMtxImm__FPA4_fUl -/* 80313A94 80 0D 90 34 */ lwz r0, sTexMtxLoadType__11J3DShapeMtx(r13) -/* 80313A98 28 00 20 00 */ cmplwi r0, 0x2000 -/* 80313A9C 40 82 00 14 */ bne lbl_80313AB0 -/* 80313AA0 80 7F 00 40 */ lwz r3, 0x40(r31) -/* 80313AA4 80 63 00 30 */ lwz r3, 0x30(r3) -/* 80313AA8 38 9E 00 1E */ addi r4, r30, 0x1e -/* 80313AAC 4B FF C1 8D */ bl J3DFifoLoadNrmMtxToTexMtx__FPA4_fUl -lbl_80313AB0: -/* 80313AB0 83 E1 00 3C */ lwz r31, 0x3c(r1) -/* 80313AB4 83 C1 00 38 */ lwz r30, 0x38(r1) -/* 80313AB8 80 01 00 44 */ lwz r0, 0x44(r1) -/* 80313ABC 7C 08 03 A6 */ mtlr r0 -/* 80313AC0 38 21 00 40 */ addi r1, r1, 0x40 -/* 80313AC4 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxConcatView_PNGP_LOD__21J3DShapeMtxConcatViewCFiUs.s b/asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxConcatView_PNGP_LOD__21J3DShapeMtxConcatViewCFiUs.s deleted file mode 100644 index 7ec4b0758c7..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxConcatView_PNGP_LOD__21J3DShapeMtxConcatViewCFiUs.s +++ /dev/null @@ -1,53 +0,0 @@ -lbl_80313AC8: -/* 80313AC8 94 21 FF B0 */ stwu r1, -0x50(r1) -/* 80313ACC 7C 08 02 A6 */ mflr r0 -/* 80313AD0 90 01 00 54 */ stw r0, 0x54(r1) -/* 80313AD4 39 61 00 50 */ addi r11, r1, 0x50 -/* 80313AD8 48 04 E7 05 */ bl _savegpr_29 -/* 80313ADC 7C 7D 1B 78 */ mr r29, r3 -/* 80313AE0 7C 9E 23 78 */ mr r30, r4 -/* 80313AE4 7C BF 2B 78 */ mr r31, r5 -/* 80313AE8 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */ -/* 80313AEC 38 83 4A C8 */ addi r4, r3, j3dSys@l /* 0x80434AC8@l */ -/* 80313AF0 80 64 00 40 */ lwz r3, 0x40(r4) -/* 80313AF4 80 63 00 30 */ lwz r3, 0x30(r3) -/* 80313AF8 80 84 01 04 */ lwz r4, 0x104(r4) -/* 80313AFC 54 A0 04 3E */ clrlwi r0, r5, 0x10 -/* 80313B00 1C 00 00 30 */ mulli r0, r0, 0x30 -/* 80313B04 7C 84 02 14 */ add r4, r4, r0 -/* 80313B08 38 A1 00 08 */ addi r5, r1, 8 -/* 80313B0C 48 03 29 D9 */ bl PSMTXConcat -/* 80313B10 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */ -/* 80313B14 38 63 4A C8 */ addi r3, r3, j3dSys@l /* 0x80434AC8@l */ -/* 80313B18 80 63 00 38 */ lwz r3, 0x38(r3) -/* 80313B1C 80 63 00 04 */ lwz r3, 4(r3) -/* 80313B20 80 63 00 3C */ lwz r3, 0x3c(r3) -/* 80313B24 57 E0 04 3E */ clrlwi r0, r31, 0x10 -/* 80313B28 1C 00 00 30 */ mulli r0, r0, 0x30 -/* 80313B2C 7C 83 02 14 */ add r4, r3, r0 -/* 80313B30 38 61 00 08 */ addi r3, r1, 8 -/* 80313B34 7C 65 1B 78 */ mr r5, r3 -/* 80313B38 48 03 29 AD */ bl PSMTXConcat -/* 80313B3C 80 0D 90 40 */ lwz r0, sTexGenBlock__17J3DDifferedTexMtx(r13) -/* 80313B40 28 00 00 00 */ cmplwi r0, 0 -/* 80313B44 41 82 00 0C */ beq lbl_80313B50 -/* 80313B48 38 61 00 08 */ addi r3, r1, 8 -/* 80313B4C 4B FF F6 E1 */ bl loadExecute__17J3DDifferedTexMtxFPA4_Cf -lbl_80313B50: -/* 80313B50 38 61 00 08 */ addi r3, r1, 8 -/* 80313B54 1C 9E 00 03 */ mulli r4, r30, 3 -/* 80313B58 4B FF BF 89 */ bl J3DFifoLoadPosMtxImm__FPA4_fUl -/* 80313B5C 7F A3 EB 78 */ mr r3, r29 -/* 80313B60 7F C4 F3 78 */ mr r4, r30 -/* 80313B64 7F E5 FB 78 */ mr r5, r31 -/* 80313B68 38 C1 00 08 */ addi r6, r1, 8 -/* 80313B6C 81 9D 00 00 */ lwz r12, 0(r29) -/* 80313B70 81 8C 00 24 */ lwz r12, 0x24(r12) -/* 80313B74 7D 89 03 A6 */ mtctr r12 -/* 80313B78 4E 80 04 21 */ bctrl -/* 80313B7C 39 61 00 50 */ addi r11, r1, 0x50 -/* 80313B80 48 04 E6 A9 */ bl _restgpr_29 -/* 80313B84 80 01 00 54 */ lwz r0, 0x54(r1) -/* 80313B88 7C 08 03 A6 */ mtlr r0 -/* 80313B8C 38 21 00 50 */ addi r1, r1, 0x50 -/* 80313B90 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxConcatView_PNGP__21J3DShapeMtxConcatViewCFiUs.s b/asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxConcatView_PNGP__21J3DShapeMtxConcatViewCFiUs.s deleted file mode 100644 index 38e4331b9d1..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxConcatView_PNGP__21J3DShapeMtxConcatViewCFiUs.s +++ /dev/null @@ -1,42 +0,0 @@ -lbl_80313828: -/* 80313828 94 21 FF B0 */ stwu r1, -0x50(r1) -/* 8031382C 7C 08 02 A6 */ mflr r0 -/* 80313830 90 01 00 54 */ stw r0, 0x54(r1) -/* 80313834 39 61 00 50 */ addi r11, r1, 0x50 -/* 80313838 48 04 E9 A5 */ bl _savegpr_29 -/* 8031383C 7C 7D 1B 78 */ mr r29, r3 -/* 80313840 7C 9E 23 78 */ mr r30, r4 -/* 80313844 7C BF 2B 78 */ mr r31, r5 -/* 80313848 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */ -/* 8031384C 38 83 4A C8 */ addi r4, r3, j3dSys@l /* 0x80434AC8@l */ -/* 80313850 80 64 00 40 */ lwz r3, 0x40(r4) -/* 80313854 80 63 00 30 */ lwz r3, 0x30(r3) -/* 80313858 80 84 01 04 */ lwz r4, 0x104(r4) -/* 8031385C 54 A0 04 3E */ clrlwi r0, r5, 0x10 -/* 80313860 1C 00 00 30 */ mulli r0, r0, 0x30 -/* 80313864 7C 84 02 14 */ add r4, r4, r0 -/* 80313868 38 A1 00 08 */ addi r5, r1, 8 -/* 8031386C 48 03 2C 79 */ bl PSMTXConcat -/* 80313870 80 0D 90 40 */ lwz r0, sTexGenBlock__17J3DDifferedTexMtx(r13) -/* 80313874 28 00 00 00 */ cmplwi r0, 0 -/* 80313878 41 82 00 0C */ beq lbl_80313884 -/* 8031387C 38 61 00 08 */ addi r3, r1, 8 -/* 80313880 4B FF F9 AD */ bl loadExecute__17J3DDifferedTexMtxFPA4_Cf -lbl_80313884: -/* 80313884 38 61 00 08 */ addi r3, r1, 8 -/* 80313888 1C 9E 00 03 */ mulli r4, r30, 3 -/* 8031388C 4B FF C2 55 */ bl J3DFifoLoadPosMtxImm__FPA4_fUl -/* 80313890 7F A3 EB 78 */ mr r3, r29 -/* 80313894 7F C4 F3 78 */ mr r4, r30 -/* 80313898 7F E5 FB 78 */ mr r5, r31 -/* 8031389C 38 C1 00 08 */ addi r6, r1, 8 -/* 803138A0 81 9D 00 00 */ lwz r12, 0(r29) -/* 803138A4 81 8C 00 24 */ lwz r12, 0x24(r12) -/* 803138A8 7D 89 03 A6 */ mtctr r12 -/* 803138AC 4E 80 04 21 */ bctrl -/* 803138B0 39 61 00 50 */ addi r11, r1, 0x50 -/* 803138B4 48 04 E9 75 */ bl _restgpr_29 -/* 803138B8 80 01 00 54 */ lwz r0, 0x54(r1) -/* 803138BC 7C 08 03 A6 */ mtlr r0 -/* 803138C0 38 21 00 50 */ addi r1, r1, 0x50 -/* 803138C4 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxIndx_NCPU__11J3DShapeMtxCFiUs.s b/asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxIndx_NCPU__11J3DShapeMtxCFiUs.s deleted file mode 100644 index e3a24c9b7e1..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxIndx_NCPU__11J3DShapeMtxCFiUs.s +++ /dev/null @@ -1,20 +0,0 @@ -lbl_80313188: -/* 80313188 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8031318C 7C 08 02 A6 */ mflr r0 -/* 80313190 90 01 00 14 */ stw r0, 0x14(r1) -/* 80313194 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80313198 7C 9F 23 78 */ mr r31, r4 -/* 8031319C 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */ -/* 803131A0 38 63 4A C8 */ addi r3, r3, j3dSys@l /* 0x80434AC8@l */ -/* 803131A4 4B FF CD 1D */ bl loadPosMtxIndx__6J3DSysCFiUs -/* 803131A8 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */ -/* 803131AC 38 63 4A C8 */ addi r3, r3, j3dSys@l /* 0x80434AC8@l */ -/* 803131B0 80 63 00 40 */ lwz r3, 0x40(r3) -/* 803131B4 80 63 00 30 */ lwz r3, 0x30(r3) -/* 803131B8 1C 9F 00 03 */ mulli r4, r31, 3 -/* 803131BC 4B FF C9 A5 */ bl J3DFifoLoadNrmMtxImm__FPA4_fUl -/* 803131C0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 803131C4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 803131C8 7C 08 03 A6 */ mtlr r0 -/* 803131CC 38 21 00 10 */ addi r1, r1, 0x10 -/* 803131D0 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxIndx_PCPU__11J3DShapeMtxCFiUs.s b/asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxIndx_PCPU__11J3DShapeMtxCFiUs.s deleted file mode 100644 index 5dddc88ff8c..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxIndx_PCPU__11J3DShapeMtxCFiUs.s +++ /dev/null @@ -1,25 +0,0 @@ -lbl_80313128: -/* 80313128 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8031312C 7C 08 02 A6 */ mflr r0 -/* 80313130 90 01 00 14 */ stw r0, 0x14(r1) -/* 80313134 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80313138 93 C1 00 08 */ stw r30, 8(r1) -/* 8031313C 7C 9E 23 78 */ mr r30, r4 -/* 80313140 7C BF 2B 78 */ mr r31, r5 -/* 80313144 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */ -/* 80313148 38 63 4A C8 */ addi r3, r3, j3dSys@l /* 0x80434AC8@l */ -/* 8031314C 80 63 00 40 */ lwz r3, 0x40(r3) -/* 80313150 80 63 00 30 */ lwz r3, 0x30(r3) -/* 80313154 1C 9E 00 03 */ mulli r4, r30, 3 -/* 80313158 4B FF C9 89 */ bl J3DFifoLoadPosMtxImm__FPA4_fUl -/* 8031315C 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */ -/* 80313160 38 63 4A C8 */ addi r3, r3, j3dSys@l /* 0x80434AC8@l */ -/* 80313164 7F C4 F3 78 */ mr r4, r30 -/* 80313168 7F E5 FB 78 */ mr r5, r31 -/* 8031316C 4B FF CD 79 */ bl loadNrmMtxIndx__6J3DSysCFiUs -/* 80313170 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80313174 83 C1 00 08 */ lwz r30, 8(r1) -/* 80313178 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8031317C 7C 08 03 A6 */ mtlr r0 -/* 80313180 38 21 00 10 */ addi r1, r1, 0x10 -/* 80313184 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxIndx_PNCPU__11J3DShapeMtxCFiUs.s b/asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxIndx_PNCPU__11J3DShapeMtxCFiUs.s deleted file mode 100644 index b7a6bf538cc..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxIndx_PNCPU__11J3DShapeMtxCFiUs.s +++ /dev/null @@ -1,23 +0,0 @@ -lbl_803131D4: -/* 803131D4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 803131D8 7C 08 02 A6 */ mflr r0 -/* 803131DC 90 01 00 14 */ stw r0, 0x14(r1) -/* 803131E0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 803131E4 93 C1 00 08 */ stw r30, 8(r1) -/* 803131E8 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */ -/* 803131EC 3B E3 4A C8 */ addi r31, r3, j3dSys@l /* 0x80434AC8@l */ -/* 803131F0 80 7F 00 40 */ lwz r3, 0x40(r31) -/* 803131F4 80 63 00 30 */ lwz r3, 0x30(r3) -/* 803131F8 1F C4 00 03 */ mulli r30, r4, 3 -/* 803131FC 7F C4 F3 78 */ mr r4, r30 -/* 80313200 4B FF C8 E1 */ bl J3DFifoLoadPosMtxImm__FPA4_fUl -/* 80313204 80 7F 00 40 */ lwz r3, 0x40(r31) -/* 80313208 80 63 00 30 */ lwz r3, 0x30(r3) -/* 8031320C 7F C4 F3 78 */ mr r4, r30 -/* 80313210 4B FF C9 51 */ bl J3DFifoLoadNrmMtxImm__FPA4_fUl -/* 80313214 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80313218 83 C1 00 08 */ lwz r30, 8(r1) -/* 8031321C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80313220 7C 08 03 A6 */ mtlr r0 -/* 80313224 38 21 00 10 */ addi r1, r1, 0x10 -/* 80313228 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxIndx_PNGP__11J3DShapeMtxCFiUs.s b/asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxIndx_PNGP__11J3DShapeMtxCFiUs.s deleted file mode 100644 index 71d459bd1f6..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxIndx_PNGP__11J3DShapeMtxCFiUs.s +++ /dev/null @@ -1,18 +0,0 @@ -lbl_803130E4: -/* 803130E4 38 00 00 20 */ li r0, 0x20 -/* 803130E8 3C C0 CC 01 */ lis r6, 0xCC01 /* 0xCC008000@ha */ -/* 803130EC 98 06 80 00 */ stb r0, 0x8000(r6) /* 0xCC008000@l */ -/* 803130F0 B0 A6 80 00 */ sth r5, -0x8000(r6) -/* 803130F4 1C 04 00 0C */ mulli r0, r4, 0xc -/* 803130F8 54 00 04 3E */ clrlwi r0, r0, 0x10 -/* 803130FC 60 00 B0 00 */ ori r0, r0, 0xb000 -/* 80313100 B0 06 80 00 */ sth r0, -0x8000(r6) -/* 80313104 38 00 00 28 */ li r0, 0x28 -/* 80313108 98 06 80 00 */ stb r0, -0x8000(r6) -/* 8031310C B0 A6 80 00 */ sth r5, -0x8000(r6) -/* 80313110 1C 64 00 09 */ mulli r3, r4, 9 -/* 80313114 38 03 04 00 */ addi r0, r3, 0x400 -/* 80313118 54 00 04 3E */ clrlwi r0, r0, 0x10 -/* 8031311C 60 00 80 00 */ ori r0, r0, 0x8000 -/* 80313120 B0 06 80 00 */ sth r0, -0x8000(r6) -/* 80313124 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DSys/__ct__6J3DSysFv.s b/asm/JSystem/J3DGraphBase/J3DSys/__ct__6J3DSysFv.s deleted file mode 100644 index fa5060515d2..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DSys/__ct__6J3DSysFv.s +++ /dev/null @@ -1,57 +0,0 @@ -lbl_8030FDE8: -/* 8030FDE8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8030FDEC 7C 08 02 A6 */ mflr r0 -/* 8030FDF0 90 01 00 14 */ stw r0, 0x14(r1) -/* 8030FDF4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8030FDF8 7C 7F 1B 78 */ mr r31, r3 -/* 8030FDFC 48 01 43 99 */ bl makeTexCoordTable__Fv -/* 8030FE00 48 01 45 15 */ bl makeTevSwapTable__Fv -/* 8030FE04 48 01 44 39 */ bl makeAlphaCmpTable__Fv -/* 8030FE08 48 01 44 A1 */ bl makeZModeTable__Fv -/* 8030FE0C 38 00 00 00 */ li r0, 0 -/* 8030FE10 90 1F 00 34 */ stw r0, 0x34(r31) -/* 8030FE14 7F E3 FB 78 */ mr r3, r31 -/* 8030FE18 48 03 66 6D */ bl PSMTXIdentity -/* 8030FE1C 38 00 00 01 */ li r0, 1 -/* 8030FE20 90 1F 00 50 */ stw r0, 0x50(r31) -/* 8030FE24 38 80 00 00 */ li r4, 0 -/* 8030FE28 90 9F 00 54 */ stw r4, 0x54(r31) -/* 8030FE2C 90 9F 00 38 */ stw r4, 0x38(r31) -/* 8030FE30 90 9F 00 44 */ stw r4, 0x44(r31) -/* 8030FE34 7C 83 23 78 */ mr r3, r4 -/* 8030FE38 38 00 00 02 */ li r0, 2 -/* 8030FE3C 7C 09 03 A6 */ mtctr r0 -lbl_8030FE40: -/* 8030FE40 38 03 00 48 */ addi r0, r3, 0x48 -/* 8030FE44 7C 9F 01 2E */ stwx r4, r31, r0 -/* 8030FE48 38 63 00 04 */ addi r3, r3, 4 -/* 8030FE4C 42 00 FF F4 */ bdnz lbl_8030FE40 -/* 8030FE50 38 C0 00 00 */ li r6, 0 -/* 8030FE54 90 DF 00 58 */ stw r6, 0x58(r31) -/* 8030FE58 90 DF 00 3C */ stw r6, 0x3c(r31) -/* 8030FE5C 90 DF 00 40 */ stw r6, 0x40(r31) -/* 8030FE60 90 DF 01 04 */ stw r6, 0x104(r31) -/* 8030FE64 90 DF 01 08 */ stw r6, 0x108(r31) -/* 8030FE68 90 DF 01 0C */ stw r6, 0x10c(r31) -/* 8030FE6C 90 DF 01 10 */ stw r6, 0x110(r31) -/* 8030FE70 90 DF 01 14 */ stw r6, 0x114(r31) -/* 8030FE74 38 60 00 00 */ li r3, 0 -/* 8030FE78 38 A0 00 01 */ li r5, 1 -/* 8030FE7C 3C 80 80 43 */ lis r4, sTexCoordScaleTable__6J3DSys@ha /* 0x80434C2C@ha */ -/* 8030FE80 38 84 4C 2C */ addi r4, r4, sTexCoordScaleTable__6J3DSys@l /* 0x80434C2C@l */ -/* 8030FE84 38 00 00 08 */ li r0, 8 -/* 8030FE88 7C 09 03 A6 */ mtctr r0 -lbl_8030FE8C: -/* 8030FE8C 7C E4 1A 14 */ add r7, r4, r3 -/* 8030FE90 B0 A7 00 00 */ sth r5, 0(r7) -/* 8030FE94 B0 A7 00 02 */ sth r5, 2(r7) -/* 8030FE98 B0 C7 00 04 */ sth r6, 4(r7) -/* 8030FE9C B0 C7 00 06 */ sth r6, 6(r7) -/* 8030FEA0 38 63 00 08 */ addi r3, r3, 8 -/* 8030FEA4 42 00 FF E8 */ bdnz lbl_8030FE8C -/* 8030FEA8 7F E3 FB 78 */ mr r3, r31 -/* 8030FEAC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8030FEB0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8030FEB4 7C 08 03 A6 */ mtlr r0 -/* 8030FEB8 38 21 00 10 */ addi r1, r1, 0x10 -/* 8030FEBC 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DSys/drawInit__6J3DSysFv.s b/asm/JSystem/J3DGraphBase/J3DSys/drawInit__6J3DSysFv.s deleted file mode 100644 index c9f20aad5e6..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DSys/drawInit__6J3DSysFv.s +++ /dev/null @@ -1,435 +0,0 @@ -lbl_803100BC: -/* 803100BC 94 21 FF B0 */ stwu r1, -0x50(r1) -/* 803100C0 7C 08 02 A6 */ mflr r0 -/* 803100C4 90 01 00 54 */ stw r0, 0x54(r1) -/* 803100C8 39 61 00 50 */ addi r11, r1, 0x50 -/* 803100CC 48 05 21 0D */ bl _savegpr_28 -/* 803100D0 7C 7F 1B 78 */ mr r31, r3 -/* 803100D4 48 04 BA 99 */ bl GXInvalidateVtxCache -/* 803100D8 38 60 00 00 */ li r3, 0 -/* 803100DC 48 05 02 11 */ bl GXSetCurrentMtx -/* 803100E0 38 60 00 02 */ li r3, 2 -/* 803100E4 48 04 C8 A1 */ bl GXSetCullMode -/* 803100E8 38 60 00 00 */ li r3, 0 -/* 803100EC 48 04 C8 C1 */ bl GXSetCoPlanar -/* 803100F0 38 60 00 00 */ li r3, 0 -/* 803100F4 48 05 04 DD */ bl GXSetClipMode -/* 803100F8 38 60 00 01 */ li r3, 1 -/* 803100FC 48 04 FB 49 */ bl GXSetColorUpdate -/* 80310100 38 60 00 01 */ li r3, 1 -/* 80310104 48 04 FC D5 */ bl GXSetDither -/* 80310108 38 60 00 01 */ li r3, 1 -/* 8031010C 38 80 00 04 */ li r4, 4 -/* 80310110 38 A0 00 05 */ li r5, 5 -/* 80310114 38 C0 00 05 */ li r6, 5 -/* 80310118 48 04 FA D9 */ bl GXSetBlendMode -/* 8031011C 38 60 00 07 */ li r3, 7 -/* 80310120 38 80 00 00 */ li r4, 0 -/* 80310124 38 A0 00 00 */ li r5, 0 -/* 80310128 38 C0 00 07 */ li r6, 7 -/* 8031012C 38 E0 00 00 */ li r7, 0 -/* 80310130 48 04 F4 F5 */ bl GXSetAlphaCompare -/* 80310134 38 60 00 01 */ li r3, 1 -/* 80310138 38 80 00 03 */ li r4, 3 -/* 8031013C 38 A0 00 01 */ li r5, 1 -/* 80310140 48 04 FB 5D */ bl GXSetZMode -/* 80310144 38 60 00 01 */ li r3, 1 -/* 80310148 48 04 FB 89 */ bl GXSetZCompLoc -/* 8031014C 38 60 00 00 */ li r3, 0 -/* 80310150 38 80 00 09 */ li r4, 9 -/* 80310154 38 A0 00 01 */ li r5, 1 -/* 80310158 38 C0 00 04 */ li r6, 4 -/* 8031015C 38 E0 00 00 */ li r7, 0 -/* 80310160 48 04 B4 65 */ bl GXSetVtxAttrFmt -/* 80310164 38 60 00 00 */ li r3, 0 -/* 80310168 38 80 00 0A */ li r4, 0xa -/* 8031016C 38 A0 00 00 */ li r5, 0 -/* 80310170 38 C0 00 04 */ li r6, 4 -/* 80310174 38 E0 00 00 */ li r7, 0 -/* 80310178 48 04 B4 4D */ bl GXSetVtxAttrFmt -/* 8031017C 38 60 00 00 */ li r3, 0 -/* 80310180 38 80 00 0B */ li r4, 0xb -/* 80310184 38 A0 00 01 */ li r5, 1 -/* 80310188 38 C0 00 05 */ li r6, 5 -/* 8031018C 38 E0 00 00 */ li r7, 0 -/* 80310190 48 04 B4 35 */ bl GXSetVtxAttrFmt -/* 80310194 38 60 00 00 */ li r3, 0 -/* 80310198 38 80 00 0C */ li r4, 0xc -/* 8031019C 38 A0 00 01 */ li r5, 1 -/* 803101A0 38 C0 00 05 */ li r6, 5 -/* 803101A4 38 E0 00 00 */ li r7, 0 -/* 803101A8 48 04 B4 1D */ bl GXSetVtxAttrFmt -/* 803101AC 38 60 00 00 */ li r3, 0 -/* 803101B0 38 80 00 0D */ li r4, 0xd -/* 803101B4 38 A0 00 01 */ li r5, 1 -/* 803101B8 38 C0 00 03 */ li r6, 3 -/* 803101BC 38 E0 00 07 */ li r7, 7 -/* 803101C0 48 04 B4 05 */ bl GXSetVtxAttrFmt -/* 803101C4 38 60 00 00 */ li r3, 0 -/* 803101C8 38 80 00 0E */ li r4, 0xe -/* 803101CC 38 A0 00 01 */ li r5, 1 -/* 803101D0 38 C0 00 03 */ li r6, 3 -/* 803101D4 38 E0 00 07 */ li r7, 7 -/* 803101D8 48 04 B3 ED */ bl GXSetVtxAttrFmt -/* 803101DC 38 60 00 00 */ li r3, 0 -/* 803101E0 38 80 00 0F */ li r4, 0xf -/* 803101E4 38 A0 00 01 */ li r5, 1 -/* 803101E8 38 C0 00 03 */ li r6, 3 -/* 803101EC 38 E0 00 07 */ li r7, 7 -/* 803101F0 48 04 B3 D5 */ bl GXSetVtxAttrFmt -/* 803101F4 38 60 00 00 */ li r3, 0 -/* 803101F8 38 80 00 10 */ li r4, 0x10 -/* 803101FC 38 A0 00 01 */ li r5, 1 -/* 80310200 38 C0 00 03 */ li r6, 3 -/* 80310204 38 E0 00 07 */ li r7, 7 -/* 80310208 48 04 B3 BD */ bl GXSetVtxAttrFmt -/* 8031020C 38 60 00 00 */ li r3, 0 -/* 80310210 38 80 00 11 */ li r4, 0x11 -/* 80310214 38 A0 00 01 */ li r5, 1 -/* 80310218 38 C0 00 03 */ li r6, 3 -/* 8031021C 38 E0 00 07 */ li r7, 7 -/* 80310220 48 04 B3 A5 */ bl GXSetVtxAttrFmt -/* 80310224 38 60 00 00 */ li r3, 0 -/* 80310228 38 80 00 12 */ li r4, 0x12 -/* 8031022C 38 A0 00 01 */ li r5, 1 -/* 80310230 38 C0 00 03 */ li r6, 3 -/* 80310234 38 E0 00 07 */ li r7, 7 -/* 80310238 48 04 B3 8D */ bl GXSetVtxAttrFmt -/* 8031023C 38 60 00 00 */ li r3, 0 -/* 80310240 38 80 00 13 */ li r4, 0x13 -/* 80310244 38 A0 00 01 */ li r5, 1 -/* 80310248 38 C0 00 03 */ li r6, 3 -/* 8031024C 38 E0 00 07 */ li r7, 7 -/* 80310250 48 04 B3 75 */ bl GXSetVtxAttrFmt -/* 80310254 38 60 00 00 */ li r3, 0 -/* 80310258 38 80 00 14 */ li r4, 0x14 -/* 8031025C 38 A0 00 01 */ li r5, 1 -/* 80310260 38 C0 00 03 */ li r6, 3 -/* 80310264 38 E0 00 07 */ li r7, 7 -/* 80310268 48 04 B3 5D */ bl GXSetVtxAttrFmt -/* 8031026C 38 60 00 00 */ li r3, 0 -/* 80310270 48 04 EE 65 */ bl GXSetNumIndStages -/* 80310274 7F E3 FB 78 */ mr r3, r31 -/* 80310278 48 00 07 21 */ bl reinitTexture__6J3DSysFv -/* 8031027C 38 60 00 00 */ li r3, 0 -/* 80310280 38 80 00 FF */ li r4, 0xff -/* 80310284 38 A0 00 FF */ li r5, 0xff -/* 80310288 38 C0 00 FF */ li r6, 0xff -/* 8031028C 48 04 F4 69 */ bl GXSetTevOrder -/* 80310290 38 60 00 01 */ li r3, 1 -/* 80310294 38 80 00 FF */ li r4, 0xff -/* 80310298 38 A0 00 FF */ li r5, 0xff -/* 8031029C 38 C0 00 FF */ li r6, 0xff -/* 803102A0 48 04 F4 55 */ bl GXSetTevOrder -/* 803102A4 38 60 00 02 */ li r3, 2 -/* 803102A8 38 80 00 FF */ li r4, 0xff -/* 803102AC 38 A0 00 FF */ li r5, 0xff -/* 803102B0 38 C0 00 FF */ li r6, 0xff -/* 803102B4 48 04 F4 41 */ bl GXSetTevOrder -/* 803102B8 38 60 00 03 */ li r3, 3 -/* 803102BC 38 80 00 FF */ li r4, 0xff -/* 803102C0 38 A0 00 FF */ li r5, 0xff -/* 803102C4 38 C0 00 FF */ li r6, 0xff -/* 803102C8 48 04 F4 2D */ bl GXSetTevOrder -/* 803102CC 38 60 00 04 */ li r3, 4 -/* 803102D0 38 80 00 FF */ li r4, 0xff -/* 803102D4 38 A0 00 FF */ li r5, 0xff -/* 803102D8 38 C0 00 FF */ li r6, 0xff -/* 803102DC 48 04 F4 19 */ bl GXSetTevOrder -/* 803102E0 38 60 00 05 */ li r3, 5 -/* 803102E4 38 80 00 FF */ li r4, 0xff -/* 803102E8 38 A0 00 FF */ li r5, 0xff -/* 803102EC 38 C0 00 FF */ li r6, 0xff -/* 803102F0 48 04 F4 05 */ bl GXSetTevOrder -/* 803102F4 38 60 00 06 */ li r3, 6 -/* 803102F8 38 80 00 FF */ li r4, 0xff -/* 803102FC 38 A0 00 FF */ li r5, 0xff -/* 80310300 38 C0 00 FF */ li r6, 0xff -/* 80310304 48 04 F3 F1 */ bl GXSetTevOrder -/* 80310308 38 60 00 07 */ li r3, 7 -/* 8031030C 38 80 00 FF */ li r4, 0xff -/* 80310310 38 A0 00 FF */ li r5, 0xff -/* 80310314 38 C0 00 FF */ li r6, 0xff -/* 80310318 48 04 F3 DD */ bl GXSetTevOrder -/* 8031031C 38 60 00 08 */ li r3, 8 -/* 80310320 38 80 00 FF */ li r4, 0xff -/* 80310324 38 A0 00 FF */ li r5, 0xff -/* 80310328 38 C0 00 FF */ li r6, 0xff -/* 8031032C 48 04 F3 C9 */ bl GXSetTevOrder -/* 80310330 38 60 00 09 */ li r3, 9 -/* 80310334 38 80 00 FF */ li r4, 0xff -/* 80310338 38 A0 00 FF */ li r5, 0xff -/* 8031033C 38 C0 00 FF */ li r6, 0xff -/* 80310340 48 04 F3 B5 */ bl GXSetTevOrder -/* 80310344 38 60 00 0A */ li r3, 0xa -/* 80310348 38 80 00 FF */ li r4, 0xff -/* 8031034C 38 A0 00 FF */ li r5, 0xff -/* 80310350 38 C0 00 FF */ li r6, 0xff -/* 80310354 48 04 F3 A1 */ bl GXSetTevOrder -/* 80310358 38 60 00 0B */ li r3, 0xb -/* 8031035C 38 80 00 FF */ li r4, 0xff -/* 80310360 38 A0 00 FF */ li r5, 0xff -/* 80310364 38 C0 00 FF */ li r6, 0xff -/* 80310368 48 04 F3 8D */ bl GXSetTevOrder -/* 8031036C 38 60 00 0C */ li r3, 0xc -/* 80310370 38 80 00 FF */ li r4, 0xff -/* 80310374 38 A0 00 FF */ li r5, 0xff -/* 80310378 38 C0 00 FF */ li r6, 0xff -/* 8031037C 48 04 F3 79 */ bl GXSetTevOrder -/* 80310380 38 60 00 0D */ li r3, 0xd -/* 80310384 38 80 00 FF */ li r4, 0xff -/* 80310388 38 A0 00 FF */ li r5, 0xff -/* 8031038C 38 C0 00 FF */ li r6, 0xff -/* 80310390 48 04 F3 65 */ bl GXSetTevOrder -/* 80310394 38 60 00 0E */ li r3, 0xe -/* 80310398 38 80 00 FF */ li r4, 0xff -/* 8031039C 38 A0 00 FF */ li r5, 0xff -/* 803103A0 38 C0 00 FF */ li r6, 0xff -/* 803103A4 48 04 F3 51 */ bl GXSetTevOrder -/* 803103A8 38 60 00 0F */ li r3, 0xf -/* 803103AC 38 80 00 FF */ li r4, 0xff -/* 803103B0 38 A0 00 FF */ li r5, 0xff -/* 803103B4 38 C0 00 FF */ li r6, 0xff -/* 803103B8 48 04 F3 3D */ bl GXSetTevOrder -/* 803103BC 3B 80 00 00 */ li r28, 0 -/* 803103C0 3B C0 00 00 */ li r30, 0 -/* 803103C4 3C 80 80 3D */ lis r4, j3dIdentityMtx@ha /* 0x803CD8B0@ha */ -/* 803103C8 3B A4 D8 B0 */ addi r29, r4, j3dIdentityMtx@l /* 0x803CD8B0@l */ -lbl_803103CC: -/* 803103CC 7F A3 EB 78 */ mr r3, r29 -/* 803103D0 38 9E 00 1E */ addi r4, r30, 0x1e -/* 803103D4 38 A0 00 00 */ li r5, 0 -/* 803103D8 48 04 FF 49 */ bl GXLoadTexMtxImm -/* 803103DC 3B 9C 00 01 */ addi r28, r28, 1 -/* 803103E0 28 1C 00 0A */ cmplwi r28, 0xa -/* 803103E4 3B DE 00 03 */ addi r30, r30, 3 -/* 803103E8 41 80 FF E4 */ blt lbl_803103CC -/* 803103EC 38 C1 00 20 */ addi r6, r1, 0x20 -/* 803103F0 3C 80 80 3A */ lis r4, lit_737@ha /* 0x803A1E18@ha */ -/* 803103F4 38 84 1E 18 */ addi r4, r4, lit_737@l /* 0x803A1E18@l */ -/* 803103F8 38 A4 FF FC */ addi r5, r4, -4 -/* 803103FC 38 00 00 03 */ li r0, 3 -/* 80310400 7C 09 03 A6 */ mtctr r0 -lbl_80310404: -/* 80310404 80 85 00 04 */ lwz r4, 4(r5) -/* 80310408 84 05 00 08 */ lwzu r0, 8(r5) -/* 8031040C 90 86 00 04 */ stw r4, 4(r6) -/* 80310410 94 06 00 08 */ stwu r0, 8(r6) -/* 80310414 42 00 FF F0 */ bdnz lbl_80310404 -/* 80310418 3B 80 00 00 */ li r28, 0 -/* 8031041C 48 00 00 1C */ b lbl_80310438 -lbl_80310420: -/* 80310420 57 84 06 3E */ clrlwi r4, r28, 0x18 -/* 80310424 38 64 00 01 */ addi r3, r4, 1 -/* 80310428 38 81 00 24 */ addi r4, r1, 0x24 -/* 8031042C 38 A0 00 01 */ li r5, 1 -/* 80310430 48 04 E8 FD */ bl GXSetIndTexMtx -/* 80310434 3B 9C 00 01 */ addi r28, r28, 1 -lbl_80310438: -/* 80310438 57 80 06 3E */ clrlwi r0, r28, 0x18 -/* 8031043C 28 00 00 03 */ cmplwi r0, 3 -/* 80310440 41 80 FF E0 */ blt lbl_80310420 -/* 80310444 80 02 C9 C0 */ lwz r0, j3dDefaultColInfo(r2) -/* 80310448 90 01 00 18 */ stw r0, 0x18(r1) -/* 8031044C 38 60 00 04 */ li r3, 4 -/* 80310450 38 81 00 18 */ addi r4, r1, 0x18 -/* 80310454 48 04 D5 F5 */ bl GXSetChanMatColor -/* 80310458 80 02 C9 C0 */ lwz r0, j3dDefaultColInfo(r2) -/* 8031045C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80310460 38 60 00 05 */ li r3, 5 -/* 80310464 38 81 00 14 */ addi r4, r1, 0x14 -/* 80310468 48 04 D5 E1 */ bl GXSetChanMatColor -/* 8031046C 88 62 C9 C8 */ lbz r3, data_804563C8(r2) -/* 80310470 48 04 D6 C1 */ bl GXSetNumChans -/* 80310474 38 60 00 01 */ li r3, 1 -/* 80310478 48 04 B9 85 */ bl GXSetNumTexGens -/* 8031047C 38 60 00 01 */ li r3, 1 -/* 80310480 48 04 F4 11 */ bl GXSetNumTevStages -/* 80310484 38 60 00 04 */ li r3, 4 -/* 80310488 38 80 00 00 */ li r4, 0 -/* 8031048C 38 A0 00 00 */ li r5, 0 -/* 80310490 38 C0 00 00 */ li r6, 0 -/* 80310494 38 E0 00 00 */ li r7, 0 -/* 80310498 39 00 00 02 */ li r8, 2 -/* 8031049C 39 20 00 02 */ li r9, 2 -/* 803104A0 48 04 D6 CD */ bl GXSetChanCtrl -/* 803104A4 38 60 00 05 */ li r3, 5 -/* 803104A8 38 80 00 00 */ li r4, 0 -/* 803104AC 38 A0 00 00 */ li r5, 0 -/* 803104B0 38 C0 00 00 */ li r6, 0 -/* 803104B4 38 E0 00 00 */ li r7, 0 -/* 803104B8 39 00 00 02 */ li r8, 2 -/* 803104BC 39 20 00 02 */ li r9, 2 -/* 803104C0 48 04 D6 AD */ bl GXSetChanCtrl -/* 803104C4 3B 80 00 00 */ li r28, 0 -/* 803104C8 3C 80 80 3A */ lis r4, j3dDefaultTexCoordInfo@ha /* 0x803A1EFC@ha */ -/* 803104CC 3B A4 1E FC */ addi r29, r4, j3dDefaultTexCoordInfo@l /* 0x803A1EFC@l */ -/* 803104D0 48 00 00 2C */ b lbl_803104FC -lbl_803104D4: -/* 803104D4 57 83 06 3E */ clrlwi r3, r28, 0x18 -/* 803104D8 57 80 15 BA */ rlwinm r0, r28, 2, 0x16, 0x1d -/* 803104DC 7C DD 02 14 */ add r6, r29, r0 -/* 803104E0 88 86 00 00 */ lbz r4, 0(r6) -/* 803104E4 88 A6 00 01 */ lbz r5, 1(r6) -/* 803104E8 88 C6 00 02 */ lbz r6, 2(r6) -/* 803104EC 38 E0 00 00 */ li r7, 0 -/* 803104F0 39 00 00 7D */ li r8, 0x7d -/* 803104F4 48 04 B6 89 */ bl GXSetTexCoordGen2 -/* 803104F8 3B 9C 00 01 */ addi r28, r28, 1 -lbl_803104FC: -/* 803104FC 57 80 06 3E */ clrlwi r0, r28, 0x18 -/* 80310500 28 00 00 08 */ cmplwi r0, 8 -/* 80310504 41 80 FF D0 */ blt lbl_803104D4 -/* 80310508 3B 80 00 00 */ li r28, 0 -/* 8031050C 48 00 00 18 */ b lbl_80310524 -lbl_80310510: -/* 80310510 57 83 06 3E */ clrlwi r3, r28, 0x18 -/* 80310514 38 80 00 00 */ li r4, 0 -/* 80310518 38 A0 00 00 */ li r5, 0 -/* 8031051C 48 04 E9 89 */ bl GXSetIndTexCoordScale -/* 80310520 3B 9C 00 01 */ addi r28, r28, 1 -lbl_80310524: -/* 80310524 57 80 06 3E */ clrlwi r0, r28, 0x18 -/* 80310528 28 00 00 04 */ cmplwi r0, 4 -/* 8031052C 41 80 FF E4 */ blt lbl_80310510 -/* 80310530 3B 80 00 00 */ li r28, 0 -/* 80310534 83 A2 C9 E0 */ lwz r29, j3dDefaultTevKColor(r2) -/* 80310538 48 00 00 18 */ b lbl_80310550 -lbl_8031053C: -/* 8031053C 93 A1 00 10 */ stw r29, 0x10(r1) -/* 80310540 57 83 06 3E */ clrlwi r3, r28, 0x18 -/* 80310544 38 81 00 10 */ addi r4, r1, 0x10 -/* 80310548 48 04 EE F9 */ bl GXSetTevKColor -/* 8031054C 3B 9C 00 01 */ addi r28, r28, 1 -lbl_80310550: -/* 80310550 57 80 06 3E */ clrlwi r0, r28, 0x18 -/* 80310554 28 00 00 04 */ cmplwi r0, 4 -/* 80310558 41 80 FF E4 */ blt lbl_8031053C -/* 8031055C 3B 80 00 00 */ li r28, 0 -/* 80310560 83 C2 C9 D4 */ lwz r30, j3dDefaultTevColor(r2) -/* 80310564 83 A2 C9 D8 */ lwz r29, data_804563D8(r2) -/* 80310568 48 00 00 1C */ b lbl_80310584 -lbl_8031056C: -/* 8031056C 93 C1 00 1C */ stw r30, 0x1c(r1) -/* 80310570 93 A1 00 20 */ stw r29, 0x20(r1) -/* 80310574 57 83 06 3E */ clrlwi r3, r28, 0x18 -/* 80310578 38 81 00 1C */ addi r4, r1, 0x1c -/* 8031057C 48 04 EE 61 */ bl GXSetTevColorS10 -/* 80310580 3B 9C 00 01 */ addi r28, r28, 1 -lbl_80310584: -/* 80310584 57 80 06 3E */ clrlwi r0, r28, 0x18 -/* 80310588 28 00 00 04 */ cmplwi r0, 4 -/* 8031058C 41 80 FF E0 */ blt lbl_8031056C -/* 80310590 3B 80 00 00 */ li r28, 0 -/* 80310594 48 00 00 74 */ b lbl_80310608 -lbl_80310598: -/* 80310598 57 9D 06 3E */ clrlwi r29, r28, 0x18 -/* 8031059C 7F A3 EB 78 */ mr r3, r29 -/* 803105A0 38 80 00 0A */ li r4, 0xa -/* 803105A4 38 A0 00 0F */ li r5, 0xf -/* 803105A8 38 C0 00 0F */ li r6, 0xf -/* 803105AC 38 E0 00 0F */ li r7, 0xf -/* 803105B0 48 04 EC 75 */ bl GXSetTevColorIn -/* 803105B4 7F A3 EB 78 */ mr r3, r29 -/* 803105B8 38 80 00 00 */ li r4, 0 -/* 803105BC 38 A0 00 00 */ li r5, 0 -/* 803105C0 38 C0 00 00 */ li r6, 0 -/* 803105C4 38 E0 00 01 */ li r7, 1 -/* 803105C8 39 00 00 00 */ li r8, 0 -/* 803105CC 48 04 EC E1 */ bl GXSetTevColorOp -/* 803105D0 7F A3 EB 78 */ mr r3, r29 -/* 803105D4 38 80 00 05 */ li r4, 5 -/* 803105D8 38 A0 00 07 */ li r5, 7 -/* 803105DC 38 C0 00 07 */ li r6, 7 -/* 803105E0 38 E0 00 07 */ li r7, 7 -/* 803105E4 48 04 EC 85 */ bl GXSetTevAlphaIn -/* 803105E8 7F A3 EB 78 */ mr r3, r29 -/* 803105EC 38 80 00 00 */ li r4, 0 -/* 803105F0 38 A0 00 00 */ li r5, 0 -/* 803105F4 38 C0 00 00 */ li r6, 0 -/* 803105F8 38 E0 00 01 */ li r7, 1 -/* 803105FC 39 00 00 00 */ li r8, 0 -/* 80310600 48 04 ED 15 */ bl GXSetTevAlphaOp -/* 80310604 3B 9C 00 01 */ addi r28, r28, 1 -lbl_80310608: -/* 80310608 57 80 06 3E */ clrlwi r0, r28, 0x18 -/* 8031060C 28 00 00 10 */ cmplwi r0, 0x10 -/* 80310610 41 80 FF 88 */ blt lbl_80310598 -/* 80310614 3B 80 00 00 */ li r28, 0 -/* 80310618 48 00 00 18 */ b lbl_80310630 -lbl_8031061C: -/* 8031061C 57 83 06 3E */ clrlwi r3, r28, 0x18 -/* 80310620 38 80 00 00 */ li r4, 0 -/* 80310624 38 A0 00 00 */ li r5, 0 -/* 80310628 48 04 EF 35 */ bl GXSetTevSwapMode -/* 8031062C 3B 9C 00 01 */ addi r28, r28, 1 -lbl_80310630: -/* 80310630 57 80 06 3E */ clrlwi r0, r28, 0x18 -/* 80310634 28 00 00 10 */ cmplwi r0, 0x10 -/* 80310638 41 80 FF E4 */ blt lbl_8031061C -/* 8031063C 38 60 00 00 */ li r3, 0 -/* 80310640 38 80 00 00 */ li r4, 0 -/* 80310644 38 A0 00 01 */ li r5, 1 -/* 80310648 38 C0 00 02 */ li r6, 2 -/* 8031064C 38 E0 00 03 */ li r7, 3 -/* 80310650 48 04 EF 55 */ bl GXSetTevSwapModeTable -/* 80310654 38 60 00 01 */ li r3, 1 -/* 80310658 38 80 00 00 */ li r4, 0 -/* 8031065C 38 A0 00 00 */ li r5, 0 -/* 80310660 38 C0 00 00 */ li r6, 0 -/* 80310664 38 E0 00 03 */ li r7, 3 -/* 80310668 48 04 EF 3D */ bl GXSetTevSwapModeTable -/* 8031066C 38 60 00 02 */ li r3, 2 -/* 80310670 38 80 00 01 */ li r4, 1 -/* 80310674 38 A0 00 01 */ li r5, 1 -/* 80310678 38 C0 00 01 */ li r6, 1 -/* 8031067C 38 E0 00 03 */ li r7, 3 -/* 80310680 48 04 EF 25 */ bl GXSetTevSwapModeTable -/* 80310684 38 60 00 03 */ li r3, 3 -/* 80310688 38 80 00 02 */ li r4, 2 -/* 8031068C 38 A0 00 02 */ li r5, 2 -/* 80310690 38 C0 00 02 */ li r6, 2 -/* 80310694 38 E0 00 03 */ li r7, 3 -/* 80310698 48 04 EF 0D */ bl GXSetTevSwapModeTable -/* 8031069C 3B 80 00 00 */ li r28, 0 -/* 803106A0 7F 9D E3 78 */ mr r29, r28 -/* 803106A4 7F 9E E3 78 */ mr r30, r28 -/* 803106A8 48 00 00 34 */ b lbl_803106DC -lbl_803106AC: -/* 803106AC 93 A1 00 08 */ stw r29, 8(r1) -/* 803106B0 93 C1 00 0C */ stw r30, 0xc(r1) -/* 803106B4 57 83 06 3E */ clrlwi r3, r28, 0x18 -/* 803106B8 38 80 00 00 */ li r4, 0 -/* 803106BC 38 A0 00 00 */ li r5, 0 -/* 803106C0 38 C0 00 00 */ li r6, 0 -/* 803106C4 38 E0 00 00 */ li r7, 0 -/* 803106C8 39 00 00 00 */ li r8, 0 -/* 803106CC 39 20 00 00 */ li r9, 0 -/* 803106D0 39 40 00 00 */ li r10, 0 -/* 803106D4 48 04 E5 ED */ bl GXSetTevIndirect -/* 803106D8 3B 9C 00 01 */ addi r28, r28, 1 -lbl_803106DC: -/* 803106DC 57 80 06 3E */ clrlwi r0, r28, 0x18 -/* 803106E0 28 00 00 10 */ cmplwi r0, 0x10 -/* 803106E4 41 80 FF C8 */ blt lbl_803106AC -/* 803106E8 38 60 00 04 */ li r3, 4 -/* 803106EC 64 63 00 04 */ oris r3, r3, 4 -/* 803106F0 7C 72 E3 A6 */ mtspr 0x392, r3 -/* 803106F4 38 60 00 05 */ li r3, 5 -/* 803106F8 64 63 00 05 */ oris r3, r3, 5 -/* 803106FC 7C 73 E3 A6 */ mtspr 0x393, r3 -/* 80310700 38 60 00 06 */ li r3, 6 -/* 80310704 64 63 00 06 */ oris r3, r3, 6 -/* 80310708 7C 74 E3 A6 */ mtspr 0x394, r3 -/* 8031070C 38 60 00 07 */ li r3, 7 -/* 80310710 64 63 00 07 */ oris r3, r3, 7 -/* 80310714 7C 75 E3 A6 */ mtspr 0x395, r3 -/* 80310718 7F E3 FB 78 */ mr r3, r31 -/* 8031071C 38 80 00 00 */ li r4, 0 -/* 80310720 4B FF F7 ED */ bl setTexCacheRegion__6J3DSysF15_GXTexCacheSize -/* 80310724 39 61 00 50 */ addi r11, r1, 0x50 -/* 80310728 48 05 1A FD */ bl _restgpr_28 -/* 8031072C 80 01 00 54 */ lwz r0, 0x54(r1) -/* 80310730 7C 08 03 A6 */ mtlr r0 -/* 80310734 38 21 00 50 */ addi r1, r1, 0x50 -/* 80310738 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DSys/loadNrmMtxIndx__6J3DSysCFiUs.s b/asm/JSystem/J3DGraphBase/J3DSys/loadNrmMtxIndx__6J3DSysCFiUs.s deleted file mode 100644 index dffe1369015..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DSys/loadNrmMtxIndx__6J3DSysCFiUs.s +++ /dev/null @@ -1,11 +0,0 @@ -lbl_8030FEE4: -/* 8030FEE4 38 00 00 28 */ li r0, 0x28 -/* 8030FEE8 3C C0 CC 01 */ lis r6, 0xCC01 /* 0xCC008000@ha */ -/* 8030FEEC 98 06 80 00 */ stb r0, 0x8000(r6) /* 0xCC008000@l */ -/* 8030FEF0 B0 A6 80 00 */ sth r5, -0x8000(r6) -/* 8030FEF4 1C 64 00 09 */ mulli r3, r4, 9 -/* 8030FEF8 38 03 04 00 */ addi r0, r3, 0x400 -/* 8030FEFC 54 00 04 3E */ clrlwi r0, r0, 0x10 -/* 8030FF00 60 00 80 00 */ ori r0, r0, 0x8000 -/* 8030FF04 B0 06 80 00 */ sth r0, -0x8000(r6) -/* 8030FF08 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DSys/loadPosMtxIndx__6J3DSysCFiUs.s b/asm/JSystem/J3DGraphBase/J3DSys/loadPosMtxIndx__6J3DSysCFiUs.s deleted file mode 100644 index e04061114ff..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DSys/loadPosMtxIndx__6J3DSysCFiUs.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_8030FEC0: -/* 8030FEC0 38 00 00 20 */ li r0, 0x20 -/* 8030FEC4 3C 60 CC 01 */ lis r3, 0xCC01 /* 0xCC008000@ha */ -/* 8030FEC8 98 03 80 00 */ stb r0, 0x8000(r3) /* 0xCC008000@l */ -/* 8030FECC B0 A3 80 00 */ sth r5, -0x8000(r3) -/* 8030FED0 1C 04 00 0C */ mulli r0, r4, 0xc -/* 8030FED4 54 00 04 3E */ clrlwi r0, r0, 0x10 -/* 8030FED8 60 00 B0 00 */ ori r0, r0, 0xb000 -/* 8030FEDC B0 03 80 00 */ sth r0, -0x8000(r3) -/* 8030FEE0 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DSys/setTexCacheRegion__6J3DSysF15_GXTexCacheSize.s b/asm/JSystem/J3DGraphBase/J3DSys/setTexCacheRegion__6J3DSysF15_GXTexCacheSize.s deleted file mode 100644 index ca75ed1c939..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DSys/setTexCacheRegion__6J3DSysF15_GXTexCacheSize.s +++ /dev/null @@ -1,117 +0,0 @@ -lbl_8030FF0C: -/* 8030FF0C 94 21 FF B0 */ stwu r1, -0x50(r1) -/* 8030FF10 7C 08 02 A6 */ mflr r0 -/* 8030FF14 90 01 00 54 */ stw r0, 0x54(r1) -/* 8030FF18 39 61 00 50 */ addi r11, r1, 0x50 -/* 8030FF1C 48 05 22 B1 */ bl _savegpr_25 -/* 8030FF20 7C 7C 1B 78 */ mr r28, r3 -/* 8030FF24 7C 9D 23 78 */ mr r29, r4 -/* 8030FF28 3C 60 80 3A */ lis r3, lit_695@ha /* 0x803A1DF8@ha */ -/* 8030FF2C 38 83 1D F8 */ addi r4, r3, lit_695@l /* 0x803A1DF8@l */ -/* 8030FF30 80 64 00 00 */ lwz r3, 0(r4) -/* 8030FF34 80 04 00 04 */ lwz r0, 4(r4) -/* 8030FF38 90 61 00 18 */ stw r3, 0x18(r1) -/* 8030FF3C 90 01 00 1C */ stw r0, 0x1c(r1) -/* 8030FF40 80 64 00 08 */ lwz r3, 8(r4) -/* 8030FF44 80 04 00 0C */ lwz r0, 0xc(r4) -/* 8030FF48 90 61 00 20 */ stw r3, 0x20(r1) -/* 8030FF4C 90 01 00 24 */ stw r0, 0x24(r1) -/* 8030FF50 3C 60 80 3A */ lis r3, lit_696@ha /* 0x803A1E08@ha */ -/* 8030FF54 38 83 1E 08 */ addi r4, r3, lit_696@l /* 0x803A1E08@l */ -/* 8030FF58 80 64 00 00 */ lwz r3, 0(r4) -/* 8030FF5C 80 04 00 04 */ lwz r0, 4(r4) -/* 8030FF60 90 61 00 08 */ stw r3, 8(r1) -/* 8030FF64 90 01 00 0C */ stw r0, 0xc(r1) -/* 8030FF68 80 64 00 08 */ lwz r3, 8(r4) -/* 8030FF6C 80 04 00 0C */ lwz r0, 0xc(r4) -/* 8030FF70 90 61 00 10 */ stw r3, 0x10(r1) -/* 8030FF74 90 01 00 14 */ stw r0, 0x14(r1) -/* 8030FF78 57 BF 10 3A */ slwi r31, r29, 2 -/* 8030FF7C 38 61 00 08 */ addi r3, r1, 8 -/* 8030FF80 7F C3 F8 2E */ lwzx r30, r3, r31 -/* 8030FF84 93 DC 00 60 */ stw r30, 0x60(r28) -/* 8030FF88 80 1C 00 34 */ lwz r0, 0x34(r28) -/* 8030FF8C 54 00 00 01 */ rlwinm. r0, r0, 0, 0, 0 -/* 8030FF90 41 82 00 B4 */ beq lbl_80310044 -/* 8030FF94 3B 20 00 00 */ li r25, 0 -/* 8030FF98 3B 60 00 00 */ li r27, 0 -/* 8030FF9C 3B 41 00 18 */ addi r26, r1, 0x18 -/* 8030FFA0 48 00 00 98 */ b lbl_80310038 -lbl_8030FFA4: -/* 8030FFA4 57 20 07 FF */ clrlwi. r0, r25, 0x1f -/* 8030FFA8 41 82 00 48 */ beq lbl_8030FFF0 -/* 8030FFAC 7C 1A F8 2E */ lwzx r0, r26, r31 -/* 8030FFB0 7C F9 01 D6 */ mullw r7, r25, r0 -/* 8030FFB4 38 7B 00 64 */ addi r3, r27, 0x64 -/* 8030FFB8 7C 7C 1A 14 */ add r3, r28, r3 -/* 8030FFBC 38 80 00 00 */ li r4, 0 -/* 8030FFC0 3C A7 00 08 */ addis r5, r7, 8 -/* 8030FFC4 7F A6 EB 78 */ mr r6, r29 -/* 8030FFC8 7F A8 EB 78 */ mr r8, r29 -/* 8030FFCC 48 04 E5 6D */ bl GXInitTexCacheRegion -/* 8030FFD0 7C 1A F8 2E */ lwzx r0, r26, r31 -/* 8030FFD4 7C D9 01 D6 */ mullw r6, r25, r0 -/* 8030FFD8 7F 23 CB 78 */ mr r3, r25 -/* 8030FFDC 3C 86 00 08 */ addis r4, r6, 8 -/* 8030FFE0 7F A5 EB 78 */ mr r5, r29 -/* 8030FFE4 7F A7 EB 78 */ mr r7, r29 -/* 8030FFE8 4B FF FD 81 */ bl J3DFifoLoadTexCached__F11_GXTexMapIDUl15_GXTexCacheSizeUl15_GXTexCacheSize -/* 8030FFEC 48 00 00 44 */ b lbl_80310030 -lbl_8030FFF0: -/* 8030FFF0 7C 1A F8 2E */ lwzx r0, r26, r31 -/* 8030FFF4 7C B9 01 D6 */ mullw r5, r25, r0 -/* 8030FFF8 38 7B 00 64 */ addi r3, r27, 0x64 -/* 8030FFFC 7C 7C 1A 14 */ add r3, r28, r3 -/* 80310000 38 80 00 00 */ li r4, 0 -/* 80310004 7F A6 EB 78 */ mr r6, r29 -/* 80310008 3C E5 00 08 */ addis r7, r5, 8 -/* 8031000C 7F A8 EB 78 */ mr r8, r29 -/* 80310010 48 04 E5 29 */ bl GXInitTexCacheRegion -/* 80310014 7C 1A F8 2E */ lwzx r0, r26, r31 -/* 80310018 7C 99 01 D6 */ mullw r4, r25, r0 -/* 8031001C 7F 23 CB 78 */ mr r3, r25 -/* 80310020 7F A5 EB 78 */ mr r5, r29 -/* 80310024 3C C4 00 08 */ addis r6, r4, 8 -/* 80310028 7F A7 EB 78 */ mr r7, r29 -/* 8031002C 4B FF FD 3D */ bl J3DFifoLoadTexCached__F11_GXTexMapIDUl15_GXTexCacheSizeUl15_GXTexCacheSize -lbl_80310030: -/* 80310030 3B 39 00 01 */ addi r25, r25, 1 -/* 80310034 3B 7B 00 10 */ addi r27, r27, 0x10 -lbl_80310038: -/* 80310038 7C 19 F0 40 */ cmplw r25, r30 -/* 8031003C 41 80 FF 68 */ blt lbl_8030FFA4 -/* 80310040 48 00 00 64 */ b lbl_803100A4 -lbl_80310044: -/* 80310044 3B 20 00 00 */ li r25, 0 -/* 80310048 3B 60 00 00 */ li r27, 0 -/* 8031004C 3B 41 00 18 */ addi r26, r1, 0x18 -/* 80310050 48 00 00 4C */ b lbl_8031009C -lbl_80310054: -/* 80310054 7C 1A F8 2E */ lwzx r0, r26, r31 -/* 80310058 7C B9 01 D6 */ mullw r5, r25, r0 -/* 8031005C 38 7B 00 64 */ addi r3, r27, 0x64 -/* 80310060 7C 7C 1A 14 */ add r3, r28, r3 -/* 80310064 38 80 00 00 */ li r4, 0 -/* 80310068 7F A6 EB 78 */ mr r6, r29 -/* 8031006C 3C E5 00 08 */ addis r7, r5, 8 -/* 80310070 7F A8 EB 78 */ mr r8, r29 -/* 80310074 48 04 E4 C5 */ bl GXInitTexCacheRegion -/* 80310078 7C 1A F8 2E */ lwzx r0, r26, r31 -/* 8031007C 7C 99 01 D6 */ mullw r4, r25, r0 -/* 80310080 7F 23 CB 78 */ mr r3, r25 -/* 80310084 7F A5 EB 78 */ mr r5, r29 -/* 80310088 3C C4 00 08 */ addis r6, r4, 8 -/* 8031008C 7F A7 EB 78 */ mr r7, r29 -/* 80310090 4B FF FC D9 */ bl J3DFifoLoadTexCached__F11_GXTexMapIDUl15_GXTexCacheSizeUl15_GXTexCacheSize -/* 80310094 3B 39 00 01 */ addi r25, r25, 1 -/* 80310098 3B 7B 00 10 */ addi r27, r27, 0x10 -lbl_8031009C: -/* 8031009C 7C 19 F0 40 */ cmplw r25, r30 -/* 803100A0 41 80 FF B4 */ blt lbl_80310054 -lbl_803100A4: -/* 803100A4 39 61 00 50 */ addi r11, r1, 0x50 -/* 803100A8 48 05 21 71 */ bl _restgpr_25 -/* 803100AC 80 01 00 54 */ lwz r0, 0x54(r1) -/* 803100B0 7C 08 03 A6 */ mtlr r0 -/* 803100B4 38 21 00 50 */ addi r1, r1, 0x50 -/* 803100B8 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DTevs/patchTexNo_PtrToIdx__FUlRCUs.s b/asm/JSystem/J3DGraphBase/J3DTevs/patchTexNo_PtrToIdx__FUlRCUs.s deleted file mode 100644 index d126658902f..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DTevs/patchTexNo_PtrToIdx__FUlRCUs.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_8032413C: -/* 8032413C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80324140 7C 08 02 A6 */ mflr r0 -/* 80324144 90 01 00 14 */ stw r0, 0x14(r1) -/* 80324148 A0 84 00 00 */ lhz r4, 0(r4) -/* 8032414C 4B FE A5 C1 */ bl J3DGDSetTexImgPtrRaw__F11_GXTexMapIDUl -/* 80324150 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80324154 7C 08 03 A6 */ mtlr r0 -/* 80324158 38 21 00 10 */ addi r1, r1, 0x10 -/* 8032415C 4E 80 00 20 */ blr diff --git a/asm/JSystem/J3DGraphBase/J3DVertex/copyLocalVtxArray__15J3DVertexBufferFUl.s b/asm/JSystem/J3DGraphBase/J3DVertex/copyLocalVtxArray__15J3DVertexBufferFUl.s deleted file mode 100644 index f9aea236382..00000000000 --- a/asm/JSystem/J3DGraphBase/J3DVertex/copyLocalVtxArray__15J3DVertexBufferFUl.s +++ /dev/null @@ -1,122 +0,0 @@ -lbl_803112D0: -/* 803112D0 94 21 FF C0 */ stwu r1, -0x40(r1) -/* 803112D4 7C 08 02 A6 */ mflr r0 -/* 803112D8 90 01 00 44 */ stw r0, 0x44(r1) -/* 803112DC 39 61 00 40 */ addi r11, r1, 0x40 -/* 803112E0 48 05 0E E9 */ bl _savegpr_24 -/* 803112E4 7C 7E 1B 78 */ mr r30, r3 -/* 803112E8 7C 9F 23 78 */ mr r31, r4 -/* 803112EC 38 60 00 00 */ li r3, 0 -/* 803112F0 38 81 00 10 */ addi r4, r1, 0x10 -/* 803112F4 38 00 00 02 */ li r0, 2 -/* 803112F8 7C 09 03 A6 */ mtctr r0 -lbl_803112FC: -/* 803112FC 38 03 00 04 */ addi r0, r3, 4 -/* 80311300 7C 1E 00 2E */ lwzx r0, r30, r0 -/* 80311304 7C 04 19 2E */ stwx r0, r4, r3 -/* 80311308 38 63 00 04 */ addi r3, r3, 4 -/* 8031130C 42 00 FF F0 */ bdnz lbl_803112FC -/* 80311310 7F FB F8 F8 */ nor r27, r31, r31 -/* 80311314 57 60 07 BD */ rlwinm. r0, r27, 0, 0x1e, 0x1e -/* 80311318 41 82 00 68 */ beq lbl_80311380 -/* 8031131C 7F C3 F3 78 */ mr r3, r30 -/* 80311320 7F E4 FB 78 */ mr r4, r31 -/* 80311324 4B FF FD 6D */ bl copyLocalVtxPosArray__15J3DVertexBufferFUl -/* 80311328 7C 7A 1B 79 */ or. r26, r3, r3 -/* 8031132C 41 82 00 64 */ beq lbl_80311390 -/* 80311330 3B 20 00 00 */ li r25, 0 -/* 80311334 3B E0 00 00 */ li r31, 0 -/* 80311338 3B 81 00 10 */ addi r28, r1, 0x10 -lbl_8031133C: -/* 8031133C 7F BC F8 2E */ lwzx r29, r28, r31 -/* 80311340 3B 7F 00 04 */ addi r27, r31, 4 -/* 80311344 7C 7E D8 2E */ lwzx r3, r30, r27 -/* 80311348 7C 1D 18 40 */ cmplw r29, r3 -/* 8031134C 41 82 00 1C */ beq lbl_80311368 -/* 80311350 80 9E 00 00 */ lwz r4, 0(r30) -/* 80311354 80 04 00 18 */ lwz r0, 0x18(r4) -/* 80311358 7C 03 00 40 */ cmplw r3, r0 -/* 8031135C 41 82 00 08 */ beq lbl_80311364 -/* 80311360 4B FB D9 DD */ bl __dl__FPv -lbl_80311364: -/* 80311364 7F BE D9 2E */ stwx r29, r30, r27 -lbl_80311368: -/* 80311368 3B 39 00 01 */ addi r25, r25, 1 -/* 8031136C 2C 19 00 02 */ cmpwi r25, 2 -/* 80311370 3B FF 00 04 */ addi r31, r31, 4 -/* 80311374 41 80 FF C8 */ blt lbl_8031133C -/* 80311378 7F 43 D3 78 */ mr r3, r26 -/* 8031137C 48 00 00 E4 */ b lbl_80311460 -lbl_80311380: -/* 80311380 80 7E 00 00 */ lwz r3, 0(r30) -/* 80311384 80 03 00 18 */ lwz r0, 0x18(r3) -/* 80311388 90 1E 00 08 */ stw r0, 8(r30) -/* 8031138C 90 1E 00 04 */ stw r0, 4(r30) -lbl_80311390: -/* 80311390 38 60 00 00 */ li r3, 0 -/* 80311394 38 81 00 08 */ addi r4, r1, 8 -/* 80311398 38 00 00 02 */ li r0, 2 -/* 8031139C 7C 09 03 A6 */ mtctr r0 -lbl_803113A0: -/* 803113A0 38 03 00 0C */ addi r0, r3, 0xc -/* 803113A4 7C 1E 00 2E */ lwzx r0, r30, r0 -/* 803113A8 7C 04 19 2E */ stwx r0, r4, r3 -/* 803113AC 38 63 00 04 */ addi r3, r3, 4 -/* 803113B0 42 00 FF F0 */ bdnz lbl_803113A0 -/* 803113B4 57 60 07 7B */ rlwinm. r0, r27, 0, 0x1d, 0x1d -/* 803113B8 41 82 00 94 */ beq lbl_8031144C -/* 803113BC 7F C3 F3 78 */ mr r3, r30 -/* 803113C0 7F E4 FB 78 */ mr r4, r31 -/* 803113C4 4B FF FD ED */ bl copyLocalVtxNrmArray__15J3DVertexBufferFUl -/* 803113C8 7C 79 1B 79 */ or. r25, r3, r3 -/* 803113CC 41 82 00 90 */ beq lbl_8031145C -/* 803113D0 3B 00 00 00 */ li r24, 0 -/* 803113D4 3B E0 00 00 */ li r31, 0 -/* 803113D8 3B 81 00 10 */ addi r28, r1, 0x10 -/* 803113DC 3B A1 00 08 */ addi r29, r1, 8 -lbl_803113E0: -/* 803113E0 7F 7C F8 2E */ lwzx r27, r28, r31 -/* 803113E4 7F 5E FA 14 */ add r26, r30, r31 -/* 803113E8 80 7A 00 04 */ lwz r3, 4(r26) -/* 803113EC 7C 1B 18 40 */ cmplw r27, r3 -/* 803113F0 41 82 00 1C */ beq lbl_8031140C -/* 803113F4 80 9E 00 00 */ lwz r4, 0(r30) -/* 803113F8 80 04 00 18 */ lwz r0, 0x18(r4) -/* 803113FC 7C 03 00 40 */ cmplw r3, r0 -/* 80311400 41 82 00 08 */ beq lbl_80311408 -/* 80311404 4B FB D9 39 */ bl __dl__FPv -lbl_80311408: -/* 80311408 93 7A 00 04 */ stw r27, 4(r26) -lbl_8031140C: -/* 8031140C 7F 7D F8 2E */ lwzx r27, r29, r31 -/* 80311410 80 7A 00 0C */ lwz r3, 0xc(r26) -/* 80311414 7C 1B 18 40 */ cmplw r27, r3 -/* 80311418 41 82 00 1C */ beq lbl_80311434 -/* 8031141C 80 9E 00 00 */ lwz r4, 0(r30) -/* 80311420 80 04 00 1C */ lwz r0, 0x1c(r4) -/* 80311424 7C 03 00 40 */ cmplw r3, r0 -/* 80311428 41 82 00 08 */ beq lbl_80311430 -/* 8031142C 4B FB D9 11 */ bl __dl__FPv -lbl_80311430: -/* 80311430 93 7A 00 0C */ stw r27, 0xc(r26) -lbl_80311434: -/* 80311434 3B 18 00 01 */ addi r24, r24, 1 -/* 80311438 2C 18 00 02 */ cmpwi r24, 2 -/* 8031143C 3B FF 00 04 */ addi r31, r31, 4 -/* 80311440 41 80 FF A0 */ blt lbl_803113E0 -/* 80311444 7F 23 CB 78 */ mr r3, r25 -/* 80311448 48 00 00 18 */ b lbl_80311460 -lbl_8031144C: -/* 8031144C 80 7E 00 00 */ lwz r3, 0(r30) -/* 80311450 80 03 00 1C */ lwz r0, 0x1c(r3) -/* 80311454 90 1E 00 10 */ stw r0, 0x10(r30) -/* 80311458 90 1E 00 0C */ stw r0, 0xc(r30) -lbl_8031145C: -/* 8031145C 38 60 00 00 */ li r3, 0 -lbl_80311460: -/* 80311460 39 61 00 40 */ addi r11, r1, 0x40 -/* 80311464 48 05 0D B1 */ bl _restgpr_24 -/* 80311468 80 01 00 44 */ lwz r0, 0x44(r1) -/* 8031146C 7C 08 03 A6 */ mtlr r0 -/* 80311470 38 21 00 40 */ addi r1, r1, 0x40 -/* 80311474 4E 80 00 20 */ blr diff --git a/include/JSystem/J3DGraphAnimator/J3DJointTree.h b/include/JSystem/J3DGraphAnimator/J3DJointTree.h index 181d3554f5b..b8e82673399 100644 --- a/include/JSystem/J3DGraphAnimator/J3DJointTree.h +++ b/include/JSystem/J3DGraphAnimator/J3DJointTree.h @@ -37,6 +37,7 @@ public: J3DJoint* getRootNode() { return mRootNode; } J3DJoint* getJointNodePointer(u16 idx) const { return mJointNodePointer[idx]; } J3DMtxCalc* getBasicMtxCalc() const { return mBasicMtxCalc; } + Mtx& getInvJointMtx(s32 idx) const { return mInvJointMtx[idx]; } private: /* 0x04 */ J3DModelHierarchy* mHierarchy; diff --git a/include/JSystem/J3DGraphAnimator/J3DModelData.h b/include/JSystem/J3DGraphAnimator/J3DModelData.h index 12e98f3869e..56b896c9267 100644 --- a/include/JSystem/J3DGraphAnimator/J3DModelData.h +++ b/include/JSystem/J3DGraphAnimator/J3DModelData.h @@ -33,12 +33,13 @@ public: J3DShape* getShapeNodePointer(u16 idx) const { return mShapeTable.getShapeNodePointer(idx); } J3DJoint* getJointNodePointer(u16 idx) const { return mJointTree.getJointNodePointer(idx); } J3DJointTree& getJointTree() { return mJointTree; } + Mtx& getInvJointMtx(s32 idx) const { return mJointTree.getInvJointMtx(idx); } J3DTexture* getTexture() const { return mMaterialTable.getTexture(); } JUTNameTab* getTextureName() const { return mMaterialTable.getTextureName(); } u16 getWEvlpMtxNum() const { return mJointTree.getWEvlpMtxNum(); } void* getVtxPosArray() const { return mVertexData.getVtxPosArray(); } void* getVtxNrmArray() const { return mVertexData.getVtxNrmArray(); } - _GXColor* getVtxColorArray(u8 idx) const { return mVertexData.getVtxColorArray(idx); } + GXColor* getVtxColorArray(u8 idx) const { return mVertexData.getVtxColorArray(idx); } bool checkFlag(u32 flag) const { return !!(mFlags & flag); } bool checkBumpFlag() const { return mbHasBumpArray; } bool checkBBoardFlag() const { return mbHasBillboard == 1; } diff --git a/include/JSystem/J3DGraphBase/J3DPacket.h b/include/JSystem/J3DGraphBase/J3DPacket.h index 3ed3fe28049..14ed0fb5f43 100644 --- a/include/JSystem/J3DGraphBase/J3DPacket.h +++ b/include/JSystem/J3DGraphBase/J3DPacket.h @@ -123,6 +123,7 @@ public: J3DShape* getShape() const { return mpShape; } J3DModel* getModel() const { return mpModel; } + Mtx* getBaseMtxPtr() const { return mpBaseMtxPtr; } public: /* 0x28 */ J3DShape* mpShape; diff --git a/include/JSystem/J3DGraphBase/J3DShape.h b/include/JSystem/J3DGraphBase/J3DShape.h index b0576077c03..866dbe34e5a 100644 --- a/include/JSystem/J3DGraphBase/J3DShape.h +++ b/include/JSystem/J3DGraphBase/J3DShape.h @@ -13,10 +13,30 @@ public: u32 mMtxIdxRegB; }; +static inline void J3DFifoWriteCPCmd(u8 cmd, u32 param) { + GFX_FIFO(u8) = GX_CMD_LOAD_CP_REG; + GFX_FIFO(u8) = cmd; + GFX_FIFO(u32) = param; +} + +static inline void J3DFifoWriteXFCmd(u16 cmd, u16 len) { + GFX_FIFO(u8) = GX_CMD_LOAD_XF_REG; + GFX_FIFO(u16) = (len - 1); + GFX_FIFO(u16) = cmd; +} + class J3DCurrentMtx : public J3DCurrentMtxInfo { public: u32 getMtxIdxRegA() const { return mMtxIdxRegA; } u32 getMtxIdxRegB() const { return mMtxIdxRegB; } + + inline void load() const { + J3DFifoWriteCPCmd(0x30, getMtxIdxRegA()); // CP_MATINDEX_A + J3DFifoWriteCPCmd(0x40, getMtxIdxRegB()); // CP_MATINDEX_B + J3DFifoWriteXFCmd(0x1018, 2); + GFX_FIFO(u32) = getMtxIdxRegA(); + GFX_FIFO(u32) = getMtxIdxRegB(); + } }; class J3DMaterial; @@ -24,11 +44,12 @@ class J3DVertexData; class J3DDrawMtxData; enum J3DShpFlag { - J3DShpFlag_Visible = 0x0001, - J3DShpFlag_SkinPosCpu = 0x0004, - J3DShpFlag_SkinNrmCpu = 0x0008, - J3DShpFlag_Hidden = 0x0010, - J3DShpFlag_EnableLod = 0x0100, + J3DShpFlag_Visible = 0x0001, + J3DShpFlag_SkinPosCpu = 0x0004, + J3DShpFlag_SkinNrmCpu = 0x0008, + J3DShpFlag_Hidden = 0x0010, + J3DShpFlag_EnableLod = 0x0100, + J3DShpFlag_NoMtx = 0x0200, }; class J3DShape { @@ -37,7 +58,7 @@ public: /* 80314BB8 */ void addTexMtxIndexInDL(_GXAttr, u32); /* 80314CBC */ void addTexMtxIndexInVcd(_GXAttr); /* 80314DA8 */ void calcNBTScale(Vec const&, f32 (*)[3][3], f32 (*)[3][3]); - /* 80314E28 */ void countBumpMtxNum() const; + /* 80314E28 */ u32 countBumpMtxNum() const; /* 80314EEC */ void loadVtxArray() const; /* 80314F5C */ bool isSameVcdVatCmd(J3DShape*); /* 80314F98 */ void makeVtxArrayCmd(); @@ -52,11 +73,11 @@ public: void onFlag(u32 flag) { mFlags |= flag; } void offFlag(u32 flag) { mFlags &= ~flag; } - bool checkFlag(u32 flag) { return !!(mFlags & flag); } + bool checkFlag(u32 flag) const { return !!(mFlags & flag); } void setDrawMtxDataPointer(J3DDrawMtxData* pMtxData) { mDrawMtxData = pMtxData; } void setVertexDataPointer(J3DVertexData* pVtxData) { mVertexData = pVtxData; } void* getVcdVatCmd() const { return mVcdVatCmd; } - void setVcdVatCmd(void* pVatCmd) { mVcdVatCmd = pVatCmd; } + void setVcdVatCmd(void* pVatCmd) { mVcdVatCmd = (u8*)pVatCmd; } void show() { offFlag(J3DShpFlag_Visible); } void hide() { onFlag(J3DShpFlag_Visible); } void setCurrentViewNoPtr(u32* pViewNoPtr) { mCurrentViewNo = pViewNoPtr; } @@ -69,6 +90,9 @@ public: inline J3DMaterial* getMaterial() const { return mMaterial; } inline u32 getPipeline() const { return (mFlags >> 2) & 0x07; } inline u32 getTexMtxLoadType() const { return mFlags & 0xF000; } + inline u32 getMtxGroupNum() const { return mMtxGroupNum; } + inline J3DShapeDraw* getShapeDraw(u32 idx) const { return mShapeDraw[idx]; } + inline J3DShapeMtx* getShapeMtx(u32 idx) const { return mShapeMtx[idx]; } static void resetVcdVatCache() { sOldVcdVatCmd = NULL; } static void* sOldVcdVatCmd; @@ -81,7 +105,7 @@ private: /* 0x10 */ f32 mRadius; /* 0x14 */ Vec mMin; /* 0x20 */ Vec mMax; - /* 0x2C */ void* mVcdVatCmd; + /* 0x2C */ u8* mVcdVatCmd; /* 0x30 */ GXVtxDescList* mVtxDesc; /* 0x34 */ bool mHasNBT; /* 0x38 */ J3DShapeMtx** mShapeMtx; diff --git a/include/JSystem/J3DGraphBase/J3DShapeDraw.h b/include/JSystem/J3DGraphBase/J3DShapeDraw.h index 8caf1518509..8ad82a0c3dd 100644 --- a/include/JSystem/J3DGraphBase/J3DShapeDraw.h +++ b/include/JSystem/J3DGraphBase/J3DShapeDraw.h @@ -5,13 +5,16 @@ class J3DShapeDraw { public: - /* 80314924 */ void countVertex(u32); + /* 80314924 */ u32 countVertex(u32); /* 80314974 */ void addTexMtxIndexInDL(u32, u32, u32); /* 80314ABC */ J3DShapeDraw(u8 const*, u32); /* 80314AD4 */ void draw() const; /* 80314B00 */ virtual ~J3DShapeDraw(); + u8* getDisplayList() const { return (u8*)mDisplayList; } + u32 getDisplayListSize() const { return mDisplayListSize; } + private: /* 0x04 */ u32 mDisplayListSize; /* 0x08 */ void* mDisplayList; diff --git a/include/JSystem/J3DGraphBase/J3DShapeMtx.h b/include/JSystem/J3DGraphBase/J3DShapeMtx.h index ced0ec979bd..0a346b20683 100644 --- a/include/JSystem/J3DGraphBase/J3DShapeMtx.h +++ b/include/JSystem/J3DGraphBase/J3DShapeMtx.h @@ -9,7 +9,12 @@ class J3DTexGenBlock; class J3DDifferedTexMtx { public: - /* 8031322C */ void loadExecute(f32 const (*)[4]); + /* 8031322C */ static void loadExecute(f32 const (*)[4]); + + static inline void load(Mtx m) { + if (sTexGenBlock != NULL) + loadExecute(m); + } static J3DTexGenBlock* sTexGenBlock; static J3DTexMtx* sTexMtxObj; @@ -26,9 +31,9 @@ public: /* 803131D4 */ void loadMtxIndx_PNCPU(int, u16) const; /* 80314798 */ virtual ~J3DShapeMtx(); - /* 803147E0 */ virtual void getType() const; - /* 80273E08 */ virtual bool getUseMtxNum() const; - /* 8031459C */ virtual void getUseMtxIndex(u16) const; + /* 803147E0 */ virtual u32 getType() const; + /* 80273E08 */ virtual u32 getUseMtxNum() const; + /* 8031459C */ virtual u32 getUseMtxIndex(u16) const; /* 80313B94 */ virtual void load() const; /* 80313BF0 */ virtual void calcNBTScale(Vec const&, f32 (*)[3][3], f32 (*)[3][3]); @@ -41,6 +46,7 @@ public: static void setCurrentPipeline(u32 pipeline) { sCurrentPipeline = pipeline; } static void setLODFlag(u8 flag) { struct_804515B0[1] = flag; } + static void resetMtxLoadCache(); private: /* 0x04 */ u16 mUseMtxIndex; @@ -49,7 +55,7 @@ private: class J3DShapeMtxConcatView : public J3DShapeMtx { public: /* 80314730 */ virtual ~J3DShapeMtxConcatView(); - /* 8031478C */ virtual void getType() const; + /* 803147E0 */ virtual u32 getType() const; /* 80313C54 */ virtual void load() const; /* 80314598 */ virtual void loadNrmMtx(int, u16) const; /* 80313D28 */ virtual void loadNrmMtx(int, u16, f32 (*)[4]) const; @@ -68,23 +74,23 @@ public: class J3DShapeMtxYBBoardConcatView : public J3DShapeMtxConcatView { public: /* 80314520 */ virtual ~J3DShapeMtxYBBoardConcatView(); - /* 8031458C */ virtual void getType() const; + /* 803147E0 */ virtual u32 getType() const; /* 803143E4 */ virtual void load() const; }; class J3DShapeMtxBBoardConcatView : public J3DShapeMtxConcatView { public: /* 803145A4 */ virtual ~J3DShapeMtxBBoardConcatView(); - /* 80314610 */ virtual void getType() const; + /* 803147E0 */ virtual u32 getType() const; /* 803142D4 */ virtual void load() const; }; class J3DShapeMtxMulti : public J3DShapeMtx { public: /* 803146B0 */ virtual ~J3DShapeMtxMulti(); - /* 8031470C */ virtual void getType() const; - /* 80314718 */ virtual void getUseMtxNum() const; - /* 80314720 */ virtual void getUseMtxIndex(u16) const; + /* 803147E0 */ virtual u32 getType() const; + /* 80273E08 */ virtual u32 getUseMtxNum() const; + /* 8031459C */ virtual u32 getUseMtxIndex(u16) const; /* 80313E4C */ virtual void load() const; /* 80313EEC */ virtual void calcNBTScale(Vec const&, f32 (*)[3][3], f32 (*)[3][3]); @@ -96,9 +102,9 @@ private: class J3DShapeMtxMultiConcatView : public J3DShapeMtx { public: /* 8031461C */ virtual ~J3DShapeMtxMultiConcatView(); - /* 80314688 */ virtual void getType() const; - /* 80314694 */ virtual void getUseMtxNum() const; - /* 8031469C */ virtual void getUseMtxIndex(u16) const; + /* 803147E0 */ virtual u32 getType() const; + /* 80273E08 */ virtual u32 getUseMtxNum() const; + /* 8031459C */ virtual u32 getUseMtxIndex(u16) const; /* 80313FA4 */ virtual void load() const; /* 803146AC */ virtual void loadNrmMtx(int, u16) const; /* 8031419C */ virtual void loadNrmMtx(int, u16, f32 (*)[4]) const; diff --git a/include/JSystem/J3DGraphBase/J3DSys.h b/include/JSystem/J3DGraphBase/J3DSys.h index 0f947d0a342..a4bded7e42c 100644 --- a/include/JSystem/J3DGraphBase/J3DSys.h +++ b/include/JSystem/J3DGraphBase/J3DSys.h @@ -42,9 +42,12 @@ struct J3DSys { /* 0x050 */ u32 mDrawMode; /* 0x054 */ u32 mMaterialMode; /* 0x058 */ J3DTexture* mTexture; - /* 0x05C */ u8 field_0x5c[0x104 - 0x5C]; + /* 0x05C */ u8 field_0x5c[0x04]; + /* 0x060 */ u32 mTexCacheRegionNum; + /* 0x064 */ GXTexRegion mTexCacheRegion[8]; + /* 0x0E4 */ u8 field_0xe4[0x20]; /* 0x104 */ Mtx* mModelDrawMtx; - /* 0x104 */ Mtx33* mModelNrmMtx; + /* 0x108 */ Mtx33* mModelNrmMtx; /* 0x10C */ void* mVtxPos; /* 0x110 */ void* mVtxNrm; /* 0x114 */ _GXColor* mVtxCol; @@ -115,12 +118,15 @@ struct J3DSys { // Type 1: Xlu Buffer J3DDrawBuffer* getDrawBuffer(int type) { return mDrawBuffer[type]; } + Mtx& getModelDrawMtx(u16 no) const { return mModelDrawMtx[no]; } + J3DShapePacket* getShapePacket() const { return mShapePacket; } + void setViewMtx(Mtx m) { PSMTXCopy(m, mViewMtx); } static Mtx mCurrentMtx; static Vec mCurrentS; static Vec mParentS; - static u16 sTexCoordScaleTable[34]; + static u16 sTexCoordScaleTable[32]; }; extern J3DSys j3dSys; diff --git a/include/JSystem/J3DGraphBase/J3DTexture.h b/include/JSystem/J3DGraphBase/J3DTexture.h index f62d2e2d9f7..923bf225ed8 100644 --- a/include/JSystem/J3DGraphBase/J3DTexture.h +++ b/include/JSystem/J3DGraphBase/J3DTexture.h @@ -67,4 +67,11 @@ struct J3DTexCoord : public J3DTexCoordInfo { /* 0x4 */ u16 mTexMtxReg; }; // Size: 0x6 +struct J3DDefaultTexCoordInfo { + /* 0x0 */ u8 mTexGenType; + /* 0x1 */ u8 mTexGenSrc; + /* 0x2 */ u8 mTexGenMtx; + /* 0x3 */ u8 pad; +}; + #endif /* J3DTEXTURE_H */ diff --git a/include/JSystem/J3DGraphBase/J3DVertex.h b/include/JSystem/J3DGraphBase/J3DVertex.h index 87e50c9276f..2e3e1430c0a 100644 --- a/include/JSystem/J3DGraphBase/J3DVertex.h +++ b/include/JSystem/J3DGraphBase/J3DVertex.h @@ -21,31 +21,35 @@ public: J3DVertexData(); void* getVtxPosArray() const { return mVtxPosArray; } - void* getVtxNrmArray() const { return mVtxNrmArray; } - - _GXColor* getVtxColorArray(u8 idx) const { return mVtxColorArray[idx]; } - + GXColor* getVtxColorArray(u8 idx) const { return mVtxColorArray[idx]; } + void* getVtxTexCoordArray(u8 idx) const { return mVtxTexCoordArray[idx]; } + void* getVtxNBTArray() const { return mVtxNBTArray; } u32 getNrmNum() const { return mNrmNum; } - u32 getVtxNum() const { return mVtxNum; } + GXVtxAttrFmtList* getVtxAttrFmtList() { return mVtxAttrFmtList; } + + void setVtxPosFrac(u8 frac) { mVtxPosFrac = frac; } + void setVtxPosType(GXCompType type) { mVtxPosType = type; } + void setVtxNrmFrac(u8 frac) { mVtxNrmFrac = frac; } + void setVtxNrmType(GXCompType type) { mVtxNrmType = type; } private: /* 0x00 */ u32 mVtxNum; /* 0x04 */ u32 mNrmNum; /* 0x08 */ u32 mColNum; - /* 0x0C */ u32 field_0xc; - /* 0x10 */ u32 field_0x10; - /* 0x14 */ void* mVtxAttrFmtList; + /* 0x0C */ u32 mTexCoordNum; + /* 0x10 */ u32 mPacketNum; + /* 0x14 */ GXVtxAttrFmtList* mVtxAttrFmtList; /* 0x18 */ void* mVtxPosArray; /* 0x1C */ void* mVtxNrmArray; /* 0x20 */ void* mVtxNBTArray; - /* 0x24 */ _GXColor* mVtxColorArray[2]; + /* 0x24 */ GXColor* mVtxColorArray[2]; /* 0x2C */ void* mVtxTexCoordArray[8]; /* 0x4C */ u8 mVtxPosFrac; - /* 0x50 */ _GXCompType mVtxPosType; + /* 0x50 */ GXCompType mVtxPosType; /* 0x54 */ u8 mVtxNrmFrac; - /* 0x58 */ _GXCompType mVtxNrmType; + /* 0x58 */ GXCompType mVtxNrmType; }; class J3DVertexBuffer { @@ -64,7 +68,7 @@ public: void setCurrentVtxNrm(void* pVtxNrm) { mCurrentVtxNrm = pVtxNrm; } - void setCurrentVtxCol(_GXColor* pVtxCol) { mCurrentVtxCol = pVtxCol; } + void setCurrentVtxCol(GXColor* pVtxCol) { mCurrentVtxCol = pVtxCol; } void frameInit() { setCurrentVtxPos(mVtxPosArray[0]); @@ -76,12 +80,12 @@ private: /* 0x00 */ J3DVertexData* mVtxData; /* 0x04 */ void* mVtxPosArray[2]; /* 0x0C */ void* mVtxNrmArray[2]; - /* 0x14 */ _GXColor* mVtxColArray[2]; + /* 0x14 */ GXColor* mVtxColArray[2]; /* 0x1C */ void* mTransformedVtxPosArray[2]; /* 0x24 */ void* mTransformedVtxNrmArray[2]; /* 0x2C */ void* mCurrentVtxPos; /* 0x30 */ void* mCurrentVtxNrm; - /* 0x34 */ _GXColor* mCurrentVtxCol; + /* 0x34 */ GXColor* mCurrentVtxCol; }; // Size: 0x38 struct VertexNormal { diff --git a/include/dolphin/gd/GDBase.h b/include/dolphin/gd/GDBase.h index ef685d35199..121f2f6ce94 100644 --- a/include/dolphin/gd/GDBase.h +++ b/include/dolphin/gd/GDBase.h @@ -10,8 +10,6 @@ struct GDLObj { /* 0xC */ u8* end; }; // Size: 0x10 -extern "C" void GDInitGDLObj(GDLObj*, u8*, u32); - extern GDLObj* __GDCurrentDL; inline void GDSetCurrent(GDLObj* obj) { @@ -22,4 +20,12 @@ inline u32 GDGetGDLObjOffset(GDLObj* obj) { return (u32)(obj->ptr - obj->start); } +extern "C" { + +void GDInitGDLObj(GDLObj*, u8*, u32); +void GDFlushCurrToMem(); +void GDPadCurr32(); + +} + #endif /* GDBASE_H */ diff --git a/include/dolphin/gd/GDGeometry.h b/include/dolphin/gd/GDGeometry.h index 3737290c3d6..e3f59751a23 100644 --- a/include/dolphin/gd/GDGeometry.h +++ b/include/dolphin/gd/GDGeometry.h @@ -2,5 +2,14 @@ #define GDGEOMETRY_H #include "dolphin/types.h" +#include "dolphin/gx/GX.h" + +extern "C" { + +void GDSetVtxDescv(GXVtxDescList*); +void GDSetArray(GXAttr attr, const void* data, u8 stride); +void GDSetArrayRaw(GXAttr attr, u32 data, u8 stride); + +} #endif /* GDGEOMETRY_H */ diff --git a/include/dolphin/gx/GX.h b/include/dolphin/gx/GX.h index b8c541c5918..1951f2bd430 100644 --- a/include/dolphin/gx/GX.h +++ b/include/dolphin/gx/GX.h @@ -12,14 +12,6 @@ typedef struct _GXColor { /* 0x1 */ u8 g; /* 0x2 */ u8 b; /* 0x3 */ u8 a; - - _GXColor& operator=(const _GXColor& o) { - r = o.r; - g = o.g; - b = o.b; - a = o.a; - return *this; - } } GXColor; typedef struct _GXColorS10 { @@ -89,6 +81,10 @@ typedef struct _GXFifoObj { /* 0x23 */ u8 field_0x23[93]; } GXFifoObj; // Size: 0x80 +typedef struct _GXTexRegion { + /* 0x00 */ u8 dummy[0x10]; +} GXTexRegion; // Size: 0x10 + typedef enum _GXPrimitive { /* 0x80 */ GX_QUADS = 0x80, /* 0x90 */ GX_TRIANGLES = 0x90, @@ -179,16 +175,16 @@ typedef enum _GXColorSrc { } GXColorSrc; typedef enum _GXLightID { - /* 0x000 */ GX_LIGHT_NULL, - /* 0x001 */ GX_LIGHT0, - /* 0x002 */ GX_LIGHT1, - /* 0x004 */ GX_LIGHT2 = 0x4, - /* 0x008 */ GX_LIGHT3 = 0x8, - /* 0x010 */ GX_LIGHT4 = 0x10, - /* 0x020 */ GX_LIGHT5 = 0x20, - /* 0x040 */ GX_LIGHT6 = 0x40, - /* 0x080 */ GX_LIGHT7 = 0x80, - /* 0x100 */ GX_MAX_LIGHT = 0x100, + /* 0x000 */ GX_LIGHT_NULL = 0, + /* 0x001 */ GX_LIGHT0 = 1 << 0, + /* 0x002 */ GX_LIGHT1 = 1 << 1, + /* 0x004 */ GX_LIGHT2 = 1 << 2, + /* 0x008 */ GX_LIGHT3 = 1 << 3, + /* 0x010 */ GX_LIGHT4 = 1 << 4, + /* 0x020 */ GX_LIGHT5 = 1 << 5, + /* 0x040 */ GX_LIGHT6 = 1 << 6, + /* 0x080 */ GX_LIGHT7 = 1 << 7, + /* 0x100 */ GX_MAX_LIGHT = 1 << 8, } GXLightID; typedef enum _GXDiffuseFn { @@ -823,9 +819,16 @@ typedef enum _GXPTTexMtx { }; typedef struct _GXVtxDescList { - GXAttr attr; - GXAttrType type; -} GXVtxDescList; + /* 0x0 */ GXAttr attr; + /* 0x4 */ GXAttrType type; +} GXVtxDescList; // Size: 0x08 + +typedef struct _GXVtxAttrFmtList { + /* 0x00 */ GXAttr mAttrib; + /* 0x04 */ GXCompCnt mCompCnt; + /* 0x08 */ GXCompType mCompType; + /* 0x0C */ u8 mCompShift; +} GXVtxAttrFmtList; // Size: 0x10 typedef enum _GXFBClamp { /* 0x0 */ GX_CLAMP_NONE, @@ -851,6 +854,17 @@ typedef enum _GXZFmt16 { /* 0x3 */ GX_ZC_FAR, } GXZFmt16; +typedef enum _GXCommand +{ + GX_CMD_LOAD_INDX_A = 0x20, + GX_CMD_LOAD_INDX_B = 0x28, + GX_CMD_LOAD_INDX_C = 0x30, + GX_CMD_LOAD_INDX_D = 0x38, + + GX_CMD_LOAD_CP_REG = 0x08, + GX_CMD_LOAD_XF_REG = 0x10, +} GXCommand; + extern "C" { f32 GXGetYScaleFactor(u16 efb_height, u16 xfb_height); u16 GXGetNumXfbLines(u32 efb_height, f32 y_scale); @@ -868,7 +882,7 @@ void GXSetNumChans(u8); void GXSetNumTevStages(u8); void GXSetNumTexGens(u8); void GXSetTevOrder(GXTevStageID, GXTexCoordID, GXTexMapID, GXChannelID); -void GXSetChanCtrl(GXChannelID, GXBool, GXColorSrc, GXColorSrc, GXLightID, GXDiffuseFn, GXAttnFn); +void GXSetChanCtrl(GXChannelID, GXBool, GXColorSrc, GXColorSrc, u32, GXDiffuseFn, GXAttnFn); void GXSetTevOp(GXTevStageID, GXTevMode); void GXSetTevColor(GXTevRegID, GXColor); void GXSetTevColorIn(GXTevStageID, GXTevColorArg, GXTevColorArg, GXTevColorArg, GXTevColorArg); @@ -963,6 +977,8 @@ void GXReadXfRasMetric(u32*, u32*, u32*, u32*); void GXInitFifoBase(GXFifoObj*, void*, u32); void GXInitFifoPtrs(GXFifoObj*, void*, void*); void GXSaveCPUFifo(GXFifoObj*); +void GXSetMisc(u32 opt, u32 val); +void GXInitTexCacheRegion(GXTexRegion *region, GXBool, u32, GXTexCacheSize, u32, GXTexCacheSize); #define GFX_FIFO(T) (*(volatile T*)0xCC008000) diff --git a/libs/JSystem/J3DGraphBase/J3DMatBlock.cpp b/libs/JSystem/J3DGraphBase/J3DMatBlock.cpp index 7e769b265fa..d4814e1ae34 100644 --- a/libs/JSystem/J3DGraphBase/J3DMatBlock.cpp +++ b/libs/JSystem/J3DGraphBase/J3DMatBlock.cpp @@ -603,10 +603,10 @@ extern "C" extern u8 j3dTevSwapTableTable[1024]; extern "C" extern u8 j3dAlphaCmpTable[768]; extern "C" extern u8 j3dZModeTable[96]; extern "C" extern u8 __GDCurrentDL[4]; -extern "C" extern u32 j3dDefaultColInfo; +extern "C" extern GXColor j3dDefaultColInfo; extern "C" extern u32 j3dDefaultAmbInfo; -extern "C" extern u32 j3dDefaultTevColor; -extern "C" extern u32 j3dDefaultTevKColor; +extern "C" extern GXColorS10 j3dDefaultTevColor; +extern "C" extern GXColor j3dDefaultTevKColor; // // Declarations: diff --git a/libs/JSystem/J3DGraphBase/J3DPacket.cpp b/libs/JSystem/J3DGraphBase/J3DPacket.cpp index aa53fac2f30..b829cb202e9 100644 --- a/libs/JSystem/J3DGraphBase/J3DPacket.cpp +++ b/libs/JSystem/J3DGraphBase/J3DPacket.cpp @@ -247,61 +247,37 @@ J3DDrawPacket::J3DDrawPacket() { } /* 803127B0-8031280C 30D0F0 005C+00 3/2 0/0 0/0 .text __dt__13J3DDrawPacketFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm J3DDrawPacket::~J3DDrawPacket() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DPacket/__dt__13J3DDrawPacketFv.s" +J3DDrawPacket::~J3DDrawPacket() { } -#pragma pop /* 8031280C-80312898 30D14C 008C+00 1/1 1/1 0/0 .text newDisplayList__13J3DDrawPacketFUl */ -#ifdef NONMATCHING -J3DError J3DDrawPacket::newDisplayList(u32 param_0) { +J3DError J3DDrawPacket::newDisplayList(u32 size) { mpDisplayListObj = new J3DDisplayListObj(); - if (mpDisplayListObj == NULL) { + if (mpDisplayListObj == NULL) return kJ3DError_Alloc; - } else if (mpDisplayListObj->newDisplayList(param_0)) { - return kJ3DError_Success; - } - return 0; + + J3DError ret = mpDisplayListObj->newDisplayList(size); + if (ret != kJ3DError_Success) + return ret; + + return kJ3DError_Success; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm J3DError J3DDrawPacket::newDisplayList(u32 param_0) { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DPacket/newDisplayList__13J3DDrawPacketFUl.s" -} -#pragma pop -#endif /* 80312898-80312924 30D1D8 008C+00 0/0 1/1 0/0 .text newSingleDisplayList__13J3DDrawPacketFUl */ -#ifdef NONMATCHING -J3DError J3DDrawPacket::newSingleDisplayList(u32 param_0) { +J3DError J3DDrawPacket::newSingleDisplayList(u32 size) { mpDisplayListObj = new J3DDisplayListObj(); - if (mpDisplayListObj == NULL) { + if (mpDisplayListObj == NULL) return kJ3DError_Alloc; - } else if (mpDisplayListObj->newSingleDisplayList(param_0)) { - return kJ3DError_Success; - } - return 0; + + J3DError ret = mpDisplayListObj->newSingleDisplayList(size); + if (ret != kJ3DError_Success) + return ret; + + return kJ3DError_Success; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm J3DError J3DDrawPacket::newSingleDisplayList(u32 param_0) { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DPacket/newSingleDisplayList__13J3DDrawPacketFUl.s" -} -#pragma pop -#endif void J3DDrawPacket::draw() { mpDisplayListObj->callDL(); diff --git a/libs/JSystem/J3DGraphBase/J3DShape.cpp b/libs/JSystem/J3DGraphBase/J3DShape.cpp index 8af7bd8334a..154850d3e3a 100644 --- a/libs/JSystem/J3DGraphBase/J3DShape.cpp +++ b/libs/JSystem/J3DGraphBase/J3DShape.cpp @@ -4,16 +4,15 @@ // #include "JSystem/J3DGraphBase/J3DShape.h" +#include "JSystem/J3DGraphBase/J3DPacket.h" #include "JSystem/J3DGraphBase/J3DSys.h" +#include "JSystem/J3DGraphBase/J3DVertex.h" #include "dol2asm.h" +#include "dolphin/gd/GDBase.h" +#include "dolphin/gd/GDGeometry.h" +#include "dolphin/os/OS.h" #include "dolphin/types.h" -// -// Types: -// - -struct _GXVtxAttrFmtList {}; - // // Forward References: // @@ -42,6 +41,10 @@ extern "C" u8 sOldVcdVatCmd__8J3DShape[4]; // External References: // +void J3DGDSetVtxAttrFmtv(_GXVtxFmt, GXVtxAttrFmtList const*, bool); +void J3DFifoLoadPosMtxImm(Mtx, u32); +void J3DFifoLoadNrmMtxImm(Mtx, u32); + extern "C" void* __nwa__FUl(); extern "C" void J3DGDSetVtxAttrFmtv__F9_GXVtxFmtPC17_GXVtxAttrFmtListb(); extern "C" void J3DFifoLoadPosMtxImm__FPA4_fUl(); @@ -49,118 +52,142 @@ extern "C" void J3DFifoLoadNrmMtxImm__FPA4_fUl(); extern "C" void resetMtxLoadCache__11J3DShapeMtxFv(); extern "C" void addTexMtxIndexInDL__12J3DShapeDrawFUlUlUl(); extern "C" void draw__12J3DShapeDrawCFv(); -extern "C" void OSDisableInterrupts(); -extern "C" void OSRestoreInterrupts(); -extern "C" void OSDisableScheduler(); -extern "C" void OSEnableScheduler(); -extern "C" void GDInitGDLObj(); -extern "C" void GDFlushCurrToMem(); -extern "C" void GDPadCurr32(); -extern "C" void GDSetVtxDescv(); -extern "C" void GDSetArray(); -extern "C" void GDSetArrayRaw(); extern "C" void _savegpr_27(); extern "C" void _savegpr_28(); extern "C" void _savegpr_29(); extern "C" void _restgpr_27(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); -extern "C" extern u8 j3dDefaultViewNo[4 + 4 /* padding */]; +extern "C" extern u32 j3dDefaultViewNo; extern "C" u32 sCurrentPipeline__11J3DShapeMtx; extern "C" u32 sCurrentScaleFlag__11J3DShapeMtx; extern "C" extern u8 struct_804515B0[4]; extern "C" u32 sTexMtxLoadType__11J3DShapeMtx; -extern "C" extern u8 __GDCurrentDL[4]; // // Declarations: // -/* ############################################################################################## */ -/* 804563A0-804563A8 0049A0 0004+04 1/1 0/0 0/0 .sdata2 @687 */ -SECTION_SDATA2 static f32 lit_687[1 + 1 /* padding */] = { - 0.0f, - /* padding */ - 0.0f, +enum { + kVcdVatDLSize = 0xC0, }; -/* 80314B48-80314BB8 30F488 0070+00 0/0 1/1 0/0 .text initialize__8J3DShapeFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShape::initialize() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShape/initialize__8J3DShapeFv.s" +void J3DShape::initialize() { + mMaterial = NULL; + mIndex = -1; + mMtxGroupNum = 0; + mFlags = 0; + mRadius = 0.0f; + mMin.x = 0.0f; + mMin.y = 0.0f; + mMin.z = 0.0f; + mMax.x = 0.0f; + mMax.y = 0.0f; + mMax.z = 0.0f; + mVtxDesc = NULL; + mShapeMtx = NULL; + mShapeDraw = NULL; + mVertexData = NULL; + mDrawMtxData = NULL; + mScaleFlagArray = NULL; + mDrawMtx = NULL; + mNrmMtx = NULL; + mCurrentViewNo = &j3dDefaultViewNo; + mHasNBT = false; + mHasPNMTXIdx = false; } -#pragma pop - -/* ############################################################################################## */ -/* 803A1E98-803A1EA8 02E4F8 0010+00 1/1 0/0 0/0 .rodata @697 */ -SECTION_RODATA static u8 const lit_697[16] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, -}; -COMPILER_STRIP_GATE(0x803A1E98, &lit_697); /* 80314BB8-80314CBC 30F4F8 0104+00 0/0 1/1 0/0 .text addTexMtxIndexInDL__8J3DShapeF7_GXAttrUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShape::addTexMtxIndexInDL(_GXAttr param_0, u32 param_1) { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShape/addTexMtxIndexInDL__8J3DShapeF7_GXAttrUl.s" +void J3DShape::addTexMtxIndexInDL(GXAttr attr, u32 valueBase) { + u32 kSize[] = { 0, 1, 1, 2 }; + + s32 pnmtxidxOffs = -1; + s32 attrOffs = -1; + s32 stride = 0; + bool found = false; + + for (GXVtxDescList* vtxDesc = mVtxDesc; vtxDesc->attr != GX_VA_NULL; vtxDesc++) { + if (vtxDesc->attr == GX_VA_PNMTXIDX) + pnmtxidxOffs = stride; + + if (attr < vtxDesc->attr && !found) { + attrOffs = stride; + found = true; + } + + stride = stride + kSize[vtxDesc->type]; + } + + if (pnmtxidxOffs == -1) + return; + + for (u16 i = 0; i < getMtxGroupNum(); i++) + getShapeDraw(i)->addTexMtxIndexInDL(stride, attrOffs, (s32)valueBase); } -#pragma pop /* 80314CBC-80314DA8 30F5FC 00EC+00 0/0 1/1 0/0 .text addTexMtxIndexInVcd__8J3DShapeF7_GXAttr */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShape::addTexMtxIndexInVcd(_GXAttr param_0) { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShape/addTexMtxIndexInVcd__8J3DShapeF7_GXAttr.s" +void J3DShape::addTexMtxIndexInVcd(GXAttr attr) { + s32 attrIdx = -1; + GXVtxDescList* vtxDesc = mVtxDesc; + s32 attrCount = 0; + + for (; vtxDesc->attr != GX_VA_NULL; attrCount++, vtxDesc++) { + if (vtxDesc->attr == GX_VA_PNMTXIDX) + attrIdx = 0; + } + + if (attrIdx == -1) + return; + + GXVtxDescList* newVtxDesc = new GXVtxDescList[attrCount + 2]; + bool inserted = false; + + vtxDesc = mVtxDesc; + GXVtxDescList* dst = newVtxDesc; + for (; vtxDesc->attr != GX_VA_NULL; dst++, vtxDesc++) { + if ((attr < vtxDesc->attr) && !inserted) { + dst->attr = attr; + dst->type = GX_DIRECT; + inserted = true; + dst++; + } + + *dst = *vtxDesc; + } + + dst->attr = GX_VA_NULL; + dst->type = GX_NONE; + mVtxDesc = newVtxDesc; + makeVcdVatCmd(); } -#pragma pop /* 80314DA8-80314E28 30F6E8 0080+00 0/0 1/1 0/0 .text * calcNBTScale__8J3DShapeFRC3VecPA3_A3_fPA3_A3_f */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShape::calcNBTScale(Vec const& param_0, f32 (*param_1)[3][3], f32 (*param_2)[3][3]) { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShape/calcNBTScale__8J3DShapeFRC3VecPA3_A3_fPA3_A3_f.s" +void J3DShape::calcNBTScale(Vec const& param_0, f32 (*param_1)[3][3], f32 (*param_2)[3][3]) { + for (u16 i = 0; i < getMtxGroupNum(); i++) + getShapeMtx(i)->calcNBTScale(param_0, param_1, param_2); } -#pragma pop /* 80314E28-80314E98 30F768 0070+00 0/0 1/1 0/0 .text countBumpMtxNum__8J3DShapeCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShape::countBumpMtxNum() const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShape/countBumpMtxNum__8J3DShapeCFv.s" +u32 J3DShape::countBumpMtxNum() const { + u32 num = 0; + for (u16 i = 0; i < getMtxGroupNum(); i++) + num += getShapeMtx(i)->getUseMtxNum(); + return num; } -#pragma pop /* 80314E98-80314EB0 30F7D8 0018+00 1/1 0/0 0/0 .text J3DLoadCPCmd__FUcUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void J3DLoadCPCmd(u8 param_0, u32 param_1) { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShape/J3DLoadCPCmd__FUcUl.s" +void J3DLoadCPCmd(u8 cmd, u32 param) { + GFX_FIFO(u8) = GX_CMD_LOAD_CP_REG; + GFX_FIFO(u8) = cmd; + GFX_FIFO(u32) = param; } -#pragma pop /* 80314EB0-80314EEC 30F7F0 003C+00 1/1 0/0 0/0 .text J3DLoadArrayBasePtr__F7_GXAttrPv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void J3DLoadArrayBasePtr(_GXAttr param_0, void* param_1) { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShape/J3DLoadArrayBasePtr__F7_GXAttrPv.s" +static void J3DLoadArrayBasePtr(_GXAttr attr, void* data) { + u32 idx = (attr == GX_VA_NBT) ? 1 : (attr - GX_VA_POS); + J3DLoadCPCmd(0xA0 + idx, ((u32)data & 0x7FFFFFFF)); } -#pragma pop /* 80314EEC-80314F5C 30F82C 0070+00 3/3 0/0 0/0 .text loadVtxArray__8J3DShapeCFv */ void J3DShape::loadVtxArray() const { @@ -172,55 +199,139 @@ void J3DShape::loadVtxArray() const { } /* 80314F5C-80314F98 30F89C 003C+00 0/0 1/1 0/0 .text isSameVcdVatCmd__8J3DShapeFP8J3DShape */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool J3DShape::isSameVcdVatCmd(J3DShape* param_0) { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShape/isSameVcdVatCmd__8J3DShapeFP8J3DShape.s" +bool J3DShape::isSameVcdVatCmd(J3DShape* other) { + u8 *a = other->mVcdVatCmd; + u8 *b = mVcdVatCmd; + for (u32 i = 0; i < kVcdVatDLSize; i++) + if (a[i] != b[i]) + return false; + return true; } -#pragma pop /* 80314F98-80315260 30F8D8 02C8+00 1/1 0/0 0/0 .text makeVtxArrayCmd__8J3DShapeFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShape::makeVtxArrayCmd() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShape/makeVtxArrayCmd__8J3DShapeFv.s" +void J3DShape::makeVtxArrayCmd() { + GXVtxAttrFmtList *vtxAttr = mVertexData->getVtxAttrFmtList(); + + u8 stride[0x0C]; + void* array[0x0C]; + for (u32 i = 0; i < 0x0C; i++) { + stride[i] = 0; + array[i] = 0; + } + + for (; vtxAttr->mAttrib != GX_VA_NULL; vtxAttr++) { + switch (vtxAttr->mAttrib) { + case GX_VA_POS: + { + if (vtxAttr->mCompType == GX_F32) + stride[vtxAttr->mAttrib - GX_VA_POS] = 0x0C; + else + stride[vtxAttr->mAttrib - GX_VA_POS] = 0x06; + array[vtxAttr->mAttrib - GX_VA_POS] = mVertexData->getVtxPosArray(); + mVertexData->setVtxPosFrac(vtxAttr->mCompShift); + mVertexData->setVtxPosType((GXCompType) vtxAttr->mCompType); + } + break; + case GX_VA_NRM: + { + if (vtxAttr->mCompType == GX_F32) + stride[vtxAttr->mAttrib - GX_VA_POS] = 0x0C; + else + stride[vtxAttr->mAttrib - GX_VA_POS] = 0x06; + array[vtxAttr->mAttrib - GX_VA_POS] = mVertexData->getVtxNrmArray(); + mVertexData->setVtxNrmFrac(vtxAttr->mCompShift); + mVertexData->setVtxNrmType((GXCompType) vtxAttr->mCompType); + } + break; + case GX_VA_CLR0: + case GX_VA_CLR1: + { + stride[vtxAttr->mAttrib - GX_VA_POS] = 0x04; + array[vtxAttr->mAttrib - GX_VA_POS] = mVertexData->getVtxColorArray(vtxAttr->mAttrib - GX_VA_CLR0); + } + break; + case GX_VA_TEX0: + case GX_VA_TEX1: + case GX_VA_TEX2: + case GX_VA_TEX3: + case GX_VA_TEX4: + case GX_VA_TEX5: + case GX_VA_TEX6: + case GX_VA_TEX7: + { + if (vtxAttr->mCompType == GX_F32) + stride[vtxAttr->mAttrib - GX_VA_POS] = 0x08; + else + stride[vtxAttr->mAttrib - GX_VA_POS] = 0x04; + array[vtxAttr->mAttrib - GX_VA_POS] = mVertexData->getVtxTexCoordArray(vtxAttr->mAttrib - GX_VA_TEX0); + } + break; + default: + break; + } + } + + GXVtxDescList* vtxDesc = mVtxDesc; + mHasPNMTXIdx = false; + for (; vtxDesc->attr != GX_VA_NULL; vtxDesc++) { + if (vtxDesc->attr == GX_VA_NBT && vtxDesc->type != GX_NONE) { + mHasNBT = true; + stride[GX_VA_NRM - GX_VA_POS] *= 3; + array[GX_VA_NRM - GX_VA_POS] = mVertexData->getVtxNBTArray(); + } else if (vtxDesc->attr == GX_VA_PNMTXIDX && vtxDesc->type != GX_NONE) { + mHasPNMTXIdx = true; + } + } + + for (u32 i = 0; i < 0x0C; i++) { + if (array[i] != 0) + GDSetArray((GXAttr)(i + GX_VA_POS), array[i], stride[i]); + else + GDSetArrayRaw((GXAttr)(i + GX_VA_POS), NULL, stride[i]); + } } -#pragma pop /* ############################################################################################## */ /* 804515C8-804515CC 000AC8 0004+00 1/1 0/0 0/0 .sbss sInterruptFlag$903 */ -static u8 sInterruptFlag[4]; +static s32 sInterruptFlag; /* 804515CC-804515D0 000ACC 0004+00 1/1 0/0 0/0 .sbss None */ -static u8 data_804515CC[4]; +static s8 sInitInterruptFlag; /* 80315260-80315300 30FBA0 00A0+00 1/1 2/2 0/0 .text makeVcdVatCmd__8J3DShapeFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShape::makeVcdVatCmd() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShape/makeVcdVatCmd__8J3DShapeFv.s" +void J3DShape::makeVcdVatCmd() { + if (!sInitInterruptFlag) { + sInterruptFlag = OSDisableInterrupts(); + sInitInterruptFlag = true; + } + OSDisableScheduler(); + + GDLObj gdl_obj; + GDInitGDLObj(&gdl_obj, mVcdVatCmd, kVcdVatDLSize); + GDSetCurrent(&gdl_obj); + GDSetVtxDescv(mVtxDesc); + makeVtxArrayCmd(); + J3DGDSetVtxAttrFmtv(GX_VTXFMT0, mVertexData->getVtxAttrFmtList(), mHasNBT); + GDPadCurr32(); + GDFlushCurrToMem(); + GDSetCurrent(NULL); + OSEnableScheduler(); + OSRestoreInterrupts(sInterruptFlag); } -#pragma pop /* ############################################################################################## */ /* 804515D0-804515D4 000AD0 0004+00 5/5 25/25 9/9 .sbss sOldVcdVatCmd__8J3DShape */ void* J3DShape::sOldVcdVatCmd; /* 80315300-80315398 30FC40 0098+00 2/2 6/6 3/3 .text loadPreDrawSetting__8J3DShapeCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShape::loadPreDrawSetting() const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShape/loadPreDrawSetting__8J3DShapeCFv.s" +void J3DShape::loadPreDrawSetting() const { + if (sOldVcdVatCmd != mVcdVatCmd) { + GXCallDisplayList(mVcdVatCmd, kVcdVatDLSize); + sOldVcdVatCmd = mVcdVatCmd; + } + + mCurrentMtx.load(); } -#pragma pop /* ############################################################################################## */ /* 804515D4-804515D8 000AD4 0004+00 3/3 0/0 0/0 .sbss None */ @@ -241,6 +352,38 @@ void J3DShape::setArrayAndBindPipeline() const { } /* 8031544C-803155E0 30FD8C 0194+00 1/0 0/0 0/0 .text drawFast__8J3DShapeCFv */ +#ifdef NONMATCHING +void J3DShape::drawFast() const { + if (sOldVcdVatCmd != mVcdVatCmd) { + GXCallDisplayList(mVcdVatCmd, kVcdVatDLSize); + sOldVcdVatCmd = mVcdVatCmd; + } + + if (data_804515D4[0] != 0 && !mHasPNMTXIdx) + mCurrentMtx.load(); + + setArrayAndBindPipeline(); + if (!checkFlag(J3DShpFlag_NoMtx)) { + // LOD flag shenanigans + if (J3DShapeMtx::getLODFlag() != 0) + J3DShapeMtx::resetMtxLoadCache(); + + for (u16 n = getMtxGroupNum(), i = 0; i < n; i++) { + if (getShapeMtx(i) != NULL) + getShapeMtx(i)->load(); + if (getShapeDraw(i) != NULL) + getShapeDraw(i)->draw(); + } + } else { + J3DFifoLoadPosMtxImm(*j3dSys.getShapePacket()->getBaseMtxPtr(), GX_PNMTX0); + J3DFifoLoadNrmMtxImm(*j3dSys.getShapePacket()->getBaseMtxPtr(), GX_PNMTX0); + for (u16 n = getMtxGroupNum(), i = 0; i < n; i++) + if (getShapeDraw(i) != NULL) + getShapeDraw(i)->draw(); + } +} +#else + #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -250,15 +393,14 @@ asm void J3DShape::drawFast() const { } #pragma pop +#endif + /* 803155E0-80315628 30FF20 0048+00 1/0 0/0 0/0 .text draw__8J3DShapeCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShape::draw() const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShape/draw__8J3DShapeCFv.s" +void J3DShape::draw() const { + sOldVcdVatCmd = NULL; + loadPreDrawSetting(); + drawFast(); } -#pragma pop /* 80315628-803156AC 30FF68 0084+00 1/0 0/0 0/0 .text simpleDraw__8J3DShapeCFv */ void J3DShape::simpleDraw() const { @@ -266,19 +408,25 @@ void J3DShape::simpleDraw() const { loadPreDrawSetting(); J3DShapeMtx::setCurrentPipeline(getPipeline()); loadVtxArray(); - for (u16 n = mMtxGroupNum, i = 0; i < n; i++) { - if (mShapeDraw[i] != NULL) { - mShapeDraw[i]->draw(); + for (u16 n = getMtxGroupNum(), i = 0; i < n; i++) { + if (getShapeDraw(i) != NULL) { + getShapeDraw(i)->draw(); } } } /* 803156AC-803157A0 30FFEC 00F4+00 1/0 0/0 0/0 .text simpleDrawCache__8J3DShapeCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShape::simpleDrawCache() const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShape/simpleDrawCache__8J3DShapeCFv.s" +void J3DShape::simpleDrawCache() const { + if (sOldVcdVatCmd != mVcdVatCmd) { + GXCallDisplayList(mVcdVatCmd, kVcdVatDLSize); + sOldVcdVatCmd = mVcdVatCmd; + } + + if (data_804515D4[0] != 0 && !mHasPNMTXIdx) + mCurrentMtx.load(); + + loadVtxArray(); + for (u16 n = getMtxGroupNum(), i = 0; i < n; i++) + if (getShapeDraw(i) != NULL) + getShapeDraw(i)->draw(); } -#pragma pop diff --git a/libs/JSystem/J3DGraphBase/J3DShapeDraw.cpp b/libs/JSystem/J3DGraphBase/J3DShapeDraw.cpp index befab13ce84..6da5f00bcd0 100644 --- a/libs/JSystem/J3DGraphBase/J3DShapeDraw.cpp +++ b/libs/JSystem/J3DGraphBase/J3DShapeDraw.cpp @@ -4,46 +4,85 @@ // #include "JSystem/J3DGraphBase/J3DShapeDraw.h" +#include "JSystem/JKernel/JKRHeap.h" #include "dol2asm.h" +#include "dolphin/os/OSCache.h" #include "dolphin/gx/GX.h" #include "dolphin/types.h" - -// -// Forward References: -// - -extern "C" void countVertex__12J3DShapeDrawFUl(); -extern "C" void addTexMtxIndexInDL__12J3DShapeDrawFUlUlUl(); -extern "C" void __ct__12J3DShapeDrawFPCUcUl(); -extern "C" void draw__12J3DShapeDrawCFv(); -extern "C" void __dt__12J3DShapeDrawFv(); +#include "MSL_C/MSL_Common/Src/string.h" // // External References: // -SECTION_INIT void memcpy(); +extern "C" void countVertex__12J3DShapeDrawFUl(); extern "C" void* __nwa__FUli(); extern "C" void __dl__FPv(); -extern "C" void DCStoreRange(); extern "C" void _savegpr_18(); extern "C" void _restgpr_18(); -// -// Declarations: -// - /* 80314924-80314974 30F264 0050+00 1/1 0/0 0/0 .text countVertex__12J3DShapeDrawFUl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapeDraw::countVertex(u32 param_0) { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeDraw/countVertex__12J3DShapeDrawFUl.s" +u32 J3DShapeDraw::countVertex(u32 stride) { + u32 count = 0; + u32 dlStart = (u32)getDisplayList(); + for (u8* dl = (u8*)dlStart; ((u32)dl - dlStart) < getDisplayListSize();) { + if (*dl != 0xA0 && *dl != 0x98) + break; + u16 vtxNum = *((u16*)(dl + 1)); + count += vtxNum; + dl += stride * vtxNum; + dl += 3; + } + return count; } -#pragma pop +#ifdef NONMATCHING /* 80314974-80314ABC 30F2B4 0148+00 0/0 1/1 0/0 .text addTexMtxIndexInDL__12J3DShapeDrawFUlUlUl */ +void J3DShapeDraw::addTexMtxIndexInDL(u32 stride, u32 attrOffs, u32 valueBase) { + u32 byteNum = countVertex(stride); + u32 newSize = ALIGN_NEXT(mDisplayListSize + byteNum, 0x20); + u8* newDLStart = new (0x20) u8[newSize]; + u8* oldDLStart = getDisplayList(); + u8* oldDL = oldDLStart; + u8* newDL = newDLStart; + for (; (oldDL - oldDLStart) < mDisplayListSize;) { + // Copy command + u8 h = *oldDL; + *newDL++ = h; + + if (h != 0xA0 && h != 0x98) + break; + + // Copy count + // regalloc (I suspect there's a way to shove this in a u16 temp without an mr) + u32 vtxNum = *((u16*)(oldDL + 1)); + *((u16*)newDL) = vtxNum; + newDL += 2; + + for (s32 i = 0; i < (u16)vtxNum; i++) { + // mul arg swap + u8* oldDLVtx = (&oldDL[stride * i + 3]); + u8 pnmtxidx = *oldDLVtx; + memcpy(newDL, oldDLVtx, attrOffs); + u8* newDL1 = &newDL[attrOffs]; + *newDL1++ = valueBase + pnmtxidx; + memcpy(newDL1, oldDLVtx + attrOffs, stride - attrOffs); + newDL = newDL1 + (stride - attrOffs); + } + + oldDL += stride * vtxNum; + oldDL += 3; + } + + u32 realSize = ALIGN_NEXT((u32)newDL - (u32)newDLStart, 0x20); + for (; (newDL - newDLStart) < newSize; newDL++) + *newDL = 0; + mDisplayListSize = realSize; + mDisplayList = newDLStart; + DCStoreRange(newDLStart, mDisplayListSize); +} +#else + #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -53,6 +92,8 @@ asm void J3DShapeDraw::addTexMtxIndexInDL(u32 param_0, u32 param_1, u32 param_2) } #pragma pop +#endif + /* 80314ABC-80314AD4 30F3FC 0018+00 0/0 1/1 0/0 .text __ct__12J3DShapeDrawFPCUcUl */ J3DShapeDraw::J3DShapeDraw(u8 const* displayList, u32 displayListSize) { mDisplayList = (void*)displayList; diff --git a/libs/JSystem/J3DGraphBase/J3DShapeMtx.cpp b/libs/JSystem/J3DGraphBase/J3DShapeMtx.cpp index 1615479a07e..20b5ce966a9 100644 --- a/libs/JSystem/J3DGraphBase/J3DShapeMtx.cpp +++ b/libs/JSystem/J3DGraphBase/J3DShapeMtx.cpp @@ -4,20 +4,13 @@ // #include "JSystem/J3DGraphBase/J3DShapeMtx.h" +#include "JSystem/J3DGraphAnimator/J3DModel.h" +#include "JSystem/J3DGraphAnimator/J3DModelData.h" +#include "JSystem/J3DGraphBase/J3DPacket.h" +#include "JSystem/J3DGraphBase/J3DSys.h" #include "dol2asm.h" #include "dolphin/types.h" -// -// Types: -// - -struct J3DTextureSRTInfo {}; - -struct J3DSys { - /* 8030FEC0 */ void loadPosMtxIndx(int, u16) const; - /* 8030FEE4 */ void loadNrmMtxIndx(int, u16) const; -}; - // // Forward References: // @@ -78,6 +71,12 @@ extern "C" u8 sTexMtxObj__17J3DDifferedTexMtx[4]; // External References: // +void J3DFifoLoadPosMtxImm(Mtx, u32); +void J3DFifoLoadNrmMtxImm(Mtx, u32); +void J3DFifoLoadNrmMtxImm3x3(Mtx33, u32); +void J3DFifoLoadNrmMtxToTexMtx(Mtx, u32); +void J3DFifoLoadNrmMtxToTexMtx33(Mtx33, u32); + extern "C" bool getUseMtxNum__11J3DShapeMtxCFv(); extern "C" void __dl__FPv(); extern "C" void J3DFifoLoadPosMtxImm__FPA4_fUl(); @@ -97,8 +96,6 @@ extern "C" void J3DGetTextureMtxMayaOld__FRC17J3DTextureSRTInfoPA4_f(); extern "C" void J3DScaleNrmMtx__FPA4_fRC3Vec(); extern "C" void J3DScaleNrmMtx33__FPA3_fRC3Vec(); extern "C" void J3DMtxProjConcat__FPA4_fPA4_fPA4_f(); -extern "C" void GXSetArray(); -extern "C" void GXLoadTexMtxImm(); extern "C" void __ptmf_scall(); extern "C" void _savegpr_22(); extern "C" void _savegpr_25(); @@ -110,7 +107,6 @@ extern "C" void _restgpr_25(); extern "C" void _restgpr_27(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); -extern "C" extern u8 j3dSys[284]; // // Declarations: @@ -135,45 +131,37 @@ void J3DShapeMtx::resetMtxLoadCache() { sMtxLoadCache[0] = 0xFFFF; } -/* 803130E4-80313128 30DA24 0044+00 1/0 0/0 0/0 .text loadMtxIndx_PNGP__11J3DShapeMtxCFiUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapeMtx::loadMtxIndx_PNGP(int param_0, u16 param_1) const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxIndx_PNGP__11J3DShapeMtxCFiUs.s" +static inline void J3DFifoLoadIndx(u8 cmd, u16 indx, u16 addr) { + GFX_FIFO(u8) = cmd; + GFX_FIFO(u16) = indx; + GFX_FIFO(u16) = addr; +} + +/* 803130E4-80313128 30DA24 0044+00 1/0 0/0 0/0 .text loadMtxIndx_PNGP__11J3DShapeMtxCFiUs */ +void J3DShapeMtx::loadMtxIndx_PNGP(int slot, u16 indx) const { + // inlined J3DFifoLoadPosMtxIndx + J3DFifoLoadIndx(GX_CMD_LOAD_INDX_A, indx, 0xB000 | ((u16)(slot * 0x0C))); + // inlined J3DFifoLoadNrmMtxIndx3x3 + J3DFifoLoadIndx(GX_CMD_LOAD_INDX_B, indx, 0x8000 | ((u16)((slot * 0x09) + 0x400))); } -#pragma pop /* 80313128-80313188 30DA68 0060+00 1/0 0/0 0/0 .text loadMtxIndx_PCPU__11J3DShapeMtxCFiUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapeMtx::loadMtxIndx_PCPU(int param_0, u16 param_1) const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxIndx_PCPU__11J3DShapeMtxCFiUs.s" +void J3DShapeMtx::loadMtxIndx_PCPU(int slot, u16 indx) const { + J3DFifoLoadPosMtxImm(*j3dSys.getShapePacket()->getBaseMtxPtr(), slot * 3); + j3dSys.loadNrmMtxIndx(slot, indx); } -#pragma pop /* 80313188-803131D4 30DAC8 004C+00 1/0 0/0 0/0 .text loadMtxIndx_NCPU__11J3DShapeMtxCFiUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapeMtx::loadMtxIndx_NCPU(int param_0, u16 param_1) const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxIndx_NCPU__11J3DShapeMtxCFiUs.s" +void J3DShapeMtx::loadMtxIndx_NCPU(int slot, u16 indx) const { + j3dSys.loadPosMtxIndx(slot, indx); + J3DFifoLoadNrmMtxImm(*j3dSys.getShapePacket()->getBaseMtxPtr(), slot * 3); } -#pragma pop /* 803131D4-8031322C 30DB14 0058+00 1/0 0/0 0/0 .text loadMtxIndx_PNCPU__11J3DShapeMtxCFiUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapeMtx::loadMtxIndx_PNCPU(int param_0, u16 param_1) const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxIndx_PNCPU__11J3DShapeMtxCFiUs.s" +void J3DShapeMtx::loadMtxIndx_PNCPU(int slot, u16 indx) const { + J3DFifoLoadPosMtxImm(*j3dSys.getShapePacket()->getBaseMtxPtr(), slot * 3); + J3DFifoLoadNrmMtxImm(*j3dSys.getShapePacket()->getBaseMtxPtr(), slot * 3); } -#pragma pop /* ############################################################################################## */ /* 803CD990-803CD99C -00001 000C+00 1/1 0/0 0/0 .data @832 */ @@ -409,58 +397,60 @@ asm void J3DDifferedTexMtx::loadExecute(f32 const (*param_0)[4]) { /* 80313828-803138C8 30E168 00A0+00 1/0 0/0 0/0 .text * loadMtxConcatView_PNGP__21J3DShapeMtxConcatViewCFiUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapeMtxConcatView::loadMtxConcatView_PNGP(int param_0, u16 param_1) const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxConcatView_PNGP__21J3DShapeMtxConcatViewCFiUs.s" +void J3DShapeMtxConcatView::loadMtxConcatView_PNGP(int slot, u16 drw) const { + Mtx m; + PSMTXConcat(*j3dSys.getShapePacket()->getBaseMtxPtr(), j3dSys.getModelDrawMtx(drw), m); + J3DDifferedTexMtx::load(m); + J3DFifoLoadPosMtxImm(m, slot * 3); + loadNrmMtx(slot, drw, m); } -#pragma pop /* 803138C8-8031396C 30E208 00A4+00 2/0 0/0 0/0 .text * loadMtxConcatView_PCPU__21J3DShapeMtxConcatViewCFiUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapeMtxConcatView::loadMtxConcatView_PCPU(int param_0, u16 param_1) const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxConcatView_PCPU__21J3DShapeMtxConcatViewCFiUs.s" +void J3DShapeMtxConcatView::loadMtxConcatView_PCPU(int slot, u16 drw) const { + Mtx m; + PSMTXConcat(*j3dSys.getShapePacket()->getBaseMtxPtr(), j3dSys.getModelDrawMtx(drw), m); + J3DDifferedTexMtx::load(m); + J3DFifoLoadPosMtxImm(*j3dSys.getShapePacket()->getBaseMtxPtr(), slot * 3); + loadNrmMtx(slot, drw, m); } -#pragma pop /* 8031396C-80313A14 30E2AC 00A8+00 2/0 0/0 0/0 .text * loadMtxConcatView_NCPU__21J3DShapeMtxConcatViewCFiUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapeMtxConcatView::loadMtxConcatView_NCPU(int param_0, u16 param_1) const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxConcatView_NCPU__21J3DShapeMtxConcatViewCFiUs.s" +void J3DShapeMtxConcatView::loadMtxConcatView_NCPU(int slot, u16 drw) const { + Mtx m; + PSMTXConcat(*j3dSys.getShapePacket()->getBaseMtxPtr(), j3dSys.getModelDrawMtx(drw), m); + J3DDifferedTexMtx::load(m); + J3DFifoLoadPosMtxImm(m, slot * 3); + J3DFifoLoadNrmMtxImm(*j3dSys.getShapePacket()->getBaseMtxPtr(), slot * 3); + if (J3DShapeMtx::sTexMtxLoadType == 0x2000) + J3DFifoLoadNrmMtxToTexMtx(*j3dSys.getShapePacket()->getBaseMtxPtr(), slot * 3 + GX_TEXMTX0); } -#pragma pop /* 80313A14-80313AC8 30E354 00B4+00 2/0 0/0 0/0 .text * loadMtxConcatView_PNCPU__21J3DShapeMtxConcatViewCFiUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapeMtxConcatView::loadMtxConcatView_PNCPU(int param_0, u16 param_1) const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxConcatView_PNCPU__21J3DShapeMtxConcatViewCFiUs.s" +void J3DShapeMtxConcatView::loadMtxConcatView_PNCPU(int slot, u16 drw) const { + Mtx m; + if (J3DDifferedTexMtx::sTexGenBlock != NULL) { + PSMTXConcat(*j3dSys.getShapePacket()->getBaseMtxPtr(), j3dSys.getModelDrawMtx(drw), m); + J3DDifferedTexMtx::loadExecute(m); + } + J3DFifoLoadPosMtxImm(*j3dSys.getShapePacket()->getBaseMtxPtr(), slot * 3); + J3DFifoLoadNrmMtxImm(*j3dSys.getShapePacket()->getBaseMtxPtr(), slot * 3); + if (J3DShapeMtx::sTexMtxLoadType == 0x2000) + J3DFifoLoadNrmMtxToTexMtx(*j3dSys.getShapePacket()->getBaseMtxPtr(), slot * 3 + GX_TEXMTX0); } -#pragma pop /* 80313AC8-80313B94 30E408 00CC+00 1/0 0/0 0/0 .text * loadMtxConcatView_PNGP_LOD__21J3DShapeMtxConcatViewCFiUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapeMtxConcatView::loadMtxConcatView_PNGP_LOD(int param_0, u16 param_1) const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/loadMtxConcatView_PNGP_LOD__21J3DShapeMtxConcatViewCFiUs.s" +void J3DShapeMtxConcatView::loadMtxConcatView_PNGP_LOD(int slot, u16 drw) const { + Mtx m; + PSMTXConcat(*j3dSys.getShapePacket()->getBaseMtxPtr(), j3dSys.getModelDrawMtx(drw), m); + PSMTXConcat(m, j3dSys.mModel->getModelData()->getInvJointMtx(drw), m); + J3DDifferedTexMtx::load(m); + J3DFifoLoadPosMtxImm(m, slot * 3); + loadNrmMtx(slot, drw, m); } -#pragma pop /* 80313B94-80313BF0 30E4D4 005C+00 1/0 0/0 0/0 .text load__11J3DShapeMtxCFv */ #pragma push @@ -678,14 +668,9 @@ extern "C" asm void __dt__28J3DShapeMtxYBBoardConcatViewFv() { /* 8031458C-80314598 30EECC 000C+00 1/0 0/0 0/0 .text getType__28J3DShapeMtxYBBoardConcatViewCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapeMtxYBBoardConcatView::getType() const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__28J3DShapeMtxYBBoardConcatViewCFv.s" +u32 J3DShapeMtxYBBoardConcatView::getType() const { + return 'SMYB'; } -#pragma pop /* 80314598-8031459C 30EED8 0004+00 3/0 0/0 0/0 .text loadNrmMtx__21J3DShapeMtxConcatViewCFiUs */ void J3DShapeMtxConcatView::loadNrmMtx(int param_0, u16 param_1) const { @@ -694,14 +679,9 @@ void J3DShapeMtxConcatView::loadNrmMtx(int param_0, u16 param_1) const { /* 8031459C-803145A4 30EEDC 0008+00 4/0 0/0 0/0 .text getUseMtxIndex__11J3DShapeMtxCFUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapeMtx::getUseMtxIndex(u16 param_0) const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/getUseMtxIndex__11J3DShapeMtxCFUs.s" +u32 J3DShapeMtx::getUseMtxIndex(u16 param_0) const { + return mUseMtxIndex; } -#pragma pop /* 803145A4-80314610 30EEE4 006C+00 1/0 0/0 0/0 .text __dt__27J3DShapeMtxBBoardConcatViewFv */ #pragma push @@ -715,14 +695,9 @@ extern "C" asm void __dt__27J3DShapeMtxBBoardConcatViewFv() { #pragma pop /* 80314610-8031461C 30EF50 000C+00 1/0 0/0 0/0 .text getType__27J3DShapeMtxBBoardConcatViewCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapeMtxBBoardConcatView::getType() const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__27J3DShapeMtxBBoardConcatViewCFv.s" +u32 J3DShapeMtxBBoardConcatView::getType() const { + return 'SMBB'; } -#pragma pop /* 8031461C-80314688 30EF5C 006C+00 1/0 0/0 0/0 .text __dt__26J3DShapeMtxMultiConcatViewFv */ #pragma push @@ -736,36 +711,21 @@ extern "C" asm void __dt__26J3DShapeMtxMultiConcatViewFv() { #pragma pop /* 80314688-80314694 30EFC8 000C+00 1/0 0/0 0/0 .text getType__26J3DShapeMtxMultiConcatViewCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapeMtxMultiConcatView::getType() const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__26J3DShapeMtxMultiConcatViewCFv.s" +u32 J3DShapeMtxMultiConcatView::getType() const { + return 'SMMC'; } -#pragma pop /* 80314694-8031469C 30EFD4 0008+00 1/0 0/0 0/0 .text * getUseMtxNum__26J3DShapeMtxMultiConcatViewCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapeMtxMultiConcatView::getUseMtxNum() const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/getUseMtxNum__26J3DShapeMtxMultiConcatViewCFv.s" +u32 J3DShapeMtxMultiConcatView::getUseMtxNum() const { + return mUseMtxNum; } -#pragma pop /* 8031469C-803146AC 30EFDC 0010+00 1/0 0/0 0/0 .text * getUseMtxIndex__26J3DShapeMtxMultiConcatViewCFUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapeMtxMultiConcatView::getUseMtxIndex(u16 param_0) const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/getUseMtxIndex__26J3DShapeMtxMultiConcatViewCFUs.s" +u32 J3DShapeMtxMultiConcatView::getUseMtxIndex(u16 no) const { + return mUseMtxIndex[no]; } -#pragma pop /* 803146AC-803146B0 30EFEC 0004+00 1/0 0/0 0/0 .text * loadNrmMtx__26J3DShapeMtxMultiConcatViewCFiUs */ @@ -785,35 +745,20 @@ extern "C" asm void __dt__16J3DShapeMtxMultiFv() { #pragma pop /* 8031470C-80314718 30F04C 000C+00 1/0 0/0 0/0 .text getType__16J3DShapeMtxMultiCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapeMtxMulti::getType() const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__16J3DShapeMtxMultiCFv.s" +u32 J3DShapeMtxMulti::getType() const { + return 'SMML'; } -#pragma pop /* 80314718-80314720 30F058 0008+00 1/0 0/0 0/0 .text getUseMtxNum__16J3DShapeMtxMultiCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapeMtxMulti::getUseMtxNum() const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/getUseMtxNum__16J3DShapeMtxMultiCFv.s" +u32 J3DShapeMtxMulti::getUseMtxNum() const { + return mUseMtxNum; } -#pragma pop /* 80314720-80314730 30F060 0010+00 1/0 0/0 0/0 .text getUseMtxIndex__16J3DShapeMtxMultiCFUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapeMtxMulti::getUseMtxIndex(u16 param_0) const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/getUseMtxIndex__16J3DShapeMtxMultiCFUs.s" +u32 J3DShapeMtxMulti::getUseMtxIndex(u16 no) const { + return mUseMtxIndex[no]; } -#pragma pop /* 80314730-8031478C 30F070 005C+00 1/0 0/0 0/0 .text __dt__21J3DShapeMtxConcatViewFv */ #pragma push @@ -828,34 +773,18 @@ extern "C" asm void __dt__21J3DShapeMtxConcatViewFv() { /* 8031478C-80314798 30F0CC 000C+00 1/0 0/0 0/0 .text getType__21J3DShapeMtxConcatViewCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapeMtxConcatView::getType() const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__21J3DShapeMtxConcatViewCFv.s" +u32 J3DShapeMtxConcatView::getType() const { + return 'SMCV'; } -#pragma pop /* 80314798-803147E0 30F0D8 0048+00 1/0 0/0 0/0 .text __dt__11J3DShapeMtxFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm J3DShapeMtx::~J3DShapeMtx() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/__dt__11J3DShapeMtxFv.s" +J3DShapeMtx::~J3DShapeMtx() { } -#pragma pop /* 803147E0-803147EC 30F120 000C+00 1/0 0/0 0/0 .text getType__11J3DShapeMtxCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DShapeMtx::getType() const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DShapeMtx/getType__11J3DShapeMtxCFv.s" +u32 J3DShapeMtx::getType() const { + return 'SMTX'; } -#pragma pop /* 803147EC-80314924 30F12C 0138+00 0/0 1/0 0/0 .text __sinit_J3DShapeMtx_cpp */ #pragma push diff --git a/libs/JSystem/J3DGraphBase/J3DSys.cpp b/libs/JSystem/J3DGraphBase/J3DSys.cpp index 18c2fd88461..1a19fd9cd6d 100644 --- a/libs/JSystem/J3DGraphBase/J3DSys.cpp +++ b/libs/JSystem/J3DGraphBase/J3DSys.cpp @@ -4,56 +4,32 @@ // #include "JSystem/J3DGraphBase/J3DSys.h" + #include "dol2asm.h" -#include "dolphin/gx/GXPixel.h" #include "dolphin/types.h" +#include "dolphin/gx/GXPixel.h" +#include "dolphin/os/OS.h" + +#include "JSystem/J3DGraphBase/J3DTevs.h" + +#include "JSystem/J3DGraphBase/J3DTexture.h" // // Forward References: // -extern "C" void __ct__6J3DSysFv(); -extern "C" void loadPosMtxIndx__6J3DSysCFiUs(); -extern "C" void loadNrmMtxIndx__6J3DSysCFiUs(); -extern "C" void setTexCacheRegion__6J3DSysF15_GXTexCacheSize(); -extern "C" void drawInit__6J3DSysFv(); -extern "C" void reinitGX__6J3DSysFv(); -extern "C" void reinitGenMode__6J3DSysFv(); -extern "C" void reinitLighting__6J3DSysFv(); -extern "C" void reinitTransform__6J3DSysFv(); -extern "C" void reinitTexture__6J3DSysFv(); -extern "C" void reinitTevStages__6J3DSysFv(); -extern "C" void reinitIndStages__6J3DSysFv(); -extern "C" void reinitPixelProc__6J3DSysFv(); -extern "C" void __sinit_J3DSys_cpp(); -extern "C" u8 mCurrentMtx__6J3DSys[48]; -extern "C" f32 mCurrentS__6J3DSys[3]; -extern "C" f32 mParentS__6J3DSys[3]; -extern "C" u8 sTexCoordScaleTable__6J3DSys[64 + 4 /* padding */]; -extern "C" extern u8 j3dDefaultViewNo[4 + 4 /* padding */]; - -// -// External References: -// - -extern "C" void J3DFifoLoadTexCached__F11_GXTexMapIDUl15_GXTexCacheSizeUl15_GXTexCacheSize(); -extern "C" void makeTexCoordTable__Fv(); -extern "C" void makeAlphaCmpTable__Fv(); -extern "C" void makeZModeTable__Fv(); -extern "C" void makeTevSwapTable__Fv(); +extern void J3DFifoLoadTexCached(GXTexMapID, u32, GXTexCacheSize, u32, GXTexCacheSize); +extern void makeTexCoordTable(); +extern void makeAlphaCmpTable(); +extern void makeZModeTable(); +extern void makeTevSwapTable(); extern "C" void GXInvalidateVtxCache(); -extern "C" void GXFlush(); -extern "C" void GXInitTexCacheRegion(); -extern "C" void _savegpr_25(); -extern "C" void _savegpr_28(); -extern "C" void _restgpr_25(); -extern "C" void _restgpr_28(); -extern "C" extern u8 const j3dDefaultTexCoordInfo[32]; -extern "C" extern u32 j3dDefaultColInfo; -extern "C" extern u32 data_804563C8; -extern "C" extern u32 j3dDefaultTevColor; -extern "C" extern u32 data_804563D8; -extern "C" extern u32 j3dDefaultTevKColor; + +extern "C" extern J3DDefaultTexCoordInfo const j3dDefaultTexCoordInfo[8]; +extern "C" extern const GXColor j3dDefaultColInfo; +extern "C" extern u8 data_804563C8; +extern "C" extern const GXColorS10 j3dDefaultTevColor; +extern "C" extern const GXColor j3dDefaultTevKColor; // // Declarations: @@ -73,69 +49,82 @@ Vec J3DSys::mCurrentS; Vec J3DSys::mParentS; /* 80434C2C-80434C70 06194C 0040+04 1/1 17/17 0/0 .bss sTexCoordScaleTable__6J3DSys */ -u16 J3DSys::sTexCoordScaleTable[34]; +u16 J3DSys::sTexCoordScaleTable[32]; /* 8030FDE8-8030FEC0 30A728 00D8+00 1/1 0/0 0/0 .text __ct__6J3DSysFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm J3DSys::J3DSys() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DSys/__ct__6J3DSysFv.s" +J3DSys::J3DSys() { + makeTexCoordTable(); + makeTevSwapTable(); + makeAlphaCmpTable(); + makeZModeTable(); + + mFlags = 0; + PSMTXIdentity(mViewMtx); + mDrawMode = 1; + mMaterialMode = 0; + mModel = NULL; + mShape = NULL; + for (u32 i = 0; i < ARRAY_SIZE(mDrawBuffer); i++) + mDrawBuffer[i] = NULL; + mTexture = NULL; + mMatPacket = NULL; + mShapePacket = NULL; + mModelDrawMtx = NULL; + mModelNrmMtx = NULL; + mVtxPos = NULL; + 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; + } +} + +static inline void J3DFifoLoadIndx(u8 cmd, u16 indx, u16 addr) { + GFX_FIFO(u8) = cmd; + GFX_FIFO(u16) = indx; + GFX_FIFO(u16) = addr; } -#pragma pop /* 8030FEC0-8030FEE4 30A800 0024+00 0/0 1/1 0/0 .text loadPosMtxIndx__6J3DSysCFiUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DSys::loadPosMtxIndx(int param_0, u16 param_1) const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DSys/loadPosMtxIndx__6J3DSysCFiUs.s" +void J3DSys::loadPosMtxIndx(int addr, u16 indx) const { + J3DFifoLoadIndx(GX_CMD_LOAD_INDX_A, indx, 0xB000 | ((u16)(addr * 0x0C))); } -#pragma pop /* 8030FEE4-8030FF0C 30A824 0028+00 0/0 1/1 0/0 .text loadNrmMtxIndx__6J3DSysCFiUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DSys::loadNrmMtxIndx(int param_0, u16 param_1) const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DSys/loadNrmMtxIndx__6J3DSysCFiUs.s" +void J3DSys::loadNrmMtxIndx(int addr, u16 indx) const { + J3DFifoLoadIndx(GX_CMD_LOAD_INDX_B, indx, 0x8000 | ((u16)((addr * 0x09) + 0x400))); } -#pragma pop - -/* ############################################################################################## */ -/* 803A1DF8-803A1E08 02E458 0010+00 1/1 0/0 0/0 .rodata @695 */ -SECTION_RODATA static u8 const lit_695[16] = { - 0x00, 0x00, 0x80, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x803A1DF8, &lit_695); - -/* 803A1E08-803A1E18 02E468 0010+00 1/1 0/0 0/0 .rodata @696 */ -SECTION_RODATA static u8 const lit_696[16] = { - 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x803A1E08, &lit_696); /* 8030FF0C-803100BC 30A84C 01B0+00 1/1 0/0 0/0 .text setTexCacheRegion__6J3DSysF15_GXTexCacheSize */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DSys::setTexCacheRegion(_GXTexCacheSize param_0) { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DSys/setTexCacheRegion__6J3DSysF15_GXTexCacheSize.s" -} -#pragma pop +void J3DSys::setTexCacheRegion(GXTexCacheSize size) { + const u32 kSize[] = { 0x00008000, 0x00020000, 0x00080000, 0x00000000, }; + const u32 kRegionNum[] = { 8, 4, 1, 0 }; -/* ############################################################################################## */ -/* 803A1E18-803A1E30 02E478 0018+00 1/1 0/0 0/0 .rodata @737 */ -SECTION_RODATA static u8 const lit_737[24] = { - 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x803A1E18, &lit_737); + u32 regionNum = kRegionNum[size]; + mTexCacheRegionNum = regionNum; + + if (!!(mFlags & 0x80000000)) { + for (u32 i = 0; i < regionNum; i++) { + if (!!(i & 1)) { + GXInitTexCacheRegion(&mTexCacheRegion[i], GX_FALSE, i * kSize[size] + 0x80000, size, i * kSize[size], size); + J3DFifoLoadTexCached((GXTexMapID) i, i * kSize[size] + 0x80000, size, i * kSize[size], size); + } else { + GXInitTexCacheRegion(&mTexCacheRegion[i], GX_FALSE, i * kSize[size], size, i * kSize[size] + 0x80000, size); + J3DFifoLoadTexCached((GXTexMapID) i, i * kSize[size], size, i * kSize[size] + 0x80000, size); + } + } + } else { + for (u32 i = 0; i < regionNum; i++) { + GXInitTexCacheRegion(&mTexCacheRegion[i], GX_FALSE, i * kSize[size], size, i * kSize[size] + 0x80000, size); + J3DFifoLoadTexCached((GXTexMapID) i, i * kSize[size], size, i * kSize[size] + 0x80000, size); + } + } +} /* 803CD8A0-803CD8B0 02A9C0 0010+00 1/1 0/0 0/0 .data NullTexData */ SECTION_DATA static u8 NullTexData[16] = { @@ -143,21 +132,112 @@ SECTION_DATA static u8 NullTexData[16] = { }; /* 803CD8B0-803CD8E0 02A9D0 0030+00 1/1 0/0 0/0 .data j3dIdentityMtx */ -SECTION_DATA static u8 j3dIdentityMtx[48] = { - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +SECTION_DATA static Mtx j3dIdentityMtx = { + 1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, }; /* 803100BC-8031073C 30A9FC 0680+00 0/0 3/3 0/0 .text drawInit__6J3DSysFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DSys::drawInit() { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DSys/drawInit__6J3DSysFv.s" +void J3DSys::drawInit() { + GXInvalidateVtxCache(); + GXSetCurrentMtx(GX_PNMTX0); + GXSetCullMode(GX_CULL_BACK); + GXSetCoPlanar(GX_FALSE); + GXSetClipMode(GX_FALSE); + GXSetColorUpdate(GX_TRUE); + GXSetDither(GX_TRUE); + GXSetBlendMode(GX_BM_BLEND, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, GX_LO_NOOP); + GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_AND, GX_ALWAYS, 0); + GXSetZMode(GX_TRUE, GX_LEQUAL, GX_TRUE); + GXSetZCompLoc(GX_TRUE); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_NRM, GX_NRM_XYZ, GX_F32, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR1, GX_CLR_RGBA, GX_RGBA8, 0); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_CLR_RGBA, GX_RGBA4, 7); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX1, GX_CLR_RGBA, GX_RGBA4, 7); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX2, GX_CLR_RGBA, GX_RGBA4, 7); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX3, GX_CLR_RGBA, GX_RGBA4, 7); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX4, GX_CLR_RGBA, GX_RGBA4, 7); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX5, GX_CLR_RGBA, GX_RGBA4, 7); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX6, GX_CLR_RGBA, GX_RGBA4, 7); + GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX7, GX_CLR_RGBA, GX_RGBA4, 7); + + GXSetNumIndStages(0); + reinitTexture(); + + GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL); + GXSetTevOrder(GX_TEVSTAGE1, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL); + GXSetTevOrder(GX_TEVSTAGE2, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL); + GXSetTevOrder(GX_TEVSTAGE3, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL); + GXSetTevOrder(GX_TEVSTAGE4, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL); + GXSetTevOrder(GX_TEVSTAGE5, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL); + GXSetTevOrder(GX_TEVSTAGE6, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL); + GXSetTevOrder(GX_TEVSTAGE7, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL); + GXSetTevOrder(GX_TEVSTAGE8, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL); + GXSetTevOrder(GX_TEVSTAGE9, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL); + GXSetTevOrder(GX_TEVSTAGE10, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL); + GXSetTevOrder(GX_TEVSTAGE11, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL); + GXSetTevOrder(GX_TEVSTAGE12, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL); + GXSetTevOrder(GX_TEVSTAGE13, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL); + GXSetTevOrder(GX_TEVSTAGE14, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL); + GXSetTevOrder(GX_TEVSTAGE15, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL); + + for (u32 i = 0; i < 10; i++) + GXLoadTexMtxImm(j3dIdentityMtx, GX_TEXMTX0 + i * 3, GX_MTX3x4); + + Mtx23 indTexMtx = { + { 0.5f, 0.0f, 0.0f }, + { 0.0f, 0.5f, 0.0f }, + }; + + u8 i; + for (i = 0; i < 3; i++) + GXSetIndTexMtx((GXIndTexMtxID)(GX_ITM_0 + i), indTexMtx, 1); + + GXSetChanMatColor(GX_COLOR0A0, j3dDefaultColInfo); + GXSetChanMatColor(GX_COLOR1A1, j3dDefaultColInfo); + + GXSetNumChans(data_804563C8); + GXSetNumTexGens(1); + GXSetNumTevStages(1); + GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_CLAMP, GX_AF_NONE); + GXSetChanCtrl(GX_COLOR1A1, GX_FALSE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_CLAMP, GX_AF_NONE); + + for (i = 0; i < GX_MAX_TEXMAP; i++) + GXSetTexCoordGen2((GXTexCoordID)i, (GXTexGenType) j3dDefaultTexCoordInfo[i].mTexGenType, (GXTexGenSrc) j3dDefaultTexCoordInfo[i].mTexGenSrc, j3dDefaultTexCoordInfo[i].mTexGenMtx, GX_FALSE, GX_PTIDENTITY); + + for (i = 0; i < GX_MAX_INDTEXSTAGE; i++) + GXSetIndTexCoordScale((GXIndTexStageID)i, GX_ITS_1, GX_ITS_1); + + for (i = 0; i < GX_MAX_TEVREG; i++) + GXSetTevKColor((GXTevKColorID)i, j3dDefaultTevKColor); + + for (i = 0; i < GX_MAX_TEVREG; i++) + GXSetTevColorS10((GXTevRegID)i, j3dDefaultTevColor); + + for (i = 0; i < GX_MAX_TEVSTAGE; i++) { + GXSetTevColorIn((GXTevStageID)i, GX_CC_RASC, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO); + GXSetTevColorOp((GXTevStageID)i, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + GXSetTevAlphaIn((GXTevStageID)i, GX_CA_RASA, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO); + GXSetTevAlphaOp((GXTevStageID)i, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); + } + + for (i = 0; i < GX_MAX_TEVSTAGE; i++) + GXSetTevSwapMode((GXTevStageID)i, GX_TEV_SWAP0, GX_TEV_SWAP0); + + GXSetTevSwapModeTable(GX_TEV_SWAP0, GX_CH_RED, GX_CH_GREEN, GX_CH_BLUE, GX_CH_ALPHA); + GXSetTevSwapModeTable(GX_TEV_SWAP1, GX_CH_RED, GX_CH_RED, GX_CH_RED, GX_CH_ALPHA); + GXSetTevSwapModeTable(GX_TEV_SWAP2, GX_CH_GREEN, GX_CH_GREEN, GX_CH_GREEN, GX_CH_ALPHA); + GXSetTevSwapModeTable(GX_TEV_SWAP3, GX_CH_BLUE, GX_CH_BLUE, GX_CH_BLUE, GX_CH_ALPHA); + + for (i = 0; i < GX_MAX_TEVSTAGE; i++) + GXSetTevIndirect((GXTevStageID)i, GX_INDTEXSTAGE0, GX_ITF_8, GX_ITB_NONE, GX_ITM_OFF, GX_ITW_OFF, GX_ITW_OFF, GX_FALSE, GX_FALSE, GX_ITBA_OFF); + + OSInitFastCast(); + setTexCacheRegion(GX_TEXCACHE_32K); } -#pragma pop /* 8031073C-8031079C 30B07C 0060+00 0/0 16/16 6/6 .text reinitGX__6J3DSysFv */ void J3DSys::reinitGX() { diff --git a/libs/JSystem/J3DGraphBase/J3DTevs.cpp b/libs/JSystem/J3DGraphBase/J3DTevs.cpp index 40713352467..6937f2988ea 100644 --- a/libs/JSystem/J3DGraphBase/J3DTevs.cpp +++ b/libs/JSystem/J3DGraphBase/J3DTevs.cpp @@ -5,6 +5,7 @@ #include "JSystem/J3DGraphBase/J3DTevs.h" #include "JSystem/J3DGraphBase/J3DSys.h" +#include "JSystem/J3DGraphBase/J3DTexture.h" #include "dol2asm.h" #include "dolphin/types.h" @@ -12,17 +13,6 @@ // Types: // -struct J3DTexMtx { - /* 803238C4 */ void load(u32) const; - /* 80323900 */ void calc(f32 const (*)[4]); - /* 80323920 */ void calcTexMtx(f32 const (*)[4]); - /* 80323C0C */ void calcPostTexMtx(f32 const (*)[4]); - /* 80324358 */ void loadTexMtx(u32) const; - /* 803243BC */ void loadPostTexMtx(u32) const; -}; - -struct J3DTexCoord {}; - struct J3DNBTScale {}; struct J3DLightObj { @@ -52,15 +42,14 @@ extern "C" void loadTexMtx__9J3DTexMtxCFUl(); extern "C" void loadPostTexMtx__9J3DTexMtxCFUl(); extern "C" static void J3DGDLoadTexMtxImm__FPA4_fUl13_GXTexMtxType(); extern "C" static void J3DGDLoadPostTexMtxImm__FPA4_fUl(); -extern "C" extern u32 j3dDefaultColInfo; +extern "C" extern GXColor j3dDefaultColInfo; extern "C" extern u32 j3dDefaultAmbInfo; -extern "C" extern u32 data_804563C8; +extern "C" extern u8 data_804563C8; extern "C" extern u32 j3dDefaultTevOrderInfoNull; extern "C" extern u32 j3dDefaultIndTexOrderNull; -extern "C" extern u32 j3dDefaultTevColor; -extern "C" extern u32 data_804563D8; +extern "C" extern GXColorS10 j3dDefaultTevColor; extern "C" extern u8 j3dDefaultIndTexCoordScaleInfo[4]; -extern "C" extern u32 j3dDefaultTevKColor; +extern "C" extern GXColor j3dDefaultTevKColor; extern "C" extern u8 j3dDefaultTevSwapMode[4]; extern "C" extern u32 j3dDefaultTevSwapModeTable; extern "C" extern u32 j3dDefaultBlendInfo; @@ -73,6 +62,8 @@ extern "C" extern u16 j3dDefaultZModeID[1 + 1 /* padding */]; // External References: // +extern void J3DGDSetTexImgPtrRaw(_GXTexMapID param_0, u32 param_1); + extern "C" void J3DGDSetLightAttn__F10_GXLightIDffffff(); extern "C" void J3DGDSetLightColor__F10_GXLightID8_GXColor(); extern "C" void J3DGDSetLightPos__F10_GXLightIDfff(); @@ -82,7 +73,6 @@ extern "C" void J3DGDSetTexLookupMode__F11_GXTexMapID14_GXTexWrapMode14_GXTexWrapMode12_GXTexFilter12_GXTexFilterfffUcUc13_GXAnisotropy(); extern "C" void J3DGDSetTexImgAttr__F11_GXTexMapIDUsUs9_GXTexFmt(); extern "C" void J3DGDSetTexImgPtr__F11_GXTexMapIDPv(); -extern "C" void J3DGDSetTexImgPtrRaw__F11_GXTexMapIDUl(); extern "C" void J3DGDSetTexTlut__F11_GXTexMapIDUl10_GXTlutFmt(); extern "C" void J3DGDLoadTlut__FPvUl11_GXTlutSize(); extern "C" void J3DGetTextureMtx__FRC17J3DTextureSRTInfoRC3VecPA4_f(); @@ -261,14 +251,9 @@ asm void loadTexNo(u32 param_0, u16 const& param_1) { #pragma pop /* 8032413C-80324160 31EA7C 0024+00 0/0 2/2 0/0 .text patchTexNo_PtrToIdx__FUlRCUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void patchTexNo_PtrToIdx(u32 param_0, u16 const& param_1) { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DTevs/patchTexNo_PtrToIdx__FUlRCUs.s" +void patchTexNo_PtrToIdx(u32 texID, u16 const& idx) { + J3DGDSetTexImgPtrRaw((GXTexMapID) texID, idx); } -#pragma pop /* 80324160-80324194 31EAA0 0034+00 0/0 2/2 0/0 .text loadNBTScale__FR11J3DNBTScale */ #pragma push @@ -291,9 +276,15 @@ SECTION_RODATA extern u8 const j3dDefaultLightInfo[52] = { COMPILER_STRIP_GATE(0x803A1EC8, &j3dDefaultLightInfo); /* 803A1EFC-803A1F1C 02E55C 0020+00 0/0 5/5 0/0 .rodata j3dDefaultTexCoordInfo */ -SECTION_RODATA extern u8 const j3dDefaultTexCoordInfo[32] = { - 0x01, 0x04, 0x3C, 0x00, 0x01, 0x05, 0x3C, 0x00, 0x01, 0x06, 0x3C, 0x00, 0x01, 0x07, 0x3C, 0x00, - 0x01, 0x08, 0x3C, 0x00, 0x01, 0x09, 0x3C, 0x00, 0x01, 0x0A, 0x3C, 0x00, 0x01, 0x0B, 0x3C, 0x00, +SECTION_RODATA extern J3DDefaultTexCoordInfo const j3dDefaultTexCoordInfo[8] = { + { GX_MTX2x4, GX_TG_TEX0, GX_IDENTITY, 0 }, + { GX_MTX2x4, GX_TG_TEX1, GX_IDENTITY, 0 }, + { GX_MTX2x4, GX_TG_TEX2, GX_IDENTITY, 0 }, + { GX_MTX2x4, GX_TG_TEX3, GX_IDENTITY, 0 }, + { GX_MTX2x4, GX_TG_TEX4, GX_IDENTITY, 0 }, + { GX_MTX2x4, GX_TG_TEX5, GX_IDENTITY, 0 }, + { GX_MTX2x4, GX_TG_TEX6, GX_IDENTITY, 0 }, + { GX_MTX2x4, GX_TG_TEX7, GX_IDENTITY, 0 }, }; COMPILER_STRIP_GATE(0x803A1EFC, &j3dDefaultTexCoordInfo); @@ -465,13 +456,13 @@ static asm void J3DGDLoadPostTexMtxImm(f32 (*param_0)[4], u32 param_1) { /* ############################################################################################## */ /* 804563C0-804563C4 0049C0 0004+00 0/0 4/4 0/0 .sdata2 j3dDefaultColInfo */ -SECTION_SDATA2 extern u32 j3dDefaultColInfo = 0xFFFFFFFF; +SECTION_SDATA2 extern GXColor j3dDefaultColInfo = { 0xFF, 0xFF, 0xFF, 0xFF }; /* 804563C4-804563C8 0049C4 0004+00 0/0 2/2 0/0 .sdata2 j3dDefaultAmbInfo */ SECTION_SDATA2 extern u32 j3dDefaultAmbInfo = 0x32323232; /* 804563C8-804563CC 0049C8 0004+00 0/0 1/1 0/0 .sdata2 None */ -SECTION_SDATA2 extern u32 data_804563C8 = 0x01000000; +SECTION_SDATA2 extern u8 data_804563C8 = 0x01; /* 804563CC-804563D0 0049CC 0004+00 0/0 3/3 0/0 .sdata2 j3dDefaultTevOrderInfoNull */ SECTION_SDATA2 extern u32 j3dDefaultTevOrderInfoNull = 0xFFFFFF00; @@ -480,10 +471,7 @@ SECTION_SDATA2 extern u32 j3dDefaultTevOrderInfoNull = 0xFFFFFF00; SECTION_SDATA2 extern u32 j3dDefaultIndTexOrderNull = 0xFFFF0000; /* 804563D4-804563D8 0049D4 0004+00 0/0 5/5 0/0 .sdata2 j3dDefaultTevColor */ -SECTION_SDATA2 extern u32 j3dDefaultTevColor = 0x00FF00FF; - -/* 804563D8-804563DC 0049D8 0004+00 0/0 1/5 0/0 .sdata2 None */ -SECTION_SDATA2 extern u32 data_804563D8 = 0x00FF00FF; +SECTION_SDATA2 extern GXColorS10 j3dDefaultTevColor = { 0xFF, 0xFF, 0xFF, 0xFF }; /* 804563DC-804563E0 0049DC 0004+00 0/0 2/2 0/0 .sdata2 j3dDefaultIndTexCoordScaleInfo */ SECTION_SDATA2 extern u8 j3dDefaultIndTexCoordScaleInfo[4] = { @@ -494,7 +482,7 @@ SECTION_SDATA2 extern u8 j3dDefaultIndTexCoordScaleInfo[4] = { }; /* 804563E0-804563E4 0049E0 0004+00 0/0 5/5 0/0 .sdata2 j3dDefaultTevKColor */ -SECTION_SDATA2 extern u32 j3dDefaultTevKColor = 0xFFFFFFFF; +SECTION_SDATA2 extern GXColor j3dDefaultTevKColor = { 0xFF, 0xFF, 0xFF, 0xFF }; /* 804563E4-804563E8 0049E4 0004+00 0/0 2/2 0/0 .sdata2 j3dDefaultTevSwapMode */ SECTION_SDATA2 extern u8 j3dDefaultTevSwapMode[4] = { diff --git a/libs/JSystem/J3DGraphBase/J3DTexture.cpp b/libs/JSystem/J3DGraphBase/J3DTexture.cpp index 33c7db756fd..c82c307b8aa 100644 --- a/libs/JSystem/J3DGraphBase/J3DTexture.cpp +++ b/libs/JSystem/J3DGraphBase/J3DTexture.cpp @@ -7,62 +7,63 @@ #include "dol2asm.h" #include "dolphin/types.h" -// -// Forward References: -// - -extern "C" void loadGX__10J3DTextureCFUs11_GXTexMapID(); -extern "C" void entryNum__10J3DTextureFUs(); -extern "C" void addResTIMG__10J3DTextureFUsPC7ResTIMG(); - -// -// External References: -// - -extern "C" void* __nwa__FUl(); -extern "C" void _savegpr_28(); -extern "C" void _restgpr_28(); - -// -// Declarations: -// - -/* ############################################################################################## */ -/* 80456388-8045638C 004988 0004+00 1/1 0/0 0/0 .sdata2 @284 */ -SECTION_SDATA2 static f32 lit_284 = 0.125f; - -/* 8045638C-80456390 00498C 0004+00 1/1 0/0 0/0 .sdata2 @285 */ -SECTION_SDATA2 static f32 lit_285 = 1.0f / 100.0f; - -/* 80456390-80456398 004990 0008+00 1/1 0/0 0/0 .sdata2 @288 */ -SECTION_SDATA2 static f64 lit_288 = 4503601774854144.0 /* cast s32 to float */; - /* 8031204C-803121A4 30C98C 0158+00 0/0 1/1 0/0 .text loadGX__10J3DTextureCFUs11_GXTexMapID */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DTexture::loadGX(u16 param_0, _GXTexMapID param_1) const { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DTexture/loadGX__10J3DTextureCFUs11_GXTexMapID.s" +void J3DTexture::loadGX(u16 idx, GXTexMapID texMapID) const { + ResTIMG* timg = getResTIMG(idx); + GXTexObj texObj; + + if (!timg->palettesEnabled) { + GXInitTexObj(&texObj, ((u8*)timg) + timg->texDataOffset, timg->width, timg->height, + (GXTexFmt)timg->format, (GXTexWrapMode)timg->wrapS, (GXTexWrapMode)timg->wrapT, + (GXBool)timg->mipmapEnabled); + } else { + GXTlutObj tlutObj; + + GXInitTexObjCI(&texObj, ((u8*)timg) + timg->texDataOffset, timg->width, timg->height, + (GXCITexFmt)timg->format, (GXTexWrapMode)timg->wrapS, (GXTexWrapMode)timg->wrapT, + (GXBool)timg->mipmapEnabled, (u32)texMapID); + GXInitTlutObj(&tlutObj, ((u8*)timg) + timg->paletteOffset, (GXTlutFmt)timg->paletteFormat, timg->paletteCount); + GXLoadTlut(&tlutObj, texMapID); + } + + const f32 kLODClampScale = 1.0f / 8.0f; + const f32 kLODBiasScale = 1.0f / 100.0f; + GXInitTexObjLOD(&texObj, (GXTexFilter) timg->minFilter, (GXTexFilter) timg->magFilter, + timg->minLOD * kLODClampScale, timg->maxLOD * kLODClampScale, timg->LODBias * kLODBiasScale, + (GXBool) timg->biasClamp, (GXBool) timg->doEdgeLOD, (GXAnisotropy) timg->maxAnisotropy); + GXLoadTexObj(&texObj, texMapID); } -#pragma pop /* 803121A4-8031221C 30CAE4 0078+00 1/1 0/0 0/0 .text entryNum__10J3DTextureFUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DTexture::entryNum(u16 param_0) { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DTexture/entryNum__10J3DTextureFUs.s" +void J3DTexture::entryNum(u16 num) { + mNum = num; + mpRes = new ResTIMG[num](); + + for (s32 i = 0; i < mNum; i++) { + mpRes[i].paletteOffset = 0; + mpRes[i].texDataOffset = 0; + } } -#pragma pop /* 8031221C-80312488 30CB5C 026C+00 0/0 1/1 0/0 .text addResTIMG__10J3DTextureFUsPC7ResTIMG */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void J3DTexture::addResTIMG(u16 param_0, ResTIMG const* param_1) { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DTexture/addResTIMG__10J3DTextureFUsPC7ResTIMG.s" +void J3DTexture::addResTIMG(u16 newNum, ResTIMG const* newRes) { + if (newNum == 0) + return; + + u16 oldNum = mNum; + ResTIMG* oldRes = mpRes; + + entryNum(mNum + newNum); + + for (u16 i = 0; i < oldNum; i++) { + mpRes[i] = oldRes[i]; + mpRes[i].texDataOffset = (u32)(&oldRes[i]) + mpRes[i].texDataOffset - (u32)(&mpRes[i]); + mpRes[i].paletteOffset = (u32)(&oldRes[i]) + mpRes[i].paletteOffset - (u32)(&mpRes[i]); + } + + for (u16 i = oldNum; i < mNum; i++) { + mpRes[i] = newRes[i]; + mpRes[i].texDataOffset = (u32)(&newRes[i]) + mpRes[i].texDataOffset - (u32)(&mpRes[i]); + mpRes[i].paletteOffset = (u32)(&newRes[i]) + mpRes[i].paletteOffset - (u32)(&mpRes[i]); + } } -#pragma pop diff --git a/libs/JSystem/J3DGraphBase/J3DVertex.cpp b/libs/JSystem/J3DGraphBase/J3DVertex.cpp index 6d833427bf8..94affe40c91 100644 --- a/libs/JSystem/J3DGraphBase/J3DVertex.cpp +++ b/libs/JSystem/J3DGraphBase/J3DVertex.cpp @@ -12,60 +12,24 @@ #include "dolphin/types.h" #include "init.h" -// -// Forward References: -// - -extern "C" void __ct__13J3DVertexDataFv(); -extern "C" void setVertexData__15J3DVertexBufferFP13J3DVertexData(); -extern "C" void init__15J3DVertexBufferFv(); -extern "C" void __dt__15J3DVertexBufferFv(); -extern "C" void setArray__15J3DVertexBufferCFv(); -extern "C" void copyLocalVtxPosArray__15J3DVertexBufferFUl(); -extern "C" void copyLocalVtxNrmArray__15J3DVertexBufferFUl(); -extern "C" void copyLocalVtxArray__15J3DVertexBufferFUl(); -extern "C" void allocTransformedVtxPosArray__15J3DVertexBufferFv(); -extern "C" void allocTransformedVtxNrmArray__15J3DVertexBufferFv(); -extern "C" void __ct__14J3DDrawMtxDataFv(); -extern "C" void __dt__14J3DDrawMtxDataFv(); - -// -// External References: -// - -extern "C" void* __nwa__FUli(); -extern "C" void __dl__FPv(); -extern "C" void _savegpr_24(); -extern "C" void _savegpr_28(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_24(); -extern "C" void _restgpr_28(); -extern "C" void _restgpr_29(); - -// -// Declarations: -// - /* 80310EF8-80310F78 30B838 0080+00 0/0 1/1 0/0 .text __ct__13J3DVertexDataFv */ J3DVertexData::J3DVertexData() { mVtxNum = 0; mNrmNum = 0; mColNum = 0; - field_0xc = 0; - field_0x10 = 0; + mTexCoordNum = 0; + mPacketNum = 0; mVtxAttrFmtList = NULL; mVtxPosArray = NULL; mVtxNrmArray = NULL; mVtxNBTArray = NULL; - for (int i = 0; i < 2; i++) { + for (int i = 0; i < ARRAY_SIZE(mVtxColorArray); i++) mVtxColorArray[i] = NULL; - } - for (int i = 0; i < 8; i++) { + for (int i = 0; i < ARRAY_SIZE(mVtxTexCoordArray); i++) mVtxTexCoordArray[i] = NULL; - } mVtxPosFrac = 0; mVtxPosType = GX_F32; @@ -130,13 +94,13 @@ void J3DVertexBuffer::setArray() const { /* 80311090-803111B0 30B9D0 0120+00 1/1 0/0 0/0 .text copyLocalVtxPosArray__15J3DVertexBufferFUl */ -s32 J3DVertexBuffer::copyLocalVtxPosArray(u32 flags) { - if (flags & 1) { +s32 J3DVertexBuffer::copyLocalVtxPosArray(u32 flag) { + if (flag & 1) { for (int i = 0; i < 2; i++) { mVtxPosArray[i] = new (0x20) VertexPosition[mVtxData->getVtxNum()]; if (mVtxPosArray[i] == NULL) { - return 4; + return kJ3DError_Alloc; } memcpy(mVtxPosArray[i], mVtxData->getVtxPosArray(), mVtxData->getVtxNum() * 12); DCStoreRange(mVtxPosArray[i], mVtxData->getVtxNum() * 12); @@ -147,24 +111,25 @@ s32 J3DVertexBuffer::copyLocalVtxPosArray(u32 flags) { if (mVtxPosArray[1] == NULL) { mVtxPosArray[1] = new (0x20) VertexPosition[mVtxData->getVtxNum()]; if (mVtxPosArray[1] == NULL) { - return 4; + return kJ3DError_Alloc; } } memcpy(mVtxPosArray[1], mVtxData->getVtxPosArray(), mVtxData->getVtxNum() * 12); DCStoreRange(mVtxPosArray[1], mVtxData->getVtxNum() * 12); } - return 0; + + return kJ3DError_Success; } /* 803111B0-803112D0 30BAF0 0120+00 1/1 0/0 0/0 .text copyLocalVtxNrmArray__15J3DVertexBufferFUl */ -s32 J3DVertexBuffer::copyLocalVtxNrmArray(u32 param_0) { - if (param_0 & 1) { +s32 J3DVertexBuffer::copyLocalVtxNrmArray(u32 flag) { + if (flag & 1) { for (int i = 0; i < 2; i++) { mVtxNrmArray[i] = new (0x20) VertexNormal[mVtxData->getNrmNum()]; if (mVtxNrmArray[i] == NULL) { - return 4; + return kJ3DError_Alloc; } memcpy(mVtxNrmArray[i], mVtxData->getVtxNrmArray(), mVtxData->getNrmNum() * 12); DCStoreRange(mVtxNrmArray[i], mVtxData->getNrmNum() * 12); @@ -175,119 +140,99 @@ s32 J3DVertexBuffer::copyLocalVtxNrmArray(u32 param_0) { if (mVtxNrmArray[1] == NULL) { mVtxNrmArray[1] = new (0x20) VertexNormal[mVtxData->getNrmNum()]; if (mVtxNrmArray[1] == NULL) { - return 4; + return kJ3DError_Alloc; } } memcpy(mVtxNrmArray[1], mVtxData->getVtxNrmArray(), mVtxData->getNrmNum() * 12); DCStoreRange(mVtxNrmArray[1], mVtxData->getNrmNum() * 12); } - return 0; + + return kJ3DError_Success; } /* 803112D0-80311478 30BC10 01A8+00 0/0 1/1 0/0 .text copyLocalVtxArray__15J3DVertexBufferFUl */ -#ifdef NONMATCHING -s32 J3DVertexBuffer::copyLocalVtxArray(u32 param_0) { - void* local_30[5]; +s32 J3DVertexBuffer::copyLocalVtxArray(u32 flag) { + void* oldPosArray[2]; + void* oldNrmArray[2]; - for (int i = 0; i < 2; i++) { - local_30[i] = mVtxPosArray[i]; - } + for (int i = 0; i < 2; i++) + oldPosArray[i] = mVtxPosArray[i]; - if (~param_0 & 2) { - s32 tmp = copyLocalVtxPosArray(param_0); - if (tmp != 0) { + if (~flag & 2) { + s32 ret = copyLocalVtxPosArray(flag); + if (ret != 0) { for (int i = 0; i < 2; i++) { - if (local_30[i + 2] != mVtxPosArray[i]) { - if (mVtxPosArray[i] != mVtxData->getVtxPosArray()) { + if (oldPosArray[i] != mVtxPosArray[i]) { + if (mVtxPosArray[i] != mVtxData->getVtxPosArray()) delete mVtxPosArray[i]; - } - mVtxPosArray[i] = local_30[i + 2]; + mVtxPosArray[i] = oldPosArray[i]; } } - return tmp; + return ret; } } else { - void* vtxPosArray = mVtxData->getVtxPosArray(); - mVtxPosArray[1] = vtxPosArray; - mVtxPosArray[0] = vtxPosArray; + mVtxPosArray[0] = mVtxPosArray[1] = mVtxData->getVtxPosArray(); } - for (int i = 0; i < 2; i++) { - local_30[i] = mVtxNrmArray[i]; - } + for (int i = 0; i < 2; i++) + oldNrmArray[i] = mVtxNrmArray[i]; - if (~param_0 & 4) { - s32 tmp = copyLocalVtxNrmArray(param_0); - if (tmp != 0) { + if (~flag & 4) { + s32 ret = copyLocalVtxNrmArray(flag); + if (ret != 0) { for (int i = 0; i < 2; i++) { - if (local_30[i + 2] != mVtxPosArray[i]) { - if (mVtxPosArray[i] != mVtxData->getVtxPosArray()) { + if (oldPosArray[i] != mVtxPosArray[i]) { + if (mVtxPosArray[i] != mVtxData->getVtxPosArray()) delete mVtxPosArray[i]; - } - mVtxPosArray[i] = local_30[i + 2]; + mVtxPosArray[i] = oldPosArray[i]; } - if (local_30[i] != mVtxNrmArray[i]) { - if (mVtxNrmArray[i] != mVtxData->getVtxNrmArray()) { + if (oldNrmArray[i] != mVtxNrmArray[i]) { + if (mVtxNrmArray[i] != mVtxData->getVtxNrmArray()) delete mVtxNrmArray[i]; - } - mVtxNrmArray[i] = local_30[i]; + mVtxNrmArray[i] = oldNrmArray[i]; } } - return tmp; + return ret; } } else { - void* vtxNrmArray = mVtxData->getVtxNrmArray(); - mVtxNrmArray[1] = vtxNrmArray; - mVtxNrmArray[0] = vtxNrmArray; + mVtxNrmArray[0] = mVtxNrmArray[1] = mVtxData->getVtxNrmArray(); } - return 0; + return kJ3DError_Success; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s32 J3DVertexBuffer::copyLocalVtxArray(u32 param_0) { - nofralloc -#include "asm/JSystem/J3DGraphBase/J3DVertex/copyLocalVtxArray__15J3DVertexBufferFUl.s" -} -#pragma pop -#endif /* 80311478-8031152C 30BDB8 00B4+00 0/0 1/1 0/0 .text * allocTransformedVtxPosArray__15J3DVertexBufferFv */ s32 J3DVertexBuffer::allocTransformedVtxPosArray() { - if (mTransformedVtxPosArray[0] != NULL && mTransformedVtxPosArray[1] != NULL) { - return 0; - } + if (mTransformedVtxPosArray[0] != NULL && mTransformedVtxPosArray[1] != NULL) + return kJ3DError_Success; for (int i = 0; i < 2; i++) { if (i == 0 || mTransformedVtxPosArray[i] == NULL) { mTransformedVtxPosArray[i] = new (0x20) VertexPosition[mVtxData->getVtxNum()]; - if (mTransformedVtxPosArray[i] == NULL) { - return 4; - } + if (mTransformedVtxPosArray[i] == NULL) + return kJ3DError_Alloc; } } - return 0; + + return kJ3DError_Success; } /* 8031152C-803115E0 30BE6C 00B4+00 0/0 1/1 0/0 .text * allocTransformedVtxNrmArray__15J3DVertexBufferFv */ s32 J3DVertexBuffer::allocTransformedVtxNrmArray() { - if (mTransformedVtxNrmArray[0] != NULL && mTransformedVtxNrmArray[1] != NULL) { - return 0; - } + if (mTransformedVtxNrmArray[0] != NULL && mTransformedVtxNrmArray[1] != NULL) + return kJ3DError_Success; for (int i = 0; i < 2; i++) { if (i == 0 || mTransformedVtxNrmArray[i] == NULL) { mTransformedVtxNrmArray[i] = new (0x20) VertexNormal[mVtxData->getNrmNum()]; - if (mTransformedVtxNrmArray[i] == NULL) { - return 4; - } + if (mTransformedVtxNrmArray[i] == NULL) + return kJ3DError_Alloc; } } - return 0; + + return kJ3DError_Success; } /* 803115E0-803115F4 30BF20 0014+00 0/0 1/1 0/0 .text __ct__14J3DDrawMtxDataFv */ diff --git a/libs/JSystem/JParticle/JPAResource.cpp b/libs/JSystem/JParticle/JPAResource.cpp index ab95ac473c8..3195955b8fb 100644 --- a/libs/JSystem/JParticle/JPAResource.cpp +++ b/libs/JSystem/JParticle/JPAResource.cpp @@ -134,7 +134,6 @@ extern "C" void func_80280588(); extern "C" void JPAGetXYZRotateMtx__FsssPA4_f(); extern "C" void alloc__7JKRHeapFUliP7JKRHeap(); extern "C" void load__10JUTTextureF11_GXTexMapID(); -extern "C" void GXSetMisc(); extern "C" void __save_gpr(); extern "C" void _savegpr_25(); extern "C" void _savegpr_27(); diff --git a/libs/dolphin/gd/GDGeometry.cpp b/libs/dolphin/gd/GDGeometry.cpp index 3473b167eef..b86e1627804 100644 --- a/libs/dolphin/gd/GDGeometry.cpp +++ b/libs/dolphin/gd/GDGeometry.cpp @@ -3,7 +3,6 @@ // Translation Unit: GDGeometry // -#include "dolphin/gd/GDGeometry.h" #include "dol2asm.h" #include "dolphin/types.h" diff --git a/src/d/map/d_map_path_dmap.cpp b/src/d/map/d_map_path_dmap.cpp index b9025f1b1c7..5a6f4b25d86 100644 --- a/src/d/map/d_map_path_dmap.cpp +++ b/src/d/map/d_map_path_dmap.cpp @@ -160,7 +160,6 @@ extern "C" void getNextData__7dTres_cFPQ27dTres_c15typeGroupData_c(); extern "C" void getNextData__7dTres_cFPCQ27dTres_c15typeGroupData_c(); extern "C" void* __nw__FUl(); extern "C" void GXClearVtxDesc(); -extern "C" void GXSetMisc(); extern "C" void GXInvalidateTexAll(); extern "C" void _savegpr_20(); extern "C" void _savegpr_24();