diff --git a/asm/JSystem/J3D/J3DModelLoader.s b/asm/JSystem/J3D/J3DModelLoader.s deleted file mode 100644 index ea493faf7..000000000 --- a/asm/JSystem/J3D/J3DModelLoader.s +++ /dev/null @@ -1,2675 +0,0 @@ -.include "macros.inc" -.section .data, "wa" # 0x8049E220 - 0x804EFC20 -.balign 8 -.obj __vt__18J3DModelLoader_v21, global - .4byte 0 - .4byte 0 - .4byte load__14J3DModelLoaderFPCvUl - .4byte loadMaterialTable__14J3DModelLoaderFPCv - .4byte loadBinaryDisplayList__14J3DModelLoaderFPCvUl - .4byte calcLoadSize__14J3DModelLoaderFPCvUl - .4byte calcLoadMaterialTableSize__14J3DModelLoaderFPCv - .4byte calcLoadBinaryDisplayListSize__14J3DModelLoaderFPCvUl - .4byte countMaterialNum__14J3DModelLoaderFPCv - .4byte setupBBoardInfo__14J3DModelLoaderFv - .4byte __dt__18J3DModelLoader_v21Fv - .4byte readMaterial__14J3DModelLoaderFPC16J3DMaterialBlockUl - .4byte readMaterial_v21__18J3DModelLoader_v21FPC20J3DMaterialBlock_v21Ul - .4byte readMaterialTable__14J3DModelLoaderFPC16J3DMaterialBlockUl - .4byte readMaterialTable_v21__18J3DModelLoader_v21FPC20J3DMaterialBlock_v21Ul - .4byte calcSizeMaterial__14J3DModelLoaderFPC16J3DMaterialBlockUl - .4byte calcSizeMaterialTable__14J3DModelLoaderFPC16J3DMaterialBlockUl -.endobj __vt__18J3DModelLoader_v21 -.obj __vt__18J3DModelLoader_v26, global - .4byte 0 - .4byte 0 - .4byte load__14J3DModelLoaderFPCvUl - .4byte loadMaterialTable__14J3DModelLoaderFPCv - .4byte loadBinaryDisplayList__14J3DModelLoaderFPCvUl - .4byte calcLoadSize__14J3DModelLoaderFPCvUl - .4byte calcLoadMaterialTableSize__14J3DModelLoaderFPCv - .4byte calcLoadBinaryDisplayListSize__14J3DModelLoaderFPCvUl - .4byte countMaterialNum__14J3DModelLoaderFPCv - .4byte setupBBoardInfo__14J3DModelLoaderFv - .4byte __dt__18J3DModelLoader_v26Fv - .4byte readMaterial__18J3DModelLoader_v26FPC16J3DMaterialBlockUl - .4byte readMaterial_v21__14J3DModelLoaderFPC20J3DMaterialBlock_v21Ul - .4byte readMaterialTable__18J3DModelLoader_v26FPC16J3DMaterialBlockUl - .4byte readMaterialTable_v21__14J3DModelLoaderFPC20J3DMaterialBlock_v21Ul - .4byte calcSizeMaterial__18J3DModelLoader_v26FPC16J3DMaterialBlockUl - .4byte calcSizeMaterialTable__18J3DModelLoader_v26FPC16J3DMaterialBlockUl -.endobj __vt__18J3DModelLoader_v26 -.obj "__vt__73J3DMtxCalcNoAnm<27J3DMtxCalcCalcTransformMaya,24J3DMtxCalcJ3DSysInitMaya>", weak - .4byte 0 - .4byte 0 - .4byte "__dt__73J3DMtxCalcNoAnm<27J3DMtxCalcCalcTransformMaya,24J3DMtxCalcJ3DSysInitMaya>Fv" - .4byte setAnmTransform__10J3DMtxCalcFP15J3DAnmTransform - .4byte getAnmTransform__10J3DMtxCalcFv - .4byte setAnmTransform__10J3DMtxCalcFUcP15J3DAnmTransform - .4byte getAnmTransform__10J3DMtxCalcFUc - .4byte setWeight__10J3DMtxCalcFUcf - .4byte getWeight__10J3DMtxCalcCFUc - .4byte "init__73J3DMtxCalcNoAnm<27J3DMtxCalcCalcTransformMaya,24J3DMtxCalcJ3DSysInitMaya>FRC3VecRA3_A4_Cf" - .4byte "calc__73J3DMtxCalcNoAnm<27J3DMtxCalcCalcTransformMaya,24J3DMtxCalcJ3DSysInitMaya>Fv" -.endobj "__vt__73J3DMtxCalcNoAnm<27J3DMtxCalcCalcTransformMaya,24J3DMtxCalcJ3DSysInitMaya>" -.obj "__vt__83J3DMtxCalcNoAnm<32J3DMtxCalcCalcTransformSoftimage,29J3DMtxCalcJ3DSysInitSoftimage>", weak - .4byte 0 - .4byte 0 - .4byte "__dt__83J3DMtxCalcNoAnm<32J3DMtxCalcCalcTransformSoftimage,29J3DMtxCalcJ3DSysInitSoftimage>Fv" - .4byte setAnmTransform__10J3DMtxCalcFP15J3DAnmTransform - .4byte getAnmTransform__10J3DMtxCalcFv - .4byte setAnmTransform__10J3DMtxCalcFUcP15J3DAnmTransform - .4byte getAnmTransform__10J3DMtxCalcFUc - .4byte setWeight__10J3DMtxCalcFUcf - .4byte getWeight__10J3DMtxCalcCFUc - .4byte "init__83J3DMtxCalcNoAnm<32J3DMtxCalcCalcTransformSoftimage,29J3DMtxCalcJ3DSysInitSoftimage>FRC3VecRA3_A4_Cf" - .4byte "calc__83J3DMtxCalcNoAnm<32J3DMtxCalcCalcTransformSoftimage,29J3DMtxCalcJ3DSysInitSoftimage>Fv" -.endobj "__vt__83J3DMtxCalcNoAnm<32J3DMtxCalcCalcTransformSoftimage,29J3DMtxCalcJ3DSysInitSoftimage>" -.obj "__vt__75J3DMtxCalcNoAnm<28J3DMtxCalcCalcTransformBasic,25J3DMtxCalcJ3DSysInitBasic>", weak - .4byte 0 - .4byte 0 - .4byte "__dt__75J3DMtxCalcNoAnm<28J3DMtxCalcCalcTransformBasic,25J3DMtxCalcJ3DSysInitBasic>Fv" - .4byte setAnmTransform__10J3DMtxCalcFP15J3DAnmTransform - .4byte getAnmTransform__10J3DMtxCalcFv - .4byte setAnmTransform__10J3DMtxCalcFUcP15J3DAnmTransform - .4byte getAnmTransform__10J3DMtxCalcFUc - .4byte setWeight__10J3DMtxCalcFUcf - .4byte getWeight__10J3DMtxCalcCFUc - .4byte "init__75J3DMtxCalcNoAnm<28J3DMtxCalcCalcTransformBasic,25J3DMtxCalcJ3DSysInitBasic>FRC3VecRA3_A4_Cf" - .4byte "calc__75J3DMtxCalcNoAnm<28J3DMtxCalcCalcTransformBasic,25J3DMtxCalcJ3DSysInitBasic>Fv" -.endobj "__vt__75J3DMtxCalcNoAnm<28J3DMtxCalcCalcTransformBasic,25J3DMtxCalcJ3DSysInitBasic>" -.obj __vt__19J3DMtxCalcNoAnmBase, weak - .4byte 0 - .4byte 0 - .4byte __dt__19J3DMtxCalcNoAnmBaseFv - .4byte setAnmTransform__10J3DMtxCalcFP15J3DAnmTransform - .4byte getAnmTransform__10J3DMtxCalcFv - .4byte setAnmTransform__10J3DMtxCalcFUcP15J3DAnmTransform - .4byte getAnmTransform__10J3DMtxCalcFUc - .4byte setWeight__10J3DMtxCalcFUcf - .4byte getWeight__10J3DMtxCalcCFUc - .4byte 0 - .4byte 0 -.endobj __vt__19J3DMtxCalcNoAnmBase -.obj __vt__10J3DTexture, weak - .4byte 0 - .4byte 0 - .4byte __dt__10J3DTextureFv -.endobj __vt__10J3DTexture -.obj __vt__14J3DModelLoader, global - .4byte 0 - .4byte 0 - .4byte load__14J3DModelLoaderFPCvUl - .4byte loadMaterialTable__14J3DModelLoaderFPCv - .4byte loadBinaryDisplayList__14J3DModelLoaderFPCvUl - .4byte calcLoadSize__14J3DModelLoaderFPCvUl - .4byte calcLoadMaterialTableSize__14J3DModelLoaderFPCv - .4byte calcLoadBinaryDisplayListSize__14J3DModelLoaderFPCvUl - .4byte countMaterialNum__14J3DModelLoaderFPCv - .4byte setupBBoardInfo__14J3DModelLoaderFv - .4byte __dt__14J3DModelLoaderFv - .4byte readMaterial__14J3DModelLoaderFPC16J3DMaterialBlockUl - .4byte readMaterial_v21__14J3DModelLoaderFPC20J3DMaterialBlock_v21Ul - .4byte readMaterialTable__14J3DModelLoaderFPC16J3DMaterialBlockUl - .4byte readMaterialTable_v21__14J3DModelLoaderFPC20J3DMaterialBlock_v21Ul - .4byte calcSizeMaterial__14J3DModelLoaderFPC16J3DMaterialBlockUl - .4byte calcSizeMaterialTable__14J3DModelLoaderFPC16J3DMaterialBlockUl -.endobj __vt__14J3DModelLoader - -.section .text, "ax" # 0x800056C0 - 0x80472F00 -.fn load__22J3DModelLoaderDataBaseFPCvUl, global -/* 8006F894 0006C7D4 94 21 FF C0 */ stwu r1, -0x40(r1) -/* 8006F898 0006C7D8 7C 08 02 A6 */ mflr r0 -/* 8006F89C 0006C7DC 28 03 00 00 */ cmplwi r3, 0 -/* 8006F8A0 0006C7E0 7C 85 23 78 */ mr r5, r4 -/* 8006F8A4 0006C7E4 90 01 00 44 */ stw r0, 0x44(r1) -/* 8006F8A8 0006C7E8 40 82 00 0C */ bne .L_8006F8B4 -/* 8006F8AC 0006C7EC 38 60 00 00 */ li r3, 0 -/* 8006F8B0 0006C7F0 48 00 01 28 */ b .L_8006F9D8 -.L_8006F8B4: -/* 8006F8B4 0006C7F4 80 C3 00 00 */ lwz r6, 0(r3) -/* 8006F8B8 0006C7F8 3C 06 B5 CD */ addis r0, r6, 0xb5cd -/* 8006F8BC 0006C7FC 28 00 44 31 */ cmplwi r0, 0x4431 -/* 8006F8C0 0006C800 40 82 00 1C */ bne .L_8006F8DC -/* 8006F8C4 0006C804 80 83 00 04 */ lwz r4, 4(r3) -/* 8006F8C8 0006C808 3C 04 9D 93 */ subis r0, r4, 0x626d -/* 8006F8CC 0006C80C 28 00 64 31 */ cmplwi r0, 0x6431 -/* 8006F8D0 0006C810 40 82 00 0C */ bne .L_8006F8DC -/* 8006F8D4 0006C814 38 60 00 00 */ li r3, 0 -/* 8006F8D8 0006C818 48 00 01 00 */ b .L_8006F9D8 -.L_8006F8DC: -/* 8006F8DC 0006C81C 3C 06 B5 CD */ addis r0, r6, 0xb5cd -/* 8006F8E0 0006C820 28 00 44 32 */ cmplwi r0, 0x4432 -/* 8006F8E4 0006C824 40 82 00 74 */ bne .L_8006F958 -/* 8006F8E8 0006C828 80 83 00 04 */ lwz r4, 4(r3) -/* 8006F8EC 0006C82C 3C 04 9D 93 */ addis r0, r4, 0x9d93 -/* 8006F8F0 0006C830 28 00 64 32 */ cmplwi r0, 0x6432 -/* 8006F8F4 0006C834 40 82 00 64 */ bne .L_8006F958 -/* 8006F8F8 0006C838 3C 80 80 4A */ lis r4, __vt__14J3DModelLoader@ha -/* 8006F8FC 0006C83C 38 C0 00 00 */ li r6, 0 -/* 8006F900 0006C840 38 04 1F 74 */ addi r0, r4, __vt__14J3DModelLoader@l -/* 8006F904 0006C844 90 C1 00 28 */ stw r6, 0x28(r1) -/* 8006F908 0006C848 3C 80 80 4A */ lis r4, __vt__18J3DModelLoader_v21@ha -/* 8006F90C 0006C84C 90 01 00 24 */ stw r0, 0x24(r1) -/* 8006F910 0006C850 38 04 1E 30 */ addi r0, r4, __vt__18J3DModelLoader_v21@l -/* 8006F914 0006C854 7C 64 1B 78 */ mr r4, r3 -/* 8006F918 0006C858 38 61 00 24 */ addi r3, r1, 0x24 -/* 8006F91C 0006C85C 90 C1 00 2C */ stw r6, 0x2c(r1) -/* 8006F920 0006C860 90 C1 00 30 */ stw r6, 0x30(r1) -/* 8006F924 0006C864 90 C1 00 34 */ stw r6, 0x34(r1) -/* 8006F928 0006C868 90 C1 00 38 */ stw r6, 0x38(r1) -/* 8006F92C 0006C86C 98 C1 00 3C */ stb r6, 0x3c(r1) -/* 8006F930 0006C870 B0 C1 00 3E */ sth r6, 0x3e(r1) -/* 8006F934 0006C874 90 01 00 24 */ stw r0, 0x24(r1) -/* 8006F938 0006C878 48 00 02 6D */ bl load__14J3DModelLoaderFPCvUl -/* 8006F93C 0006C87C 3C A0 80 4A */ lis r5, __vt__18J3DModelLoader_v21@ha -/* 8006F940 0006C880 3C 80 80 4A */ lis r4, __vt__14J3DModelLoader@ha -/* 8006F944 0006C884 38 05 1E 30 */ addi r0, r5, __vt__18J3DModelLoader_v21@l -/* 8006F948 0006C888 90 01 00 24 */ stw r0, 0x24(r1) -/* 8006F94C 0006C88C 38 04 1F 74 */ addi r0, r4, __vt__14J3DModelLoader@l -/* 8006F950 0006C890 90 01 00 24 */ stw r0, 0x24(r1) -/* 8006F954 0006C894 48 00 00 84 */ b .L_8006F9D8 -.L_8006F958: -/* 8006F958 0006C898 3C 06 B5 CD */ addis r0, r6, 0xb5cd -/* 8006F95C 0006C89C 28 00 44 32 */ cmplwi r0, 0x4432 -/* 8006F960 0006C8A0 40 82 00 74 */ bne .L_8006F9D4 -/* 8006F964 0006C8A4 80 83 00 04 */ lwz r4, 4(r3) -/* 8006F968 0006C8A8 3C 04 9D 93 */ addis r0, r4, 0x9d93 -/* 8006F96C 0006C8AC 28 00 64 33 */ cmplwi r0, 0x6433 -/* 8006F970 0006C8B0 40 82 00 64 */ bne .L_8006F9D4 -/* 8006F974 0006C8B4 3C 80 80 4A */ lis r4, __vt__14J3DModelLoader@ha -/* 8006F978 0006C8B8 38 C0 00 00 */ li r6, 0 -/* 8006F97C 0006C8BC 38 04 1F 74 */ addi r0, r4, __vt__14J3DModelLoader@l -/* 8006F980 0006C8C0 90 C1 00 0C */ stw r6, 0xc(r1) -/* 8006F984 0006C8C4 3C 80 80 4A */ lis r4, __vt__18J3DModelLoader_v26@ha -/* 8006F988 0006C8C8 90 01 00 08 */ stw r0, 8(r1) -/* 8006F98C 0006C8CC 38 04 1E 74 */ addi r0, r4, __vt__18J3DModelLoader_v26@l -/* 8006F990 0006C8D0 7C 64 1B 78 */ mr r4, r3 -/* 8006F994 0006C8D4 38 61 00 08 */ addi r3, r1, 8 -/* 8006F998 0006C8D8 90 C1 00 10 */ stw r6, 0x10(r1) -/* 8006F99C 0006C8DC 90 C1 00 14 */ stw r6, 0x14(r1) -/* 8006F9A0 0006C8E0 90 C1 00 18 */ stw r6, 0x18(r1) -/* 8006F9A4 0006C8E4 90 C1 00 1C */ stw r6, 0x1c(r1) -/* 8006F9A8 0006C8E8 98 C1 00 20 */ stb r6, 0x20(r1) -/* 8006F9AC 0006C8EC B0 C1 00 22 */ sth r6, 0x22(r1) -/* 8006F9B0 0006C8F0 90 01 00 08 */ stw r0, 8(r1) -/* 8006F9B4 0006C8F4 48 00 01 F1 */ bl load__14J3DModelLoaderFPCvUl -/* 8006F9B8 0006C8F8 3C A0 80 4A */ lis r5, __vt__18J3DModelLoader_v26@ha -/* 8006F9BC 0006C8FC 3C 80 80 4A */ lis r4, __vt__14J3DModelLoader@ha -/* 8006F9C0 0006C900 38 05 1E 74 */ addi r0, r5, __vt__18J3DModelLoader_v26@l -/* 8006F9C4 0006C904 90 01 00 08 */ stw r0, 8(r1) -/* 8006F9C8 0006C908 38 04 1F 74 */ addi r0, r4, __vt__14J3DModelLoader@l -/* 8006F9CC 0006C90C 90 01 00 08 */ stw r0, 8(r1) -/* 8006F9D0 0006C910 48 00 00 08 */ b .L_8006F9D8 -.L_8006F9D4: -/* 8006F9D4 0006C914 38 60 00 00 */ li r3, 0 -.L_8006F9D8: -/* 8006F9D8 0006C918 80 01 00 44 */ lwz r0, 0x44(r1) -/* 8006F9DC 0006C91C 7C 08 03 A6 */ mtlr r0 -/* 8006F9E0 0006C920 38 21 00 40 */ addi r1, r1, 0x40 -/* 8006F9E4 0006C924 4E 80 00 20 */ blr -.endfn load__22J3DModelLoaderDataBaseFPCvUl - -.fn __dt__18J3DModelLoader_v26Fv, weak -/* 8006F9E8 0006C928 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8006F9EC 0006C92C 7C 08 02 A6 */ mflr r0 -/* 8006F9F0 0006C930 90 01 00 14 */ stw r0, 0x14(r1) -/* 8006F9F4 0006C934 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8006F9F8 0006C938 7C 7F 1B 79 */ or. r31, r3, r3 -/* 8006F9FC 0006C93C 41 82 00 30 */ beq .L_8006FA2C -/* 8006FA00 0006C940 3C 60 80 4A */ lis r3, __vt__18J3DModelLoader_v26@ha -/* 8006FA04 0006C944 38 03 1E 74 */ addi r0, r3, __vt__18J3DModelLoader_v26@l -/* 8006FA08 0006C948 90 1F 00 00 */ stw r0, 0(r31) -/* 8006FA0C 0006C94C 41 82 00 10 */ beq .L_8006FA1C -/* 8006FA10 0006C950 3C 60 80 4A */ lis r3, __vt__14J3DModelLoader@ha -/* 8006FA14 0006C954 38 03 1F 74 */ addi r0, r3, __vt__14J3DModelLoader@l -/* 8006FA18 0006C958 90 1F 00 00 */ stw r0, 0(r31) -.L_8006FA1C: -/* 8006FA1C 0006C95C 7C 80 07 35 */ extsh. r0, r4 -/* 8006FA20 0006C960 40 81 00 0C */ ble .L_8006FA2C -/* 8006FA24 0006C964 7F E3 FB 78 */ mr r3, r31 -/* 8006FA28 0006C968 4B FB 46 8D */ bl __dl__FPv -.L_8006FA2C: -/* 8006FA2C 0006C96C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8006FA30 0006C970 7F E3 FB 78 */ mr r3, r31 -/* 8006FA34 0006C974 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8006FA38 0006C978 7C 08 03 A6 */ mtlr r0 -/* 8006FA3C 0006C97C 38 21 00 10 */ addi r1, r1, 0x10 -/* 8006FA40 0006C980 4E 80 00 20 */ blr -.endfn __dt__18J3DModelLoader_v26Fv - -.fn __dt__18J3DModelLoader_v21Fv, weak -/* 8006FA44 0006C984 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8006FA48 0006C988 7C 08 02 A6 */ mflr r0 -/* 8006FA4C 0006C98C 90 01 00 14 */ stw r0, 0x14(r1) -/* 8006FA50 0006C990 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8006FA54 0006C994 7C 7F 1B 79 */ or. r31, r3, r3 -/* 8006FA58 0006C998 41 82 00 30 */ beq .L_8006FA88 -/* 8006FA5C 0006C99C 3C 60 80 4A */ lis r3, __vt__18J3DModelLoader_v21@ha -/* 8006FA60 0006C9A0 38 03 1E 30 */ addi r0, r3, __vt__18J3DModelLoader_v21@l -/* 8006FA64 0006C9A4 90 1F 00 00 */ stw r0, 0(r31) -/* 8006FA68 0006C9A8 41 82 00 10 */ beq .L_8006FA78 -/* 8006FA6C 0006C9AC 3C 60 80 4A */ lis r3, __vt__14J3DModelLoader@ha -/* 8006FA70 0006C9B0 38 03 1F 74 */ addi r0, r3, __vt__14J3DModelLoader@l -/* 8006FA74 0006C9B4 90 1F 00 00 */ stw r0, 0(r31) -.L_8006FA78: -/* 8006FA78 0006C9B8 7C 80 07 35 */ extsh. r0, r4 -/* 8006FA7C 0006C9BC 40 81 00 0C */ ble .L_8006FA88 -/* 8006FA80 0006C9C0 7F E3 FB 78 */ mr r3, r31 -/* 8006FA84 0006C9C4 4B FB 46 31 */ bl __dl__FPv -.L_8006FA88: -/* 8006FA88 0006C9C8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8006FA8C 0006C9CC 7F E3 FB 78 */ mr r3, r31 -/* 8006FA90 0006C9D0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8006FA94 0006C9D4 7C 08 03 A6 */ mtlr r0 -/* 8006FA98 0006C9D8 38 21 00 10 */ addi r1, r1, 0x10 -/* 8006FA9C 0006C9DC 4E 80 00 20 */ blr -.endfn __dt__18J3DModelLoader_v21Fv - -.fn __dt__14J3DModelLoaderFv, weak -/* 8006FAA0 0006C9E0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8006FAA4 0006C9E4 7C 08 02 A6 */ mflr r0 -/* 8006FAA8 0006C9E8 90 01 00 14 */ stw r0, 0x14(r1) -/* 8006FAAC 0006C9EC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8006FAB0 0006C9F0 7C 7F 1B 79 */ or. r31, r3, r3 -/* 8006FAB4 0006C9F4 41 82 00 1C */ beq .L_8006FAD0 -/* 8006FAB8 0006C9F8 3C A0 80 4A */ lis r5, __vt__14J3DModelLoader@ha -/* 8006FABC 0006C9FC 7C 80 07 35 */ extsh. r0, r4 -/* 8006FAC0 0006CA00 38 05 1F 74 */ addi r0, r5, __vt__14J3DModelLoader@l -/* 8006FAC4 0006CA04 90 1F 00 00 */ stw r0, 0(r31) -/* 8006FAC8 0006CA08 40 81 00 08 */ ble .L_8006FAD0 -/* 8006FACC 0006CA0C 4B FB 45 E9 */ bl __dl__FPv -.L_8006FAD0: -/* 8006FAD0 0006CA10 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8006FAD4 0006CA14 7F E3 FB 78 */ mr r3, r31 -/* 8006FAD8 0006CA18 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8006FADC 0006CA1C 7C 08 03 A6 */ mtlr r0 -/* 8006FAE0 0006CA20 38 21 00 10 */ addi r1, r1, 0x10 -/* 8006FAE4 0006CA24 4E 80 00 20 */ blr -.endfn __dt__14J3DModelLoaderFv - -.fn loadBinaryDisplayList__22J3DModelLoaderDataBaseFPCvUl, global -/* 8006FAE8 0006CA28 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 8006FAEC 0006CA2C 7C 08 02 A6 */ mflr r0 -/* 8006FAF0 0006CA30 28 03 00 00 */ cmplwi r3, 0 -/* 8006FAF4 0006CA34 7C 85 23 78 */ mr r5, r4 -/* 8006FAF8 0006CA38 90 01 00 34 */ stw r0, 0x34(r1) -/* 8006FAFC 0006CA3C 40 82 00 0C */ bne .L_8006FB08 -/* 8006FB00 0006CA40 38 60 00 00 */ li r3, 0 -/* 8006FB04 0006CA44 48 00 00 90 */ b .L_8006FB94 -.L_8006FB08: -/* 8006FB08 0006CA48 80 83 00 00 */ lwz r4, 0(r3) -/* 8006FB0C 0006CA4C 3C 04 B5 CD */ addis r0, r4, 0xb5cd -/* 8006FB10 0006CA50 28 00 44 32 */ cmplwi r0, 0x4432 -/* 8006FB14 0006CA54 40 82 00 7C */ bne .L_8006FB90 -/* 8006FB18 0006CA58 80 83 00 04 */ lwz r4, 4(r3) -/* 8006FB1C 0006CA5C 3C 04 9D 9C */ addis r0, r4, 0x9d9c -/* 8006FB20 0006CA60 28 00 6C 33 */ cmplwi r0, 0x6c33 -/* 8006FB24 0006CA64 41 82 00 0C */ beq .L_8006FB30 -/* 8006FB28 0006CA68 28 00 6C 34 */ cmplwi r0, 0x6c34 -/* 8006FB2C 0006CA6C 40 82 00 64 */ bne .L_8006FB90 -.L_8006FB30: -/* 8006FB30 0006CA70 3C 80 80 4A */ lis r4, __vt__14J3DModelLoader@ha -/* 8006FB34 0006CA74 38 C0 00 00 */ li r6, 0 -/* 8006FB38 0006CA78 38 04 1F 74 */ addi r0, r4, __vt__14J3DModelLoader@l -/* 8006FB3C 0006CA7C 90 C1 00 0C */ stw r6, 0xc(r1) -/* 8006FB40 0006CA80 3C 80 80 4A */ lis r4, __vt__18J3DModelLoader_v26@ha -/* 8006FB44 0006CA84 90 01 00 08 */ stw r0, 8(r1) -/* 8006FB48 0006CA88 38 04 1E 74 */ addi r0, r4, __vt__18J3DModelLoader_v26@l -/* 8006FB4C 0006CA8C 7C 64 1B 78 */ mr r4, r3 -/* 8006FB50 0006CA90 38 61 00 08 */ addi r3, r1, 8 -/* 8006FB54 0006CA94 90 C1 00 10 */ stw r6, 0x10(r1) -/* 8006FB58 0006CA98 90 C1 00 14 */ stw r6, 0x14(r1) -/* 8006FB5C 0006CA9C 90 C1 00 18 */ stw r6, 0x18(r1) -/* 8006FB60 0006CAA0 90 C1 00 1C */ stw r6, 0x1c(r1) -/* 8006FB64 0006CAA4 98 C1 00 20 */ stb r6, 0x20(r1) -/* 8006FB68 0006CAA8 B0 C1 00 22 */ sth r6, 0x22(r1) -/* 8006FB6C 0006CAAC 90 01 00 08 */ stw r0, 8(r1) -/* 8006FB70 0006CAB0 48 00 04 49 */ bl loadBinaryDisplayList__14J3DModelLoaderFPCvUl -/* 8006FB74 0006CAB4 3C A0 80 4A */ lis r5, __vt__18J3DModelLoader_v26@ha -/* 8006FB78 0006CAB8 3C 80 80 4A */ lis r4, __vt__14J3DModelLoader@ha -/* 8006FB7C 0006CABC 38 05 1E 74 */ addi r0, r5, __vt__18J3DModelLoader_v26@l -/* 8006FB80 0006CAC0 90 01 00 08 */ stw r0, 8(r1) -/* 8006FB84 0006CAC4 38 04 1F 74 */ addi r0, r4, __vt__14J3DModelLoader@l -/* 8006FB88 0006CAC8 90 01 00 08 */ stw r0, 8(r1) -/* 8006FB8C 0006CACC 48 00 00 08 */ b .L_8006FB94 -.L_8006FB90: -/* 8006FB90 0006CAD0 38 60 00 00 */ li r3, 0 -.L_8006FB94: -/* 8006FB94 0006CAD4 80 01 00 34 */ lwz r0, 0x34(r1) -/* 8006FB98 0006CAD8 7C 08 03 A6 */ mtlr r0 -/* 8006FB9C 0006CADC 38 21 00 30 */ addi r1, r1, 0x30 -/* 8006FBA0 0006CAE0 4E 80 00 20 */ blr -.endfn loadBinaryDisplayList__22J3DModelLoaderDataBaseFPCvUl - -.fn load__14J3DModelLoaderFPCvUl, global -/* 8006FBA4 0006CAE4 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 8006FBA8 0006CAE8 7C 08 02 A6 */ mflr r0 -/* 8006FBAC 0006CAEC 90 01 00 34 */ stw r0, 0x34(r1) -/* 8006FBB0 0006CAF0 BF 41 00 18 */ stmw r26, 0x18(r1) -/* 8006FBB4 0006CAF4 7C 7B 1B 78 */ mr r27, r3 -/* 8006FBB8 0006CAF8 7C 9D 23 78 */ mr r29, r4 -/* 8006FBBC 0006CAFC 7C BC 2B 78 */ mr r28, r5 -/* 8006FBC0 0006CB00 80 6D 88 2C */ lwz r3, sCurrentHeap__7JKRHeap@sda21(r13) -/* 8006FBC4 0006CB04 4B FB 3C 1D */ bl getTotalFreeSize__7JKRHeapFv -/* 8006FBC8 0006CB08 38 60 00 E4 */ li r3, 0xe4 -/* 8006FBCC 0006CB0C 4B FB 42 D9 */ bl __nw__FUl -/* 8006FBD0 0006CB10 7C 60 1B 79 */ or. r0, r3, r3 -/* 8006FBD4 0006CB14 41 82 00 0C */ beq .L_8006FBE0 -/* 8006FBD8 0006CB18 48 01 3B D5 */ bl __ct__12J3DModelDataFv -/* 8006FBDC 0006CB1C 7C 60 1B 78 */ mr r0, r3 -.L_8006FBE0: -/* 8006FBE0 0006CB20 90 1B 00 04 */ stw r0, 4(r27) -/* 8006FBE4 0006CB24 80 7B 00 04 */ lwz r3, 4(r27) -/* 8006FBE8 0006CB28 48 01 3B AD */ bl clear__12J3DModelDataFv -/* 8006FBEC 0006CB2C 80 9B 00 04 */ lwz r4, 4(r27) -/* 8006FBF0 0006CB30 3C 60 4D 41 */ lis r3, 0x4D415432@ha -/* 8006FBF4 0006CB34 38 00 00 00 */ li r0, 0 -/* 8006FBF8 0006CB38 83 5D 00 0C */ lwz r26, 0xc(r29) -/* 8006FBFC 0006CB3C 93 A4 00 04 */ stw r29, 4(r4) -/* 8006FC00 0006CB40 3B DD 00 20 */ addi r30, r29, 0x20 -/* 8006FC04 0006CB44 3B E3 54 32 */ addi r31, r3, 0x4D415432@l -/* 8006FC08 0006CB48 3B A0 00 00 */ li r29, 0 -/* 8006FC0C 0006CB4C 80 7B 00 04 */ lwz r3, 4(r27) -/* 8006FC10 0006CB50 90 03 00 1C */ stw r0, 0x1c(r3) -/* 8006FC14 0006CB54 80 7B 00 04 */ lwz r3, 4(r27) -/* 8006FC18 0006CB58 38 03 00 58 */ addi r0, r3, 0x58 -/* 8006FC1C 0006CB5C 90 1B 00 08 */ stw r0, 8(r27) -/* 8006FC20 0006CB60 48 00 01 74 */ b .L_8006FD94 -.L_8006FC24: -/* 8006FC24 0006CB64 80 9E 00 00 */ lwz r4, 0(r30) -/* 8006FC28 0006CB68 7C 04 F8 00 */ cmpw r4, r31 -/* 8006FC2C 0006CB6C 41 82 01 1C */ beq .L_8006FD48 -/* 8006FC30 0006CB70 40 80 00 54 */ bge .L_8006FC84 -/* 8006FC34 0006CB74 3C 60 49 4E */ lis r3, 0x494E4631@ha -/* 8006FC38 0006CB78 38 03 46 31 */ addi r0, r3, 0x494E4631@l -/* 8006FC3C 0006CB7C 7C 04 00 00 */ cmpw r4, r0 -/* 8006FC40 0006CB80 41 82 00 94 */ beq .L_8006FCD4 -/* 8006FC44 0006CB84 40 80 00 2C */ bge .L_8006FC70 -/* 8006FC48 0006CB88 3C 60 45 56 */ lis r3, 0x45565031@ha -/* 8006FC4C 0006CB8C 38 03 50 31 */ addi r0, r3, 0x45565031@l -/* 8006FC50 0006CB90 7C 04 00 00 */ cmpw r4, r0 -/* 8006FC54 0006CB94 41 82 00 A4 */ beq .L_8006FCF8 -/* 8006FC58 0006CB98 40 80 01 30 */ bge .L_8006FD88 -/* 8006FC5C 0006CB9C 3C 60 44 52 */ lis r3, 0x44525731@ha -/* 8006FC60 0006CBA0 38 03 57 31 */ addi r0, r3, 0x44525731@l -/* 8006FC64 0006CBA4 7C 04 00 00 */ cmpw r4, r0 -/* 8006FC68 0006CBA8 41 82 00 A0 */ beq .L_8006FD08 -/* 8006FC6C 0006CBAC 48 00 01 1C */ b .L_8006FD88 -.L_8006FC70: -/* 8006FC70 0006CBB0 3C 60 4A 4E */ lis r3, 0x4A4E5431@ha -/* 8006FC74 0006CBB4 38 03 54 31 */ addi r0, r3, 0x4A4E5431@l -/* 8006FC78 0006CBB8 7C 04 00 00 */ cmpw r4, r0 -/* 8006FC7C 0006CBBC 41 82 00 9C */ beq .L_8006FD18 -/* 8006FC80 0006CBC0 48 00 01 08 */ b .L_8006FD88 -.L_8006FC84: -/* 8006FC84 0006CBC4 3C 60 54 45 */ lis r3, 0x54455831@ha -/* 8006FC88 0006CBC8 38 03 58 31 */ addi r0, r3, 0x54455831@l -/* 8006FC8C 0006CBCC 7C 04 00 00 */ cmpw r4, r0 -/* 8006FC90 0006CBD0 41 82 00 EC */ beq .L_8006FD7C -/* 8006FC94 0006CBD4 40 80 00 2C */ bge .L_8006FCC0 -/* 8006FC98 0006CBD8 3C 60 53 48 */ lis r3, 0x53485031@ha -/* 8006FC9C 0006CBDC 38 03 50 31 */ addi r0, r3, 0x53485031@l -/* 8006FCA0 0006CBE0 7C 04 00 00 */ cmpw r4, r0 -/* 8006FCA4 0006CBE4 41 82 00 C4 */ beq .L_8006FD68 -/* 8006FCA8 0006CBE8 40 80 00 E0 */ bge .L_8006FD88 -/* 8006FCAC 0006CBEC 3C 60 4D 41 */ lis r3, 0x4D415434@ha -/* 8006FCB0 0006CBF0 38 03 54 34 */ addi r0, r3, 0x4D415434@l -/* 8006FCB4 0006CBF4 7C 04 00 00 */ cmpw r4, r0 -/* 8006FCB8 0006CBF8 40 80 00 D0 */ bge .L_8006FD88 -/* 8006FCBC 0006CBFC 48 00 00 6C */ b .L_8006FD28 -.L_8006FCC0: -/* 8006FCC0 0006CC00 3C 60 56 54 */ lis r3, 0x56545831@ha -/* 8006FCC4 0006CC04 38 03 58 31 */ addi r0, r3, 0x56545831@l -/* 8006FCC8 0006CC08 7C 04 00 00 */ cmpw r4, r0 -/* 8006FCCC 0006CC0C 41 82 00 1C */ beq .L_8006FCE8 -/* 8006FCD0 0006CC10 48 00 00 B8 */ b .L_8006FD88 -.L_8006FCD4: -/* 8006FCD4 0006CC14 7F 63 DB 78 */ mr r3, r27 -/* 8006FCD8 0006CC18 7F C4 F3 78 */ mr r4, r30 -/* 8006FCDC 0006CC1C 7F 85 E3 78 */ mr r5, r28 -/* 8006FCE0 0006CC20 48 00 06 C9 */ bl readInformation__14J3DModelLoaderFPC17J3DModelInfoBlockUl -/* 8006FCE4 0006CC24 48 00 00 A4 */ b .L_8006FD88 -.L_8006FCE8: -/* 8006FCE8 0006CC28 7F 63 DB 78 */ mr r3, r27 -/* 8006FCEC 0006CC2C 7F C4 F3 78 */ mr r4, r30 -/* 8006FCF0 0006CC30 48 00 08 7D */ bl readVertex__14J3DModelLoaderFPC14J3DVertexBlock -/* 8006FCF4 0006CC34 48 00 00 94 */ b .L_8006FD88 -.L_8006FCF8: -/* 8006FCF8 0006CC38 7F 63 DB 78 */ mr r3, r27 -/* 8006FCFC 0006CC3C 7F C4 F3 78 */ mr r4, r30 -/* 8006FD00 0006CC40 48 00 0A A5 */ bl readEnvelop__14J3DModelLoaderFPC16J3DEnvelopeBlock -/* 8006FD04 0006CC44 48 00 00 84 */ b .L_8006FD88 -.L_8006FD08: -/* 8006FD08 0006CC48 7F 63 DB 78 */ mr r3, r27 -/* 8006FD0C 0006CC4C 7F C4 F3 78 */ mr r4, r30 -/* 8006FD10 0006CC50 48 00 0B 2D */ bl readDraw__14J3DModelLoaderFPC12J3DDrawBlock -/* 8006FD14 0006CC54 48 00 00 74 */ b .L_8006FD88 -.L_8006FD18: -/* 8006FD18 0006CC58 7F 63 DB 78 */ mr r3, r27 -/* 8006FD1C 0006CC5C 7F C4 F3 78 */ mr r4, r30 -/* 8006FD20 0006CC60 48 00 0B D5 */ bl readJoint__14J3DModelLoaderFPC13J3DJointBlock -/* 8006FD24 0006CC64 48 00 00 64 */ b .L_8006FD88 -.L_8006FD28: -/* 8006FD28 0006CC68 7F 63 DB 78 */ mr r3, r27 -/* 8006FD2C 0006CC6C 7F C4 F3 78 */ mr r4, r30 -/* 8006FD30 0006CC70 81 9B 00 00 */ lwz r12, 0(r27) -/* 8006FD34 0006CC74 7F 85 E3 78 */ mr r5, r28 -/* 8006FD38 0006CC78 81 8C 00 2C */ lwz r12, 0x2c(r12) -/* 8006FD3C 0006CC7C 7D 89 03 A6 */ mtctr r12 -/* 8006FD40 0006CC80 4E 80 04 21 */ bctrl -/* 8006FD44 0006CC84 48 00 00 44 */ b .L_8006FD88 -.L_8006FD48: -/* 8006FD48 0006CC88 7F 63 DB 78 */ mr r3, r27 -/* 8006FD4C 0006CC8C 7F C4 F3 78 */ mr r4, r30 -/* 8006FD50 0006CC90 81 9B 00 00 */ lwz r12, 0(r27) -/* 8006FD54 0006CC94 7F 85 E3 78 */ mr r5, r28 -/* 8006FD58 0006CC98 81 8C 00 30 */ lwz r12, 0x30(r12) -/* 8006FD5C 0006CC9C 7D 89 03 A6 */ mtctr r12 -/* 8006FD60 0006CCA0 4E 80 04 21 */ bctrl -/* 8006FD64 0006CCA4 48 00 00 24 */ b .L_8006FD88 -.L_8006FD68: -/* 8006FD68 0006CCA8 7F 63 DB 78 */ mr r3, r27 -/* 8006FD6C 0006CCAC 7F C4 F3 78 */ mr r4, r30 -/* 8006FD70 0006CCB0 7F 85 E3 78 */ mr r5, r28 -/* 8006FD74 0006CCB4 48 00 11 91 */ bl readShape__14J3DModelLoaderFPC13J3DShapeBlockUl -/* 8006FD78 0006CCB8 48 00 00 10 */ b .L_8006FD88 -.L_8006FD7C: -/* 8006FD7C 0006CCBC 7F 63 DB 78 */ mr r3, r27 -/* 8006FD80 0006CCC0 7F C4 F3 78 */ mr r4, r30 -/* 8006FD84 0006CCC4 48 00 12 9D */ bl readTexture__14J3DModelLoaderFPC15J3DTextureBlock -.L_8006FD88: -/* 8006FD88 0006CCC8 80 1E 00 04 */ lwz r0, 4(r30) -/* 8006FD8C 0006CCCC 3B BD 00 01 */ addi r29, r29, 1 -/* 8006FD90 0006CCD0 7F DE 02 14 */ add r30, r30, r0 -.L_8006FD94: -/* 8006FD94 0006CCD4 7C 1D D0 40 */ cmplw r29, r26 -/* 8006FD98 0006CCD8 41 80 FE 8C */ blt .L_8006FC24 -/* 8006FD9C 0006CCDC 80 7B 00 04 */ lwz r3, 4(r27) -/* 8006FDA0 0006CCE0 38 A1 00 08 */ addi r5, r1, 8 -/* 8006FDA4 0006CCE4 38 80 00 00 */ li r4, 0 -/* 8006FDA8 0006CCE8 80 03 00 14 */ lwz r0, 0x14(r3) -/* 8006FDAC 0006CCEC 90 01 00 08 */ stw r0, 8(r1) -/* 8006FDB0 0006CCF0 83 5B 00 04 */ lwz r26, 4(r27) -/* 8006FDB4 0006CCF4 38 7A 00 10 */ addi r3, r26, 0x10 -/* 8006FDB8 0006CCF8 38 DA 00 58 */ addi r6, r26, 0x58 -/* 8006FDBC 0006CCFC 38 FA 00 78 */ addi r7, r26, 0x78 -/* 8006FDC0 0006CD00 48 01 85 51 */ bl makeHierarchy__12J3DJointTreeFP8J3DJointPPC17J3DModelHierarchyP16J3DMaterialTableP13J3DShapeTable -/* 8006FDC4 0006CD04 38 7A 00 78 */ addi r3, r26, 0x78 -/* 8006FDC8 0006CD08 38 9A 00 44 */ addi r4, r26, 0x44 -/* 8006FDCC 0006CD0C 38 BA 00 88 */ addi r5, r26, 0x88 -/* 8006FDD0 0006CD10 48 01 98 95 */ bl initShapeNodes__13J3DShapeTableFP14J3DDrawMtxDataP13J3DVertexData -/* 8006FDD4 0006CD14 80 7B 00 04 */ lwz r3, 4(r27) -/* 8006FDD8 0006CD18 38 63 00 78 */ addi r3, r3, 0x78 -/* 8006FDDC 0006CD1C 48 01 98 ED */ bl sortVcdVatCmd__13J3DShapeTableFv -/* 8006FDE0 0006CD20 80 7B 00 04 */ lwz r3, 4(r27) -/* 8006FDE4 0006CD24 38 63 00 10 */ addi r3, r3, 0x10 -/* 8006FDE8 0006CD28 48 01 86 85 */ bl findImportantMtxIndex__12J3DJointTreeFv -/* 8006FDEC 0006CD2C 7F 63 DB 78 */ mr r3, r27 -/* 8006FDF0 0006CD30 81 9B 00 00 */ lwz r12, 0(r27) -/* 8006FDF4 0006CD34 81 8C 00 24 */ lwz r12, 0x24(r12) -/* 8006FDF8 0006CD38 7D 89 03 A6 */ mtctr r12 -/* 8006FDFC 0006CD3C 4E 80 04 21 */ bctrl -/* 8006FE00 0006CD40 80 7B 00 04 */ lwz r3, 4(r27) -/* 8006FE04 0006CD44 80 03 00 08 */ lwz r0, 8(r3) -/* 8006FE08 0006CD48 54 00 05 EF */ rlwinm. r0, r0, 0, 0x17, 0x17 -/* 8006FE0C 0006CD4C 41 82 00 3C */ beq .L_8006FE48 -/* 8006FE10 0006CD50 38 A0 00 00 */ li r5, 0 -/* 8006FE14 0006CD54 48 00 00 20 */ b .L_8006FE34 -.L_8006FE18: -/* 8006FE18 0006CD58 80 64 00 80 */ lwz r3, 0x80(r4) -/* 8006FE1C 0006CD5C 54 A0 13 BA */ rlwinm r0, r5, 2, 0xe, 0x1d -/* 8006FE20 0006CD60 38 A5 00 01 */ addi r5, r5, 1 -/* 8006FE24 0006CD64 7C 63 00 2E */ lwzx r3, r3, r0 -/* 8006FE28 0006CD68 80 03 00 0C */ lwz r0, 0xc(r3) -/* 8006FE2C 0006CD6C 60 00 02 00 */ ori r0, r0, 0x200 -/* 8006FE30 0006CD70 90 03 00 0C */ stw r0, 0xc(r3) -.L_8006FE34: -/* 8006FE34 0006CD74 80 9B 00 04 */ lwz r4, 4(r27) -/* 8006FE38 0006CD78 54 A0 04 3E */ clrlwi r0, r5, 0x10 -/* 8006FE3C 0006CD7C A0 64 00 7C */ lhz r3, 0x7c(r4) -/* 8006FE40 0006CD80 7C 00 18 40 */ cmplw r0, r3 -/* 8006FE44 0006CD84 41 80 FF D4 */ blt .L_8006FE18 -.L_8006FE48: -/* 8006FE48 0006CD88 80 7B 00 04 */ lwz r3, 4(r27) -/* 8006FE4C 0006CD8C BB 41 00 18 */ lmw r26, 0x18(r1) -/* 8006FE50 0006CD90 80 01 00 34 */ lwz r0, 0x34(r1) -/* 8006FE54 0006CD94 7C 08 03 A6 */ mtlr r0 -/* 8006FE58 0006CD98 38 21 00 30 */ addi r1, r1, 0x30 -/* 8006FE5C 0006CD9C 4E 80 00 20 */ blr -.endfn load__14J3DModelLoaderFPCvUl - -.fn readMaterial_v21__14J3DModelLoaderFPC20J3DMaterialBlock_v21Ul, weak -/* 8006FE60 0006CDA0 4E 80 00 20 */ blr -.endfn readMaterial_v21__14J3DModelLoaderFPC20J3DMaterialBlock_v21Ul - -.fn readMaterial__14J3DModelLoaderFPC16J3DMaterialBlockUl, weak -/* 8006FE64 0006CDA4 4E 80 00 20 */ blr -.endfn readMaterial__14J3DModelLoaderFPC16J3DMaterialBlockUl - -.fn loadMaterialTable__14J3DModelLoaderFPCv, global -/* 8006FE68 0006CDA8 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8006FE6C 0006CDAC 7C 08 02 A6 */ mflr r0 -/* 8006FE70 0006CDB0 90 01 00 24 */ stw r0, 0x24(r1) -/* 8006FE74 0006CDB4 BF 61 00 0C */ stmw r27, 0xc(r1) -/* 8006FE78 0006CDB8 7C 7F 1B 78 */ mr r31, r3 -/* 8006FE7C 0006CDBC 7C 9B 23 78 */ mr r27, r4 -/* 8006FE80 0006CDC0 38 60 00 20 */ li r3, 0x20 -/* 8006FE84 0006CDC4 4B FB 40 21 */ bl __nw__FUl -/* 8006FE88 0006CDC8 7C 60 1B 79 */ or. r0, r3, r3 -/* 8006FE8C 0006CDCC 41 82 00 0C */ beq .L_8006FE98 -/* 8006FE90 0006CDD0 48 01 3D E5 */ bl __ct__16J3DMaterialTableFv -/* 8006FE94 0006CDD4 7C 60 1B 78 */ mr r0, r3 -.L_8006FE98: -/* 8006FE98 0006CDD8 90 1F 00 08 */ stw r0, 8(r31) -/* 8006FE9C 0006CDDC 80 7F 00 08 */ lwz r3, 8(r31) -/* 8006FEA0 0006CDE0 48 01 3D AD */ bl clear__16J3DMaterialTableFv -/* 8006FEA4 0006CDE4 3C 60 4D 41 */ lis r3, 0x4D415433@ha -/* 8006FEA8 0006CDE8 83 DB 00 0C */ lwz r30, 0xc(r27) -/* 8006FEAC 0006CDEC 3B 9B 00 20 */ addi r28, r27, 0x20 -/* 8006FEB0 0006CDF0 3B 60 00 00 */ li r27, 0 -/* 8006FEB4 0006CDF4 3B A3 54 33 */ addi r29, r3, 0x4D415433@l -/* 8006FEB8 0006CDF8 48 00 00 94 */ b .L_8006FF4C -.L_8006FEBC: -/* 8006FEBC 0006CDFC 80 9C 00 00 */ lwz r4, 0(r28) -/* 8006FEC0 0006CE00 7C 04 E8 00 */ cmpw r4, r29 -/* 8006FEC4 0006CE04 41 82 00 30 */ beq .L_8006FEF4 -/* 8006FEC8 0006CE08 40 80 00 18 */ bge .L_8006FEE0 -/* 8006FECC 0006CE0C 3C 60 4D 41 */ lis r3, 0x4D415432@ha -/* 8006FED0 0006CE10 38 03 54 32 */ addi r0, r3, 0x4D415432@l -/* 8006FED4 0006CE14 7C 04 00 00 */ cmpw r4, r0 -/* 8006FED8 0006CE18 40 80 00 3C */ bge .L_8006FF14 -/* 8006FEDC 0006CE1C 48 00 00 64 */ b .L_8006FF40 -.L_8006FEE0: -/* 8006FEE0 0006CE20 3C 60 54 45 */ lis r3, 0x54455831@ha -/* 8006FEE4 0006CE24 38 03 58 31 */ addi r0, r3, 0x54455831@l -/* 8006FEE8 0006CE28 7C 04 00 00 */ cmpw r4, r0 -/* 8006FEEC 0006CE2C 41 82 00 48 */ beq .L_8006FF34 -/* 8006FEF0 0006CE30 48 00 00 50 */ b .L_8006FF40 -.L_8006FEF4: -/* 8006FEF4 0006CE34 7F E3 FB 78 */ mr r3, r31 -/* 8006FEF8 0006CE38 7F 84 E3 78 */ mr r4, r28 -/* 8006FEFC 0006CE3C 81 9F 00 00 */ lwz r12, 0(r31) -/* 8006FF00 0006CE40 3C A0 51 10 */ lis r5, 0x5110 -/* 8006FF04 0006CE44 81 8C 00 34 */ lwz r12, 0x34(r12) -/* 8006FF08 0006CE48 7D 89 03 A6 */ mtctr r12 -/* 8006FF0C 0006CE4C 4E 80 04 21 */ bctrl -/* 8006FF10 0006CE50 48 00 00 30 */ b .L_8006FF40 -.L_8006FF14: -/* 8006FF14 0006CE54 7F E3 FB 78 */ mr r3, r31 -/* 8006FF18 0006CE58 7F 84 E3 78 */ mr r4, r28 -/* 8006FF1C 0006CE5C 81 9F 00 00 */ lwz r12, 0(r31) -/* 8006FF20 0006CE60 3C A0 51 10 */ lis r5, 0x5110 -/* 8006FF24 0006CE64 81 8C 00 38 */ lwz r12, 0x38(r12) -/* 8006FF28 0006CE68 7D 89 03 A6 */ mtctr r12 -/* 8006FF2C 0006CE6C 4E 80 04 21 */ bctrl -/* 8006FF30 0006CE70 48 00 00 10 */ b .L_8006FF40 -.L_8006FF34: -/* 8006FF34 0006CE74 7F E3 FB 78 */ mr r3, r31 -/* 8006FF38 0006CE78 7F 84 E3 78 */ mr r4, r28 -/* 8006FF3C 0006CE7C 48 00 14 41 */ bl readTextureTable__14J3DModelLoaderFPC15J3DTextureBlock -.L_8006FF40: -/* 8006FF40 0006CE80 80 1C 00 04 */ lwz r0, 4(r28) -/* 8006FF44 0006CE84 3B 7B 00 01 */ addi r27, r27, 1 -/* 8006FF48 0006CE88 7F 9C 02 14 */ add r28, r28, r0 -.L_8006FF4C: -/* 8006FF4C 0006CE8C 7C 1B F0 40 */ cmplw r27, r30 -/* 8006FF50 0006CE90 41 80 FF 6C */ blt .L_8006FEBC -/* 8006FF54 0006CE94 80 7F 00 08 */ lwz r3, 8(r31) -/* 8006FF58 0006CE98 80 03 00 14 */ lwz r0, 0x14(r3) -/* 8006FF5C 0006CE9C 28 00 00 00 */ cmplwi r0, 0 -/* 8006FF60 0006CEA0 40 82 00 38 */ bne .L_8006FF98 -/* 8006FF64 0006CEA4 38 60 00 0C */ li r3, 0xc -/* 8006FF68 0006CEA8 4B FB 3F 3D */ bl __nw__FUl -/* 8006FF6C 0006CEAC 28 03 00 00 */ cmplwi r3, 0 -/* 8006FF70 0006CEB0 41 82 00 20 */ beq .L_8006FF90 -/* 8006FF74 0006CEB4 3C 80 80 4A */ lis r4, __vt__10J3DTexture@ha -/* 8006FF78 0006CEB8 38 00 00 00 */ li r0, 0 -/* 8006FF7C 0006CEBC 38 84 1F 68 */ addi r4, r4, __vt__10J3DTexture@l -/* 8006FF80 0006CEC0 90 83 00 08 */ stw r4, 8(r3) -/* 8006FF84 0006CEC4 B0 03 00 00 */ sth r0, 0(r3) -/* 8006FF88 0006CEC8 B0 03 00 02 */ sth r0, 2(r3) -/* 8006FF8C 0006CECC 90 03 00 04 */ stw r0, 4(r3) -.L_8006FF90: -/* 8006FF90 0006CED0 80 9F 00 08 */ lwz r4, 8(r31) -/* 8006FF94 0006CED4 90 64 00 14 */ stw r3, 0x14(r4) -.L_8006FF98: -/* 8006FF98 0006CED8 80 7F 00 08 */ lwz r3, 8(r31) -/* 8006FF9C 0006CEDC BB 61 00 0C */ lmw r27, 0xc(r1) -/* 8006FFA0 0006CEE0 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8006FFA4 0006CEE4 7C 08 03 A6 */ mtlr r0 -/* 8006FFA8 0006CEE8 38 21 00 20 */ addi r1, r1, 0x20 -/* 8006FFAC 0006CEEC 4E 80 00 20 */ blr -.endfn loadMaterialTable__14J3DModelLoaderFPCv - -.fn readMaterialTable_v21__14J3DModelLoaderFPC20J3DMaterialBlock_v21Ul, weak -/* 8006FFB0 0006CEF0 4E 80 00 20 */ blr -.endfn readMaterialTable_v21__14J3DModelLoaderFPC20J3DMaterialBlock_v21Ul - -.fn readMaterialTable__14J3DModelLoaderFPC16J3DMaterialBlockUl, weak -/* 8006FFB4 0006CEF4 4E 80 00 20 */ blr -.endfn readMaterialTable__14J3DModelLoaderFPC16J3DMaterialBlockUl - -.fn loadBinaryDisplayList__14J3DModelLoaderFPCvUl, global -/* 8006FFB8 0006CEF8 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 8006FFBC 0006CEFC 7C 08 02 A6 */ mflr r0 -/* 8006FFC0 0006CF00 90 01 00 34 */ stw r0, 0x34(r1) -/* 8006FFC4 0006CF04 BF 01 00 10 */ stmw r24, 0x10(r1) -/* 8006FFC8 0006CF08 7C 79 1B 78 */ mr r25, r3 -/* 8006FFCC 0006CF0C 7C 9B 23 78 */ mr r27, r4 -/* 8006FFD0 0006CF10 7C BA 2B 78 */ mr r26, r5 -/* 8006FFD4 0006CF14 38 60 00 E4 */ li r3, 0xe4 -/* 8006FFD8 0006CF18 4B FB 3E CD */ bl __nw__FUl -/* 8006FFDC 0006CF1C 7C 60 1B 79 */ or. r0, r3, r3 -/* 8006FFE0 0006CF20 41 82 00 0C */ beq .L_8006FFEC -/* 8006FFE4 0006CF24 48 01 37 C9 */ bl __ct__12J3DModelDataFv -/* 8006FFE8 0006CF28 7C 60 1B 78 */ mr r0, r3 -.L_8006FFEC: -/* 8006FFEC 0006CF2C 90 19 00 04 */ stw r0, 4(r25) -/* 8006FFF0 0006CF30 80 79 00 04 */ lwz r3, 4(r25) -/* 8006FFF4 0006CF34 48 01 37 A1 */ bl clear__12J3DModelDataFv -/* 8006FFF8 0006CF38 80 99 00 04 */ lwz r4, 4(r25) -/* 8006FFFC 0006CF3C 3C 60 4D 41 */ lis r3, 0x4D415433@ha -/* 80070000 0006CF40 38 00 00 01 */ li r0, 1 -/* 80070004 0006CF44 83 1B 00 0C */ lwz r24, 0xc(r27) -/* 80070008 0006CF48 93 64 00 04 */ stw r27, 4(r4) -/* 8007000C 0006CF4C 3B 9B 00 20 */ addi r28, r27, 0x20 -/* 80070010 0006CF50 57 5E 01 8E */ rlwinm r30, r26, 0, 6, 7 -/* 80070014 0006CF54 57 5D 04 A6 */ rlwinm r29, r26, 0, 0x12, 0x13 -/* 80070018 0006CF58 80 99 00 04 */ lwz r4, 4(r25) -/* 8007001C 0006CF5C 3B E3 54 33 */ addi r31, r3, 0x4D415433@l -/* 80070020 0006CF60 3B 60 00 00 */ li r27, 0 -/* 80070024 0006CF64 90 04 00 1C */ stw r0, 0x1c(r4) -/* 80070028 0006CF68 80 79 00 04 */ lwz r3, 4(r25) -/* 8007002C 0006CF6C 38 03 00 58 */ addi r0, r3, 0x58 -/* 80070030 0006CF70 90 19 00 08 */ stw r0, 8(r25) -/* 80070034 0006CF74 48 00 01 9C */ b .L_800701D0 -.L_80070038: -/* 80070038 0006CF78 80 9C 00 00 */ lwz r4, 0(r28) -/* 8007003C 0006CF7C 7C 04 F8 00 */ cmpw r4, r31 -/* 80070040 0006CF80 41 82 01 40 */ beq .L_80070180 -/* 80070044 0006CF84 40 80 00 54 */ bge .L_80070098 -/* 80070048 0006CF88 3C 60 49 4E */ lis r3, 0x494E4631@ha -/* 8007004C 0006CF8C 38 03 46 31 */ addi r0, r3, 0x494E4631@l -/* 80070050 0006CF90 7C 04 00 00 */ cmpw r4, r0 -/* 80070054 0006CF94 41 82 00 94 */ beq .L_800700E8 -/* 80070058 0006CF98 40 80 00 2C */ bge .L_80070084 -/* 8007005C 0006CF9C 3C 60 45 56 */ lis r3, 0x45565031@ha -/* 80070060 0006CFA0 38 03 50 31 */ addi r0, r3, 0x45565031@l -/* 80070064 0006CFA4 7C 04 00 00 */ cmpw r4, r0 -/* 80070068 0006CFA8 41 82 00 A4 */ beq .L_8007010C -/* 8007006C 0006CFAC 40 80 01 58 */ bge .L_800701C4 -/* 80070070 0006CFB0 3C 60 44 52 */ lis r3, 0x44525731@ha -/* 80070074 0006CFB4 38 03 57 31 */ addi r0, r3, 0x44525731@l -/* 80070078 0006CFB8 7C 04 00 00 */ cmpw r4, r0 -/* 8007007C 0006CFBC 41 82 00 A0 */ beq .L_8007011C -/* 80070080 0006CFC0 48 00 01 44 */ b .L_800701C4 -.L_80070084: -/* 80070084 0006CFC4 3C 60 4A 4E */ lis r3, 0x4A4E5431@ha -/* 80070088 0006CFC8 38 03 54 31 */ addi r0, r3, 0x4A4E5431@l -/* 8007008C 0006CFCC 7C 04 00 00 */ cmpw r4, r0 -/* 80070090 0006CFD0 41 82 00 9C */ beq .L_8007012C -/* 80070094 0006CFD4 48 00 01 30 */ b .L_800701C4 -.L_80070098: -/* 80070098 0006CFD8 3C 60 54 45 */ lis r3, 0x54455831@ha -/* 8007009C 0006CFDC 38 03 58 31 */ addi r0, r3, 0x54455831@l -/* 800700A0 0006CFE0 7C 04 00 00 */ cmpw r4, r0 -/* 800700A4 0006CFE4 41 82 00 AC */ beq .L_80070150 -/* 800700A8 0006CFE8 40 80 00 2C */ bge .L_800700D4 -/* 800700AC 0006CFEC 3C 60 53 48 */ lis r3, 0x53485031@ha -/* 800700B0 0006CFF0 38 03 50 31 */ addi r0, r3, 0x53485031@l -/* 800700B4 0006CFF4 7C 04 00 00 */ cmpw r4, r0 -/* 800700B8 0006CFF8 41 82 00 84 */ beq .L_8007013C -/* 800700BC 0006CFFC 40 80 01 08 */ bge .L_800701C4 -/* 800700C0 0006D000 3C 60 4D 44 */ lis r3, 0x4D444C33@ha -/* 800700C4 0006D004 38 03 4C 33 */ addi r0, r3, 0x4D444C33@l -/* 800700C8 0006D008 7C 04 00 00 */ cmpw r4, r0 -/* 800700CC 0006D00C 41 82 00 94 */ beq .L_80070160 -/* 800700D0 0006D010 48 00 00 F4 */ b .L_800701C4 -.L_800700D4: -/* 800700D4 0006D014 3C 60 56 54 */ lis r3, 0x56545831@ha -/* 800700D8 0006D018 38 03 58 31 */ addi r0, r3, 0x56545831@l -/* 800700DC 0006D01C 7C 04 00 00 */ cmpw r4, r0 -/* 800700E0 0006D020 41 82 00 1C */ beq .L_800700FC -/* 800700E4 0006D024 48 00 00 E0 */ b .L_800701C4 -.L_800700E8: -/* 800700E8 0006D028 7F 23 CB 78 */ mr r3, r25 -/* 800700EC 0006D02C 7F 84 E3 78 */ mr r4, r28 -/* 800700F0 0006D030 7F 45 D3 78 */ mr r5, r26 -/* 800700F4 0006D034 48 00 02 B5 */ bl readInformation__14J3DModelLoaderFPC17J3DModelInfoBlockUl -/* 800700F8 0006D038 48 00 00 CC */ b .L_800701C4 -.L_800700FC: -/* 800700FC 0006D03C 7F 23 CB 78 */ mr r3, r25 -/* 80070100 0006D040 7F 84 E3 78 */ mr r4, r28 -/* 80070104 0006D044 48 00 04 69 */ bl readVertex__14J3DModelLoaderFPC14J3DVertexBlock -/* 80070108 0006D048 48 00 00 BC */ b .L_800701C4 -.L_8007010C: -/* 8007010C 0006D04C 7F 23 CB 78 */ mr r3, r25 -/* 80070110 0006D050 7F 84 E3 78 */ mr r4, r28 -/* 80070114 0006D054 48 00 06 91 */ bl readEnvelop__14J3DModelLoaderFPC16J3DEnvelopeBlock -/* 80070118 0006D058 48 00 00 AC */ b .L_800701C4 -.L_8007011C: -/* 8007011C 0006D05C 7F 23 CB 78 */ mr r3, r25 -/* 80070120 0006D060 7F 84 E3 78 */ mr r4, r28 -/* 80070124 0006D064 48 00 07 19 */ bl readDraw__14J3DModelLoaderFPC12J3DDrawBlock -/* 80070128 0006D068 48 00 00 9C */ b .L_800701C4 -.L_8007012C: -/* 8007012C 0006D06C 7F 23 CB 78 */ mr r3, r25 -/* 80070130 0006D070 7F 84 E3 78 */ mr r4, r28 -/* 80070134 0006D074 48 00 07 C1 */ bl readJoint__14J3DModelLoaderFPC13J3DJointBlock -/* 80070138 0006D078 48 00 00 8C */ b .L_800701C4 -.L_8007013C: -/* 8007013C 0006D07C 7F 23 CB 78 */ mr r3, r25 -/* 80070140 0006D080 7F 84 E3 78 */ mr r4, r28 -/* 80070144 0006D084 7F 45 D3 78 */ mr r5, r26 -/* 80070148 0006D088 48 00 0D BD */ bl readShape__14J3DModelLoaderFPC13J3DShapeBlockUl -/* 8007014C 0006D08C 48 00 00 78 */ b .L_800701C4 -.L_80070150: -/* 80070150 0006D090 7F 23 CB 78 */ mr r3, r25 -/* 80070154 0006D094 7F 84 E3 78 */ mr r4, r28 -/* 80070158 0006D098 48 00 0E C9 */ bl readTexture__14J3DModelLoaderFPC15J3DTextureBlock -/* 8007015C 0006D09C 48 00 00 68 */ b .L_800701C4 -.L_80070160: -/* 80070160 0006D0A0 7F 23 CB 78 */ mr r3, r25 -/* 80070164 0006D0A4 7F 84 E3 78 */ mr r4, r28 -/* 80070168 0006D0A8 7F 45 D3 78 */ mr r5, r26 -/* 8007016C 0006D0AC 48 00 14 25 */ bl readMaterialDL__14J3DModelLoaderFPC18J3DMaterialDLBlockUl -/* 80070170 0006D0B0 7F 23 CB 78 */ mr r3, r25 -/* 80070174 0006D0B4 7F 44 D3 78 */ mr r4, r26 -/* 80070178 0006D0B8 48 00 15 D5 */ bl modifyMaterial__14J3DModelLoaderFUl -/* 8007017C 0006D0BC 48 00 00 48 */ b .L_800701C4 -.L_80070180: -/* 80070180 0006D0C0 28 1D 00 00 */ cmplwi r29, 0 -/* 80070184 0006D0C4 3C A0 50 10 */ lis r5, 0x5010 -/* 80070188 0006D0C8 93 99 00 10 */ stw r28, 0x10(r25) -/* 8007018C 0006D0CC 7C A5 F3 78 */ or r5, r5, r30 -/* 80070190 0006D0D0 40 82 00 20 */ bne .L_800701B0 -/* 80070194 0006D0D4 81 99 00 00 */ lwz r12, 0(r25) -/* 80070198 0006D0D8 7F 23 CB 78 */ mr r3, r25 -/* 8007019C 0006D0DC 7F 84 E3 78 */ mr r4, r28 -/* 800701A0 0006D0E0 81 8C 00 2C */ lwz r12, 0x2c(r12) -/* 800701A4 0006D0E4 7D 89 03 A6 */ mtctr r12 -/* 800701A8 0006D0E8 4E 80 04 21 */ bctrl -/* 800701AC 0006D0EC 48 00 00 18 */ b .L_800701C4 -.L_800701B0: -/* 800701B0 0006D0F0 28 1D 20 00 */ cmplwi r29, 0x2000 -/* 800701B4 0006D0F4 40 82 00 10 */ bne .L_800701C4 -/* 800701B8 0006D0F8 7F 23 CB 78 */ mr r3, r25 -/* 800701BC 0006D0FC 7F 84 E3 78 */ mr r4, r28 -/* 800701C0 0006D100 48 00 12 81 */ bl readPatchedMaterial__14J3DModelLoaderFPC16J3DMaterialBlockUl -.L_800701C4: -/* 800701C4 0006D104 80 1C 00 04 */ lwz r0, 4(r28) -/* 800701C8 0006D108 3B 7B 00 01 */ addi r27, r27, 1 -/* 800701CC 0006D10C 7F 9C 02 14 */ add r28, r28, r0 -.L_800701D0: -/* 800701D0 0006D110 7C 1B C0 40 */ cmplw r27, r24 -/* 800701D4 0006D114 41 80 FE 64 */ blt .L_80070038 -/* 800701D8 0006D118 80 79 00 04 */ lwz r3, 4(r25) -/* 800701DC 0006D11C 38 A1 00 08 */ addi r5, r1, 8 -/* 800701E0 0006D120 38 80 00 00 */ li r4, 0 -/* 800701E4 0006D124 80 03 00 14 */ lwz r0, 0x14(r3) -/* 800701E8 0006D128 90 01 00 08 */ stw r0, 8(r1) -/* 800701EC 0006D12C 83 19 00 04 */ lwz r24, 4(r25) -/* 800701F0 0006D130 38 78 00 10 */ addi r3, r24, 0x10 -/* 800701F4 0006D134 38 D8 00 58 */ addi r6, r24, 0x58 -/* 800701F8 0006D138 38 F8 00 78 */ addi r7, r24, 0x78 -/* 800701FC 0006D13C 48 01 81 15 */ bl makeHierarchy__12J3DJointTreeFP8J3DJointPPC17J3DModelHierarchyP16J3DMaterialTableP13J3DShapeTable -/* 80070200 0006D140 38 78 00 78 */ addi r3, r24, 0x78 -/* 80070204 0006D144 38 98 00 44 */ addi r4, r24, 0x44 -/* 80070208 0006D148 38 B8 00 88 */ addi r5, r24, 0x88 -/* 8007020C 0006D14C 48 01 94 59 */ bl initShapeNodes__13J3DShapeTableFP14J3DDrawMtxDataP13J3DVertexData -/* 80070210 0006D150 80 79 00 04 */ lwz r3, 4(r25) -/* 80070214 0006D154 38 63 00 78 */ addi r3, r3, 0x78 -/* 80070218 0006D158 48 01 94 B1 */ bl sortVcdVatCmd__13J3DShapeTableFv -/* 8007021C 0006D15C 80 79 00 04 */ lwz r3, 4(r25) -/* 80070220 0006D160 38 63 00 10 */ addi r3, r3, 0x10 -/* 80070224 0006D164 48 01 82 49 */ bl findImportantMtxIndex__12J3DJointTreeFv -/* 80070228 0006D168 7F 23 CB 78 */ mr r3, r25 -/* 8007022C 0006D16C 81 99 00 00 */ lwz r12, 0(r25) -/* 80070230 0006D170 81 8C 00 24 */ lwz r12, 0x24(r12) -/* 80070234 0006D174 7D 89 03 A6 */ mtctr r12 -/* 80070238 0006D178 4E 80 04 21 */ bctrl -/* 8007023C 0006D17C 80 79 00 04 */ lwz r3, 4(r25) -/* 80070240 0006D180 48 01 37 2D */ bl indexToPtr__12J3DModelDataFv -/* 80070244 0006D184 80 79 00 04 */ lwz r3, 4(r25) -/* 80070248 0006D188 BB 01 00 10 */ lmw r24, 0x10(r1) -/* 8007024C 0006D18C 80 01 00 34 */ lwz r0, 0x34(r1) -/* 80070250 0006D190 7C 08 03 A6 */ mtlr r0 -/* 80070254 0006D194 38 21 00 30 */ addi r1, r1, 0x30 -/* 80070258 0006D198 4E 80 00 20 */ blr -.endfn loadBinaryDisplayList__14J3DModelLoaderFPCvUl - -.fn setupBBoardInfo__14J3DModelLoaderFv, global -/* 8007025C 0006D19C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80070260 0006D1A0 7C 08 02 A6 */ mflr r0 -/* 80070264 0006D1A4 90 01 00 24 */ stw r0, 0x24(r1) -/* 80070268 0006D1A8 BF 61 00 0C */ stmw r27, 0xc(r1) -/* 8007026C 0006D1AC 7C 7D 1B 78 */ mr r29, r3 -/* 80070270 0006D1B0 3B C0 00 00 */ li r30, 0 -/* 80070274 0006D1B4 48 00 01 0C */ b .L_80070380 -.L_80070278: -/* 80070278 0006D1B8 80 64 00 28 */ lwz r3, 0x28(r4) -/* 8007027C 0006D1BC 57 DF 13 BA */ rlwinm r31, r30, 2, 0xe, 0x1d -/* 80070280 0006D1C0 7C 63 F8 2E */ lwzx r3, r3, r31 -/* 80070284 0006D1C4 80 83 00 58 */ lwz r4, 0x58(r3) -/* 80070288 0006D1C8 28 04 00 00 */ cmplwi r4, 0 -/* 8007028C 0006D1CC 41 82 00 F0 */ beq .L_8007037C -/* 80070290 0006D1D0 80 A4 00 08 */ lwz r5, 8(r4) -/* 80070294 0006D1D4 80 7D 00 0C */ lwz r3, 0xc(r29) -/* 80070298 0006D1D8 A3 65 00 08 */ lhz r27, 8(r5) -/* 8007029C 0006D1DC 80 83 00 10 */ lwz r4, 0x10(r3) -/* 800702A0 0006D1E0 48 00 18 69 */ bl "JSUConvertOffsetToPtr__FPCvUl" -/* 800702A4 0006D1E4 80 BD 00 0C */ lwz r5, 0xc(r29) -/* 800702A8 0006D1E8 7C 7C 1B 78 */ mr r28, r3 -/* 800702AC 0006D1EC 80 85 00 0C */ lwz r4, 0xc(r5) -/* 800702B0 0006D1F0 7C A3 2B 78 */ mr r3, r5 -/* 800702B4 0006D1F4 48 00 18 3D */ bl "JSUConvertOffsetToPtr<16J3DShapeInitData>__FPCvUl" -/* 800702B8 0006D1F8 57 60 0B FC */ rlwinm r0, r27, 1, 0xf, 0x1e -/* 800702BC 0006D1FC 7C 1C 02 2E */ lhzx r0, r28, r0 -/* 800702C0 0006D200 1C 00 00 28 */ mulli r0, r0, 0x28 -/* 800702C4 0006D204 7C 03 00 AE */ lbzx r0, r3, r0 -/* 800702C8 0006D208 2C 00 00 02 */ cmpwi r0, 2 -/* 800702CC 0006D20C 41 82 00 6C */ beq .L_80070338 -/* 800702D0 0006D210 40 80 00 14 */ bge .L_800702E4 -/* 800702D4 0006D214 2C 00 00 00 */ cmpwi r0, 0 -/* 800702D8 0006D218 41 82 00 18 */ beq .L_800702F0 -/* 800702DC 0006D21C 40 80 00 30 */ bge .L_8007030C -/* 800702E0 0006D220 48 00 00 9C */ b .L_8007037C -.L_800702E4: -/* 800702E4 0006D224 2C 00 00 04 */ cmpwi r0, 4 -/* 800702E8 0006D228 40 80 00 94 */ bge .L_8007037C -/* 800702EC 0006D22C 48 00 00 78 */ b .L_80070364 -.L_800702F0: -/* 800702F0 0006D230 80 7D 00 04 */ lwz r3, 4(r29) -/* 800702F4 0006D234 80 63 00 28 */ lwz r3, 0x28(r3) -/* 800702F8 0006D238 7C 63 F8 2E */ lwzx r3, r3, r31 -/* 800702FC 0006D23C 88 03 00 16 */ lbz r0, 0x16(r3) -/* 80070300 0006D240 54 00 07 3E */ clrlwi r0, r0, 0x1c -/* 80070304 0006D244 98 03 00 16 */ stb r0, 0x16(r3) -/* 80070308 0006D248 48 00 00 74 */ b .L_8007037C -.L_8007030C: -/* 8007030C 0006D24C 80 7D 00 04 */ lwz r3, 4(r29) -/* 80070310 0006D250 38 00 00 01 */ li r0, 1 -/* 80070314 0006D254 80 63 00 28 */ lwz r3, 0x28(r3) -/* 80070318 0006D258 7C 83 F8 2E */ lwzx r4, r3, r31 -/* 8007031C 0006D25C 88 64 00 16 */ lbz r3, 0x16(r4) -/* 80070320 0006D260 54 63 07 2E */ rlwinm r3, r3, 0, 0x1c, 0x17 -/* 80070324 0006D264 60 63 00 10 */ ori r3, r3, 0x10 -/* 80070328 0006D268 98 64 00 16 */ stb r3, 0x16(r4) -/* 8007032C 0006D26C 80 7D 00 04 */ lwz r3, 4(r29) -/* 80070330 0006D270 B0 03 00 0E */ sth r0, 0xe(r3) -/* 80070334 0006D274 48 00 00 48 */ b .L_8007037C -.L_80070338: -/* 80070338 0006D278 80 7D 00 04 */ lwz r3, 4(r29) -/* 8007033C 0006D27C 38 00 00 01 */ li r0, 1 -/* 80070340 0006D280 80 63 00 28 */ lwz r3, 0x28(r3) -/* 80070344 0006D284 7C 83 F8 2E */ lwzx r4, r3, r31 -/* 80070348 0006D288 88 64 00 16 */ lbz r3, 0x16(r4) -/* 8007034C 0006D28C 54 63 07 2E */ rlwinm r3, r3, 0, 0x1c, 0x17 -/* 80070350 0006D290 60 63 00 20 */ ori r3, r3, 0x20 -/* 80070354 0006D294 98 64 00 16 */ stb r3, 0x16(r4) -/* 80070358 0006D298 80 7D 00 04 */ lwz r3, 4(r29) -/* 8007035C 0006D29C B0 03 00 0E */ sth r0, 0xe(r3) -/* 80070360 0006D2A0 48 00 00 1C */ b .L_8007037C -.L_80070364: -/* 80070364 0006D2A4 80 7D 00 04 */ lwz r3, 4(r29) -/* 80070368 0006D2A8 80 63 00 28 */ lwz r3, 0x28(r3) -/* 8007036C 0006D2AC 7C 63 F8 2E */ lwzx r3, r3, r31 -/* 80070370 0006D2B0 88 03 00 16 */ lbz r0, 0x16(r3) -/* 80070374 0006D2B4 54 00 07 3E */ clrlwi r0, r0, 0x1c -/* 80070378 0006D2B8 98 03 00 16 */ stb r0, 0x16(r3) -.L_8007037C: -/* 8007037C 0006D2BC 3B DE 00 01 */ addi r30, r30, 1 -.L_80070380: -/* 80070380 0006D2C0 80 9D 00 04 */ lwz r4, 4(r29) -/* 80070384 0006D2C4 57 C0 04 3E */ clrlwi r0, r30, 0x10 -/* 80070388 0006D2C8 A0 64 00 2C */ lhz r3, 0x2c(r4) -/* 8007038C 0006D2CC 7C 00 18 40 */ cmplw r0, r3 -/* 80070390 0006D2D0 41 80 FE E8 */ blt .L_80070278 -/* 80070394 0006D2D4 BB 61 00 0C */ lmw r27, 0xc(r1) -/* 80070398 0006D2D8 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8007039C 0006D2DC 7C 08 03 A6 */ mtlr r0 -/* 800703A0 0006D2E0 38 21 00 20 */ addi r1, r1, 0x20 -/* 800703A4 0006D2E4 4E 80 00 20 */ blr -.endfn setupBBoardInfo__14J3DModelLoaderFv - -.fn readInformation__14J3DModelLoaderFPC17J3DModelInfoBlockUl, global -/* 800703A8 0006D2E8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800703AC 0006D2EC 7C 08 02 A6 */ mflr r0 -/* 800703B0 0006D2F0 38 E0 00 00 */ li r7, 0 -/* 800703B4 0006D2F4 90 01 00 14 */ stw r0, 0x14(r1) -/* 800703B8 0006D2F8 A0 04 00 08 */ lhz r0, 8(r4) -/* 800703BC 0006D2FC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800703C0 0006D300 7C 9F 23 78 */ mr r31, r4 -/* 800703C4 0006D304 7C A0 03 78 */ or r0, r5, r0 -/* 800703C8 0006D308 93 C1 00 08 */ stw r30, 8(r1) -/* 800703CC 0006D30C 7C 7E 1B 78 */ mr r30, r3 -/* 800703D0 0006D310 80 63 00 04 */ lwz r3, 4(r3) -/* 800703D4 0006D314 90 03 00 08 */ stw r0, 8(r3) -/* 800703D8 0006D318 80 7E 00 04 */ lwz r3, 4(r30) -/* 800703DC 0006D31C 80 03 00 08 */ lwz r0, 8(r3) -/* 800703E0 0006D320 90 03 00 18 */ stw r0, 0x18(r3) -/* 800703E4 0006D324 80 7E 00 04 */ lwz r3, 4(r30) -/* 800703E8 0006D328 80 03 00 08 */ lwz r0, 8(r3) -/* 800703EC 0006D32C 54 00 07 3E */ clrlwi r0, r0, 0x1c -/* 800703F0 0006D330 2C 00 00 01 */ cmpwi r0, 1 -/* 800703F4 0006D334 41 82 00 5C */ beq .L_80070450 -/* 800703F8 0006D338 40 80 00 10 */ bge .L_80070408 -/* 800703FC 0006D33C 2C 00 00 00 */ cmpwi r0, 0 -/* 80070400 0006D340 40 80 00 14 */ bge .L_80070414 -/* 80070404 0006D344 48 00 00 C0 */ b .L_800704C4 -.L_80070408: -/* 80070408 0006D348 2C 00 00 03 */ cmpwi r0, 3 -/* 8007040C 0006D34C 40 80 00 B8 */ bge .L_800704C4 -/* 80070410 0006D350 48 00 00 7C */ b .L_8007048C -.L_80070414: -/* 80070414 0006D354 38 60 00 04 */ li r3, 4 -/* 80070418 0006D358 4B FB 3A 8D */ bl __nw__FUl -/* 8007041C 0006D35C 28 03 00 00 */ cmplwi r3, 0 -/* 80070420 0006D360 41 82 00 28 */ beq .L_80070448 -/* 80070424 0006D364 3C 80 80 4A */ lis r4, __vt__10J3DMtxCalc@ha -/* 80070428 0006D368 3C A0 80 4A */ lis r5, __vt__19J3DMtxCalcNoAnmBase@ha -/* 8007042C 0006D36C 38 04 FB 3C */ addi r0, r4, __vt__10J3DMtxCalc@l -/* 80070430 0006D370 3C 80 80 4A */ lis r4, "__vt__75J3DMtxCalcNoAnm<28J3DMtxCalcCalcTransformBasic,25J3DMtxCalcJ3DSysInitBasic>"@ha -/* 80070434 0006D374 90 03 00 00 */ stw r0, 0(r3) -/* 80070438 0006D378 38 A5 1F 3C */ addi r5, r5, __vt__19J3DMtxCalcNoAnmBase@l -/* 8007043C 0006D37C 38 04 1F 10 */ addi r0, r4, "__vt__75J3DMtxCalcNoAnm<28J3DMtxCalcCalcTransformBasic,25J3DMtxCalcJ3DSysInitBasic>"@l -/* 80070440 0006D380 90 A3 00 00 */ stw r5, 0(r3) -/* 80070444 0006D384 90 03 00 00 */ stw r0, 0(r3) -.L_80070448: -/* 80070448 0006D388 7C 67 1B 78 */ mr r7, r3 -/* 8007044C 0006D38C 48 00 00 78 */ b .L_800704C4 -.L_80070450: -/* 80070450 0006D390 38 60 00 04 */ li r3, 4 -/* 80070454 0006D394 4B FB 3A 51 */ bl __nw__FUl -/* 80070458 0006D398 28 03 00 00 */ cmplwi r3, 0 -/* 8007045C 0006D39C 41 82 00 28 */ beq .L_80070484 -/* 80070460 0006D3A0 3C 80 80 4A */ lis r4, __vt__10J3DMtxCalc@ha -/* 80070464 0006D3A4 3C A0 80 4A */ lis r5, __vt__19J3DMtxCalcNoAnmBase@ha -/* 80070468 0006D3A8 38 04 FB 3C */ addi r0, r4, __vt__10J3DMtxCalc@l -/* 8007046C 0006D3AC 3C 80 80 4A */ lis r4, "__vt__83J3DMtxCalcNoAnm<32J3DMtxCalcCalcTransformSoftimage,29J3DMtxCalcJ3DSysInitSoftimage>"@ha -/* 80070470 0006D3B0 90 03 00 00 */ stw r0, 0(r3) -/* 80070474 0006D3B4 38 A5 1F 3C */ addi r5, r5, __vt__19J3DMtxCalcNoAnmBase@l -/* 80070478 0006D3B8 38 04 1E E4 */ addi r0, r4, "__vt__83J3DMtxCalcNoAnm<32J3DMtxCalcCalcTransformSoftimage,29J3DMtxCalcJ3DSysInitSoftimage>"@l -/* 8007047C 0006D3BC 90 A3 00 00 */ stw r5, 0(r3) -/* 80070480 0006D3C0 90 03 00 00 */ stw r0, 0(r3) -.L_80070484: -/* 80070484 0006D3C4 7C 67 1B 78 */ mr r7, r3 -/* 80070488 0006D3C8 48 00 00 3C */ b .L_800704C4 -.L_8007048C: -/* 8007048C 0006D3CC 38 60 00 04 */ li r3, 4 -/* 80070490 0006D3D0 4B FB 3A 15 */ bl __nw__FUl -/* 80070494 0006D3D4 28 03 00 00 */ cmplwi r3, 0 -/* 80070498 0006D3D8 41 82 00 28 */ beq .L_800704C0 -/* 8007049C 0006D3DC 3C 80 80 4A */ lis r4, __vt__10J3DMtxCalc@ha -/* 800704A0 0006D3E0 3C A0 80 4A */ lis r5, __vt__19J3DMtxCalcNoAnmBase@ha -/* 800704A4 0006D3E4 38 04 FB 3C */ addi r0, r4, __vt__10J3DMtxCalc@l -/* 800704A8 0006D3E8 3C 80 80 4A */ lis r4, "__vt__73J3DMtxCalcNoAnm<27J3DMtxCalcCalcTransformMaya,24J3DMtxCalcJ3DSysInitMaya>"@ha -/* 800704AC 0006D3EC 90 03 00 00 */ stw r0, 0(r3) -/* 800704B0 0006D3F0 38 A5 1F 3C */ addi r5, r5, __vt__19J3DMtxCalcNoAnmBase@l -/* 800704B4 0006D3F4 38 04 1E B8 */ addi r0, r4, "__vt__73J3DMtxCalcNoAnm<27J3DMtxCalcCalcTransformMaya,24J3DMtxCalcJ3DSysInitMaya>"@l -/* 800704B8 0006D3F8 90 A3 00 00 */ stw r5, 0(r3) -/* 800704BC 0006D3FC 90 03 00 00 */ stw r0, 0(r3) -.L_800704C0: -/* 800704C0 0006D400 7C 67 1B 78 */ mr r7, r3 -.L_800704C4: -/* 800704C4 0006D404 80 9E 00 04 */ lwz r4, 4(r30) -/* 800704C8 0006D408 7F E3 FB 78 */ mr r3, r31 -/* 800704CC 0006D40C 80 DF 00 0C */ lwz r6, 0xc(r31) -/* 800704D0 0006D410 90 E4 00 24 */ stw r7, 0x24(r4) -/* 800704D4 0006D414 80 1F 00 10 */ lwz r0, 0x10(r31) -/* 800704D8 0006D418 80 BE 00 04 */ lwz r5, 4(r30) -/* 800704DC 0006D41C 80 9F 00 14 */ lwz r4, 0x14(r31) -/* 800704E0 0006D420 90 C5 00 98 */ stw r6, 0x98(r5) -/* 800704E4 0006D424 80 BE 00 04 */ lwz r5, 4(r30) -/* 800704E8 0006D428 90 05 00 88 */ stw r0, 0x88(r5) -/* 800704EC 0006D42C 48 00 15 ED */ bl "JSUConvertOffsetToPtr<17J3DModelHierarchy>__FPCvPCv" -/* 800704F0 0006D430 80 9E 00 04 */ lwz r4, 4(r30) -/* 800704F4 0006D434 90 64 00 14 */ stw r3, 0x14(r4) -/* 800704F8 0006D438 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800704FC 0006D43C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80070500 0006D440 83 C1 00 08 */ lwz r30, 8(r1) -/* 80070504 0006D444 7C 08 03 A6 */ mtlr r0 -/* 80070508 0006D448 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007050C 0006D44C 4E 80 00 20 */ blr -.endfn readInformation__14J3DModelLoaderFPC17J3DModelInfoBlockUl - -.fn __dt__19J3DMtxCalcNoAnmBaseFv, weak -/* 80070510 0006D450 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80070514 0006D454 7C 08 02 A6 */ mflr r0 -/* 80070518 0006D458 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007051C 0006D45C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80070520 0006D460 7C 7F 1B 79 */ or. r31, r3, r3 -/* 80070524 0006D464 41 82 00 30 */ beq .L_80070554 -/* 80070528 0006D468 3C 60 80 4A */ lis r3, __vt__19J3DMtxCalcNoAnmBase@ha -/* 8007052C 0006D46C 38 03 1F 3C */ addi r0, r3, __vt__19J3DMtxCalcNoAnmBase@l -/* 80070530 0006D470 90 1F 00 00 */ stw r0, 0(r31) -/* 80070534 0006D474 41 82 00 10 */ beq .L_80070544 -/* 80070538 0006D478 3C 60 80 4A */ lis r3, __vt__10J3DMtxCalc@ha -/* 8007053C 0006D47C 38 03 FB 3C */ addi r0, r3, __vt__10J3DMtxCalc@l -/* 80070540 0006D480 90 1F 00 00 */ stw r0, 0(r31) -.L_80070544: -/* 80070544 0006D484 7C 80 07 35 */ extsh. r0, r4 -/* 80070548 0006D488 40 81 00 0C */ ble .L_80070554 -/* 8007054C 0006D48C 7F E3 FB 78 */ mr r3, r31 -/* 80070550 0006D490 4B FB 3B 65 */ bl __dl__FPv -.L_80070554: -/* 80070554 0006D494 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80070558 0006D498 7F E3 FB 78 */ mr r3, r31 -/* 8007055C 0006D49C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80070560 0006D4A0 7C 08 03 A6 */ mtlr r0 -/* 80070564 0006D4A4 38 21 00 10 */ addi r1, r1, 0x10 -/* 80070568 0006D4A8 4E 80 00 20 */ blr -.endfn __dt__19J3DMtxCalcNoAnmBaseFv - -.fn readVertex__14J3DModelLoaderFPC14J3DVertexBlock, global -/* 8007056C 0006D4AC 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80070570 0006D4B0 7C 08 02 A6 */ mflr r0 -/* 80070574 0006D4B4 90 01 00 24 */ stw r0, 0x24(r1) -/* 80070578 0006D4B8 BF 61 00 0C */ stmw r27, 0xc(r1) -/* 8007057C 0006D4BC 7C 9E 23 78 */ mr r30, r4 -/* 80070580 0006D4C0 80 84 00 08 */ lwz r4, 8(r4) -/* 80070584 0006D4C4 80 A3 00 04 */ lwz r5, 4(r3) -/* 80070588 0006D4C8 7F C3 F3 78 */ mr r3, r30 -/* 8007058C 0006D4CC 3B E5 00 88 */ addi r31, r5, 0x88 -/* 80070590 0006D4D0 48 00 15 31 */ bl "JSUConvertOffsetToPtr<17_GXVtxAttrFmtList>__FPCvPCv" -/* 80070594 0006D4D4 90 7F 00 14 */ stw r3, 0x14(r31) -/* 80070598 0006D4D8 7F C3 F3 78 */ mr r3, r30 -/* 8007059C 0006D4DC 80 9E 00 0C */ lwz r4, 0xc(r30) -/* 800705A0 0006D4E0 48 00 15 09 */ bl "JSUConvertOffsetToPtr__FPCvPCv" -/* 800705A4 0006D4E4 90 7F 00 18 */ stw r3, 0x18(r31) -/* 800705A8 0006D4E8 7F C3 F3 78 */ mr r3, r30 -/* 800705AC 0006D4EC 80 9E 00 10 */ lwz r4, 0x10(r30) -/* 800705B0 0006D4F0 48 00 14 F9 */ bl "JSUConvertOffsetToPtr__FPCvPCv" -/* 800705B4 0006D4F4 90 7F 00 1C */ stw r3, 0x1c(r31) -/* 800705B8 0006D4F8 7F C3 F3 78 */ mr r3, r30 -/* 800705BC 0006D4FC 80 9E 00 14 */ lwz r4, 0x14(r30) -/* 800705C0 0006D500 48 00 14 E9 */ bl "JSUConvertOffsetToPtr__FPCvPCv" -/* 800705C4 0006D504 90 7F 00 20 */ stw r3, 0x20(r31) -/* 800705C8 0006D508 7F DD F3 78 */ mr r29, r30 -/* 800705CC 0006D50C 7F FC FB 78 */ mr r28, r31 -/* 800705D0 0006D510 3B 60 00 00 */ li r27, 0 -.L_800705D4: -/* 800705D4 0006D514 80 9D 00 18 */ lwz r4, 0x18(r29) -/* 800705D8 0006D518 7F C3 F3 78 */ mr r3, r30 -/* 800705DC 0006D51C 48 00 14 CD */ bl "JSUConvertOffsetToPtr__FPCvPCv" -/* 800705E0 0006D520 3B 7B 00 01 */ addi r27, r27, 1 -/* 800705E4 0006D524 90 7C 00 24 */ stw r3, 0x24(r28) -/* 800705E8 0006D528 2C 1B 00 02 */ cmpwi r27, 2 -/* 800705EC 0006D52C 3B BD 00 04 */ addi r29, r29, 4 -/* 800705F0 0006D530 3B 9C 00 04 */ addi r28, r28, 4 -/* 800705F4 0006D534 41 80 FF E0 */ blt .L_800705D4 -/* 800705F8 0006D538 7F DC F3 78 */ mr r28, r30 -/* 800705FC 0006D53C 7F FD FB 78 */ mr r29, r31 -/* 80070600 0006D540 3B 60 00 00 */ li r27, 0 -.L_80070604: -/* 80070604 0006D544 80 9C 00 20 */ lwz r4, 0x20(r28) -/* 80070608 0006D548 7F C3 F3 78 */ mr r3, r30 -/* 8007060C 0006D54C 48 00 14 9D */ bl "JSUConvertOffsetToPtr__FPCvPCv" -/* 80070610 0006D550 3B 7B 00 01 */ addi r27, r27, 1 -/* 80070614 0006D554 90 7D 00 2C */ stw r3, 0x2c(r29) -/* 80070618 0006D558 2C 1B 00 08 */ cmpwi r27, 8 -/* 8007061C 0006D55C 3B 9C 00 04 */ addi r28, r28, 4 -/* 80070620 0006D560 3B BD 00 04 */ addi r29, r29, 4 -/* 80070624 0006D564 41 80 FF E0 */ blt .L_80070604 -/* 80070628 0006D568 80 7F 00 14 */ lwz r3, 0x14(r31) -/* 8007062C 0006D56C 48 00 00 18 */ b .L_80070644 -.L_80070630: -/* 80070630 0006D570 2C 00 00 0A */ cmpwi r0, 0xa -/* 80070634 0006D574 40 82 00 0C */ bne .L_80070640 -/* 80070638 0006D578 80 03 00 08 */ lwz r0, 8(r3) -/* 8007063C 0006D57C 48 00 00 18 */ b .L_80070654 -.L_80070640: -/* 80070640 0006D580 38 63 00 10 */ addi r3, r3, 0x10 -.L_80070644: -/* 80070644 0006D584 80 03 00 00 */ lwz r0, 0(r3) -/* 80070648 0006D588 2C 00 00 FF */ cmpwi r0, 0xff -/* 8007064C 0006D58C 40 82 FF E4 */ bne .L_80070630 -/* 80070650 0006D590 38 00 00 04 */ li r0, 4 -.L_80070654: -/* 80070654 0006D594 2C 00 00 04 */ cmpwi r0, 4 -/* 80070658 0006D598 38 80 00 06 */ li r4, 6 -/* 8007065C 0006D59C 40 82 00 08 */ bne .L_80070664 -/* 80070660 0006D5A0 38 80 00 0C */ li r4, 0xc -.L_80070664: -/* 80070664 0006D5A4 80 1F 00 20 */ lwz r0, 0x20(r31) -/* 80070668 0006D5A8 38 60 00 00 */ li r3, 0 -/* 8007066C 0006D5AC 28 00 00 00 */ cmplwi r0, 0 -/* 80070670 0006D5B0 41 82 00 0C */ beq .L_8007067C -/* 80070674 0006D5B4 7C 03 03 78 */ mr r3, r0 -/* 80070678 0006D5B8 48 00 00 28 */ b .L_800706A0 -.L_8007067C: -/* 8007067C 0006D5BC 80 1F 00 24 */ lwz r0, 0x24(r31) -/* 80070680 0006D5C0 28 00 00 00 */ cmplwi r0, 0 -/* 80070684 0006D5C4 41 82 00 0C */ beq .L_80070690 -/* 80070688 0006D5C8 7C 03 03 78 */ mr r3, r0 -/* 8007068C 0006D5CC 48 00 00 14 */ b .L_800706A0 -.L_80070690: -/* 80070690 0006D5D0 80 1F 00 2C */ lwz r0, 0x2c(r31) -/* 80070694 0006D5D4 28 00 00 00 */ cmplwi r0, 0 -/* 80070698 0006D5D8 41 82 00 08 */ beq .L_800706A0 -/* 8007069C 0006D5DC 7C 03 03 78 */ mr r3, r0 -.L_800706A0: -/* 800706A0 0006D5E0 80 1F 00 1C */ lwz r0, 0x1c(r31) -/* 800706A4 0006D5E4 28 00 00 00 */ cmplwi r0, 0 -/* 800706A8 0006D5E8 40 82 00 10 */ bne .L_800706B8 -/* 800706AC 0006D5EC 38 00 00 00 */ li r0, 0 -/* 800706B0 0006D5F0 90 1F 00 04 */ stw r0, 4(r31) -/* 800706B4 0006D5F4 48 00 00 38 */ b .L_800706EC -.L_800706B8: -/* 800706B8 0006D5F8 28 03 00 00 */ cmplwi r3, 0 -/* 800706BC 0006D5FC 41 82 00 18 */ beq .L_800706D4 -/* 800706C0 0006D600 7C 00 18 50 */ subf r0, r0, r3 -/* 800706C4 0006D604 7C 60 23 96 */ divwu r3, r0, r4 -/* 800706C8 0006D608 38 03 00 01 */ addi r0, r3, 1 -/* 800706CC 0006D60C 90 1F 00 04 */ stw r0, 4(r31) -/* 800706D0 0006D610 48 00 00 1C */ b .L_800706EC -.L_800706D4: -/* 800706D4 0006D614 80 7E 00 10 */ lwz r3, 0x10(r30) -/* 800706D8 0006D618 80 1E 00 04 */ lwz r0, 4(r30) -/* 800706DC 0006D61C 7C 03 00 50 */ subf r0, r3, r0 -/* 800706E0 0006D620 7C 60 23 96 */ divwu r3, r0, r4 -/* 800706E4 0006D624 38 03 00 01 */ addi r0, r3, 1 -/* 800706E8 0006D628 90 1F 00 04 */ stw r0, 4(r31) -.L_800706EC: -/* 800706EC 0006D62C 80 1F 00 28 */ lwz r0, 0x28(r31) -/* 800706F0 0006D630 38 60 00 00 */ li r3, 0 -/* 800706F4 0006D634 28 00 00 00 */ cmplwi r0, 0 -/* 800706F8 0006D638 41 82 00 0C */ beq .L_80070704 -/* 800706FC 0006D63C 7C 03 03 78 */ mr r3, r0 -/* 80070700 0006D640 48 00 00 14 */ b .L_80070714 -.L_80070704: -/* 80070704 0006D644 80 1F 00 2C */ lwz r0, 0x2c(r31) -/* 80070708 0006D648 28 00 00 00 */ cmplwi r0, 0 -/* 8007070C 0006D64C 41 82 00 08 */ beq .L_80070714 -/* 80070710 0006D650 7C 03 03 78 */ mr r3, r0 -.L_80070714: -/* 80070714 0006D654 80 1F 00 24 */ lwz r0, 0x24(r31) -/* 80070718 0006D658 28 00 00 00 */ cmplwi r0, 0 -/* 8007071C 0006D65C 40 82 00 10 */ bne .L_8007072C -/* 80070720 0006D660 38 00 00 00 */ li r0, 0 -/* 80070724 0006D664 90 1F 00 08 */ stw r0, 8(r31) -/* 80070728 0006D668 48 00 00 38 */ b .L_80070760 -.L_8007072C: -/* 8007072C 0006D66C 28 03 00 00 */ cmplwi r3, 0 -/* 80070730 0006D670 41 82 00 18 */ beq .L_80070748 -/* 80070734 0006D674 7C 00 18 50 */ subf r0, r0, r3 -/* 80070738 0006D678 54 03 F0 BE */ srwi r3, r0, 2 -/* 8007073C 0006D67C 38 03 00 01 */ addi r0, r3, 1 -/* 80070740 0006D680 90 1F 00 08 */ stw r0, 8(r31) -/* 80070744 0006D684 48 00 00 1C */ b .L_80070760 -.L_80070748: -/* 80070748 0006D688 80 7E 00 18 */ lwz r3, 0x18(r30) -/* 8007074C 0006D68C 80 1E 00 04 */ lwz r0, 4(r30) -/* 80070750 0006D690 7C 03 00 50 */ subf r0, r3, r0 -/* 80070754 0006D694 54 03 F0 BE */ srwi r3, r0, 2 -/* 80070758 0006D698 38 03 00 01 */ addi r0, r3, 1 -/* 8007075C 0006D69C 90 1F 00 08 */ stw r0, 8(r31) -.L_80070760: -/* 80070760 0006D6A0 80 1F 00 2C */ lwz r0, 0x2c(r31) -/* 80070764 0006D6A4 28 00 00 00 */ cmplwi r0, 0 -/* 80070768 0006D6A8 40 82 00 10 */ bne .L_80070778 -/* 8007076C 0006D6AC 38 00 00 00 */ li r0, 0 -/* 80070770 0006D6B0 90 1F 00 0C */ stw r0, 0xc(r31) -/* 80070774 0006D6B4 48 00 00 1C */ b .L_80070790 -.L_80070778: -/* 80070778 0006D6B8 80 7E 00 20 */ lwz r3, 0x20(r30) -/* 8007077C 0006D6BC 80 1E 00 04 */ lwz r0, 4(r30) -/* 80070780 0006D6C0 7C 03 00 50 */ subf r0, r3, r0 -/* 80070784 0006D6C4 54 03 E8 FE */ srwi r3, r0, 3 -/* 80070788 0006D6C8 38 03 00 01 */ addi r0, r3, 1 -/* 8007078C 0006D6CC 90 1F 00 0C */ stw r0, 0xc(r31) -.L_80070790: -/* 80070790 0006D6D0 BB 61 00 0C */ lmw r27, 0xc(r1) -/* 80070794 0006D6D4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80070798 0006D6D8 7C 08 03 A6 */ mtlr r0 -/* 8007079C 0006D6DC 38 21 00 20 */ addi r1, r1, 0x20 -/* 800707A0 0006D6E0 4E 80 00 20 */ blr -.endfn readVertex__14J3DModelLoaderFPC14J3DVertexBlock - -.fn readEnvelop__14J3DModelLoaderFPC16J3DEnvelopeBlock, global -/* 800707A4 0006D6E4 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 800707A8 0006D6E8 7C 08 02 A6 */ mflr r0 -/* 800707AC 0006D6EC 90 01 00 24 */ stw r0, 0x24(r1) -/* 800707B0 0006D6F0 A0 04 00 08 */ lhz r0, 8(r4) -/* 800707B4 0006D6F4 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 800707B8 0006D6F8 93 C1 00 18 */ stw r30, 0x18(r1) -/* 800707BC 0006D6FC 7C 9E 23 78 */ mr r30, r4 -/* 800707C0 0006D700 80 84 00 0C */ lwz r4, 0xc(r4) -/* 800707C4 0006D704 93 A1 00 14 */ stw r29, 0x14(r1) -/* 800707C8 0006D708 7C 7D 1B 78 */ mr r29, r3 -/* 800707CC 0006D70C 7F C3 F3 78 */ mr r3, r30 -/* 800707D0 0006D710 80 BD 00 04 */ lwz r5, 4(r29) -/* 800707D4 0006D714 B0 05 00 2E */ sth r0, 0x2e(r5) -/* 800707D8 0006D718 83 FD 00 04 */ lwz r31, 4(r29) -/* 800707DC 0006D71C 4B FD 8C 79 */ bl "JSUConvertOffsetToPtr__FPCvPCv" -/* 800707E0 0006D720 90 7F 00 30 */ stw r3, 0x30(r31) -/* 800707E4 0006D724 7F C3 F3 78 */ mr r3, r30 -/* 800707E8 0006D728 80 9E 00 10 */ lwz r4, 0x10(r30) -/* 800707EC 0006D72C 83 FD 00 04 */ lwz r31, 4(r29) -/* 800707F0 0006D730 4B FD 8C 95 */ bl "JSUConvertOffsetToPtr__FPCvPCv" -/* 800707F4 0006D734 90 7F 00 34 */ stw r3, 0x34(r31) -/* 800707F8 0006D738 7F C3 F3 78 */ mr r3, r30 -/* 800707FC 0006D73C 80 9E 00 14 */ lwz r4, 0x14(r30) -/* 80070800 0006D740 83 FD 00 04 */ lwz r31, 4(r29) -/* 80070804 0006D744 4B FD 8C B1 */ bl "JSUConvertOffsetToPtr__FPCvPCv" -/* 80070808 0006D748 90 7F 00 38 */ stw r3, 0x38(r31) -/* 8007080C 0006D74C 7F C3 F3 78 */ mr r3, r30 -/* 80070810 0006D750 80 9E 00 18 */ lwz r4, 0x18(r30) -/* 80070814 0006D754 83 FD 00 04 */ lwz r31, 4(r29) -/* 80070818 0006D758 48 00 12 79 */ bl "JSUConvertOffsetToPtr__FPCvPCv" -/* 8007081C 0006D75C 90 7F 00 3C */ stw r3, 0x3c(r31) -/* 80070820 0006D760 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80070824 0006D764 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 80070828 0006D768 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 8007082C 0006D76C 83 A1 00 14 */ lwz r29, 0x14(r1) -/* 80070830 0006D770 7C 08 03 A6 */ mtlr r0 -/* 80070834 0006D774 38 21 00 20 */ addi r1, r1, 0x20 -/* 80070838 0006D778 4E 80 00 20 */ blr -.endfn readEnvelop__14J3DModelLoaderFPC16J3DEnvelopeBlock - -.fn readDraw__14J3DModelLoaderFPC12J3DDrawBlock, global -/* 8007083C 0006D77C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80070840 0006D780 7C 08 02 A6 */ mflr r0 -/* 80070844 0006D784 90 01 00 24 */ stw r0, 0x24(r1) -/* 80070848 0006D788 A0 04 00 08 */ lhz r0, 8(r4) -/* 8007084C 0006D78C 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 80070850 0006D790 93 C1 00 18 */ stw r30, 0x18(r1) -/* 80070854 0006D794 7C 9E 23 78 */ mr r30, r4 -/* 80070858 0006D798 80 84 00 0C */ lwz r4, 0xc(r4) -/* 8007085C 0006D79C 93 A1 00 14 */ stw r29, 0x14(r1) -/* 80070860 0006D7A0 7C 7D 1B 78 */ mr r29, r3 -/* 80070864 0006D7A4 83 E3 00 04 */ lwz r31, 4(r3) -/* 80070868 0006D7A8 7F C3 F3 78 */ mr r3, r30 -/* 8007086C 0006D7AC A0 BF 00 2E */ lhz r5, 0x2e(r31) -/* 80070870 0006D7B0 7C 05 00 50 */ subf r0, r5, r0 -/* 80070874 0006D7B4 B0 1F 00 44 */ sth r0, 0x44(r31) -/* 80070878 0006D7B8 4B FD 8B DD */ bl "JSUConvertOffsetToPtr__FPCvPCv" -/* 8007087C 0006D7BC 90 7F 00 48 */ stw r3, 0x48(r31) -/* 80070880 0006D7C0 7F C3 F3 78 */ mr r3, r30 -/* 80070884 0006D7C4 80 9E 00 10 */ lwz r4, 0x10(r30) -/* 80070888 0006D7C8 4B FD 8B FD */ bl "JSUConvertOffsetToPtr__FPCvPCv" -/* 8007088C 0006D7CC 90 7F 00 4C */ stw r3, 0x4c(r31) -/* 80070890 0006D7D0 38 A0 00 00 */ li r5, 0 -/* 80070894 0006D7D4 A0 9F 00 44 */ lhz r4, 0x44(r31) -/* 80070898 0006D7D8 48 00 00 1C */ b .L_800708B4 -.L_8007089C: -/* 8007089C 0006D7DC 80 7F 00 48 */ lwz r3, 0x48(r31) -/* 800708A0 0006D7E0 54 A0 04 3E */ clrlwi r0, r5, 0x10 -/* 800708A4 0006D7E4 7C 03 00 AE */ lbzx r0, r3, r0 -/* 800708A8 0006D7E8 28 00 00 01 */ cmplwi r0, 1 -/* 800708AC 0006D7EC 41 82 00 14 */ beq .L_800708C0 -/* 800708B0 0006D7F0 38 A5 00 01 */ addi r5, r5, 1 -.L_800708B4: -/* 800708B4 0006D7F4 54 A0 04 3E */ clrlwi r0, r5, 0x10 -/* 800708B8 0006D7F8 7C 00 20 40 */ cmplw r0, r4 -/* 800708BC 0006D7FC 41 80 FF E0 */ blt .L_8007089C -.L_800708C0: -/* 800708C0 0006D800 B0 BF 00 46 */ sth r5, 0x46(r31) -/* 800708C4 0006D804 A0 1F 00 44 */ lhz r0, 0x44(r31) -/* 800708C8 0006D808 83 FD 00 04 */ lwz r31, 4(r29) -/* 800708CC 0006D80C 54 03 08 3C */ slwi r3, r0, 1 -/* 800708D0 0006D810 4B FB 36 DD */ bl __nwa__FUl -/* 800708D4 0006D814 90 7F 00 40 */ stw r3, 0x40(r31) -/* 800708D8 0006D818 80 01 00 24 */ lwz r0, 0x24(r1) -/* 800708DC 0006D81C 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 800708E0 0006D820 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 800708E4 0006D824 83 A1 00 14 */ lwz r29, 0x14(r1) -/* 800708E8 0006D828 7C 08 03 A6 */ mtlr r0 -/* 800708EC 0006D82C 38 21 00 20 */ addi r1, r1, 0x20 -/* 800708F0 0006D830 4E 80 00 20 */ blr -.endfn readDraw__14J3DModelLoaderFPC12J3DDrawBlock - -.fn readJoint__14J3DModelLoaderFPC13J3DJointBlock, global -/* 800708F4 0006D834 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 800708F8 0006D838 7C 08 02 A6 */ mflr r0 -/* 800708FC 0006D83C 90 01 00 24 */ stw r0, 0x24(r1) -/* 80070900 0006D840 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 80070904 0006D844 7C 7F 1B 78 */ mr r31, r3 -/* 80070908 0006D848 38 61 00 08 */ addi r3, r1, 8 -/* 8007090C 0006D84C 93 C1 00 18 */ stw r30, 0x18(r1) -/* 80070910 0006D850 93 A1 00 14 */ stw r29, 0x14(r1) -/* 80070914 0006D854 7C 9D 23 78 */ mr r29, r4 -/* 80070918 0006D858 48 00 12 09 */ bl __ct__15J3DJointFactoryFRC13J3DJointBlock -/* 8007091C 0006D85C 80 1D 00 14 */ lwz r0, 0x14(r29) -/* 80070920 0006D860 A0 9D 00 08 */ lhz r4, 8(r29) -/* 80070924 0006D864 80 7F 00 04 */ lwz r3, 4(r31) -/* 80070928 0006D868 28 00 00 00 */ cmplwi r0, 0 -/* 8007092C 0006D86C B0 83 00 2C */ sth r4, 0x2c(r3) -/* 80070930 0006D870 41 82 00 3C */ beq .L_8007096C -/* 80070934 0006D874 38 60 00 10 */ li r3, 0x10 -/* 80070938 0006D878 4B FB 35 6D */ bl __nw__FUl -/* 8007093C 0006D87C 7C 7E 1B 79 */ or. r30, r3, r3 -/* 80070940 0006D880 41 82 00 20 */ beq .L_80070960 -/* 80070944 0006D884 80 9D 00 14 */ lwz r4, 0x14(r29) -/* 80070948 0006D888 7F A3 EB 78 */ mr r3, r29 -/* 8007094C 0006D88C 4B FD 8B 21 */ bl "JSUConvertOffsetToPtr<7ResNTAB>__FPCvPCv" -/* 80070950 0006D890 7C 64 1B 78 */ mr r4, r3 -/* 80070954 0006D894 7F C3 F3 78 */ mr r3, r30 -/* 80070958 0006D898 4B FB E3 B5 */ bl __ct__10JUTNameTabFPC7ResNTAB -/* 8007095C 0006D89C 7C 7E 1B 78 */ mr r30, r3 -.L_80070960: -/* 80070960 0006D8A0 80 7F 00 04 */ lwz r3, 4(r31) -/* 80070964 0006D8A4 93 C3 00 54 */ stw r30, 0x54(r3) -/* 80070968 0006D8A8 48 00 00 10 */ b .L_80070978 -.L_8007096C: -/* 8007096C 0006D8AC 80 7F 00 04 */ lwz r3, 4(r31) -/* 80070970 0006D8B0 38 00 00 00 */ li r0, 0 -/* 80070974 0006D8B4 90 03 00 54 */ stw r0, 0x54(r3) -.L_80070978: -/* 80070978 0006D8B8 83 DF 00 04 */ lwz r30, 4(r31) -/* 8007097C 0006D8BC A0 1E 00 2C */ lhz r0, 0x2c(r30) -/* 80070980 0006D8C0 54 03 10 3A */ slwi r3, r0, 2 -/* 80070984 0006D8C4 4B FB 36 29 */ bl __nwa__FUl -/* 80070988 0006D8C8 90 7E 00 28 */ stw r3, 0x28(r30) -/* 8007098C 0006D8CC 3B A0 00 00 */ li r29, 0 -/* 80070990 0006D8D0 48 00 00 20 */ b .L_800709B0 -.L_80070994: -/* 80070994 0006D8D4 38 61 00 08 */ addi r3, r1, 8 -/* 80070998 0006D8D8 57 A4 04 3E */ clrlwi r4, r29, 0x10 -/* 8007099C 0006D8DC 48 00 11 DD */ bl create__15J3DJointFactoryFi -/* 800709A0 0006D8E0 80 9E 00 28 */ lwz r4, 0x28(r30) -/* 800709A4 0006D8E4 57 A0 13 BA */ rlwinm r0, r29, 2, 0xe, 0x1d -/* 800709A8 0006D8E8 3B BD 00 01 */ addi r29, r29, 1 -/* 800709AC 0006D8EC 7C 64 01 2E */ stwx r3, r4, r0 -.L_800709B0: -/* 800709B0 0006D8F0 83 DF 00 04 */ lwz r30, 4(r31) -/* 800709B4 0006D8F4 57 A0 04 3E */ clrlwi r0, r29, 0x10 -/* 800709B8 0006D8F8 A0 7E 00 2C */ lhz r3, 0x2c(r30) -/* 800709BC 0006D8FC 7C 00 18 40 */ cmplw r0, r3 -/* 800709C0 0006D900 41 80 FF D4 */ blt .L_80070994 -/* 800709C4 0006D904 80 01 00 24 */ lwz r0, 0x24(r1) -/* 800709C8 0006D908 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 800709CC 0006D90C 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 800709D0 0006D910 83 A1 00 14 */ lwz r29, 0x14(r1) -/* 800709D4 0006D914 7C 08 03 A6 */ mtlr r0 -/* 800709D8 0006D918 38 21 00 20 */ addi r1, r1, 0x20 -/* 800709DC 0006D91C 4E 80 00 20 */ blr -.endfn readJoint__14J3DModelLoaderFPC13J3DJointBlock - -.fn readMaterial__18J3DModelLoader_v26FPC16J3DMaterialBlockUl, global -/* 800709E0 0006D920 94 21 FF 50 */ stwu r1, -0xb0(r1) -/* 800709E4 0006D924 7C 08 02 A6 */ mflr r0 -/* 800709E8 0006D928 90 01 00 B4 */ stw r0, 0xb4(r1) -/* 800709EC 0006D92C BF 61 00 9C */ stmw r27, 0x9c(r1) -/* 800709F0 0006D930 7C 7D 1B 78 */ mr r29, r3 -/* 800709F4 0006D934 7C 9B 23 78 */ mr r27, r4 -/* 800709F8 0006D938 7C BE 2B 78 */ mr r30, r5 -/* 800709FC 0006D93C 38 61 00 08 */ addi r3, r1, 8 -/* 80070A00 0006D940 4B FF B9 A5 */ bl __ct__18J3DMaterialFactoryFRC16J3DMaterialBlock -/* 80070A04 0006D944 A0 1B 00 08 */ lhz r0, 8(r27) -/* 80070A08 0006D948 38 61 00 08 */ addi r3, r1, 8 -/* 80070A0C 0006D94C 80 9D 00 08 */ lwz r4, 8(r29) -/* 80070A10 0006D950 B0 04 00 04 */ sth r0, 4(r4) -/* 80070A14 0006D954 4B FF BC 61 */ bl countUniqueMaterials__18J3DMaterialFactoryFv -/* 80070A18 0006D958 80 1B 00 14 */ lwz r0, 0x14(r27) -/* 80070A1C 0006D95C 80 9D 00 08 */ lwz r4, 8(r29) -/* 80070A20 0006D960 28 00 00 00 */ cmplwi r0, 0 -/* 80070A24 0006D964 B0 64 00 06 */ sth r3, 6(r4) -/* 80070A28 0006D968 41 82 00 3C */ beq .L_80070A64 -/* 80070A2C 0006D96C 38 60 00 10 */ li r3, 0x10 -/* 80070A30 0006D970 4B FB 34 75 */ bl __nw__FUl -/* 80070A34 0006D974 7C 7C 1B 79 */ or. r28, r3, r3 -/* 80070A38 0006D978 41 82 00 20 */ beq .L_80070A58 -/* 80070A3C 0006D97C 80 9B 00 14 */ lwz r4, 0x14(r27) -/* 80070A40 0006D980 7F 63 DB 78 */ mr r3, r27 -/* 80070A44 0006D984 4B FD 8A 29 */ bl "JSUConvertOffsetToPtr<7ResNTAB>__FPCvPCv" -/* 80070A48 0006D988 7C 64 1B 78 */ mr r4, r3 -/* 80070A4C 0006D98C 7F 83 E3 78 */ mr r3, r28 -/* 80070A50 0006D990 4B FB E2 BD */ bl __ct__10JUTNameTabFPC7ResNTAB -/* 80070A54 0006D994 7C 7C 1B 78 */ mr r28, r3 -.L_80070A58: -/* 80070A58 0006D998 80 7D 00 08 */ lwz r3, 8(r29) -/* 80070A5C 0006D99C 93 83 00 0C */ stw r28, 0xc(r3) -/* 80070A60 0006D9A0 48 00 00 10 */ b .L_80070A70 -.L_80070A64: -/* 80070A64 0006D9A4 80 7D 00 08 */ lwz r3, 8(r29) -/* 80070A68 0006D9A8 38 00 00 00 */ li r0, 0 -/* 80070A6C 0006D9AC 90 03 00 0C */ stw r0, 0xc(r3) -.L_80070A70: -/* 80070A70 0006D9B0 80 7D 00 08 */ lwz r3, 8(r29) -/* 80070A74 0006D9B4 A0 03 00 04 */ lhz r0, 4(r3) -/* 80070A78 0006D9B8 54 03 10 3A */ slwi r3, r0, 2 -/* 80070A7C 0006D9BC 4B FB 35 31 */ bl __nwa__FUl -/* 80070A80 0006D9C0 80 9D 00 08 */ lwz r4, 8(r29) -/* 80070A84 0006D9C4 57 DF 02 95 */ rlwinm. r31, r30, 0, 0xa, 0xa -/* 80070A88 0006D9C8 90 64 00 08 */ stw r3, 8(r4) -/* 80070A8C 0006D9CC 41 82 00 44 */ beq .L_80070AD0 -/* 80070A90 0006D9D0 80 7D 00 08 */ lwz r3, 8(r29) -/* 80070A94 0006D9D4 38 80 00 20 */ li r4, 0x20 -/* 80070A98 0006D9D8 A3 83 00 06 */ lhz r28, 6(r3) -/* 80070A9C 0006D9DC 1C 7C 00 4C */ mulli r3, r28, 0x4c -/* 80070AA0 0006D9E0 38 63 00 10 */ addi r3, r3, 0x10 -/* 80070AA4 0006D9E4 4B FB 35 55 */ bl __nwa__FUli -/* 80070AA8 0006D9E8 3C 80 80 07 */ lis r4, __ct__11J3DMaterialFv@ha -/* 80070AAC 0006D9EC 3C A0 80 07 */ lis r5, __dt__11J3DMaterialFv@ha -/* 80070AB0 0006D9F0 38 84 0C 54 */ addi r4, r4, __ct__11J3DMaterialFv@l -/* 80070AB4 0006D9F4 7F 87 E3 78 */ mr r7, r28 -/* 80070AB8 0006D9F8 38 A5 DA 94 */ addi r5, r5, __dt__11J3DMaterialFv@l -/* 80070ABC 0006D9FC 38 C0 00 4C */ li r6, 0x4c -/* 80070AC0 0006DA00 48 05 0F 31 */ bl __construct_new_array -/* 80070AC4 0006DA04 80 9D 00 08 */ lwz r4, 8(r29) -/* 80070AC8 0006DA08 90 64 00 10 */ stw r3, 0x10(r4) -/* 80070ACC 0006DA0C 48 00 00 10 */ b .L_80070ADC -.L_80070AD0: -/* 80070AD0 0006DA10 80 7D 00 08 */ lwz r3, 8(r29) -/* 80070AD4 0006DA14 38 00 00 00 */ li r0, 0 -/* 80070AD8 0006DA18 90 03 00 10 */ stw r0, 0x10(r3) -.L_80070ADC: -/* 80070ADC 0006DA1C 28 1F 00 00 */ cmplwi r31, 0 -/* 80070AE0 0006DA20 41 82 00 58 */ beq .L_80070B38 -/* 80070AE4 0006DA24 3B 60 00 00 */ li r27, 0 -/* 80070AE8 0006DA28 48 00 00 3C */ b .L_80070B24 -.L_80070AEC: -/* 80070AEC 0006DA2C 57 66 04 3E */ clrlwi r6, r27, 0x10 -/* 80070AF0 0006DA30 80 04 00 10 */ lwz r0, 0x10(r4) -/* 80070AF4 0006DA34 1F 86 00 4C */ mulli r28, r6, 0x4c -/* 80070AF8 0006DA38 7F C7 F3 78 */ mr r7, r30 -/* 80070AFC 0006DA3C 38 61 00 08 */ addi r3, r1, 8 -/* 80070B00 0006DA40 38 A0 00 00 */ li r5, 0 -/* 80070B04 0006DA44 7C 80 E2 14 */ add r4, r0, r28 -/* 80070B08 0006DA48 4B FF BB B5 */ bl create__18J3DMaterialFactoryCFP11J3DMaterialQ218J3DMaterialFactory12MaterialTypeiUl -/* 80070B0C 0006DA4C 80 7D 00 08 */ lwz r3, 8(r29) -/* 80070B10 0006DA50 3B 7B 00 01 */ addi r27, r27, 1 -/* 80070B14 0006DA54 80 03 00 10 */ lwz r0, 0x10(r3) -/* 80070B18 0006DA58 7C 60 E2 14 */ add r3, r0, r28 -/* 80070B1C 0006DA5C 54 60 E1 3E */ srwi r0, r3, 4 -/* 80070B20 0006DA60 90 03 00 20 */ stw r0, 0x20(r3) -.L_80070B24: -/* 80070B24 0006DA64 80 9D 00 08 */ lwz r4, 8(r29) -/* 80070B28 0006DA68 57 63 04 3E */ clrlwi r3, r27, 0x10 -/* 80070B2C 0006DA6C A0 04 00 06 */ lhz r0, 6(r4) -/* 80070B30 0006DA70 7C 03 00 40 */ cmplw r3, r0 -/* 80070B34 0006DA74 41 80 FF B8 */ blt .L_80070AEC -.L_80070B38: -/* 80070B38 0006DA78 3B 60 00 00 */ li r27, 0 -/* 80070B3C 0006DA7C 48 00 00 30 */ b .L_80070B6C -.L_80070B40: -/* 80070B40 0006DA80 7F C7 F3 78 */ mr r7, r30 -/* 80070B44 0006DA84 38 61 00 08 */ addi r3, r1, 8 -/* 80070B48 0006DA88 57 66 04 3E */ clrlwi r6, r27, 0x10 -/* 80070B4C 0006DA8C 38 80 00 00 */ li r4, 0 -/* 80070B50 0006DA90 38 A0 00 00 */ li r5, 0 -/* 80070B54 0006DA94 4B FF BB 69 */ bl create__18J3DMaterialFactoryCFP11J3DMaterialQ218J3DMaterialFactory12MaterialTypeiUl -/* 80070B58 0006DA98 80 9D 00 08 */ lwz r4, 8(r29) -/* 80070B5C 0006DA9C 57 60 13 BA */ rlwinm r0, r27, 2, 0xe, 0x1d -/* 80070B60 0006DAA0 3B 7B 00 01 */ addi r27, r27, 1 -/* 80070B64 0006DAA4 80 84 00 08 */ lwz r4, 8(r4) -/* 80070B68 0006DAA8 7C 64 01 2E */ stwx r3, r4, r0 -.L_80070B6C: -/* 80070B6C 0006DAAC 80 7D 00 08 */ lwz r3, 8(r29) -/* 80070B70 0006DAB0 57 64 04 3E */ clrlwi r4, r27, 0x10 -/* 80070B74 0006DAB4 A0 03 00 04 */ lhz r0, 4(r3) -/* 80070B78 0006DAB8 7C 04 00 40 */ cmplw r4, r0 -/* 80070B7C 0006DABC 41 80 FF C4 */ blt .L_80070B40 -/* 80070B80 0006DAC0 28 1F 00 00 */ cmplwi r31, 0 -/* 80070B84 0006DAC4 41 82 00 78 */ beq .L_80070BFC -/* 80070B88 0006DAC8 39 00 00 00 */ li r8, 0 -/* 80070B8C 0006DACC 48 00 00 58 */ b .L_80070BE4 -.L_80070B90: -/* 80070B90 0006DAD0 80 61 00 10 */ lwz r3, 0x10(r1) -/* 80070B94 0006DAD4 55 06 0B FC */ rlwinm r6, r8, 1, 0xf, 0x1e -/* 80070B98 0006DAD8 55 07 13 BA */ rlwinm r7, r8, 2, 0xe, 0x1d -/* 80070B9C 0006DADC 80 85 00 10 */ lwz r4, 0x10(r5) -/* 80070BA0 0006DAE0 7C 03 32 2E */ lhzx r0, r3, r6 -/* 80070BA4 0006DAE4 39 08 00 01 */ addi r8, r8, 1 -/* 80070BA8 0006DAE8 80 65 00 08 */ lwz r3, 8(r5) -/* 80070BAC 0006DAEC 1C 00 00 4C */ mulli r0, r0, 0x4c -/* 80070BB0 0006DAF0 7C 63 38 2E */ lwzx r3, r3, r7 -/* 80070BB4 0006DAF4 7C 04 02 14 */ add r0, r4, r0 -/* 80070BB8 0006DAF8 54 00 E1 3E */ srwi r0, r0, 4 -/* 80070BBC 0006DAFC 90 03 00 20 */ stw r0, 0x20(r3) -/* 80070BC0 0006DB00 80 61 00 10 */ lwz r3, 0x10(r1) -/* 80070BC4 0006DB04 80 9D 00 08 */ lwz r4, 8(r29) -/* 80070BC8 0006DB08 7C 03 32 2E */ lhzx r0, r3, r6 -/* 80070BCC 0006DB0C 80 64 00 08 */ lwz r3, 8(r4) -/* 80070BD0 0006DB10 1C 00 00 4C */ mulli r0, r0, 0x4c -/* 80070BD4 0006DB14 80 84 00 10 */ lwz r4, 0x10(r4) -/* 80070BD8 0006DB18 7C 63 38 2E */ lwzx r3, r3, r7 -/* 80070BDC 0006DB1C 7C 04 02 14 */ add r0, r4, r0 -/* 80070BE0 0006DB20 90 03 00 38 */ stw r0, 0x38(r3) -.L_80070BE4: -/* 80070BE4 0006DB24 80 BD 00 08 */ lwz r5, 8(r29) -/* 80070BE8 0006DB28 55 03 04 3E */ clrlwi r3, r8, 0x10 -/* 80070BEC 0006DB2C A0 05 00 04 */ lhz r0, 4(r5) -/* 80070BF0 0006DB30 7C 03 00 40 */ cmplw r3, r0 -/* 80070BF4 0006DB34 41 80 FF 9C */ blt .L_80070B90 -/* 80070BF8 0006DB38 48 00 00 48 */ b .L_80070C40 -.L_80070BFC: -/* 80070BFC 0006DB3C 38 E0 00 00 */ li r7, 0 -/* 80070C00 0006DB40 48 00 00 2C */ b .L_80070C2C -.L_80070C04: -/* 80070C04 0006DB44 80 81 00 10 */ lwz r4, 0x10(r1) -/* 80070C08 0006DB48 54 E3 0B FC */ rlwinm r3, r7, 1, 0xf, 0x1e -/* 80070C0C 0006DB4C 80 C5 00 08 */ lwz r6, 8(r5) -/* 80070C10 0006DB50 54 E0 13 BA */ rlwinm r0, r7, 2, 0xe, 0x1d -/* 80070C14 0006DB54 7C 84 1A 2E */ lhzx r4, r4, r3 -/* 80070C18 0006DB58 38 E7 00 01 */ addi r7, r7, 1 -/* 80070C1C 0006DB5C 54 C5 E1 3E */ srwi r5, r6, 4 -/* 80070C20 0006DB60 7C 66 00 2E */ lwzx r3, r6, r0 -/* 80070C24 0006DB64 7C 05 22 14 */ add r0, r5, r4 -/* 80070C28 0006DB68 90 03 00 20 */ stw r0, 0x20(r3) -.L_80070C2C: -/* 80070C2C 0006DB6C 80 BD 00 08 */ lwz r5, 8(r29) -/* 80070C30 0006DB70 54 E3 04 3E */ clrlwi r3, r7, 0x10 -/* 80070C34 0006DB74 A0 05 00 04 */ lhz r0, 4(r5) -/* 80070C38 0006DB78 7C 03 00 40 */ cmplw r3, r0 -/* 80070C3C 0006DB7C 41 80 FF C8 */ blt .L_80070C04 -.L_80070C40: -/* 80070C40 0006DB80 BB 61 00 9C */ lmw r27, 0x9c(r1) -/* 80070C44 0006DB84 80 01 00 B4 */ lwz r0, 0xb4(r1) -/* 80070C48 0006DB88 7C 08 03 A6 */ mtlr r0 -/* 80070C4C 0006DB8C 38 21 00 B0 */ addi r1, r1, 0xb0 -/* 80070C50 0006DB90 4E 80 00 20 */ blr -.endfn readMaterial__18J3DModelLoader_v26FPC16J3DMaterialBlockUl - -.fn __ct__11J3DMaterialFv, weak -/* 80070C54 0006DB94 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80070C58 0006DB98 7C 08 02 A6 */ mflr r0 -/* 80070C5C 0006DB9C 3C A0 3C F4 */ lis r5, 0x3CF3CF00@ha -/* 80070C60 0006DBA0 3C C0 80 4A */ lis r6, __vt__11J3DMaterial@ha -/* 80070C64 0006DBA4 90 01 00 14 */ stw r0, 0x14(r1) -/* 80070C68 0006DBA8 38 06 15 D8 */ addi r0, r6, __vt__11J3DMaterial@l -/* 80070C6C 0006DBAC 38 A5 CF 00 */ addi r5, r5, 0x3CF3CF00@l -/* 80070C70 0006DBB0 3C 80 00 F4 */ lis r4, 0x00F3CF3C@ha -/* 80070C74 0006DBB4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80070C78 0006DBB8 7C 7F 1B 78 */ mr r31, r3 -/* 80070C7C 0006DBBC 90 03 00 00 */ stw r0, 0(r3) -/* 80070C80 0006DBC0 38 04 CF 3C */ addi r0, r4, 0x00F3CF3C@l -/* 80070C84 0006DBC4 90 A3 00 40 */ stw r5, 0x40(r3) -/* 80070C88 0006DBC8 90 03 00 44 */ stw r0, 0x44(r3) -/* 80070C8C 0006DBCC 4B FF 1B 0D */ bl initialize__11J3DMaterialFv -/* 80070C90 0006DBD0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80070C94 0006DBD4 7F E3 FB 78 */ mr r3, r31 -/* 80070C98 0006DBD8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80070C9C 0006DBDC 7C 08 03 A6 */ mtlr r0 -/* 80070CA0 0006DBE0 38 21 00 10 */ addi r1, r1, 0x10 -/* 80070CA4 0006DBE4 4E 80 00 20 */ blr -.endfn __ct__11J3DMaterialFv - -.fn readMaterial_v21__18J3DModelLoader_v21FPC20J3DMaterialBlock_v21Ul, global -/* 80070CA8 0006DBE8 94 21 FF 70 */ stwu r1, -0x90(r1) -/* 80070CAC 0006DBEC 7C 08 02 A6 */ mflr r0 -/* 80070CB0 0006DBF0 90 01 00 94 */ stw r0, 0x94(r1) -/* 80070CB4 0006DBF4 BF 61 00 7C */ stmw r27, 0x7c(r1) -/* 80070CB8 0006DBF8 7C 7D 1B 78 */ mr r29, r3 -/* 80070CBC 0006DBFC 7C 9B 23 78 */ mr r27, r4 -/* 80070CC0 0006DC00 7C BE 2B 78 */ mr r30, r5 -/* 80070CC4 0006DC04 38 61 00 08 */ addi r3, r1, 8 -/* 80070CC8 0006DC08 48 01 3D 39 */ bl __ct__22J3DMaterialFactory_v21FRC20J3DMaterialBlock_v21 -/* 80070CCC 0006DC0C A0 1B 00 08 */ lhz r0, 8(r27) -/* 80070CD0 0006DC10 38 61 00 08 */ addi r3, r1, 8 -/* 80070CD4 0006DC14 80 9D 00 08 */ lwz r4, 8(r29) -/* 80070CD8 0006DC18 B0 04 00 04 */ sth r0, 4(r4) -/* 80070CDC 0006DC1C 48 01 3F 05 */ bl countUniqueMaterials__22J3DMaterialFactory_v21Fv -/* 80070CE0 0006DC20 80 1B 00 14 */ lwz r0, 0x14(r27) -/* 80070CE4 0006DC24 80 9D 00 08 */ lwz r4, 8(r29) -/* 80070CE8 0006DC28 28 00 00 00 */ cmplwi r0, 0 -/* 80070CEC 0006DC2C B0 64 00 06 */ sth r3, 6(r4) -/* 80070CF0 0006DC30 41 82 00 3C */ beq .L_80070D2C -/* 80070CF4 0006DC34 38 60 00 10 */ li r3, 0x10 -/* 80070CF8 0006DC38 4B FB 31 AD */ bl __nw__FUl -/* 80070CFC 0006DC3C 7C 7C 1B 79 */ or. r28, r3, r3 -/* 80070D00 0006DC40 41 82 00 20 */ beq .L_80070D20 -/* 80070D04 0006DC44 80 9B 00 14 */ lwz r4, 0x14(r27) -/* 80070D08 0006DC48 7F 63 DB 78 */ mr r3, r27 -/* 80070D0C 0006DC4C 4B FD 87 61 */ bl "JSUConvertOffsetToPtr<7ResNTAB>__FPCvPCv" -/* 80070D10 0006DC50 7C 64 1B 78 */ mr r4, r3 -/* 80070D14 0006DC54 7F 83 E3 78 */ mr r3, r28 -/* 80070D18 0006DC58 4B FB DF F5 */ bl __ct__10JUTNameTabFPC7ResNTAB -/* 80070D1C 0006DC5C 7C 7C 1B 78 */ mr r28, r3 -.L_80070D20: -/* 80070D20 0006DC60 80 7D 00 08 */ lwz r3, 8(r29) -/* 80070D24 0006DC64 93 83 00 0C */ stw r28, 0xc(r3) -/* 80070D28 0006DC68 48 00 00 10 */ b .L_80070D38 -.L_80070D2C: -/* 80070D2C 0006DC6C 80 7D 00 08 */ lwz r3, 8(r29) -/* 80070D30 0006DC70 38 00 00 00 */ li r0, 0 -/* 80070D34 0006DC74 90 03 00 0C */ stw r0, 0xc(r3) -.L_80070D38: -/* 80070D38 0006DC78 80 7D 00 08 */ lwz r3, 8(r29) -/* 80070D3C 0006DC7C A0 03 00 04 */ lhz r0, 4(r3) -/* 80070D40 0006DC80 54 03 10 3A */ slwi r3, r0, 2 -/* 80070D44 0006DC84 4B FB 32 69 */ bl __nwa__FUl -/* 80070D48 0006DC88 80 9D 00 08 */ lwz r4, 8(r29) -/* 80070D4C 0006DC8C 57 DF 02 95 */ rlwinm. r31, r30, 0, 0xa, 0xa -/* 80070D50 0006DC90 90 64 00 08 */ stw r3, 8(r4) -/* 80070D54 0006DC94 41 82 00 44 */ beq .L_80070D98 -/* 80070D58 0006DC98 80 7D 00 08 */ lwz r3, 8(r29) -/* 80070D5C 0006DC9C 38 80 00 20 */ li r4, 0x20 -/* 80070D60 0006DCA0 A3 83 00 06 */ lhz r28, 6(r3) -/* 80070D64 0006DCA4 1C 7C 00 4C */ mulli r3, r28, 0x4c -/* 80070D68 0006DCA8 38 63 00 10 */ addi r3, r3, 0x10 -/* 80070D6C 0006DCAC 4B FB 32 8D */ bl __nwa__FUli -/* 80070D70 0006DCB0 3C 80 80 07 */ lis r4, __ct__11J3DMaterialFv@ha -/* 80070D74 0006DCB4 3C A0 80 07 */ lis r5, __dt__11J3DMaterialFv@ha -/* 80070D78 0006DCB8 38 84 0C 54 */ addi r4, r4, __ct__11J3DMaterialFv@l -/* 80070D7C 0006DCBC 7F 87 E3 78 */ mr r7, r28 -/* 80070D80 0006DCC0 38 A5 DA 94 */ addi r5, r5, __dt__11J3DMaterialFv@l -/* 80070D84 0006DCC4 38 C0 00 4C */ li r6, 0x4c -/* 80070D88 0006DCC8 48 05 0C 69 */ bl __construct_new_array -/* 80070D8C 0006DCCC 80 9D 00 08 */ lwz r4, 8(r29) -/* 80070D90 0006DCD0 90 64 00 10 */ stw r3, 0x10(r4) -/* 80070D94 0006DCD4 48 00 00 10 */ b .L_80070DA4 -.L_80070D98: -/* 80070D98 0006DCD8 80 7D 00 08 */ lwz r3, 8(r29) -/* 80070D9C 0006DCDC 38 00 00 00 */ li r0, 0 -/* 80070DA0 0006DCE0 90 03 00 10 */ stw r0, 0x10(r3) -.L_80070DA4: -/* 80070DA4 0006DCE4 28 1F 00 00 */ cmplwi r31, 0 -/* 80070DA8 0006DCE8 41 82 00 54 */ beq .L_80070DFC -/* 80070DAC 0006DCEC 3B 60 00 00 */ li r27, 0 -/* 80070DB0 0006DCF0 48 00 00 38 */ b .L_80070DE8 -.L_80070DB4: -/* 80070DB4 0006DCF4 57 65 04 3E */ clrlwi r5, r27, 0x10 -/* 80070DB8 0006DCF8 80 04 00 10 */ lwz r0, 0x10(r4) -/* 80070DBC 0006DCFC 1F 85 00 4C */ mulli r28, r5, 0x4c -/* 80070DC0 0006DD00 7F C6 F3 78 */ mr r6, r30 -/* 80070DC4 0006DD04 38 61 00 08 */ addi r3, r1, 8 -/* 80070DC8 0006DD08 7C 80 E2 14 */ add r4, r0, r28 -/* 80070DCC 0006DD0C 48 01 3E 61 */ bl create__22J3DMaterialFactory_v21CFP11J3DMaterialiUl -/* 80070DD0 0006DD10 80 7D 00 08 */ lwz r3, 8(r29) -/* 80070DD4 0006DD14 3B 7B 00 01 */ addi r27, r27, 1 -/* 80070DD8 0006DD18 80 03 00 10 */ lwz r0, 0x10(r3) -/* 80070DDC 0006DD1C 7C 60 E2 14 */ add r3, r0, r28 -/* 80070DE0 0006DD20 54 60 E1 3E */ srwi r0, r3, 4 -/* 80070DE4 0006DD24 90 03 00 20 */ stw r0, 0x20(r3) -.L_80070DE8: -/* 80070DE8 0006DD28 80 9D 00 08 */ lwz r4, 8(r29) -/* 80070DEC 0006DD2C 57 63 04 3E */ clrlwi r3, r27, 0x10 -/* 80070DF0 0006DD30 A0 04 00 06 */ lhz r0, 6(r4) -/* 80070DF4 0006DD34 7C 03 00 40 */ cmplw r3, r0 -/* 80070DF8 0006DD38 41 80 FF BC */ blt .L_80070DB4 -.L_80070DFC: -/* 80070DFC 0006DD3C 3B 60 00 00 */ li r27, 0 -/* 80070E00 0006DD40 48 00 00 2C */ b .L_80070E2C -.L_80070E04: -/* 80070E04 0006DD44 7F C6 F3 78 */ mr r6, r30 -/* 80070E08 0006DD48 38 61 00 08 */ addi r3, r1, 8 -/* 80070E0C 0006DD4C 57 65 04 3E */ clrlwi r5, r27, 0x10 -/* 80070E10 0006DD50 38 80 00 00 */ li r4, 0 -/* 80070E14 0006DD54 48 01 3E 19 */ bl create__22J3DMaterialFactory_v21CFP11J3DMaterialiUl -/* 80070E18 0006DD58 80 9D 00 08 */ lwz r4, 8(r29) -/* 80070E1C 0006DD5C 57 60 13 BA */ rlwinm r0, r27, 2, 0xe, 0x1d -/* 80070E20 0006DD60 3B 7B 00 01 */ addi r27, r27, 1 -/* 80070E24 0006DD64 80 84 00 08 */ lwz r4, 8(r4) -/* 80070E28 0006DD68 7C 64 01 2E */ stwx r3, r4, r0 -.L_80070E2C: -/* 80070E2C 0006DD6C 80 7D 00 08 */ lwz r3, 8(r29) -/* 80070E30 0006DD70 57 64 04 3E */ clrlwi r4, r27, 0x10 -/* 80070E34 0006DD74 A0 03 00 04 */ lhz r0, 4(r3) -/* 80070E38 0006DD78 7C 04 00 40 */ cmplw r4, r0 -/* 80070E3C 0006DD7C 41 80 FF C8 */ blt .L_80070E04 -/* 80070E40 0006DD80 28 1F 00 00 */ cmplwi r31, 0 -/* 80070E44 0006DD84 41 82 00 78 */ beq .L_80070EBC -/* 80070E48 0006DD88 39 00 00 00 */ li r8, 0 -/* 80070E4C 0006DD8C 48 00 00 58 */ b .L_80070EA4 -.L_80070E50: -/* 80070E50 0006DD90 80 61 00 10 */ lwz r3, 0x10(r1) -/* 80070E54 0006DD94 55 06 0B FC */ rlwinm r6, r8, 1, 0xf, 0x1e -/* 80070E58 0006DD98 55 07 13 BA */ rlwinm r7, r8, 2, 0xe, 0x1d -/* 80070E5C 0006DD9C 80 85 00 10 */ lwz r4, 0x10(r5) -/* 80070E60 0006DDA0 7C 03 32 2E */ lhzx r0, r3, r6 -/* 80070E64 0006DDA4 39 08 00 01 */ addi r8, r8, 1 -/* 80070E68 0006DDA8 80 65 00 08 */ lwz r3, 8(r5) -/* 80070E6C 0006DDAC 1C 00 00 4C */ mulli r0, r0, 0x4c -/* 80070E70 0006DDB0 7C 63 38 2E */ lwzx r3, r3, r7 -/* 80070E74 0006DDB4 7C 04 02 14 */ add r0, r4, r0 -/* 80070E78 0006DDB8 54 00 E1 3E */ srwi r0, r0, 4 -/* 80070E7C 0006DDBC 90 03 00 20 */ stw r0, 0x20(r3) -/* 80070E80 0006DDC0 80 61 00 10 */ lwz r3, 0x10(r1) -/* 80070E84 0006DDC4 80 9D 00 08 */ lwz r4, 8(r29) -/* 80070E88 0006DDC8 7C 03 32 2E */ lhzx r0, r3, r6 -/* 80070E8C 0006DDCC 80 64 00 08 */ lwz r3, 8(r4) -/* 80070E90 0006DDD0 1C 00 00 4C */ mulli r0, r0, 0x4c -/* 80070E94 0006DDD4 80 84 00 10 */ lwz r4, 0x10(r4) -/* 80070E98 0006DDD8 7C 63 38 2E */ lwzx r3, r3, r7 -/* 80070E9C 0006DDDC 7C 04 02 14 */ add r0, r4, r0 -/* 80070EA0 0006DDE0 90 03 00 38 */ stw r0, 0x38(r3) -.L_80070EA4: -/* 80070EA4 0006DDE4 80 BD 00 08 */ lwz r5, 8(r29) -/* 80070EA8 0006DDE8 55 03 04 3E */ clrlwi r3, r8, 0x10 -/* 80070EAC 0006DDEC A0 05 00 04 */ lhz r0, 4(r5) -/* 80070EB0 0006DDF0 7C 03 00 40 */ cmplw r3, r0 -/* 80070EB4 0006DDF4 41 80 FF 9C */ blt .L_80070E50 -/* 80070EB8 0006DDF8 48 00 00 38 */ b .L_80070EF0 -.L_80070EBC: -/* 80070EBC 0006DDFC 38 C0 00 00 */ li r6, 0 -/* 80070EC0 0006DE00 3C 80 C0 00 */ lis r4, 0xc000 -/* 80070EC4 0006DE04 48 00 00 18 */ b .L_80070EDC -.L_80070EC8: -/* 80070EC8 0006DE08 80 65 00 08 */ lwz r3, 8(r5) -/* 80070ECC 0006DE0C 54 C0 13 BA */ rlwinm r0, r6, 2, 0xe, 0x1d -/* 80070ED0 0006DE10 38 C6 00 01 */ addi r6, r6, 1 -/* 80070ED4 0006DE14 7C 63 00 2E */ lwzx r3, r3, r0 -/* 80070ED8 0006DE18 90 83 00 20 */ stw r4, 0x20(r3) -.L_80070EDC: -/* 80070EDC 0006DE1C 80 BD 00 08 */ lwz r5, 8(r29) -/* 80070EE0 0006DE20 54 C3 04 3E */ clrlwi r3, r6, 0x10 -/* 80070EE4 0006DE24 A0 05 00 04 */ lhz r0, 4(r5) -/* 80070EE8 0006DE28 7C 03 00 40 */ cmplw r3, r0 -/* 80070EEC 0006DE2C 41 80 FF DC */ blt .L_80070EC8 -.L_80070EF0: -/* 80070EF0 0006DE30 BB 61 00 7C */ lmw r27, 0x7c(r1) -/* 80070EF4 0006DE34 80 01 00 94 */ lwz r0, 0x94(r1) -/* 80070EF8 0006DE38 7C 08 03 A6 */ mtlr r0 -/* 80070EFC 0006DE3C 38 21 00 90 */ addi r1, r1, 0x90 -/* 80070F00 0006DE40 4E 80 00 20 */ blr -.endfn readMaterial_v21__18J3DModelLoader_v21FPC20J3DMaterialBlock_v21Ul - -.fn readShape__14J3DModelLoaderFPC13J3DShapeBlockUl, global -/* 80070F04 0006DE44 94 21 FF C0 */ stwu r1, -0x40(r1) -/* 80070F08 0006DE48 7C 08 02 A6 */ mflr r0 -/* 80070F0C 0006DE4C 90 01 00 44 */ stw r0, 0x44(r1) -/* 80070F10 0006DE50 BF 61 00 2C */ stmw r27, 0x2c(r1) -/* 80070F14 0006DE54 7C 9C 23 78 */ mr r28, r4 -/* 80070F18 0006DE58 7C 7B 1B 78 */ mr r27, r3 -/* 80070F1C 0006DE5C 7C BE 2B 78 */ mr r30, r5 -/* 80070F20 0006DE60 93 83 00 0C */ stw r28, 0xc(r3) -/* 80070F24 0006DE64 38 61 00 08 */ addi r3, r1, 8 -/* 80070F28 0006DE68 83 FB 00 04 */ lwz r31, 4(r27) -/* 80070F2C 0006DE6C 48 00 0D E5 */ bl __ct__15J3DShapeFactoryFRC13J3DShapeBlock -/* 80070F30 0006DE70 80 1C 00 14 */ lwz r0, 0x14(r28) -/* 80070F34 0006DE74 A0 7C 00 08 */ lhz r3, 8(r28) -/* 80070F38 0006DE78 28 00 00 00 */ cmplwi r0, 0 -/* 80070F3C 0006DE7C B0 7F 00 7C */ sth r3, 0x7c(r31) -/* 80070F40 0006DE80 41 82 00 38 */ beq .L_80070F78 -/* 80070F44 0006DE84 38 60 00 10 */ li r3, 0x10 -/* 80070F48 0006DE88 4B FB 2F 5D */ bl __nw__FUl -/* 80070F4C 0006DE8C 7C 7D 1B 79 */ or. r29, r3, r3 -/* 80070F50 0006DE90 41 82 00 20 */ beq .L_80070F70 -/* 80070F54 0006DE94 80 9C 00 14 */ lwz r4, 0x14(r28) -/* 80070F58 0006DE98 7F 83 E3 78 */ mr r3, r28 -/* 80070F5C 0006DE9C 4B FD 85 11 */ bl "JSUConvertOffsetToPtr<7ResNTAB>__FPCvPCv" -/* 80070F60 0006DEA0 7C 64 1B 78 */ mr r4, r3 -/* 80070F64 0006DEA4 7F A3 EB 78 */ mr r3, r29 -/* 80070F68 0006DEA8 4B FB DD A5 */ bl __ct__10JUTNameTabFPC7ResNTAB -/* 80070F6C 0006DEAC 7C 7D 1B 78 */ mr r29, r3 -.L_80070F70: -/* 80070F70 0006DEB0 93 BF 00 84 */ stw r29, 0x84(r31) -/* 80070F74 0006DEB4 48 00 00 0C */ b .L_80070F80 -.L_80070F78: -/* 80070F78 0006DEB8 38 00 00 00 */ li r0, 0 -/* 80070F7C 0006DEBC 90 1F 00 84 */ stw r0, 0x84(r31) -.L_80070F80: -/* 80070F80 0006DEC0 A0 1F 00 7C */ lhz r0, 0x7c(r31) -/* 80070F84 0006DEC4 54 03 10 3A */ slwi r3, r0, 2 -/* 80070F88 0006DEC8 4B FB 30 25 */ bl __nwa__FUl -/* 80070F8C 0006DECC 90 7F 00 80 */ stw r3, 0x80(r31) -/* 80070F90 0006DED0 38 61 00 08 */ addi r3, r1, 8 -/* 80070F94 0006DED4 A0 9F 00 7C */ lhz r4, 0x7c(r31) -/* 80070F98 0006DED8 48 00 13 59 */ bl allocVcdVatCmdBuffer__15J3DShapeFactoryFUl -/* 80070F9C 0006DEDC 80 7B 00 04 */ lwz r3, 4(r27) -/* 80070FA0 0006DEE0 38 C0 00 00 */ li r6, 0 -/* 80070FA4 0006DEE4 83 A3 00 14 */ lwz r29, 0x14(r3) -/* 80070FA8 0006DEE8 48 00 00 58 */ b .L_80071000 -.L_80070FAC: -/* 80070FAC 0006DEEC 28 00 00 12 */ cmplwi r0, 0x12 -/* 80070FB0 0006DEF0 40 82 00 4C */ bne .L_80070FFC -/* 80070FB4 0006DEF4 A0 9D 00 02 */ lhz r4, 2(r29) -/* 80070FB8 0006DEF8 7F C5 F3 78 */ mr r5, r30 -/* 80070FBC 0006DEFC 38 61 00 08 */ addi r3, r1, 8 -/* 80070FC0 0006DF00 48 00 0E 01 */ bl create__15J3DShapeFactoryFiUlP14_GXVtxDescList -/* 80070FC4 0006DF04 A0 1D 00 02 */ lhz r0, 2(r29) -/* 80070FC8 0006DF08 80 9F 00 80 */ lwz r4, 0x80(r31) -/* 80070FCC 0006DF0C 54 00 10 3A */ slwi r0, r0, 2 -/* 80070FD0 0006DF10 7C 64 01 2E */ stwx r3, r4, r0 -/* 80070FD4 0006DF14 A0 1D 00 02 */ lhz r0, 2(r29) -/* 80070FD8 0006DF18 80 61 00 0C */ lwz r3, 0xc(r1) -/* 80070FDC 0006DF1C 54 00 08 3C */ slwi r0, r0, 1 -/* 80070FE0 0006DF20 80 81 00 08 */ lwz r4, 8(r1) -/* 80070FE4 0006DF24 7C 03 02 2E */ lhzx r0, r3, r0 -/* 80070FE8 0006DF28 80 A1 00 10 */ lwz r5, 0x10(r1) -/* 80070FEC 0006DF2C 1C 60 00 28 */ mulli r3, r0, 0x28 -/* 80070FF0 0006DF30 38 03 00 04 */ addi r0, r3, 4 -/* 80070FF4 0006DF34 7C 04 02 2E */ lhzx r0, r4, r0 -/* 80070FF8 0006DF38 7C C5 02 14 */ add r6, r5, r0 -.L_80070FFC: -/* 80070FFC 0006DF3C 3B BD 00 04 */ addi r29, r29, 4 -.L_80071000: -/* 80071000 0006DF40 A0 1D 00 00 */ lhz r0, 0(r29) -/* 80071004 0006DF44 28 00 00 00 */ cmplwi r0, 0 -/* 80071008 0006DF48 40 82 FF A4 */ bne .L_80070FAC -/* 8007100C 0006DF4C BB 61 00 2C */ lmw r27, 0x2c(r1) -/* 80071010 0006DF50 80 01 00 44 */ lwz r0, 0x44(r1) -/* 80071014 0006DF54 7C 08 03 A6 */ mtlr r0 -/* 80071018 0006DF58 38 21 00 40 */ addi r1, r1, 0x40 -/* 8007101C 0006DF5C 4E 80 00 20 */ blr -.endfn readShape__14J3DModelLoaderFPC13J3DShapeBlockUl - -.fn readTexture__14J3DModelLoaderFPC15J3DTextureBlock, global -/* 80071020 0006DF60 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80071024 0006DF64 7C 08 02 A6 */ mflr r0 -/* 80071028 0006DF68 90 01 00 24 */ stw r0, 0x24(r1) -/* 8007102C 0006DF6C BF 61 00 0C */ stmw r27, 0xc(r1) -/* 80071030 0006DF70 7C 9C 23 78 */ mr r28, r4 -/* 80071034 0006DF74 A3 A4 00 08 */ lhz r29, 8(r4) -/* 80071038 0006DF78 7C 7B 1B 78 */ mr r27, r3 -/* 8007103C 0006DF7C 80 84 00 0C */ lwz r4, 0xc(r4) -/* 80071040 0006DF80 7F 83 E3 78 */ mr r3, r28 -/* 80071044 0006DF84 48 00 0A 35 */ bl "JSUConvertOffsetToPtr<7ResTIMG>__FPCvPCv" -/* 80071048 0006DF88 80 1C 00 10 */ lwz r0, 0x10(r28) -/* 8007104C 0006DF8C 7C 7F 1B 78 */ mr r31, r3 -/* 80071050 0006DF90 28 00 00 00 */ cmplwi r0, 0 -/* 80071054 0006DF94 41 82 00 3C */ beq .L_80071090 -/* 80071058 0006DF98 38 60 00 10 */ li r3, 0x10 -/* 8007105C 0006DF9C 4B FB 2E 49 */ bl __nw__FUl -/* 80071060 0006DFA0 7C 7E 1B 79 */ or. r30, r3, r3 -/* 80071064 0006DFA4 41 82 00 20 */ beq .L_80071084 -/* 80071068 0006DFA8 80 9C 00 10 */ lwz r4, 0x10(r28) -/* 8007106C 0006DFAC 7F 83 E3 78 */ mr r3, r28 -/* 80071070 0006DFB0 4B FD 83 FD */ bl "JSUConvertOffsetToPtr<7ResNTAB>__FPCvPCv" -/* 80071074 0006DFB4 7C 64 1B 78 */ mr r4, r3 -/* 80071078 0006DFB8 7F C3 F3 78 */ mr r3, r30 -/* 8007107C 0006DFBC 4B FB DC 91 */ bl __ct__10JUTNameTabFPC7ResNTAB -/* 80071080 0006DFC0 7C 7E 1B 78 */ mr r30, r3 -.L_80071084: -/* 80071084 0006DFC4 80 7B 00 08 */ lwz r3, 8(r27) -/* 80071088 0006DFC8 93 C3 00 18 */ stw r30, 0x18(r3) -/* 8007108C 0006DFCC 48 00 00 10 */ b .L_8007109C -.L_80071090: -/* 80071090 0006DFD0 80 7B 00 08 */ lwz r3, 8(r27) -/* 80071094 0006DFD4 38 00 00 00 */ li r0, 0 -/* 80071098 0006DFD8 90 03 00 18 */ stw r0, 0x18(r3) -.L_8007109C: -/* 8007109C 0006DFDC 38 60 00 0C */ li r3, 0xc -/* 800710A0 0006DFE0 4B FB 2E 05 */ bl __nw__FUl -/* 800710A4 0006DFE4 28 03 00 00 */ cmplwi r3, 0 -/* 800710A8 0006DFE8 41 82 00 20 */ beq .L_800710C8 -/* 800710AC 0006DFEC 3C 80 80 4A */ lis r4, __vt__10J3DTexture@ha -/* 800710B0 0006DFF0 38 00 00 00 */ li r0, 0 -/* 800710B4 0006DFF4 38 84 1F 68 */ addi r4, r4, __vt__10J3DTexture@l -/* 800710B8 0006DFF8 90 83 00 08 */ stw r4, 8(r3) -/* 800710BC 0006DFFC B3 A3 00 00 */ sth r29, 0(r3) -/* 800710C0 0006E000 B0 03 00 02 */ sth r0, 2(r3) -/* 800710C4 0006E004 93 E3 00 04 */ stw r31, 4(r3) -.L_800710C8: -/* 800710C8 0006E008 80 9B 00 08 */ lwz r4, 8(r27) -/* 800710CC 0006E00C 90 64 00 14 */ stw r3, 0x14(r4) -/* 800710D0 0006E010 BB 61 00 0C */ lmw r27, 0xc(r1) -/* 800710D4 0006E014 80 01 00 24 */ lwz r0, 0x24(r1) -/* 800710D8 0006E018 7C 08 03 A6 */ mtlr r0 -/* 800710DC 0006E01C 38 21 00 20 */ addi r1, r1, 0x20 -/* 800710E0 0006E020 4E 80 00 20 */ blr -.endfn readTexture__14J3DModelLoaderFPC15J3DTextureBlock - -.fn readMaterialTable__18J3DModelLoader_v26FPC16J3DMaterialBlockUl, global -/* 800710E4 0006E024 94 21 FF 60 */ stwu r1, -0xa0(r1) -/* 800710E8 0006E028 7C 08 02 A6 */ mflr r0 -/* 800710EC 0006E02C 90 01 00 A4 */ stw r0, 0xa4(r1) -/* 800710F0 0006E030 93 E1 00 9C */ stw r31, 0x9c(r1) -/* 800710F4 0006E034 7C BF 2B 78 */ mr r31, r5 -/* 800710F8 0006E038 93 C1 00 98 */ stw r30, 0x98(r1) -/* 800710FC 0006E03C 7C 7E 1B 78 */ mr r30, r3 -/* 80071100 0006E040 38 61 00 08 */ addi r3, r1, 8 -/* 80071104 0006E044 93 A1 00 94 */ stw r29, 0x94(r1) -/* 80071108 0006E048 93 81 00 90 */ stw r28, 0x90(r1) -/* 8007110C 0006E04C 7C 9C 23 78 */ mr r28, r4 -/* 80071110 0006E050 4B FF B2 95 */ bl __ct__18J3DMaterialFactoryFRC16J3DMaterialBlock -/* 80071114 0006E054 80 1C 00 14 */ lwz r0, 0x14(r28) -/* 80071118 0006E058 A0 9C 00 08 */ lhz r4, 8(r28) -/* 8007111C 0006E05C 80 7E 00 08 */ lwz r3, 8(r30) -/* 80071120 0006E060 28 00 00 00 */ cmplwi r0, 0 -/* 80071124 0006E064 B0 83 00 04 */ sth r4, 4(r3) -/* 80071128 0006E068 41 82 00 3C */ beq .L_80071164 -/* 8007112C 0006E06C 38 60 00 10 */ li r3, 0x10 -/* 80071130 0006E070 4B FB 2D 75 */ bl __nw__FUl -/* 80071134 0006E074 7C 7D 1B 79 */ or. r29, r3, r3 -/* 80071138 0006E078 41 82 00 20 */ beq .L_80071158 -/* 8007113C 0006E07C 80 9C 00 14 */ lwz r4, 0x14(r28) -/* 80071140 0006E080 7F 83 E3 78 */ mr r3, r28 -/* 80071144 0006E084 4B FD 83 29 */ bl "JSUConvertOffsetToPtr<7ResNTAB>__FPCvPCv" -/* 80071148 0006E088 7C 64 1B 78 */ mr r4, r3 -/* 8007114C 0006E08C 7F A3 EB 78 */ mr r3, r29 -/* 80071150 0006E090 4B FB DB BD */ bl __ct__10JUTNameTabFPC7ResNTAB -/* 80071154 0006E094 7C 7D 1B 78 */ mr r29, r3 -.L_80071158: -/* 80071158 0006E098 80 7E 00 08 */ lwz r3, 8(r30) -/* 8007115C 0006E09C 93 A3 00 0C */ stw r29, 0xc(r3) -/* 80071160 0006E0A0 48 00 00 10 */ b .L_80071170 -.L_80071164: -/* 80071164 0006E0A4 80 7E 00 08 */ lwz r3, 8(r30) -/* 80071168 0006E0A8 38 00 00 00 */ li r0, 0 -/* 8007116C 0006E0AC 90 03 00 0C */ stw r0, 0xc(r3) -.L_80071170: -/* 80071170 0006E0B0 80 7E 00 08 */ lwz r3, 8(r30) -/* 80071174 0006E0B4 A0 03 00 04 */ lhz r0, 4(r3) -/* 80071178 0006E0B8 54 03 10 3A */ slwi r3, r0, 2 -/* 8007117C 0006E0BC 4B FB 2E 31 */ bl __nwa__FUl -/* 80071180 0006E0C0 80 9E 00 08 */ lwz r4, 8(r30) -/* 80071184 0006E0C4 3B A0 00 00 */ li r29, 0 -/* 80071188 0006E0C8 90 64 00 08 */ stw r3, 8(r4) -/* 8007118C 0006E0CC 48 00 00 30 */ b .L_800711BC -.L_80071190: -/* 80071190 0006E0D0 7F E7 FB 78 */ mr r7, r31 -/* 80071194 0006E0D4 38 61 00 08 */ addi r3, r1, 8 -/* 80071198 0006E0D8 57 A6 04 3E */ clrlwi r6, r29, 0x10 -/* 8007119C 0006E0DC 38 80 00 00 */ li r4, 0 -/* 800711A0 0006E0E0 38 A0 00 00 */ li r5, 0 -/* 800711A4 0006E0E4 4B FF B5 19 */ bl create__18J3DMaterialFactoryCFP11J3DMaterialQ218J3DMaterialFactory12MaterialTypeiUl -/* 800711A8 0006E0E8 80 9E 00 08 */ lwz r4, 8(r30) -/* 800711AC 0006E0EC 57 A0 13 BA */ rlwinm r0, r29, 2, 0xe, 0x1d -/* 800711B0 0006E0F0 3B BD 00 01 */ addi r29, r29, 1 -/* 800711B4 0006E0F4 80 84 00 08 */ lwz r4, 8(r4) -/* 800711B8 0006E0F8 7C 64 01 2E */ stwx r3, r4, r0 -.L_800711BC: -/* 800711BC 0006E0FC 80 7E 00 08 */ lwz r3, 8(r30) -/* 800711C0 0006E100 57 A4 04 3E */ clrlwi r4, r29, 0x10 -/* 800711C4 0006E104 A0 03 00 04 */ lhz r0, 4(r3) -/* 800711C8 0006E108 7C 04 00 40 */ cmplw r4, r0 -/* 800711CC 0006E10C 41 80 FF C4 */ blt .L_80071190 -/* 800711D0 0006E110 38 C0 00 00 */ li r6, 0 -/* 800711D4 0006E114 48 00 00 28 */ b .L_800711FC -.L_800711D8: -/* 800711D8 0006E118 80 81 00 10 */ lwz r4, 0x10(r1) -/* 800711DC 0006E11C 54 C3 0B FC */ rlwinm r3, r6, 1, 0xf, 0x1e -/* 800711E0 0006E120 80 A5 00 08 */ lwz r5, 8(r5) -/* 800711E4 0006E124 54 C0 13 BA */ rlwinm r0, r6, 2, 0xe, 0x1d -/* 800711E8 0006E128 7C 84 1A 2E */ lhzx r4, r4, r3 -/* 800711EC 0006E12C 38 C6 00 01 */ addi r6, r6, 1 -/* 800711F0 0006E130 7C 65 00 2E */ lwzx r3, r5, r0 -/* 800711F4 0006E134 7C 05 22 14 */ add r0, r5, r4 -/* 800711F8 0006E138 90 03 00 20 */ stw r0, 0x20(r3) -.L_800711FC: -/* 800711FC 0006E13C 80 BE 00 08 */ lwz r5, 8(r30) -/* 80071200 0006E140 54 C3 04 3E */ clrlwi r3, r6, 0x10 -/* 80071204 0006E144 A0 05 00 04 */ lhz r0, 4(r5) -/* 80071208 0006E148 7C 03 00 40 */ cmplw r3, r0 -/* 8007120C 0006E14C 41 80 FF CC */ blt .L_800711D8 -/* 80071210 0006E150 80 01 00 A4 */ lwz r0, 0xa4(r1) -/* 80071214 0006E154 83 E1 00 9C */ lwz r31, 0x9c(r1) -/* 80071218 0006E158 83 C1 00 98 */ lwz r30, 0x98(r1) -/* 8007121C 0006E15C 83 A1 00 94 */ lwz r29, 0x94(r1) -/* 80071220 0006E160 83 81 00 90 */ lwz r28, 0x90(r1) -/* 80071224 0006E164 7C 08 03 A6 */ mtlr r0 -/* 80071228 0006E168 38 21 00 A0 */ addi r1, r1, 0xa0 -/* 8007122C 0006E16C 4E 80 00 20 */ blr -.endfn readMaterialTable__18J3DModelLoader_v26FPC16J3DMaterialBlockUl - -.fn readMaterialTable_v21__18J3DModelLoader_v21FPC20J3DMaterialBlock_v21Ul, global -/* 80071230 0006E170 94 21 FF 70 */ stwu r1, -0x90(r1) -/* 80071234 0006E174 7C 08 02 A6 */ mflr r0 -/* 80071238 0006E178 90 01 00 94 */ stw r0, 0x94(r1) -/* 8007123C 0006E17C 93 E1 00 8C */ stw r31, 0x8c(r1) -/* 80071240 0006E180 7C BF 2B 78 */ mr r31, r5 -/* 80071244 0006E184 93 C1 00 88 */ stw r30, 0x88(r1) -/* 80071248 0006E188 7C 7E 1B 78 */ mr r30, r3 -/* 8007124C 0006E18C 38 61 00 08 */ addi r3, r1, 8 -/* 80071250 0006E190 93 A1 00 84 */ stw r29, 0x84(r1) -/* 80071254 0006E194 93 81 00 80 */ stw r28, 0x80(r1) -/* 80071258 0006E198 7C 9C 23 78 */ mr r28, r4 -/* 8007125C 0006E19C 48 01 37 A5 */ bl __ct__22J3DMaterialFactory_v21FRC20J3DMaterialBlock_v21 -/* 80071260 0006E1A0 80 1C 00 14 */ lwz r0, 0x14(r28) -/* 80071264 0006E1A4 A0 9C 00 08 */ lhz r4, 8(r28) -/* 80071268 0006E1A8 80 7E 00 08 */ lwz r3, 8(r30) -/* 8007126C 0006E1AC 28 00 00 00 */ cmplwi r0, 0 -/* 80071270 0006E1B0 B0 83 00 04 */ sth r4, 4(r3) -/* 80071274 0006E1B4 41 82 00 3C */ beq .L_800712B0 -/* 80071278 0006E1B8 38 60 00 10 */ li r3, 0x10 -/* 8007127C 0006E1BC 4B FB 2C 29 */ bl __nw__FUl -/* 80071280 0006E1C0 7C 7D 1B 79 */ or. r29, r3, r3 -/* 80071284 0006E1C4 41 82 00 20 */ beq .L_800712A4 -/* 80071288 0006E1C8 80 9C 00 14 */ lwz r4, 0x14(r28) -/* 8007128C 0006E1CC 7F 83 E3 78 */ mr r3, r28 -/* 80071290 0006E1D0 4B FD 81 DD */ bl "JSUConvertOffsetToPtr<7ResNTAB>__FPCvPCv" -/* 80071294 0006E1D4 7C 64 1B 78 */ mr r4, r3 -/* 80071298 0006E1D8 7F A3 EB 78 */ mr r3, r29 -/* 8007129C 0006E1DC 4B FB DA 71 */ bl __ct__10JUTNameTabFPC7ResNTAB -/* 800712A0 0006E1E0 7C 7D 1B 78 */ mr r29, r3 -.L_800712A4: -/* 800712A4 0006E1E4 80 7E 00 08 */ lwz r3, 8(r30) -/* 800712A8 0006E1E8 93 A3 00 0C */ stw r29, 0xc(r3) -/* 800712AC 0006E1EC 48 00 00 10 */ b .L_800712BC -.L_800712B0: -/* 800712B0 0006E1F0 80 7E 00 08 */ lwz r3, 8(r30) -/* 800712B4 0006E1F4 38 00 00 00 */ li r0, 0 -/* 800712B8 0006E1F8 90 03 00 0C */ stw r0, 0xc(r3) -.L_800712BC: -/* 800712BC 0006E1FC 80 7E 00 08 */ lwz r3, 8(r30) -/* 800712C0 0006E200 A0 03 00 04 */ lhz r0, 4(r3) -/* 800712C4 0006E204 54 03 10 3A */ slwi r3, r0, 2 -/* 800712C8 0006E208 4B FB 2C E5 */ bl __nwa__FUl -/* 800712CC 0006E20C 80 9E 00 08 */ lwz r4, 8(r30) -/* 800712D0 0006E210 3B A0 00 00 */ li r29, 0 -/* 800712D4 0006E214 90 64 00 08 */ stw r3, 8(r4) -/* 800712D8 0006E218 48 00 00 2C */ b .L_80071304 -.L_800712DC: -/* 800712DC 0006E21C 7F E6 FB 78 */ mr r6, r31 -/* 800712E0 0006E220 38 61 00 08 */ addi r3, r1, 8 -/* 800712E4 0006E224 57 A5 04 3E */ clrlwi r5, r29, 0x10 -/* 800712E8 0006E228 38 80 00 00 */ li r4, 0 -/* 800712EC 0006E22C 48 01 39 41 */ bl create__22J3DMaterialFactory_v21CFP11J3DMaterialiUl -/* 800712F0 0006E230 80 9E 00 08 */ lwz r4, 8(r30) -/* 800712F4 0006E234 57 A0 13 BA */ rlwinm r0, r29, 2, 0xe, 0x1d -/* 800712F8 0006E238 3B BD 00 01 */ addi r29, r29, 1 -/* 800712FC 0006E23C 80 84 00 08 */ lwz r4, 8(r4) -/* 80071300 0006E240 7C 64 01 2E */ stwx r3, r4, r0 -.L_80071304: -/* 80071304 0006E244 80 7E 00 08 */ lwz r3, 8(r30) -/* 80071308 0006E248 57 A4 04 3E */ clrlwi r4, r29, 0x10 -/* 8007130C 0006E24C A0 03 00 04 */ lhz r0, 4(r3) -/* 80071310 0006E250 7C 04 00 40 */ cmplw r4, r0 -/* 80071314 0006E254 41 80 FF C8 */ blt .L_800712DC -/* 80071318 0006E258 38 E0 00 00 */ li r7, 0 -/* 8007131C 0006E25C 48 00 00 2C */ b .L_80071348 -.L_80071320: -/* 80071320 0006E260 80 81 00 10 */ lwz r4, 0x10(r1) -/* 80071324 0006E264 54 E3 0B FC */ rlwinm r3, r7, 1, 0xf, 0x1e -/* 80071328 0006E268 80 C5 00 08 */ lwz r6, 8(r5) -/* 8007132C 0006E26C 54 E0 13 BA */ rlwinm r0, r7, 2, 0xe, 0x1d -/* 80071330 0006E270 7C 84 1A 2E */ lhzx r4, r4, r3 -/* 80071334 0006E274 38 E7 00 01 */ addi r7, r7, 1 -/* 80071338 0006E278 54 C5 E1 3E */ srwi r5, r6, 4 -/* 8007133C 0006E27C 7C 66 00 2E */ lwzx r3, r6, r0 -/* 80071340 0006E280 7C 05 22 14 */ add r0, r5, r4 -/* 80071344 0006E284 90 03 00 20 */ stw r0, 0x20(r3) -.L_80071348: -/* 80071348 0006E288 80 BE 00 08 */ lwz r5, 8(r30) -/* 8007134C 0006E28C 54 E3 04 3E */ clrlwi r3, r7, 0x10 -/* 80071350 0006E290 A0 05 00 04 */ lhz r0, 4(r5) -/* 80071354 0006E294 7C 03 00 40 */ cmplw r3, r0 -/* 80071358 0006E298 41 80 FF C8 */ blt .L_80071320 -/* 8007135C 0006E29C 80 01 00 94 */ lwz r0, 0x94(r1) -/* 80071360 0006E2A0 83 E1 00 8C */ lwz r31, 0x8c(r1) -/* 80071364 0006E2A4 83 C1 00 88 */ lwz r30, 0x88(r1) -/* 80071368 0006E2A8 83 A1 00 84 */ lwz r29, 0x84(r1) -/* 8007136C 0006E2AC 83 81 00 80 */ lwz r28, 0x80(r1) -/* 80071370 0006E2B0 7C 08 03 A6 */ mtlr r0 -/* 80071374 0006E2B4 38 21 00 90 */ addi r1, r1, 0x90 -/* 80071378 0006E2B8 4E 80 00 20 */ blr -.endfn readMaterialTable_v21__18J3DModelLoader_v21FPC20J3DMaterialBlock_v21Ul - -.fn readTextureTable__14J3DModelLoaderFPC15J3DTextureBlock, global -/* 8007137C 0006E2BC 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80071380 0006E2C0 7C 08 02 A6 */ mflr r0 -/* 80071384 0006E2C4 90 01 00 24 */ stw r0, 0x24(r1) -/* 80071388 0006E2C8 BF 61 00 0C */ stmw r27, 0xc(r1) -/* 8007138C 0006E2CC 7C 9C 23 78 */ mr r28, r4 -/* 80071390 0006E2D0 A3 A4 00 08 */ lhz r29, 8(r4) -/* 80071394 0006E2D4 7C 7B 1B 78 */ mr r27, r3 -/* 80071398 0006E2D8 80 84 00 0C */ lwz r4, 0xc(r4) -/* 8007139C 0006E2DC 7F 83 E3 78 */ mr r3, r28 -/* 800713A0 0006E2E0 48 00 06 D9 */ bl "JSUConvertOffsetToPtr<7ResTIMG>__FPCvPCv" -/* 800713A4 0006E2E4 80 1C 00 10 */ lwz r0, 0x10(r28) -/* 800713A8 0006E2E8 7C 7F 1B 78 */ mr r31, r3 -/* 800713AC 0006E2EC 28 00 00 00 */ cmplwi r0, 0 -/* 800713B0 0006E2F0 41 82 00 3C */ beq .L_800713EC -/* 800713B4 0006E2F4 38 60 00 10 */ li r3, 0x10 -/* 800713B8 0006E2F8 4B FB 2A ED */ bl __nw__FUl -/* 800713BC 0006E2FC 7C 7E 1B 79 */ or. r30, r3, r3 -/* 800713C0 0006E300 41 82 00 20 */ beq .L_800713E0 -/* 800713C4 0006E304 80 9C 00 10 */ lwz r4, 0x10(r28) -/* 800713C8 0006E308 7F 83 E3 78 */ mr r3, r28 -/* 800713CC 0006E30C 4B FD 80 A1 */ bl "JSUConvertOffsetToPtr<7ResNTAB>__FPCvPCv" -/* 800713D0 0006E310 7C 64 1B 78 */ mr r4, r3 -/* 800713D4 0006E314 7F C3 F3 78 */ mr r3, r30 -/* 800713D8 0006E318 4B FB D9 35 */ bl __ct__10JUTNameTabFPC7ResNTAB -/* 800713DC 0006E31C 7C 7E 1B 78 */ mr r30, r3 -.L_800713E0: -/* 800713E0 0006E320 80 7B 00 08 */ lwz r3, 8(r27) -/* 800713E4 0006E324 93 C3 00 18 */ stw r30, 0x18(r3) -/* 800713E8 0006E328 48 00 00 10 */ b .L_800713F8 -.L_800713EC: -/* 800713EC 0006E32C 80 7B 00 08 */ lwz r3, 8(r27) -/* 800713F0 0006E330 38 00 00 00 */ li r0, 0 -/* 800713F4 0006E334 90 03 00 18 */ stw r0, 0x18(r3) -.L_800713F8: -/* 800713F8 0006E338 38 60 00 0C */ li r3, 0xc -/* 800713FC 0006E33C 4B FB 2A A9 */ bl __nw__FUl -/* 80071400 0006E340 28 03 00 00 */ cmplwi r3, 0 -/* 80071404 0006E344 41 82 00 20 */ beq .L_80071424 -/* 80071408 0006E348 3C 80 80 4A */ lis r4, __vt__10J3DTexture@ha -/* 8007140C 0006E34C 38 00 00 00 */ li r0, 0 -/* 80071410 0006E350 38 84 1F 68 */ addi r4, r4, __vt__10J3DTexture@l -/* 80071414 0006E354 90 83 00 08 */ stw r4, 8(r3) -/* 80071418 0006E358 B3 A3 00 00 */ sth r29, 0(r3) -/* 8007141C 0006E35C B0 03 00 02 */ sth r0, 2(r3) -/* 80071420 0006E360 93 E3 00 04 */ stw r31, 4(r3) -.L_80071424: -/* 80071424 0006E364 80 9B 00 08 */ lwz r4, 8(r27) -/* 80071428 0006E368 90 64 00 14 */ stw r3, 0x14(r4) -/* 8007142C 0006E36C BB 61 00 0C */ lmw r27, 0xc(r1) -/* 80071430 0006E370 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80071434 0006E374 7C 08 03 A6 */ mtlr r0 -/* 80071438 0006E378 38 21 00 20 */ addi r1, r1, 0x20 -/* 8007143C 0006E37C 4E 80 00 20 */ blr -.endfn readTextureTable__14J3DModelLoaderFPC15J3DTextureBlock - -.fn readPatchedMaterial__14J3DModelLoaderFPC16J3DMaterialBlockUl, global -/* 80071440 0006E380 94 21 FF 60 */ stwu r1, -0xa0(r1) -/* 80071444 0006E384 7C 08 02 A6 */ mflr r0 -/* 80071448 0006E388 90 01 00 A4 */ stw r0, 0xa4(r1) -/* 8007144C 0006E38C 93 E1 00 9C */ stw r31, 0x9c(r1) -/* 80071450 0006E390 93 C1 00 98 */ stw r30, 0x98(r1) -/* 80071454 0006E394 7C BE 2B 78 */ mr r30, r5 -/* 80071458 0006E398 93 A1 00 94 */ stw r29, 0x94(r1) -/* 8007145C 0006E39C 7C 7D 1B 78 */ mr r29, r3 -/* 80071460 0006E3A0 38 61 00 08 */ addi r3, r1, 8 -/* 80071464 0006E3A4 93 81 00 90 */ stw r28, 0x90(r1) -/* 80071468 0006E3A8 7C 9C 23 78 */ mr r28, r4 -/* 8007146C 0006E3AC 4B FF AF 39 */ bl __ct__18J3DMaterialFactoryFRC16J3DMaterialBlock -/* 80071470 0006E3B0 A0 1C 00 08 */ lhz r0, 8(r28) -/* 80071474 0006E3B4 38 61 00 08 */ addi r3, r1, 8 -/* 80071478 0006E3B8 80 9D 00 08 */ lwz r4, 8(r29) -/* 8007147C 0006E3BC B0 04 00 04 */ sth r0, 4(r4) -/* 80071480 0006E3C0 4B FF B1 F5 */ bl countUniqueMaterials__18J3DMaterialFactoryFv -/* 80071484 0006E3C4 80 1C 00 14 */ lwz r0, 0x14(r28) -/* 80071488 0006E3C8 80 9D 00 08 */ lwz r4, 8(r29) -/* 8007148C 0006E3CC 28 00 00 00 */ cmplwi r0, 0 -/* 80071490 0006E3D0 B0 64 00 06 */ sth r3, 6(r4) -/* 80071494 0006E3D4 41 82 00 3C */ beq .L_800714D0 -/* 80071498 0006E3D8 38 60 00 10 */ li r3, 0x10 -/* 8007149C 0006E3DC 4B FB 2A 09 */ bl __nw__FUl -/* 800714A0 0006E3E0 7C 7F 1B 79 */ or. r31, r3, r3 -/* 800714A4 0006E3E4 41 82 00 20 */ beq .L_800714C4 -/* 800714A8 0006E3E8 80 9C 00 14 */ lwz r4, 0x14(r28) -/* 800714AC 0006E3EC 7F 83 E3 78 */ mr r3, r28 -/* 800714B0 0006E3F0 4B FD 7F BD */ bl "JSUConvertOffsetToPtr<7ResNTAB>__FPCvPCv" -/* 800714B4 0006E3F4 7C 64 1B 78 */ mr r4, r3 -/* 800714B8 0006E3F8 7F E3 FB 78 */ mr r3, r31 -/* 800714BC 0006E3FC 4B FB D8 51 */ bl __ct__10JUTNameTabFPC7ResNTAB -/* 800714C0 0006E400 7C 7F 1B 78 */ mr r31, r3 -.L_800714C4: -/* 800714C4 0006E404 80 7D 00 08 */ lwz r3, 8(r29) -/* 800714C8 0006E408 93 E3 00 0C */ stw r31, 0xc(r3) -/* 800714CC 0006E40C 48 00 00 10 */ b .L_800714DC -.L_800714D0: -/* 800714D0 0006E410 80 7D 00 08 */ lwz r3, 8(r29) -/* 800714D4 0006E414 38 00 00 00 */ li r0, 0 -/* 800714D8 0006E418 90 03 00 0C */ stw r0, 0xc(r3) -.L_800714DC: -/* 800714DC 0006E41C 80 7D 00 08 */ lwz r3, 8(r29) -/* 800714E0 0006E420 A0 03 00 04 */ lhz r0, 4(r3) -/* 800714E4 0006E424 54 03 10 3A */ slwi r3, r0, 2 -/* 800714E8 0006E428 4B FB 2A C5 */ bl __nwa__FUl -/* 800714EC 0006E42C 80 9D 00 08 */ lwz r4, 8(r29) -/* 800714F0 0006E430 38 00 00 00 */ li r0, 0 -/* 800714F4 0006E434 3B E0 00 00 */ li r31, 0 -/* 800714F8 0006E438 90 64 00 08 */ stw r3, 8(r4) -/* 800714FC 0006E43C 80 7D 00 08 */ lwz r3, 8(r29) -/* 80071500 0006E440 90 03 00 10 */ stw r0, 0x10(r3) -/* 80071504 0006E444 48 00 00 58 */ b .L_8007155C -.L_80071508: -/* 80071508 0006E448 57 FC 04 3E */ clrlwi r28, r31, 0x10 -/* 8007150C 0006E44C 7F C7 F3 78 */ mr r7, r30 -/* 80071510 0006E450 7F 86 E3 78 */ mr r6, r28 -/* 80071514 0006E454 38 61 00 08 */ addi r3, r1, 8 -/* 80071518 0006E458 38 80 00 00 */ li r4, 0 -/* 8007151C 0006E45C 38 A0 00 02 */ li r5, 2 -/* 80071520 0006E460 4B FF B1 9D */ bl create__18J3DMaterialFactoryCFP11J3DMaterialQ218J3DMaterialFactory12MaterialTypeiUl -/* 80071524 0006E464 80 9D 00 08 */ lwz r4, 8(r29) -/* 80071528 0006E468 57 E6 13 BA */ rlwinm r6, r31, 2, 0xe, 0x1d -/* 8007152C 0006E46C 57 80 08 3C */ slwi r0, r28, 1 -/* 80071530 0006E470 3B FF 00 01 */ addi r31, r31, 1 -/* 80071534 0006E474 80 84 00 08 */ lwz r4, 8(r4) -/* 80071538 0006E478 7C 64 31 2E */ stwx r3, r4, r6 -/* 8007153C 0006E47C 80 9D 00 08 */ lwz r4, 8(r29) -/* 80071540 0006E480 80 61 00 10 */ lwz r3, 0x10(r1) -/* 80071544 0006E484 80 A4 00 08 */ lwz r5, 8(r4) -/* 80071548 0006E488 7C 03 02 2E */ lhzx r0, r3, r0 -/* 8007154C 0006E48C 54 A4 E1 3E */ srwi r4, r5, 4 -/* 80071550 0006E490 7C 65 30 2E */ lwzx r3, r5, r6 -/* 80071554 0006E494 7C 04 02 14 */ add r0, r4, r0 -/* 80071558 0006E498 90 03 00 20 */ stw r0, 0x20(r3) -.L_8007155C: -/* 8007155C 0006E49C 80 7D 00 08 */ lwz r3, 8(r29) -/* 80071560 0006E4A0 57 E4 04 3E */ clrlwi r4, r31, 0x10 -/* 80071564 0006E4A4 A0 03 00 04 */ lhz r0, 4(r3) -/* 80071568 0006E4A8 7C 04 00 40 */ cmplw r4, r0 -/* 8007156C 0006E4AC 41 80 FF 9C */ blt .L_80071508 -/* 80071570 0006E4B0 80 01 00 A4 */ lwz r0, 0xa4(r1) -/* 80071574 0006E4B4 83 E1 00 9C */ lwz r31, 0x9c(r1) -/* 80071578 0006E4B8 83 C1 00 98 */ lwz r30, 0x98(r1) -/* 8007157C 0006E4BC 83 A1 00 94 */ lwz r29, 0x94(r1) -/* 80071580 0006E4C0 83 81 00 90 */ lwz r28, 0x90(r1) -/* 80071584 0006E4C4 7C 08 03 A6 */ mtlr r0 -/* 80071588 0006E4C8 38 21 00 A0 */ addi r1, r1, 0xa0 -/* 8007158C 0006E4CC 4E 80 00 20 */ blr -.endfn readPatchedMaterial__14J3DModelLoaderFPC16J3DMaterialBlockUl - -.fn readMaterialDL__14J3DModelLoaderFPC18J3DMaterialDLBlockUl, global -/* 80071590 0006E4D0 94 21 FF 60 */ stwu r1, -0xa0(r1) -/* 80071594 0006E4D4 7C 08 02 A6 */ mflr r0 -/* 80071598 0006E4D8 90 01 00 A4 */ stw r0, 0xa4(r1) -/* 8007159C 0006E4DC 93 E1 00 9C */ stw r31, 0x9c(r1) -/* 800715A0 0006E4E0 7C BF 2B 78 */ mr r31, r5 -/* 800715A4 0006E4E4 93 C1 00 98 */ stw r30, 0x98(r1) -/* 800715A8 0006E4E8 7C 7E 1B 78 */ mr r30, r3 -/* 800715AC 0006E4EC 38 61 00 08 */ addi r3, r1, 8 -/* 800715B0 0006E4F0 93 A1 00 94 */ stw r29, 0x94(r1) -/* 800715B4 0006E4F4 93 81 00 90 */ stw r28, 0x90(r1) -/* 800715B8 0006E4F8 7C 9C 23 78 */ mr r28, r4 -/* 800715BC 0006E4FC 4B FF B0 31 */ bl __ct__18J3DMaterialFactoryFRC18J3DMaterialDLBlock -/* 800715C0 0006E500 80 9E 00 08 */ lwz r4, 8(r30) -/* 800715C4 0006E504 A0 04 00 04 */ lhz r0, 4(r4) -/* 800715C8 0006E508 28 00 00 00 */ cmplwi r0, 0 -/* 800715CC 0006E50C 40 82 01 14 */ bne .L_800716E0 -/* 800715D0 0006E510 38 60 00 01 */ li r3, 1 -/* 800715D4 0006E514 80 1C 00 20 */ lwz r0, 0x20(r28) -/* 800715D8 0006E518 B0 64 00 1C */ sth r3, 0x1c(r4) -/* 800715DC 0006E51C A0 9C 00 08 */ lhz r4, 8(r28) -/* 800715E0 0006E520 28 00 00 00 */ cmplwi r0, 0 -/* 800715E4 0006E524 80 7E 00 08 */ lwz r3, 8(r30) -/* 800715E8 0006E528 B0 83 00 04 */ sth r4, 4(r3) -/* 800715EC 0006E52C 80 7E 00 08 */ lwz r3, 8(r30) -/* 800715F0 0006E530 B0 83 00 06 */ sth r4, 6(r3) -/* 800715F4 0006E534 41 82 00 3C */ beq .L_80071630 -/* 800715F8 0006E538 38 60 00 10 */ li r3, 0x10 -/* 800715FC 0006E53C 4B FB 28 A9 */ bl __nw__FUl -/* 80071600 0006E540 7C 7D 1B 79 */ or. r29, r3, r3 -/* 80071604 0006E544 41 82 00 20 */ beq .L_80071624 -/* 80071608 0006E548 80 9C 00 20 */ lwz r4, 0x20(r28) -/* 8007160C 0006E54C 7F 83 E3 78 */ mr r3, r28 -/* 80071610 0006E550 4B FD 7E 5D */ bl "JSUConvertOffsetToPtr<7ResNTAB>__FPCvPCv" -/* 80071614 0006E554 7C 64 1B 78 */ mr r4, r3 -/* 80071618 0006E558 7F A3 EB 78 */ mr r3, r29 -/* 8007161C 0006E55C 4B FB D6 F1 */ bl __ct__10JUTNameTabFPC7ResNTAB -/* 80071620 0006E560 7C 7D 1B 78 */ mr r29, r3 -.L_80071624: -/* 80071624 0006E564 80 7E 00 08 */ lwz r3, 8(r30) -/* 80071628 0006E568 93 A3 00 0C */ stw r29, 0xc(r3) -/* 8007162C 0006E56C 48 00 00 10 */ b .L_8007163C -.L_80071630: -/* 80071630 0006E570 80 7E 00 08 */ lwz r3, 8(r30) -/* 80071634 0006E574 38 00 00 00 */ li r0, 0 -/* 80071638 0006E578 90 03 00 0C */ stw r0, 0xc(r3) -.L_8007163C: -/* 8007163C 0006E57C 80 7E 00 08 */ lwz r3, 8(r30) -/* 80071640 0006E580 A0 03 00 04 */ lhz r0, 4(r3) -/* 80071644 0006E584 54 03 10 3A */ slwi r3, r0, 2 -/* 80071648 0006E588 4B FB 29 65 */ bl __nwa__FUl -/* 8007164C 0006E58C 80 9E 00 08 */ lwz r4, 8(r30) -/* 80071650 0006E590 38 00 00 00 */ li r0, 0 -/* 80071654 0006E594 3B A0 00 00 */ li r29, 0 -/* 80071658 0006E598 90 64 00 08 */ stw r3, 8(r4) -/* 8007165C 0006E59C 80 7E 00 08 */ lwz r3, 8(r30) -/* 80071660 0006E5A0 90 03 00 10 */ stw r0, 0x10(r3) -/* 80071664 0006E5A4 48 00 00 30 */ b .L_80071694 -.L_80071668: -/* 80071668 0006E5A8 7F E7 FB 78 */ mr r7, r31 -/* 8007166C 0006E5AC 38 61 00 08 */ addi r3, r1, 8 -/* 80071670 0006E5B0 57 A6 04 3E */ clrlwi r6, r29, 0x10 -/* 80071674 0006E5B4 38 80 00 00 */ li r4, 0 -/* 80071678 0006E5B8 38 A0 00 01 */ li r5, 1 -/* 8007167C 0006E5BC 4B FF B0 41 */ bl create__18J3DMaterialFactoryCFP11J3DMaterialQ218J3DMaterialFactory12MaterialTypeiUl -/* 80071680 0006E5C0 80 9E 00 08 */ lwz r4, 8(r30) -/* 80071684 0006E5C4 57 A0 13 BA */ rlwinm r0, r29, 2, 0xe, 0x1d -/* 80071688 0006E5C8 3B BD 00 01 */ addi r29, r29, 1 -/* 8007168C 0006E5CC 80 84 00 08 */ lwz r4, 8(r4) -/* 80071690 0006E5D0 7C 64 01 2E */ stwx r3, r4, r0 -.L_80071694: -/* 80071694 0006E5D4 80 7E 00 08 */ lwz r3, 8(r30) -/* 80071698 0006E5D8 57 A4 04 3E */ clrlwi r4, r29, 0x10 -/* 8007169C 0006E5DC A0 03 00 04 */ lhz r0, 4(r3) -/* 800716A0 0006E5E0 7C 04 00 40 */ cmplw r4, r0 -/* 800716A4 0006E5E4 41 80 FF C4 */ blt .L_80071668 -/* 800716A8 0006E5E8 38 C0 00 00 */ li r6, 0 -/* 800716AC 0006E5EC 3C 80 C0 00 */ lis r4, 0xc000 -/* 800716B0 0006E5F0 48 00 00 18 */ b .L_800716C8 -.L_800716B4: -/* 800716B4 0006E5F4 80 65 00 08 */ lwz r3, 8(r5) -/* 800716B8 0006E5F8 54 C0 13 BA */ rlwinm r0, r6, 2, 0xe, 0x1d -/* 800716BC 0006E5FC 38 C6 00 01 */ addi r6, r6, 1 -/* 800716C0 0006E600 7C 63 00 2E */ lwzx r3, r3, r0 -/* 800716C4 0006E604 90 83 00 20 */ stw r4, 0x20(r3) -.L_800716C8: -/* 800716C8 0006E608 80 BE 00 08 */ lwz r5, 8(r30) -/* 800716CC 0006E60C 54 C3 04 3E */ clrlwi r3, r6, 0x10 -/* 800716D0 0006E610 A0 05 00 04 */ lhz r0, 4(r5) -/* 800716D4 0006E614 7C 03 00 40 */ cmplw r3, r0 -/* 800716D8 0006E618 41 80 FF DC */ blt .L_800716B4 -/* 800716DC 0006E61C 48 00 00 50 */ b .L_8007172C -.L_800716E0: -/* 800716E0 0006E620 3B 80 00 00 */ li r28, 0 -/* 800716E4 0006E624 48 00 00 34 */ b .L_80071718 -.L_800716E8: -/* 800716E8 0006E628 80 64 00 08 */ lwz r3, 8(r4) -/* 800716EC 0006E62C 57 9D 13 BA */ rlwinm r29, r28, 2, 0xe, 0x1d -/* 800716F0 0006E630 57 86 04 3E */ clrlwi r6, r28, 0x10 -/* 800716F4 0006E634 7F E7 FB 78 */ mr r7, r31 -/* 800716F8 0006E638 7C 83 E8 2E */ lwzx r4, r3, r29 -/* 800716FC 0006E63C 38 61 00 08 */ addi r3, r1, 8 -/* 80071700 0006E640 38 A0 00 01 */ li r5, 1 -/* 80071704 0006E644 4B FF AF B9 */ bl create__18J3DMaterialFactoryCFP11J3DMaterialQ218J3DMaterialFactory12MaterialTypeiUl -/* 80071708 0006E648 80 9E 00 08 */ lwz r4, 8(r30) -/* 8007170C 0006E64C 3B 9C 00 01 */ addi r28, r28, 1 -/* 80071710 0006E650 80 84 00 08 */ lwz r4, 8(r4) -/* 80071714 0006E654 7C 64 E9 2E */ stwx r3, r4, r29 -.L_80071718: -/* 80071718 0006E658 80 9E 00 08 */ lwz r4, 8(r30) -/* 8007171C 0006E65C 57 83 04 3E */ clrlwi r3, r28, 0x10 -/* 80071720 0006E660 A0 04 00 04 */ lhz r0, 4(r4) -/* 80071724 0006E664 7C 03 00 40 */ cmplw r3, r0 -/* 80071728 0006E668 41 80 FF C0 */ blt .L_800716E8 -.L_8007172C: -/* 8007172C 0006E66C 80 01 00 A4 */ lwz r0, 0xa4(r1) -/* 80071730 0006E670 83 E1 00 9C */ lwz r31, 0x9c(r1) -/* 80071734 0006E674 83 C1 00 98 */ lwz r30, 0x98(r1) -/* 80071738 0006E678 83 A1 00 94 */ lwz r29, 0x94(r1) -/* 8007173C 0006E67C 83 81 00 90 */ lwz r28, 0x90(r1) -/* 80071740 0006E680 7C 08 03 A6 */ mtlr r0 -/* 80071744 0006E684 38 21 00 A0 */ addi r1, r1, 0xa0 -/* 80071748 0006E688 4E 80 00 20 */ blr -.endfn readMaterialDL__14J3DModelLoaderFPC18J3DMaterialDLBlockUl - -.fn modifyMaterial__14J3DModelLoaderFUl, global -/* 8007174C 0006E68C 94 21 FF 60 */ stwu r1, -0xa0(r1) -/* 80071750 0006E690 7C 08 02 A6 */ mflr r0 -/* 80071754 0006E694 90 01 00 A4 */ stw r0, 0xa4(r1) -/* 80071758 0006E698 54 80 04 A5 */ rlwinm. r0, r4, 0, 0x12, 0x12 -/* 8007175C 0006E69C 93 E1 00 9C */ stw r31, 0x9c(r1) -/* 80071760 0006E6A0 93 C1 00 98 */ stw r30, 0x98(r1) -/* 80071764 0006E6A4 7C 7E 1B 78 */ mr r30, r3 -/* 80071768 0006E6A8 41 82 00 48 */ beq .L_800717B0 -/* 8007176C 0006E6AC 80 9E 00 10 */ lwz r4, 0x10(r30) -/* 80071770 0006E6B0 38 61 00 08 */ addi r3, r1, 8 -/* 80071774 0006E6B4 4B FF AC 31 */ bl __ct__18J3DMaterialFactoryFRC16J3DMaterialBlock -/* 80071778 0006E6B8 3B E0 00 00 */ li r31, 0 -/* 8007177C 0006E6BC 48 00 00 20 */ b .L_8007179C -.L_80071780: -/* 80071780 0006E6C0 80 84 00 08 */ lwz r4, 8(r4) -/* 80071784 0006E6C4 57 E0 13 BA */ rlwinm r0, r31, 2, 0xe, 0x1d -/* 80071788 0006E6C8 57 E5 04 3E */ clrlwi r5, r31, 0x10 -/* 8007178C 0006E6CC 38 61 00 08 */ addi r3, r1, 8 -/* 80071790 0006E6D0 7C 84 00 2E */ lwzx r4, r4, r0 -/* 80071794 0006E6D4 4B FF C3 49 */ bl modifyPatchedCurrentMtx__18J3DMaterialFactoryCFP11J3DMateriali -/* 80071798 0006E6D8 3B FF 00 01 */ addi r31, r31, 1 -.L_8007179C: -/* 8007179C 0006E6DC 80 9E 00 08 */ lwz r4, 8(r30) -/* 800717A0 0006E6E0 57 E3 04 3E */ clrlwi r3, r31, 0x10 -/* 800717A4 0006E6E4 A0 04 00 04 */ lhz r0, 4(r4) -/* 800717A8 0006E6E8 7C 03 00 40 */ cmplw r3, r0 -/* 800717AC 0006E6EC 41 80 FF D4 */ blt .L_80071780 -.L_800717B0: -/* 800717B0 0006E6F0 80 01 00 A4 */ lwz r0, 0xa4(r1) -/* 800717B4 0006E6F4 83 E1 00 9C */ lwz r31, 0x9c(r1) -/* 800717B8 0006E6F8 83 C1 00 98 */ lwz r30, 0x98(r1) -/* 800717BC 0006E6FC 7C 08 03 A6 */ mtlr r0 -/* 800717C0 0006E700 38 21 00 A0 */ addi r1, r1, 0xa0 -/* 800717C4 0006E704 4E 80 00 20 */ blr -.endfn modifyMaterial__14J3DModelLoaderFUl - -.fn calcSizeMaterial__14J3DModelLoaderFPC16J3DMaterialBlockUl, weak -/* 800717C8 0006E708 38 60 00 00 */ li r3, 0 -/* 800717CC 0006E70C 4E 80 00 20 */ blr -.endfn calcSizeMaterial__14J3DModelLoaderFPC16J3DMaterialBlockUl - -.fn calcSizeMaterialTable__14J3DModelLoaderFPC16J3DMaterialBlockUl, weak -/* 800717D0 0006E710 38 60 00 00 */ li r3, 0 -/* 800717D4 0006E714 4E 80 00 20 */ blr -.endfn calcSizeMaterialTable__14J3DModelLoaderFPC16J3DMaterialBlockUl - -.fn __dt__10J3DTextureFv, weak -/* 800717D8 0006E718 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800717DC 0006E71C 7C 08 02 A6 */ mflr r0 -/* 800717E0 0006E720 90 01 00 14 */ stw r0, 0x14(r1) -/* 800717E4 0006E724 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800717E8 0006E728 7C 7F 1B 79 */ or. r31, r3, r3 -/* 800717EC 0006E72C 41 82 00 1C */ beq .L_80071808 -/* 800717F0 0006E730 3C A0 80 4A */ lis r5, __vt__10J3DTexture@ha -/* 800717F4 0006E734 7C 80 07 35 */ extsh. r0, r4 -/* 800717F8 0006E738 38 05 1F 68 */ addi r0, r5, __vt__10J3DTexture@l -/* 800717FC 0006E73C 90 1F 00 08 */ stw r0, 8(r31) -/* 80071800 0006E740 40 81 00 08 */ ble .L_80071808 -/* 80071804 0006E744 4B FB 28 B1 */ bl __dl__FPv -.L_80071808: -/* 80071808 0006E748 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8007180C 0006E74C 7F E3 FB 78 */ mr r3, r31 -/* 80071810 0006E750 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80071814 0006E754 7C 08 03 A6 */ mtlr r0 -/* 80071818 0006E758 38 21 00 10 */ addi r1, r1, 0x10 -/* 8007181C 0006E75C 4E 80 00 20 */ blr -.endfn __dt__10J3DTextureFv - -.fn "__dt__73J3DMtxCalcNoAnm<27J3DMtxCalcCalcTransformMaya,24J3DMtxCalcJ3DSysInitMaya>Fv", weak -/* 80071820 0006E760 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80071824 0006E764 7C 08 02 A6 */ mflr r0 -/* 80071828 0006E768 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007182C 0006E76C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80071830 0006E770 7C 7F 1B 79 */ or. r31, r3, r3 -/* 80071834 0006E774 41 82 00 40 */ beq .L_80071874 -/* 80071838 0006E778 3C 60 80 4A */ lis r3, "__vt__73J3DMtxCalcNoAnm<27J3DMtxCalcCalcTransformMaya,24J3DMtxCalcJ3DSysInitMaya>"@ha -/* 8007183C 0006E77C 38 03 1E B8 */ addi r0, r3, "__vt__73J3DMtxCalcNoAnm<27J3DMtxCalcCalcTransformMaya,24J3DMtxCalcJ3DSysInitMaya>"@l -/* 80071840 0006E780 90 1F 00 00 */ stw r0, 0(r31) -/* 80071844 0006E784 41 82 00 20 */ beq .L_80071864 -/* 80071848 0006E788 3C 60 80 4A */ lis r3, __vt__19J3DMtxCalcNoAnmBase@ha -/* 8007184C 0006E78C 38 03 1F 3C */ addi r0, r3, __vt__19J3DMtxCalcNoAnmBase@l -/* 80071850 0006E790 90 1F 00 00 */ stw r0, 0(r31) -/* 80071854 0006E794 41 82 00 10 */ beq .L_80071864 -/* 80071858 0006E798 3C 60 80 4A */ lis r3, __vt__10J3DMtxCalc@ha -/* 8007185C 0006E79C 38 03 FB 3C */ addi r0, r3, __vt__10J3DMtxCalc@l -/* 80071860 0006E7A0 90 1F 00 00 */ stw r0, 0(r31) -.L_80071864: -/* 80071864 0006E7A4 7C 80 07 35 */ extsh. r0, r4 -/* 80071868 0006E7A8 40 81 00 0C */ ble .L_80071874 -/* 8007186C 0006E7AC 7F E3 FB 78 */ mr r3, r31 -/* 80071870 0006E7B0 4B FB 28 45 */ bl __dl__FPv -.L_80071874: -/* 80071874 0006E7B4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80071878 0006E7B8 7F E3 FB 78 */ mr r3, r31 -/* 8007187C 0006E7BC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80071880 0006E7C0 7C 08 03 A6 */ mtlr r0 -/* 80071884 0006E7C4 38 21 00 10 */ addi r1, r1, 0x10 -/* 80071888 0006E7C8 4E 80 00 20 */ blr -.endfn "__dt__73J3DMtxCalcNoAnm<27J3DMtxCalcCalcTransformMaya,24J3DMtxCalcJ3DSysInitMaya>Fv" - -.fn "init__73J3DMtxCalcNoAnm<27J3DMtxCalcCalcTransformMaya,24J3DMtxCalcJ3DSysInitMaya>FRC3VecRA3_A4_Cf", weak -/* 8007188C 0006E7CC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80071890 0006E7D0 7C 08 02 A6 */ mflr r0 -/* 80071894 0006E7D4 7C 83 23 78 */ mr r3, r4 -/* 80071898 0006E7D8 7C A4 2B 78 */ mr r4, r5 -/* 8007189C 0006E7DC 90 01 00 14 */ stw r0, 0x14(r1) -/* 800718A0 0006E7E0 4B FF 99 F9 */ bl init__24J3DMtxCalcJ3DSysInitMayaFRC3VecRA3_A4_Cf -/* 800718A4 0006E7E4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800718A8 0006E7E8 7C 08 03 A6 */ mtlr r0 -/* 800718AC 0006E7EC 38 21 00 10 */ addi r1, r1, 0x10 -/* 800718B0 0006E7F0 4E 80 00 20 */ blr -.endfn "init__73J3DMtxCalcNoAnm<27J3DMtxCalcCalcTransformMaya,24J3DMtxCalcJ3DSysInitMaya>FRC3VecRA3_A4_Cf" - -.fn "calc__73J3DMtxCalcNoAnm<27J3DMtxCalcCalcTransformMaya,24J3DMtxCalcJ3DSysInitMaya>Fv", weak -/* 800718B4 0006E7F4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800718B8 0006E7F8 7C 08 02 A6 */ mflr r0 -/* 800718BC 0006E7FC 90 01 00 14 */ stw r0, 0x14(r1) -/* 800718C0 0006E800 80 6D 89 8C */ lwz r3, mJoint__10J3DMtxCalc@sda21(r13) -/* 800718C4 0006E804 38 63 00 18 */ addi r3, r3, 0x18 -/* 800718C8 0006E808 4B FF 9C E9 */ bl calcTransform__27J3DMtxCalcCalcTransformMayaFRC16J3DTransformInfo -/* 800718CC 0006E80C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800718D0 0006E810 7C 08 03 A6 */ mtlr r0 -/* 800718D4 0006E814 38 21 00 10 */ addi r1, r1, 0x10 -/* 800718D8 0006E818 4E 80 00 20 */ blr -.endfn "calc__73J3DMtxCalcNoAnm<27J3DMtxCalcCalcTransformMaya,24J3DMtxCalcJ3DSysInitMaya>Fv" - -.fn "__dt__83J3DMtxCalcNoAnm<32J3DMtxCalcCalcTransformSoftimage,29J3DMtxCalcJ3DSysInitSoftimage>Fv", weak -/* 800718DC 0006E81C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800718E0 0006E820 7C 08 02 A6 */ mflr r0 -/* 800718E4 0006E824 90 01 00 14 */ stw r0, 0x14(r1) -/* 800718E8 0006E828 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800718EC 0006E82C 7C 7F 1B 79 */ or. r31, r3, r3 -/* 800718F0 0006E830 41 82 00 40 */ beq .L_80071930 -/* 800718F4 0006E834 3C 60 80 4A */ lis r3, "__vt__83J3DMtxCalcNoAnm<32J3DMtxCalcCalcTransformSoftimage,29J3DMtxCalcJ3DSysInitSoftimage>"@ha -/* 800718F8 0006E838 38 03 1E E4 */ addi r0, r3, "__vt__83J3DMtxCalcNoAnm<32J3DMtxCalcCalcTransformSoftimage,29J3DMtxCalcJ3DSysInitSoftimage>"@l -/* 800718FC 0006E83C 90 1F 00 00 */ stw r0, 0(r31) -/* 80071900 0006E840 41 82 00 20 */ beq .L_80071920 -/* 80071904 0006E844 3C 60 80 4A */ lis r3, __vt__19J3DMtxCalcNoAnmBase@ha -/* 80071908 0006E848 38 03 1F 3C */ addi r0, r3, __vt__19J3DMtxCalcNoAnmBase@l -/* 8007190C 0006E84C 90 1F 00 00 */ stw r0, 0(r31) -/* 80071910 0006E850 41 82 00 10 */ beq .L_80071920 -/* 80071914 0006E854 3C 60 80 4A */ lis r3, __vt__10J3DMtxCalc@ha -/* 80071918 0006E858 38 03 FB 3C */ addi r0, r3, __vt__10J3DMtxCalc@l -/* 8007191C 0006E85C 90 1F 00 00 */ stw r0, 0(r31) -.L_80071920: -/* 80071920 0006E860 7C 80 07 35 */ extsh. r0, r4 -/* 80071924 0006E864 40 81 00 0C */ ble .L_80071930 -/* 80071928 0006E868 7F E3 FB 78 */ mr r3, r31 -/* 8007192C 0006E86C 4B FB 27 89 */ bl __dl__FPv -.L_80071930: -/* 80071930 0006E870 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80071934 0006E874 7F E3 FB 78 */ mr r3, r31 -/* 80071938 0006E878 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8007193C 0006E87C 7C 08 03 A6 */ mtlr r0 -/* 80071940 0006E880 38 21 00 10 */ addi r1, r1, 0x10 -/* 80071944 0006E884 4E 80 00 20 */ blr -.endfn "__dt__83J3DMtxCalcNoAnm<32J3DMtxCalcCalcTransformSoftimage,29J3DMtxCalcJ3DSysInitSoftimage>Fv" - -.fn "init__83J3DMtxCalcNoAnm<32J3DMtxCalcCalcTransformSoftimage,29J3DMtxCalcJ3DSysInitSoftimage>FRC3VecRA3_A4_Cf", weak -/* 80071948 0006E888 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8007194C 0006E88C 7C 08 02 A6 */ mflr r0 -/* 80071950 0006E890 3C 60 80 51 */ lis r3, mCurrentS__6J3DSys@ha -/* 80071954 0006E894 C0 44 00 00 */ lfs f2, 0(r4) -/* 80071958 0006E898 90 01 00 14 */ stw r0, 0x14(r1) -/* 8007195C 0006E89C 38 C3 F4 04 */ addi r6, r3, mCurrentS__6J3DSys@l -/* 80071960 0006E8A0 C0 24 00 04 */ lfs f1, 4(r4) -/* 80071964 0006E8A4 3C 60 80 51 */ lis r3, mCurrentMtx__6J3DSys@ha -/* 80071968 0006E8A8 C0 04 00 08 */ lfs f0, 8(r4) -/* 8007196C 0006E8AC 38 83 F3 D4 */ addi r4, r3, mCurrentMtx__6J3DSys@l -/* 80071970 0006E8B0 D0 46 00 00 */ stfs f2, 0(r6) -/* 80071974 0006E8B4 7C A3 2B 78 */ mr r3, r5 -/* 80071978 0006E8B8 D0 26 00 04 */ stfs f1, 4(r6) -/* 8007197C 0006E8BC D0 06 00 08 */ stfs f0, 8(r6) -/* 80071980 0006E8C0 48 07 89 4D */ bl PSMTXCopy -/* 80071984 0006E8C4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80071988 0006E8C8 7C 08 03 A6 */ mtlr r0 -/* 8007198C 0006E8CC 38 21 00 10 */ addi r1, r1, 0x10 -/* 80071990 0006E8D0 4E 80 00 20 */ blr -.endfn "init__83J3DMtxCalcNoAnm<32J3DMtxCalcCalcTransformSoftimage,29J3DMtxCalcJ3DSysInitSoftimage>FRC3VecRA3_A4_Cf" - -.fn "calc__83J3DMtxCalcNoAnm<32J3DMtxCalcCalcTransformSoftimage,29J3DMtxCalcJ3DSysInitSoftimage>Fv", weak -/* 80071994 0006E8D4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80071998 0006E8D8 7C 08 02 A6 */ mflr r0 -/* 8007199C 0006E8DC 90 01 00 14 */ stw r0, 0x14(r1) -/* 800719A0 0006E8E0 80 6D 89 8C */ lwz r3, mJoint__10J3DMtxCalc@sda21(r13) -/* 800719A4 0006E8E4 38 63 00 18 */ addi r3, r3, 0x18 -/* 800719A8 0006E8E8 4B FF 9A A1 */ bl calcTransform__32J3DMtxCalcCalcTransformSoftimageFRC16J3DTransformInfo -/* 800719AC 0006E8EC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800719B0 0006E8F0 7C 08 03 A6 */ mtlr r0 -/* 800719B4 0006E8F4 38 21 00 10 */ addi r1, r1, 0x10 -/* 800719B8 0006E8F8 4E 80 00 20 */ blr -.endfn "calc__83J3DMtxCalcNoAnm<32J3DMtxCalcCalcTransformSoftimage,29J3DMtxCalcJ3DSysInitSoftimage>Fv" - -.fn "__dt__75J3DMtxCalcNoAnm<28J3DMtxCalcCalcTransformBasic,25J3DMtxCalcJ3DSysInitBasic>Fv", weak -/* 800719BC 0006E8FC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800719C0 0006E900 7C 08 02 A6 */ mflr r0 -/* 800719C4 0006E904 90 01 00 14 */ stw r0, 0x14(r1) -/* 800719C8 0006E908 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800719CC 0006E90C 7C 7F 1B 79 */ or. r31, r3, r3 -/* 800719D0 0006E910 41 82 00 40 */ beq .L_80071A10 -/* 800719D4 0006E914 3C 60 80 4A */ lis r3, "__vt__75J3DMtxCalcNoAnm<28J3DMtxCalcCalcTransformBasic,25J3DMtxCalcJ3DSysInitBasic>"@ha -/* 800719D8 0006E918 38 03 1F 10 */ addi r0, r3, "__vt__75J3DMtxCalcNoAnm<28J3DMtxCalcCalcTransformBasic,25J3DMtxCalcJ3DSysInitBasic>"@l -/* 800719DC 0006E91C 90 1F 00 00 */ stw r0, 0(r31) -/* 800719E0 0006E920 41 82 00 20 */ beq .L_80071A00 -/* 800719E4 0006E924 3C 60 80 4A */ lis r3, __vt__19J3DMtxCalcNoAnmBase@ha -/* 800719E8 0006E928 38 03 1F 3C */ addi r0, r3, __vt__19J3DMtxCalcNoAnmBase@l -/* 800719EC 0006E92C 90 1F 00 00 */ stw r0, 0(r31) -/* 800719F0 0006E930 41 82 00 10 */ beq .L_80071A00 -/* 800719F4 0006E934 3C 60 80 4A */ lis r3, __vt__10J3DMtxCalc@ha -/* 800719F8 0006E938 38 03 FB 3C */ addi r0, r3, __vt__10J3DMtxCalc@l -/* 800719FC 0006E93C 90 1F 00 00 */ stw r0, 0(r31) -.L_80071A00: -/* 80071A00 0006E940 7C 80 07 35 */ extsh. r0, r4 -/* 80071A04 0006E944 40 81 00 0C */ ble .L_80071A10 -/* 80071A08 0006E948 7F E3 FB 78 */ mr r3, r31 -/* 80071A0C 0006E94C 4B FB 26 A9 */ bl __dl__FPv -.L_80071A10: -/* 80071A10 0006E950 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80071A14 0006E954 7F E3 FB 78 */ mr r3, r31 -/* 80071A18 0006E958 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80071A1C 0006E95C 7C 08 03 A6 */ mtlr r0 -/* 80071A20 0006E960 38 21 00 10 */ addi r1, r1, 0x10 -/* 80071A24 0006E964 4E 80 00 20 */ blr -.endfn "__dt__75J3DMtxCalcNoAnm<28J3DMtxCalcCalcTransformBasic,25J3DMtxCalcJ3DSysInitBasic>Fv" - -.fn "init__75J3DMtxCalcNoAnm<28J3DMtxCalcCalcTransformBasic,25J3DMtxCalcJ3DSysInitBasic>FRC3VecRA3_A4_Cf", weak -/* 80071A28 0006E968 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80071A2C 0006E96C 7C 08 02 A6 */ mflr r0 -/* 80071A30 0006E970 7C 83 23 78 */ mr r3, r4 -/* 80071A34 0006E974 7C A4 2B 78 */ mr r4, r5 -/* 80071A38 0006E978 90 01 00 14 */ stw r0, 0x14(r1) -/* 80071A3C 0006E97C 4B FF 97 C5 */ bl init__25J3DMtxCalcJ3DSysInitBasicFRC3VecRA3_A4_Cf -/* 80071A40 0006E980 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80071A44 0006E984 7C 08 03 A6 */ mtlr r0 -/* 80071A48 0006E988 38 21 00 10 */ addi r1, r1, 0x10 -/* 80071A4C 0006E98C 4E 80 00 20 */ blr -.endfn "init__75J3DMtxCalcNoAnm<28J3DMtxCalcCalcTransformBasic,25J3DMtxCalcJ3DSysInitBasic>FRC3VecRA3_A4_Cf" - -.fn "calc__75J3DMtxCalcNoAnm<28J3DMtxCalcCalcTransformBasic,25J3DMtxCalcJ3DSysInitBasic>Fv", weak -/* 80071A50 0006E990 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80071A54 0006E994 7C 08 02 A6 */ mflr r0 -/* 80071A58 0006E998 90 01 00 14 */ stw r0, 0x14(r1) -/* 80071A5C 0006E99C 80 6D 89 8C */ lwz r3, mJoint__10J3DMtxCalc@sda21(r13) -/* 80071A60 0006E9A0 38 63 00 18 */ addi r3, r3, 0x18 -/* 80071A64 0006E9A4 4B FF 98 CD */ bl calcTransform__28J3DMtxCalcCalcTransformBasicFRC16J3DTransformInfo -/* 80071A68 0006E9A8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80071A6C 0006E9AC 7C 08 03 A6 */ mtlr r0 -/* 80071A70 0006E9B0 38 21 00 10 */ addi r1, r1, 0x10 -/* 80071A74 0006E9B4 4E 80 00 20 */ blr -.endfn "calc__75J3DMtxCalcNoAnm<28J3DMtxCalcCalcTransformBasic,25J3DMtxCalcJ3DSysInitBasic>Fv" - -.fn "JSUConvertOffsetToPtr<7ResTIMG>__FPCvPCv", weak -/* 80071A78 0006E9B8 28 04 00 00 */ cmplwi r4, 0 -/* 80071A7C 0006E9BC 40 82 00 0C */ bne .L_80071A88 -/* 80071A80 0006E9C0 38 60 00 00 */ li r3, 0 -/* 80071A84 0006E9C4 4E 80 00 20 */ blr -.L_80071A88: -/* 80071A88 0006E9C8 7C 63 22 14 */ add r3, r3, r4 -/* 80071A8C 0006E9CC 4E 80 00 20 */ blr -.endfn "JSUConvertOffsetToPtr<7ResTIMG>__FPCvPCv" - -.fn "JSUConvertOffsetToPtr__FPCvPCv", weak -/* 80071A90 0006E9D0 28 04 00 00 */ cmplwi r4, 0 -/* 80071A94 0006E9D4 40 82 00 0C */ bne .L_80071AA0 -/* 80071A98 0006E9D8 38 60 00 00 */ li r3, 0 -/* 80071A9C 0006E9DC 4E 80 00 20 */ blr -.L_80071AA0: -/* 80071AA0 0006E9E0 7C 63 22 14 */ add r3, r3, r4 -/* 80071AA4 0006E9E4 4E 80 00 20 */ blr -.endfn "JSUConvertOffsetToPtr__FPCvPCv" - -.fn "JSUConvertOffsetToPtr__FPCvPCv", weak -/* 80071AA8 0006E9E8 28 04 00 00 */ cmplwi r4, 0 -/* 80071AAC 0006E9EC 40 82 00 0C */ bne .L_80071AB8 -/* 80071AB0 0006E9F0 38 60 00 00 */ li r3, 0 -/* 80071AB4 0006E9F4 4E 80 00 20 */ blr -.L_80071AB8: -/* 80071AB8 0006E9F8 7C 63 22 14 */ add r3, r3, r4 -/* 80071ABC 0006E9FC 4E 80 00 20 */ blr -.endfn "JSUConvertOffsetToPtr__FPCvPCv" - -.fn "JSUConvertOffsetToPtr<17_GXVtxAttrFmtList>__FPCvPCv", weak -/* 80071AC0 0006EA00 28 04 00 00 */ cmplwi r4, 0 -/* 80071AC4 0006EA04 40 82 00 0C */ bne .L_80071AD0 -/* 80071AC8 0006EA08 38 60 00 00 */ li r3, 0 -/* 80071ACC 0006EA0C 4E 80 00 20 */ blr -.L_80071AD0: -/* 80071AD0 0006EA10 7C 63 22 14 */ add r3, r3, r4 -/* 80071AD4 0006EA14 4E 80 00 20 */ blr -.endfn "JSUConvertOffsetToPtr<17_GXVtxAttrFmtList>__FPCvPCv" - -.fn "JSUConvertOffsetToPtr<17J3DModelHierarchy>__FPCvPCv", weak -/* 80071AD8 0006EA18 28 04 00 00 */ cmplwi r4, 0 -/* 80071ADC 0006EA1C 40 82 00 0C */ bne .L_80071AE8 -/* 80071AE0 0006EA20 38 60 00 00 */ li r3, 0 -/* 80071AE4 0006EA24 4E 80 00 20 */ blr -.L_80071AE8: -/* 80071AE8 0006EA28 7C 63 22 14 */ add r3, r3, r4 -/* 80071AEC 0006EA2C 4E 80 00 20 */ blr -.endfn "JSUConvertOffsetToPtr<17J3DModelHierarchy>__FPCvPCv" - -.fn "JSUConvertOffsetToPtr<16J3DShapeInitData>__FPCvUl", weak -/* 80071AF0 0006EA30 28 04 00 00 */ cmplwi r4, 0 -/* 80071AF4 0006EA34 40 82 00 0C */ bne .L_80071B00 -/* 80071AF8 0006EA38 38 60 00 00 */ li r3, 0 -/* 80071AFC 0006EA3C 4E 80 00 20 */ blr -.L_80071B00: -/* 80071B00 0006EA40 7C 63 22 14 */ add r3, r3, r4 -/* 80071B04 0006EA44 4E 80 00 20 */ blr -.endfn "JSUConvertOffsetToPtr<16J3DShapeInitData>__FPCvUl" - -.fn "JSUConvertOffsetToPtr__FPCvUl", weak -/* 80071B08 0006EA48 28 04 00 00 */ cmplwi r4, 0 -/* 80071B0C 0006EA4C 40 82 00 0C */ bne .L_80071B18 -/* 80071B10 0006EA50 38 60 00 00 */ li r3, 0 -/* 80071B14 0006EA54 4E 80 00 20 */ blr -.L_80071B18: -/* 80071B18 0006EA58 7C 63 22 14 */ add r3, r3, r4 -/* 80071B1C 0006EA5C 4E 80 00 20 */ blr -.endfn "JSUConvertOffsetToPtr__FPCvUl" diff --git a/configure.py b/configure.py index 5b70c3cf2..44072b2fb 100755 --- a/configure.py +++ b/configure.py @@ -234,7 +234,7 @@ LIBS = [ ["JSystem/J3D/J3DJoint", False], ["JSystem/J3D/J3DMaterialFactory", False], ["JSystem/J3D/J3DBinaryFormat", True], - ["JSystem/J3D/J3DModelLoader", False], + ["JSystem/J3D/J3DModelLoader", True], ["JSystem/J3D/J3DJointFactory", True], ["JSystem/J3D/J3DShapeFactory", True], ["JSystem/J3D/J3DAnmLoader", True], diff --git a/docs/recommended_todo.md b/docs/recommended_todo.md index 432bd997a..fb9579618 100644 --- a/docs/recommended_todo.md +++ b/docs/recommended_todo.md @@ -50,16 +50,16 @@ | JAudio//JAS/JASChannel.cpp | 35219 | JParticle/JPAParticle.cpp | 39432 | | J2D/J2DMaterialFactory.cpp | 39435 | JAudio//JAS/JASAramStream.cpp | 40005 | | J3D/J3DTevs.cpp | 44519 | J3D/J3DAnimation.cpp | 46687 | -| J3D/J3DModelLoader.cpp | 47976 | JAudio//JAS/JASSeqParser.cpp | 48203 | -| JMessage/processor.cpp | 49155 | JStudio/functionvalue.cpp | 50053 | -| JUtility/JUTGamePad.cpp | 52317 | JAudio//JAI/JAISound.cpp | 55221 | -| JAudio//JAI/JAISeMgr.cpp | 61174 | JAudio//JAI/JAIStreamMgr.cpp | 62631 | -| JParticle/JPAFieldBlock.cpp | 69401 | J2D/J2DWindowEx.cpp | 72267 | -| J3D/J3DMaterialFactory.cpp | 75520 | JParticle/JPAResource.cpp | 80652 | -| JAudio//JAS/JASTrack.cpp | 83922 | J2D/J2DPicture.cpp | 85153 | -| JAudio//JAI/JAISequenceMgr.cpp | 88860 | JParticle/JPABaseShape.cpp | 105536 | -| J2D/J2DPictureEx.cpp | 110986 | J2D/J2DMatBlock.cpp | 116704 | -| JStudio/jstudio-object.cpp | 123297 | J3D/J3DMatBlock.cpp | 165716 | +| JAudio//JAS/JASSeqParser.cpp | 48203 | JMessage/processor.cpp | 49155 | +| JStudio/functionvalue.cpp | 50053 | JUtility/JUTGamePad.cpp | 52317 | +| JAudio//JAI/JAISound.cpp | 55221 | JAudio//JAI/JAISeMgr.cpp | 61174 | +| JAudio//JAI/JAIStreamMgr.cpp | 62631 | JParticle/JPAFieldBlock.cpp | 69401 | +| J2D/J2DWindowEx.cpp | 72267 | J3D/J3DMaterialFactory.cpp | 75520 | +| JParticle/JPAResource.cpp | 80652 | JAudio//JAS/JASTrack.cpp | 83922 | +| J2D/J2DPicture.cpp | 85153 | JAudio//JAI/JAISequenceMgr.cpp | 88860 | +| JParticle/JPABaseShape.cpp | 105536 | J2D/J2DPictureEx.cpp | 110986 | +| J2D/J2DMatBlock.cpp | 116704 | JStudio/jstudio-object.cpp | 123297 | +| J3D/J3DMatBlock.cpp | 165716 | | | ###
plugProjectEbisawaU
| File | Size (bytes) | File | Size (bytes) | diff --git a/include/JSystem/J3D/J3DJoint.h b/include/JSystem/J3D/J3DJoint.h index 9d2eb3cd7..e8745fcd2 100644 --- a/include/JSystem/J3D/J3DJoint.h +++ b/include/JSystem/J3D/J3DJoint.h @@ -47,6 +47,9 @@ struct J3DJoint { J3DMtxCalc* getCurrentMtxCalc() { return mCurrentMtxCalc; }; J3DJoint* getChild() { return mChild; } + void setMtxType(u8 type) { mKind = (mKind & ~0xF0) | (type << 4); } + void resetMtxType() { mKind &= 0x0F; } + static J3DMtxCalc* mCurrentMtxCalc; u32 mCallBackUserData; // _00 diff --git a/include/JSystem/J3D/J3DJointTree.h b/include/JSystem/J3D/J3DJointTree.h index 5807859fb..5ea550b35 100644 --- a/include/JSystem/J3D/J3DJointTree.h +++ b/include/JSystem/J3D/J3DJointTree.h @@ -47,6 +47,7 @@ struct J3DJointTree { J3DMtxCalc* getBasicMtxCalc() const { return mTransformCalc; } Mtx& getInvJointMtx(s32 idx) const { return mInvJointMtx[idx]; } u32 getModelDataType() const { return mModelDataType; } + const J3DModelHierarchy* getHierarchy() const { return mHierarchy; } // VTBL _00 J3DModelHierarchy* mHierarchy; // _04 diff --git a/include/JSystem/J3D/J3DMaterialFactory.h b/include/JSystem/J3D/J3DMaterialFactory.h index c59bf431a..321c1ceb9 100644 --- a/include/JSystem/J3D/J3DMaterialFactory.h +++ b/include/JSystem/J3D/J3DMaterialFactory.h @@ -130,6 +130,7 @@ struct J3DMaterialFactory { void modifyPatchedCurrentMtx(J3DMaterial*, int) const; /** @fabricated */ + u16 getMaterialID(int idx) const { return mMatRemapTable[idx]; } inline J3DMaterialInitData& getMaterialInitData(s32 index) const { return mInitData[mMatRemapTable[index]]; } u8 getMaterialMode(int idx) const { return getMaterialInitData(idx).mPixelEngineMode; } @@ -211,6 +212,7 @@ struct J3DMaterialInitData_v21 { struct J3DMaterialFactory_v21 { J3DMaterialFactory_v21(const J3DMaterialBlock_v21&); + u16 countUniqueMaterials(); J3DMaterial* create(J3DMaterial*, int, u32) const; J3DGXColor newMatColor(int, int) const; @@ -237,7 +239,7 @@ struct J3DMaterialFactory_v21 { J3DNBTScale newNBTScale(int) const; /** @fabricated */ - // inline s32 getMaterialInitDataIndex(s32 initDataIndexIndex) const { return _08[initDataIndexIndex]; } + u16 getMaterialID(int idx) const { return mMatRemapTable[idx]; } inline J3DMaterialInitData_v21& getMaterialInitData(s32 index) const { return mInitData[mMatRemapTable[index]]; } u16 mMaterialNum; // _00 @@ -267,13 +269,6 @@ struct J3DMaterialFactory_v21 { u8* mZCompareInfo; // _60 u8* mDitherInfo; // _64 J3DNBTScaleInfo* mNBTScaleInfo; // _68 - void* _6C; // _6C - void* _70; // _70 - void* _74; // _74 - void* _78; // _78 - void* _7C; // _7C - void* _80; // _80 - void* _84; // _84 }; #endif diff --git a/include/JSystem/J3D/J3DModel.h b/include/JSystem/J3D/J3DModel.h index e937d96cf..a5740ad85 100644 --- a/include/JSystem/J3D/J3DModel.h +++ b/include/JSystem/J3D/J3DModel.h @@ -157,6 +157,7 @@ struct J3DModelData { GXColor* getVtxColorArray(u8 idx) const { return mVertexData.getVtxColorArray(idx); } u32 getVertexNum() const { return mVertexData.getVtxNum(); } u32 getVertexColorNum() const { return mVertexData.getColNum(); } + const J3DModelHierarchy* getHierarchy() const { return mJointTree.getHierarchy(); } u8 getDrawMtxFlag(u16 idx) const { return mJointTree.getDrawMtxFlag(idx); } u16 getDrawMtxIndex(u16 idx) const { return mJointTree.getDrawMtxIndex(idx); } diff --git a/include/JSystem/J3D/J3DModelLoader.h b/include/JSystem/J3D/J3DModelLoader.h index e40e80814..933aa37d2 100644 --- a/include/JSystem/J3D/J3DModelLoader.h +++ b/include/JSystem/J3D/J3DModelLoader.h @@ -25,23 +25,19 @@ struct J3DModelLoader { { } - virtual J3DModelData* load(const void*, u32); // _08 - virtual J3DMaterialTable* loadMaterialTable(const void*); // _0C - virtual J3DModelData* loadBinaryDisplayList(const void*, u32); // _10 - virtual int calcLoadSize(const void*, u32); // _14 - virtual int calcLoadMaterialTableSize(const void*); // _18 - virtual int calcLoadBinaryDisplayListSize(const void*, u32); // _1C - virtual u16 countMaterialNum(const void*); // _20 - virtual void setupBBoardInfo(); // _24 - /** - * @reifiedAddress{8006FAA0} - * @reifiedFile{JSystem/J3D/J3DModelLoader.cpp} - */ - virtual ~J3DModelLoader() {}; // _28 (weak) - virtual void readMaterial(const J3DMaterialBlock*, u32); // _2C (weak) - virtual void readMaterial_v21(const J3DMaterialBlock_v21*, u32); // _30 (weak) - virtual void readMaterialTable(const J3DMaterialBlock*, u32); // _34 (weak) - virtual void readMaterialTable_v21(const J3DMaterialBlock_v21*, u32); // _38 (weak) + virtual J3DModelData* load(const void*, u32); // _08 + virtual J3DMaterialTable* loadMaterialTable(const void*); // _0C + virtual J3DModelData* loadBinaryDisplayList(const void*, u32); // _10 + virtual int calcLoadSize(const void*, u32); // _14 + virtual int calcLoadMaterialTableSize(const void*); // _18 + virtual int calcLoadBinaryDisplayListSize(const void*, u32); // _1C + virtual u16 countMaterialNum(const void*); // _20 + virtual void setupBBoardInfo(); // _24 + virtual ~J3DModelLoader() { } // _28 (weak) + virtual void readMaterial(const J3DMaterialBlock*, u32) { } // _2C (weak) + virtual void readMaterial_v21(const J3DMaterialBlock_v21*, u32) { } // _30 (weak) + virtual void readMaterialTable(const J3DMaterialBlock*, u32) { } // _34 (weak) + virtual void readMaterialTable_v21(const J3DMaterialBlock_v21*, u32) { } // _38 (weak) virtual size_t calcSizeMaterial(const J3DMaterialBlock*, u32) { return 0; } // _3C (weak) virtual size_t calcSizeMaterialTable(const J3DMaterialBlock*, u32) { return 0; } // _40 (weak) @@ -106,5 +102,6 @@ inline u32 getMdlDataFlag_TevStageNum(u32 flag) { return (flag >> 16) & 0x1F; } inline u32 getMdlDataFlag_TexGenFlag(u32 flag) { return flag & 0x0C000000; } inline u32 getMdlDataFlag_PEFlag(u32 flag) { return flag & 0x30000000; } inline u32 getMdlDataFlag_ColorFlag(u32 flag) { return flag & 0xC0000000; } +inline u32 getBdlFlag_MaterialType(u32 flag) { return flag & 0x3000; } #endif diff --git a/include/JSystem/JSupport/JSU.h b/include/JSystem/JSupport/JSU.h index ba30012ee..ca517d55d 100644 --- a/include/JSystem/JSupport/JSU.h +++ b/include/JSystem/JSupport/JSU.h @@ -12,15 +12,7 @@ inline u8 JSUHiByte(u16 data) return data; } -template -T* JSUConvertOffsetToPtr(const void* base, const void* offset) -{ - if (offset == 0) { - return nullptr; - } - return (T*)((s32)(base) + (s32)(offset)); -} - +// these two templates need to be in this order for weak function ordering lol template T* JSUConvertOffsetToPtr(const void* base, u32 offset) { @@ -30,4 +22,13 @@ T* JSUConvertOffsetToPtr(const void* base, u32 offset) return (T*)((s32)base + offset); } +template +T* JSUConvertOffsetToPtr(const void* base, const void* offset) +{ + if (offset == 0) { + return nullptr; + } + return (T*)((s32)(base) + (s32)(offset)); +} + #endif diff --git a/src/JSystem/J3D/J3DModelLoader.cpp b/src/JSystem/J3D/J3DModelLoader.cpp index d29113dc1..745d91bfb 100644 --- a/src/JSystem/J3D/J3DModelLoader.cpp +++ b/src/JSystem/J3D/J3DModelLoader.cpp @@ -4,6 +4,7 @@ #include "JSystem/J3D/J3DMtxCalc.h" #include "JSystem/J3D/J3DTypes.h" #include "JSystem/J3D/J3DShapeFactory.h" +#include "JSystem/J3D/J3DJointFactory.h" #include "JSystem/JSupport/JSU.h" /** * @note Address: 0x8006F894 @@ -105,18 +106,6 @@ J3DModelData* J3DModelLoader::load(const void* stream, u32 flags) return mModelData; } -/** - * @note Address: 0x8006FE60 - * @note Size: 0x4 - */ -void J3DModelLoader::readMaterial_v21(const J3DMaterialBlock_v21*, u32) { } - -/** - * @note Address: 0x8006FE64 - * @note Size: 0x4 - */ -void J3DModelLoader::readMaterial(const J3DMaterialBlock*, u32) { } - /** * @note Address: 0x8006FE68 * @note Size: 0x148 @@ -150,18 +139,6 @@ J3DMaterialTable* J3DModelLoader::loadMaterialTable(const void* stream) return mMaterialTable; } -/** - * @note Address: 0x8006FFB0 - * @note Size: 0x4 - */ -void J3DModelLoader::readMaterialTable_v21(const J3DMaterialBlock_v21*, u32) { } - -/** - * @note Address: 0x8006FFB4 - * @note Size: 0x4 - */ -void J3DModelLoader::readMaterialTable(const J3DMaterialBlock*, u32) { } - /** * @note Address: 0x8006FFB8 * @note Size: 0x2A4 @@ -204,13 +181,14 @@ J3DModelData* J3DModelLoader::loadBinaryDisplayList(const void* stream, u32 flag modifyMaterial(flags); break; case J3DFBT_Material: { - u32 matFlags = flags & 0x3000000; - matFlags = matFlags | 0x50100000; + u32 matFlags = 0x50100000; + matFlags |= flags & 0x03000000; const J3DMaterialBlock* matBlock = (const J3DMaterialBlock*)nextBlock; mMaterialBlock = matBlock; - if ((flags & 0x3000) == 0) { + u32 matType = getBdlFlag_MaterialType(flags); + if (matType == 0) { readMaterial(matBlock, matFlags); - } else if ((flags & 0x3000) == 0x2000) { + } else if (matType == 0x2000) { readPatchedMaterial(matBlock, matFlags); } break; @@ -224,212 +202,6 @@ J3DModelData* J3DModelLoader::loadBinaryDisplayList(const void* stream, u32 flag setupBBoardInfo(); mModelData->indexToPtr(); return mModelData; - /* - stwu r1, -0x30(r1) - mflr r0 - stw r0, 0x34(r1) - stmw r24, 0x10(r1) - mr r25, r3 - mr r27, r4 - mr r26, r5 - li r3, 0xe4 - bl __nw__FUl - or. r0, r3, r3 - beq lbl_8006FFEC - bl __ct__12J3DModelDataFv - mr r0, r3 - -lbl_8006FFEC: - stw r0, 4(r25) - lwz r3, 4(r25) - bl clear__12J3DModelDataFv - lwz r4, 4(r25) - lis r3, 0x4D415433@ha - li r0, 1 - lwz r24, 0xc(r27) - stw r27, 4(r4) - addi r28, r27, 0x20 - rlwinm r30, r26, 0, 6, 7 - rlwinm r29, r26, 0, 0x12, 0x13 - lwz r4, 4(r25) - addi r31, r3, 0x4D415433@l - li r27, 0 - stw r0, 0x1c(r4) - lwz r3, 4(r25) - addi r0, r3, 0x58 - stw r0, 8(r25) - b lbl_800701D0 - -lbl_80070038: - lwz r4, 0(r28) - cmpw r4, r31 - beq lbl_80070180 - bge lbl_80070098 - lis r3, 0x494E4631@ha - addi r0, r3, 0x494E4631@l - cmpw r4, r0 - beq lbl_800700E8 - bge lbl_80070084 - lis r3, 0x45565031@ha - addi r0, r3, 0x45565031@l - cmpw r4, r0 - beq lbl_8007010C - bge lbl_800701C4 - lis r3, 0x44525731@ha - addi r0, r3, 0x44525731@l - cmpw r4, r0 - beq lbl_8007011C - b lbl_800701C4 - -lbl_80070084: - lis r3, 0x4A4E5431@ha - addi r0, r3, 0x4A4E5431@l - cmpw r4, r0 - beq lbl_8007012C - b lbl_800701C4 - -lbl_80070098: - lis r3, 0x54455831@ha - addi r0, r3, 0x54455831@l - cmpw r4, r0 - beq lbl_80070150 - bge lbl_800700D4 - lis r3, 0x53485031@ha - addi r0, r3, 0x53485031@l - cmpw r4, r0 - beq lbl_8007013C - bge lbl_800701C4 - lis r3, 0x4D444C33@ha - addi r0, r3, 0x4D444C33@l - cmpw r4, r0 - beq lbl_80070160 - b lbl_800701C4 - -lbl_800700D4: - lis r3, 0x56545831@ha - addi r0, r3, 0x56545831@l - cmpw r4, r0 - beq lbl_800700FC - b lbl_800701C4 - -lbl_800700E8: - mr r3, r25 - mr r4, r28 - mr r5, r26 - bl readInformation__14J3DModelLoaderFPC17J3DModelInfoBlockUl - b lbl_800701C4 - -lbl_800700FC: - mr r3, r25 - mr r4, r28 - bl readVertex__14J3DModelLoaderFPC14J3DVertexBlock - b lbl_800701C4 - -lbl_8007010C: - mr r3, r25 - mr r4, r28 - bl readEnvelop__14J3DModelLoaderFPC16J3DEnvelopeBlock - b lbl_800701C4 - -lbl_8007011C: - mr r3, r25 - mr r4, r28 - bl readDraw__14J3DModelLoaderFPC12J3DDrawBlock - b lbl_800701C4 - -lbl_8007012C: - mr r3, r25 - mr r4, r28 - bl readJoint__14J3DModelLoaderFPC13J3DJointBlock - b lbl_800701C4 - -lbl_8007013C: - mr r3, r25 - mr r4, r28 - mr r5, r26 - bl readShape__14J3DModelLoaderFPC13J3DShapeBlockUl - b lbl_800701C4 - -lbl_80070150: - mr r3, r25 - mr r4, r28 - bl readTexture__14J3DModelLoaderFPC15J3DTextureBlock - b lbl_800701C4 - -lbl_80070160: - mr r3, r25 - mr r4, r28 - mr r5, r26 - bl readMaterialDL__14J3DModelLoaderFPC18J3DMaterialDLBlockUl - mr r3, r25 - mr r4, r26 - bl modifyMaterial__14J3DModelLoaderFUl - b lbl_800701C4 - -lbl_80070180: - cmplwi r29, 0 - lis r5, 0x5010 - stw r28, 0x10(r25) - or r5, r5, r30 - bne lbl_800701B0 - lwz r12, 0(r25) - mr r3, r25 - mr r4, r28 - lwz r12, 0x2c(r12) - mtctr r12 - bctrl - b lbl_800701C4 - -lbl_800701B0: - cmplwi r29, 0x2000 - bne lbl_800701C4 - mr r3, r25 - mr r4, r28 - bl readPatchedMaterial__14J3DModelLoaderFPC16J3DMaterialBlockUl - -lbl_800701C4: - lwz r0, 4(r28) - addi r27, r27, 1 - add r28, r28, r0 - -lbl_800701D0: - cmplw r27, r24 - blt lbl_80070038 - lwz r3, 4(r25) - addi r5, r1, 8 - li r4, 0 - lwz r0, 0x14(r3) - stw r0, 8(r1) - lwz r24, 4(r25) - addi r3, r24, 0x10 - addi r6, r24, 0x58 - addi r7, r24, 0x78 - bl -makeHierarchy__12J3DJointTreeFP8J3DJointPPC17J3DModelHierarchyP16J3DMaterialTableP13J3DShapeTable - addi r3, r24, 0x78 - addi r4, r24, 0x44 - addi r5, r24, 0x88 - bl initShapeNodes__13J3DShapeTableFP14J3DDrawMtxDataP13J3DVertexData - lwz r3, 4(r25) - addi r3, r3, 0x78 - bl sortVcdVatCmd__13J3DShapeTableFv - lwz r3, 4(r25) - addi r3, r3, 0x10 - bl findImportantMtxIndex__12J3DJointTreeFv - mr r3, r25 - lwz r12, 0(r25) - lwz r12, 0x24(r12) - mtctr r12 - bctrl - lwz r3, 4(r25) - bl indexToPtr__12J3DModelDataFv - lwz r3, 4(r25) - lmw r24, 0x10(r1) - lwz r0, 0x34(r1) - mtlr r0 - addi r1, r1, 0x30 - blr - */ } /** @@ -444,125 +216,29 @@ void J3DModelLoader::setupBBoardInfo() u16 id = material->mShape->mId; u16* initDataIndexToIDMap = JSUConvertOffsetToPtr(mShapeBlock, mShapeBlock->mRemapTableOffset); J3DShapeInitData* initData = JSUConvertOffsetToPtr(mShapeBlock, mShapeBlock->mShapeDataOffset); + J3DJoint* joint; switch (initData[initDataIndexToIDMap[id]].mShapeMtxType) { case J3DShapeMtx_Base: - mModelData->mJointTree.mJoints[i]->mKind &= 0x0F; + joint = mModelData->getJointNodePointer(i); + joint->resetMtxType(); break; case J3DShapeMtx_BBoard: - mModelData->mJointTree.mJoints[i]->mKind = mModelData->mJointTree.mJoints[i]->mKind & 0x0F | 0x10; - mModelData->mBillboardFlag = 1; + joint = mModelData->getJointNodePointer(i); + joint->setMtxType(1); + mModelData->mBillboardFlag = 1; break; case J3DShapeMtx_Y_BBoard: - mModelData->mJointTree.mJoints[i]->mKind = mModelData->mJointTree.mJoints[i]->mKind & 0x0F | 0x20; - mModelData->mBillboardFlag = 1; + joint = mModelData->getJointNodePointer(i); + joint->setMtxType(2); + mModelData->mBillboardFlag = 1; break; case J3DShapeMtx_Multi: - mModelData->mJointTree.mJoints[i]->mKind = mModelData->mJointTree.mJoints[i]->mKind & 0x0F; + joint = mModelData->getJointNodePointer(i); + joint->resetMtxType(); break; } } } - /* - stwu r1, -0x20(r1) - mflr r0 - stw r0, 0x24(r1) - stmw r27, 0xc(r1) - mr r29, r3 - li r30, 0 - b lbl_80070380 - -lbl_80070278: - lwz r3, 0x28(r4) - rlwinm r31, r30, 2, 0xe, 0x1d - lwzx r3, r3, r31 - lwz r4, 0x58(r3) - cmplwi r4, 0 - beq lbl_8007037C - lwz r5, 8(r4) - lwz r3, 0xc(r29) - lhz r27, 8(r5) - lwz r4, 0x10(r3) - bl "JSUConvertOffsetToPtr__FPCvUl" - lwz r5, 0xc(r29) - mr r28, r3 - lwz r4, 0xc(r5) - mr r3, r5 - bl "JSUConvertOffsetToPtr<16J3DShapeInitData>__FPCvUl" - rlwinm r0, r27, 1, 0xf, 0x1e - lhzx r0, r28, r0 - mulli r0, r0, 0x28 - lbzx r0, r3, r0 - cmpwi r0, 2 - beq lbl_80070338 - bge lbl_800702E4 - cmpwi r0, 0 - beq lbl_800702F0 - bge lbl_8007030C - b lbl_8007037C - -lbl_800702E4: - cmpwi r0, 4 - bge lbl_8007037C - b lbl_80070364 - -lbl_800702F0: - lwz r3, 4(r29) - lwz r3, 0x28(r3) - lwzx r3, r3, r31 - lbz r0, 0x16(r3) - clrlwi r0, r0, 0x1c - stb r0, 0x16(r3) - b lbl_8007037C - -lbl_8007030C: - lwz r3, 4(r29) - li r0, 1 - lwz r3, 0x28(r3) - lwzx r4, r3, r31 - lbz r3, 0x16(r4) - rlwinm r3, r3, 0, 0x1c, 0x17 - ori r3, r3, 0x10 - stb r3, 0x16(r4) - lwz r3, 4(r29) - sth r0, 0xe(r3) - b lbl_8007037C - -lbl_80070338: - lwz r3, 4(r29) - li r0, 1 - lwz r3, 0x28(r3) - lwzx r4, r3, r31 - lbz r3, 0x16(r4) - rlwinm r3, r3, 0, 0x1c, 0x17 - ori r3, r3, 0x20 - stb r3, 0x16(r4) - lwz r3, 4(r29) - sth r0, 0xe(r3) - b lbl_8007037C - -lbl_80070364: - lwz r3, 4(r29) - lwz r3, 0x28(r3) - lwzx r3, r3, r31 - lbz r0, 0x16(r3) - clrlwi r0, r0, 0x1c - stb r0, 0x16(r3) - -lbl_8007037C: - addi r30, r30, 1 - -lbl_80070380: - lwz r4, 4(r29) - clrlwi r0, r30, 0x10 - lhz r3, 0x2c(r4) - cmplw r0, r3 - blt lbl_80070278 - lmw r27, 0xc(r1) - lwz r0, 0x24(r1) - mtlr r0 - addi r1, r1, 0x20 - blr - */ } /** @@ -591,6 +267,20 @@ void J3DModelLoader::readInformation(const J3DModelInfoBlock* block, u32 flags) mModelData->mJointTree.mHierarchy = JSUConvertOffsetToPtr(block, block->mHierarchyDataOffset); } +/** + * @note Address: N/A + * @note Size: 0x2C + */ +GXCompType getFmtType(GXVtxAttrFmtList* fmtList, GXAttr i_attr) +{ + for (; fmtList->mAttr != GX_VA_NULL; fmtList++) { + if (fmtList->mAttr == i_attr) { + return fmtList->mType; + } + } + return GX_F32; +} + /** * @note Address: 0x8007056C * @note Size: 0x238 @@ -598,201 +288,59 @@ void J3DModelLoader::readInformation(const J3DModelInfoBlock* block, u32 flags) */ void J3DModelLoader::readVertex(const J3DVertexBlock* block) { - J3DModelData* model = mModelData; - model->getVertexData()->mVtxAttrFmtList = JSUConvertOffsetToPtr(block, block->mVertexFormatOffset); - model->getVertexData()->mVtxPos = JSUConvertOffsetToPtr(block, block->mPositionDataOffset); - model->getVertexData()->mVtxNorm = JSUConvertOffsetToPtr(block, block->mNormalDataOffset); - model->getVertexData()->mVtxNBT = JSUConvertOffsetToPtr(block, block->mNBTDataOffset); + J3DModelData* model = mModelData; + J3DVertexData* vertData = model->getVertexData(); + vertData->mVtxAttrFmtList = JSUConvertOffsetToPtr(block, block->mVertexFormatOffset); + vertData->mVtxPos = JSUConvertOffsetToPtr(block, block->mPositionDataOffset); + vertData->mVtxNorm = JSUConvertOffsetToPtr(block, block->mNormalDataOffset); + vertData->mVtxNBT = JSUConvertOffsetToPtr(block, block->mNBTDataOffset); for (int i = 0; i < 2; i++) { - model->getVertexData()->mVtxColor[i] = JSUConvertOffsetToPtr(block, block->mColorDataOffset[i]); + vertData->mVtxColor[i] = (GXColor*)JSUConvertOffsetToPtr(block, block->mColorDataOffset[i]); } for (int i = 0; i < 8; i++) { - model->getVertexData()->mVtxTexCoord[i] = JSUConvertOffsetToPtr(block, block->mTexCoordDataOffset[i]); + vertData->mVtxTexCoord[i] = JSUConvertOffsetToPtr(block, block->mTexCoordDataOffset[i]); } - /* - stwu r1, -0x20(r1) - mflr r0 - stw r0, 0x24(r1) - stmw r27, 0xc(r1) - mr r30, r4 - lwz r4, 8(r4) - lwz r5, 4(r3) - mr r3, r30 - addi r31, r5, 0x88 - bl "JSUConvertOffsetToPtr<17_GXVtxAttrFmtList>__FPCvPCv" - stw r3, 0x14(r31) - mr r3, r30 - lwz r4, 0xc(r30) - bl "JSUConvertOffsetToPtr__FPCvPCv" - stw r3, 0x18(r31) - mr r3, r30 - lwz r4, 0x10(r30) - bl "JSUConvertOffsetToPtr__FPCvPCv" - stw r3, 0x1c(r31) - mr r3, r30 - lwz r4, 0x14(r30) - bl "JSUConvertOffsetToPtr__FPCvPCv" - stw r3, 0x20(r31) - mr r29, r30 - mr r28, r31 - li r27, 0 -lbl_800705D4: - lwz r4, 0x18(r29) - mr r3, r30 - bl "JSUConvertOffsetToPtr__FPCvPCv" - addi r27, r27, 1 - stw r3, 0x24(r28) - cmpwi r27, 2 - addi r29, r29, 4 - addi r28, r28, 4 - blt lbl_800705D4 - mr r28, r30 - mr r29, r31 - li r27, 0 + _GXCompType nrm_type = getFmtType(vertData->mVtxAttrFmtList, GX_VA_NRM); + u32 nrm_size = nrm_type == GX_F32 ? 12 : 6; -lbl_80070604: - lwz r4, 0x20(r28) - mr r3, r30 - bl "JSUConvertOffsetToPtr__FPCvPCv" - addi r27, r27, 1 - stw r3, 0x2c(r29) - cmpwi r27, 8 - addi r28, r28, 4 - addi r29, r29, 4 - blt lbl_80070604 - lwz r3, 0x14(r31) - b lbl_80070644 + void* nrm_end = nullptr; + if (vertData->mVtxNBT != nullptr) { + nrm_end = vertData->mVtxNBT; + } else if (vertData->mVtxColor[0] != nullptr) { + nrm_end = vertData->mVtxColor[0]; + } else if (vertData->mVtxTexCoord[0] != nullptr) { + nrm_end = vertData->mVtxTexCoord[0]; + } -lbl_80070630: - cmpwi r0, 0xa - bne lbl_80070640 - lwz r0, 8(r3) - b lbl_80070654 + if (vertData->mVtxNorm == nullptr) { + vertData->mNormNum = 0; + } else if (nrm_end != nullptr) { + vertData->mNormNum = ((u32)nrm_end - (u32)vertData->mVtxNorm) / nrm_size + 1; + } else { + vertData->mNormNum = (block->mSize - (u32)block->mNormalDataOffset) / nrm_size + 1; + } -lbl_80070640: - addi r3, r3, 0x10 + void* color0_end = nullptr; + if (vertData->mVtxColor[1] != nullptr) { + color0_end = vertData->mVtxColor[1]; + } else if (vertData->mVtxTexCoord[0] != nullptr) { + color0_end = vertData->mVtxTexCoord[0]; + } -lbl_80070644: - lwz r0, 0(r3) - cmpwi r0, 0xff - bne lbl_80070630 - li r0, 4 + if (vertData->mVtxColor[0] == nullptr) { + vertData->mColorNum = 0; + } else if (color0_end != nullptr) { + vertData->mColorNum = ((u32)color0_end - (u32)vertData->mVtxColor[0]) / 4 + 1; + } else { + vertData->mColorNum = (block->mSize - (u32)block->mColorDataOffset[0]) / 4 + 1; + } -lbl_80070654: - cmpwi r0, 4 - li r4, 6 - bne lbl_80070664 - li r4, 0xc - -lbl_80070664: - lwz r0, 0x20(r31) - li r3, 0 - cmplwi r0, 0 - beq lbl_8007067C - mr r3, r0 - b lbl_800706A0 - -lbl_8007067C: - lwz r0, 0x24(r31) - cmplwi r0, 0 - beq lbl_80070690 - mr r3, r0 - b lbl_800706A0 - -lbl_80070690: - lwz r0, 0x2c(r31) - cmplwi r0, 0 - beq lbl_800706A0 - mr r3, r0 - -lbl_800706A0: - lwz r0, 0x1c(r31) - cmplwi r0, 0 - bne lbl_800706B8 - li r0, 0 - stw r0, 4(r31) - b lbl_800706EC - -lbl_800706B8: - cmplwi r3, 0 - beq lbl_800706D4 - subf r0, r0, r3 - divwu r3, r0, r4 - addi r0, r3, 1 - stw r0, 4(r31) - b lbl_800706EC - -lbl_800706D4: - lwz r3, 0x10(r30) - lwz r0, 4(r30) - subf r0, r3, r0 - divwu r3, r0, r4 - addi r0, r3, 1 - stw r0, 4(r31) - -lbl_800706EC: - lwz r0, 0x28(r31) - li r3, 0 - cmplwi r0, 0 - beq lbl_80070704 - mr r3, r0 - b lbl_80070714 - -lbl_80070704: - lwz r0, 0x2c(r31) - cmplwi r0, 0 - beq lbl_80070714 - mr r3, r0 - -lbl_80070714: - lwz r0, 0x24(r31) - cmplwi r0, 0 - bne lbl_8007072C - li r0, 0 - stw r0, 8(r31) - b lbl_80070760 - -lbl_8007072C: - cmplwi r3, 0 - beq lbl_80070748 - subf r0, r0, r3 - srwi r3, r0, 2 - addi r0, r3, 1 - stw r0, 8(r31) - b lbl_80070760 - -lbl_80070748: - lwz r3, 0x18(r30) - lwz r0, 4(r30) - subf r0, r3, r0 - srwi r3, r0, 2 - addi r0, r3, 1 - stw r0, 8(r31) - -lbl_80070760: - lwz r0, 0x2c(r31) - cmplwi r0, 0 - bne lbl_80070778 - li r0, 0 - stw r0, 0xc(r31) - b lbl_80070790 - -lbl_80070778: - lwz r3, 0x20(r30) - lwz r0, 4(r30) - subf r0, r3, r0 - srwi r3, r0, 3 - addi r0, r3, 1 - stw r0, 0xc(r31) - -lbl_80070790: - lmw r27, 0xc(r1) - lwz r0, 0x24(r1) - mtlr r0 - addi r1, r1, 0x20 - blr - */ + if (vertData->mVtxTexCoord[0] == nullptr) { + vertData->mTexCoordNum = 0; + } else { + vertData->mTexCoordNum = (block->mSize - (u32)block->mTexCoordDataOffset[0]) / 8 + 1; + } } /** @@ -814,550 +362,126 @@ void J3DModelLoader::readEnvelop(const J3DEnvelopeBlock* block) */ void J3DModelLoader::readDraw(const J3DDrawBlock* block) { - J3DModelData* model = mModelData; - model->getJointTree().mMtxData.mCount = block->mCount - model->getJointTree().mEnvelopeCnt; + J3DJointTree& tree = mModelData->getJointTree(); + tree.mMtxData.mCount = block->mCount - tree.mEnvelopeCnt; - model->getJointTree().mMtxData.mDrawMtxFlag = JSUConvertOffsetToPtr(block, block->mMatrixTypeArrayOffset); - model->getJointTree().mMtxData.mDrawMtxIdx = JSUConvertOffsetToPtr(block, block->mDataArrayOffset); + tree.mMtxData.mDrawMtxFlag = JSUConvertOffsetToPtr(block, block->mMatrixTypeArrayOffset); + tree.mMtxData.mDrawMtxIdx = JSUConvertOffsetToPtr(block, block->mDataArrayOffset); u16 i; - for (u16 i = 0; model->getJointTree().mMtxData.mCount > i; i++) { - if (model->getJointTree().mMtxData.mDrawMtxFlag[i] == 1) { + for (i = 0; i < tree.mMtxData.mCount; i++) { + if (tree.mMtxData.mDrawMtxFlag[i] == 1) { break; } } - model->getJointTree().mMtxData.mDrawMtxCount = i; + tree.mMtxData.mDrawMtxCount = i; - mModelData->getJointTree().mEnvelopeImptIdx = new u16[model->getJointTree().mMtxData.mCount]; - /* - stwu r1, -0x20(r1) - mflr r0 - stw r0, 0x24(r1) - lhz r0, 8(r4) - stw r31, 0x1c(r1) - stw r30, 0x18(r1) - mr r30, r4 - lwz r4, 0xc(r4) - stw r29, 0x14(r1) - mr r29, r3 - lwz r31, 4(r3) - mr r3, r30 - lhz r5, 0x2e(r31) - subf r0, r5, r0 - sth r0, 0x44(r31) - bl "JSUConvertOffsetToPtr__FPCvPCv" - stw r3, 0x48(r31) - mr r3, r30 - lwz r4, 0x10(r30) - bl "JSUConvertOffsetToPtr__FPCvPCv" - stw r3, 0x4c(r31) - li r5, 0 - lhz r4, 0x44(r31) - b lbl_800708B4 - -lbl_8007089C: - lwz r3, 0x48(r31) - clrlwi r0, r5, 0x10 - lbzx r0, r3, r0 - cmplwi r0, 1 - beq lbl_800708C0 - addi r5, r5, 1 - -lbl_800708B4: - clrlwi r0, r5, 0x10 - cmplw r0, r4 - blt lbl_8007089C - -lbl_800708C0: - sth r5, 0x46(r31) - lhz r0, 0x44(r31) - lwz r31, 4(r29) - slwi r3, r0, 1 - bl __nwa__FUl - stw r3, 0x40(r31) - lwz r0, 0x24(r1) - lwz r31, 0x1c(r1) - lwz r30, 0x18(r1) - lwz r29, 0x14(r1) - mtlr r0 - addi r1, r1, 0x20 - blr - */ + mModelData->getJointTree().mEnvelopeImptIdx = new u16[tree.mMtxData.mCount]; } /** * @note Address: 0x800708F4 * @note Size: 0xEC */ -void J3DModelLoader::readJoint(const J3DJointBlock*) +void J3DModelLoader::readJoint(const J3DJointBlock* block) { - /* - stwu r1, -0x20(r1) - mflr r0 - stw r0, 0x24(r1) - stw r31, 0x1c(r1) - mr r31, r3 - addi r3, r1, 8 - stw r30, 0x18(r1) - stw r29, 0x14(r1) - mr r29, r4 - bl __ct__15J3DJointFactoryFRC13J3DJointBlock - lwz r0, 0x14(r29) - lhz r4, 8(r29) - lwz r3, 4(r31) - cmplwi r0, 0 - sth r4, 0x2c(r3) - beq lbl_8007096C - li r3, 0x10 - bl __nw__FUl - or. r30, r3, r3 - beq lbl_80070960 - lwz r4, 0x14(r29) - mr r3, r29 - bl "JSUConvertOffsetToPtr<7ResNTAB>__FPCvPCv" - mr r4, r3 - mr r3, r30 - bl __ct__10JUTNameTabFPC7ResNTAB - mr r30, r3 + J3DJointFactory factory(*block); + mModelData->getJointTree().mJointCnt = block->mCount; + if (block->mNameTableOffset != nullptr) { + mModelData->getJointTree().mNametab = new JUTNameTab(JSUConvertOffsetToPtr(block, (const void*)block->mNameTableOffset)); + } else { + mModelData->getJointTree().mNametab = nullptr; + } + mModelData->getJointTree().mJoints = new J3DJoint*[mModelData->getJointTree().mJointCnt]; -lbl_80070960: - lwz r3, 4(r31) - stw r30, 0x54(r3) - b lbl_80070978 - -lbl_8007096C: - lwz r3, 4(r31) - li r0, 0 - stw r0, 0x54(r3) - -lbl_80070978: - lwz r30, 4(r31) - lhz r0, 0x2c(r30) - slwi r3, r0, 2 - bl __nwa__FUl - stw r3, 0x28(r30) - li r29, 0 - b lbl_800709B0 - -lbl_80070994: - addi r3, r1, 8 - clrlwi r4, r29, 0x10 - bl create__15J3DJointFactoryFi - lwz r4, 0x28(r30) - rlwinm r0, r29, 2, 0xe, 0x1d - addi r29, r29, 1 - stwx r3, r4, r0 - -lbl_800709B0: - lwz r30, 4(r31) - clrlwi r0, r29, 0x10 - lhz r3, 0x2c(r30) - cmplw r0, r3 - blt lbl_80070994 - lwz r0, 0x24(r1) - lwz r31, 0x1c(r1) - lwz r30, 0x18(r1) - lwz r29, 0x14(r1) - mtlr r0 - addi r1, r1, 0x20 - blr - */ + for (u16 i = 0; i < mModelData->getJointNum(); i++) { + mModelData->getJointTree().mJoints[i] = factory.create(i); + } } /** * @note Address: 0x800709E0 * @note Size: 0x274 */ -void J3DModelLoader_v26::readMaterial(const J3DMaterialBlock*, u32) +void J3DModelLoader_v26::readMaterial(const J3DMaterialBlock* block, u32 flags) { - /* - stwu r1, -0xb0(r1) - mflr r0 - stw r0, 0xb4(r1) - stmw r27, 0x9c(r1) - mr r29, r3 - mr r27, r4 - mr r30, r5 - addi r3, r1, 8 - bl __ct__18J3DMaterialFactoryFRC16J3DMaterialBlock - lhz r0, 8(r27) - addi r3, r1, 8 - lwz r4, 8(r29) - sth r0, 4(r4) - bl countUniqueMaterials__18J3DMaterialFactoryFv - lwz r0, 0x14(r27) - lwz r4, 8(r29) - cmplwi r0, 0 - sth r3, 6(r4) - beq lbl_80070A64 - li r3, 0x10 - bl __nw__FUl - or. r28, r3, r3 - beq lbl_80070A58 - lwz r4, 0x14(r27) - mr r3, r27 - bl "JSUConvertOffsetToPtr<7ResNTAB>__FPCvPCv" - mr r4, r3 - mr r3, r28 - bl __ct__10JUTNameTabFPC7ResNTAB - mr r28, r3 + J3DMaterialFactory factory(*block); + mMaterialTable->mMaterialNum = block->mNumMaterials; + mMaterialTable->mUniqueMaterialNum = factory.countUniqueMaterials(); + if (block->mStringTableOffset != nullptr) { + mMaterialTable->mMaterialNames = new JUTNameTab(JSUConvertOffsetToPtr(block, block->mStringTableOffset)); + } else { + mMaterialTable->mMaterialNames = nullptr; + } -lbl_80070A58: - lwz r3, 8(r29) - stw r28, 0xc(r3) - b lbl_80070A70 - -lbl_80070A64: - lwz r3, 8(r29) - li r0, 0 - stw r0, 0xc(r3) - -lbl_80070A70: - lwz r3, 8(r29) - lhz r0, 4(r3) - slwi r3, r0, 2 - bl __nwa__FUl - lwz r4, 8(r29) - rlwinm. r31, r30, 0, 0xa, 0xa - stw r3, 8(r4) - beq lbl_80070AD0 - lwz r3, 8(r29) - li r4, 0x20 - lhz r28, 6(r3) - mulli r3, r28, 0x4c - addi r3, r3, 0x10 - bl __nwa__FUli - lis r4, __ct__11J3DMaterialFv@ha - lis r5, __dt__11J3DMaterialFv@ha - addi r4, r4, __ct__11J3DMaterialFv@l - mr r7, r28 - addi r5, r5, __dt__11J3DMaterialFv@l - li r6, 0x4c - bl __construct_new_array - lwz r4, 8(r29) - stw r3, 0x10(r4) - b lbl_80070ADC - -lbl_80070AD0: - lwz r3, 8(r29) - li r0, 0 - stw r0, 0x10(r3) - -lbl_80070ADC: - cmplwi r31, 0 - beq lbl_80070B38 - li r27, 0 - b lbl_80070B24 - -lbl_80070AEC: - clrlwi r6, r27, 0x10 - lwz r0, 0x10(r4) - mulli r28, r6, 0x4c - mr r7, r30 - addi r3, r1, 8 - li r5, 0 - add r4, r0, r28 - bl -create__18J3DMaterialFactoryCFP11J3DMaterialQ218J3DMaterialFactory12MaterialTypeiUl - lwz r3, 8(r29) - addi r27, r27, 1 - lwz r0, 0x10(r3) - add r3, r0, r28 - srwi r0, r3, 4 - stw r0, 0x20(r3) - -lbl_80070B24: - lwz r4, 8(r29) - clrlwi r3, r27, 0x10 - lhz r0, 6(r4) - cmplw r3, r0 - blt lbl_80070AEC - -lbl_80070B38: - li r27, 0 - b lbl_80070B6C - -lbl_80070B40: - mr r7, r30 - addi r3, r1, 8 - clrlwi r6, r27, 0x10 - li r4, 0 - li r5, 0 - bl -create__18J3DMaterialFactoryCFP11J3DMaterialQ218J3DMaterialFactory12MaterialTypeiUl - lwz r4, 8(r29) - rlwinm r0, r27, 2, 0xe, 0x1d - addi r27, r27, 1 - lwz r4, 8(r4) - stwx r3, r4, r0 - -lbl_80070B6C: - lwz r3, 8(r29) - clrlwi r4, r27, 0x10 - lhz r0, 4(r3) - cmplw r4, r0 - blt lbl_80070B40 - cmplwi r31, 0 - beq lbl_80070BFC - li r8, 0 - b lbl_80070BE4 - -lbl_80070B90: - lwz r3, 0x10(r1) - rlwinm r6, r8, 1, 0xf, 0x1e - rlwinm r7, r8, 2, 0xe, 0x1d - lwz r4, 0x10(r5) - lhzx r0, r3, r6 - addi r8, r8, 1 - lwz r3, 8(r5) - mulli r0, r0, 0x4c - lwzx r3, r3, r7 - add r0, r4, r0 - srwi r0, r0, 4 - stw r0, 0x20(r3) - lwz r3, 0x10(r1) - lwz r4, 8(r29) - lhzx r0, r3, r6 - lwz r3, 8(r4) - mulli r0, r0, 0x4c - lwz r4, 0x10(r4) - lwzx r3, r3, r7 - add r0, r4, r0 - stw r0, 0x38(r3) - -lbl_80070BE4: - lwz r5, 8(r29) - clrlwi r3, r8, 0x10 - lhz r0, 4(r5) - cmplw r3, r0 - blt lbl_80070B90 - b lbl_80070C40 - -lbl_80070BFC: - li r7, 0 - b lbl_80070C2C - -lbl_80070C04: - lwz r4, 0x10(r1) - rlwinm r3, r7, 1, 0xf, 0x1e - lwz r6, 8(r5) - rlwinm r0, r7, 2, 0xe, 0x1d - lhzx r4, r4, r3 - addi r7, r7, 1 - srwi r5, r6, 4 - lwzx r3, r6, r0 - add r0, r5, r4 - stw r0, 0x20(r3) - -lbl_80070C2C: - lwz r5, 8(r29) - clrlwi r3, r7, 0x10 - lhz r0, 4(r5) - cmplw r3, r0 - blt lbl_80070C04 - -lbl_80070C40: - lmw r27, 0x9c(r1) - lwz r0, 0xb4(r1) - mtlr r0 - addi r1, r1, 0xb0 - blr - */ + mMaterialTable->mMaterials = new J3DMaterial*[mMaterialTable->mMaterialNum]; + if (flags & 0x200000) { + mMaterialTable->mUniqueMaterials = new (0x20) J3DMaterial[mMaterialTable->mUniqueMaterialNum]; + } else { + mMaterialTable->mUniqueMaterials = nullptr; + } + if (flags & 0x200000) { + for (u16 i = 0; i < mMaterialTable->mUniqueMaterialNum; i++) { + factory.create(&mMaterialTable->mUniqueMaterials[i], J3DMaterialFactory::NORMAL, i, flags); + mMaterialTable->mUniqueMaterials[i].mDiffFlag = (u32)&mMaterialTable->mUniqueMaterials[i] >> 4; + } + } + for (u16 i = 0; i < mMaterialTable->mMaterialNum; i++) { + mMaterialTable->mMaterials[i] = factory.create(nullptr, J3DMaterialFactory::NORMAL, i, flags); + } + if (flags & 0x200000) { + for (u16 i = 0; i < mMaterialTable->mMaterialNum; i++) { + mMaterialTable->mMaterials[i]->mDiffFlag = (u32)&mMaterialTable->mUniqueMaterials[factory.getMaterialID(i)] >> 4; + mMaterialTable->mMaterials[i]->mOrigMaterial = &mMaterialTable->mUniqueMaterials[factory.getMaterialID(i)]; + } + } else { + for (u16 i = 0; i < mMaterialTable->mMaterialNum; i++) { + mMaterialTable->mMaterials[i]->mDiffFlag = ((u32)mMaterialTable->mMaterials >> 4) + factory.getMaterialID(i); + } + } } /** * @note Address: 0x80070CA8 * @note Size: 0x25C */ -void J3DModelLoader_v21::readMaterial_v21(const J3DMaterialBlock_v21*, u32) +void J3DModelLoader_v21::readMaterial_v21(const J3DMaterialBlock_v21* block, u32 flags) { - /* - .loc_0x0: - stwu r1, -0x90(r1) - mflr r0 - stw r0, 0x94(r1) - stmw r27, 0x7C(r1) - mr r29, r3 - mr r27, r4 - mr r30, r5 - addi r3, r1, 0x8 - bl 0x13D38 - lhz r0, 0x8(r27) - addi r3, r1, 0x8 - lwz r4, 0x8(r29) - sth r0, 0x4(r4) - bl 0x13F04 - lwz r0, 0x14(r27) - lwz r4, 0x8(r29) - cmplwi r0, 0 - sth r3, 0x6(r4) - beq- .loc_0x84 - li r3, 0x10 - bl -0x4CE54 - mr. r28, r3 - beq- .loc_0x78 - lwz r4, 0x14(r27) - mr r3, r27 - bl -0x278A0 - mr r4, r3 - mr r3, r28 - bl -0x4200C - mr r28, r3 + J3DMaterialFactory_v21 factory(*block); + mMaterialTable->mMaterialNum = block->mNumMaterials; + mMaterialTable->mUniqueMaterialNum = factory.countUniqueMaterials(); + if (block->mIndTexInfoOffset != nullptr) { + mMaterialTable->mMaterialNames = new JUTNameTab(JSUConvertOffsetToPtr(block, block->mIndTexInfoOffset)); + } else { + mMaterialTable->mMaterialNames = nullptr; + } - .loc_0x78: - lwz r3, 0x8(r29) - stw r28, 0xC(r3) - b .loc_0x90 - - .loc_0x84: - lwz r3, 0x8(r29) - li r0, 0 - stw r0, 0xC(r3) - - .loc_0x90: - lwz r3, 0x8(r29) - lhz r0, 0x4(r3) - rlwinm r3,r0,2,0,29 - bl -0x4CD98 - lwz r4, 0x8(r29) - rlwinm. r31,r30,0,10,10 - stw r3, 0x8(r4) - beq- .loc_0xF0 - lwz r3, 0x8(r29) - li r4, 0x20 - lhz r28, 0x6(r3) - mulli r3, r28, 0x4C - addi r3, r3, 0x10 - bl -0x4CD74 - lis r4, 0x8007 - lis r5, 0x8007 - addi r4, r4, 0xC54 - mr r7, r28 - subi r5, r5, 0x256C - li r6, 0x4C - bl 0x50C68 - lwz r4, 0x8(r29) - stw r3, 0x10(r4) - b .loc_0xFC - - .loc_0xF0: - lwz r3, 0x8(r29) - li r0, 0 - stw r0, 0x10(r3) - - .loc_0xFC: - cmplwi r31, 0 - beq- .loc_0x154 - li r27, 0 - b .loc_0x140 - - .loc_0x10C: - rlwinm r5,r27,0,16,31 - lwz r0, 0x10(r4) - mulli r28, r5, 0x4C - mr r6, r30 - addi r3, r1, 0x8 - add r4, r0, r28 - bl 0x13E60 - lwz r3, 0x8(r29) - addi r27, r27, 0x1 - lwz r0, 0x10(r3) - add r3, r0, r28 - rlwinm r0,r3,28,4,31 - stw r0, 0x20(r3) - - .loc_0x140: - lwz r4, 0x8(r29) - rlwinm r3,r27,0,16,31 - lhz r0, 0x6(r4) - cmplw r3, r0 - blt+ .loc_0x10C - - .loc_0x154: - li r27, 0 - b .loc_0x184 - - .loc_0x15C: - mr r6, r30 - addi r3, r1, 0x8 - rlwinm r5,r27,0,16,31 - li r4, 0 - bl 0x13E18 - lwz r4, 0x8(r29) - rlwinm r0,r27,2,14,29 - addi r27, r27, 0x1 - lwz r4, 0x8(r4) - stwx r3, r4, r0 - - .loc_0x184: - lwz r3, 0x8(r29) - rlwinm r4,r27,0,16,31 - lhz r0, 0x4(r3) - cmplw r4, r0 - blt+ .loc_0x15C - cmplwi r31, 0 - beq- .loc_0x214 - li r8, 0 - b .loc_0x1FC - - .loc_0x1A8: - lwz r3, 0x10(r1) - rlwinm r6,r8,1,15,30 - rlwinm r7,r8,2,14,29 - lwz r4, 0x10(r5) - lhzx r0, r3, r6 - addi r8, r8, 0x1 - lwz r3, 0x8(r5) - mulli r0, r0, 0x4C - lwzx r3, r3, r7 - add r0, r4, r0 - rlwinm r0,r0,28,4,31 - stw r0, 0x20(r3) - lwz r3, 0x10(r1) - lwz r4, 0x8(r29) - lhzx r0, r3, r6 - lwz r3, 0x8(r4) - mulli r0, r0, 0x4C - lwz r4, 0x10(r4) - lwzx r3, r3, r7 - add r0, r4, r0 - stw r0, 0x38(r3) - - .loc_0x1FC: - lwz r5, 0x8(r29) - rlwinm r3,r8,0,16,31 - lhz r0, 0x4(r5) - cmplw r3, r0 - blt+ .loc_0x1A8 - b .loc_0x248 - - .loc_0x214: - li r6, 0 - lis r4, 0xC000 - b .loc_0x234 - - .loc_0x220: - lwz r3, 0x8(r5) - rlwinm r0,r6,2,14,29 - addi r6, r6, 0x1 - lwzx r3, r3, r0 - stw r4, 0x20(r3) - - .loc_0x234: - lwz r5, 0x8(r29) - rlwinm r3,r6,0,16,31 - lhz r0, 0x4(r5) - cmplw r3, r0 - blt+ .loc_0x220 - - .loc_0x248: - lmw r27, 0x7C(r1) - lwz r0, 0x94(r1) - mtlr r0 - addi r1, r1, 0x90 - blr - */ + mMaterialTable->mMaterials = new J3DMaterial*[mMaterialTable->mMaterialNum]; + if (flags & 0x200000) { + mMaterialTable->mUniqueMaterials = new (0x20) J3DMaterial[mMaterialTable->mUniqueMaterialNum]; + } else { + mMaterialTable->mUniqueMaterials = nullptr; + } + if (flags & 0x200000) { + for (u16 i = 0; i < mMaterialTable->mUniqueMaterialNum; i++) { + factory.create(&mMaterialTable->mUniqueMaterials[i], i, flags); + mMaterialTable->mUniqueMaterials[i].mDiffFlag = (u32)&mMaterialTable->mUniqueMaterials[i] >> 4; + } + } + for (u16 i = 0; i < mMaterialTable->mMaterialNum; i++) { + mMaterialTable->mMaterials[i] = factory.create(nullptr, i, flags); + } + if (flags & 0x200000) { + for (u16 i = 0; i < mMaterialTable->mMaterialNum; i++) { + mMaterialTable->mMaterials[i]->mDiffFlag = (u32)&mMaterialTable->mUniqueMaterials[factory.getMaterialID(i)] >> 4; + mMaterialTable->mMaterials[i]->mOrigMaterial = &mMaterialTable->mUniqueMaterials[factory.getMaterialID(i)]; + } + } else { + for (u16 i = 0; i < mMaterialTable->mMaterialNum; i++) { + mMaterialTable->mMaterials[i]->mDiffFlag = 0xC0000000; + } + } } /** @@ -1373,104 +497,21 @@ void J3DModelLoader::readShape(const J3DShapeBlock* block, u32 flags) model->mShapeTable.mCount = block->mShapeNum; if (block->mNameTableOffset) { - model->mShapeTable.mNames = new JUTNameTab(JSUConvertOffsetToPtr(block, block->mNameTableOffset)); + model->mShapeTable.mNames = new JUTNameTab(JSUConvertOffsetToPtr(block, (const void*)block->mNameTableOffset)); } else { model->mShapeTable.mNames = nullptr; } - model->mShapeTable.mItems = new J3DShape*[model->getShapeNum()]; + model->mShapeTable.mItems = new J3DShape*[model->mShapeTable.mCount]; factory.allocVcdVatCmdBuffer(model->mShapeTable.mCount); - for (J3DModelHierarchy* hier = mModelData->mJointTree.mHierarchy; hier; hier++) { + J3DModelHierarchy const* hierarchy_entry = model->getHierarchy(); + GXVtxDescList* vtxDescList = nullptr; + for (J3DModelHierarchy* hier = mModelData->mJointTree.mHierarchy; hier->mType; hier++) { if (hier->mType == 0x12) { - model->mShapeTable.mItems[hier->mValue] = factory.create(hier->mValue, 0, nullptr); + model->mShapeTable.mItems[hier->mValue] = factory.create(hier->mValue, flags, vtxDescList); + vtxDescList = factory.getVtxDescList(hier->mValue); } } - - /* - stwu r1, -0x40(r1) - mflr r0 - stw r0, 0x44(r1) - stmw r27, 0x2c(r1) - mr r28, r4 - mr r27, r3 - mr r30, r5 - stw r28, 0xc(r3) - addi r3, r1, 8 - lwz r31, 4(r27) - bl __ct__15J3DShapeFactoryFRC13J3DShapeBlock - lwz r0, 0x14(r28) - lhz r3, 8(r28) - cmplwi r0, 0 - sth r3, 0x7c(r31) - beq lbl_80070F78 - li r3, 0x10 - bl __nw__FUl - or. r29, r3, r3 - beq lbl_80070F70 - lwz r4, 0x14(r28) - mr r3, r28 - bl "JSUConvertOffsetToPtr<7ResNTAB>__FPCvPCv" - mr r4, r3 - mr r3, r29 - bl __ct__10JUTNameTabFPC7ResNTAB - mr r29, r3 - -lbl_80070F70: - stw r29, 0x84(r31) - b lbl_80070F80 - -lbl_80070F78: - li r0, 0 - stw r0, 0x84(r31) - -lbl_80070F80: - lhz r0, 0x7c(r31) - slwi r3, r0, 2 - bl __nwa__FUl - stw r3, 0x80(r31) - addi r3, r1, 8 - lhz r4, 0x7c(r31) - bl allocVcdVatCmdBuffer__15J3DShapeFactoryFUl - lwz r3, 4(r27) - li r6, 0 - lwz r29, 0x14(r3) - b lbl_80071000 - -lbl_80070FAC: - cmplwi r0, 0x12 - bne lbl_80070FFC - lhz r4, 2(r29) - mr r5, r30 - addi r3, r1, 8 - bl create__15J3DShapeFactoryFiUlP14_GXVtxDescList - lhz r0, 2(r29) - lwz r4, 0x80(r31) - slwi r0, r0, 2 - stwx r3, r4, r0 - lhz r0, 2(r29) - lwz r3, 0xc(r1) - slwi r0, r0, 1 - lwz r4, 8(r1) - lhzx r0, r3, r0 - lwz r5, 0x10(r1) - mulli r3, r0, 0x28 - addi r0, r3, 4 - lhzx r0, r4, r0 - add r6, r5, r0 - -lbl_80070FFC: - addi r29, r29, 4 - -lbl_80071000: - lhz r0, 0(r29) - cmplwi r0, 0 - bne lbl_80070FAC - lmw r27, 0x2c(r1) - lwz r0, 0x44(r1) - mtlr r0 - addi r1, r1, 0x40 - blr - */ } /** @@ -1509,110 +550,8 @@ void J3DModelLoader_v26::readMaterialTable(const J3DMaterialBlock* block, u32 fl mMaterialTable->mMaterials[i] = factory.create(nullptr, J3DMaterialFactory::NORMAL, i, flags); } for (u16 i = 0; i < mMaterialTable->mMaterialNum; i++) { - J3DMaterial** materials = mMaterialTable->mMaterials; - materials[i]->mDiffFlag = (u32)(materials + factory.mMatRemapTable[i]); + mMaterialTable->mMaterials[i]->mDiffFlag = (u32)(mMaterialTable->mMaterials) + factory.getMaterialID(i); } - - /* - .loc_0x0: - stwu r1, -0xA0(r1) - mflr r0 - stw r0, 0xA4(r1) - stw r31, 0x9C(r1) - mr r31, r5 - stw r30, 0x98(r1) - mr r30, r3 - addi r3, r1, 0x8 - stw r29, 0x94(r1) - stw r28, 0x90(r1) - mr r28, r4 - bl -0x4D6C - lwz r0, 0x14(r28) - lhz r4, 0x8(r28) - lwz r3, 0x8(r30) - cmplwi r0, 0 - sth r4, 0x4(r3) - beq- .loc_0x80 - li r3, 0x10 - bl -0x4D28C - mr. r29, r3 - beq- .loc_0x74 - lwz r4, 0x14(r28) - mr r3, r28 - bl -0x27CD8 - mr r4, r3 - mr r3, r29 - bl -0x42444 - mr r29, r3 - - .loc_0x74: - lwz r3, 0x8(r30) - stw r29, 0xC(r3) - b .loc_0x8C - - .loc_0x80: - lwz r3, 0x8(r30) - li r0, 0 - stw r0, 0xC(r3) - - .loc_0x8C: - lwz r3, 0x8(r30) - lhz r0, 0x4(r3) - rlwinm r3,r0,2,0,29 - bl -0x4D1D0 - lwz r4, 0x8(r30) - li r29, 0 - stw r3, 0x8(r4) - b .loc_0xD8 - - .loc_0xAC: - mr r7, r31 - addi r3, r1, 0x8 - rlwinm r6,r29,0,16,31 - li r4, 0 - li r5, 0 - bl -0x4AE8 - lwz r4, 0x8(r30) - rlwinm r0,r29,2,14,29 - addi r29, r29, 0x1 - lwz r4, 0x8(r4) - stwx r3, r4, r0 - - .loc_0xD8: - lwz r3, 0x8(r30) - rlwinm r4,r29,0,16,31 - lhz r0, 0x4(r3) - cmplw r4, r0 - blt+ .loc_0xAC - li r6, 0 - b .loc_0x118 - - .loc_0xF4: - lwz r4, 0x10(r1) - rlwinm r3,r6,1,15,30 - lwz r5, 0x8(r5) - rlwinm r0,r6,2,14,29 - lhzx r4, r4, r3 - addi r6, r6, 0x1 - lwzx r3, r5, r0 - add r0, r5, r4 - stw r0, 0x20(r3) - - .loc_0x118: - lwz r5, 0x8(r30) - rlwinm r3,r6,0,16,31 - lhz r0, 0x4(r5) - cmplw r3, r0 - blt+ .loc_0xF4 - lwz r0, 0xA4(r1) - lwz r31, 0x9C(r1) - lwz r30, 0x98(r1) - lwz r29, 0x94(r1) - lwz r28, 0x90(r1) - mtlr r0 - addi r1, r1, 0xA0 - blr - */ } /** @@ -1635,109 +574,8 @@ void J3DModelLoader_v21::readMaterialTable_v21(const J3DMaterialBlock_v21* block } for (u16 i = 0; i < mMaterialTable->mMaterialNum; i++) { - J3DMaterial** materials = mMaterialTable->mMaterials; - materials[i]->mDiffFlag = (u32)(materials + factory.mMatRemapTable[i]); + mMaterialTable->mMaterials[i]->mDiffFlag = ((u32)(mMaterialTable->mMaterials) >> 4) + factory.getMaterialID(i); } - /* - .loc_0x0: - stwu r1, -0x90(r1) - mflr r0 - stw r0, 0x94(r1) - stw r31, 0x8C(r1) - mr r31, r5 - stw r30, 0x88(r1) - mr r30, r3 - addi r3, r1, 0x8 - stw r29, 0x84(r1) - stw r28, 0x80(r1) - mr r28, r4 - bl 0x137A4 - lwz r0, 0x14(r28) - lhz r4, 0x8(r28) - lwz r3, 0x8(r30) - cmplwi r0, 0 - sth r4, 0x4(r3) - beq- .loc_0x80 - li r3, 0x10 - bl -0x4D3D8 - mr. r29, r3 - beq- .loc_0x74 - lwz r4, 0x14(r28) - mr r3, r28 - bl -0x27E24 - mr r4, r3 - mr r3, r29 - bl -0x42590 - mr r29, r3 - - .loc_0x74: - lwz r3, 0x8(r30) - stw r29, 0xC(r3) - b .loc_0x8C - - .loc_0x80: - lwz r3, 0x8(r30) - li r0, 0 - stw r0, 0xC(r3) - - .loc_0x8C: - lwz r3, 0x8(r30) - lhz r0, 0x4(r3) - rlwinm r3,r0,2,0,29 - bl -0x4D31C - lwz r4, 0x8(r30) - li r29, 0 - stw r3, 0x8(r4) - b .loc_0xD4 - - .loc_0xAC: - mr r6, r31 - addi r3, r1, 0x8 - rlwinm r5,r29,0,16,31 - li r4, 0 - bl 0x13940 - lwz r4, 0x8(r30) - rlwinm r0,r29,2,14,29 - addi r29, r29, 0x1 - lwz r4, 0x8(r4) - stwx r3, r4, r0 - - .loc_0xD4: - lwz r3, 0x8(r30) - rlwinm r4,r29,0,16,31 - lhz r0, 0x4(r3) - cmplw r4, r0 - blt+ .loc_0xAC - li r7, 0 - b .loc_0x118 - - .loc_0xF0: - lwz r4, 0x10(r1) - rlwinm r3,r7,1,15,30 - lwz r6, 0x8(r5) - rlwinm r0,r7,2,14,29 - lhzx r4, r4, r3 - addi r7, r7, 0x1 - rlwinm r5,r6,28,4,31 - lwzx r3, r6, r0 - add r0, r5, r4 - stw r0, 0x20(r3) - - .loc_0x118: - lwz r5, 0x8(r30) - rlwinm r3,r7,0,16,31 - lhz r0, 0x4(r5) - cmplw r3, r0 - blt+ .loc_0xF0 - lwz r0, 0x94(r1) - lwz r31, 0x8C(r1) - lwz r30, 0x88(r1) - lwz r29, 0x84(r1) - lwz r28, 0x80(r1) - mtlr r0 - addi r1, r1, 0x90 - blr - */ } /** @@ -1772,107 +610,11 @@ void J3DModelLoader::readPatchedMaterial(const J3DMaterialBlock* block, u32 flag } mMaterialTable->mMaterials = new J3DMaterial*[mMaterialTable->mMaterialNum]; mMaterialTable->mUniqueMaterials = nullptr; + for (u16 i = 0; i < mMaterialTable->mMaterialNum; i++) { mMaterialTable->mMaterials[i] = factory.create(nullptr, J3DMaterialFactory::PATCHED, i, flags); - mMaterialTable->mMaterials[i]->mDiffFlag = factory.mMatRemapTable[i]; + mMaterialTable->mMaterials[i]->mDiffFlag = ((u32)(mMaterialTable->mMaterials) >> 4) + factory.getMaterialID(i); } - /* - stwu r1, -0xa0(r1) - mflr r0 - stw r0, 0xa4(r1) - stw r31, 0x9c(r1) - stw r30, 0x98(r1) - mr r30, r5 - stw r29, 0x94(r1) - mr r29, r3 - addi r3, r1, 8 - stw r28, 0x90(r1) - mr r28, r4 - bl __ct__18J3DMaterialFactoryFRC16J3DMaterialBlock - lhz r0, 8(r28) - addi r3, r1, 8 - lwz r4, 8(r29) - sth r0, 4(r4) - bl countUniqueMaterials__18J3DMaterialFactoryFv - lwz r0, 0x14(r28) - lwz r4, 8(r29) - cmplwi r0, 0 - sth r3, 6(r4) - beq lbl_800714D0 - li r3, 0x10 - bl __nw__FUl - or. r31, r3, r3 - beq lbl_800714C4 - lwz r4, 0x14(r28) - mr r3, r28 - bl "JSUConvertOffsetToPtr<7ResNTAB>__FPCvPCv" - mr r4, r3 - mr r3, r31 - bl __ct__10JUTNameTabFPC7ResNTAB - mr r31, r3 - -lbl_800714C4: - lwz r3, 8(r29) - stw r31, 0xc(r3) - b lbl_800714DC - -lbl_800714D0: - lwz r3, 8(r29) - li r0, 0 - stw r0, 0xc(r3) - -lbl_800714DC: - lwz r3, 8(r29) - lhz r0, 4(r3) - slwi r3, r0, 2 - bl __nwa__FUl - lwz r4, 8(r29) - li r0, 0 - li r31, 0 - stw r3, 8(r4) - lwz r3, 8(r29) - stw r0, 0x10(r3) - b lbl_8007155C - -lbl_80071508: - clrlwi r28, r31, 0x10 - mr r7, r30 - mr r6, r28 - addi r3, r1, 8 - li r4, 0 - li r5, 2 - bl -create__18J3DMaterialFactoryCFP11J3DMaterialQ218J3DMaterialFactory12MaterialTypeiUl - lwz r4, 8(r29) - rlwinm r6, r31, 2, 0xe, 0x1d - slwi r0, r28, 1 - addi r31, r31, 1 - lwz r4, 8(r4) - stwx r3, r4, r6 - lwz r4, 8(r29) - lwz r3, 0x10(r1) - lwz r5, 8(r4) - lhzx r0, r3, r0 - srwi r4, r5, 4 - lwzx r3, r5, r6 - add r0, r4, r0 - stw r0, 0x20(r3) - -lbl_8007155C: - lwz r3, 8(r29) - clrlwi r4, r31, 0x10 - lhz r0, 4(r3) - cmplw r4, r0 - blt lbl_80071508 - lwz r0, 0xa4(r1) - lwz r31, 0x9c(r1) - lwz r30, 0x98(r1) - lwz r29, 0x94(r1) - lwz r28, 0x90(r1) - mtlr r0 - addi r1, r1, 0xa0 - blr - */ } /** diff --git a/src/JSystem/J3D/Makefile b/src/JSystem/J3D/Makefile index 872b30752..b9707da35 100644 --- a/src/JSystem/J3D/Makefile +++ b/src/JSystem/J3D/Makefile @@ -14,7 +14,7 @@ J3D_FILES:=\ $(BUILD_DIR)/asm/JSystem/J3D/J3DJoint.o\ $(BUILD_DIR)/asm/JSystem/J3D/J3DMaterialFactory.o\ $(BUILD_DIR)/src/JSystem/J3D/J3DBinaryFormat.o\ - $(BUILD_DIR)/asm/JSystem/J3D/J3DModelLoader.o\ + $(BUILD_DIR)/src/JSystem/J3D/J3DModelLoader.o\ $(BUILD_DIR)/src/JSystem/J3D/J3DJointFactory.o\ $(BUILD_DIR)/src/JSystem/J3D/J3DShapeFactory.o\ $(BUILD_DIR)/src/JSystem/J3D/J3DAnmLoader.o\ diff --git a/tools/progress.csv b/tools/progress.csv index ed6d6e18b..8ee611960 100644 --- a/tools/progress.csv +++ b/tools/progress.csv @@ -925,3 +925,5 @@ You have 4104 out of 10000 Pokos and 107 out of 201 treasures.",2024-03-28 17:38 You have 4117 out of 10000 Pokos and 107 out of 201 treasures.",2024-04-03 21:52:26.765250 4119,1916748,0.4119954809954191,107,382133,0.5360591760467752," You have 4119 out of 10000 Pokos and 107 out of 201 treasures.",2024-04-03 22:13:13.274480 +4137,1924968,0.41376232924765793,107,382349,0.5363621825445812," +You have 4137 out of 10000 Pokos and 107 out of 201 treasures.",2024-04-03 23:20:20.868490