building RELs

This commit is contained in:
Julgodis
2021-04-06 18:00:35 +02:00
parent f6464a61ce
commit ed1ee30dd2
36358 changed files with 867422 additions and 1426658 deletions
+103 -278
View File
@@ -109,9 +109,6 @@ struct JASDvd {
// Forward References:
//
static void my_DVDConvertPathToEntrynum(char const*);
static void cb(void*);
extern "C" void main__9mDoDvdThdFPv();
extern "C" void create__9mDoDvdThdFl();
extern "C" void suspend__9mDoDvdThdFv();
@@ -144,31 +141,11 @@ extern "C" void __dt__21mDoDvdThd_toMainRam_cFv();
extern "C" void execute__21mDoDvdThd_toMainRam_cFv();
extern "C" void __sinit_m_Do_dvd_thread_cpp();
extern "C" extern char const* const m_Do_m_Do_dvd_thread__stringBase0;
extern "C" extern void* __vt__21mDoDvdThd_toMainRam_c[4];
extern "C" extern void* __vt__25mDoDvdThd_mountXArchive_c[4];
extern "C" extern void* __vt__24mDoDvdThd_mountArchive_c[4];
extern "C" extern void* __vt__20mDoDvdThd_callback_c[4];
extern "C" extern void* __vt__19mDoDvdThd_command_c[4];
extern "C" extern u8 l_threadStack__9mDoDvdThd[4096];
//
// External References:
//
void mDoExt_getAssertHeap();
void mDoExt_getGameHeap();
void mDoExt_getZeldaHeap();
void mDoExt_getCommandHeap();
void mDoExt_getArchiveHeap();
void mDoExt_getArchiveHeapPtr();
void mDoExt_getJ2dHeap();
void cLs_SingleCut(node_class*);
void cLs_Addition(node_list_class*, node_class*);
void cLs_Create(node_list_class*);
void cNd_ForcedClear(node_class*);
void* operator new(u32, JKRHeap*, int);
void operator delete(void*);
extern "C" void OSReport_FatalError();
extern "C" void OSReport_Error();
extern "C" void mDoExt_getAssertHeap__Fv();
@@ -220,13 +197,7 @@ extern "C" extern u8 struct_80450C80[8];
// Declarations:
//
/* 800157FC-80015858 005C+00 s=1 e=0 z=0 None .text main__9mDoDvdThdFPv */
// 80015810: 80340C84 (OSGetCurrentThread)
// 80015820: 802D16B8 (__ct__9JKRThreadFP8OSThreadi)
// 8001582C: 802D1758 (__dt__9JKRThreadFv)
// 80015830: 8000ECE4 (mDoExt_getAssertHeap__Fv)
// 80015834: 802CE438 (becomeCurrentHeap__7JKRHeapFv)
// 8001583C: 80015AD8 (mainLoop__17mDoDvdThd_param_cFv)
/* 800157FC-80015858 01013C 005C+00 1/1 0/1 0/0 .text main__9mDoDvdThdFPv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -237,16 +208,19 @@ asm void mDoDvdThd::main(void* param_0) {
#pragma pop
/* ############################################################################################## */
/* 803DD940-803DDC60 0318+08 s=2 e=0 z=0 None .bss l_thread__9mDoDvdThd */
/* 803DD940-803DDC60 00A660 0318+08 2/2 0/0 0/0 .bss l_thread__9mDoDvdThd */
static u8 l_thread__9mDoDvdThd[792 + 8 /* padding */];
/* 80015858-800158B4 005C+00 s=0 e=1 z=0 None .text create__9mDoDvdThdFl */
// 8001586C: 803DD940 (l_thread__9mDoDvdThd)
// 80015870: 803DD940 (l_thread__9mDoDvdThd)
// 80015878: 800157FC (main__9mDoDvdThdFPv)
// 8001587C: 800157FC (main__9mDoDvdThdFPv)
// 80015894: 8034128C (OSCreateThread)
// 8001589C: 803417B4 (OSResumeThread)
/* 803DDC60-803DEC60 00A980 1000+00 0/1 0/0 0/0 .bss l_threadStack__9mDoDvdThd */
#pragma push
#pragma force_active on
static u8 l_threadStack__9mDoDvdThd[4096];
#pragma pop
/* 803DEC60-803DECC0 00B980 0048+18 5/6 0/0 0/0 .bss l_param__9mDoDvdThd */
static u8 l_param__9mDoDvdThd[72 + 24 /* padding */];
/* 80015858-800158B4 010198 005C+00 0/0 1/1 0/0 .text create__9mDoDvdThdFl */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -256,10 +230,7 @@ asm void mDoDvdThd::create(s32 param_0) {
}
#pragma pop
/* 800158B4-800158DC 0028+00 s=0 e=1 z=0 None .text suspend__9mDoDvdThdFv */
// 800158C0: 803DD940 (l_thread__9mDoDvdThd)
// 800158C4: 803DD940 (l_thread__9mDoDvdThd)
// 800158C8: 80341A3C (OSSuspendThread)
/* 800158B4-800158DC 0101F4 0028+00 0/0 1/1 0/0 .text suspend__9mDoDvdThdFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -269,62 +240,60 @@ asm void mDoDvdThd::suspend() {
}
#pragma pop
/* 800158DC-800158FC 0020+00 s=3 e=0 z=0 None .text my_DVDConvertPathToEntrynum__FPCc */
// 800158E8: 80348528 (DVDConvertPathToEntrynum)
/* 800158DC-800158FC 01021C 0020+00 3/3 0/0 0/0 .text my_DVDConvertPathToEntrynum__FPCc
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm static void my_DVDConvertPathToEntrynum(char const* param_0) {
static asm void my_DVDConvertPathToEntrynum(char const* param_0) {
nofralloc
#include "asm/m_Do/m_Do_dvd_thread/my_DVDConvertPathToEntrynum__FPCc.s"
}
#pragma pop
/* ############################################################################################## */
/* 803A34A8-803A34B8 0010+00 s=2 e=0 z=0 None .data __vt__21mDoDvdThd_toMainRam_c */
SECTION_DATA void* __vt__21mDoDvdThd_toMainRam_c[4] = {
/* 803A34A8-803A34B8 0005C8 0010+00 2/2 0/0 0/0 .data __vt__21mDoDvdThd_toMainRam_c */
SECTION_DATA extern void* __vt__21mDoDvdThd_toMainRam_c[4] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__21mDoDvdThd_toMainRam_cFv,
(void*)execute__21mDoDvdThd_toMainRam_cFv,
};
/* 803A34B8-803A34C8 0010+00 s=2 e=0 z=0 None .data __vt__25mDoDvdThd_mountXArchive_c */
SECTION_DATA void* __vt__25mDoDvdThd_mountXArchive_c[4] = {
/* 803A34B8-803A34C8 0005D8 0010+00 2/2 0/0 0/0 .data __vt__25mDoDvdThd_mountXArchive_c
*/
SECTION_DATA extern void* __vt__25mDoDvdThd_mountXArchive_c[4] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__25mDoDvdThd_mountXArchive_cFv,
(void*)execute__25mDoDvdThd_mountXArchive_cFv,
};
/* 803A34C8-803A34D8 0010+00 s=2 e=0 z=0 None .data __vt__24mDoDvdThd_mountArchive_c */
SECTION_DATA void* __vt__24mDoDvdThd_mountArchive_c[4] = {
/* 803A34C8-803A34D8 0005E8 0010+00 2/2 0/0 0/0 .data __vt__24mDoDvdThd_mountArchive_c */
SECTION_DATA extern void* __vt__24mDoDvdThd_mountArchive_c[4] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__24mDoDvdThd_mountArchive_cFv,
(void*)execute__24mDoDvdThd_mountArchive_cFv,
};
/* 803A34D8-803A34E8 0010+00 s=2 e=0 z=0 None .data __vt__20mDoDvdThd_callback_c */
SECTION_DATA void* __vt__20mDoDvdThd_callback_c[4] = {
/* 803A34D8-803A34E8 0005F8 0010+00 2/2 0/0 0/0 .data __vt__20mDoDvdThd_callback_c */
SECTION_DATA extern void* __vt__20mDoDvdThd_callback_c[4] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__20mDoDvdThd_callback_cFv,
(void*)execute__20mDoDvdThd_callback_cFv,
};
/* 803A34E8-803A34F8 0010+00 s=2 e=0 z=0 None .data __vt__19mDoDvdThd_command_c */
SECTION_DATA void* __vt__19mDoDvdThd_command_c[4] = {
/* 803A34E8-803A34F8 000608 0010+00 2/2 0/0 0/0 .data __vt__19mDoDvdThd_command_c */
SECTION_DATA extern void* __vt__19mDoDvdThd_command_c[4] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__19mDoDvdThd_command_cFv,
(void*)NULL,
};
/* 800158FC-80015944 0048+00 s=5 e=0 z=0 None .text __dt__19mDoDvdThd_command_cFv */
// 80015914: 803A34E8 (__vt__19mDoDvdThd_command_c)
// 80015918: 803A34E8 (__vt__19mDoDvdThd_command_c)
// 80015928: 802CED3C (__dl__FPv)
/* 800158FC-80015944 01023C 0048+00 5/4 0/0 0/0 .text __dt__19mDoDvdThd_command_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -334,10 +303,7 @@ asm mDoDvdThd_command_c::~mDoDvdThd_command_c() {
}
#pragma pop
/* 80015944-8001598C 0048+00 s=1 e=0 z=0 None .text __ct__17mDoDvdThd_param_cFv */
// 80015960: 8033E994 (OSInitMessageQueue)
// 80015968: 8033F008 (OSInitMutex)
// 80015970: 80266040 (cLs_Create__FP15node_list_class)
/* 80015944-8001598C 010284 0048+00 1/1 0/0 0/0 .text __ct__17mDoDvdThd_param_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -347,8 +313,7 @@ asm mDoDvdThd_param_c::mDoDvdThd_param_c() {
}
#pragma pop
/* 8001598C-800159B4 0028+00 s=2 e=0 z=0 None .text kick__17mDoDvdThd_param_cFv */
// 800159A0: 8033E9F4 (OSSendMessage)
/* 8001598C-800159B4 0102CC 0028+00 2/2 0/0 0/0 .text kick__17mDoDvdThd_param_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -358,8 +323,8 @@ asm void mDoDvdThd_param_c::kick() {
}
#pragma pop
/* 800159B4-800159DC 0028+00 s=1 e=0 z=0 None .text waitForKick__17mDoDvdThd_param_cFv */
// 800159C8: 8033EABC (OSReceiveMessage)
/* 800159B4-800159DC 0102F4 0028+00 1/1 0/0 0/0 .text waitForKick__17mDoDvdThd_param_cFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -369,7 +334,7 @@ asm void mDoDvdThd_param_c::waitForKick() {
}
#pragma pop
/* 800159DC-800159E4 0008+00 s=1 e=0 z=0 None .text getFirstCommand__17mDoDvdThd_param_cFv */
/* 800159DC-800159E4 01031C 0008+00 1/1 0/0 0/0 .text getFirstCommand__17mDoDvdThd_param_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -379,12 +344,8 @@ asm void mDoDvdThd_param_c::getFirstCommand() {
}
#pragma pop
/* 800159E4-80015A3C 0058+00 s=4 e=0 z=0 None .text
/* 800159E4-80015A3C 010324 0058+00 4/4 0/0 0/0 .text
* addition__17mDoDvdThd_param_cFP19mDoDvdThd_command_c */
// 80015A04: 8033F040 (OSLockMutex)
// 80015A10: 80265EFC (cLs_Addition__FP15node_list_classP10node_class)
// 80015A18: 8033F11C (OSUnlockMutex)
// 80015A20: 8001598C (kick__17mDoDvdThd_param_cFv)
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -394,12 +355,8 @@ asm void mDoDvdThd_param_c::addition(mDoDvdThd_command_c* param_0) {
}
#pragma pop
/* 80015A3C-80015A90 0054+00 s=1 e=0 z=0 None .text
/* 80015A3C-80015A90 01037C 0054+00 1/1 0/0 0/0 .text
* cut__17mDoDvdThd_param_cFP19mDoDvdThd_command_c */
// 80015A5C: 8033F040 (OSLockMutex)
// 80015A64: 80265E78 (cLs_SingleCut__FP10node_class)
// 80015A6C: 8033F11C (OSUnlockMutex)
// 80015A74: 8001598C (kick__17mDoDvdThd_param_cFv)
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -409,71 +366,17 @@ asm void mDoDvdThd_param_c::cut(mDoDvdThd_command_c* param_0) {
}
#pragma pop
/* ############################################################################################## */
/* 803741A8-803743F8 0250+00 s=2 e=0 z=0 None .rodata @stringBase0 */
#pragma push
#pragma force_active on
#pragma section ".dead"
SECTION_DEAD char const* const stringBase_803741A8 =
"mDoDvdThd_param_c::mainLoop() コマンドの実行が失敗しました。\n";
SECTION_DEAD char const* const stringBase_803741E6 =
"mDoDvdThd_mountArchive_c::execute マウント失敗\n";
SECTION_DEAD char const* const stringBase_80374216 =
"mDoDvdThd_mountArchive_c::execute ゼルダヒープで再チャレンジ!"
"\n";
SECTION_DEAD char const* const stringBase_80374256 =
"mDoDvdThd_mountArchive_c::execute アーカイブヒープで再チャレン"
"ジ!\n";
SECTION_DEAD char const* const stringBase_8037429A =
"mDoDvdThd_mountArchive_c::execute ゲームヒープで再チャレンジ!"
"\n";
SECTION_DEAD char const* const stringBase_803742DA =
"mDoDvdThd_mountArchive_c::execute J2Dヒープで再チャレンジ!"
"\n";
SECTION_DEAD char const* const stringBase_80374317 =
"mDoDvdThd_mountArchive_c::execute ヒープが致命的に足りません!"
"\n";
SECTION_DEAD char const* const stringBase_80374357 =
"mDoDvdThd_getResource_c::create() クラス生成に失敗\n";
// MWCC ignores mapping of some japanese characters using the
// byte 0x5C (ASCII '\'). This is why this string is hex-encoded.
SECTION_DEAD char const* const stringBase_8037438B =
"\x6D\x44\x6F\x44\x76\x64\x54\x68\x64\x5F\x67\x65\x74\x52\x65\x73\x6F\x75\x72\x63\x65\x5F\x63"
"\x3A\x3A\x63\x72\x65\x61\x74\x65\x28\x29\x20\x83\x8A\x83\x5C\x81\x5B\x83\x58\x8E\xE6\x93\xBE"
"\x82\xC9"
"\x8E\xB8\x94\x73\x0A";
// MWCC ignores mapping of some japanese characters using the
// byte 0x5C (ASCII '\'). This is why this string is hex-encoded.
SECTION_DEAD char const* const stringBase_803743C1 =
"\x6D\x44\x6F\x44\x76\x64\x54\x68\x64\x5F\x67\x65\x74\x52\x65\x73\x6F\x75\x72\x63\x65\x5F\x63"
"\x3A\x3A\x65\x78\x65\x63\x75\x74\x65\x28\x29\x20\x83\x8A\x83\x5C\x81\x5B\x83\x58\x8E\xE6\x93"
"\xBE\x82"
"\xC9\x8E\xB8\x94\x73\x0A";
#pragma pop
/* 80015A90-80015AD8 0048+00 s=1 e=0 z=0 None .text cb__FPv */
// 80015AB8: 803741A8 (m_Do_m_Do_dvd_thread__stringBase0)
// 80015ABC: 803741A8 (m_Do_m_Do_dvd_thread__stringBase0)
// 80015AC4: 80006C0C (OSReport_Error)
/* 80015A90-80015AD8 0103D0 0048+00 1/1 0/0 0/0 .text cb__FPv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm static void cb(void* param_0) {
static asm void cb(void* param_0) {
nofralloc
#include "asm/m_Do/m_Do_dvd_thread/cb__FPv.s"
}
#pragma pop
/* 80015AD8-80015B74 009C+00 s=1 e=0 z=0 None .text mainLoop__17mDoDvdThd_param_cFv */
// 80015AF0: 80015A90 (cb__FPv)
// 80015AF4: 80015A90 (cb__FPv)
// 80015B08: 80015A3C (cut__17mDoDvdThd_param_cFP19mDoDvdThd_command_c)
// 80015B0C: 80450C80 (struct_80450C80)
// 80015B18: 8028FEFC (getThreadPointer__6JASDvdFv)
// 80015B28: 8028FB5C (sendCmdMsg__13JASTaskThreadFPFPv_vPCvUl)
// 80015B34: 80015A90 (cb__FPv)
// 80015B3C: 800159DC (getFirstCommand__17mDoDvdThd_param_cFv)
// 80015B50: 800159B4 (waitForKick__17mDoDvdThd_param_cFv)
/* 80015AD8-80015B74 010418 009C+00 1/1 0/0 0/0 .text mainLoop__17mDoDvdThd_param_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -483,10 +386,7 @@ asm void mDoDvdThd_param_c::mainLoop() {
}
#pragma pop
/* 80015B74-80015BB8 0044+00 s=4 e=0 z=0 None .text __ct__19mDoDvdThd_command_cFv */
// 80015B88: 803A34E8 (__vt__19mDoDvdThd_command_c)
// 80015B8C: 803A34E8 (__vt__19mDoDvdThd_command_c)
// 80015B9C: 802662FC (cNd_ForcedClear__FP10node_class)
/* 80015B74-80015BB8 0104B4 0044+00 4/4 0/0 0/0 .text __ct__19mDoDvdThd_command_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -496,11 +396,7 @@ asm mDoDvdThd_command_c::mDoDvdThd_command_c() {
}
#pragma pop
/* 80015BB8-80015C18 0060+00 s=1 e=0 z=0 None .text __dt__20mDoDvdThd_callback_cFv */
// 80015BD8: 803A34D8 (__vt__20mDoDvdThd_callback_c)
// 80015BDC: 803A34D8 (__vt__20mDoDvdThd_callback_c)
// 80015BE8: 800158FC (__dt__19mDoDvdThd_command_cFv)
// 80015BF8: 802CED3C (__dl__FPv)
/* 80015BB8-80015C18 0104F8 0060+00 1/0 0/0 0/0 .text __dt__20mDoDvdThd_callback_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -510,12 +406,7 @@ asm mDoDvdThd_callback_c::~mDoDvdThd_callback_c() {
}
#pragma pop
/* 80015C18-80015C74 005C+00 s=1 e=0 z=0 None .text __ct__20mDoDvdThd_callback_cFPFPv_PvPv */
// 80015C28: 803621DC (_savegpr_29)
// 80015C38: 80015B74 (__ct__19mDoDvdThd_command_cFv)
// 80015C3C: 803A34D8 (__vt__20mDoDvdThd_callback_c)
// 80015C40: 803A34D8 (__vt__20mDoDvdThd_callback_c)
// 80015C60: 80362228 (_restgpr_29)
/* 80015C18-80015C74 010558 005C+00 1/1 0/0 0/0 .text __ct__20mDoDvdThd_callback_cFPFPv_PvPv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -525,23 +416,7 @@ asm mDoDvdThd_callback_c::mDoDvdThd_callback_c(void* (*)(void*), void* param_1)
}
#pragma pop
/* ############################################################################################## */
/* 803DDC60-803DEC60 1000+00 s=0 e=0 z=0 None .bss l_threadStack__9mDoDvdThd */
u8 l_threadStack__9mDoDvdThd[4096];
/* 803DEC60-803DECC0 0048+18 s=5 e=0 z=0 None .bss l_param__9mDoDvdThd */
static u8 l_param__9mDoDvdThd[72 + 24 /* padding */];
/* 80015C74-80015CF0 007C+00 s=0 e=3 z=0 None .text create__20mDoDvdThd_callback_cFPFPv_PvPv
*/
// 80015C84: 803621DC (_savegpr_29)
// 80015C90: 8000EDB0 (mDoExt_getCommandHeap__Fv)
// 80015CA0: 802CEC98 (__nw__FUlP7JKRHeapi)
// 80015CB4: 80015C18 (__ct__20mDoDvdThd_callback_cFPFPv_PvPv)
// 80015CC4: 803DEC60 (l_param__9mDoDvdThd)
// 80015CC8: 803DEC60 (l_param__9mDoDvdThd)
// 80015CD0: 800159E4 (addition__17mDoDvdThd_param_cFP19mDoDvdThd_command_c)
// 80015CDC: 80362228 (_restgpr_29)
/* 80015C74-80015CF0 0105B4 007C+00 0/0 3/3 0/0 .text create__20mDoDvdThd_callback_cFPFPv_PvPv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -551,7 +426,8 @@ asm void mDoDvdThd_callback_c::create(void* (*)(void*), void* param_1) {
}
#pragma pop
/* 80015CF0-80015D44 0054+00 s=1 e=0 z=0 None .text execute__20mDoDvdThd_callback_cFv */
/* 80015CF0-80015D44 010630 0054+00 1/0 0/0 0/0 .text execute__20mDoDvdThd_callback_cFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -561,11 +437,8 @@ asm void mDoDvdThd_callback_c::execute() {
}
#pragma pop
/* 80015D44-80015DA4 0060+00 s=1 e=0 z=0 None .text __dt__24mDoDvdThd_mountArchive_cFv */
// 80015D64: 803A34C8 (__vt__24mDoDvdThd_mountArchive_c)
// 80015D68: 803A34C8 (__vt__24mDoDvdThd_mountArchive_c)
// 80015D74: 800158FC (__dt__19mDoDvdThd_command_cFv)
// 80015D84: 802CED3C (__dl__FPv)
/* 80015D44-80015DA4 010684 0060+00 1/0 0/0 0/0 .text __dt__24mDoDvdThd_mountArchive_cFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -575,11 +448,8 @@ asm mDoDvdThd_mountArchive_c::~mDoDvdThd_mountArchive_c() {
}
#pragma pop
/* 80015DA4-80015E14 0070+00 s=1 e=0 z=0 None .text __ct__24mDoDvdThd_mountArchive_cFUc */
// 80015DC0: 80015B74 (__ct__19mDoDvdThd_command_cFv)
// 80015DC4: 803A34C8 (__vt__24mDoDvdThd_mountArchive_c)
// 80015DC8: 803A34C8 (__vt__24mDoDvdThd_mountArchive_c)
// 80015DF0: 80450C81 (struct_80450C80)
/* 80015DA4-80015E14 0106E4 0070+00 1/1 0/0 0/0 .text __ct__24mDoDvdThd_mountArchive_cFUc
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -589,17 +459,8 @@ asm mDoDvdThd_mountArchive_c::mDoDvdThd_mountArchive_c(u8 param_0) {
}
#pragma pop
/* 80015E14-80015EDC 00C8+00 s=0 e=10 z=1 None .text
/* 80015E14-80015EDC 010754 00C8+00 0/0 10/10 1/1 .text
* create__24mDoDvdThd_mountArchive_cFPCcUcP7JKRHeap */
// 80015E24: 803621D8 (_savegpr_28)
// 80015E34: 8000EDB0 (mDoExt_getCommandHeap__Fv)
// 80015E44: 802CEC98 (__nw__FUlP7JKRHeapi)
// 80015E54: 80015DA4 (__ct__24mDoDvdThd_mountArchive_cFUc)
// 80015E68: 800158DC (my_DVDConvertPathToEntrynum__FPCc)
// 80015EB0: 803DEC60 (l_param__9mDoDvdThd)
// 80015EB4: 803DEC60 (l_param__9mDoDvdThd)
// 80015EBC: 800159E4 (addition__17mDoDvdThd_param_cFP19mDoDvdThd_command_c)
// 80015EC8: 80362224 (_restgpr_28)
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -609,40 +470,7 @@ asm void mDoDvdThd_mountArchive_c::create(char const* param_0, u8 param_1, JKRHe
}
#pragma pop
/* 80015EDC-80016108 022C+00 s=1 e=0 z=0 None .text execute__24mDoDvdThd_mountArchive_cFv */
// 80015EEC: 803621CC (_savegpr_25)
// 80015F14: 8000EDEC (mDoExt_getArchiveHeap__Fv)
// 80015F1C: 803741A8 (m_Do_m_Do_dvd_thread__stringBase0)
// 80015F20: 803741A8 (m_Do_m_Do_dvd_thread__stringBase0)
// 80015F24: 8000EDF4 (mDoExt_getArchiveHeapPtr__Fv)
// 80015F38: 8000ED80 (mDoExt_getZeldaHeap__Fv)
// 80015F4C: 8000ED50 (mDoExt_getGameHeap__Fv)
// 80015F60: 8000EE30 (mDoExt_getJ2dHeap__Fv)
// 80015F88: 802CEC98 (__nw__FUlP7JKRHeapi)
// 80015F9C: 802D69B8 (__ct__13JKRMemArchiveFlQ210JKRArchive15EMountDirection)
// 80015FB8: 802CEC98 (__nw__FUlP7JKRHeapi)
// 80015FCC: 802D69B8 (__ct__13JKRMemArchiveFlQ210JKRArchive15EMountDirection)
// 80015FFC: 80006C0C (OSReport_Error)
// 8001602C: 803741A8 (m_Do_m_Do_dvd_thread__stringBase0)
// 80016030: 803741A8 (m_Do_m_Do_dvd_thread__stringBase0)
// 8001603C: 80006C0C (OSReport_Error)
// 80016040: 8000ED80 (mDoExt_getZeldaHeap__Fv)
// 80016054: 803741A8 (m_Do_m_Do_dvd_thread__stringBase0)
// 80016058: 803741A8 (m_Do_m_Do_dvd_thread__stringBase0)
// 80016064: 80006C0C (OSReport_Error)
// 80016068: 8000EDF4 (mDoExt_getArchiveHeapPtr__Fv)
// 8001607C: 803741A8 (m_Do_m_Do_dvd_thread__stringBase0)
// 80016080: 803741A8 (m_Do_m_Do_dvd_thread__stringBase0)
// 8001608C: 80006C0C (OSReport_Error)
// 80016090: 8000ED50 (mDoExt_getGameHeap__Fv)
// 800160A4: 803741A8 (m_Do_m_Do_dvd_thread__stringBase0)
// 800160A8: 803741A8 (m_Do_m_Do_dvd_thread__stringBase0)
// 800160B4: 80006C0C (OSReport_Error)
// 800160B8: 8000EE30 (mDoExt_getJ2dHeap__Fv)
// 800160C4: 803741A8 (m_Do_m_Do_dvd_thread__stringBase0)
// 800160C8: 803741A8 (m_Do_m_Do_dvd_thread__stringBase0)
// 800160D4: 80006B3C (OSReport_FatalError)
// 800160F4: 80362218 (_restgpr_25)
/* 80015EDC-80016108 01081C 022C+00 1/0 0/0 0/0 .text execute__24mDoDvdThd_mountArchive_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -652,11 +480,8 @@ asm void mDoDvdThd_mountArchive_c::execute() {
}
#pragma pop
/* 80016108-80016168 0060+00 s=1 e=0 z=0 None .text __dt__25mDoDvdThd_mountXArchive_cFv */
// 80016128: 803A34B8 (__vt__25mDoDvdThd_mountXArchive_c)
// 8001612C: 803A34B8 (__vt__25mDoDvdThd_mountXArchive_c)
// 80016138: 800158FC (__dt__19mDoDvdThd_command_cFv)
// 80016148: 802CED3C (__dl__FPv)
/* 80016108-80016168 010A48 0060+00 1/0 0/0 0/0 .text __dt__25mDoDvdThd_mountXArchive_cFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -666,14 +491,8 @@ asm mDoDvdThd_mountXArchive_c::~mDoDvdThd_mountXArchive_c() {
}
#pragma pop
/* 80016168-800161E0 0078+00 s=1 e=0 z=0 None .text
/* 80016168-800161E0 010AA8 0078+00 1/1 0/0 0/0 .text
* __ct__25mDoDvdThd_mountXArchive_cFUcQ210JKRArchive10EMountMode */
// 80016178: 803621DC (_savegpr_29)
// 80016188: 80015B74 (__ct__19mDoDvdThd_command_cFv)
// 8001618C: 803A34B8 (__vt__25mDoDvdThd_mountXArchive_c)
// 80016190: 803A34B8 (__vt__25mDoDvdThd_mountXArchive_c)
// 800161BC: 80450C81 (struct_80450C80)
// 800161CC: 80362228 (_restgpr_29)
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -684,17 +503,8 @@ asm mDoDvdThd_mountXArchive_c::mDoDvdThd_mountXArchive_c(u8 param_0,
}
#pragma pop
/* 800161E0-800162B0 00D0+00 s=0 e=3 z=0 None .text
/* 800161E0-800162B0 010B20 00D0+00 0/0 3/3 0/0 .text
* create__25mDoDvdThd_mountXArchive_cFPCcUcQ210JKRArchive10EMountModeP7JKRHeap */
// 800161F0: 803621D4 (_savegpr_27)
// 80016204: 8000EDB0 (mDoExt_getCommandHeap__Fv)
// 80016214: 802CEC98 (__nw__FUlP7JKRHeapi)
// 80016228: 80016168 (__ct__25mDoDvdThd_mountXArchive_cFUcQ210JKRArchive10EMountMode)
// 8001623C: 800158DC (my_DVDConvertPathToEntrynum__FPCc)
// 80016284: 803DEC60 (l_param__9mDoDvdThd)
// 80016288: 803DEC60 (l_param__9mDoDvdThd)
// 80016290: 800159E4 (addition__17mDoDvdThd_param_cFP19mDoDvdThd_command_c)
// 8001629C: 80362220 (_restgpr_27)
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -705,10 +515,7 @@ asm void mDoDvdThd_mountXArchive_c::create(char const* param_0, u8 param_1,
}
#pragma pop
/* 800162B0-80016338 0088+00 s=1 e=0 z=0 None .text execute__25mDoDvdThd_mountXArchive_cFv */
// 800162EC: 8000EDEC (mDoExt_getArchiveHeap__Fv)
// 80016300: 802D58C8
//(mount__10JKRArchiveFlQ210JKRArchive10EMountModeP7JKRHeapQ210JKRArchive15EMountDirection)
/* 800162B0-80016338 010BF0 0088+00 1/0 0/0 0/0 .text execute__25mDoDvdThd_mountXArchive_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -718,11 +525,7 @@ asm void mDoDvdThd_mountXArchive_c::execute() {
}
#pragma pop
/* 80016338-80016394 005C+00 s=1 e=0 z=0 None .text __ct__21mDoDvdThd_toMainRam_cFUc */
// 80016354: 80015B74 (__ct__19mDoDvdThd_command_cFv)
// 80016358: 803A34A8 (__vt__21mDoDvdThd_toMainRam_c)
// 8001635C: 803A34A8 (__vt__21mDoDvdThd_toMainRam_c)
// 80016370: 80450C81 (struct_80450C80)
/* 80016338-80016394 010C78 005C+00 1/1 0/0 0/0 .text __ct__21mDoDvdThd_toMainRam_cFUc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -732,17 +535,8 @@ asm mDoDvdThd_toMainRam_c::mDoDvdThd_toMainRam_c(u8 param_0) {
}
#pragma pop
/* 80016394-8001645C 00C8+00 s=0 e=3 z=0 None .text
/* 80016394-8001645C 010CD4 00C8+00 0/0 3/3 0/0 .text
* create__21mDoDvdThd_toMainRam_cFPCcUcP7JKRHeap */
// 800163A4: 803621D8 (_savegpr_28)
// 800163B4: 8000EDB0 (mDoExt_getCommandHeap__Fv)
// 800163C4: 802CEC98 (__nw__FUlP7JKRHeapi)
// 800163D4: 80016338 (__ct__21mDoDvdThd_toMainRam_cFUc)
// 800163E8: 800158DC (my_DVDConvertPathToEntrynum__FPCc)
// 80016430: 803DEC60 (l_param__9mDoDvdThd)
// 80016434: 803DEC60 (l_param__9mDoDvdThd)
// 8001643C: 800159E4 (addition__17mDoDvdThd_param_cFP19mDoDvdThd_command_c)
// 80016448: 80362224 (_restgpr_28)
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -752,11 +546,7 @@ asm void mDoDvdThd_toMainRam_c::create(char const* param_0, u8 param_1, JKRHeap*
}
#pragma pop
/* 8001645C-800164BC 0060+00 s=1 e=0 z=0 None .text __dt__21mDoDvdThd_toMainRam_cFv */
// 8001647C: 803A34A8 (__vt__21mDoDvdThd_toMainRam_c)
// 80016480: 803A34A8 (__vt__21mDoDvdThd_toMainRam_c)
// 8001648C: 800158FC (__dt__19mDoDvdThd_command_cFv)
// 8001649C: 802CED3C (__dl__FPv)
/* 8001645C-800164BC 010D9C 0060+00 1/0 0/0 0/0 .text __dt__21mDoDvdThd_toMainRam_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -766,11 +556,8 @@ asm mDoDvdThd_toMainRam_c::~mDoDvdThd_toMainRam_c() {
}
#pragma pop
/* 800164BC-80016574 00B8+00 s=1 e=0 z=0 None .text execute__21mDoDvdThd_toMainRam_cFv */
// 800164E4: 8000EDEC (mDoExt_getArchiveHeap__Fv)
// 80016524: 802D9C54
//(loadToMainRAM__12JKRDvdRipperFlPUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl)
// 8001653C: 802CE700 (getSize__7JKRHeapFPv)
/* 800164BC-80016574 010DFC 00B8+00 1/0 0/0 0/0 .text execute__21mDoDvdThd_toMainRam_cFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -780,14 +567,11 @@ asm void mDoDvdThd_toMainRam_c::execute() {
}
#pragma pop
/* 80016574-8001659C 0028+00 s=0 e=0 z=0 None .text __sinit_m_Do_dvd_thread_cpp */
// 80016580: 803DEC60 (l_param__9mDoDvdThd)
// 80016584: 803DEC60 (l_param__9mDoDvdThd)
// 80016588: 80015944 (__ct__17mDoDvdThd_param_cFv)
/* 80016574-8001659C 010EB4 0028+00 0/0 1/0 0/0 .text __sinit_m_Do_dvd_thread_cpp */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
extern "C" asm void __sinit_m_Do_dvd_thread_cpp() {
asm void __sinit_m_Do_dvd_thread_cpp() {
nofralloc
#include "asm/m_Do/m_Do_dvd_thread/__sinit_m_Do_dvd_thread_cpp.s"
}
@@ -797,3 +581,44 @@ extern "C" asm void __sinit_m_Do_dvd_thread_cpp() {
#pragma force_active on
SECTION_CTORS void* const _ctors_80016574 = (void*)__sinit_m_Do_dvd_thread_cpp;
#pragma pop
/* 803741A8-803743F8 000808 0250+00 2/2 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
#pragma section ".dead"
SECTION_DEAD static char const* const stringBase_803741A8 =
"mDoDvdThd_param_c::mainLoop() コマンドの実行が失敗しました。\n";
SECTION_DEAD static char const* const stringBase_803741E6 =
"mDoDvdThd_mountArchive_c::execute マウント失敗\n";
SECTION_DEAD static char const* const stringBase_80374216 =
"mDoDvdThd_mountArchive_c::execute ゼルダヒープで再チャレンジ!"
"\n";
SECTION_DEAD static char const* const stringBase_80374256 =
"mDoDvdThd_mountArchive_c::execute アーカイブヒープで再チャレン"
"ジ!\n";
SECTION_DEAD static char const* const stringBase_8037429A =
"mDoDvdThd_mountArchive_c::execute ゲームヒープで再チャレンジ!"
"\n";
SECTION_DEAD static char const* const stringBase_803742DA =
"mDoDvdThd_mountArchive_c::execute J2Dヒープで再チャレンジ!"
"\n";
SECTION_DEAD static char const* const stringBase_80374317 =
"mDoDvdThd_mountArchive_c::execute ヒープが致命的に足りません!"
"\n";
SECTION_DEAD static char const* const stringBase_80374357 =
"mDoDvdThd_getResource_c::create() クラス生成に失敗\n";
// MWCC ignores mapping of some japanese characters using the
// byte 0x5C (ASCII '\'). This is why this string is hex-encoded.
SECTION_DEAD static char const* const stringBase_8037438B =
"\x6D\x44\x6F\x44\x76\x64\x54\x68\x64\x5F\x67\x65\x74\x52\x65\x73\x6F\x75\x72\x63\x65\x5F\x63"
"\x3A\x3A\x63\x72\x65\x61\x74\x65\x28\x29\x20\x83\x8A\x83\x5C\x81\x5B\x83\x58\x8E\xE6\x93\xBE"
"\x82\xC9"
"\x8E\xB8\x94\x73\x0A";
// MWCC ignores mapping of some japanese characters using the
// byte 0x5C (ASCII '\'). This is why this string is hex-encoded.
SECTION_DEAD static char const* const stringBase_803743C1 =
"\x6D\x44\x6F\x44\x76\x64\x54\x68\x64\x5F\x67\x65\x74\x52\x65\x73\x6F\x75\x72\x63\x65\x5F\x63"
"\x3A\x3A\x65\x78\x65\x63\x75\x74\x65\x28\x29\x20\x83\x8A\x83\x5C\x81\x5B\x83\x58\x8E\xE6\x93"
"\xBE\x82"
"\xC9\x8E\xB8\x94\x73\x0A";
#pragma pop