From 5c69e690b8055a9d965450714cbeb77354a3b0b0 Mon Sep 17 00:00:00 2001 From: LagoLunatic Date: Mon, 30 Oct 2023 02:47:56 -0400 Subject: [PATCH] JKRDvdArchive, JKRAramArchive match --- configure.py | 4 ++-- include/JSystem/JKernel/JKRAramArchive.h | 4 ++-- src/JSystem/JKernel/JKRAramArchive.cpp | 20 +++++++++----------- src/JSystem/JKernel/JKRDvdArchive.cpp | 17 ++++++++--------- 4 files changed, 21 insertions(+), 24 deletions(-) diff --git a/configure.py b/configure.py index 086653a91..41d6373d0 100644 --- a/configure.py +++ b/configure.py @@ -781,8 +781,8 @@ config.libs = [ Object(Matching, "JSystem/JKernel/JKRArchivePub.cpp"), Object(Matching, "JSystem/JKernel/JKRArchivePri.cpp"), Object(Matching, "JSystem/JKernel/JKRMemArchive.cpp"), - Object(NonMatching, "JSystem/JKernel/JKRAramArchive.cpp"), - Object(NonMatching, "JSystem/JKernel/JKRDvdArchive.cpp"), + Object(Matching, "JSystem/JKernel/JKRAramArchive.cpp"), + Object(Matching, "JSystem/JKernel/JKRDvdArchive.cpp"), Object(Matching, "JSystem/JKernel/JKRCompArchive.cpp"), Object(Matching, "JSystem/JKernel/JKRFile.cpp"), Object(Matching, "JSystem/JKernel/JKRDvdFile.cpp"), diff --git a/include/JSystem/JKernel/JKRAramArchive.h b/include/JSystem/JKernel/JKRAramArchive.h index 392be1be5..ff89e712e 100644 --- a/include/JSystem/JKernel/JKRAramArchive.h +++ b/include/JSystem/JKernel/JKRAramArchive.h @@ -5,7 +5,7 @@ #include "dolphin/types.h" class JKRAramBlock; -class JKRDvdFile; +class JKRFile; class JKRAramArchive : public JKRArchive { public: @@ -28,7 +28,7 @@ private: /* 0x00 */ // vtable /* 0x04 */ // JKRArchive /* 0x64 */ JKRAramBlock* mBlock; - /* 0x68 */ JKRDvdFile* mDvdFile; + /* 0x68 */ JKRFile* mDvdFile; }; // Size = 0x6C #endif /* JKRARAMARCHIVE_H */ diff --git a/src/JSystem/JKernel/JKRAramArchive.cpp b/src/JSystem/JKernel/JKRAramArchive.cpp index 2283e8079..050883c69 100644 --- a/src/JSystem/JKernel/JKRAramArchive.cpp +++ b/src/JSystem/JKernel/JKRAramArchive.cpp @@ -147,7 +147,7 @@ cleanup: JKRFreeToSysHeap(mem); } if (mMountMode == 0) { - OSReport(":::[%s: %d] Cannot alloc memory\n", __FILE__, 400); + OSReport(":::[%s: %d] Cannot alloc memory\n", __FILE__, VERSION_SELECT(407, 400, 400)); if (mDvdFile != NULL) { delete mDvdFile; } @@ -158,7 +158,7 @@ cleanup: /* 802BA4EC-802BA640 .text fetchResource__14JKRAramArchiveFPQ210JKRArchive12SDIFileEntryPUl */ void* JKRAramArchive::fetchResource(SDIFileEntry* pEntry, u32* pOutSize) { - JUT_ASSERT(427, isMounted()); + JUT_ASSERT(VERSION_SELECT(434, 427, 427), isMounted()); u32 outSize; u8* outBuf; if (pOutSize == NULL) { @@ -193,16 +193,14 @@ void* JKRAramArchive::fetchResource(SDIFileEntry* pEntry, u32* pOutSize) { /* 802BA640-802BA788 .text fetchResource__14JKRAramArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl */ void* JKRAramArchive::fetchResource(void* buffer, u32 bufferSize, SDIFileEntry* pEntry, u32* resourceSize) { - /* Nonmatching */ - JUT_ASSERT(500, isMounted()); + JUT_ASSERT(VERSION_SELECT(514, 500, 500), isMounted()); u32 size = pEntry->data_size; if (size > bufferSize) { size = bufferSize; } JKRCompression compression = JKRConvertAttrToCompressionType(pEntry->getFlags()); if (pEntry->data == NULL) { - // can't get it to store the result in r28 - bufferSize &= ~(0x20 - 1); + bufferSize = (s32)ALIGN_PREV(bufferSize, 0x20); size = JKRAramArchive::fetchResource_subroutine(pEntry->data_offset + mBlock->getAddress(), size, (u8*)buffer, bufferSize, compression); } else { @@ -225,7 +223,7 @@ void* JKRAramArchive::fetchResource(void* buffer, u32 bufferSize, SDIFileEntry* /* 802BA788-802BA894 .text fetchResource_subroutine__14JKRAramArchiveFUlUlPUcUli */ u32 JKRAramArchive::fetchResource_subroutine(u32 srcAram, u32 srcLength, u8* dst, u32 dstLength, int compression) { - JUT_ASSERT(613, ( srcAram & 0x1f ) == 0); + JUT_ASSERT(VERSION_SELECT(627, 613, 613), ( srcAram & 0x1f ) == 0); u32 outLen; u32 srcSize = ALIGN_NEXT(srcLength, 0x20); u32 dstSize = ALIGN_PREV(dstLength, 0x20); @@ -242,7 +240,7 @@ u32 JKRAramArchive::fetchResource_subroutine(u32 srcAram, u32 srcLength, u8* dst JKRAramToMainRam(srcAram, dst, srcSize, EXPAND_SWITCH_UNKNOWN1, dstSize, NULL, -1, &outLen); return outLen; default: - OSPanic(__FILE__, 640, ":::??? bad sequence\n"); + OSPanic(__FILE__, VERSION_SELECT(654, 640, 640), ":::??? bad sequence\n"); return 0; } } @@ -256,7 +254,7 @@ u32 JKRAramArchive::fetchResource_subroutine(u32 entryNum, u32 length, JKRHeap* case COMPRESSION_NONE: { buffer = (u8*)(JKRAllocFromHeap(pHeap, alignedLen, 0x20)); - JUT_ASSERT(662, buffer != 0); + JUT_ASSERT(VERSION_SELECT(676, 662, 662), buffer != 0); JKRAramToMainRam(entryNum, buffer, alignedLen, EXPAND_SWITCH_UNKNOWN0, alignedLen, NULL, -1, NULL); *out = buffer; return length; @@ -269,14 +267,14 @@ u32 JKRAramArchive::fetchResource_subroutine(u32 entryNum, u32 length, JKRHeap* JKRAramToMainRam(entryNum, alignHeader, sizeof(SArcHeader), EXPAND_SWITCH_UNKNOWN0, 0, NULL, -1, NULL); u32 decompressedLen = ALIGN_NEXT(JKRDecompExpandSize(alignHeader), sizeof(SArcHeader)); buffer = (u8*)(JKRAllocFromHeap(pHeap, decompressedLen, sizeof(SArcHeader))); - JUT_ASSERT(688, buffer); + JUT_ASSERT(VERSION_SELECT(709, 688, 688), buffer); u32 readLen; JKRAramToMainRam(entryNum, buffer, alignedLen, EXPAND_SWITCH_UNKNOWN1, decompressedLen, pHeap, -1, &readLen); *out = buffer; return readLen; } default: - OSPanic(__FILE__, 698, ":::??? bad sequence\n"); + OSPanic(__FILE__, VERSION_SELECT(719, 698, 698), ":::??? bad sequence\n"); return 0; } } diff --git a/src/JSystem/JKernel/JKRDvdArchive.cpp b/src/JSystem/JKernel/JKRDvdArchive.cpp index 9ae44bdb4..39d04ab80 100644 --- a/src/JSystem/JKernel/JKRDvdArchive.cpp +++ b/src/JSystem/JKernel/JKRDvdArchive.cpp @@ -180,14 +180,13 @@ void* JKRDvdArchive::fetchResource(SDIFileEntry* fileEntry, u32* returnSize) { /* 802BB17C-802BB2BC .text fetchResource__13JKRDvdArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl */ void* JKRDvdArchive::fetchResource(void* buffer, u32 bufferSize, SDIFileEntry* fileEntry, u32* returnSize) { - /* Nonmatching */ JUT_ASSERT(489, isMounted()); u32 expandSize; u32 size = fileEntry->data_size; JKRCompression fileCompression = JKRConvertAttrToCompressionType(fileEntry->getAttr()); if (!fileEntry->data) { - bufferSize = ALIGN_PREV(bufferSize, 0x20); + bufferSize = (s32)ALIGN_PREV(bufferSize, 0x20); size = fetchResource_subroutine(mEntryNum, mDataOffset + fileEntry->data_offset, fileEntry->data_size, (u8*)buffer, bufferSize, fileCompression, mCompression); @@ -261,12 +260,12 @@ u32 JKRDvdArchive::fetchResource_subroutine(s32 entryNum, u32 offset, u32 size, } case COMPRESSION_YAY0: { - OSPanic(__FILE__, 603, "Sorry, not prepared for SZP archive.\n"); + OSPanic(__FILE__, VERSION_SELECT(610, 603, 603), "Sorry, not prepared for SZP archive.\n"); return 0; } default: { - OSPanic(__FILE__, 609, ":::??? bad sequence\n"); + OSPanic(__FILE__, VERSION_SELECT(616, 609, 609), ":::??? bad sequence\n"); return 0; } } @@ -282,7 +281,7 @@ u32 JKRDvdArchive::fetchResource_subroutine(s32 entryNum, u32 offset, u32 size, switch (fileCompression) { case COMPRESSION_NONE: buffer = (u8*)JKRAllocFromHeap(heap, alignedSize, sizeof(SArcHeader)); - JUT_ASSERT(631, buffer != 0); + JUT_ASSERT(VERSION_SELECT(638, 631, 631), buffer != 0); JKRDvdToMainRam(entryNum, buffer, EXPAND_SWITCH_UNKNOWN0, alignedSize, NULL, JKRDvdRipper::ALLOC_DIRECTION_FORWARD, offset, NULL); @@ -301,7 +300,7 @@ u32 JKRDvdArchive::fetchResource_subroutine(s32 entryNum, u32 offset, u32 size, alignedSize = JKRDecompExpandSize(arcHeader); buffer = (u8*)JKRAllocFromHeap(heap, alignedSize, sizeof(SArcHeader)); - JUT_ASSERT(660, buffer); + JUT_ASSERT(VERSION_SELECT(674, 660, 660), buffer); JKRDvdToMainRam(entryNum, buffer, EXPAND_SWITCH_UNKNOWN1, alignedSize, NULL, JKRDvdRipper::ALLOC_DIRECTION_FORWARD, offset, NULL); @@ -312,7 +311,7 @@ u32 JKRDvdArchive::fetchResource_subroutine(s32 entryNum, u32 offset, u32 size, case COMPRESSION_YAZ0: { buffer = (u8*)JKRAllocFromHeap(heap, alignedSize, sizeof(SArcHeader)); - JUT_ASSERT(672, buffer); + JUT_ASSERT(VERSION_SELECT(686, 672, 672), buffer); JKRDvdToMainRam(entryNum, buffer, EXPAND_SWITCH_UNKNOWN1, size, NULL, JKRDvdRipper::ALLOC_DIRECTION_FORWARD, offset, NULL); @@ -322,12 +321,12 @@ u32 JKRDvdArchive::fetchResource_subroutine(s32 entryNum, u32 offset, u32 size, } case COMPRESSION_YAY0: { - OSPanic(__FILE__, 683, "Sorry, not prepared for SZP archive.\n"); + OSPanic(__FILE__, VERSION_SELECT(697, 683, 683), "Sorry, not prepared for SZP archive.\n"); return 0; } default: { - OSPanic(__FILE__, 688, ":::??? bad sequence\n"); + OSPanic(__FILE__, VERSION_SELECT(702, 688, 688), ":::??? bad sequence\n"); return 0; } }