mirror of
https://github.com/projectPiki/pikmin2.git
synced 2024-11-27 07:10:42 +00:00
JKernel progress and diffable
JKRFile weak functions are giving me trouble
This commit is contained in:
parent
6f9ae95555
commit
9d26b9c05c
@ -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) |
|
||||
|
@ -147,6 +147,7 @@ struct JKRAram : public JKRThread {
|
||||
};
|
||||
|
||||
struct JKRAramArchive : public JKRArchive {
|
||||
JKRAramArchive(); // unused
|
||||
JKRAramArchive(long, EMountDirection);
|
||||
|
||||
virtual ~JKRAramArchive(); // _08
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
// */
|
||||
// }
|
||||
|
@ -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)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -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; }
|
||||
|
Loading…
Reference in New Issue
Block a user