// // Generated By: dol2asm // Translation Unit: JKRMemArchive // #include "dol2asm.h" #include "dolphin/types.h" #include "JSystem/JKernel/JKRMemArchive.h" // // Types: // struct JUTException { /* 802E21FC */ // False False // char const* False // char const False // char False // int False // char const* False // char const False // char False // ... False void panic_f(char const*, int, char const*, ...); }; struct JSUPtrLink { }; struct JSUPtrList { /* 802DBFF0 */ // False False // JSUPtrLink* False // JSUPtrLink False void prepend(JSUPtrLink*); /* 802DC15C */ // False False // JSUPtrLink* False // JSUPtrLink False void remove(JSUPtrLink*); }; struct JKRMemBreakFlag { }; struct JKRArchive { struct EMountDirection { }; struct SDIFileEntry { }; struct EMountMode { }; /* 802D5A38 */ // False False // char const* False // char const False // char False void becomeCurrent(char const*); /* 802D5C64 */ // False False // u32 False // char const* False // char const False // char False void getResource(u32, char const*); /* 802D5BE8 */ // False False // char const* False // char const False // char False void getResource(char const*); /* 802D5D8C */ // False False // void* False // void False // u32 False // u32 False // char const* False // char const False // char False void readResource(void*, u32, u32, char const*); /* 802D5E30 */ // False False // void* False // void False // u32 False // char const* False // char const False // char False void readResource(void*, u32, char const*); /* 802D609C */ // False False // void* False // void False void detachResource(void*); /* 802D60D8 */ // False False // void const* False // void const False // void False void getResSize(void const*) const; /* 802D6150 */ // False False // char const* False // char const False // char False void countFile(char const*) const; /* 802D61B0 */ // False False // char const* False // char const False // char False void getFirstFile(char const*) const; /* 802D6294 */ // False False // s32 False // JKRArchive::EMountMode False JKRArchive(s32, JKRArchive::EMountMode); /* 802D6334 */ // False False ~JKRArchive(); /* 802D6734 */ // False False // void const* False // void const False // void False void findPtrResource(void const*) const; /* 802D693C */ // False False // JKRArchive::SDIFileEntry* False // JKRArchive::SDIFileEntry False // u32 False void setExpandSize(JKRArchive::SDIFileEntry*, u32); /* 802D6978 */ // False False // JKRArchive::SDIFileEntry* False // JKRArchive::SDIFileEntry False void getExpandSize(JKRArchive::SDIFileEntry*) const; }; struct JKRMemArchive { /* 802D6A6C */ // False False // void* False // void False // u32 False // JKRMemBreakFlag False JKRMemArchive(void*, u32, JKRMemBreakFlag); /* 802D69B8 */ // False False // s32 False // JKRArchive::EMountDirection False JKRMemArchive(s32, JKRArchive::EMountDirection); /* 802D6B24 */ // True False ~JKRMemArchive(); /* 802D6BCC */ // True False // s32 False // JKRArchive::EMountDirection False void open(s32, JKRArchive::EMountDirection); /* 802D6D30 */ // True False // void* False // void False // u32 False // JKRMemBreakFlag False void open(void*, u32, JKRMemBreakFlag); /* 802D6E10 */ // True False // void* False // void False // u32 False // JKRArchive::SDIFileEntry* False // JKRArchive::SDIFileEntry False // u32* False // u32 False void fetchResource(void*, u32, JKRArchive::SDIFileEntry*, u32*); /* 802D6DDC */ // True False // JKRArchive::SDIFileEntry* False // JKRArchive::SDIFileEntry False // u32* False // u32 False void fetchResource(JKRArchive::SDIFileEntry*, u32*); /* 802D6ED0 */ // True False void removeResourceAll(); /* 802D6F20 */ // True False // void* False // void False void removeResource(void*); /* 802D6F5C */ // False False // u8* False // u8 False // u32 False // u8* False // u8 False // u32 False // int False void fetchResource_subroutine(u8*, u32, u8*, u32, int); /* 802D7030 */ // True False // void const* False // void const False // void False void getExpandedResSize(void const*) const; }; struct JKRHeap { /* 802CE500 */ // False False // void* False // void False // JKRHeap* False // JKRHeap False void free(void*, JKRHeap*); /* 802CE83C */ // False False // void* False // void False void findFromRoot(void*); }; struct JKRFileLoader { /* 802D41D4 */ // False False void unmount(); }; struct JKRExpandSwitch { }; struct JKRDvdRipper { struct EAllocDirection { }; /* 802D9C54 */ // False False // s32 False // u8* False // u8 False // JKRExpandSwitch False // u32 False // JKRHeap* False // JKRHeap False // JKRDvdRipper::EAllocDirection False // u32 False // int* False // int False // u32* False // u32 False void loadToMainRAM(s32, u8*, JKRExpandSwitch, u32, JKRHeap*, JKRDvdRipper::EAllocDirection, u32, int*, u32*); }; struct JKRDecomp { /* 802DB988 */ // False False // u8* False // u8 False // u8* False // u8 False // u32 False // u32 False void orderSync(u8*, u8*, u32, u32); }; // // Forward References: // // False False // s32 False // JKRArchive::EMountDirection False extern "C" void __ct__13JKRMemArchiveFlQ210JKRArchive15EMountDirection(); // False False // void* False // void False // u32 False // JKRMemBreakFlag False extern "C" void __ct__13JKRMemArchiveFPvUl15JKRMemBreakFlag(); // True False extern "C" void __dt__13JKRMemArchiveFv(); // True False // s32 False // JKRArchive::EMountDirection False extern "C" void open__13JKRMemArchiveFlQ210JKRArchive15EMountDirection(); // True False // void* False // void False // u32 False // JKRMemBreakFlag False extern "C" void open__13JKRMemArchiveFPvUl15JKRMemBreakFlag(); // True False // JKRArchive::SDIFileEntry* False // JKRArchive::SDIFileEntry False // u32* False // u32 False extern "C" void fetchResource__13JKRMemArchiveFPQ210JKRArchive12SDIFileEntryPUl(); // True False // void* False // void False // u32 False // JKRArchive::SDIFileEntry* False // JKRArchive::SDIFileEntry False // u32* False // u32 False extern "C" void fetchResource__13JKRMemArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl(); // True False extern "C" void removeResourceAll__13JKRMemArchiveFv(); // True False // void* False // void False extern "C" void removeResource__13JKRMemArchiveFPv(); // False False // u8* False // u8 False // u32 False // u8* False // u8 False // u32 False // int False extern "C" void fetchResource_subroutine__13JKRMemArchiveFPUcUlPUcUli(); // True False // void const* False // void const False // void False extern "C" void getExpandedResSize__13JKRMemArchiveCFPCv(); extern "C" extern char const* const JKRMemArchive__stringBase0; extern "C" extern void* __vt__13JKRMemArchive[20]; // // External References: // // False False // void False // void* False // void False void operator delete(void*); // False False SECTION_INIT void memcpy(); // False False // void* False // void False // JKRHeap* False // JKRHeap False extern "C" void free__7JKRHeapFPvP7JKRHeap(); // False False // void* False // void False extern "C" void findFromRoot__7JKRHeapFPv(); // False False // void False // void* False // void False extern "C" void __dl__FPv(); // False False extern "C" void unmount__13JKRFileLoaderFv(); // False False // char const* False // char const False // char False extern "C" void becomeCurrent__10JKRArchiveFPCc(); // False False // char const* False // char const False // char False extern "C" void getResource__10JKRArchiveFPCc(); // False False // u32 False // char const* False // char const False // char False extern "C" void getResource__10JKRArchiveFUlPCc(); // False False // void* False // void False // u32 False // u32 False // char const* False // char const False // char False extern "C" void readResource__10JKRArchiveFPvUlUlPCc(); // False False // void* False // void False // u32 False // char const* False // char const False // char False extern "C" void readResource__10JKRArchiveFPvUlPCc(); // False False // void* False // void False extern "C" void detachResource__10JKRArchiveFPv(); // False False // void const* False // void const False // void False extern "C" void getResSize__10JKRArchiveCFPCv(); // False False // char const* False // char const False // char False extern "C" void countFile__10JKRArchiveCFPCc(); // False False // char const* False // char const False // char False extern "C" void getFirstFile__10JKRArchiveCFPCc(); // False False // s32 False // JKRArchive::EMountMode False extern "C" void __ct__10JKRArchiveFlQ210JKRArchive10EMountMode(); // False False extern "C" void __dt__10JKRArchiveFv(); // False False // void const* False // void const False // void False extern "C" void findPtrResource__10JKRArchiveCFPCv(); // False False // JKRArchive::SDIFileEntry* False // JKRArchive::SDIFileEntry False // u32 False extern "C" void setExpandSize__10JKRArchiveFPQ210JKRArchive12SDIFileEntryUl(); // False False // JKRArchive::SDIFileEntry* False // JKRArchive::SDIFileEntry False extern "C" void getExpandSize__10JKRArchiveCFPQ210JKRArchive12SDIFileEntry(); // False False // s32 False // u8* False // u8 False // JKRExpandSwitch False // u32 False // JKRHeap* False // JKRHeap False // JKRDvdRipper::EAllocDirection False // u32 False // int* False // int False // u32* False // u32 False extern "C" void loadToMainRAM__12JKRDvdRipperFlPUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl(); // False False // u8* False // u8 False // u8* False // u8 False // u32 False // u32 False extern "C" void orderSync__9JKRDecompFPUcPUcUlUl(); // False False // JSUPtrLink* False // JSUPtrLink False extern "C" void prepend__10JSUPtrListFP10JSUPtrLink(); // False False // JSUPtrLink* False // JSUPtrLink False extern "C" void remove__10JSUPtrListFP10JSUPtrLink(); // False False // char const* False // char const False // char False // int False // char const* False // char const False // char False // ... False extern "C" void panic_f__12JUTExceptionFPCciPCce(); // False False extern "C" void DCInvalidateRange(); // False False extern "C" void _savegpr_28(); // False False extern "C" void _savegpr_29(); // False False extern "C" void _restgpr_28(); // False False extern "C" void _restgpr_29(); extern "C" extern u8 sVolumeList__13JKRFileLoader[12]; // // Declarations: // /* ############################################################################################## */ /* 803CC2D8-803CC328 0050+00 s=3 e=0 z=0 None .data __vt__13JKRMemArchive */ SECTION_DATA void* __vt__13JKRMemArchive[20] = { (void*)NULL /* RTTI */, (void*)NULL, (void*)__dt__13JKRMemArchiveFv, (void*)unmount__13JKRFileLoaderFv, (void*)becomeCurrent__10JKRArchiveFPCc, (void*)getResource__10JKRArchiveFPCc, (void*)getResource__10JKRArchiveFUlPCc, (void*)readResource__10JKRArchiveFPvUlPCc, (void*)readResource__10JKRArchiveFPvUlUlPCc, (void*)removeResourceAll__13JKRMemArchiveFv, (void*)removeResource__13JKRMemArchiveFPv, (void*)detachResource__10JKRArchiveFPv, (void*)getResSize__10JKRArchiveCFPCv, (void*)countFile__10JKRArchiveCFPCc, (void*)getFirstFile__10JKRArchiveCFPCc, (void*)getExpandedResSize__13JKRMemArchiveCFPCv, (void*)fetchResource__13JKRMemArchiveFPQ210JKRArchive12SDIFileEntryPUl, (void*)fetchResource__13JKRMemArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl, (void*)setExpandSize__10JKRArchiveFPQ210JKRArchive12SDIFileEntryUl, (void*)getExpandSize__10JKRArchiveCFPQ210JKRArchive12SDIFileEntry, }; /* 802D69B8-802D6A6C 00B4+00 s=0 e=2 z=0 None .text __ct__13JKRMemArchiveFlQ210JKRArchive15EMountDirection */ // 802D69C8: 803621DC (_savegpr_29) // 802D69DC: 802D6294 (__ct__10JKRArchiveFlQ210JKRArchive10EMountMode) // 802D69E0: 803CC2D8 (__vt__13JKRMemArchive) // 802D69E4: 803CC2D8 (__vt__13JKRMemArchive) // 802D6A04: 802D6BCC (open__13JKRMemArchiveFlQ210JKRArchive15EMountDirection) // 802D6A38: 80434354 (sVolumeList__13JKRFileLoader) // 802D6A3C: 80434354 (sVolumeList__13JKRFileLoader) // 802D6A44: 802DBFF0 (prepend__10JSUPtrListFP10JSUPtrLink) // 802D6A58: 80362228 (_restgpr_29) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // False False // s32 False // JKRArchive::EMountDirection False asm JKRMemArchive::JKRMemArchive(s32 param_0, JKRArchive::EMountDirection param_1) { nofralloc #include "asm/JSystem/JKernel/JKRMemArchive/__ct__13JKRMemArchiveFlQ210JKRArchive15EMountDirection.s" } #pragma pop /* 802D6A6C-802D6B24 00B8+00 s=0 e=2 z=0 None .text __ct__13JKRMemArchiveFPvUl15JKRMemBreakFlag */ // 802D6A7C: 803621D8 (_savegpr_28) // 802D6A94: 802D6294 (__ct__10JKRArchiveFlQ210JKRArchive10EMountMode) // 802D6A98: 803CC2D8 (__vt__13JKRMemArchive) // 802D6A9C: 803CC2D8 (__vt__13JKRMemArchive) // 802D6ABC: 802D6D30 (open__13JKRMemArchiveFPvUl15JKRMemBreakFlag) // 802D6AF0: 80434354 (sVolumeList__13JKRFileLoader) // 802D6AF4: 80434354 (sVolumeList__13JKRFileLoader) // 802D6AFC: 802DBFF0 (prepend__10JSUPtrListFP10JSUPtrLink) // 802D6B10: 80362224 (_restgpr_28) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // False False // void* False // void False // u32 False // JKRMemBreakFlag False asm JKRMemArchive::JKRMemArchive(void* param_0, u32 param_1, JKRMemBreakFlag param_2) { nofralloc #include "asm/JSystem/JKernel/JKRMemArchive/__ct__13JKRMemArchiveFPvUl15JKRMemBreakFlag.s" } #pragma pop /* 802D6B24-802D6BCC 00A8+00 s=1 e=0 z=0 None .text __dt__13JKRMemArchiveFv */ // 802D6B44: 803CC2D8 (__vt__13JKRMemArchive) // 802D6B48: 803CC2D8 (__vt__13JKRMemArchive) // 802D6B78: 802CE500 (free__7JKRHeapFPvP7JKRHeap) // 802D6B7C: 80434354 (sVolumeList__13JKRFileLoader) // 802D6B80: 80434354 (sVolumeList__13JKRFileLoader) // 802D6B88: 802DC15C (remove__10JSUPtrListFP10JSUPtrLink) // 802D6B9C: 802D6334 (__dt__10JKRArchiveFv) // 802D6BAC: 802CED3C (__dl__FPv) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // True False asm JKRMemArchive::~JKRMemArchive() { nofralloc #include "asm/JSystem/JKernel/JKRMemArchive/__dt__13JKRMemArchiveFv.s" } #pragma pop /* 802D6BCC-802D6D30 0164+00 s=1 e=0 z=0 None .text open__13JKRMemArchiveFlQ210JKRArchive15EMountDirection */ // 802D6C38: 802D9C54 (loadToMainRAM__12JKRDvdRipperFlPUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl) // 802D6C50: 8033B580 (DCInvalidateRange) // 802D6C80: 802D9C54 (loadToMainRAM__12JKRDvdRipperFlPUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl) // 802D6C98: 8033B580 (DCInvalidateRange) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // True False // s32 False // JKRArchive::EMountDirection False asm void JKRMemArchive::open(s32 param_0, JKRArchive::EMountDirection param_1) { nofralloc #include "asm/JSystem/JKernel/JKRMemArchive/open__13JKRMemArchiveFlQ210JKRArchive15EMountDirection.s" } #pragma pop /* 802D6D30-802D6DDC 00AC+00 s=1 e=0 z=0 None .text open__13JKRMemArchiveFPvUl15JKRMemBreakFlag */ // 802D6DB4: 802CE83C (findFromRoot__7JKRHeapFPv) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // True False // void* False // void False // u32 False // JKRMemBreakFlag False asm void JKRMemArchive::open(void* param_0, u32 param_1, JKRMemBreakFlag param_2) { nofralloc #include "asm/JSystem/JKernel/JKRMemArchive/open__13JKRMemArchiveFPvUl15JKRMemBreakFlag.s" } #pragma pop /* 802D6DDC-802D6E10 0034+00 s=1 e=0 z=0 None .text fetchResource__13JKRMemArchiveFPQ210JKRArchive12SDIFileEntryPUl */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // True False // JKRArchive::SDIFileEntry* False // JKRArchive::SDIFileEntry False // u32* False // u32 False asm void JKRMemArchive::fetchResource(JKRArchive::SDIFileEntry* param_0, u32* param_1) { nofralloc #include "asm/JSystem/JKernel/JKRMemArchive/fetchResource__13JKRMemArchiveFPQ210JKRArchive12SDIFileEntryPUl.s" } #pragma pop /* 802D6E10-802D6ED0 00C0+00 s=1 e=0 z=0 None .text fetchResource__13JKRMemArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl */ // 802D6E20: 803621DC (_savegpr_29) // 802D6E54: 80003540 (memcpy) // 802D6EA0: 802D6F5C (fetchResource_subroutine__13JKRMemArchiveFPUcUlPUcUli) // 802D6EBC: 80362228 (_restgpr_29) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // True False // void* False // void False // u32 False // JKRArchive::SDIFileEntry* False // JKRArchive::SDIFileEntry False // u32* False // u32 False asm void JKRMemArchive::fetchResource(void* param_0, u32 param_1, JKRArchive::SDIFileEntry* param_2, u32* param_3) { nofralloc #include "asm/JSystem/JKernel/JKRMemArchive/fetchResource__13JKRMemArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl.s" } #pragma pop /* 802D6ED0-802D6F20 0050+00 s=1 e=0 z=0 None .text removeResourceAll__13JKRMemArchiveFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // True False asm void JKRMemArchive::removeResourceAll() { nofralloc #include "asm/JSystem/JKernel/JKRMemArchive/removeResourceAll__13JKRMemArchiveFv.s" } #pragma pop /* 802D6F20-802D6F5C 003C+00 s=1 e=0 z=0 None .text removeResource__13JKRMemArchiveFPv */ // 802D6F2C: 802D6734 (findPtrResource__10JKRArchiveCFPCv) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // True False // void* False // void False asm void JKRMemArchive::removeResource(void* param_0) { nofralloc #include "asm/JSystem/JKernel/JKRMemArchive/removeResource__13JKRMemArchiveFPv.s" } #pragma pop /* ############################################################################################## */ /* 8039D160-8039D188 0027+01 s=1 e=0 z=0 None .rodata @stringBase0 */ #pragma push #pragma force_active on #pragma section ".dead" SECTION_DEAD char const* const stringBase_8039D160 = "JKRMemArchive.cpp"; SECTION_DEAD char const* const stringBase_8039D172 = "%s"; SECTION_DEAD char const* const stringBase_8039D175 = "??? bad sequence\n"; /* @stringBase0 padding */ SECTION_DEAD static char const* const pad_8039D187 = ""; #pragma pop /* 802D6F5C-802D7030 00D4+00 s=1 e=1 z=0 None .text fetchResource_subroutine__13JKRMemArchiveFPUcUlPUcUli */ // 802D6FA4: 80003540 (memcpy) // 802D6FF0: 802DB988 (orderSync__9JKRDecompFPUcPUcUlUl) // 802D6FFC: 8039D160 (JKRMemArchive__stringBase0) // 802D7000: 8039D160 (JKRMemArchive__stringBase0) // 802D7014: 802E21FC (panic_f__12JUTExceptionFPCciPCce) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // False False // u8* False // u8 False // u32 False // u8* False // u8 False // u32 False // int False asm void JKRMemArchive::fetchResource_subroutine(u8* param_0, u32 param_1, u8* param_2, u32 param_3, int param_4) { nofralloc #include "asm/JSystem/JKernel/JKRMemArchive/fetchResource_subroutine__13JKRMemArchiveFPUcUlPUcUli.s" } #pragma pop /* 802D7030-802D70C0 0090+00 s=1 e=0 z=0 None .text getExpandedResSize__13JKRMemArchiveCFPCv */ // 802D704C: 802D6734 (findPtrResource__10JKRArchiveCFPCv) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off // True False // void const* False // void const False // void False asm void JKRMemArchive::getExpandedResSize(void const* param_0) const { nofralloc #include "asm/JSystem/JKernel/JKRMemArchive/getExpandedResSize__13JKRMemArchiveCFPCv.s" } #pragma pop