diff --git a/asm/JSystem/J3DGraphAnimator/J3DModelData/newSharedDisplayList__12J3DModelDataFUl.s b/asm/JSystem/J3DGraphAnimator/J3DModelData/newSharedDisplayList__12J3DModelDataFUl.s deleted file mode 100644 index 9686104641a..00000000000 --- a/asm/JSystem/J3DGraphAnimator/J3DModelData/newSharedDisplayList__12J3DModelDataFUl.s +++ /dev/null @@ -1,51 +0,0 @@ -lbl_80325E14: -/* 80325E14 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80325E18 7C 08 02 A6 */ mflr r0 -/* 80325E1C 90 01 00 24 */ stw r0, 0x24(r1) -/* 80325E20 39 61 00 20 */ addi r11, r1, 0x20 -/* 80325E24 48 03 C3 B1 */ bl _savegpr_27 -/* 80325E28 7C 7B 1B 78 */ mr r27, r3 -/* 80325E2C A3 E3 00 5C */ lhz r31, 0x5c(r3) -/* 80325E30 3B 80 00 00 */ li r28, 0 -/* 80325E34 54 9E 03 5A */ rlwinm r30, r4, 0, 0xd, 0xd -/* 80325E38 48 00 00 68 */ b lbl_80325EA0 -lbl_80325E3C: -/* 80325E3C 28 1E 00 00 */ cmplwi r30, 0 -/* 80325E40 41 82 00 30 */ beq lbl_80325E70 -/* 80325E44 80 7B 00 60 */ lwz r3, 0x60(r27) -/* 80325E48 57 80 13 BA */ rlwinm r0, r28, 2, 0xe, 0x1d -/* 80325E4C 7F A3 00 2E */ lwzx r29, r3, r0 -/* 80325E50 7F A3 EB 78 */ mr r3, r29 -/* 80325E54 4B FF 04 3D */ bl countDLSize__11J3DMaterialFv -/* 80325E58 7C 64 1B 78 */ mr r4, r3 -/* 80325E5C 7F A3 EB 78 */ mr r3, r29 -/* 80325E60 4B FF 10 C5 */ bl newSingleSharedDisplayList__11J3DMaterialFUl -/* 80325E64 2C 03 00 00 */ cmpwi r3, 0 -/* 80325E68 41 82 00 34 */ beq lbl_80325E9C -/* 80325E6C 48 00 00 44 */ b lbl_80325EB0 -lbl_80325E70: -/* 80325E70 80 7B 00 60 */ lwz r3, 0x60(r27) -/* 80325E74 57 80 13 BA */ rlwinm r0, r28, 2, 0xe, 0x1d -/* 80325E78 7F A3 00 2E */ lwzx r29, r3, r0 -/* 80325E7C 7F A3 EB 78 */ mr r3, r29 -/* 80325E80 4B FF 04 11 */ bl countDLSize__11J3DMaterialFv -/* 80325E84 7C 64 1B 78 */ mr r4, r3 -/* 80325E88 7F A3 EB 78 */ mr r3, r29 -/* 80325E8C 4B FF 10 05 */ bl newSharedDisplayList__11J3DMaterialFUl -/* 80325E90 2C 03 00 00 */ cmpwi r3, 0 -/* 80325E94 41 82 00 08 */ beq lbl_80325E9C -/* 80325E98 48 00 00 18 */ b lbl_80325EB0 -lbl_80325E9C: -/* 80325E9C 3B 9C 00 01 */ addi r28, r28, 1 -lbl_80325EA0: -/* 80325EA0 57 80 04 3E */ clrlwi r0, r28, 0x10 -/* 80325EA4 7C 00 F8 40 */ cmplw r0, r31 -/* 80325EA8 41 80 FF 94 */ blt lbl_80325E3C -/* 80325EAC 38 60 00 00 */ li r3, 0 -lbl_80325EB0: -/* 80325EB0 39 61 00 20 */ addi r11, r1, 0x20 -/* 80325EB4 48 03 C3 6D */ bl _restgpr_27 -/* 80325EB8 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80325EBC 7C 08 03 A6 */ mtlr r0 -/* 80325EC0 38 21 00 20 */ addi r1, r1, 0x20 -/* 80325EC4 4E 80 00 20 */ blr diff --git a/libs/JSystem/J3DGraphAnimator/J3DModelData.cpp b/libs/JSystem/J3DGraphAnimator/J3DModelData.cpp index fff6473d6da..9bf2bea95ea 100644 --- a/libs/JSystem/J3DGraphAnimator/J3DModelData.cpp +++ b/libs/JSystem/J3DGraphAnimator/J3DModelData.cpp @@ -76,41 +76,23 @@ J3DModelData::J3DModelData() { } /* 80325E14-80325EC8 320754 00B4+00 0/0 2/2 0/0 .text newSharedDisplayList__12J3DModelDataFUl */ -#ifdef NONMATCHING -s32 J3DModelData::newSharedDisplayList(u32 param_0) { +s32 J3DModelData::newSharedDisplayList(u32 flag) { u16 matNum = getMaterialNum(); for (u16 i = 0; i < matNum; i++) { - if ((param_0 & 0x40000)) { - J3DMaterial* matNode = getMaterialNodePointer(i); - u32 dl_size = matNode->countDLSize(); - switch (matNode->newSingleSharedDisplayList(dl_size)) { - case 0: - continue; - } - break; + if (!!(flag & 0x40000)) { + s32 ret = getMaterialNodePointer(i)->newSingleSharedDisplayList(getMaterialNodePointer(i)->countDLSize()); + if (ret != kJ3DError_Success) + return ret; } else { - J3DMaterial* matNode = getMaterialNodePointer(i); - u32 dl_size = matNode->countDLSize(); - switch (matNode->newSharedDisplayList(dl_size)) { - case 0: - continue; - } - break; + s32 ret = getMaterialNodePointer(i)->newSharedDisplayList(getMaterialNodePointer(i)->countDLSize()); + if (ret != kJ3DError_Success) + return ret; } } - return 0; + + return kJ3DError_Success; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s32 J3DModelData::newSharedDisplayList(u32 param_0) { - nofralloc -#include "asm/JSystem/J3DGraphAnimator/J3DModelData/newSharedDisplayList__12J3DModelDataFUl.s" -} -#pragma pop -#endif /* ############################################################################################## */ /* 804515E8-804515EC 000AE8 0004+00 1/1 0/0 0/0 .sbss sInterruptFlag$965 */ diff --git a/libs/JSystem/J3DGraphBase/J3DPacket.cpp b/libs/JSystem/J3DGraphBase/J3DPacket.cpp index adbaad79176..109074b7532 100644 --- a/libs/JSystem/J3DGraphBase/J3DPacket.cpp +++ b/libs/JSystem/J3DGraphBase/J3DPacket.cpp @@ -209,7 +209,7 @@ SECTION_DATA static s32 sSizeOfDiffered[8] = { J3DDrawPacket::J3DDrawPacket() { mFlags = 0; mpDisplayListObj = NULL; - mpTexMtx = NULL; + mpTexMtxObj = NULL; } /* 803127B0-8031280C 30D0F0 005C+00 3/2 0/0 0/0 .text __dt__13J3DDrawPacketFv */