mirror of https://github.com/zeldaret/tp.git
main attempt
This commit is contained in:
parent
8091fa95c5
commit
9cb88fdb31
|
|
@ -185,7 +185,7 @@
|
|||
/* 8003049C 0002D3DC 38 E0 00 40 */ li r7, 0x40
|
||||
/* 800304A0 0002D3E0 48 33 18 C1 */ bl func_80361D60
|
||||
/* 800304A4 0002D3E4 7F E3 FB 78 */ mr r3, r31
|
||||
/* 800304A8 0002D3E8 4B FF C7 3D */ bl dComIfG_inf_c_NS_ct
|
||||
/* 800304A8 0002D3E8 4B FF C7 3D */ bl ct__13dComIfG_inf_cFv
|
||||
/* 800304AC 0002D3EC 7F E3 FB 78 */ mr r3, r31
|
||||
/* 800304B0 0002D3F0 39 61 00 20 */ addi r11, r1, 0x20
|
||||
/* 800304B4 0002D3F4 48 33 1D 75 */ bl _restgpr_29
|
||||
|
|
|
|||
|
|
@ -217,6 +217,7 @@ private: // NEEDS TO BE FIXED
|
|||
class dComIfG_inf_c {
|
||||
public:
|
||||
dComIfG_inf_c(void);
|
||||
void ct(void);
|
||||
|
||||
// temp until we map the item short function names
|
||||
item_func& getPlayGiveItem() { return play.getGiveItem(); }
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ extern "C" {
|
|||
s32 DVDOpen(const char*, DVDFileInfo*);
|
||||
s32 DVDClose(DVDFileInfo*);
|
||||
void DVDReadPrio(DVDFileInfo*, void*, s32, s32, s32);
|
||||
void DVDGetCurrentDiskID(void);
|
||||
DVDDiskID* DVDGetCurrentDiskID(void);
|
||||
s32 DVDFastOpen(long, DVDFileInfo*);
|
||||
int DVDGetCommandBlockStatus(DVDCommandBlock*);
|
||||
s32 DVDReadAsyncPrio(DVDFileInfo*, void*, long, long, DVDCallback, long);
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ lbl_800064A8:
|
|||
lbl_80006514:
|
||||
/* 80006514 00003454 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha
|
||||
/* 80006518 00003458 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l
|
||||
/* 8000651C 0000345C 48 02 66 C9 */ bl dComIfG_inf_c_NS_ct
|
||||
/* 8000651C 0000345C 48 02 66 C9 */ bl ct__13dComIfG_inf_cFv
|
||||
/* 80006520 00003460 88 0D 80 00 */ lbz r0, lbl_80450580-_SDA_BASE_(r13)
|
||||
/* 80006524 00003464 7C 00 07 75 */ extsb. r0, r0
|
||||
/* 80006528 00003468 40 80 00 40 */ bge lbl_80006568
|
||||
|
|
|
|||
|
|
@ -36,7 +36,6 @@ extern HeapCheck lbl_803D32E0[8]; // RootHeapCheck
|
|||
// extern HeapCheck lbl_803D33A8; // J2dHeapCheck
|
||||
// extern HeapCheck lbl_803D33D0; // HostioHeapCheck
|
||||
// extern HeapCheck lbl_803D33F8; // CommandHeapCheck
|
||||
extern s8 lbl_80450580[4];
|
||||
extern u8 lbl_80450B1A[2];
|
||||
extern u8 lbl_80450B18;
|
||||
extern u8 lbl_80450588[8];
|
||||
|
|
|
|||
|
|
@ -133,7 +133,7 @@ OSThread* OSGetCurrentThread(void);
|
|||
s32 OSSuspendThread(OSThread* thread);
|
||||
s32 OSSetThreadPriority(OSThread* thread, u32 pri);
|
||||
s32 OSGetThreadPriority(OSThread* thread);
|
||||
s32 OSCreateThread(OSThread* thread, void* (*func)(void*), void* param, void* stack, u32 stackSize,
|
||||
s32 OSCreateThread(OSThread* thread, void* func, void* param, void* stack, u32 stackSize,
|
||||
int param_6, int param_7);
|
||||
void OSCancelThread(OSThread* thread);
|
||||
void OSDetachThread(OSThread* thread);
|
||||
|
|
@ -149,7 +149,7 @@ BOOL OSSendMessage(OSMessageQueue* queue, OSMessage message, int flags);
|
|||
BOOL OSJamMessage(OSMessageQueue* queue, OSMessage message, int flags);
|
||||
|
||||
s32 OSGetConsoleType(void);
|
||||
s32 OSGetResetCode(void);
|
||||
u32 OSGetResetCode(void);
|
||||
|
||||
u32 OSGetSoundMode(void);
|
||||
void OSSetSoundMode(OSSoundMode mode);
|
||||
|
|
@ -176,7 +176,7 @@ u32 OSGetArenaHi();
|
|||
u32 OSInitAlloc(u32 low, u32 high, int param_3);
|
||||
void OSSetArenaLo(u32 param_1);
|
||||
void OSSetArenaHi(u32 param_1);
|
||||
void OSAllocFromArenaLo(u32 size, int alignment);
|
||||
void* OSAllocFromArenaLo(u32 size, int alignment);
|
||||
|
||||
// void OSCancelAlarm(OSAlarm *alarm);
|
||||
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ extern u8 lbl_80450C28;
|
|||
extern u8 lbl_80450C34;
|
||||
extern u8 lbl_80450B24;
|
||||
extern u8 lbl_80450B1C;
|
||||
extern s8 lbl_80450580[4];
|
||||
extern s8 lbl_80450580;
|
||||
// extern u8 lbl_80450B1A;
|
||||
struct JUTGamePad;
|
||||
extern JUTGamePad* m_gamePad[4];
|
||||
|
|
@ -46,12 +46,12 @@ extern u8 lbl_80450B34;
|
|||
extern u8 lbl_80450B00;
|
||||
extern u8 lbl_80450C80;
|
||||
extern u8 LOAD_COPYDATE__FPv;
|
||||
extern u8 lbl_803D3420;
|
||||
extern u8 lbl_80450B0C;
|
||||
extern u32 lbl_803D3420[8192];
|
||||
extern u32 lbl_80450B0C;
|
||||
// struct ResetData;
|
||||
extern u8 lbl_80450B08;
|
||||
extern u8 lbl_803DB420;
|
||||
extern u8 main01__Fv;
|
||||
extern u32 lbl_80450B08;
|
||||
extern OSThread lbl_803DB420;
|
||||
//extern u8 main01__Fv;
|
||||
extern u8 lbl_803BB598;
|
||||
extern u8 lbl_803A6F88;
|
||||
extern u8 lbl_803BB588;
|
||||
|
|
|
|||
|
|
@ -281,6 +281,7 @@ void setBottleNum__24dSv_player_item_record_cFUcUc(u8, u8);
|
|||
void setCollect__20dSv_player_collect_cFiUc(int, u8);
|
||||
void setWarpItemData__14dComIfG_play_cFPCc4cXyzsScUcUc(void);
|
||||
void* memset(void* dest, int ch, u32 count);
|
||||
void ct__13dComIfG_inf_cFv(void);
|
||||
}
|
||||
|
||||
// memset first arg is wrong
|
||||
|
|
@ -474,7 +475,7 @@ u32 dComIfG_play_c::getTimerPtr(void) {
|
|||
|
||||
// ct__13dComIfG_inf_cFv
|
||||
// dComIfG_inf_c::ct(void)
|
||||
asm void dComIfG_inf_c_NS_ct(void) {
|
||||
asm void dComIfG_inf_c::ct(void) {
|
||||
nofralloc
|
||||
#include "d/d_com/d_com_inf_game/asm/func_8002CBE4.s"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,8 +29,8 @@ void print_f(void);
|
|||
// additional symbols needed for m_Do_machine_exception.cpp
|
||||
// autogenerated by split.py v0.4 at 2021-01-31 21:28:06.026523
|
||||
extern u8 lbl_80374460;
|
||||
extern u8 lbl_80450B08;
|
||||
extern u8 lbl_80450B0C;
|
||||
extern u32 lbl_80450B08;
|
||||
extern u32 lbl_80450B0C;
|
||||
extern u8 lbl_80450B10;
|
||||
extern u8 lbl_80450B14;
|
||||
extern u8 lbl_80450C28;
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ extern u8 lbl_80451A08;
|
|||
extern u8 lbl_80451A0C;
|
||||
extern u8 lbl_80451A10;
|
||||
extern u8 lbl_80451A18;
|
||||
extern u8 lbl_803D0000;
|
||||
// extern char lbl_803739A0[0x310];
|
||||
|
||||
extern char lbl_803739A0;
|
||||
|
|
@ -54,6 +55,8 @@ void mDoMemCd_Ctrl_c_NS_update(void);
|
|||
void memcpy(void*, const void*, int);
|
||||
void read__8mDoCPd_cFv(void);
|
||||
void version_check__Fv(void);
|
||||
void main01__Fv(void);
|
||||
void ct__13dComIfG_inf_cFv(void);
|
||||
}
|
||||
|
||||
void version_check(void) {
|
||||
|
|
@ -223,7 +226,7 @@ const char* lbl_80373C9F = "Command";
|
|||
const char* lbl_80373CA7 = "ƒRƒ}ƒ“ƒh";
|
||||
|
||||
void debug(void) {
|
||||
if (lbl_80450580[0]) {
|
||||
if (lbl_80450580) {
|
||||
if (lbl_80450B1A[0]) {
|
||||
CheckHeap(2);
|
||||
}
|
||||
|
|
@ -351,7 +354,62 @@ asm void main01(void) {
|
|||
#endif
|
||||
|
||||
#ifdef NONMATCHING
|
||||
void main(void) {}
|
||||
void main(void) {
|
||||
s32 current_thread_priority;
|
||||
u32 test;
|
||||
u32 resetCode;
|
||||
|
||||
OSThread* current_thread = OSGetCurrentThread();
|
||||
test = lbl_803D3420[0];
|
||||
OSTime current_time = OSGetTime();
|
||||
lbl_80450B0C = (current_time >> 0x20);
|
||||
lbl_80450B08 = test;
|
||||
|
||||
OSReportInit__Fv();
|
||||
version_check__Fv();
|
||||
m_Do_Reset_NS_mDoRst_NS_mResetData = (ResetData *)OSAllocFromArenaLo(0x18,4);
|
||||
if (!m_Do_Reset_NS_mDoRst_NS_mResetData) {
|
||||
do {
|
||||
|
||||
} while (true);
|
||||
}
|
||||
|
||||
resetCode = OSGetResetCode();
|
||||
if (!resetCode) {
|
||||
m_Do_Reset_NS_mDoRst_NS_mResetData->field_0x0 = 0;
|
||||
m_Do_Reset_NS_mDoRst_NS_mResetData->field_0x4 = 0;
|
||||
m_Do_Reset_NS_mDoRst_NS_mResetData->field_0x4 = 0;
|
||||
m_Do_Reset_NS_mDoRst_NS_mResetData->field_0x8 = 0;
|
||||
m_Do_Reset_NS_mDoRst_NS_mResetData->pad_index = -1;
|
||||
m_Do_Reset_NS_mDoRst_NS_mResetData->field_0x12 = 0;
|
||||
m_Do_Reset_NS_mDoRst_NS_mResetData->field_0x13 = 0;
|
||||
m_Do_Reset_NS_mDoRst_NS_mResetData->field_0x14 = 0;
|
||||
m_Do_Reset_NS_mDoRst_NS_mResetData->field_0x15 = 0;
|
||||
m_Do_Reset_NS_mDoRst_NS_mResetData->field_0x10 = 0;
|
||||
m_Do_Reset_NS_mDoRst_NS_mResetData->field_0x11 = 0;
|
||||
}
|
||||
|
||||
g_dComIfG_gameInfo.ct();
|
||||
|
||||
if (lbl_80450580 < 0) {
|
||||
DVDDiskID* disk_id = DVDGetCurrentDiskID();
|
||||
if (disk_id->game_version > 0x90) {
|
||||
lbl_80450580 = 0;
|
||||
} else {
|
||||
if (disk_id->game_version > 0x80) {
|
||||
resetCode = OSGetConsoleType();
|
||||
lbl_80450580 = (resetCode >> 0x1C) & 1;
|
||||
}
|
||||
lbl_80450580 = 1;
|
||||
}
|
||||
}
|
||||
|
||||
current_thread_priority = OSGetThreadPriority(current_thread);
|
||||
OSCreateThread(&lbl_803DB420,main01__Fv, 0, &lbl_803DB420, 0x8000, current_thread_priority, 0);
|
||||
OSResumeThread(&lbl_803DB420);
|
||||
OSSetThreadPriority(current_thread, 0x1F);
|
||||
OSSuspendThread(current_thread);
|
||||
}
|
||||
#else
|
||||
asm void main(void) {
|
||||
nofralloc
|
||||
|
|
|
|||
Loading…
Reference in New Issue