dol2asm OK

This commit is contained in:
Julgodis
2021-03-28 22:49:05 +02:00
parent 3d66902e1a
commit 1e95d29b60
60106 changed files with 4755966 additions and 1107376 deletions
+147 -83
View File
@@ -1,103 +1,167 @@
#include "JSystem/JKernel/JKRFileFinder/JKRFileFinder.h"
#include "JSystem/JKernel/JKRArchive/JKRArchive.h"
#include "dvd/dvd.h"
#include "global.h"
//
// Generated By: dol2asm
// Translation Unit: JKRFileFinder
//
extern "C" {
void __dl__FPv(void);
#include "dol2asm.h"
#include "dolphin/types.h"
#include "JSystem/JKernel/JKRFileFinder.h"
//
// Types:
//
struct JKRFileFinder {
/* 802D4910 */ ~JKRFileFinder();
};
struct JKRDvdFinder {
/* 802D4770 */ JKRDvdFinder(char const*);
/* 802D47F4 */ ~JKRDvdFinder();
/* 802D4874 */ void findNextFile();
};
struct JKRArchive {
struct SDirEntry {
};
/* 802D5AC0 */ void getDirEntry(JKRArchive::SDirEntry*, u32) const;
};
struct JKRArcFinder {
/* 802D4638 */ JKRArcFinder(JKRArchive*, s32, s32);
/* 802D46C4 */ void findNextFile();
/* 802D4958 */ ~JKRArcFinder();
};
//
// Forward References:
//
extern "C" void __ct__12JKRArcFinderFP10JKRArchivell();
extern "C" void findNextFile__12JKRArcFinderFv();
extern "C" void __ct__12JKRDvdFinderFPCc();
extern "C" void __dt__12JKRDvdFinderFv();
extern "C" void findNextFile__12JKRDvdFinderFv();
extern "C" void __dt__13JKRFileFinderFv();
extern "C" void __dt__12JKRArcFinderFv();
//
// External References:
//
void operator delete(void*);
extern "C" void __dl__FPv();
extern "C" void getDirEntry__10JKRArchiveCFPQ210JKRArchive9SDirEntryUl();
extern "C" void DVDOpenDir();
extern "C" void DVDReadDir();
extern "C" bool DVDCloseDir();
//
// Declarations:
//
/* ############################################################################################## */
/* 803CC208-803CC218 0010+00 s=2 e=0 z=0 None .data __vt__12JKRDvdFinder */
SECTION_DATA static void* __vt__12JKRDvdFinder[4] = {
(void*)NULL,
(void*)NULL,
(void*)__dt__12JKRDvdFinderFv,
(void*)findNextFile__12JKRDvdFinderFv,
};
/* 803CC218-803CC228 0010+00 s=2 e=0 z=0 None .data __vt__12JKRArcFinder */
SECTION_DATA static void* __vt__12JKRArcFinder[4] = {
(void*)NULL,
(void*)NULL,
(void*)__dt__12JKRArcFinderFv,
(void*)findNextFile__12JKRArcFinderFv,
};
/* 803CC228-803CC238 0010+00 s=5 e=0 z=0 None .data __vt__13JKRFileFinder */
SECTION_DATA static void* __vt__13JKRFileFinder[4] = {
(void*)NULL,
(void*)NULL,
(void*)__dt__13JKRFileFinderFv,
(void*)NULL,
};
/* 802D4638-802D46C4 008C+00 s=0 e=1 z=0 None .text __ct__12JKRArcFinderFP10JKRArchivell */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm JKRArcFinder::JKRArcFinder(JKRArchive* param_0, s32 param_1, s32 param_2) {
nofralloc
#include "asm/JSystem/JKernel/JKRFileFinder/__ct__12JKRArcFinderFP10JKRArchivell.s"
}
#pragma pop
extern u8 lbl_803CC208;
extern u8 lbl_803CC228;
extern u8 lbl_803CC218;
JKRArcFinder::JKRArcFinder(JKRArchive* archive, s32 startIndex, u32 numEntries) : JKRFileFinder() {
mArchive = archive;
mIsAvailable = (s32)numEntries > 0;
mStartIndex = startIndex;
mEndIndex = startIndex + numEntries - 1;
mNextIndex = mStartIndex;
findNextFile();
/* 802D46C4-802D4770 00AC+00 s=1 e=0 z=0 None .text findNextFile__12JKRArcFinderFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JKRArcFinder::findNextFile() {
nofralloc
#include "asm/JSystem/JKernel/JKRFileFinder/findNextFile__12JKRArcFinderFv.s"
}
#pragma pop
bool JKRArcFinder::findNextFile(void) {
SDirEntry entry;
if (mIsAvailable) {
mIsAvailable = !(mNextIndex > mEndIndex);
if (mIsAvailable) {
mIsAvailable = mArchive->getDirEntry(&entry, mNextIndex);
mEntryName = entry.name;
mEntryFileIndex = mNextIndex;
mEntryId = entry.other.id;
mEntryTypeFlags = entry.other.flags;
mIsFileOrDirectory = (mEntryTypeFlags >> 1) & 1;
mNextIndex++;
}
}
return mIsAvailable;
/* 802D4770-802D47F4 0084+00 s=0 e=1 z=0 None .text __ct__12JKRDvdFinderFPCc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm JKRDvdFinder::JKRDvdFinder(char const* param_0) {
nofralloc
#include "asm/JSystem/JKernel/JKRFileFinder/__ct__12JKRDvdFinderFPCc.s"
}
#pragma pop
JKRDvdFinder::JKRDvdFinder(const char* directory) : JKRFileFinder() {
mDvdIsOpen = DVDOpenDir(directory, &mDvdDirectory);
mIsAvailable = mDvdIsOpen;
findNextFile();
}
// JKRFileFinder::~JKRFileFinder is not inlined
#ifdef NONMATCHING
JKRDvdFinder::~JKRDvdFinder() {
if (mDvdIsOpen) {
DVDCloseDir(&mDvdDirectory);
}
}
#else
/* 802D47F4-802D4874 0080+00 s=1 e=0 z=0 None .text __dt__12JKRDvdFinderFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm JKRDvdFinder::~JKRDvdFinder() {
nofralloc
#include "JSystem/JKernel/JKRFileFinder/asm/func_802D47F4.s"
nofralloc
#include "asm/JSystem/JKernel/JKRFileFinder/__dt__12JKRDvdFinderFv.s"
}
#endif
#pragma pop
// everything matches except:
// u16 flags = 1;
// if(mIsFileOrDirectory) flags = 2;
// mEntryTypeFlags = flags;
#ifdef NONMATCHING
bool JKRDvdFinder::findNextFile(void) {
if (mIsAvailable) {
DVDDirectoryEntry directoryEntry;
mIsAvailable = DVDReadDir(&mDvdDirectory, &directoryEntry);
if (mIsAvailable) {
mIsFileOrDirectory = directoryEntry.is_directory != 0;
mEntryNameOffset = directoryEntry.name;
mEntryFileIndex = directoryEntry.entry_number;
mEntryId = 0;
u16 flags = 1;
if (mIsFileOrDirectory)
flags = 2;
mEntryTypeFlags = flags;
}
}
return mIsAvailable;
/* 802D4874-802D4910 009C+00 s=1 e=0 z=0 None .text findNextFile__12JKRDvdFinderFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JKRDvdFinder::findNextFile() {
nofralloc
#include "asm/JSystem/JKernel/JKRFileFinder/findNextFile__12JKRDvdFinderFv.s"
}
#else
asm bool JKRDvdFinder::findNextFile(void) {
nofralloc
#include "JSystem/JKernel/JKRFileFinder/asm/func_802D4874.s"
#pragma pop
/* 802D4910-802D4958 0048+00 s=1 e=0 z=0 None .text __dt__13JKRFileFinderFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm JKRFileFinder::~JKRFileFinder() {
nofralloc
#include "asm/JSystem/JKernel/JKRFileFinder/__dt__13JKRFileFinderFv.s"
}
#endif
#pragma pop
JKRFileFinder::~JKRFileFinder() {}
// JKRFileFinder::~JKRFileFinder is not inlined (same problem as with JKRDvdFinder::~JKRDvdFinder)
#ifdef NONMATCHING
JKRArcFinder::~JKRArcFinder() {}
#else
/* 802D4958-802D49B4 005C+00 s=1 e=0 z=0 None .text __dt__12JKRArcFinderFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm JKRArcFinder::~JKRArcFinder() {
nofralloc
#include "JSystem/JKernel/JKRFileFinder/asm/func_802D4958.s"
nofralloc
#include "asm/JSystem/JKernel/JKRFileFinder/__dt__12JKRArcFinderFv.s"
}
#endif
#pragma pop