main01 attempt, fix dcomifg_play_c members

This commit is contained in:
Pheenoh 2021-01-07 22:56:08 -05:00
parent 74fac079fa
commit c1d05bc46c
No known key found for this signature in database
GPG Key ID: 4312662758CE7D5A
22 changed files with 253 additions and 109 deletions

View File

@ -3,6 +3,7 @@
#include "global.h"
#pragma pack(push, 1)
class J3DFrameCtrl {
public:
private:
@ -15,5 +16,6 @@ private:
float field_0xc;
float field_0x10;
};
#pragma pack(pop)
#endif

View File

@ -57,4 +57,8 @@ public:
static JKRSolidHeap* create(u32, JKRHeap*, bool);
};
extern "C" {
JKRSolidHeap* JKRSolidHeap_NS_create(u32 size, JKRHeap* heap, bool use_default_error_handler);
}
#endif

View File

@ -7,15 +7,15 @@
class cCcD_ShapeAttr {
public:
private:
cM3dGAab cm3dgaab;
void* vtable;
/* 0x00 */ cM3dGAab cm3dgaab;
/* 0x1C */ void* vtable;
};
class cCcD_CpsAttr {
public:
private:
cCcD_ShapeAttr cccd_shapeattr;
cM3dGCps cm3dgcps;
/* 0x00 */ cCcD_ShapeAttr cccd_shapeattr;
/* 0x20 */ cM3dGCps cm3dgcps;
};
class cCcD_CylAttr {

View File

@ -59,6 +59,7 @@ private:
float field_0x8;
};
#pragma pack(push, 1)
class dAttList_c {
public:
private:
@ -66,7 +67,9 @@ private:
cSAngle angle;
u8 field_0xa[10];
};
#pragma pack(pop)
#pragma pack(push, 1)
class dAttDraw_c {
u8 field_0x0;
u8 field_0x1;
@ -91,6 +94,8 @@ class dAttDraw_c {
mDoExt_brkAnm brkAnm3;
mDoExt_btkAnm btkAnm2;
};
#pragma pack(pop)
class dAttDraw_CallBack_c {
mDoExt_McaMorfCallBack1_c mDoExt_McaMorfCallback;

View File

@ -3,7 +3,7 @@
#include "d/d_bg/d_bg_w/d_bg_w_base/d_bg_w_base.h"
#include "global.h"
#pragma pack(push,1)
class cBgS_ChkElm {
/* 0x00 */ dBgW_Base* bgw_base_pointer;
/* 0x04 */ u8 used;
@ -12,10 +12,13 @@ class cBgS_ChkElm {
/* 0x0C */ void* actor_pointer;
/* 0x10 */ u32 field_0x10;
};
#pragma pack(pop)
#pragma pack(push,1)
class cBgS {
/* 0x0000 */ cBgS_ChkElm cbgs_elements[256];
};
#pragma pack(pop)
class dBgS_HIO {
/* 0x00 */ u8 vtable[4];
@ -29,6 +32,7 @@ class dBgS_HIO {
/* 0x30 */ u8 field_0x30[4];
};
#pragma pack(push,1)
class dBgS {
public:
private:
@ -36,4 +40,5 @@ private:
/* 0x1400 */ u8 vtable[8];
/* 0x1408 */ dBgS_HIO dbgs_hio;
};
#pragma pack(pop)
#endif

View File

@ -2,7 +2,7 @@
#define __D_BG_W_BASE_H_
#include "global.h"
#pragma pack(push,1)
class dBgW_Base {
public:
private:
@ -16,5 +16,6 @@ private:
s16 field_0xc;
s16 field_0xe;
};
#pragma pack(pop)
#endif

View File

@ -12,23 +12,23 @@ private:
class dCcMassS_Mng {
public:
private:
cCcD_DivideArea cccd_dividearea;
u8 field_0x20[36];
dCcMassS_Obj dccmasss_obj;
u8 field_0x64[292];
dCcMassS_Obj dccmasss_obj2;
u8 field_0x1a8[32];
cCcD_CylAttr cccd_cylattr;
u8 field_0x200[2];
u8 field_0x202;
u8 field_0x203;
float field_0x204;
float field_0x208;
float field_0x20c;
float field_0x210;
float field_0x214;
float field_0x218;
u8 field_0x21c[8];
cCcD_CpsAttr cccd_cpsattr;
cCcD_DivideInfo cccd_divideinfo;
/* 0x0000 */ cCcD_DivideArea cccd_dividearea;
/* 0x0020 */ u8 field_0x20[36];
/* 0x0044 */ dCcMassS_Obj dccmasss_obj;
/* 0x0064 */ u8 field_0x64[292];
/* 0x0188 */ dCcMassS_Obj dccmasss_obj2;
/* 0x01A8 */ u8 field_0x1a8[32];
/* 0x01C8 */ cCcD_CylAttr cccd_cylattr;
/* 0x0200 */ u8 field_0x200[2];
/* 0x0202 */ u8 field_0x202;
/* 0x0203 */ u8 field_0x203;
/* 0x0204 */ float cam_x_pos;
/* 0x0208 */ float cam_y_pos;
/* 0x020C */ float cam_z_pos;
/* 0x0210 */ float field_0x210;
/* 0x0214 */ float field_0x214;
/* 0x0218 */ float field_0x218;
/* 0x021C */ u8 field_0x21c[8];
/* 0x0224 */ cCcD_CpsAttr cccd_cpsattr;
/* 0x0288 */ cCcD_DivideInfo cccd_divideinfo;
};

View File

@ -8,9 +8,9 @@
class dCcS {
public:
private:
cCcS cccs;
u8 field_0x2834[36];
dCcMassS_Mng dccmass_mng;
/* 0x0000 */ cCcS cccs;
/* 0x2834 */ u8 field_0x2834[36];
/* 0x2858 */ dCcMassS_Mng dccmass_mng;
};
#endif

View File

@ -13,6 +13,7 @@
#include "d/d_stage/d_stage.h"
#include "d/d_vibration/d_vibration.h"
#pragma pack(push,1)
struct item_func {
float hearts; // bf80
u32 rupees; // bf84
@ -33,7 +34,9 @@ struct item_func {
s16 arrows; // bfb4
s16 seeds; // bfb6
};
#pragma pack(pop)
#pragma pack(push,1)
class dComIfG_camera_info_class {
public:
private:
@ -41,7 +44,9 @@ private:
cXyz field_0xc;
cXyz field_0x18;
};
#pragma pack(pop)
#pragma pack(push,1)
class dDlst_window_c {
public:
private:
@ -57,13 +62,15 @@ private:
float scissor4;
int camera_id;
};
#pragma pack(pop)
#pragma pack(push,1)
class dComIfG_play_c {
public:
void ct(void);
void init(void);
u32 getNowVibration();
dStage_roomControl_c& getRoomControl() { return room_control; }
dStage_roomControl_c& getRoomControl() { return mRoomControl; }
item_func& getGiveItem() { return give_item; }
u8& getUnkHeart() { return unk_heart; }
void setUnkWarashibe1(u8 num) { field_0x4ec0[0x85] = num; }
@ -85,39 +92,39 @@ public:
void setItemMaxLifeCount(short max) { give_item.max_life += max; }
void setOxygen(long oxygen) { give_item.oxygen = oxygen; }
void setMaxOxygen(long max) { give_item.max_oxygen = max; }
private:
/* 0x00000 */ dBgS dbgs;
/* 0x0143C */ dCcS dccs;
/* 0x03F08 */ u8 field_0x3f08[0x16];
/* 0x03F1E */ dStage_nextStage_c next_stage;
/* 0x0143C */ u8 field_0x143c[0x2A8C];
/* 0x03EC8 */ dStage_startStage_c mStartStage;
/* 0x03ED5 */ u8 field_0x3ed5[0x49];
/* 0x03F1E */ dStage_nextStage_c mNextStage;
/* 0x03F2F */ u8 padding;
/* 0x03F30 */ dStage_stageDt_c stage_data;
/* 0x03F34 */ dStage_roomControl_c room_control;
/* 0x03FD8 */ dEvt_control_c event_control;
/* 0x03F30 */ dStage_stageDt_c mStageData;
/* 0x03F34 */ dStage_roomControl_c mRoomControl;
/* 0x03FD8 */ dEvt_control_c mEventControl;
/* 0x0409C */ u8 field_0x409c[0x24];
/* 0x040C0 */ dEvent_manager_c event_manager;
/* 0x040C0 */ dEvent_manager_c mEventManager;
/* 0x0475B */ u8 field_0x475B[0x2D];
/* 0x04788 */ void* vtable;
/* 0x0478C */ u8 field_0x478c[0x1C];
/* 0x047A8 */ dAttDraw_c attention_draw;
/* 0x047A8 */ dAttDraw_c mAttentionDraw;
/* 0x0490C */ u8 field_0x490c[0x1AC];
/* 0x04AB8 */ dAttList_c attention_list1;
/* 0x04AB8 */ dAttList_c mAttentionList1;
/* 0x04ACC */ u8 field_0x4acc[0x94];
/* 0x04B60 */ dAttList_c attention_list2;
/* 0x04B60 */ dAttList_c mAttentionList2;
/* 0x04B74 */ u8 field_0x4b74[0x44];
/* 0x04BB8 */ dAttList_c attention_list3;
/* 0x04BB8 */ dAttList_c mAttentionList3;
/* 0x04BCC */ u8 field_0x4bcc[0xBC];
/* 0x04c88 */ void* vtable2;
/* 0x04C8C */ u8 field_0x4c8c[0x55];
/* 0x04CE1 */ u8 field_0x4ce1[0x37];
/* 0x04D18 */ dVibration_c vibration;
/* 0x04D18 */ dVibration_c mVibration;
/* 0x04DA8 */ u8 field_0x4da8[0x5C];
/* 0x04E04 */ u32 field_0x4e04;
/* 0x04E08 */ u8 field_0x4e08[0x4];
/* 0x04E0C */ u8 field_0x4e0c[0x4];
/* 0x04E10 */ dDlst_window_c draw_list_window;
/* 0x04ED4 */ dComIfG_camera_info_class camera_info;
/* 0x04E10 */ dDlst_window_c mDrawlistWindow;
/* 0x04ED4 */ dComIfG_camera_info_class mCameraInfo;
/* 0x04E60 */ u8 field_0x4e60[0x28];
/* 0x04E88 */ item_func give_item;
/* 0x04EC0 */ u8 field_0x4ec0[0xBE];
@ -128,9 +135,11 @@ private:
/* 0x05000 */ u32 field_0x5000;
/* 0x05004 */ u32 field_0x5004;
/* 0x05008 */ u8 field_0x5008[0x1C];
/* 0x05024 */ u8 field_0x5024[8];
/* 0x05024 */ u8 field_0x5024[0x8];
};
#pragma pack(pop)
#pragma pack(push,1)
class dComIfG_inf_c {
public:
// temp until we map the item short function names
@ -155,6 +164,7 @@ private:
/* 0x00F28 */ u32 saveStartTime;
/* 0x00F2C */ u32 field_0xf30;
/* 0x00F30 */ u32 field_0xf34;
u8 unk[3];
/* 0x00F34 */ dComIfG_play_c play;
/* 0x05F60 */ u8 field_0x5f60[0x10];
/* 0x05F70 */ dDlst_list_c draw_list_list;
@ -178,6 +188,7 @@ private:
/* 0x1DE0A */ u8 unk33;
/* 0x1DE0B */ u8 unk34[0x5]; // probably padding
};
#pragma pack(pop)
extern dComIfG_inf_c g_dComIfG_gameInfo;

View File

@ -3,6 +3,7 @@
#include "dolphin/types.h"
class dDlst_FileInfo_c {
public:
void draw(void);
@ -11,10 +12,13 @@ public:
private:
};
#pragma pack(push,1)
class dDlst_peekZ_c {
u8 unk[4];
u8 unk[7];
}; // actual size unknown!!!
#pragma pack(pop)
#pragma pack(push,1)
class dDlst_list_c {
public:
static u32 mWipeColor;
@ -25,7 +29,8 @@ public:
// private:
/* 0x00000 */ u8 unk[0x16180];
/* 0x16180 */ dDlst_peekZ_c dlstPeekZ;
/* 0x16184 */ u8 unk_0x16194[0x1C];
/* 0x16184 */ u8 unk_0x16194[0x1F];
}; // Size: 0x161A0
#pragma pack(pop)
#endif D_DRAWLIST_H_

View File

@ -3,6 +3,7 @@
#include "dolphin/types.h"
#pragma pack(push,1)
class dEvt_order_c {
public:
private:
@ -198,7 +199,9 @@ private:
u8 field_0xbd;
u8 field_0xbe;
};
#pragma pack(pop)
#pragma pack(push,1)
class dEvt_control_c {
public:
void searchMapEventData(u8 param_1);
@ -208,5 +211,6 @@ private:
dEvt_order_c event_order;
u8 field_0xc3;
};
#pragma pack(pop)
#endif

View File

@ -8,7 +8,7 @@ public:
private:
u8 field_0x0[320];
};
#pragma pack(push,1)
class dEvDtBase_c {
public:
private:
@ -22,5 +22,6 @@ private:
u32 field_0x1c;
u32 field_0x20;
};
#pragma pack(pop)
#endif

View File

@ -4,6 +4,7 @@
#include "d/d_event/d_event_data/d_event_data.h"
#include "dolphin/types.h"
#pragma pack(push, 1)
class dEvent_exception_c {
public:
private:
@ -14,6 +15,7 @@ private:
u8 field_0x7;
u32 field_0x8;
};
#pragma pack(pop)
#pragma pack(push, 1)
struct dEvent_manager_c {

View File

@ -7,6 +7,7 @@
#include "dolphin/types.h"
#include "m_Do/m_Do_dvd_thread/m_Do_dvd_thread.h"
#pragma pack(push,1)
class dRes_info_c {
public:
private:
@ -22,6 +23,7 @@ private:
// JKRSolidHeap* solid_heap;
// void** resource_buffer;
};
#pragma pack(pop)
struct J3DAnmBase {};

View File

@ -2,18 +2,23 @@
#define __D_STAGE_H_
#include "global.h"
#pragma pack(push,1)
class dStage_roomControl_c {
public:
private:
u8 field_0x0[164];
};
#pragma pack(pop)
#pragma pack(push,1)
class dStage_stageDt_c {
public:
private:
void* vtable;
};
#pragma pack(pop)
#pragma pack(push,1)
class dStage_nextStage_c {
public:
private:
@ -35,5 +40,18 @@ private:
u8 wipe;
u8 wipe_speed;
};
#pragma pack(pop)
#pragma pack(push,1)
class dStage_startStage_c {
public:
private:
/* 0x0 */ char mStage[8];
/* 0x8 */ s16 mPoint;
/* 0xA */ s8 mRoomNo;
/* 0xB */ s8 mLayer;
/* 0xC */ s8 mDarkArea;
};
#pragma pack(pop)
#endif

View File

@ -3,6 +3,7 @@
#include "global.h"
#pragma pack(push,1)
class dVibration_c {
public:
private:
@ -43,5 +44,6 @@ private:
u32 field_0x88;
u32 field_0x8c;
};
#pragma pack(pop)
#endif

View File

@ -108,7 +108,6 @@ void debug__Fv(void);
void mDoAud_Execute(void);
void fapGm_Execute(void);
void mDoMemCd_Ctrl_c_NS_update(void);
void JKRSolidHeap_NS_create(void);
void cDyl_InitAsync(void);
void fopAcM_initManager(void);
void fapGm_Create(void);
@ -319,7 +318,7 @@ void mDoAud_Execute(void);
void fapGm_Execute(void);
void mDoCPd_c_NS_read(void);
void mDoMemCd_Ctrl_c_NS_update(void);
void JKRSolidHeap_NS_create(void);
//void JKRSolidHeap_NS_create(void);
void cDyl_InitAsync(void);
void fopAcM_initManager(void);
void fapGm_Create(void);

View File

@ -3,6 +3,18 @@
#include "dolphin/types.h"
class mDoDVDThd_command_c {};
class mDoDVDThd_command_c {
public:
private:
};
class mDoDVDThd_callback_c {
public:
mDoDVDThd_callback_c(void *(void*),void*);
~mDoDVDThd_callback_c();
mDoDVDThd_command_c* create(void *(void*),void*);
mDoDVDThd_command_c* execute();
};
#endif

View File

@ -14,33 +14,42 @@ JKRExpHeap* mDoExt_getHostIOHeap();
JKRExpHeap* mDoExt_getCommandHeap();
}
#pragma pack(push, 1)
class mDoExt_baseAnm {
public:
private:
J3DFrameCtrl frame_control;
};
#pragma pack(pop)
#pragma pack(push, 1)
class mDoExt_btkAnm {
public:
private:
mDoExt_baseAnm base_anm;
u32 field_0x14;
};
#pragma pack(pop)
#pragma pack(push, 1)
class mDoExt_brkAnm {
public:
private:
mDoExt_baseAnm mDoExt_baseAnm;
u32 field_0x14;
};
#pragma pack(pop)
#pragma pack(push, 1)
class mDoExt_bpkAnm {
public:
private:
mDoExt_baseAnm mDoExt_baseAnm;
u32 field_0x14;
};
#pragma pack(pop)
#pragma pack(push, 1)
class mDoExt_bckAnm {
public:
private:
@ -48,11 +57,14 @@ private:
u8 field_0x14[4];
u32 field_0x18;
};
#pragma pack(pop)
#pragma pack(push, 1)
class mDoExt_McaMorfCallBack1_c {
public:
private:
void* vtable;
};
#pragma pack(pop)
#endif

View File

@ -1,5 +1,6 @@
#include "JSystem/JKernel/JKRExpHeap/JKRExpHeap.h"
#include "JSystem/JKernel/JKRHeap/JKRHeap.h"
#include "JSystem/JKernel/JKRSolidHeap/JKRSolidHeap.h"
#include "dolphin/types.h"
class HeapCheck {
@ -14,18 +15,29 @@ public:
void setHeapSize(u32 i_size) { heap_size = i_size; }
private:
char* names[2];
JKRExpHeap* heap;
s32 max_total_used_size;
s32 max_total_free_size;
u8 unk20[8]; // 8 bytes
u32 heap_size;
u32 used_count;
u32 total_used_size;
/* 0x00 */ char* names[2];
/* 0x08 */ JKRExpHeap* heap;
/* 0x0C */ s32 max_total_used_size;
/* 0x10 */ s32 max_total_free_size;
/* 0x14 */ u8 unk20[8];
/* 0x1C */ u32 heap_size;
/* 0x20 */ u32 used_count;
/* 0x24 */ u32 total_used_size;
};
extern HeapCheck* HeapCheckTable[8];
extern HeapCheck lbl_803D32E0[8]; // RootHeapCheck
// extern HeapCheck lbl_803D3308; // SystemHeapCheck
// extern HeapCheck lbl_803D3330; // ZeldaHeapCheck
// extern HeapCheck lbl_803D3358; // GameHeapCheck
// extern HeapCheck lbl_803D3380; // ArchiveHeapCheck
// 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];
extern u8 lbl_80450588[8];
extern u8 lbl_804511B8[4];
extern u8 lbl_80451210[4];
extern JKRSolidHeap* lbl_80450BBC;

View File

@ -13,7 +13,7 @@ extern u8 lbl_803A2EF4;
extern char lbl_803A2EE0[20];
extern u8 lbl_80450B19;
// extern u8 lbl_80450588;
extern u8 lbl_804511B8;
// extern u8 lbl_804511B8;
extern u8 lbl_80450B20;
extern u8 lbl_80451A00;
extern u8 lbl_80450B1C;
@ -49,8 +49,7 @@ extern u8 lbl_80450B1C;
struct JUTGamePad;
extern JUTGamePad* m_gamePad[4];
extern u8 lbl_80450B18;
extern u8 lbl_803D32E0;
extern u8 lbl_80450BBC;
//extern u8 lbl_803D32E0;
extern u8 lbl_803EAF40[];
extern u8 lbl_80450B34;
extern u8 lbl_80450B00;

View File

@ -8,6 +8,7 @@
#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"
#include "m_Do/m_Do_dvd_thread/m_Do_dvd_thread.h"
void version_check(void) {
if ((!strcmp((char*)lbl_803739A0, (char*)lbl_803739A0)) &&
@ -21,15 +22,15 @@ void version_check(void) {
}
void HeapCheck::CheckHeap1(void) {
s32 totalUsedSize = this->heap->getTotalUsedSize();
s32 freeSize = this->heap->getFreeSize();
s32 totalUsedSize = heap->getTotalUsedSize();
s32 freeSize = heap->getFreeSize();
if (this->max_total_used_size < totalUsedSize) {
this->max_total_used_size = totalUsedSize;
if (max_total_used_size < totalUsedSize) {
max_total_used_size = totalUsedSize;
}
if (this->max_total_free_size > freeSize) {
this->max_total_free_size = freeSize;
if (max_total_free_size > freeSize) {
max_total_free_size = freeSize;
}
}
@ -80,32 +81,32 @@ int countUsed(JKRExpHeap* heap) {
}
s32 HeapCheck::getUsedCount(void) const {
return countUsed(this->heap);
return countUsed(heap);
}
void HeapCheck::heapDisplay(void) const {
s32 heap_size1 = this->heap->getSize();
s32 heap_size2 = heap_size1 - this->heap_size;
s32 heap_size1 = heap->getSize();
s32 heap_size2 = heap_size1 - heap_size;
s32 heap_total_used_size = this->heap->getTotalUsedSize();
s32 heap_total_free_size = this->heap->getTotalFreeSize();
s32 heap_free_size = this->heap->getFreeSize();
s32 heap_total_used_size = heap->getTotalUsedSize();
s32 heap_total_free_size = heap->getTotalFreeSize();
s32 heap_free_size = heap->getFreeSize();
JUTReport__FiiPCce(0x64, 0xd4, lbl_803739A0 + 0x3C, this->names[0]);
JUTReport__FiiPCce(0x64, 0xd4, lbl_803739A0 + 0x3C, names[0]);
JUTReport__FiiPCce(0x64, 0xe3, lbl_803739A0 + 0x45, heap_size1);
JUTReport__FiiPCce(0x64, 0xf0, lbl_803739A0 + 0x5B, this->heap_size);
JUTReport__FiiPCce(0x64, 0xf0, lbl_803739A0 + 0x5B, heap_size);
JUTReport__FiiPCce(0x64, 0xfd, lbl_803739A0 + 0x71, heap_total_free_size - heap_size2);
JUTReport__FiiPCce(0x64, 0x10a, lbl_803739A0 + 0x87, heap_free_size - heap_size2);
JUTReport__FiiPCce(0x64, 0x117, lbl_803739A0 + 0x9D, heap_total_used_size);
JUTReport__FiiPCce(0x64, 0x124, lbl_803739A0 + 0xB3,
(int)(heap_total_used_size * 0x64) / (int)this->heap_size);
JUTReport__FiiPCce(0x64, 0x131, lbl_803739A0 + 0xCF, this->max_total_used_size);
(int)(heap_total_used_size * 0x64) / (int)heap_size);
JUTReport__FiiPCce(0x64, 0x131, lbl_803739A0 + 0xCF, max_total_used_size);
JUTReport__FiiPCce(0x64, 0x13e, lbl_803739A0 + 0xE5,
(this->max_total_used_size * 0x64) / (int)this->heap_size);
JUTReport__FiiPCce(0x64, 0x14b, lbl_803739A0 + 0x101, this->max_total_free_size - heap_size2);
(max_total_used_size * 0x64) / (int)heap_size);
JUTReport__FiiPCce(0x64, 0x14b, lbl_803739A0 + 0x101, max_total_free_size - heap_size2);
JUTReport__FiiPCce(0x64, 0x158, lbl_803739A0 + 0x117,
((this->max_total_free_size - heap_size2) * 0x64) / (int)this->heap_size);
heap_size2 = countUsed(this->heap);
((max_total_free_size - heap_size2) * 0x64) / (int)heap_size);
heap_size2 = countUsed(heap);
JUTReport__FiiPCce(0x64, 0x165, lbl_803739A0 + 0x133, heap_size2);
}
@ -169,55 +170,102 @@ void debug(void) {
}
#ifdef NONMATCHING
void main01(void) {
mDoCPd_c controller;
HeapCheck* heaps = lbl_803D32E0;
mDoMch_Create();
mDoGph_Create();
controller.create();
create__8mDoCPd_cFv();
mDoDVDThd_callback_c thread_callback;
//JKRSolidHeap audio_heap;
// Root Heap
HeapCheckTable[0]->setHeap(lbl_80451378);
heaps[0].setHeap((JKRExpHeap *)lbl_80451378);
if (lbl_80451378) {
HeapCheckTable[0]->setHeapSize(lbl_80451378->getSize());
heaps[0].setHeapSize(lbl_80451378->getSize());
}
// System Heap
HeapCheckTable[1]->setHeap(lbl_80451370);
heaps[1].setHeap((JKRExpHeap *)lbl_80451370);
if (lbl_80451370) {
HeapCheckTable[1]->setHeapSize(lbl_80451370->getSize());
heaps[1].setHeapSize(lbl_80451370->getSize());
}
// Zelda Heap
HeapCheckTable[2]->setHeap(mDoExt_getZeldaHeap());
if (HeapCheckTable[2]->getHeap()) {
HeapCheckTable[2]->setHeapSize(HeapCheckTable[2]->getHeap()->getSize());
heaps[2].setHeap(mDoExt_getZeldaHeap());
if (heaps[2].getHeap()) {
heaps[2].setHeapSize(heaps[2].getHeap()->getSize());
}
HeapCheckTable[3]->setHeap(mDoExt_getGameHeap());
if (HeapCheckTable[3]->getHeap()) {
HeapCheckTable[3]->setHeapSize(HeapCheckTable[3]->getHeap()->getSize());
// Game Heap
heaps[3].setHeap(mDoExt_getGameHeap());
if (heaps[3].getHeap()) {
heaps[3].setHeapSize(heaps[3].getHeap()->getSize());
}
HeapCheckTable[4]->setHeap(mDoExt_getArchiveHeap());
if (HeapCheckTable[4]->getHeap()) {
HeapCheckTable[4]->setHeapSize(HeapCheckTable[4]->getHeap()->getSize());
// Archive Heap
heaps[4].setHeap(mDoExt_getArchiveHeap());
if (heaps[4].getHeap()) {
heaps[4].setHeapSize(heaps[4].getHeap()->getSize());
}
HeapCheckTable[5]->setHeap(mDoExt_getJ2dHeap());
if (HeapCheckTable[5]->getHeap()) {
HeapCheckTable[5]->setHeapSize(HeapCheckTable[5]->getHeap()->getSize());
// J2D Heap
heaps[5].setHeap(mDoExt_getJ2dHeap());
if (heaps[5].getHeap()) {
heaps[5].setHeapSize(heaps[5].getHeap()->getSize());
}
HeapCheckTable[6]->setHeap(mDoExt_getHostIOHeap());
if (HeapCheckTable[6]->getHeap()) {
HeapCheckTable[6]->setHeapSize(HeapCheckTable[6]->getHeap()->getSize());
// HostIO Heap
heaps[6].setHeap(mDoExt_getHostIOHeap());
if (heaps[6].getHeap()) {
heaps[6].setHeapSize(heaps[6].getHeap()->getSize());
}
HeapCheckTable[7]->setHeap(mDoExt_getCommandHeap());
if (HeapCheckTable[7]->getHeap()) {
HeapCheckTable[7]->setHeapSize(HeapCheckTable[7]->getHeap()->getSize());
// Command Heap
heaps[7].setHeap(mDoExt_getCommandHeap());
u8* systemConsole = lbl_804511B8;
if (heaps[7].getHeap()) {
heaps[7].setHeapSize(heaps[7].getHeap()->getSize());
}
int unk = 0;
if (lbl_80450580) {
unk = 3;
}
*(lbl_804511B8+0x58) = unk;
*(systemConsole+0x40) = 0x20;
*(systemConsole+0x44) = 0x2a;
// lol
thread_callback.create((void * (*)(void *))LOAD_COPYDATE,0);
fapGm_Create();
fopAcM_initManager();
lbl_80450B18 = 0;
cDyl_InitAsync();
// g_mDoAud_audioHeap
lbl_80450BBC = JKRSolidHeap_NS_create(0x14d800,lbl_80451374,false);
// main loop
do {
// global frame counter?
lbl_80450B34++;
if (lbl_80450B00 && (lbl_80450B34 == ((lbl_80450B34 / lbl_80450B00) * lbl_80450B00))) {
mDoMch_HeapCheckAll();
}
if (lbl_80450C80) {
mDoMemCd_Ctrl_c_NS_update();
}
mDoCPd_c_NS_read();
fapGm_Execute();
mDoAud_Execute();
debug();
} while (true);
}
#else
asm void main01(void) {