JKernel progress and diffable

JKRFile weak functions are giving me trouble
This commit is contained in:
EpochFlame 2023-10-16 14:14:38 -04:00
parent 6f9ae95555
commit 9d26b9c05c
10 changed files with 378 additions and 1397 deletions

View File

@ -44,24 +44,24 @@
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/J3D/J3DJointTree.cpp">J3D/J3DJointTree.cpp</a> | 7088 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/J2D/J2DBloSaver.cpp">J2D/J2DBloSaver.cpp</a> | 7230 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JAudio/JAI/JAIDummyObject.cpp">JAudio/JAI/JAIDummyObject.cpp</a> | 7337 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/J3D/J3DModelData.cpp">J3D/J3DModelData.cpp</a> | 7479 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JKernel/JKRSolidHeap.cpp">JKernel/JKRSolidHeap.cpp</a> | 7690 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JStudio/jstudio-math.cpp">JStudio/jstudio-math.cpp</a> | 8174 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JMessage/control.cpp">JMessage/control.cpp</a> | 8855 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JKernel/JKRThread.cpp">JKernel/JKRThread.cpp</a> | 9057 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JAudio/JAL/JALCalc.cpp">JAudio/JAL/JALCalc.cpp</a> | 9063 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JAudio/JAS/JASDriverIF.cpp">JAudio/JAS/JASDriverIF.cpp</a> | 9496 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JAudio/JAS/JASBasicWaveBank.cpp">JAudio/JAS/JASBasicWaveBank.cpp</a> | 9651 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JParticle/JPAExtraShape.cpp">JParticle/JPAExtraShape.cpp</a> | 9736 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JParticle/JPAResourceLoader.cpp">JParticle/JPAResourceLoader.cpp</a> | 9814 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JParticle/JPAMath.cpp">JParticle/JPAMath.cpp</a> | 10028 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JUtility/JUTTexture.cpp">JUtility/JUTTexture.cpp</a> | 10070 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JAudio/JAU/JAUDataMgr.cpp">JAudio/JAU/JAUDataMgr.cpp</a> | 10083 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/J2D/J2DTevs.cpp">J2D/J2DTevs.cpp</a> | 10255 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JStudio/jstudio-control.cpp">JStudio/jstudio-control.cpp</a> | 10278 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JAudio/JAI/JAIBankWave.cpp">JAudio/JAI/JAIBankWave.cpp</a> | 10594 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JKernel/JKRDvdArchive.cpp">JKernel/JKRDvdArchive.cpp</a> | 10649 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JStudio_JStage/control.cpp">JStudio_JStage/control.cpp</a> | 11936 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JAudio/JAS/JASDSPChannel.cpp">JAudio/JAS/JASDSPChannel.cpp</a> | 12151 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JAudio/JAI/JAIInitData.cpp">JAudio/JAI/JAIInitData.cpp</a> | 12747 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JAudio/JAS/JASOscillator.cpp">JAudio/JAS/JASOscillator.cpp</a> | 13039 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JAudio/JAS/JASTaskThread.cpp">JAudio/JAS/JASTaskThread.cpp</a> | 13181 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JAudio/JAS/JASWSParser.cpp">JAudio/JAS/JASWSParser.cpp</a> | 13469 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/J3D/J3DShapeFactory.cpp">J3D/J3DShapeFactory.cpp</a> | 13608 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JAudio/JAS/JASPlayer_impl.cpp">JAudio/JAS/JASPlayer_impl.cpp</a> | 14292 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JParticle/JPAEmitter.cpp">JParticle/JPAEmitter.cpp</a> | 14368 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JAudio/JAI/JAISequenceHeap.cpp">JAudio/JAI/JAISequenceHeap.cpp</a> | 14788 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JGadget/std-vector.cpp">JGadget/std-vector.cpp</a> | 16407 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JAudio/JAS/JASBankMgr.cpp">JAudio/JAS/JASBankMgr.cpp</a> | 16414 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/J3D/J3DDrawBuffer.cpp">J3D/J3DDrawBuffer.cpp</a> | 18255 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/J3D/J3DTransform.cpp">J3D/J3DTransform.cpp</a> | 19101 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JAudio/JAI/JAIObject.cpp">JAudio/JAI/JAIObject.cpp</a> | 19418 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JParticle/JPAEmitterManager.cpp">JParticle/JPAEmitterManager.cpp</a> | 19473 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JAudio/JAI/JAISystemInterface.cpp">JAudio/JAI/JAISystemInterface.cpp</a> | 19726 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JMessage/resource.cpp">JMessage/resource.cpp</a> | 20494 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/J3D/J3DModelLoaderCalcSize.cpp">J3D/J3DModelLoaderCalcSize.cpp</a> | 21399 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/J3D/J3DPacket.cpp">J3D/J3DPacket.cpp</a> | 21520 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JStudio_JParticle/object-particle.cpp">JStudio_JParticle/object-particle.cpp</a> | 21717 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JUtility/JUTDirectPrint.cpp">JUtility/JUTDirectPrint.cpp</a> | 22588 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JMessage/control.cpp">JMessage/control.cpp</a> | 8855 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JKernel/JKRAramArchive.cpp">JKernel/JKRAramArchive.cpp</a> | 8990 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JKernel/JKRThread.cpp">JKernel/JKRThread.cpp</a> | 9057 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JAudio/JAL/JALCalc.cpp">JAudio/JAL/JALCalc.cpp</a> | 9063 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JAudio/JAS/JASDriverIF.cpp">JAudio/JAS/JASDriverIF.cpp</a> | 9496 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JAudio/JAS/JASBasicWaveBank.cpp">JAudio/JAS/JASBasicWaveBank.cpp</a> | 9651 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JParticle/JPAExtraShape.cpp">JParticle/JPAExtraShape.cpp</a> | 9736 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JParticle/JPAResourceLoader.cpp">JParticle/JPAResourceLoader.cpp</a> | 9814 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JParticle/JPAMath.cpp">JParticle/JPAMath.cpp</a> | 10028 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JUtility/JUTTexture.cpp">JUtility/JUTTexture.cpp</a> | 10070 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JAudio/JAU/JAUDataMgr.cpp">JAudio/JAU/JAUDataMgr.cpp</a> | 10083 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/J2D/J2DTevs.cpp">J2D/J2DTevs.cpp</a> | 10255 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JStudio/jstudio-control.cpp">JStudio/jstudio-control.cpp</a> | 10278 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JAudio/JAI/JAIBankWave.cpp">JAudio/JAI/JAIBankWave.cpp</a> | 10594 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JKernel/JKRDvdArchive.cpp">JKernel/JKRDvdArchive.cpp</a> | 10649 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JStudio_JStage/control.cpp">JStudio_JStage/control.cpp</a> | 11936 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JAudio/JAS/JASDSPChannel.cpp">JAudio/JAS/JASDSPChannel.cpp</a> | 12151 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JAudio/JAI/JAIInitData.cpp">JAudio/JAI/JAIInitData.cpp</a> | 12747 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JAudio/JAS/JASOscillator.cpp">JAudio/JAS/JASOscillator.cpp</a> | 13039 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JAudio/JAS/JASTaskThread.cpp">JAudio/JAS/JASTaskThread.cpp</a> | 13181 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JAudio/JAS/JASWSParser.cpp">JAudio/JAS/JASWSParser.cpp</a> | 13469 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/J3D/J3DShapeFactory.cpp">J3D/J3DShapeFactory.cpp</a> | 13608 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JAudio/JAS/JASPlayer_impl.cpp">JAudio/JAS/JASPlayer_impl.cpp</a> | 14292 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JParticle/JPAEmitter.cpp">JParticle/JPAEmitter.cpp</a> | 14368 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JAudio/JAI/JAISequenceHeap.cpp">JAudio/JAI/JAISequenceHeap.cpp</a> | 14788 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JGadget/std-vector.cpp">JGadget/std-vector.cpp</a> | 16407 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JAudio/JAS/JASBankMgr.cpp">JAudio/JAS/JASBankMgr.cpp</a> | 16414 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/J3D/J3DDrawBuffer.cpp">J3D/J3DDrawBuffer.cpp</a> | 18255 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/J3D/J3DTransform.cpp">J3D/J3DTransform.cpp</a> | 19101 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JAudio/JAI/JAIObject.cpp">JAudio/JAI/JAIObject.cpp</a> | 19418 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JParticle/JPAEmitterManager.cpp">JParticle/JPAEmitterManager.cpp</a> | 19473 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JAudio/JAI/JAISystemInterface.cpp">JAudio/JAI/JAISystemInterface.cpp</a> | 19726 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JMessage/resource.cpp">JMessage/resource.cpp</a> | 20494 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/J3D/J3DModelLoaderCalcSize.cpp">J3D/J3DModelLoaderCalcSize.cpp</a> | 21399 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/J3D/J3DPacket.cpp">J3D/J3DPacket.cpp</a> | 21520 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/JSystem/JStudio_JParticle/object-particle.cpp">JStudio_JParticle/object-particle.cpp</a> | 21717 |
### <section id="plugProjectEbisawaU">plugProjectEbisawaU</section>
| File | Size (bytes) | File | Size (bytes) |

View File

@ -147,6 +147,7 @@ struct JKRAram : public JKRThread {
};
struct JKRAramArchive : public JKRArchive {
JKRAramArchive(); // unused
JKRAramArchive(long, EMountDirection);
virtual ~JKRAramArchive(); // _08

View File

@ -247,7 +247,7 @@ struct JKRCompArchive : public JKRArchive {
JKRCompression mCompression; // _5C
EMountDirection mMountDirection; // _60
u32 _64; // _64
void* _68; // _68
JKRAramBlock* mAramPart; // _68
unknown _6C; // _6C
JKRDvdFile* mDvdFile; // _70
u32 mMemSize; // _74

View File

@ -11,9 +11,9 @@ struct JKRADCommand;
struct JKRDvdAramRipper {
typedef void (*LoadCallback)(u32);
static u32 loadToAram(char const*, u32, JKRExpandSwitch, u32, u32, u32*);
static u32 loadToAram(long, u32, JKRExpandSwitch, u32, u32, u32*);
static u32 loadToAram(JKRDvdFile*, u32, JKRExpandSwitch, u32, u32, u32*);
static JKRAramBlock* loadToAram(char const*, u32, JKRExpandSwitch, u32, u32, u32*);
static JKRAramBlock* loadToAram(long, u32, JKRExpandSwitch, u32, u32, u32*);
static JKRAramBlock* loadToAram(JKRDvdFile*, u32, JKRExpandSwitch, u32, u32, u32*);
static JKRADCommand* loadToAram_Async(JKRDvdFile*, u32, JKRExpandSwitch, LoadCallback, u32, u32, u32*);
static JKRADCommand* callCommand_Async(JKRADCommand*);
static bool syncAram(JKRADCommand*, int);
@ -46,4 +46,9 @@ struct JKRADCommand : public JSULink<JKRADCommand> {
JKRAramStreamCommand* mStreamCommand; // _50
};
inline JKRAramBlock* JKRDvdToAram(s32 entrynum, u32 p2, JKRExpandSwitch expSwitch, u32 p4, u32 p5, u32* p6)
{
return JKRDvdAramRipper::loadToAram(entrynum, p2, expSwitch, p4, p5, p6);
}
#endif

View File

@ -54,7 +54,7 @@ struct JKRHeap : public JKRDisposer {
}
~TState();
// void dump() const { mArgument.mHeap->state_dump(this); }
void dump() const { mArgument.mHeap->state_dump(*this); }
bool isVerbose() { return bVerbose_; };
bool isCompareOnDestructed() const { return mArgument.mIsCompareOnDestructed; };
u32 getUsedSize() const { return mUsedSize; }
@ -360,15 +360,13 @@ struct JKRSolidHeap : public JKRHeap {
SolidList* mList; // _78
};
void JKRDefaultMemoryErrorRoutine(void*, u32, int);
inline void* operator new(size_t size, void* mem) { return mem; } // fabricated?
void* operator new(size_t, JKRHeap*, int);
void* operator new(u32 byteCount, int p2);
void* operator new[](size_t, JKRHeap*, int);
void* operator new[](u32 byteCount, int p2);
void JKRDefaultMemoryErrorRoutine(void* heap, u32 size, int alignment);
static void JKRDefaultMemoryErrorRoutine(void* heap, u32 size, int alignment);
inline void* JKRAllocFromHeap(JKRHeap* heap, u32 size, int alignment) { return JKRHeap::alloc(size, alignment, heap); }

File diff suppressed because it is too large Load Diff

View File

@ -75,10 +75,10 @@ JKRCompArchive::JKRCompArchive(long p1, JKRArchive::EMountDirection mountDirecti
if (!open(p1)) {
return;
}
mMagicWord = 'RARC';
_28 = _54 + _48->_04;
sVolumeList.prepend(&_18);
_30 = 1;
mMagicWord = 'RARC';
mVolumeName = mStrTable + mDirectories->mOffset;
sVolumeList.prepend(&mFileLoaderLink);
mIsMounted = true;
/*
stwu r1, -0x20(r1)
@ -139,108 +139,30 @@ lbl_8001BC4C:
*/
JKRCompArchive::~JKRCompArchive()
{
/*
stwu r1, -0x20(r1)
mflr r0
stw r0, 0x24(r1)
stw r31, 0x1c(r1)
mr r31, r4
stw r30, 0x18(r1)
or. r30, r3, r3
stw r29, 0x14(r1)
stw r28, 0x10(r1)
beq lbl_8001BD94
lis r3, __vt__14JKRCompArchive@ha
addi r0, r3, __vt__14JKRCompArchive@l
stw r0, 0(r30)
lwz r0, 0x44(r30)
cmplwi r0, 0
beq lbl_8001BCFC
lwz r29, 0x4c(r30)
li r28, 0
b lbl_8001BCDC
if (mDataInfo) {
SDIFileEntry* fileEntries = mFileEntries;
for (int i = 0; i < mDataInfo->mNumFileEntries; i++) {
if (fileEntries->getFlag10() == 0 && fileEntries->mData != nullptr) {
JKRFreeToHeap(mHeap, fileEntries->mData);
}
fileEntries++;
}
JKRFreeToHeap(mHeap, mDataInfo);
mDataInfo = nullptr;
}
if (mAramPart) {
delete mAramPart;
}
if (mExpandSizes) {
JKRFree(mExpandSizes);
mExpandSizes = nullptr;
}
if (mDvdFile) {
delete mDvdFile;
}
lbl_8001BCB4:
lwz r0, 4(r29)
rlwinm. r0, r0, 8, 0x1b, 0x1b
bne lbl_8001BCD4
lwz r3, 0x10(r29)
cmplwi r3, 0
beq lbl_8001BCD4
lwz r4, 0x38(r30)
bl free__7JKRHeapFPvP7JKRHeap
lbl_8001BCD4:
addi r29, r29, 0x14
addi r28, r28, 1
lbl_8001BCDC:
lwz r3, 0x44(r30)
lwz r0, 8(r3)
cmplw r28, r0
blt lbl_8001BCB4
lwz r4, 0x38(r30)
bl free__7JKRHeapFPvP7JKRHeap
li r0, 0
stw r0, 0x44(r30)
lbl_8001BCFC:
lwz r3, 0x68(r30)
cmplwi r3, 0
beq lbl_8001BD20
beq lbl_8001BD20
lwz r12, 0(r3)
li r4, 1
lwz r12, 8(r12)
mtctr r12
bctrl
lbl_8001BD20:
lwz r3, 0x50(r30)
cmplwi r3, 0
beq lbl_8001BD3C
li r4, 0
bl free__7JKRHeapFPvP7JKRHeap
li r0, 0
stw r0, 0x50(r30)
lbl_8001BD3C:
lwz r3, 0x70(r30)
cmplwi r3, 0
beq lbl_8001BD60
beq lbl_8001BD60
lwz r12, 0(r3)
li r4, 1
lwz r12, 8(r12)
mtctr r12
bctrl
lbl_8001BD60:
lis r3, sVolumeList__13JKRFileLoader@ha
addi r4, r30, 0x18
addi r3, r3, sVolumeList__13JKRFileLoader@l
bl remove__10JSUPtrListFP10JSUPtrLink
li r0, 0
mr r3, r30
stb r0, 0x30(r30)
li r4, 0
bl __dt__10JKRArchiveFv
extsh. r0, r31
ble lbl_8001BD94
mr r3, r30
bl __dl__FPv
lbl_8001BD94:
lwz r0, 0x24(r1)
mr r3, r30
lwz r31, 0x1c(r1)
lwz r30, 0x18(r1)
lwz r29, 0x14(r1)
lwz r28, 0x10(r1)
mtlr r0
addi r1, r1, 0x20
blr
*/
sVolumeList.remove(&mFileLoaderLink);
mIsMounted = false;
}
/*
@ -994,14 +916,14 @@ void* JKRCompArchive::fetchResource(void*, unsigned long, JKRArchive::SDIFileEnt
*/
void JKRCompArchive::removeResourceAll()
{
if (_44 != nullptr && mMountMode != EMM_Mem) {
if (mDataInfo != nullptr && mMountMode != EMM_Mem) {
SDIFileEntry* entry = mFileEntries;
for (u32 i = 0; i < _44->_08; i++) {
if (entry->_10 != nullptr) {
for (u32 i = 0; i < mDataInfo->mNumFileEntries; i++) {
if (entry->mData != nullptr) {
if (!entry->getFlag10()) {
JKRHeap::free(entry->_10, _38);
JKRHeap::free(entry->mData, mHeap);
}
entry->_10 = nullptr;
entry->mData = nullptr;
}
}
}
@ -1072,9 +994,9 @@ bool JKRCompArchive::removeResource(void* p1)
return false;
}
if (!entry->getFlag10()) {
JKRHeap::free(p1, _38);
JKRHeap::free(p1, mHeap);
}
entry->_10 = 0;
entry->mData = 0;
return true;
}

View File

@ -5,6 +5,7 @@
#include "JSystem/JKernel/JKRHeap.h"
#include "JSystem/JSupport/JSUList.h"
#include "JSystem/JSupport/JSUStream.h"
#include "stl/limits.h"
#include "types.h"
/*
@ -89,8 +90,7 @@
* Size: 00009C
* loadToAram__16JKRDvdAramRipperFPCcUl15JKRExpandSwitchUlUlPUl
*/
u32 JKRDvdAramRipper::loadToAram(const char* p1, unsigned long p2, JKRExpandSwitch expandSwitch, unsigned long p4, unsigned long p5,
unsigned long* p6)
JKRAramBlock* JKRDvdAramRipper::loadToAram(const char* p1, u32 p2, JKRExpandSwitch expandSwitch, u32 p4, u32 p5, u32* p6)
{
JKRDvdFile file;
if (file.open(p1) == 0) {
@ -105,8 +105,7 @@ u32 JKRDvdAramRipper::loadToAram(const char* p1, unsigned long p2, JKRExpandSwit
* Size: 00009C
* loadToAram__16JKRDvdAramRipperFlUl15JKRExpandSwitchUlUlPUl
*/
u32 JKRDvdAramRipper::loadToAram(long p1, unsigned long p2, JKRExpandSwitch expandSwitch, unsigned long p4, unsigned long p5,
unsigned long* p6)
JKRAramBlock* JKRDvdAramRipper::loadToAram(long p1, u32 p2, JKRExpandSwitch expandSwitch, u32 p4, u32 p5, u32* p6)
{
JKRDvdFile file;
if (file.open(p1) == 0) {
@ -121,8 +120,7 @@ u32 JKRDvdAramRipper::loadToAram(long p1, unsigned long p2, JKRExpandSwitch expa
* Size: 0000A4
* loadToAram__16JKRDvdAramRipperFP10JKRDvdFileUl15JKRExpandSwitchUlUlPUl
*/
u32 JKRDvdAramRipper::loadToAram(JKRDvdFile* file, unsigned long p2, JKRExpandSwitch expandSwitch, unsigned long p4, unsigned long p5,
unsigned long* p6)
JKRAramBlock* JKRDvdAramRipper::loadToAram(JKRDvdFile* file, u32 p2, JKRExpandSwitch expandSwitch, u32 p4, u32 p5, u32* p6)
{
JKRADCommand* command = loadToAram_Async(file, p2, expandSwitch, nullptr, p4, p5, p6);
syncAram(command, 0);
@ -132,9 +130,9 @@ u32 JKRDvdAramRipper::loadToAram(JKRDvdFile* file, unsigned long p2, JKRExpandSw
}
if (p2 != 0) {
delete command;
return 0xFFFFFFFF;
return reinterpret_cast<JKRAramBlock*>(std::numeric_limits<size_t>::max());
}
u32 result = (u32)command->_30;
JKRAramBlock* result = command->mBlock;
delete command;
return result;
}
@ -185,15 +183,15 @@ void JKRDvdAramRipper::loadToAram_Async(long, u32, JKRExpandSwitch, LoadCallback
* Size: 0000AC
* loadToAram_Async__16JKRDvdAramRipperFP10JKRDvdFileUl15JKRExpandSwitchPFUl_vUlUlPUl
*/
JKRADCommand* JKRDvdAramRipper::loadToAram_Async(JKRDvdFile* file, unsigned long p2, JKRExpandSwitch expandSwitch,
void (*p4)(unsigned long), unsigned long p5, unsigned long p6, unsigned long* p7)
JKRADCommand* JKRDvdAramRipper::loadToAram_Async(JKRDvdFile* file, u32 p2, JKRExpandSwitch expandSwitch, void (*p4)(u32), u32 p5, u32 p6,
u32* p7)
{
JKRADCommand* command = new (JKRHeap::sSystemHeap, -4) JKRADCommand();
command->_28 = file;
command->mDvdFile = file;
command->_2C = p2;
command->_30 = nullptr;
command->mBlock = nullptr;
command->_34 = expandSwitch;
command->_38 = p4;
command->mCallBack = p4;
command->_3C = p5;
command->_40 = p6;
command->_44 = p7;
@ -490,24 +488,24 @@ lbl_8001DCB4:
*/
bool JKRDvdAramRipper::syncAram(JKRADCommand* command, int p2)
{
JKRDvdFile* file = command->_28;
OSLockMutex(&file->_34);
JKRAramStreamCommand* streamCommand = command->_50;
JKRDvdFile* file = command->mDvdFile;
OSLockMutex(&file->mMutex2);
JKRAramStreamCommand* streamCommand = command->mStreamCommand;
if (streamCommand != nullptr) {
streamCommand = JKRAramStream::sync(streamCommand, p2);
command->_48 = -(streamCommand == nullptr);
if (p2 != 0 && streamCommand == nullptr) {
OSUnlockMutex(&file->_34);
OSUnlockMutex(&file->mMutex2);
return false;
}
}
sDvdAramAsyncList.remove(command);
if (command->_50 != nullptr) {
delete command->_50;
if (command->mStreamCommand != nullptr) {
delete command->mStreamCommand;
}
delete file->mInputStream;
file->_50 = nullptr;
OSUnlockMutex(&file->_34);
OSUnlockMutex(&file->mMutex2);
return true;
}
@ -573,7 +571,7 @@ JKRADCommand::JKRADCommand()
JKRADCommand::~JKRADCommand()
{
if (_4C == 1) {
delete _28;
delete mDvdFile;
}
}
@ -582,7 +580,7 @@ JKRADCommand::~JKRADCommand()
* Address: 8001DEE4
* Size: 000178
*/
void JKRDecompressFromDVDToAram(JKRDvdFile*, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long*)
void JKRDecompressFromDVDToAram(JKRDvdFile*, u32, u32, u32, u32, u32, u32*)
{
/*
.loc_0x0:
@ -700,7 +698,7 @@ void JKRDecompressFromDVDToAram(JKRDvdFile*, unsigned long, unsigned long, unsig
* Address: 8001E05C
* Size: 000280
*/
void decompSZS_subroutine(unsigned char*, unsigned long)
static void decompSZS_subroutine(u8*, u32)
{
/*
stwu r1, -0x30(r1)
@ -911,7 +909,7 @@ lbl_8001E2C8:
* Address: 8001E2DC
* Size: 0000B4
*/
void firstSrcData()
static void firstSrcData()
{
/*
stwu r1, -0x10(r1)
@ -975,7 +973,7 @@ lbl_8001E378:
* Address: 8001E390
* Size: 0000EC
*/
void nextSrcData(unsigned char*)
static void nextSrcData(u8*)
{
/*
stwu r1, -0x20(r1)
@ -1059,7 +1057,7 @@ lbl_8001E460:
* Address: 8001E47C
* Size: 000068
*/
void dmaBufferFlush(unsigned long)
static void dmaBufferFlush(u32)
{
/*
stwu r1, -0x10(r1)
@ -1094,65 +1092,3 @@ lbl_8001E4D0:
blr
*/
}
/*
* --INFO--
* Address: 8001E4E4
* Size: 000044
*/
void __sinit_JKRDvdAramRipper_cpp()
{
/*
stwu r1, -0x10(r1)
mflr r0
lis r3, sDvdAramAsyncList__16JKRDvdAramRipper@ha
stw r0, 0x14(r1)
addi r3, r3, sDvdAramAsyncList__16JKRDvdAramRipper@l
bl initiate__10JSUPtrListFv
lis r3, sDvdAramAsyncList__16JKRDvdAramRipper@ha
lis r4, "__dt__23JSUList<12JKRADCommand>Fv"@ha
lis r5, lbl_804EFF50@ha
addi r3, r3, sDvdAramAsyncList__16JKRDvdAramRipper@l
addi r4, r4, "__dt__23JSUList<12JKRADCommand>Fv"@l
addi r5, r5, lbl_804EFF50@l
bl __register_global_object
lwz r0, 0x14(r1)
mtlr r0
addi r1, r1, 0x10
blr
*/
}
/*
* --INFO--
* Address: 8001E528
* Size: 000054
*/
// void JSUList<JKRADCommand>::~JSUList()
// {
// /*
// stwu r1, -0x10(r1)
// mflr r0
// stw r0, 0x14(r1)
// stw r31, 0xc(r1)
// mr r31, r4
// stw r30, 8(r1)
// or. r30, r3, r3
// beq lbl_8001E560
// li r4, 0
// bl __dt__10JSUPtrListFv
// extsh. r0, r31
// ble lbl_8001E560
// mr r3, r30
// bl __dl__FPv
// lbl_8001E560:
// lwz r0, 0x14(r1)
// mr r3, r30
// lwz r31, 0xc(r1)
// lwz r30, 8(r1)
// mtlr r0
// addi r1, r1, 0x10
// blr
// */
// }

View File

@ -70,7 +70,7 @@ JKRFileCache* JKRFileCache::mount(const char* p1, JKRHeap* p2, const char* p3)
JKRFileLoader& loader = *iterator;
if (loader.mMagicWord == 'CASH') {
JKRFileCache& cache = static_cast<JKRFileCache&>(loader);
if (cache._48 != nullptr && strcmp(cache._48, p1) == 0) {
if (cache.mRootPath != nullptr && strcmp(cache.mRootPath, p1) == 0) {
cache.mMountCount++;
return &cache;
}
@ -88,42 +88,42 @@ JKRFileCache::JKRFileCache(const char* p1, const char* p2)
: JKRFileLoader()
, mCacheBlockList()
{
_38 = JKRHeap::findFromRoot(this);
mParentHeap = JKRHeap::findFromRoot(this);
mMountCount = 1;
mMagicWord = 'CASH';
size_t length = strlen(p1);
void* memory = JKRHeap::alloc(length + 1, 1, _38);
_48 = (char*)memory;
void* memory = JKRHeap::alloc(length + 1, 1, mParentHeap);
mRootPath = (char*)memory;
memory = JKRHeap::sSystemHeap->alloc(length + 2, 1);
mDirectoryPath = (char*)memory;
strcpy(_48, p1);
strcpy(mRootPath, p1);
strcpy(mDirectoryPath, p1);
if (p1[1] != '\0') {
convStrLower(_48);
convStrLower(mRootPath);
convStrLower(mDirectoryPath);
strcat(mDirectoryPath, "/");
if (p2 == nullptr) {
p2 = strrchr(_48, '/') + 1;
p2 = strrchr(mRootPath, '/') + 1;
}
length = strlen(p2) + 1;
memory = JKRHeap::sSystemHeap->alloc(length, 0);
_50 = (char*)memory;
strcpy(_50, p2);
convStrLower(_50);
_28 = _50;
length = strlen(p2) + 1;
memory = JKRHeap::sSystemHeap->alloc(length, 0);
mVolumePath = (char*)memory;
strcpy(mVolumePath, p2);
convStrLower(mVolumePath);
mVolumeName = mVolumePath;
} else {
if (p2 == nullptr) {
p2 = "dvd";
}
length = strlen(p2) + 1;
memory = JKRHeap::sSystemHeap->alloc(length, 0);
_50 = (char*)memory;
strcpy(_50, p2);
convStrLower(_50);
_28 = _50;
length = strlen(p2) + 1;
memory = JKRHeap::sSystemHeap->alloc(length, 0);
mVolumePath = (char*)memory;
strcpy(mVolumePath, p2);
convStrLower(mVolumePath);
mVolumeName = mVolumePath;
}
sVolumeList.prepend(&_18);
_30 = 1;
sVolumeList.prepend(&mFileLoaderLink);
mIsMounted = true;
/*
stwu r1, -0x20(r1)
mflr r0
@ -256,16 +256,16 @@ lbl_80021C40:
JKRFileCache::~JKRFileCache()
{
removeResourceAll();
if (_48 != nullptr) {
JKRHeap::free(_48, _38);
if (mRootPath != nullptr) {
JKRHeap::free(mRootPath, mParentHeap);
}
if (mDirectoryPath != nullptr) {
JKRHeap::sSystemHeap->free(mDirectoryPath);
}
if (_50 != nullptr) {
JKRHeap::sSystemHeap->free(_50);
if (mVolumePath != nullptr) {
JKRHeap::sSystemHeap->free(mVolumePath);
}
sVolumeList.remove(&_18);
sVolumeList.remove(&mFileLoaderLink);
}
/*
@ -300,19 +300,19 @@ void* JKRFileCache::getResource(const char* p1)
void* resource = nullptr;
char* dvdPathName = getDvdPathName(p1);
JKRDvdFile file(dvdPathName);
if (file._18) {
CCacheBlock* block = findCacheBlock(file.mDvdPlayer._30);
if (file.mFileOpen) {
CCacheBlock* block = findCacheBlock(file.mDvdPlayer.startAddr);
if (block == nullptr) {
size_t byteCount = ALIGN_NEXT(file.getFileSize(), 0x20);
resource = JKRHeap::alloc(byteCount, 0x20, _38);
resource = JKRHeap::alloc(byteCount, 0x20, mParentHeap);
if (resource != nullptr) {
file.read(resource, byteCount, 0);
block = new (JKRHeap::sSystemHeap, 0) CCacheBlock(file.mDvdPlayer._30, file.getFileSize(), resource);
block = new (JKRHeap::sSystemHeap, 0) CCacheBlock(file.mDvdPlayer.startAddr, file.getFileSize(), resource);
mCacheBlockList.append(block);
}
} else {
block->_10++;
resource = const_cast<void*>(block->_1C);
block->mRefCount++;
resource = const_cast<void*>(block->mFilePtr);
}
}
JKRHeap::sSystemHeap->free(dvdPathName);
@ -339,9 +339,9 @@ void* JKRFileCache::getRelResource(const char* path)
void* JKRFileCache::getResource(unsigned long p1, const char* fileName)
{
char directoryPath[256];
size_t len = strlen(_48);
size_t len = strlen(mRootPath);
char* v1 = directoryPath + len;
strcpy(directoryPath, _48);
strcpy(directoryPath, mRootPath);
if (findFile(directoryPath, fileName)) {
return getResource(v1);
}
@ -359,7 +359,7 @@ size_t JKRFileCache::readResource(void* resourceBuffer, unsigned long bufferSize
JKRDvdFile file(dvdPathName);
size_t consumedSize = 0;
while (true) {
if (file._18 == false) {
if (file.mFileOpen == false) {
break;
}
bufferSize = ALIGN_PREV(bufferSize, 0x20);
@ -367,11 +367,11 @@ size_t JKRFileCache::readResource(void* resourceBuffer, unsigned long bufferSize
if (consumedSize > bufferSize) {
consumedSize = bufferSize;
}
CCacheBlock* block = findCacheBlock(file.mDvdPlayer._30);
CCacheBlock* block = findCacheBlock(file.mDvdPlayer.startAddr);
if (block == nullptr) {
file.read(resourceBuffer, consumedSize, 0);
} else {
memcpy(resourceBuffer, block->_1C, consumedSize);
memcpy(resourceBuffer, block->mFilePtr, consumedSize);
}
}
JKRHeap::sSystemHeap->free(dvdPathName);
@ -396,9 +396,9 @@ size_t JKRFileCache::readRelResource(void* p1, u32 p2, const char* p3)
size_t JKRFileCache::readResource(void* resourceBuffer, unsigned long bufferSize, unsigned long type, const char* fileName)
{
char directoryPath[256];
size_t len = strlen(_48);
size_t len = strlen(mRootPath);
char* v1 = directoryPath + len;
strcpy(directoryPath, _48);
strcpy(directoryPath, mRootPath);
if (findFile(directoryPath, fileName)) {
return readResource(resourceBuffer, bufferSize, v1);
}
@ -413,7 +413,7 @@ size_t JKRFileCache::readResource(void* resourceBuffer, unsigned long bufferSize
void JKRFileCache::removeResourceAll()
{
for (JSULinkIterator<CCacheBlock> iterator(mCacheBlockList.getFirst()); iterator != nullptr;) {
JKRHeap::free(const_cast<void*>(iterator->_1C), _38);
JKRHeap::free(const_cast<void*>(iterator->mFilePtr), mParentHeap);
mCacheBlockList.remove(iterator.getObject());
delete (iterator++).getObject();
}
@ -431,8 +431,8 @@ bool JKRFileCache::removeResource(void* resource)
if (link == nullptr) {
return false;
}
if (--link->_10 == 0) {
JKRHeap::free(resource, _38);
if (--link->mRefCount == 0) {
JKRHeap::free(resource, mParentHeap);
mCacheBlockList.remove(link);
delete link;
}
@ -463,7 +463,7 @@ bool JKRFileCache::detachResource(void* resource)
long JKRFileCache::getResSize(const void* resource) const
{
CCacheBlock* block = findCacheBlock(resource);
return (block == nullptr) ? -1 : block->_18;
return (block == nullptr) ? -1 : block->mFileSize;
}
/*
@ -497,7 +497,7 @@ JKRFileFinder* JKRFileCache::getFirstFile(const char* p1) const
char* path = getDvdPathName(p1);
JKRDvdFinder* finder = new (JKRHeap::sSystemHeap, 0) JKRDvdFinder(path);
JKRHeap::sSystemHeap->free(path);
if (finder->_10 != 1) {
if (finder->mIsAvailable != true) {
delete finder;
return nullptr;
}
@ -520,7 +520,7 @@ JKRFileFinder* JKRFileCache::getFirstFile(const char* p1) const
JKRFileCache::CCacheBlock* JKRFileCache::findCacheBlock(const void* data) const
{
for (JSULink<CCacheBlock>* link = mCacheBlockList.getFirst(); link != nullptr; link = link->getNext()) {
if (link->getObject()->_1C == data) {
if (link->getObject()->mFilePtr == data) {
return link->getObject();
}
}
@ -536,7 +536,7 @@ JKRFileCache::CCacheBlock* JKRFileCache::findCacheBlock(const void* data) const
JKRFileCache::CCacheBlock* JKRFileCache::findCacheBlock(unsigned long id) const
{
for (JSULink<CCacheBlock>* link = mCacheBlockList.getFirst(); link != nullptr; link = link->getNext()) {
if (link->getObject()->_14 == id) {
if (link->getObject()->mFileID == id) {
return link->getObject();
}
}
@ -599,7 +599,7 @@ bool JKRFileCache::findFile(char* directoryPath, const char* fileName) const
goto close;
}
*endOfPath = '\0';
cmpResult = strcmp(fileName, entry.mFileNameMaybe);
cmpResult = strcmp(fileName, next.name);
result = !cmpResult;
// } while (cmpResult != 0);
if (!result) {
@ -929,12 +929,12 @@ char* JKRFileCache::getDvdPathName(const char* fileName) const
char* dvdPathName;
if (*fileName == '/') {
// if absolute path...
size_t length = strlen(_48) + strlen(fileName) + 2;
size_t length = strlen(mRootPath) + strlen(fileName) + 2;
void* memory = JKRHeap::sSystemHeap->alloc(length, 1);
dvdPathName = (char*)memory;
strcpy(dvdPathName, _48);
strcpy(dvdPathName, mRootPath);
if (fileName[1] != '\0') {
if (_48[1] == '\0') {
if (mRootPath[1] == '\0') {
strcat(dvdPathName, fileName + 1);
} else {
strcat(dvdPathName, fileName);
@ -973,10 +973,10 @@ void JKRFileCache::convStrLower(char* str) const
*/
JKRFileCache::CCacheBlock::CCacheBlock(unsigned long p1, unsigned long dataLength, const void* data)
: JSULink(this)
, _10(1)
, _14(p1)
, _18(dataLength)
, _1C(data)
, mRefCount(1)
, mFileID(p1)
, mFileSize(dataLength)
, mFilePtr(data)
{
}

View File

@ -78,8 +78,8 @@
.global mMemorySize__7JKRHeap
mMemorySize__7JKRHeap:
.skip 0x4
.global bVerbose___Q27JKRHeap6TState
bVerbose___Q27JKRHeap6TState:
.global bVerbose____Q27JKRHeap6TState
bVerbose____Q27JKRHeap6TState:
.skip 0x8
.section .sdata2, "a" # 0x80516360 - 0x80520E40
@ -103,7 +103,7 @@ u8* JKRHeap::mCodeEnd;
u8* JKRHeap::mUserRamStart;
u8* JKRHeap::mUserRamEnd;
u32 JKRHeap::mMemorySize;
bool JKRHeap::TState::bVerbose;
bool JKRHeap::TState::bVerbose_;
u8 JKRHeap::sDefaultFillFlag = 1;
@ -468,7 +468,7 @@ void JKRHeap::freeTail() { do_freeTail(); }
* Address: 80023788
* Size: 00002C
*/
void JKRHeap::resize(void* memoryBlock, u32 newSize) { do_resize(memoryBlock, newSize); }
int JKRHeap::resize(void* memoryBlock, u32 newSize) { do_resize(memoryBlock, newSize); }
/*
* --INFO--
@ -1189,26 +1189,7 @@ lbl_80023E38:
* Address: 80023E50
* Size: 000034
*/
void JKRDefaultMemoryErrorRoutine(void*, unsigned long, int)
{
OSErrorLine(791, "abort\n");
/*
.loc_0x0:
stwu r1, -0x10(r1)
mflr r0
lis r3, 0x8047
li r4, 0x317
stw r0, 0x14(r1)
addi r3, r3, 0x3A68
subi r5, r2, 0x7E30
crclr 6, 0x6
bl 0xC98FC
lwz r0, 0x14(r1)
mtlr r0
addi r1, r1, 0x10
blr
*/
}
static void JKRDefaultMemoryErrorRoutine(void* heap, u32 size, int alignment) { OSErrorLine(791, "abort\n"); }
/*
* --INFO--
@ -1333,35 +1314,35 @@ void operator delete[](void* memory)
*/
}
/*
* --INFO--
* Address: ........
* Size: 00007C
*/
JKRHeap::TState::TState(const JKRHeap::TState::TArgument& arg, const JKRHeap::TState::TLocation& location)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000080
*/
JKRHeap::TState::TState(const JKRHeap::TState& other, bool p2)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 000080
*/
JKRHeap::TState::TState(const JKRHeap::TState& other, const JKRHeap::TState::TLocation& location, bool p3)
{
// UNUSED FUNCTION
}
///*
// * --INFO--
// * Address: ........
// * Size: 00007C
// */
// JKRHeap::TState::TState(const JKRHeap::TState::TArgument& arg, const JKRHeap::TState::TLocation& location)
//{
// // UNUSED FUNCTION
//}
//
///*
// * --INFO--
// * Address: ........
// * Size: 000080
// */
// JKRHeap::TState::TState(const JKRHeap::TState& other, bool p2)
//{
// // UNUSED FUNCTION
//}
//
///*
// * --INFO--
// * Address: ........
// * Size: 000080
// */
// JKRHeap::TState::TState(const JKRHeap::TState& other, const JKRHeap::TState::TLocation& location, bool p3)
//{
// // UNUSED FUNCTION
//}
/*
* --INFO--
@ -1422,7 +1403,7 @@ lbl_800241A0:
mr r3, r31
addi r4, r1, 0x54
bl state_dumpDifference__7JKRHeapFRCQ27JKRHeap6TStateRCQ27JKRHeap6TState lbz
r0, bVerbose___Q27JKRHeap6TState@sda21(r13) cmplwi r0, 0 beq lbl_800241E8
r0, bVerbose____Q27JKRHeap6TState@sda21(r13) cmplwi r0, 0 beq lbl_800241E8
lwz r3, 0x10(r31)
mr r4, r31
lwz r12, 0(r3)
@ -1477,7 +1458,7 @@ lbl_80024274:
addi r3, r1, 0x54
addi r4, r1, 0x30
bl state_dumpDifference__7JKRHeapFRCQ27JKRHeap6TStateRCQ27JKRHeap6TState lbz
r0, bVerbose___Q27JKRHeap6TState@sda21(r13) cmplwi r0, 0 beq lbl_800242BC
r0, bVerbose____Q27JKRHeap6TState@sda21(r13) cmplwi r0, 0 beq lbl_800242BC
lwz r3, 0x64(r1)
addi r4, r1, 0x54
lwz r12, 0(r3)
@ -1687,115 +1668,3 @@ lbl_800244F8:
blr
*/
}
/*
* --INFO--
* Address: 80024510
* Size: 000034
*/
void JKRHeap::TState::dump() const { mHeap->state_dump(this); }
/*
* --INFO--
* Address: 80024544
* Size: 000008
*/
bool JKRHeap::TState::isVerbose() { return bVerbose; }
/*
* --INFO--
* Address: 8002454C
* Size: 000080
* __ct__Q27JKRHeap6TStateFPC7JKRHeapUlb
*/
JKRHeap::TState::TState(const JKRHeap* heap, u32 id, bool isCompareOnDestructed)
: _00(nullptr)
, _04(0)
, mHeap(heap ? heap : sCurrentHeap)
, mId(id)
, mIsCompareOnDestructed(isCompareOnDestructed)
, _1C(0)
, _20(-1)
{
mHeap->state_register(this, mId);
}
/*
* --INFO--
* Address: 800245CC
* Size: 000008
*/
bool JKRHeap::TState::isCompareOnDestructed() const { return mIsCompareOnDestructed; }
/*
* --INFO--
* Address: 800245D4
* Size: 000014
*/
JKRHeap::TState::TLocation::TLocation()
: _00(nullptr)
, _04(-1)
{
}
/*
* --INFO--
* Address: 800245E8
* Size: 000020
* __ct__Q37JKRHeap6TState9TArgumentFPC7JKRHeapUlb
*/
JKRHeap::TState::TArgument::TArgument(const JKRHeap* heap, u32 p2, bool p3)
: mHeap((heap) ? heap : JKRHeap::sCurrentHeap)
, _04(p2)
, _08(p3)
{
}
/*
* --INFO--
* Address: 80024608
* Size: 000008
*/
const JKRHeap* JKRHeap::TState::getHeap() const { return mHeap; }
/*
* --INFO--
* Address: 80024610
* Size: 000008
*/
u32 JKRHeap::TState::getId() const { return mId; }
/*
* --INFO--
* Address: 80024618
* Size: 000004
*/
void JKRHeap::state_register(JKRHeap::TState*, u32) const { }
/*
* --INFO--
* Address: 8002461C
* Size: 000018
*/
bool JKRHeap::state_compare(const JKRHeap::TState& state1, const JKRHeap::TState& state2) const { return (state1._04 == state2._04); }
/*
* --INFO--
* Address: 80024634
* Size: 000004
*/
void JKRHeap::state_dumpDifference(const JKRHeap::TState&, const JKRHeap::TState&) { }
/*
* --INFO--
* Address: 80024638
* Size: 000004
*/
void JKRHeap::state_dump(const JKRHeap::TState*) const { }
/*
* --INFO--
* Address: 8002463C
* Size: 000008
*/
bool JKRHeap::dump_sort() { return true; }