From 2a6fc42571cd16fe67426e7be3d73ea0924f90d5 Mon Sep 17 00:00:00 2001 From: Pheenoh Date: Mon, 4 Jan 2021 00:16:06 -0500 Subject: [PATCH] begin decomping main01 --- include/functions.h | 26 ++++----- include/m_Do/m_Do_ext/m_Do_ext.h | 10 ++++ include/m_Do/m_Do_graphic/m_Do_graphic.h | 8 +++ include/m_Do/m_Do_machine/m_Do_machine.h | 8 +++ include/m_Do/m_Do_main/m_Do_main.h | 2 + src/d/d_meter/d_meter_HIO.cpp | 1 + src/m_Do/m_Do_main.cpp | 70 +++++++++++++++++++++--- 7 files changed, 102 insertions(+), 23 deletions(-) create mode 100644 include/m_Do/m_Do_graphic/m_Do_graphic.h create mode 100644 include/m_Do/m_Do_machine/m_Do_machine.h diff --git a/include/functions.h b/include/functions.h index cba6a166492..501ab1bf90e 100644 --- a/include/functions.h +++ b/include/functions.h @@ -114,15 +114,14 @@ void cDyl_InitAsync(void); void fopAcM_initManager(void); void fapGm_Create(void); void mDoDvdThd_callback_c_NS_create(void); -void mDoExt_getCommandHeap(void); -void mDoExt_getHostIOHeap(void); -void mDoExt_getJ2dHeap(void); -void mDoExt_getArchiveHeap(void); -void mDoExt_getGameHeap(void); -void mDoExt_getZeldaHeap(void); +// void mDoExt_getCommandHeap(void); +// void mDoExt_getHostIOHeap(void); +// void mDoExt_getJ2dHeap(void); +// void mDoExt_getArchiveHeap(void); +// void mDoExt_getGameHeap(void); +// void mDoExt_getZeldaHeap(void); void mDoCPd_c_NS_create(void); void mDoGph_Create(void); -void mDoMch_Create(void); void init__10dSv_save_cFv(void); void func_80361D60(void); void dComIfG_inf_c_NS_ct(void); @@ -334,15 +333,14 @@ void cDyl_InitAsync(void); void fopAcM_initManager(void); void fapGm_Create(void); void mDoDvdThd_callback_c_NS_create(void); -void mDoExt_getCommandHeap(void); -void mDoExt_getHostIOHeap(void); -void mDoExt_getJ2dHeap(void); -void mDoExt_getArchiveHeap(void); -void mDoExt_getGameHeap(void); -void mDoExt_getZeldaHeap(void); +// void mDoExt_getCommandHeap(void); +// void mDoExt_getHostIOHeap(void); +// void mDoExt_getJ2dHeap(void); +// void mDoExt_getArchiveHeap(void); +// void mDoExt_getGameHeap(void); +// void mDoExt_getZeldaHeap(void); void mDoCPd_c_NS_create(void); void mDoGph_Create(void); -void mDoMch_Create(void); void init__10dSv_save_cFv(void); void func_80361D60(void); void dComIfG_inf_c_NS_ct(void); diff --git a/include/m_Do/m_Do_ext/m_Do_ext.h b/include/m_Do/m_Do_ext/m_Do_ext.h index 6207c98c678..127519655f9 100644 --- a/include/m_Do/m_Do_ext/m_Do_ext.h +++ b/include/m_Do/m_Do_ext/m_Do_ext.h @@ -2,8 +2,18 @@ #define __M_DO_EXT_H_ #include "JSystem/J3DGraphAnimator/J3DAnimation.h" +#include "JSystem/JKernel/JKRExpHeap/JKRExpHeap.h" #include "global.h" +extern "C" { +JKRExpHeap* mDoExt_getZeldaHeap(); +JKRExpHeap* mDoExt_getGameHeap(); +JKRExpHeap* mDoExt_getArchiveHeap(); +JKRExpHeap* mDoExt_getJ2dHeap(); +JKRExpHeap* mDoExt_getHostIOHeap(); +JKRExpHeap* mDoExt_getCommandHeap(); +} + class mDoExt_baseAnm { public: private: diff --git a/include/m_Do/m_Do_graphic/m_Do_graphic.h b/include/m_Do/m_Do_graphic/m_Do_graphic.h new file mode 100644 index 00000000000..5a04b8bcda9 --- /dev/null +++ b/include/m_Do/m_Do_graphic/m_Do_graphic.h @@ -0,0 +1,8 @@ +#ifndef __M_DO_GRAPHIC_H__ +#define __M_DO_GRAPHIC_H__ + +#include "global.h" + +void mDoGph_Create(void); + +#endif \ No newline at end of file diff --git a/include/m_Do/m_Do_machine/m_Do_machine.h b/include/m_Do/m_Do_machine/m_Do_machine.h new file mode 100644 index 00000000000..2e53b6afd64 --- /dev/null +++ b/include/m_Do/m_Do_machine/m_Do_machine.h @@ -0,0 +1,8 @@ +#ifndef __M_DO_MACHINE_H__ +#define __M_DO_MACHINE_H__ + +#include "global.h" + +extern "C" void mDoMch_Create(void); + +#endif \ No newline at end of file diff --git a/include/m_Do/m_Do_main/m_Do_main.h b/include/m_Do/m_Do_main/m_Do_main.h index 7b0e24fb633..31b2759e29d 100644 --- a/include/m_Do/m_Do_main/m_Do_main.h +++ b/include/m_Do/m_Do_main/m_Do_main.h @@ -10,6 +10,8 @@ public: u32& getUsedCountRef() { return used_count; } u32& getTotalUsedSizeRef() { return total_used_size; } JKRExpHeap* getHeap() { return heap; } + void setHeap(JKRExpHeap* i_heap) { heap = i_heap; } + void setHeapSize(u32 i_size) { heap_size = i_size; } private: char* names[2]; diff --git a/src/d/d_meter/d_meter_HIO.cpp b/src/d/d_meter/d_meter_HIO.cpp index 9cf3d7c08ed..7ea67be543a 100644 --- a/src/d/d_meter/d_meter_HIO.cpp +++ b/src/d/d_meter/d_meter_HIO.cpp @@ -1,6 +1,7 @@ /* d_meter_HIO.cpp autogenerated by split.py v0.3 at 2021-01-02 05:41:49.544754 */ #include "global.h" +#include "m_Do/m_Do_ext/m_Do_ext.h" extern "C" { // __ct__16dMeter_menuHIO_cFv diff --git a/src/m_Do/m_Do_main.cpp b/src/m_Do/m_Do_main.cpp index d627300ace2..81a66ebd5a6 100644 --- a/src/m_Do/m_Do_main.cpp +++ b/src/m_Do/m_Do_main.cpp @@ -4,6 +4,9 @@ #include "dvd/dvd.h" #include "global.h" #include "m_Do/m_Do_controller_pad/m_Do_controller_pad.h" +#include "m_Do/m_Do_ext/m_Do_ext.h" +#include "m_Do/m_Do_graphic/m_Do_graphic.h" +#include "m_Do/m_Do_machine/m_Do_machine.h" #include "m_Do/m_Do_reset/m_Do_reset.h" void version_check(void) { @@ -141,8 +144,6 @@ asm void LOAD_COPYDATE(void*) { } #endif -#ifndef NONMATCHING - void debug(void) { if (lbl_80450580[0]) { if (lbl_80450B1A[0]) { @@ -166,19 +167,70 @@ void debug(void) { Debug_console(2); } } -#else -asm void debug(void) { - nofralloc -#include "m_Do\m_Do_main\asm\func_800061C8.s" -} -#endif +#ifdef NONMATCHING +void main01(void) { + mDoCPd_c controller; + mDoMch_Create(); + mDoGph_Create(); + + controller.create(); + + // Root Heap + HeapCheckTable[0]->setHeap(lbl_80451378); + if (lbl_80451378) { + HeapCheckTable[0]->setHeapSize(lbl_80451378->getSize()); + } + + // System Heap + HeapCheckTable[1]->setHeap(lbl_80451370); + if (lbl_80451370) { + HeapCheckTable[1]->setHeapSize(lbl_80451370->getSize()); + } + + // Zelda Heap + HeapCheckTable[2]->setHeap(mDoExt_getZeldaHeap()); + if (HeapCheckTable[2]->getHeap()) { + HeapCheckTable[2]->setHeapSize(HeapCheckTable[2]->getHeap()->getSize()); + } + + HeapCheckTable[3]->setHeap(mDoExt_getGameHeap()); + if (HeapCheckTable[3]->getHeap()) { + HeapCheckTable[3]->setHeapSize(HeapCheckTable[3]->getHeap()->getSize()); + } + + HeapCheckTable[4]->setHeap(mDoExt_getArchiveHeap()); + if (HeapCheckTable[4]->getHeap()) { + HeapCheckTable[4]->setHeapSize(HeapCheckTable[4]->getHeap()->getSize()); + } + + HeapCheckTable[5]->setHeap(mDoExt_getJ2dHeap()); + if (HeapCheckTable[5]->getHeap()) { + HeapCheckTable[5]->setHeapSize(HeapCheckTable[5]->getHeap()->getSize()); + } + + HeapCheckTable[6]->setHeap(mDoExt_getHostIOHeap()); + if (HeapCheckTable[6]->getHeap()) { + HeapCheckTable[6]->setHeapSize(HeapCheckTable[6]->getHeap()->getSize()); + } + + HeapCheckTable[7]->setHeap(mDoExt_getCommandHeap()); + if (HeapCheckTable[7]->getHeap()) { + HeapCheckTable[7]->setHeapSize(HeapCheckTable[7]->getHeap()->getSize()); + } +} +#else asm void main01(void) { nofralloc #include "m_Do\m_Do_main\asm\func_8000628C.s" } +#endif +#ifdef NONMATCHING +void main(void) {} +#else asm void main(void) { nofralloc #include "m_Do\m_Do_main\asm\func_80006454.s" -} \ No newline at end of file +} +#endif \ No newline at end of file