mirror of
https://github.com/zeldaret/tp
synced 2026-07-08 22:44:44 -04:00
move / fix bunch of stuff (#133)
* fix some class structures / d_event wip * d_event wip * move gamepad stuff * move m_Do_main * move d_bomb / partial m_Do_reset * format * remove asm * add Z2SoundID enum * move some Z2 classes * fix * move more Z2 stuff * fix fopAc_ac_c more
This commit is contained in:
+5
-16
@@ -39,10 +39,6 @@ struct mDoExt_MtxCalcAnmBlendTbl {
|
||||
/* 800D00BC */ void getAnm(int);
|
||||
};
|
||||
|
||||
struct mDoCPd_c {
|
||||
static u8 m_cpadInfo[256];
|
||||
};
|
||||
|
||||
struct fopEn_enemy_c {};
|
||||
|
||||
struct e_wb_class {
|
||||
@@ -635,13 +631,6 @@ struct dInsect_c {
|
||||
/* 80110648 */ void Insect_Release();
|
||||
};
|
||||
|
||||
struct dEvt_info_c {
|
||||
/* 801411E0 */ void onCondition(u16);
|
||||
/* 80141200 */ void offCondition(u16);
|
||||
/* 80141388 */ void checkCommandCatch();
|
||||
/* 80141450 */ void checkCommandDoor();
|
||||
};
|
||||
|
||||
struct dEvt_control_c {
|
||||
/* 80042468 */ void reset();
|
||||
/* 80042518 */ void reset(void*);
|
||||
@@ -24106,10 +24095,10 @@ asm void daAlink_c::checkPullBehindWall() {
|
||||
|
||||
/* 800E8298-800E82B0 0E2BD8 0018+00 3/3 0/0 0/0 .text offGoatStopGame__9daAlink_cFv */
|
||||
void daAlink_c::offGoatStopGame() {
|
||||
if (field_0x56a != 0x2a) {
|
||||
if (field_0x560[0xA] != 0x2a) {
|
||||
return;
|
||||
} else {
|
||||
field_0x56a = 0;
|
||||
field_0x560[0xA] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24349,7 +24338,7 @@ asm void daAlink_c::checkSumouVsActor() {
|
||||
/* 800EA8D0-800EA908 0E5210 0038+00 5/5 0/0 0/0 .text cancelSumouMode__9daAlink_cFv */
|
||||
void daAlink_c::cancelSumouMode() {
|
||||
field_0x2854.clearData();
|
||||
field_0x56a = 0;
|
||||
field_0x560[0xA] = 0;
|
||||
}
|
||||
|
||||
/* 800EA908-800EA92C 0E5248 0024+00 2/2 0/0 0/0 .text sumouPunchTrigger__9daAlink_cFv */
|
||||
@@ -35167,7 +35156,7 @@ void daPy_demo_c::setSpecialDemoType() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dEvt_info_c::checkCommandCatch() {
|
||||
asm bool dEvt_info_c::checkCommandCatch() {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/checkCommandCatch__11dEvt_info_cFv.s"
|
||||
}
|
||||
@@ -35245,7 +35234,7 @@ static asm void dComIfGp_event_chkEventFlag(u16 param_0) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dEvt_info_c::checkCommandDoor() {
|
||||
asm bool dEvt_info_c::checkCommandDoor() {
|
||||
nofralloc
|
||||
#include "asm/d/a/d_a_alink/checkCommandDoor__11dEvt_info_cFv.s"
|
||||
}
|
||||
|
||||
@@ -26,11 +26,6 @@ struct dBgS_CamLinChk {
|
||||
/* 80077E00 */ ~dBgS_CamLinChk();
|
||||
};
|
||||
|
||||
struct dBgS_BombLinChk {
|
||||
/* 80078104 */ dBgS_BombLinChk();
|
||||
/* 80078160 */ ~dBgS_BombLinChk();
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
@@ -27,10 +27,6 @@ struct mDoGph_gInf_c {
|
||||
static u8 mFader[4];
|
||||
};
|
||||
|
||||
struct mDoCPd_c {
|
||||
static u8 m_cpadInfo[256];
|
||||
};
|
||||
|
||||
struct dSmplMdl_draw_c {
|
||||
/* 80048CB4 */ dSmplMdl_draw_c();
|
||||
/* 80048E0C */ void draw();
|
||||
|
||||
+11
-65
@@ -6,75 +6,21 @@
|
||||
#include "d/d_bomb.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct fopAc_ac_c {};
|
||||
|
||||
struct dBomb_c {
|
||||
/* 80031F94 */ void checkStateCarry();
|
||||
/* 80031FCC */ void checkFlowerBombWait(fopAc_ac_c*);
|
||||
/* 80031FF4 */ void checkWaterBomb(fopAc_ac_c*);
|
||||
/* 8003201C */ void checkInsectBombMove(fopAc_ac_c*);
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" void checkStateCarry__7dBomb_cFv();
|
||||
extern "C" void checkFlowerBombWait__7dBomb_cFP10fopAc_ac_c();
|
||||
extern "C" void checkWaterBomb__7dBomb_cFP10fopAc_ac_c();
|
||||
extern "C" void checkInsectBombMove__7dBomb_cFP10fopAc_ac_c();
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 80031F94-80031FCC 02C8D4 0038+00 0/0 0/0 5/5 .text checkStateCarry__7dBomb_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dBomb_c::checkStateCarry() {
|
||||
nofralloc
|
||||
#include "asm/d/d_bomb/checkStateCarry__7dBomb_cFv.s"
|
||||
bool dBomb_c::checkStateCarry() {
|
||||
return (fopAcM_checkCarryNow(&mActor) || fopAcM_checkHookCarryNow(&mActor) ||
|
||||
fopAcM_GetParam(&mActor) == 2 || fopAcM_GetParam(&mActor) == 1);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80031FCC-80031FF4 02C90C 0028+00 0/0 0/0 1/1 .text checkFlowerBombWait__7dBomb_cFP10fopAc_ac_c
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dBomb_c::checkFlowerBombWait(fopAc_ac_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_bomb/checkFlowerBombWait__7dBomb_cFP10fopAc_ac_c.s"
|
||||
bool dBomb_c::checkFlowerBombWait(fopAc_ac_c* param_1) {
|
||||
return (fopAcM_GetName(&mActor) == 0x221 && fopAcM_GetParam(&mActor) == 4);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80031FF4-8003201C 02C934 0028+00 0/0 0/0 1/1 .text checkWaterBomb__7dBomb_cFP10fopAc_ac_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dBomb_c::checkWaterBomb(fopAc_ac_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_bomb/checkWaterBomb__7dBomb_cFP10fopAc_ac_c.s"
|
||||
bool dBomb_c::checkWaterBomb(fopAc_ac_c* param_1) {
|
||||
return (fopAcM_GetName(&mActor) == 0x221 && daNbomb_c::checkWaterBomb());
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8003201C-80032044 02C95C 0028+00 0/0 0/0 1/1 .text checkInsectBombMove__7dBomb_cFP10fopAc_ac_c
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dBomb_c::checkInsectBombMove(fopAc_ac_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_bomb/checkInsectBombMove__7dBomb_cFP10fopAc_ac_c.s"
|
||||
}
|
||||
#pragma pop
|
||||
bool dBomb_c::checkInsectBombMove(fopAc_ac_c* param_1) {
|
||||
return (fopAcM_GetName(&mActor) == 0x221 && fopAcM_GetParam(&mActor) == 7);
|
||||
}
|
||||
@@ -90,14 +90,6 @@ struct JKRExpHeap {
|
||||
|
||||
struct JKRAramArchive {};
|
||||
|
||||
struct J3DLightObj {
|
||||
/* 80018C0C */ J3DLightObj();
|
||||
};
|
||||
|
||||
struct J3DLightInfo {
|
||||
/* 803256C4 */ void operator=(J3DLightInfo const&);
|
||||
};
|
||||
|
||||
struct FuncTable {};
|
||||
|
||||
//
|
||||
|
||||
+113
-212
@@ -6,6 +6,8 @@
|
||||
#include "d/event/d_event.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "f_op/f_op_actor_iter.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
@@ -37,34 +39,6 @@ struct dMsgObject_c {
|
||||
/* 80238098 */ void endFlowGroup();
|
||||
};
|
||||
|
||||
struct dEvt_info_c {
|
||||
/* 800433F0 */ dEvt_info_c();
|
||||
/* 80043428 */ void setEventName(char*);
|
||||
/* 80043480 */ void getEventName();
|
||||
/* 800434CC */ void beforeProc();
|
||||
};
|
||||
|
||||
struct dEvent_manager_c {
|
||||
/* 80046800 */ void setObjectArchive(char*);
|
||||
/* 80046DAC */ void endProc(s16, int);
|
||||
/* 80046E64 */ void Sequencer();
|
||||
/* 800473FC */ void Experts();
|
||||
/* 800474BC */ void getEventData(s16);
|
||||
/* 80047514 */ void getEventIdx(char const*, u8, s32);
|
||||
/* 80047698 */ void getEventIdx(fopAc_ac_c*, u8);
|
||||
/* 80047984 */ void order(s16);
|
||||
/* 800482CC */ void issueStaff(char const*);
|
||||
/* 80048348 */ void cancelStaff(char const*);
|
||||
};
|
||||
|
||||
struct dEvent_exception_c {
|
||||
/* 800463F0 */ void setStartDemo(int);
|
||||
};
|
||||
|
||||
struct dEvDtEvent_c {
|
||||
/* 80043EFC */ void forceFinish();
|
||||
};
|
||||
|
||||
struct dDemo_c {
|
||||
/* 80039CF8 */ void end();
|
||||
|
||||
@@ -157,7 +131,7 @@ extern "C" void fopAcM_orderOtherEventId__FP10fopAc_ac_csUcUsUsUs();
|
||||
extern "C" void fopAcM_getItemEventPartner__FPC10fopAc_ac_c();
|
||||
extern "C" void fpcSch_JudgeByID__FPvPv();
|
||||
extern "C" void getStatusRoomDt__20dStage_roomControl_cFi();
|
||||
extern "C" void dStage_changeScene4Event__FiScibfUlsi();
|
||||
extern "C" void dStage_changeScene4Event__FiScibfUlsi(int, s8, int, bool, float, u32, s16, int);
|
||||
extern "C" void dComIfGp_getSelectItem__Fi();
|
||||
extern "C" void dComIfG_getStageRes__FPCc();
|
||||
extern "C" void dComIfG_getRoomArcName__Fi();
|
||||
@@ -232,17 +206,10 @@ static asm void func_80041488() {
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80041580-800415D4 03BEC0 0054+00 0/0 1/1 0/0 .text __ct__14dEvt_control_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dEvt_control_c::dEvt_control_c() {
|
||||
nofralloc
|
||||
#include "asm/d/event/d_event/__ct__14dEvt_control_cFv.s"
|
||||
dEvt_control_c::dEvt_control_c() {
|
||||
remove();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800415D4-800415D8 03BF14 0004+00 1/1 0/0 0/0 .text __ct__12dEvt_order_cFv */
|
||||
dEvt_order_c::dEvt_order_c() {
|
||||
/* empty function */
|
||||
}
|
||||
@@ -290,7 +257,7 @@ asm void dEvt_control_c::setParam(dEvt_order_c* param_0) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dEvt_control_c::beforeFlagProc(dEvt_order_c* param_0) {
|
||||
asm s32 dEvt_control_c::beforeFlagProc(dEvt_order_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/event/d_event/beforeFlagProc__14dEvt_control_cFP12dEvt_order_c.s"
|
||||
}
|
||||
@@ -405,16 +372,22 @@ asm void dEvt_control_c::demoEnd() {
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80041FA0-80042014 03C8E0 0074+00 1/1 0/0 0/0 .text
|
||||
* potentialCheck__14dEvt_control_cFP12dEvt_order_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dEvt_control_c::potentialCheck(dEvt_order_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/event/d_event/potentialCheck__14dEvt_control_cFP12dEvt_order_c.s"
|
||||
s32 dEvt_control_c::potentialCheck(dEvt_order_c* param_0) {
|
||||
fopAc_ac_c* actor = param_0->mActor1;
|
||||
s32 ret;
|
||||
s32 tmp = beforeFlagProc(param_0);
|
||||
|
||||
if (!tmp) {
|
||||
ret = 0;
|
||||
} else {
|
||||
actor->mEvtInfo.setCommand(2);
|
||||
mMode = 2;
|
||||
setParam(param_0);
|
||||
afterFlagProc(param_0);
|
||||
ret = 1;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80042014-8004212C 03C954 0118+00 1/1 0/0 0/0 .text doorCheck__14dEvt_control_cFP12dEvt_order_c
|
||||
*/
|
||||
@@ -514,22 +487,23 @@ asm void dEvt_control_c::reset(void* param_0) {
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800425B4-800425E8 03CEF4 0034+00 2/2 0/0 0/0 .text clearSkipSystem__14dEvt_control_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dEvt_control_c::clearSkipSystem() {
|
||||
nofralloc
|
||||
#include "asm/d/event/d_event/clearSkipSystem__14dEvt_control_cFv.s"
|
||||
void dEvt_control_c::clearSkipSystem() {
|
||||
mSkipFunc = NULL;
|
||||
field_0x104 = -1;
|
||||
field_0x10c = 0;
|
||||
field_0x108 = 0;
|
||||
|
||||
if (!chkFlag2(3)) {
|
||||
mSkipFade = 0;
|
||||
}
|
||||
mSkipEventName[0] = 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800425E8-8004261C 03CF28 0034+00 0/0 2/2 5/5 .text dEv_defaultSkipProc__FPvi */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dEv_defaultSkipProc(void* param_0, int param_1) {
|
||||
asm int dEv_defaultSkipProc(void* param_0, int param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/event/d_event/dEv_defaultSkipProc__FPvi.s"
|
||||
}
|
||||
@@ -546,7 +520,7 @@ SECTION_DEAD static char const* const stringBase_80379DC3 = "$0";
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dEv_defaultSkipZev(void* param_0, int param_1) {
|
||||
asm int dEv_defaultSkipZev(void* param_0, int param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/event/d_event/dEv_defaultSkipZev__FPvi.s"
|
||||
}
|
||||
@@ -556,7 +530,7 @@ asm void dEv_defaultSkipZev(void* param_0, int param_1) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dEv_defaultSkipStb(void* param_0, int param_1) {
|
||||
asm int dEv_defaultSkipStb(void* param_0, int param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/event/d_event/dEv_defaultSkipStb__FPvi.s"
|
||||
}
|
||||
@@ -566,63 +540,37 @@ asm void dEv_defaultSkipStb(void* param_0, int param_1) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dEv_noFinishSkipProc(void* param_0, int param_1) {
|
||||
asm int dEv_noFinishSkipProc(void* param_0, int param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/event/d_event/dEv_noFinishSkipProc__FPvi.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8004290C-80042914 03D24C 0008+00 2/2 0/0 0/0 .text getSkipEventName__14dEvt_control_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dEvt_control_c::getSkipEventName() {
|
||||
nofralloc
|
||||
#include "asm/d/event/d_event/getSkipEventName__14dEvt_control_cFv.s"
|
||||
char* dEvt_control_c::getSkipEventName() {
|
||||
return mSkipEventName;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80042914-80042958 03D254 0044+00 1/1 3/3 64/64 .text setSkipProc__14dEvt_control_cFPvPFPvi_ii
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dEvt_control_c::setSkipProc(void* param_0, int (*param_1)(void*, int), int param_2) {
|
||||
nofralloc
|
||||
#include "asm/d/event/d_event/setSkipProc__14dEvt_control_cFPvPFPvi_ii.s"
|
||||
void dEvt_control_c::setSkipProc(void* param_0, SkipFunc skipFunc, int param_2) {
|
||||
mSkipFunc = skipFunc;
|
||||
field_0x104 = getPId(param_0);
|
||||
field_0x10c = param_2;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80042958-800429A8 03D298 0050+00 0/0 1/1 14/14 .text setSkipZev__14dEvt_control_cFPvPc
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dEvt_control_c::setSkipZev(void* param_0, char* param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/event/d_event/setSkipZev__14dEvt_control_cFPvPc.s"
|
||||
void dEvt_control_c::setSkipZev(void* param_0, char* pName) {
|
||||
setSkipProc(param_0, dEv_defaultSkipZev, 1);
|
||||
strcpy(mSkipEventName, pName);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800429A8-800429B4 03D2E8 000C+00 0/0 1/1 30/30 .text onSkipFade__14dEvt_control_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dEvt_control_c::onSkipFade() {
|
||||
nofralloc
|
||||
#include "asm/d/event/d_event/onSkipFade__14dEvt_control_cFv.s"
|
||||
void dEvt_control_c::onSkipFade() {
|
||||
mSkipFade = 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800429B4-800429D4 03D2F4 0020+00 1/1 0/0 0/0 .text offSkipFade__14dEvt_control_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dEvt_control_c::offSkipFade() {
|
||||
nofralloc
|
||||
#include "asm/d/event/d_event/offSkipFade__14dEvt_control_cFv.s"
|
||||
void dEvt_control_c::offSkipFade() {
|
||||
if (mSkipFade != 0) {
|
||||
mSkipFade = 0;
|
||||
}
|
||||
mSkipFade = 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80451EC4-80451EC8 0004C4 0004+00 1/1 0/0 0/0 .sdata2 @4904 */
|
||||
@@ -673,57 +621,55 @@ asm void dEvt_control_c::compulsory(void* param_0, char const* param_1, u16 para
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80451ECC-80451ED0 0004CC 0004+00 2/2 0/0 0/0 .sdata2 @5095 */
|
||||
SECTION_SDATA2 static u8 lit_5095[4] = {
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
|
||||
/* 800431E8-80043278 03DB28 0090+00 1/1 1/1 0/0 .text remove__14dEvt_control_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dEvt_control_c::remove() {
|
||||
nofralloc
|
||||
#include "asm/d/event/d_event/remove__14dEvt_control_cFv.s"
|
||||
void dEvt_control_c::remove() {
|
||||
mMode = 0;
|
||||
field_0xe5 = 0;
|
||||
mNum = 0;
|
||||
mDebugStb = 0;
|
||||
field_0xe6 = 0;
|
||||
field_0xe7 = 0;
|
||||
mCullRate = 0.0f;
|
||||
field_0xea = -1;
|
||||
mMapToolId = -1;
|
||||
field_0xec = -1;
|
||||
mStageEventDt = NULL;
|
||||
field_0xe0 = 255;
|
||||
field_0xed = 0;
|
||||
mPreItemNo = -1;
|
||||
mEventFlag = 0;
|
||||
mFlag2 = 0;
|
||||
mChangeOK = NULL;
|
||||
clearSkipSystem();
|
||||
mCompulsory = 0;
|
||||
field_0x129 = 0;
|
||||
field_0x12c = -1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80043278-80043280 03DBB8 0008+00 2/2 2/2 0/0 .text getStageEventDt__14dEvt_control_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dEvt_control_c::getStageEventDt() {
|
||||
nofralloc
|
||||
#include "asm/d/event/d_event/getStageEventDt__14dEvt_control_cFv.s"
|
||||
// ret type probably wrong, fix later
|
||||
void* dEvt_control_c::getStageEventDt() {
|
||||
return mStageEventDt;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80043280-800432C8 03DBC0 0048+00 0/0 1/1 0/0 .text sceneChange__14dEvt_control_cFi */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dEvt_control_c::sceneChange(int param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/event/d_event/sceneChange__14dEvt_control_cFi.s"
|
||||
void dEvt_control_c::sceneChange(int param_0) {
|
||||
dStage_changeScene4Event__FiScibfUlsi(param_0, field_0x12c, -1, field_0x129, 0.0f, 0, 0, -1);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800432C8-800432EC 03DC08 0024+00 6/6 0/0 0/0 .text getPId__14dEvt_control_cFPv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dEvt_control_c::getPId(void* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/event/d_event/getPId__14dEvt_control_cFPv.s"
|
||||
u32 dEvt_control_c::getPId(void* param_0) {
|
||||
if (param_0 == NULL) {
|
||||
return 0xffffffff;
|
||||
} else {
|
||||
return fopAcM_GetID(param_0);
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800432EC-8004331C 03DC2C 0030+00 7/7 13/13 16/16 .text convPId__14dEvt_control_cFUi */
|
||||
#ifdef NONMATCHING
|
||||
void dEvt_control_c::convPId(unsigned int param_0) {
|
||||
fopAcIt_Judge(fpcSch_JudgeByID, (void*)param_0);
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -732,6 +678,7 @@ asm void dEvt_control_c::convPId(unsigned int param_0) {
|
||||
#include "asm/d/event/d_event/convPId__14dEvt_control_cFUi.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8004331C-800433F0 03DC5C 00D4+00 0/0 1/1 0/0 .text getStbDemoData__14dEvt_control_cFPc
|
||||
*/
|
||||
@@ -744,15 +691,14 @@ asm void dEvt_control_c::getStbDemoData(char* param_0) {
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800433F0-80043428 03DD30 0038+00 0/0 1/1 0/0 .text __ct__11dEvt_info_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dEvt_info_c::dEvt_info_c() {
|
||||
nofralloc
|
||||
#include "asm/d/event/d_event/__ct__11dEvt_info_cFv.s"
|
||||
dEvt_info_c::dEvt_info_c() {
|
||||
setCommand(0);
|
||||
setCondition(2);
|
||||
setEventId(-1);
|
||||
setMapToolId(-1);
|
||||
mArchiveName = NULL;
|
||||
mIndex = 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80043428-80043480 03DD68 0058+00 0/0 0/0 4/4 .text setEventName__11dEvt_info_cFPc */
|
||||
#pragma push
|
||||
@@ -774,15 +720,9 @@ asm void dEvt_info_c::getEventName() {
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800434CC-800434D8 03DE0C 000C+00 0/0 1/1 0/0 .text beforeProc__11dEvt_info_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dEvt_info_c::beforeProc() {
|
||||
nofralloc
|
||||
#include "asm/d/event/d_event/beforeProc__11dEvt_info_cFv.s"
|
||||
void dEvt_info_c::beforeProc() {
|
||||
setCondition(2);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800434D8-80043500 03DE18 0028+00 0/0 4/4 1/1 .text searchMapEventData__14dEvt_control_cFUc */
|
||||
#pragma push
|
||||
@@ -804,75 +744,36 @@ asm void dEvt_control_c::searchMapEventData(u8 param_0, s32 param_1) {
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8004360C-8004362C 03DF4C 0020+00 0/0 1/1 0/0 .text runningEventID__14dEvt_control_cFs
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dEvt_control_c::runningEventID(s16 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/event/d_event/runningEventID__14dEvt_control_cFs.s"
|
||||
s16 dEvt_control_c::runningEventID(s16 param_0) {
|
||||
return param_0 == field_0xe0 ? mSpecifiedEvent : param_0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8004362C-8004365C 03DF6C 0030+00 1/1 0/0 0/0 .text setPt1__14dEvt_control_cFPv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dEvt_control_c::setPt1(void* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/event/d_event/setPt1__14dEvt_control_cFPv.s"
|
||||
void dEvt_control_c::setPt1(void* param_0) {
|
||||
mPt1 = getPId(param_0);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8004365C-8004368C 03DF9C 0030+00 1/1 2/2 28/28 .text setPt2__14dEvt_control_cFPv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dEvt_control_c::setPt2(void* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/event/d_event/setPt2__14dEvt_control_cFPv.s"
|
||||
void dEvt_control_c::setPt2(void* param_0) {
|
||||
mPt2 = getPId(param_0);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8004368C-800436BC 03DFCC 0030+00 1/1 4/4 21/21 .text setPtT__14dEvt_control_cFPv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dEvt_control_c::setPtT(void* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/event/d_event/setPtT__14dEvt_control_cFPv.s"
|
||||
void dEvt_control_c::setPtT(void* param_0) {
|
||||
mPtT = getPId(param_0);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800436BC-800436EC 03DFFC 0030+00 1/1 2/2 3/3 .text setPtI__14dEvt_control_cFPv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dEvt_control_c::setPtI(void* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/event/d_event/setPtI__14dEvt_control_cFPv.s"
|
||||
void dEvt_control_c::setPtI(void* param_0) {
|
||||
mPtI = getPId(param_0);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800436EC-800436F4 -00001 0008+00 0/0 0/0 0/0 .text setPtI_Id__14dEvt_control_cFUi */
|
||||
void dEvt_control_c::setPtI_Id(unsigned int param_0) {
|
||||
*(u32*)(((u8*)this) + 208) /* this->field_0xd0 */ = (u32)(param_0);
|
||||
mPtI = param_0;
|
||||
}
|
||||
|
||||
/* 800436F4-80043724 03E034 0030+00 0/0 4/4 0/0 .text setPtD__14dEvt_control_cFPv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dEvt_control_c::setPtD(void* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/event/d_event/setPtD__14dEvt_control_cFPv.s"
|
||||
void dEvt_control_c::setPtD(void* param_0) {
|
||||
mPtd = getPId(param_0);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80043724-8004372C -00001 0008+00 0/0 0/0 0/0 .text setGtItm__14dEvt_control_cFUc */
|
||||
void dEvt_control_c::setGtItm(u8 param_0) {
|
||||
*(u8*)(((u8*)this) + 239) /* this->field_0xef */ = (u8)(param_0);
|
||||
mGtItm = param_0;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
|
||||
@@ -11,8 +11,6 @@
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct _GXColor {};
|
||||
|
||||
struct mDoGph_gInf_c {
|
||||
/* 80007FD8 */ void fadeOut(f32, _GXColor&);
|
||||
/* 800080D0 */ void fadeOut(f32);
|
||||
@@ -61,10 +59,6 @@ struct dEvent_manager_c {
|
||||
/* 8004817C */ void cutEnd(int);
|
||||
};
|
||||
|
||||
struct dEvDtCut_c {
|
||||
/* 800460A8 */ void startCheck();
|
||||
};
|
||||
|
||||
struct dDlst_list_c {
|
||||
/* 800568D8 */ void wipeIn(f32);
|
||||
|
||||
@@ -360,25 +354,19 @@ asm void dEvDtFlag_c::flagSet(int param_0) {
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80043E30-80043E58 03E770 0028+00 2/2 0/0 0/0 .text flagMaxCheck__11dEvDtFlag_cFi */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dEvDtFlag_c::flagMaxCheck(int param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/event/d_event_data/flagMaxCheck__11dEvDtFlag_cFi.s"
|
||||
}
|
||||
#pragma pop
|
||||
bool dEvDtFlag_c::flagMaxCheck(int flag_id) {
|
||||
if (flag_id == -1) {
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 80043E58-80043E78 03E798 0020+00 0/0 3/3 0/0 .text init__11dEvDtFlag_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dEvDtFlag_c::init() {
|
||||
nofralloc
|
||||
#include "asm/d/event/d_event_data/init__11dEvDtFlag_cFv.s"
|
||||
return FlagMax <= flag_id;
|
||||
}
|
||||
|
||||
void dEvDtFlag_c::init() {
|
||||
for (int i = 0; i < 320; i++) {
|
||||
mFlags[i] = 0;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80043E78-80043EFC 03E7B8 0084+00 0/0 1/1 0/0 .text finishCheck__12dEvDtEvent_cFv */
|
||||
#pragma push
|
||||
|
||||
@@ -183,15 +183,10 @@ extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 800463DC-800463F0 040D1C 0014+00 2/2 0/0 0/0 .text init__18dEvent_exception_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dEvent_exception_c::init() {
|
||||
nofralloc
|
||||
#include "asm/d/event/d_event_manager/init__18dEvent_exception_cFv.s"
|
||||
void dEvent_exception_c::init() {
|
||||
mEventInfoIdx = -1;
|
||||
mState = 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800463F0-80046480 040D30 0090+00 0/0 2/2 0/0 .text setStartDemo__18dEvent_exception_cFi */
|
||||
#pragma push
|
||||
@@ -267,25 +262,13 @@ asm void dEvent_manager_c::getSubstance(dEvDtData_c* param_0, int param_1) {
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80046688-800466E0 040FC8 0058+00 0/0 1/1 0/0 .text __ct__16dEvent_manager_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dEvent_manager_c::dEvent_manager_c() {
|
||||
nofralloc
|
||||
#include "asm/d/event/d_event_manager/__ct__16dEvent_manager_cFv.s"
|
||||
dEvent_manager_c::dEvent_manager_c() {
|
||||
mDataLoaded = false;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800466E0-80046710 041020 0030+00 1/1 0/0 0/0 .text __ct__11dEvDtBase_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dEvDtBase_c::dEvDtBase_c() {
|
||||
nofralloc
|
||||
#include "asm/d/event/d_event_manager/__ct__11dEvDtBase_cFv.s"
|
||||
dEvDtBase_c::dEvDtBase_c() {
|
||||
init();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80379F50-80379F60 0065B0 000F+01 6/6 0/0 0/0 .rodata
|
||||
@@ -357,15 +340,13 @@ asm void dEvent_manager_c::roomInit(int param_0) {
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800469EC-80046A58 04132C 006C+00 0/0 1/1 0/0 .text roomFinish__16dEvent_manager_cFi */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dEvent_manager_c::roomFinish(int param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/event/d_event_manager/roomFinish__16dEvent_manager_cFi.s"
|
||||
void dEvent_manager_c::roomFinish(int param_0) {
|
||||
for (int i = 4; i <= 9; i++) {
|
||||
if (mEventList[i].getHeaderP() != NULL && param_0 == mEventList[i].roomNo()) {
|
||||
mEventList[i].init();
|
||||
}
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80379F60-80379F60 0065C0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
@@ -385,15 +366,14 @@ asm void dEvent_manager_c::orderStartDemo() {
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80046C0C-80046C74 04154C 0068+00 0/0 1/1 0/0 .text remove__16dEvent_manager_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dEvent_manager_c::remove() {
|
||||
nofralloc
|
||||
#include "asm/d/event/d_event_manager/remove__16dEvent_manager_cFv.s"
|
||||
void dEvent_manager_c::remove() {
|
||||
for (int i = 0; i < 11; i++) {
|
||||
mEventList[i].init();
|
||||
}
|
||||
mCameraPlay = 0;
|
||||
mEventException.init();
|
||||
mFlags.init();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80046C74-80046C88 0415B4 0014+00 1/1 0/0 0/0 .text extraOnObjectCallBack__FP10fopAc_ac_cPv */
|
||||
#pragma push
|
||||
@@ -514,14 +494,35 @@ asm void dEvent_manager_c::Experts() {
|
||||
|
||||
/* 80047454-800474BC 041D94 0068+00 1/1 0/0 0/0 .text getEventData__16dEvent_manager_cFsi
|
||||
*/
|
||||
#ifdef NONMATCHING
|
||||
dEvDtEvent_c* dEvent_manager_c::getEventData(s16 param_0, int param_1) {
|
||||
dEvDtBase_c* baseptr;
|
||||
dEvDtEvent_c* eventptr;
|
||||
|
||||
if (param_1 < 1 || param_1 > 12) {
|
||||
eventptr = NULL;
|
||||
} else {
|
||||
baseptr = &mEventList[param_1];
|
||||
if (baseptr == NULL || baseptr->getHeaderP() == NULL) {
|
||||
eventptr = NULL;
|
||||
} else if (param_0 < 0 || baseptr->getEventNum() <= param_0) {
|
||||
eventptr = NULL;
|
||||
} else {
|
||||
eventptr = baseptr->getEventP(param_1);
|
||||
}
|
||||
}
|
||||
return eventptr;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dEvent_manager_c::getEventData(s16 param_0, int param_1) {
|
||||
asm dEvDtEvent_c* dEvent_manager_c::getEventData(s16 param_0, int param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/event/d_event_manager/getEventData__16dEvent_manager_cFsi.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 800474BC-80047514 041DFC 0058+00 9/9 3/3 4/4 .text getEventData__16dEvent_manager_cFs
|
||||
*/
|
||||
|
||||
@@ -73,8 +73,6 @@ struct dStage_roomControl_c {
|
||||
static u8 mStatus[65792];
|
||||
};
|
||||
|
||||
struct dKy_tevstr_c {};
|
||||
|
||||
struct J3DModelData {
|
||||
/* 8032600C */ void simpleCalcMaterial(u16, f32 (*)[4]);
|
||||
};
|
||||
@@ -203,12 +201,6 @@ struct J3DModel {};
|
||||
|
||||
struct J3DMaterial {};
|
||||
|
||||
struct J3DLightObj {};
|
||||
|
||||
struct J3DLightInfo {
|
||||
/* 803256C4 */ void operator=(J3DLightInfo const&);
|
||||
};
|
||||
|
||||
struct J3DGXColor {};
|
||||
|
||||
struct J3DFrameCtrl {
|
||||
|
||||
+60
-263
@@ -19,139 +19,6 @@ struct mDoGph_gInf_c {
|
||||
static u8 mFrameBufferTex[4];
|
||||
};
|
||||
|
||||
struct mDoCPd_c {
|
||||
static u8 m_cpadInfo[256];
|
||||
};
|
||||
|
||||
struct dMw_c {
|
||||
/* 801FA13C */ void key_wait_init(u8);
|
||||
/* 801FA220 */ void ring_open_init(u8);
|
||||
/* 801FA23C */ void ring_move_init(u8);
|
||||
/* 801FA240 */ void ring_close_init(u8);
|
||||
/* 801FA244 */ void collect_open_init(u8);
|
||||
/* 801FA2D0 */ void collect_move_init(u8);
|
||||
/* 801FA46C */ void collect_close_init(u8);
|
||||
/* 801FA538 */ void fmap_open_init(u8);
|
||||
/* 801FA55C */ void fmap_move_init(u8);
|
||||
/* 801FA560 */ void fmap_close_init(u8);
|
||||
/* 801FA564 */ void dmap_open_init(u8);
|
||||
/* 801FA588 */ void dmap_move_init(u8);
|
||||
/* 801FA58C */ void dmap_close_init(u8);
|
||||
/* 801FA590 */ void collect_save_open_init(u8);
|
||||
/* 801FA5E4 */ void collect_save_move_init(u8);
|
||||
/* 801FA5E8 */ void collect_save_close_init(u8);
|
||||
/* 801FA608 */ void collect_option_open_init(u8);
|
||||
/* 801FA65C */ void collect_option_move_init(u8);
|
||||
/* 801FA660 */ void collect_option_close_init(u8);
|
||||
/* 801FA680 */ void collect_letter_open_init(u8);
|
||||
/* 801FA6DC */ void collect_letter_move_init(u8);
|
||||
/* 801FA6E0 */ void collect_letter_close_init(u8);
|
||||
/* 801FA738 */ void collect_fishing_open_init(u8);
|
||||
/* 801FA794 */ void collect_fishing_move_init(u8);
|
||||
/* 801FA798 */ void collect_fishing_close_init(u8);
|
||||
/* 801FA7F0 */ void collect_skill_open_init(u8);
|
||||
/* 801FA84C */ void collect_skill_move_init(u8);
|
||||
/* 801FA850 */ void collect_skill_close_init(u8);
|
||||
/* 801FA8A8 */ void collect_insect_open_init(u8);
|
||||
/* 801FA908 */ void collect_insect_move_init(u8);
|
||||
/* 801FA90C */ void collect_insect_close_init(u8);
|
||||
/* 801FA964 */ void insect_open_init(u8);
|
||||
/* 801FA9E8 */ void insect_open2_init(u8);
|
||||
/* 801FA9EC */ void insect_move_init(u8);
|
||||
/* 801FA9F0 */ void insect_close_init(u8);
|
||||
/* 801FAA48 */ void key_wait_proc();
|
||||
/* 801FAFDC */ void ring_open_proc();
|
||||
/* 801FB01C */ void ring_move_proc();
|
||||
/* 801FB064 */ void ring_close_proc();
|
||||
/* 801FB0B8 */ void collect_open_proc();
|
||||
/* 801FB110 */ void collect_move_proc();
|
||||
/* 801FB1A0 */ void collect_close_proc();
|
||||
/* 801FB240 */ void fmap_open_proc();
|
||||
/* 801FB298 */ void fmap_move_proc();
|
||||
/* 801FB36C */ void fmap_close_proc();
|
||||
/* 801FB3AC */ void dmap_open_proc();
|
||||
/* 801FB404 */ void dmap_move_proc();
|
||||
/* 801FB5DC */ void dmap_close_proc();
|
||||
/* 801FB61C */ void collect_save_open_proc();
|
||||
/* 801FB67C */ void collect_save_move_proc();
|
||||
/* 801FB6D8 */ void collect_save_close_proc();
|
||||
/* 801FB73C */ void collect_option_open_proc();
|
||||
/* 801FB7AC */ void collect_option_move_proc();
|
||||
/* 801FB800 */ void collect_option_close_proc();
|
||||
/* 801FB81C */ void collect_letter_open_proc();
|
||||
/* 801FB8AC */ void collect_letter_move_proc();
|
||||
/* 801FB900 */ void collect_letter_close_proc();
|
||||
/* 801FB91C */ void collect_fishing_open_proc();
|
||||
/* 801FB9AC */ void collect_fishing_move_proc();
|
||||
/* 801FBA00 */ void collect_fishing_close_proc();
|
||||
/* 801FBA1C */ void collect_skill_open_proc();
|
||||
/* 801FBAAC */ void collect_skill_move_proc();
|
||||
/* 801FBB00 */ void collect_skill_close_proc();
|
||||
/* 801FBB1C */ void collect_insect_open_proc();
|
||||
/* 801FBBAC */ void collect_insect_move_proc();
|
||||
/* 801FBC00 */ void collect_insect_close_proc();
|
||||
/* 801FBC1C */ void insect_open_proc();
|
||||
/* 801FBC78 */ void insect_open2_proc();
|
||||
/* 801FBD08 */ void insect_move_proc();
|
||||
/* 801FBD64 */ void insect_close_proc();
|
||||
/* 801FBD80 */ void dMw_capture_create();
|
||||
/* 801FBE14 */ void dMw_capture_delete();
|
||||
/* 801FBE94 */ void dMw_ring_create(u8);
|
||||
/* 801FBF60 */ void dMw_ring_delete();
|
||||
/* 801FBFF8 */ void dMw_collect_create();
|
||||
/* 801FC090 */ void dMw_collect_delete(bool);
|
||||
/* 801FC0FC */ void dMw_fmap_create();
|
||||
/* 801FC264 */ void dMw_fmap_delete(bool);
|
||||
/* 801FC350 */ void dMw_dmap_create();
|
||||
/* 801FC46C */ void dMw_dmap_delete(bool);
|
||||
/* 801FC520 */ void dMw_save_create();
|
||||
/* 801FC5D0 */ void dMw_save_delete();
|
||||
/* 801FC668 */ void dMw_option_create();
|
||||
/* 801FC70C */ void dMw_option_delete();
|
||||
/* 801FC7BC */ void dMw_letter_create();
|
||||
/* 801FC85C */ void dMw_letter_delete();
|
||||
/* 801FC904 */ void dMw_fishing_create();
|
||||
/* 801FC9A4 */ void dMw_fishing_delete();
|
||||
/* 801FCA4C */ void dMw_skill_create();
|
||||
/* 801FCAEC */ void dMw_skill_delete();
|
||||
/* 801FCB94 */ void dMw_insect_create(u8);
|
||||
/* 801FCC44 */ void dMw_insect_delete();
|
||||
/* 801FCCEC */ void dMw_onButtonBit(u8);
|
||||
/* 801FCCFC */ void dMw_offButtonBit(u8);
|
||||
/* 801FCD0C */ void dMw_isButtonBit(u8);
|
||||
/* 801FCD24 */ void dMw_isPush_S_Button();
|
||||
/* 801FCDD8 */ void isPauseReady();
|
||||
/* 801FCE08 */ void dMw_fade_out();
|
||||
/* 801FCE78 */ void dMw_fade_in();
|
||||
/* 801FCEE8 */ void checkCStickTrigger();
|
||||
/* 801FCF84 */ void isEventCheck();
|
||||
/* 801FD094 */ void markMemSize();
|
||||
/* 801FD0D4 */ void checkMemSize();
|
||||
/* 801FD140 */ void _create();
|
||||
/* 801FD2D8 */ void _execute();
|
||||
/* 801FD450 */ void _draw();
|
||||
/* 801FD67C */ void _delete();
|
||||
};
|
||||
|
||||
struct dMsgObject_c {
|
||||
/* 802379AC */ void setKillMessageFlag();
|
||||
/* 8023822C */ void getStatus();
|
||||
};
|
||||
|
||||
struct dMeterMap_c {
|
||||
/* 8020D650 */ void isEnableDispMapAndMapDispSizeTypeNo();
|
||||
/* 8020D874 */ void setDispPosInsideFlg_SE_On();
|
||||
/* 8020D8BC */ void setDispPosOutsideFlg_SE_On();
|
||||
};
|
||||
|
||||
struct dMeter2_c {
|
||||
/* 8021F6EC */ void emphasisButtonDelete();
|
||||
};
|
||||
|
||||
struct dMeter2Info_c {
|
||||
/* 8021C9DC */ void resetWarpStatus();
|
||||
};
|
||||
|
||||
struct dMenu_save_c {
|
||||
/* 801EF6A0 */ dMenu_save_c();
|
||||
/* 801EF7AC */ void _create();
|
||||
@@ -170,8 +37,6 @@ struct STControl {
|
||||
|
||||
struct CSTControl {};
|
||||
|
||||
struct JKRExpHeap {};
|
||||
|
||||
struct dMenu_Skill_c {
|
||||
/* 801F7224 */ dMenu_Skill_c(JKRExpHeap*, STControl*, CSTControl*);
|
||||
/* 801F7718 */ void _move();
|
||||
@@ -189,8 +54,6 @@ struct dMenu_Ring_c {
|
||||
/* 801EB3CC */ void isClose();
|
||||
};
|
||||
|
||||
struct JKRArchive {};
|
||||
|
||||
struct dMenu_Option_c {
|
||||
/* 801E1F10 */ dMenu_Option_c(JKRArchive*, STControl*);
|
||||
/* 801E2C1C */ void _delete();
|
||||
@@ -272,8 +135,6 @@ struct dDlst_MENU_CAPTURE_c {
|
||||
|
||||
struct JAISoundID {};
|
||||
|
||||
struct Vec {};
|
||||
|
||||
struct Z2SeMgr {
|
||||
/* 802AB984 */ void seStart(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8);
|
||||
};
|
||||
@@ -282,11 +143,6 @@ struct Z2AudioMgr {
|
||||
static u8 mAudioMgrPtr[4 + 4 /* padding */];
|
||||
};
|
||||
|
||||
struct JKRHeap {
|
||||
/* 802CE5CC */ void freeAll();
|
||||
/* 802CE784 */ void getTotalFreeSize();
|
||||
};
|
||||
|
||||
struct JFWDisplay {
|
||||
static u8 sManager[4];
|
||||
};
|
||||
@@ -307,7 +163,7 @@ extern "C" void dMw_onPauseWindow__Fv();
|
||||
extern "C" void dMw_offPauseWindow__Fv();
|
||||
extern "C" void dMw_onMenuRing__Fv();
|
||||
extern "C" void dMw_offMenuRing__Fv();
|
||||
extern "C" static void dMw_isMenuRing__Fv();
|
||||
extern "C" static bool dMw_isMenuRing__Fv();
|
||||
extern "C" void key_wait_init__5dMw_cFUc();
|
||||
extern "C" void ring_open_init__5dMw_cFUc();
|
||||
extern "C" void ring_move_init__5dMw_cFUc();
|
||||
@@ -429,7 +285,6 @@ extern "C" extern char const* const d_menu_d_menu_window__stringBase0;
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void OSReport_Error();
|
||||
extern "C" void mDoExt_setCurrentHeap__FP7JKRHeap();
|
||||
extern "C" void mDoExt_getCurrentHeap__Fv();
|
||||
extern "C" void mDoExt_removeMesgFont__Fv();
|
||||
@@ -565,7 +420,6 @@ extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
extern "C" extern u8 g_mwHIO[304];
|
||||
extern "C" extern u8 g_mwDHIO[520];
|
||||
extern "C" extern u8 g_fmapHIO[1188];
|
||||
extern "C" extern u8 g_meter2_info[248];
|
||||
extern "C" extern u8 g_clearColor[4];
|
||||
extern "C" extern u32 g_blackColor;
|
||||
extern "C" u8 mFader__13mDoGph_gInf_c[4];
|
||||
@@ -579,135 +433,86 @@ extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 801F9F84-801F9F98 1F48C4 0014+00 3/3 2/2 0/0 .text dMw_UP_TRIGGER__Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMw_UP_TRIGGER() {
|
||||
nofralloc
|
||||
#include "asm/d/menu/d_menu_window/dMw_UP_TRIGGER__Fv.s"
|
||||
BOOL dMw_UP_TRIGGER() {
|
||||
return (bool)mDoCPd_c::getTrigUp(mDoCPd_c::PAD_0);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 801F9F98-801F9FAC 1F48D8 0014+00 1/1 2/2 0/0 .text dMw_DOWN_TRIGGER__Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMw_DOWN_TRIGGER() {
|
||||
nofralloc
|
||||
#include "asm/d/menu/d_menu_window/dMw_DOWN_TRIGGER__Fv.s"
|
||||
bool dMw_DOWN_TRIGGER() {
|
||||
return mDoCPd_c::getTrigDown(mDoCPd_c::PAD_0);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 801F9FAC-801F9FF4 1F48EC 0048+00 1/1 6/6 0/0 .text dMw_LEFT_TRIGGER__Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMw_LEFT_TRIGGER() {
|
||||
nofralloc
|
||||
#include "asm/d/menu/d_menu_window/dMw_LEFT_TRIGGER__Fv.s"
|
||||
bool dMw_LEFT_TRIGGER() {
|
||||
if (mDoCPd_c::getTrigLeft(mDoCPd_c::PAD_0) && !dMw_UP_TRIGGER()) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 801F9FF4-801FA03C 1F4934 0048+00 1/1 6/6 0/0 .text dMw_RIGHT_TRIGGER__Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMw_RIGHT_TRIGGER() {
|
||||
nofralloc
|
||||
#include "asm/d/menu/d_menu_window/dMw_RIGHT_TRIGGER__Fv.s"
|
||||
bool dMw_RIGHT_TRIGGER() {
|
||||
if (mDoCPd_c::getTrigRight(mDoCPd_c::PAD_0) && !dMw_UP_TRIGGER()) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 801FA03C-801FA050 1F497C 0014+00 1/1 7/7 0/0 .text dMw_A_TRIGGER__Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMw_A_TRIGGER() {
|
||||
nofralloc
|
||||
#include "asm/d/menu/d_menu_window/dMw_A_TRIGGER__Fv.s"
|
||||
bool dMw_A_TRIGGER() {
|
||||
return mDoCPd_c::getTrigA(mDoCPd_c::PAD_0);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 801FA050-801FA064 1F4990 0014+00 1/1 8/8 0/0 .text dMw_B_TRIGGER__Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMw_B_TRIGGER() {
|
||||
nofralloc
|
||||
#include "asm/d/menu/d_menu_window/dMw_B_TRIGGER__Fv.s"
|
||||
bool dMw_B_TRIGGER() {
|
||||
return mDoCPd_c::getTrigB(mDoCPd_c::PAD_0);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 801FA064-801FA078 1F49A4 0014+00 0/0 5/5 0/0 .text dMw_Z_TRIGGER__Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMw_Z_TRIGGER() {
|
||||
nofralloc
|
||||
#include "asm/d/menu/d_menu_window/dMw_Z_TRIGGER__Fv.s"
|
||||
bool dMw_Z_TRIGGER() {
|
||||
return mDoCPd_c::getTrigZ(mDoCPd_c::PAD_0);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 801FA078-801FA08C 1F49B8 0014+00 2/2 1/1 0/0 .text dMw_START_TRIGGER__Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMw_START_TRIGGER() {
|
||||
nofralloc
|
||||
#include "asm/d/menu/d_menu_window/dMw_START_TRIGGER__Fv.s"
|
||||
bool dMw_START_TRIGGER() {
|
||||
return mDoCPd_c::getTrigStart(mDoCPd_c::PAD_0);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 801FA08C-801FA0AC 1F49CC 0020+00 0/0 0/0 1/1 .text dMw_onPauseWindow__Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMw_onPauseWindow() {
|
||||
nofralloc
|
||||
#include "asm/d/menu/d_menu_window/dMw_onPauseWindow__Fv.s"
|
||||
}
|
||||
#pragma pop
|
||||
void dMw_onPauseWindow() {
|
||||
dMw_c* menu_window = dMeter2Info_getMenuWindowClass();
|
||||
|
||||
/* 801FA0AC-801FA0CC 1F49EC 0020+00 0/0 0/0 1/1 .text dMw_offPauseWindow__Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMw_offPauseWindow() {
|
||||
nofralloc
|
||||
#include "asm/d/menu/d_menu_window/dMw_offPauseWindow__Fv.s"
|
||||
if (menu_window) {
|
||||
menu_window->onPauseWindow();
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 801FA0CC-801FA0F0 1F4A0C 0024+00 0/0 0/0 4/4 .text dMw_onMenuRing__Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMw_onMenuRing() {
|
||||
nofralloc
|
||||
#include "asm/d/menu/d_menu_window/dMw_onMenuRing__Fv.s"
|
||||
}
|
||||
#pragma pop
|
||||
void dMw_offPauseWindow() {
|
||||
dMw_c* menu_window = dMeter2Info_getMenuWindowClass();
|
||||
|
||||
/* 801FA0F0-801FA114 1F4A30 0024+00 0/0 0/0 2/2 .text dMw_offMenuRing__Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMw_offMenuRing() {
|
||||
nofralloc
|
||||
#include "asm/d/menu/d_menu_window/dMw_offMenuRing__Fv.s"
|
||||
if (menu_window) {
|
||||
menu_window->offPauseWindow();
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 801FA114-801FA13C 1F4A54 0028+00 1/1 0/0 0/0 .text dMw_isMenuRing__Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void dMw_isMenuRing() {
|
||||
nofralloc
|
||||
#include "asm/d/menu/d_menu_window/dMw_isMenuRing__Fv.s"
|
||||
void dMw_onMenuRing() {
|
||||
dMw_c* menu_window = dMeter2Info_getMenuWindowClass();
|
||||
|
||||
if (menu_window) {
|
||||
menu_window->onShowFlag();
|
||||
}
|
||||
}
|
||||
|
||||
void dMw_offMenuRing() {
|
||||
dMw_c* menu_window = dMeter2Info_getMenuWindowClass();
|
||||
|
||||
if (menu_window) {
|
||||
menu_window->offShowFlag();
|
||||
}
|
||||
}
|
||||
|
||||
static bool dMw_isMenuRing() {
|
||||
dMw_c* menu_window = dMeter2Info_getMenuWindowClass();
|
||||
|
||||
if (menu_window) {
|
||||
return menu_window->isShowFlag();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803BE8F8-803BE904 01BA18 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */
|
||||
@@ -1523,22 +1328,14 @@ asm void dMw_c::key_wait_init(u8 param_0) {
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 801FA220-801FA23C 1F4B60 001C+00 1/0 0/0 0/0 .text ring_open_init__5dMw_cFUc */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMw_c::ring_open_init(u8 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/menu/d_menu_window/ring_open_init__5dMw_cFUc.s"
|
||||
void dMw_c::ring_open_init(u8 param_0) {
|
||||
dMeter2Info_setWindowStatus(2);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 801FA23C-801FA240 1F4B7C 0004+00 1/0 0/0 0/0 .text ring_move_init__5dMw_cFUc */
|
||||
void dMw_c::ring_move_init(u8 param_0) {
|
||||
/* empty function */
|
||||
}
|
||||
|
||||
/* 801FA240-801FA244 1F4B80 0004+00 1/0 0/0 0/0 .text ring_close_init__5dMw_cFUc */
|
||||
void dMw_c::ring_close_init(u8 param_0) {
|
||||
/* empty function */
|
||||
}
|
||||
|
||||
@@ -11,8 +11,6 @@
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct _GXColor {};
|
||||
|
||||
struct mDoGph_gInf_c {
|
||||
/* 80007FD8 */ void fadeOut(f32, _GXColor&);
|
||||
};
|
||||
|
||||
@@ -81,10 +81,6 @@ struct JPAEmitterManager {
|
||||
/* 8027E354 */ void clearResourceManager(u8);
|
||||
};
|
||||
|
||||
struct dKy_tevstr_c {};
|
||||
|
||||
struct _GXColor {};
|
||||
|
||||
struct dPa_simpleEcallBack {
|
||||
/* 8004ADF4 */ dPa_simpleEcallBack();
|
||||
/* 8004AE1C */ void executeAfter(JPABaseEmitter*);
|
||||
@@ -354,14 +350,6 @@ struct J3DMaterialTable {
|
||||
/* 8032FE70 */ void entryTevRegAnimator(J3DAnmTevRegKey*);
|
||||
};
|
||||
|
||||
struct J3DLightObj {
|
||||
/* 80018C0C */ J3DLightObj();
|
||||
};
|
||||
|
||||
struct J3DLightInfo {
|
||||
/* 803256C4 */ void operator=(J3DLightInfo const&);
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
+1
-19
@@ -12,8 +12,6 @@
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct dKy_tevstr_c {};
|
||||
|
||||
struct fopEn_enemy_c {
|
||||
/* 80019404 */ void initBallModel();
|
||||
/* 800194FC */ void checkBallModelDraw();
|
||||
@@ -51,20 +49,12 @@ struct dRes_control_c {
|
||||
|
||||
struct dPa_levelEcallBack {};
|
||||
|
||||
struct _GXColor {};
|
||||
|
||||
struct dPa_control_c {
|
||||
/* 8004D4CC */ void set(u32, u8, u16, cXyz const*, dKy_tevstr_c const*, csXyz const*,
|
||||
cXyz const*, u8, dPa_levelEcallBack*, s8, _GXColor const*,
|
||||
_GXColor const*, cXyz const*, f32);
|
||||
};
|
||||
|
||||
struct dEvt_info_c {
|
||||
/* 80018C44 */ ~dEvt_info_c();
|
||||
/* 800433F0 */ dEvt_info_c();
|
||||
/* 800434CC */ void beforeProc();
|
||||
};
|
||||
|
||||
struct dEvt_control_c {
|
||||
/* 80042FA8 */ void moveApproval(void*);
|
||||
};
|
||||
@@ -96,14 +86,6 @@ struct J3DMaterialTable {
|
||||
/* 8032FE70 */ void entryTevRegAnimator(J3DAnmTevRegKey*);
|
||||
};
|
||||
|
||||
struct J3DLightObj {
|
||||
/* 80018C0C */ J3DLightObj();
|
||||
};
|
||||
|
||||
struct J3DLightInfo {
|
||||
/* 803256C4 */ void operator=(J3DLightInfo const&);
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
@@ -277,7 +259,7 @@ asm void fopAc_IsActor(void* param_0) {
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80450CBC-80450CC0 0001BC 0004+00 2/2 1/1 0/0 .sbss stopStatus__10fopAc_ac_c */
|
||||
u8 fopAc_ac_c::stopStatus[4];
|
||||
u32 fopAc_ac_c::stopStatus;
|
||||
|
||||
/* 80018D0C-80018DD8 01364C 00CC+00 1/0 0/0 0/0 .text fopAc_Draw__FPv */
|
||||
#pragma push
|
||||
|
||||
+19
-15
@@ -51,12 +51,8 @@ struct daPy_py_c {
|
||||
|
||||
struct dPa_levelEcallBack {};
|
||||
|
||||
struct dKy_tevstr_c {};
|
||||
|
||||
struct cBgS_PolyInfo {};
|
||||
|
||||
struct _GXColor {};
|
||||
|
||||
struct dPa_control_c {
|
||||
struct level_c {
|
||||
/* 8004B918 */ void getEmitter(u32);
|
||||
@@ -526,6 +522,7 @@ void fopAcM_Log(fopAc_ac_c const* param_0, char const* param_1) {
|
||||
/* 80019C7C-80019CB8 0145BC 003C+00 0/0 10/10 483/483 .text fopAcM_delete__FP10fopAc_ac_c
|
||||
*/
|
||||
void fopAcM_delete(fopAc_ac_c* pActor) {
|
||||
// "Deleting Actor"
|
||||
fopAcM_Log(pActor, "アクターの削除");
|
||||
fpcM_Delete(pActor);
|
||||
}
|
||||
@@ -538,6 +535,7 @@ s32 fopAcM_delete(unsigned int pID) {
|
||||
// original moves r3 -> r0, then r0 -> r31 for 0 check
|
||||
// this generates r3 -> r31 with 0 check directly
|
||||
if (searchResult != NULL) {
|
||||
// "Deleting Actor"
|
||||
fopAcM_Log(actor, "アクターの削除");
|
||||
return fpcM_Delete(searchResult);
|
||||
} else {
|
||||
@@ -673,10 +671,11 @@ SECTION_DEAD static char const* const stringBase_8037890A = "アクターのヒ
|
||||
/* 8001A138-8001A188 014A78 0050+00 0/0 1/1 1/1 .text fopAcM_DeleteHeap__FP10fopAc_ac_c
|
||||
*/
|
||||
void fopAcM_DeleteHeap(fopAc_ac_c* pActor) {
|
||||
// "Destroying actor's heap"
|
||||
fopAcM_Log(pActor, "アクターのヒープの破壊");
|
||||
if (pActor->unk_0x0F0 != NULL) {
|
||||
mDoExt_destroySolidHeap(pActor->unk_0x0F0);
|
||||
pActor->unk_0x0F0 = NULL;
|
||||
if (pActor->mHeap != NULL) {
|
||||
mDoExt_destroySolidHeap(pActor->mHeap);
|
||||
pActor->mHeap = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -709,12 +708,14 @@ bool fopAcM_entrySolidHeap_(fopAc_ac_c* pActor, heapCallbackFunc pHeapCallback,
|
||||
if (heap00 != NULL) {
|
||||
bool status = fopAcM_callCallback(pActor, pHeapCallback, heap00) != 0;
|
||||
if (!status) {
|
||||
// "Entry for estimated heap size(%08x) failed. %08x[%s]\n"
|
||||
OSReport_Error("見積もりヒープサイズ(%08x)で登録失敗しました。%08x[%s]\n",
|
||||
pSize, heap00->getFreeSize(), procNameString);
|
||||
mDoExt_destroySolidHeap(heap00);
|
||||
heap00 = NULL;
|
||||
}
|
||||
} else {
|
||||
// "Could not allocate estimated heap. %08x [%s]\n"
|
||||
OSReport_Error("見積もりヒープが確保できませんでした。 %08x [%s]\n", pSize,
|
||||
procNameString);
|
||||
}
|
||||
@@ -722,11 +723,13 @@ bool fopAcM_entrySolidHeap_(fopAc_ac_c* pActor, heapCallbackFunc pHeapCallback,
|
||||
if (heap00 == NULL) {
|
||||
heap00 = mDoExt_createSolidHeapFromGame(0xFFFFFFFF, 0x20);
|
||||
if (heap00 == NULL) {
|
||||
// "Failed to allocate maximum heap size. [%s]\n"
|
||||
OSReport_Error("最大空きヒープサイズで確保失敗。[%s]\n", procNameString);
|
||||
return false;
|
||||
}
|
||||
bool status = fopAcM_callCallback(pActor, pHeapCallback, heap00) != 0;
|
||||
if (!status) {
|
||||
// "Entry failed for maximum heap size. %08x[%s]\n"
|
||||
OSReport_Error("最大空きヒープサイズで登録失敗。%08x[%s]\n", heap00->getFreeSize(),
|
||||
procNameString);
|
||||
mDoExt_destroySolidHeap(heap00);
|
||||
@@ -738,7 +741,7 @@ bool fopAcM_entrySolidHeap_(fopAc_ac_c* pActor, heapCallbackFunc pHeapCallback,
|
||||
}
|
||||
if (lbl_80450CC8 == 0) {
|
||||
mDoExt_adjustSolidHeap(heap00);
|
||||
pActor->unk_0x0F0 = heap00;
|
||||
pActor->mHeap = heap00;
|
||||
return true;
|
||||
} else {
|
||||
JKRSolidHeap* heap = NULL;
|
||||
@@ -753,6 +756,7 @@ bool fopAcM_entrySolidHeap_(fopAc_ac_c* pActor, heapCallbackFunc pHeapCallback,
|
||||
heap00 = NULL;
|
||||
bool status = fopAcM_callCallback(pActor, pHeapCallback, heap) != 0;
|
||||
if (!status) {
|
||||
// "Entry fails at exact size? (Bug)\n"
|
||||
OSReport_Error("ぴったりサイズで、登録失敗?(バグ)\n");
|
||||
mDoExt_destroySolidHeap(heap);
|
||||
heap = NULL;
|
||||
@@ -764,19 +768,20 @@ bool fopAcM_entrySolidHeap_(fopAc_ac_c* pActor, heapCallbackFunc pHeapCallback,
|
||||
}
|
||||
if (heap != NULL) {
|
||||
mDoExt_adjustSolidHeap(heap);
|
||||
pActor->unk_0x0F0 = heap;
|
||||
pActor->mHeap = heap;
|
||||
return true;
|
||||
}
|
||||
if (heap00 != NULL) {
|
||||
mDoExt_adjustSolidHeap(heap00);
|
||||
pActor->unk_0x0F0 = heap00;
|
||||
pActor->mHeap = heap00;
|
||||
return true;
|
||||
}
|
||||
OSReport_Error("ばぐばぐです\n");
|
||||
OSReport_Error("緊急回避措置\n");
|
||||
OSReport_Error("ばぐばぐです\n"); // "There's a big bug\n"
|
||||
OSReport_Error("緊急回避措置\n"); // "Emergency action\n"
|
||||
lbl_80450CC8 = 0;
|
||||
}
|
||||
}
|
||||
// "fopAcM_entrySolidHeap didn't work [%s]\n"
|
||||
OSReport_Error("fopAcM_entrySolidHeap だめでした [%s]\n", procNameString);
|
||||
return false;
|
||||
}
|
||||
@@ -1664,8 +1669,7 @@ s32 fopAc_IsActor(void*);
|
||||
|
||||
/* 8001C9CC-8001CA1C 01730C 0050+00 1/1 0/0 0/0 .text enemySearchJugge__FPvPv */
|
||||
void* enemySearchJugge(void* pActor, void* pData) {
|
||||
if (pActor != NULL && fopAc_IsActor(pActor) &&
|
||||
static_cast<fopAc_ac_c*>(pActor)->unk_0x496 == 2) {
|
||||
if (pActor != NULL && fopAc_IsActor(pActor) && static_cast<fopAc_ac_c*>(pActor)->mGroup == 2) {
|
||||
return pActor;
|
||||
} else {
|
||||
return NULL;
|
||||
@@ -1913,7 +1917,7 @@ asm void fopAcM_setEffectMtx(fopAc_ac_c const* param_0, J3DModelData const* para
|
||||
|
||||
/* 8001D5A4-8001D5EC 017EE4 0048+00 1/1 0/0 0/0 .text fopAcM_getProcNameString__FPC10fopAc_ac_c */
|
||||
static const char* fopAcM_getProcNameString(const fopAc_ac_c* pActor) {
|
||||
const char* name = dStage_getName2(pActor->mBase.mBsTypeId, pActor->unk_0x499);
|
||||
const char* name = dStage_getName2(pActor->mBase.mBsTypeId, pActor->mSubtype);
|
||||
return name != NULL ? name : "UNKOWN";
|
||||
}
|
||||
|
||||
|
||||
+104
-25
@@ -5,18 +5,13 @@
|
||||
|
||||
#include "m_Do/m_Do_Reset.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/gx/GX.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct mDoRst {
|
||||
/* 800157F4 */ u32 getResetData();
|
||||
|
||||
static u8 mResetData[4 + 4 /* padding */];
|
||||
};
|
||||
|
||||
struct Z2AudioMgr {
|
||||
/* 802CDA6C */ void hasReset() const;
|
||||
|
||||
@@ -55,7 +50,7 @@ extern "C" void mDoRst_resetCallBack__FiPv();
|
||||
extern "C" u32 getResetData__6mDoRstFv();
|
||||
extern "C" extern char const* const m_Do_m_Do_Reset__stringBase0;
|
||||
extern "C" u8 mResetData__6mDoRst[4 + 4 /* padding */];
|
||||
extern "C" extern u8 struct_80450C80[8];
|
||||
extern "C" extern u64 struct_80450C80;
|
||||
extern "C" extern u8 data_80450C88[8];
|
||||
|
||||
//
|
||||
@@ -83,13 +78,10 @@ extern "C" void DVDGetDriveStatus();
|
||||
extern "C" void DVDCheckDisk();
|
||||
extern "C" void VIWaitForRetrace();
|
||||
extern "C" void VIFlush();
|
||||
extern "C" void VISetBlack();
|
||||
extern "C" void GXSetCurrentGXThread();
|
||||
extern "C" void GXGetCurrentGXThread();
|
||||
extern "C" void VISetBlack(s32);
|
||||
extern "C" void GXFlush();
|
||||
extern "C" void GXAbortFrame();
|
||||
extern "C" void GXDrawDone();
|
||||
extern "C" void GXSetDrawDoneCallback();
|
||||
extern "C" void _savegpr_27();
|
||||
extern "C" extern u8 g_mDoMemCd_control[8192];
|
||||
extern "C" extern u8 struct_80450BB8[4];
|
||||
@@ -103,20 +95,18 @@ extern "C" u8 sManager__6JUTXfb[4 + 4 /* padding */];
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 800155D8-800155DC 00FF18 0004+00 1/1 0/0 0/0 .text my_OSCancelAlarmAll__Fv */
|
||||
static void my_OSCancelAlarmAll() {
|
||||
/* empty function */
|
||||
}
|
||||
|
||||
/* 800155DC-80015614 00FF1C 0038+00 1/1 0/0 0/0 .text destroyVideo__Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void destroyVideo() {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_Reset/destroyVideo__Fv.s"
|
||||
static void destroyVideo() {
|
||||
destroyManager__8JUTVideoFv();
|
||||
GXSetDrawDoneCallback(NULL);
|
||||
VISetBlack(1);
|
||||
VIFlush();
|
||||
VIWaitForRetrace();
|
||||
return;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80374198-80374198 0007F8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
@@ -126,9 +116,70 @@ SECTION_DEAD static char const* const stringBase_80374198 = "DVD_STATE_BUSY\n";
|
||||
#pragma pop
|
||||
|
||||
/* 80450C78-80450C80 000178 0004+04 3/2 42/42 2/2 .sbss mResetData__6mDoRst */
|
||||
u8 mDoRst::mResetData[4 + 4 /* padding */];
|
||||
mDoRstData* mDoRst::mResetData;
|
||||
|
||||
/* 80015614-8001574C 00FF54 0138+00 0/0 3/3 0/0 .text mDoRst_reset__FiUli */
|
||||
#ifdef NONMATCHING
|
||||
void mDoRst_reset(int p1, u32 p2, int p3) {
|
||||
mDoCPd_c* pmVar1;
|
||||
u32 uVar2;
|
||||
DVDState DVar3;
|
||||
OSThread* thread;
|
||||
s32 enable;
|
||||
/* sManager */ lbl_80451550->clearIndex();
|
||||
mDoDvdErr_ThdCleanup__Fv();
|
||||
cAPICPad_recalibrate__Fv();
|
||||
if (lbl_80450BB8 != false) {
|
||||
do {
|
||||
uVar2 = lbl_80451368->hasReset();
|
||||
} while ((uVar2 & 0xff) == 0);
|
||||
}
|
||||
|
||||
if ((s32)DVDGetDriveStatus() == (s32)DVD_STATE_BUSY) {
|
||||
OSAttention(lbl_80374198);
|
||||
}
|
||||
JASTaskThread* task_thread = getThreadPointer__6JASDvdFv();
|
||||
if (task_thread != NULL) {
|
||||
pause__13JASTaskThreadFb(task_thread, true);
|
||||
thread = task_thread->thread;
|
||||
if (thread != NULL) {
|
||||
OSSuspendThread(thread);
|
||||
OSDetachThread(thread);
|
||||
OSCancelThread(thread);
|
||||
}
|
||||
}
|
||||
|
||||
VIWaitForRetrace();
|
||||
VIWaitForRetrace();
|
||||
|
||||
thread = GXGetCurrentGXThread();
|
||||
enable = OSDisableInterrupts();
|
||||
OSThread* ourThread = OSGetCurrentThread();
|
||||
if (thread != ourThread) {
|
||||
OSCancelThread(thread);
|
||||
GXSetCurrentGXThread();
|
||||
}
|
||||
GXFlush();
|
||||
GXAbortFrame();
|
||||
GXDrawDone();
|
||||
|
||||
OSRestoreInterrupts(enable);
|
||||
destroyVideo();
|
||||
|
||||
while (mDoMemCd_isCardCommNone() != 0) {
|
||||
VIWaitForRetrace();
|
||||
}
|
||||
|
||||
my_OSCancelAlarmAll();
|
||||
LCDisable();
|
||||
// probably false match; check out 80015728 or thereabouts in Ghidra
|
||||
OSSetSaveRegion(mDoRst::mResetData, (u8*)(&mDoRst::getResetData()) + 0x18);
|
||||
OSResetSystem(p1, p2, p3);
|
||||
do {
|
||||
VIWaitForRetrace();
|
||||
} while (true);
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -137,8 +188,34 @@ asm void mDoRst_reset(int param_0, u32 param_1, int param_2) {
|
||||
#include "asm/m_Do/m_Do_Reset/mDoRst_reset__FiUli.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8001574C-800157F4 01008C 00A8+00 0/0 3/3 0/0 .text mDoRst_resetCallBack__FiPv */
|
||||
// fix JUTGamePad data
|
||||
#ifdef NONMATCHING
|
||||
void mDoRst_resetCallBack(int port, void* p2) {
|
||||
if (!mDoRst::isReset()) {
|
||||
if (port == -1) {
|
||||
cAPICPad_recalibrate__Fv();
|
||||
} else {
|
||||
if (mDoRst::is3ButtonReset() != 0) {
|
||||
lbl_80451501 = false;
|
||||
/* sCallback */ lbl_804514EC = &mDoRst_resetCallBack;
|
||||
/* sCallbackArg */ lbl_804514F0 = 0;
|
||||
return;
|
||||
}
|
||||
mDoRst::on3ButtonReset();
|
||||
mDoRst::set3ButtonResetPort(port);
|
||||
cAPICPad_recalibrate__Fv();
|
||||
}
|
||||
|
||||
if ((DVDCheckDisk() == 0) && (DVDGetDriveStatus() != DVD_STATE_FATAL_ERROR)) {
|
||||
mDoRst::onReturnToMenu();
|
||||
}
|
||||
mDoRst::onReset();
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -147,18 +224,20 @@ asm void mDoRst_resetCallBack(int param_0, void* param_1) {
|
||||
#include "asm/m_Do/m_Do_Reset/mDoRst_resetCallBack__FiPv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 800157F4-800157FC -00001 0008+00 0/0 0/0 0/0 .text getResetData__6mDoRstFv */
|
||||
u32 mDoRst::getResetData() {
|
||||
return *(u32*)(&mDoRst::mResetData);
|
||||
mDoRstData* mDoRst::getResetData() {
|
||||
return mResetData;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80450C80-80450C88 -00001 0008+00 0/0 6/6 0/0 .sbss None */
|
||||
/* 80450C80 0001+00 data_80450C80 None */
|
||||
/* 80450C81 0007+00 data_80450C81 None */
|
||||
extern u8 struct_80450C80[8];
|
||||
u8 struct_80450C80[8];
|
||||
// type might be fake, used for now to align to 8
|
||||
extern u64 struct_80450C80;
|
||||
u64 struct_80450C80;
|
||||
|
||||
/* 80450C88-80450C90 000188 0008+00 0/0 2/2 0/0 .sbss None */
|
||||
extern u8 data_80450C88[8];
|
||||
|
||||
@@ -15,39 +15,6 @@ struct mDoRst {
|
||||
static u8 mResetData[4 + 4 /* padding */];
|
||||
};
|
||||
|
||||
struct interface_of_controller_pad {};
|
||||
|
||||
struct JUTGamePad {
|
||||
struct EPadPort {};
|
||||
|
||||
struct CRumble {
|
||||
/* 802E19D8 */ void setEnabled(u32);
|
||||
};
|
||||
|
||||
struct C3ButtonReset {
|
||||
static u8 sCallback[4];
|
||||
static u8 sCallbackArg[4 + 4 /* padding */];
|
||||
};
|
||||
|
||||
/* 802E06DC */ JUTGamePad(JUTGamePad::EPadPort);
|
||||
/* 802E08E4 */ void read();
|
||||
/* 802E1024 */ void clearForReset();
|
||||
/* 802E199C */ void getGamePad(int);
|
||||
|
||||
static u8 sAnalogMode[4];
|
||||
};
|
||||
|
||||
struct mDoCPd_c {
|
||||
/* 80007954 */ void create();
|
||||
/* 80007A94 */ void read();
|
||||
/* 80007B7C */ void convert(interface_of_controller_pad*, JUTGamePad*);
|
||||
/* 80007CD0 */ void LRlockCheck(interface_of_controller_pad*);
|
||||
/* 80007D74 */ void recalibrate();
|
||||
|
||||
static u8 m_gamePad[16];
|
||||
static u8 m_cpadInfo[256];
|
||||
};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
@@ -72,7 +39,6 @@ extern "C" void read__10JUTGamePadFv();
|
||||
extern "C" void clearForReset__10JUTGamePadFv();
|
||||
extern "C" void getGamePad__10JUTGamePadFi();
|
||||
extern "C" void setEnabled__Q210JUTGamePad7CRumbleFUl();
|
||||
extern "C" void PADSetAnalogMode();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" extern u8 g_HIO[64 + 4 /* padding */];
|
||||
@@ -89,12 +55,47 @@ extern "C" extern u8 struct_80451500[4];
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803DD2D8-803DD2E8 009FF8 0010+00 2/2 6/6 0/0 .bss m_gamePad__8mDoCPd_c */
|
||||
u8 mDoCPd_c::m_gamePad[16];
|
||||
JUTGamePad* mDoCPd_c::m_gamePad[4];
|
||||
|
||||
/* 803DD2E8-803DD3E8 00A008 0100+00 2/2 84/84 37/37 .bss m_cpadInfo__8mDoCPd_c */
|
||||
u8 mDoCPd_c::m_cpadInfo[256];
|
||||
interface_of_controller_pad mDoCPd_c::m_cpadInfo[4];
|
||||
|
||||
/* 80007954-80007A94 002294 0140+00 0/0 1/1 0/0 .text create__8mDoCPd_cFv */
|
||||
#ifdef NONMATCHING
|
||||
void mDoCPd_c::create() {
|
||||
JUTGamePad* JUTGamePad_ptr;
|
||||
cpadInfo* m_cpadInfo_addr;
|
||||
|
||||
JUTGamePad_ptr = new JUTGamePad(JUTGamePad::Port_1);
|
||||
m_gamePad[0] = JUTGamePad_ptr;
|
||||
if (lbl_80450580 == 0) {
|
||||
m_gamePad[1] = NULL;
|
||||
m_gamePad[2] = NULL;
|
||||
m_gamePad[3] = NULL;
|
||||
JUTGamePad_ptr = m_gamePad[3];
|
||||
} else {
|
||||
m_gamePad[1] = new JUTGamePad(JUTGamePad::Port_2);
|
||||
m_gamePad[2] = new JUTGamePad(JUTGamePad::Port_3);
|
||||
JUTGamePad_ptr = new JUTGamePad(JUTGamePad::Port_4);
|
||||
}
|
||||
m_gamePad[3] = JUTGamePad_ptr;
|
||||
if (m_Do_Reset_NS_mDoRst_NS_mResetData->field_0x0 == 0) {
|
||||
lbl_80451501 = false;
|
||||
lbl_804514EC = resetCallBack__6mDoRstFiPv;
|
||||
lbl_804514F0 = 0;
|
||||
}
|
||||
sAnalogMode = 3;
|
||||
PADSetAnalogMode(3);
|
||||
m_cpadInfo_addr = &m_cpadInfo;
|
||||
for (int i = 4; i != 0; i--) {
|
||||
m_cpadInfo_addr->interface.field_0x3a = false;
|
||||
m_cpadInfo_addr->interface.field_0x39 = false;
|
||||
m_cpadInfo_addr->interface.field_0x3c = false;
|
||||
m_cpadInfo_addr->interface.field_0x3b = false;
|
||||
m_cpadInfo_addr = m_cpadInfo_addr->unk1;
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -103,8 +104,40 @@ asm void mDoCPd_c::create() {
|
||||
#include "asm/m_Do/m_Do_controller_pad/create__8mDoCPd_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80007A94-80007B7C 0023D4 00E8+00 0/0 1/1 0/0 .text read__8mDoCPd_cFv */
|
||||
#ifdef NONMATCHING
|
||||
void mDoCPd_c::read() {
|
||||
//_savegpr_29();
|
||||
gamePad->read();
|
||||
if (m_Do_Reset_NS_mDoRst_NS_mResetData->field_0x0 == 0 &&
|
||||
m_Do_Reset_NS_mDoRst_NS_mResetData->field_0x8 != 0) {
|
||||
JUTGamePad* JUTGamePad_ptr =
|
||||
JUTGamePad::getGamePad(m_Do_Reset_NS_mDoRst_NS_mResetData->pad_index);
|
||||
bool error = false;
|
||||
if (JUTGamePad_ptr->pad_port != 0xffff &&
|
||||
JUTGamePad_ptr->rumble.field_0x10 != 0) { // Make the rumble thing right
|
||||
error = true;
|
||||
}
|
||||
if (error = false) {
|
||||
m_Do_Reset_NS_mDoRst_NS_mResetData->field_0x8 = 0;
|
||||
}
|
||||
}
|
||||
JUTGamePad** m_gamePad_ptr = m_gamePad;
|
||||
cpadInfo* cpad_ptr = &m_cpadInfo;
|
||||
for (int i = 0; i < 4; i++) {
|
||||
if (*m_gamePad_ptr == 0) {
|
||||
cLib_memSet(cpad_ptr, 0, 0x40);
|
||||
} else {
|
||||
convert(&cpad_ptr->interface, *m_gamePad_ptr);
|
||||
LRlockCheck(&cpad_ptr->interface);
|
||||
}
|
||||
m_gamePad_ptr = m_gamePad_ptr + 1; // Shouldn't it be 4 if it's incrementing a pointer???
|
||||
cpad_ptr = cpad_ptr->unk1;
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -113,6 +146,7 @@ asm void mDoCPd_c::read() {
|
||||
#include "asm/m_Do/m_Do_controller_pad/read__8mDoCPd_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80451A20-80451A24 000020 0004+00 1/1 0/0 0/0 .sdata2 @3709 */
|
||||
@@ -133,6 +167,44 @@ SECTION_SDATA2 static f64 lit_3713 = 4503599627370496.0 /* cast u32 to float */;
|
||||
|
||||
/* 80007B7C-80007CD0 0024BC 0154+00 1/1 0/0 0/0 .text
|
||||
* convert__8mDoCPd_cFP27interface_of_controller_padP10JUTGamePad */
|
||||
#ifdef NONMATCHING
|
||||
// off on load order, regalloc, const placement (int-to-float conversion magic).
|
||||
void mDoCPd_c::convert(interface_of_controller_pad* pInterface, JUTGamePad* pPad) {
|
||||
pInterface->mButtonFlags = pPad->buttons.mButtonFlags;
|
||||
pInterface->mPressedButtonFlags = pPad->buttons.mPressedButtonFlags;
|
||||
pInterface->mMainStickPosX = pPad->control_stick.mPosX;
|
||||
pInterface->mMainStickPosY = pPad->control_stick.mPosY;
|
||||
pInterface->mMainStickValue = pPad->control_stick.mValue;
|
||||
pInterface->mMainStickAngle = pPad->control_stick.mAngle;
|
||||
pInterface->mCStickPosX = pPad->c_stick.mPosX;
|
||||
pInterface->mCStickPosY = pPad->c_stick.mPosY;
|
||||
pInterface->mCStickValue = pPad->c_stick.mValue;
|
||||
pInterface->mCStickAngle = pPad->c_stick.mAngle;
|
||||
|
||||
pInterface->mAnalogA = lbl_80451A20 * pPad->buttons.mAnalogARaw;
|
||||
if (pInterface->mAnalogA > lbl_80451A24 /* 1.0 */) {
|
||||
pInterface->mAnalogA = lbl_80451A24;
|
||||
}
|
||||
|
||||
pInterface->mAnalogB = lbl_80451A20 * pPad->buttons.mAnalogBRaw;
|
||||
if (pInterface->mAnalogB > lbl_80451A24 /* 1.0 */) {
|
||||
pInterface->mAnalogB = lbl_80451A24;
|
||||
}
|
||||
|
||||
// pInterface->mTriggerLeft = pPad->buttons.mTriggerLeftRaw * (1/140.0f);
|
||||
pInterface->mTriggerLeft = lbl_80451A28 * pPad->buttons.mTriggerLeftRaw;
|
||||
if (pInterface->mTriggerLeft > lbl_80451A24 /* 1.0 */) {
|
||||
pInterface->mTriggerLeft = lbl_80451A24;
|
||||
}
|
||||
|
||||
pInterface->mTriggerRight = lbl_80451A28 * pPad->buttons.mTriggerRightRaw;
|
||||
if (pInterface->mTriggerRight > lbl_80451A24 /* 1.0 */) {
|
||||
pInterface->mTriggerRight = lbl_80451A24;
|
||||
}
|
||||
|
||||
pInterface->mGamepadErrorFlags = pPad->error_value;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -141,9 +213,39 @@ asm void mDoCPd_c::convert(interface_of_controller_pad* param_0, JUTGamePad* par
|
||||
#include "asm/m_Do/m_Do_controller_pad/convert__8mDoCPd_cFP27interface_of_controller_padP10JUTGamePad.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80007CD0-80007D74 002610 00A4+00 1/1 0/0 0/0 .text
|
||||
* LRlockCheck__8mDoCPd_cFP27interface_of_controller_pad */
|
||||
#ifdef NONMATCHING
|
||||
void mDoCPd_c::LRlockCheck(interface_of_controller_pad* controllerInterface) {
|
||||
float temp_1 = controllerInterface->trigger_left; // not sure if temp is left or right
|
||||
controllerInterface->field_0x3a = false;
|
||||
controllerInterface->field_0x3c = false;
|
||||
if (temp_1 <= g_HIO.float_global_1) { // controllerInterface->trigger_left) {
|
||||
if (temp_1 < g_HIO.float_global_2) {
|
||||
controllerInterface->field_0x39 = false;
|
||||
}
|
||||
} else {
|
||||
if (controllerInterface->field_0x39 == false) {
|
||||
controllerInterface->field_0x3a = true;
|
||||
}
|
||||
controllerInterface->field_0x39 = true;
|
||||
}
|
||||
if (controllerInterface->trigger_right > g_HIO.float_global_1) {
|
||||
if (controllerInterface->field_0x3b == false) {
|
||||
controllerInterface->field_0x3c = true;
|
||||
}
|
||||
controllerInterface->field_0x3b = true;
|
||||
return;
|
||||
}
|
||||
if (controllerInterface->trigger_right >= g_HIO.float_global_2) {
|
||||
return;
|
||||
}
|
||||
controllerInterface->field_0x3b = false;
|
||||
return;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -152,13 +254,10 @@ asm void mDoCPd_c::LRlockCheck(interface_of_controller_pad* param_0) {
|
||||
#include "asm/m_Do/m_Do_controller_pad/LRlockCheck__8mDoCPd_cFP27interface_of_controller_pad.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80007D74-80007D9C 0026B4 0028+00 0/0 1/1 0/0 .text recalibrate__8mDoCPd_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void mDoCPd_c::recalibrate() {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_controller_pad/recalibrate__8mDoCPd_cFv.s"
|
||||
void mDoCPd_c::recalibrate(void) {
|
||||
JUTGamePad::clearForReset();
|
||||
JUTGamePad::CRumble::setEnabled(
|
||||
PADMask(PAD_CHAN3_BIT | PAD_CHAN2_BIT | PAD_CHAN1_BIT | PAD_CHAN0_BIT));
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
+488
-155
@@ -4,8 +4,11 @@
|
||||
//
|
||||
|
||||
#include "m_Do/m_Do_main.h"
|
||||
#include "JSystem/JUtility/JUTReport.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "m_Do/m_Do_controller_pad.h"
|
||||
#include "msl_c/string.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
@@ -19,25 +22,10 @@ struct mDoMemCd_Ctrl_c {
|
||||
/* 80016894 */ void update();
|
||||
};
|
||||
|
||||
struct mDoMain {
|
||||
static u8 COPYDATE_STRING[18 + 2 /* padding */];
|
||||
static u32 memMargin;
|
||||
static u8 sPowerOnTime[4];
|
||||
static u8 sHungUpTime[4];
|
||||
};
|
||||
|
||||
struct mDoDvdThd_callback_c {
|
||||
/* 80015C74 */ void create(void* (*)(void*), void*);
|
||||
};
|
||||
|
||||
struct mDoCPd_c {
|
||||
/* 80007954 */ void create();
|
||||
/* 80007A94 */ void read();
|
||||
|
||||
static u8 m_gamePad[16];
|
||||
static u8 m_cpadInfo[256];
|
||||
};
|
||||
|
||||
struct dRes_control_c {
|
||||
/* 8003C638 */ void dump();
|
||||
};
|
||||
@@ -57,24 +45,10 @@ struct JUTAssertion {
|
||||
/* 802E4C3C */ void setMessageCount(int);
|
||||
};
|
||||
|
||||
struct JKRHeap {
|
||||
/* 800065D8 */ bool dump_sort();
|
||||
/* 802CE72C */ void getFreeSize();
|
||||
/* 802CE784 */ void getTotalFreeSize();
|
||||
|
||||
static u8 sSystemHeap[4];
|
||||
static u8 sCurrentHeap[4];
|
||||
static u8 sRootHeap[4];
|
||||
};
|
||||
|
||||
struct JKRSolidHeap {
|
||||
/* 802D0A24 */ void create(u32, JKRHeap*, bool);
|
||||
};
|
||||
|
||||
struct JKRExpHeap {
|
||||
/* 802CFD64 */ void getTotalUsedSize() const;
|
||||
};
|
||||
|
||||
struct JKRAramHeap {
|
||||
/* 802D3134 */ void getFreeSize();
|
||||
/* 802D31AC */ void getTotalFreeSize();
|
||||
@@ -89,12 +63,6 @@ struct JFWSystem {
|
||||
static u8 systemConsole[4];
|
||||
};
|
||||
|
||||
struct HeapCheck {
|
||||
/* 80005728 */ void CheckHeap1();
|
||||
/* 800058A0 */ void getUsedCount() const;
|
||||
/* 800058C4 */ void heapDisplay() const;
|
||||
};
|
||||
|
||||
struct DynamicModuleControlBase {
|
||||
/* 80262470 */ void dump();
|
||||
};
|
||||
@@ -152,9 +120,7 @@ extern "C" extern u8 data_80450B9C[4];
|
||||
// External References:
|
||||
//
|
||||
|
||||
SECTION_INIT void memcpy();
|
||||
extern "C" void OSReportInit__Fv();
|
||||
extern "C" void OSReport_Error();
|
||||
extern "C" void mDoAud_Execute__Fv();
|
||||
extern "C" void create__8mDoCPd_cFv();
|
||||
extern "C" void read__8mDoCPd_cFv();
|
||||
@@ -190,23 +156,6 @@ extern "C" void clear__10JUTConsoleFv();
|
||||
extern "C" void dumpToTerminal__10JUTConsoleFUi();
|
||||
extern "C" void scroll__10JUTConsoleFi();
|
||||
extern "C" void getLineOffset__10JUTConsoleCFv();
|
||||
extern "C" void OSGetConsoleType();
|
||||
extern "C" void OSAllocFromArenaLo();
|
||||
extern "C" void OSGetResetCode();
|
||||
extern "C" void OSGetCurrentThread();
|
||||
extern "C" void OSDisableScheduler();
|
||||
extern "C" void OSEnableScheduler();
|
||||
extern "C" void OSCreateThread();
|
||||
extern "C" void OSResumeThread();
|
||||
extern "C" void OSSuspendThread();
|
||||
extern "C" void OSSetThreadPriority();
|
||||
extern "C" void OSGetThreadPriority();
|
||||
extern "C" void OSCheckActiveThreads();
|
||||
extern "C" void OSGetTime();
|
||||
extern "C" void DVDOpen();
|
||||
extern "C" void DVDClose();
|
||||
extern "C" void DVDReadPrio();
|
||||
extern "C" void DVDGetCurrentDiskID();
|
||||
extern "C" void _savegpr_23();
|
||||
extern "C" void _savegpr_26();
|
||||
extern "C" void _savegpr_27();
|
||||
@@ -215,7 +164,6 @@ extern "C" void _restgpr_23();
|
||||
extern "C" void _restgpr_26();
|
||||
extern "C" void _restgpr_27();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" void strcmp();
|
||||
extern "C" u8 m_gamePad__8mDoCPd_c[16];
|
||||
extern "C" u8 m_cpadInfo__8mDoCPd_c[256];
|
||||
extern "C" extern u8 g_mDoMemCd_control[8192];
|
||||
@@ -237,62 +185,57 @@ extern "C" u8 sAramObject__7JKRAram[4];
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803739A0-803739A0 000000 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_803739A0 = "20Apr2004";
|
||||
SECTION_DEAD static char const* const stringBase_803739AA = "Patch2";
|
||||
SECTION_DEAD static char const* const stringBase_803739B1 =
|
||||
"SDKのバージョンが一致しません。停止します\n";
|
||||
#pragma pop
|
||||
static void version_check() {
|
||||
if ((!strcmp("20Apr2004", "20Apr2004")) && (!strcmp("Patch2", "Patch2"))) {
|
||||
return;
|
||||
}
|
||||
|
||||
/* 800056C0-80005728 000000 0068+00 1/1 0/0 0/0 .text version_check__Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void version_check() {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_main/version_check__Fv.s"
|
||||
// "SDK version doesn't match. Stopping\n"
|
||||
OSReport_Error("SDKのバージョンが一致しません。停止します\n");
|
||||
do {
|
||||
} while (true);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80005728-8000578C 000068 0064+00 1/1 0/0 0/0 .text CheckHeap1__9HeapCheckFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void HeapCheck::CheckHeap1() {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_main/CheckHeap1__9HeapCheckFv.s"
|
||||
void HeapCheck::CheckHeap1() {
|
||||
s32 totalUsedSize = mHeap->getTotalUsedSize();
|
||||
s32 freeSize = mHeap->getFreeSize();
|
||||
|
||||
if (mMaxTotalUsedSize < totalUsedSize) {
|
||||
mMaxTotalUsedSize = totalUsedSize;
|
||||
}
|
||||
|
||||
if (mMaxTotalFreeSize > freeSize) {
|
||||
mMaxTotalFreeSize = freeSize;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803D32E0-803D3308 000000 0028+00 3/2 0/0 0/0 .bss RootHeapCheck */
|
||||
extern "C" u8 RootHeapCheck[40];
|
||||
extern "C" HeapCheck RootHeapCheck;
|
||||
|
||||
/* 803D3308-803D3330 000028 0028+00 1/2 0/0 0/0 .bss SystemHeapCheck */
|
||||
extern "C" u8 SystemHeapCheck[40];
|
||||
extern "C" HeapCheck SystemHeapCheck;
|
||||
|
||||
/* 803D3330-803D3358 000050 0028+00 1/2 0/0 0/0 .bss ZeldaHeapCheck */
|
||||
extern "C" u8 ZeldaHeapCheck[40];
|
||||
extern "C" HeapCheck ZeldaHeapCheck;
|
||||
|
||||
/* 803D3358-803D3380 000078 0028+00 1/2 0/0 0/0 .bss GameHeapCheck */
|
||||
extern "C" u8 GameHeapCheck[40];
|
||||
extern "C" HeapCheck GameHeapCheck;
|
||||
|
||||
/* 803D3380-803D33A8 0000A0 0028+00 1/2 0/0 0/0 .bss ArchiveHeapCheck */
|
||||
extern "C" u8 ArchiveHeapCheck[40];
|
||||
extern "C" HeapCheck ArchiveHeapCheck;
|
||||
|
||||
/* 803D33A8-803D33D0 0000C8 0028+00 1/2 0/0 0/0 .bss J2dHeapCheck */
|
||||
extern "C" u8 J2dHeapCheck[40];
|
||||
extern "C" HeapCheck J2dHeapCheck;
|
||||
|
||||
/* 803D33D0-803D33F8 0000F0 0028+00 1/2 0/0 0/0 .bss HostioHeapCheck */
|
||||
extern "C" u8 HostioHeapCheck[40];
|
||||
extern "C" HeapCheck HostioHeapCheck;
|
||||
|
||||
/* 803D33F8-803D3420 000118 0028+00 1/2 0/0 0/0 .bss CommandHeapCheck */
|
||||
extern "C" u8 CommandHeapCheck[40];
|
||||
extern "C" HeapCheck CommandHeapCheck;
|
||||
|
||||
/* 803A2EE0-803A2EF4 000000 0012+02 2/2 1/1 0/0 .data COPYDATE_STRING__7mDoMain */
|
||||
// "??/??/?? ??:??:?"
|
||||
SECTION_DATA u8 mDoMain::COPYDATE_STRING[18 + 2 /* padding */] = {
|
||||
0x3F,
|
||||
0x3F,
|
||||
@@ -318,37 +261,62 @@ SECTION_DATA u8 mDoMain::COPYDATE_STRING[18 + 2 /* padding */] = {
|
||||
};
|
||||
|
||||
/* 803A2EF4-803A2F14 -00001 0020+00 1/2 0/0 0/0 .data HeapCheckTable */
|
||||
SECTION_DATA static void* HeapCheckTable[8] = {
|
||||
(void*)&RootHeapCheck, (void*)&SystemHeapCheck, (void*)&ZeldaHeapCheck,
|
||||
(void*)&GameHeapCheck, (void*)&ArchiveHeapCheck, (void*)&J2dHeapCheck,
|
||||
(void*)&HostioHeapCheck, (void*)&CommandHeapCheck,
|
||||
SECTION_DATA static HeapCheck* HeapCheckTable[8] = {
|
||||
&RootHeapCheck, &SystemHeapCheck, &ZeldaHeapCheck, &GameHeapCheck,
|
||||
&ArchiveHeapCheck, &J2dHeapCheck, &HostioHeapCheck, &CommandHeapCheck,
|
||||
};
|
||||
|
||||
/* 803D32E0-803D3308 000000 0028+00 3/2 0/0 0/0 .bss RootHeapCheck */
|
||||
static u8 RootHeapCheck[40];
|
||||
static HeapCheck RootHeapCheck;
|
||||
|
||||
/* 803D3308-803D3330 000028 0028+00 1/2 0/0 0/0 .bss SystemHeapCheck */
|
||||
static u8 SystemHeapCheck[40];
|
||||
static HeapCheck SystemHeapCheck;
|
||||
|
||||
/* 803D3330-803D3358 000050 0028+00 1/2 0/0 0/0 .bss ZeldaHeapCheck */
|
||||
static u8 ZeldaHeapCheck[40];
|
||||
static HeapCheck ZeldaHeapCheck;
|
||||
|
||||
/* 803D3358-803D3380 000078 0028+00 1/2 0/0 0/0 .bss GameHeapCheck */
|
||||
static u8 GameHeapCheck[40];
|
||||
static HeapCheck GameHeapCheck;
|
||||
|
||||
/* 803D3380-803D33A8 0000A0 0028+00 1/2 0/0 0/0 .bss ArchiveHeapCheck */
|
||||
static u8 ArchiveHeapCheck[40];
|
||||
static HeapCheck ArchiveHeapCheck;
|
||||
|
||||
/* 803D33A8-803D33D0 0000C8 0028+00 1/2 0/0 0/0 .bss J2dHeapCheck */
|
||||
static u8 J2dHeapCheck[40];
|
||||
static HeapCheck J2dHeapCheck;
|
||||
|
||||
/* 803D33D0-803D33F8 0000F0 0028+00 1/2 0/0 0/0 .bss HostioHeapCheck */
|
||||
static u8 HostioHeapCheck[40];
|
||||
static HeapCheck HostioHeapCheck;
|
||||
|
||||
/* 803D33F8-803D3420 000118 0028+00 1/2 0/0 0/0 .bss CommandHeapCheck */
|
||||
static u8 CommandHeapCheck[40];
|
||||
static HeapCheck CommandHeapCheck;
|
||||
|
||||
/* 8000578C-80005848 0000CC 00BC+00 1/1 0/0 0/0 .text CheckHeap__FUl */
|
||||
#ifdef NONMATCHING
|
||||
void CheckHeap(u32 controller_pad_no) {
|
||||
mDoMch_HeapCheckAll__Fv();
|
||||
OSCheckActiveThreads();
|
||||
|
||||
bool unk = false;
|
||||
|
||||
// if L + R + Z is pressed...
|
||||
if (((m_cpadInfo[controller_pad_no].mButtonFlags & ~0x10) == 0x60) &&
|
||||
m_cpadInfo[controller_pad_no].mPressedButtonFlags & 0x10) {
|
||||
unk = true;
|
||||
}
|
||||
|
||||
for (int i = 0; i < 8; i++) {
|
||||
HeapCheckTable[i]->CheckHeap1();
|
||||
if (unk) {
|
||||
HeapCheck* currentHeap = HeapCheckTable[i];
|
||||
s32 used_count = currentHeap->getUsedCount();
|
||||
|
||||
currentHeap->getUsedCountRef() = used_count;
|
||||
used_count = currentHeap->getHeap()->getTotalUsedSize();
|
||||
currentHeap->getTotalUsedSizeRef() = used_count;
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -357,54 +325,51 @@ static asm void CheckHeap(u32 param_0) {
|
||||
#include "asm/m_Do/m_Do_main/CheckHeap__FUl.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80005848-800058A0 000188 0058+00 2/2 0/0 0/0 .text countUsed__FP10JKRExpHeap */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void countUsed(JKRExpHeap* param_0) {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_main/countUsed__FP10JKRExpHeap.s"
|
||||
static int countUsed(JKRExpHeap* heap) {
|
||||
OSDisableScheduler();
|
||||
int counter = 0;
|
||||
JKRExpHeap::CMemBlock* used_blocks_head = heap->getHeadUsedList();
|
||||
|
||||
while (used_blocks_head) {
|
||||
used_blocks_head = used_blocks_head->getNextBlock();
|
||||
counter++;
|
||||
};
|
||||
|
||||
OSEnableScheduler();
|
||||
return counter;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800058A0-800058C4 0001E0 0024+00 2/2 0/0 0/0 .text getUsedCount__9HeapCheckCFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void HeapCheck::getUsedCount() const {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_main/getUsedCount__9HeapCheckCFv.s"
|
||||
s32 HeapCheck::getUsedCount() const {
|
||||
return countUsed(mHeap);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803739A0-803739A0 000000 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_803739DC = "[%sName]";
|
||||
SECTION_DEAD static char const* const stringBase_803739E5 = "HeapSize %8ld";
|
||||
SECTION_DEAD static char const* const stringBase_803739FB = "TargetHeapSize %8ld";
|
||||
SECTION_DEAD static char const* const stringBase_80373A11 = "TotalFree %8ld";
|
||||
SECTION_DEAD static char const* const stringBase_80373A27 = "FreeSize %8ld";
|
||||
SECTION_DEAD static char const* const stringBase_80373A3D = "TotalUsedSize %8ld";
|
||||
SECTION_DEAD static char const* const stringBase_80373A53 = "TotalUsedRate %3ld%%";
|
||||
SECTION_DEAD static char const* const stringBase_80373A6F = "MaxTotalUsedSize %8ld";
|
||||
SECTION_DEAD static char const* const stringBase_80373A85 = "MaxTotalUsedRate %3ld%%";
|
||||
SECTION_DEAD static char const* const stringBase_80373AA1 = "MinFreeSize %8ld";
|
||||
SECTION_DEAD static char const* const stringBase_80373AB7 = "MinFreeRate %3ld%%";
|
||||
SECTION_DEAD static char const* const stringBase_80373AD3 = "UsedCount %3ld%";
|
||||
#pragma pop
|
||||
void HeapCheck::heapDisplay() const {
|
||||
s32 heap_size = mHeap->getSize();
|
||||
s32 used_count = heap_size - mTargetHeapSize;
|
||||
|
||||
/* 800058C4-80005AD8 000204 0214+00 1/1 0/0 0/0 .text heapDisplay__9HeapCheckCFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void HeapCheck::heapDisplay() const {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_main/heapDisplay__9HeapCheckCFv.s"
|
||||
s32 total_used_size = mHeap->getTotalUsedSize();
|
||||
s32 total_free_size = mHeap->getTotalFreeSize();
|
||||
s32 heap_free_size = mHeap->getFreeSize();
|
||||
|
||||
JUTReport(0x64, 0xd4, "[%sName]", mName);
|
||||
JUTReport(0x64, 0xe3, "HeapSize %8ld", heap_size);
|
||||
JUTReport(0x64, 0xf0, "TargetHeapSize %8ld", mTargetHeapSize);
|
||||
JUTReport(0x64, 0xfd, "TotalFree %8ld", total_free_size - used_count);
|
||||
JUTReport(0x64, 0x10a, "FreeSize %8ld", heap_free_size - used_count);
|
||||
JUTReport(0x64, 0x117, "TotalUsedSize %8ld", total_used_size);
|
||||
JUTReport(0x64, 0x124, "TotalUsedRate %3ld%%",
|
||||
(int)(total_used_size * 0x64) / (int)mTargetHeapSize);
|
||||
JUTReport(0x64, 0x131, "MaxTotalUsedSize %8ld", mMaxTotalUsedSize);
|
||||
JUTReport(0x64, 0x13e, "MaxTotalUsedRate %3ld%%",
|
||||
(mMaxTotalUsedSize * 0x64) / (int)mTargetHeapSize);
|
||||
JUTReport(0x64, 0x14b, "MinFreeSize %8ld", mMaxTotalFreeSize - used_count);
|
||||
JUTReport(0x64, 0x158, "MinFreeRate %3ld%%",
|
||||
((mMaxTotalFreeSize - used_count) * 0x64) / (int)mTargetHeapSize);
|
||||
used_count = countUsed(mHeap);
|
||||
JUTReport(0x64, 0x165, "UsedCount %3ld%", used_count);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803739A0-803739A0 000000 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
@@ -452,7 +417,7 @@ SECTION_DATA static void* desc2[5 + 1 /* padding */] = {
|
||||
#pragma pop
|
||||
|
||||
/* 80450580-80450584 000000 0004+00 3/3 6/6 0/0 .sdata None */
|
||||
SECTION_SDATA extern u32 data_80450580 = 0xFF000000;
|
||||
SECTION_SDATA extern s8 data_80450580 = 0xFF;
|
||||
|
||||
/* 80450584-80450588 000004 0004+00 0/0 1/1 0/0 .sdata memMargin__7mDoMain */
|
||||
SECTION_SDATA u32 mDoMain::memMargin = 0xFFFFFFFF;
|
||||
@@ -466,16 +431,14 @@ SECTION_SDATA static u8 data_80450588[8] = {
|
||||
static u8 data_80450B00[8];
|
||||
|
||||
/* 80450B08-80450B0C 000008 0004+00 1/1 1/1 0/0 .sbss sPowerOnTime__7mDoMain */
|
||||
// should be OSTime
|
||||
u8 mDoMain::sPowerOnTime[4];
|
||||
|
||||
/* 80450B0C-80450B10 00000C 0004+00 1/1 1/1 0/0 .sbss None */
|
||||
extern u8 data_80450B0C[4];
|
||||
u8 data_80450B0C[4];
|
||||
|
||||
/* 80450B10-80450B14 000010 0004+00 0/0 2/2 0/0 .sbss sHungUpTime__7mDoMain */
|
||||
// should be OSTime
|
||||
u8 mDoMain::sHungUpTime[4];
|
||||
|
||||
/* 80450B14-80450B18 000014 0004+00 0/0 2/2 0/0 .sbss None */
|
||||
extern u8 data_80450B14[4];
|
||||
u8 data_80450B14[4];
|
||||
|
||||
@@ -483,9 +446,74 @@ u8 data_80450B14[4];
|
||||
/* 80450B18 0001+00 data_80450B18 None */
|
||||
/* 80450B19 0001+00 data_80450B19 None */
|
||||
/* 80450B1A 0002+00 data_80450B1A None */
|
||||
static u8 struct_80450B18[4];
|
||||
static u8 struct_80450B18[2];
|
||||
|
||||
static u8 data_80450B1A;
|
||||
static u8 data_80450B1B;
|
||||
|
||||
/* 80005AD8-80005D4C 000418 0274+00 1/1 0/0 0/0 .text debugDisplay__Fv */
|
||||
#ifdef NONMATCHING
|
||||
void debugDisplay(void) {
|
||||
int tmp1;
|
||||
int tmp2;
|
||||
HeapCheck** hct = (HeapCheck**)lbl_803A2EE0;
|
||||
|
||||
if (lbl_80450B19 >= 1 && lbl_80450B19 <= 6) {
|
||||
hct[lbl_80450B19 - 1]->heapDisplay();
|
||||
}
|
||||
|
||||
if (lbl_80450588 == 5) {
|
||||
JKRAramHeap* heap = sAramObject__7JKRAram->getAramHeap();
|
||||
if (heap) {
|
||||
JUTReport(0x1db, 100, lbl_803739A0 + 0x196);
|
||||
JUTReport(0x1db, 0x72, lbl_803739A0 + 0x1A0, heap->getFreeSize());
|
||||
JUTReport(0x1db, 0x80, lbl_803739A0 + 0x150);
|
||||
JUTReport(0x1db, 0x8e, lbl_803739A0 + 0x1A0, heap->getTotalFreeSize());
|
||||
}
|
||||
|
||||
} else {
|
||||
if (lbl_80450588) {
|
||||
JUTReport(0x1db, 100, lbl_803739A0 + 0x1A3, lbl_803A2F14[lbl_80450588]);
|
||||
JUTReport(0x1db, 0x72, lbl_803739A0 + 0x1A3, lbl_803A2F28[lbl_80450588]);
|
||||
|
||||
int k = 0;
|
||||
for (int i = 0; i < 8; i++, k += 0x2c) {
|
||||
// heap check table stuff
|
||||
HeapCheck* heap_check;
|
||||
heap_check = HeapCheckTable[i];
|
||||
|
||||
switch (lbl_80450588) {
|
||||
case 3: {
|
||||
tmp1 = heap_check->getUsedCount();
|
||||
tmp2 = heap_check->getHeap()->getTotalUsedSize();
|
||||
break;
|
||||
}
|
||||
case 1: {
|
||||
tmp1 = heap_check->getHeap()->getTotalFreeSize();
|
||||
tmp2 = heap_check->getHeap()->getFreeSize();
|
||||
break;
|
||||
}
|
||||
case 2: {
|
||||
tmp1 = heap_check->getMaxTotalUsedSize();
|
||||
tmp2 = heap_check->getHeap()->getSize();
|
||||
break;
|
||||
}
|
||||
case 4: {
|
||||
tmp1 = heap_check->getUsedCount() - heap_check->getUsedCountRef();
|
||||
tmp2 = heap_check->getHeap()->getTotalUsedSize() -
|
||||
heap_check->getTotalUsedSizeRef();
|
||||
break;
|
||||
}
|
||||
|
||||
JUTReport(0x1db, k + 0x96, lbl_80373B46, heap_check->getNames()[0]);
|
||||
JUTReport(0x1db, k + 0xA4, lbl_80373B4C, tmp1);
|
||||
JUTReport(0x1db, k + 0xB2, lbl_80373B4C, tmp2);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -494,6 +522,7 @@ static asm void debugDisplay() {
|
||||
#include "asm/m_Do/m_Do_main/debugDisplay__Fv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803739A0-803739A0 000000 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
@@ -555,6 +584,121 @@ SECTION_SDATA2 static f32 lit_3888[1 + 1 /* padding */] = {
|
||||
SECTION_SDATA2 static f64 lit_3890 = 4503601774854144.0 /* cast s32 to float */;
|
||||
|
||||
/* 80005D4C-8000614C 00068C 0400+00 1/1 0/0 0/0 .text Debug_console__FUl */
|
||||
#ifdef NONMATCHING
|
||||
void Debug_console(u32 controller_pad_no) {
|
||||
float tmp2;
|
||||
float tmp3;
|
||||
int tmp6;
|
||||
|
||||
// systemConsole
|
||||
if (lbl_804511B8) {
|
||||
if (!lbl_80450B20) {
|
||||
lbl_80450B1C = lbl_80451A00;
|
||||
lbl_80450B20 = 1;
|
||||
}
|
||||
|
||||
if (!lbl_80450B28) {
|
||||
lbl_80450B24 = lbl_80451A04;
|
||||
lbl_80450B28 = 1;
|
||||
}
|
||||
if (!lbl_80450B30) {
|
||||
lbl_80450B2C = lbl_80451A08;
|
||||
lbl_80450B30 = 1;
|
||||
}
|
||||
|
||||
u32 tmp5 = m_cpadInfo[controller_pad_no].mPressedButtonFlags;
|
||||
|
||||
if ((m_cpadInfo[controller_pad_no].mPressedButtonFlags & 0x10) &&
|
||||
!(m_cpadInfo[controller_pad_no].mButtonFlags & ~0x10)) {
|
||||
lbl_804511B8->field_0x68 = !lbl_804511B8->field_0x68;
|
||||
JUTAssertion::setMessageCount(0);
|
||||
}
|
||||
|
||||
if (lbl_804511B8->field_0x68) {
|
||||
u32 tmp = m_cpadInfo[controller_pad_no].mButtonFlags;
|
||||
|
||||
// if R and L are pressed
|
||||
if ((tmp & CButton::R && tmp & CButton::L) ||
|
||||
((lbl_80451A08 > m_cpadInfo[controller_pad_no].mTriggerLeft) &&
|
||||
(lbl_80451A08 > m_cpadInfo[controller_pad_no].mTriggerRight))) {
|
||||
tmp2 = m_cpadInfo[controller_pad_no].mMainStickPosX;
|
||||
tmp3 = m_cpadInfo[controller_pad_no].mMainStickPosY;
|
||||
|
||||
// if x buttons are pressed, clear the console
|
||||
if (tmp & (CButton::Y | CButton::START) && tmp5 & CButton::START) {
|
||||
lbl_804511B8->clear();
|
||||
}
|
||||
|
||||
u32 tmp = m_cpadInfo[controller_pad_no].mButtonFlags;
|
||||
|
||||
if (!(tmp & (CButton::Y | CButton::START))) {
|
||||
// subtract console scroll value from stick Y
|
||||
float tmp4 = lbl_80450B2C;
|
||||
lbl_80450B2C = tmp4 - tmp3;
|
||||
if (lbl_80450B2C <= lbl_80451A0C) {
|
||||
lbl_80451A10 <= lbl_80450B2C ? tmp = 0 : tmp = lbl_80451A0C;
|
||||
} else {
|
||||
tmp = (tmp4 - tmp3);
|
||||
}
|
||||
|
||||
if (tmp) {
|
||||
lbl_80450B2C -= (tmp ^ 0x80000000) - 4503601774854144.00000000;
|
||||
lbl_804511B8->scroll(tmp);
|
||||
}
|
||||
} else {
|
||||
if (tmp & CButton::X) {
|
||||
lbl_80450B2C += tmp2;
|
||||
}
|
||||
|
||||
if (tmp & CButton::Y) {
|
||||
lbl_80450B2C -= tmp3;
|
||||
}
|
||||
}
|
||||
|
||||
if (tmp5 & CButton::A) {
|
||||
lbl_804511B8->dumpToTerminal(0xFFFFFFFF);
|
||||
lbl_804511B8->field_0x58 = 3;
|
||||
}
|
||||
|
||||
JUTReport(0x1E, 0x186, 1, lbl_80373B51);
|
||||
JUTReport(0x1E, 400, 1, lbl_80373B73);
|
||||
JUTReport(0x1E, 0x19A, 1, lbl_80373B8D);
|
||||
tmp6 = lbl_804511B8->getLineOffset();
|
||||
JUTReport(0x1E, 0x1A4, 1, lbl_80373BB6, tmp6, lbl_804511B8->field_0x40,
|
||||
lbl_804511B8->field_0x44, lbl_804511B8->field_0x58);
|
||||
}
|
||||
} else {
|
||||
if (tmp5 & 4) {
|
||||
g_HIO.field_0x15 ^= 1;
|
||||
}
|
||||
|
||||
if (tmp5 & 1) {
|
||||
if (sAramObject__7JKRAram->getAramHeap()) {
|
||||
sAramObject__7JKRAram->getAramHeap()->dump();
|
||||
}
|
||||
|
||||
dump__24DynamicModuleControlBaseFv();
|
||||
dump__14dRes_control_cFv();
|
||||
}
|
||||
|
||||
if (tmp5 & 2) {
|
||||
sSystemHeap__7JKRHeap->dump_sort();
|
||||
}
|
||||
|
||||
if (tmp5 & 8) {
|
||||
lbl_80450C2C->dump_sort();
|
||||
lbl_80450C28->dump_sort();
|
||||
lbl_80450C34->dump_sort();
|
||||
}
|
||||
JUTReport(0x1E, 0x1B8, 1, lbl_80373BD5);
|
||||
JUTReport(0x1E, 0x1C2, 1, lbl_80373BFB);
|
||||
}
|
||||
lbl_804511B8->field_0x40 = lbl_80450B1C;
|
||||
lbl_804511B8->field_0x44 = lbl_80450B24;
|
||||
tmp6 = 1;
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -563,6 +707,7 @@ static asm void Debug_console(u32 param_0) {
|
||||
#include "asm/m_Do/m_Do_main/Debug_console__FUl.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803739A0-803739A0 000000 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
@@ -572,6 +717,23 @@ SECTION_DEAD static char const* const stringBase_80373C23 = "/str/Final/Release/
|
||||
#pragma pop
|
||||
|
||||
/* 8000614C-800061C8 000A8C 007C+00 1/1 0/0 0/0 .text LOAD_COPYDATE__FPv */
|
||||
#ifdef NONMATCHING
|
||||
s32 LOAD_COPYDATE(void*) {
|
||||
s32 status;
|
||||
u8 buffer[32];
|
||||
u8 fileInfo[80];
|
||||
// DVDFileInfo fileInfo;
|
||||
|
||||
status = DVDOpen("/str/Final/Release/COPYDATE", (DVDFileInfo*)&fileInfo);
|
||||
|
||||
if (status) {
|
||||
DVDReadPrio((DVDFileInfo*)fileInfo, &buffer, 32, 0, 2);
|
||||
memcpy(lbl_803A2EE0, buffer, 17);
|
||||
status = DVDClose((DVDFileInfo*)fileInfo);
|
||||
}
|
||||
return status;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -580,22 +742,138 @@ static asm void LOAD_COPYDATE(void* param_0) {
|
||||
#include "asm/m_Do/m_Do_main/LOAD_COPYDATE__FPv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 800061C8-8000628C 000B08 00C4+00 1/1 0/0 0/0 .text debug__Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void debug() {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_main/debug__Fv.s"
|
||||
static void debug() {
|
||||
if (data_80450580) {
|
||||
if (data_80450B1A) {
|
||||
CheckHeap(2);
|
||||
}
|
||||
|
||||
if (((mDoCPd_c::m_gamePad[2]->buttons.mButtonFlags & ~0x10) == 0x20) &&
|
||||
(mDoCPd_c::m_gamePad[2]->buttons.mPressedButtonFlags & 0x10)) {
|
||||
struct_80450B18[0] ^= 0x1;
|
||||
}
|
||||
|
||||
if (struct_80450B18[0]) {
|
||||
if (((mDoCPd_c::m_gamePad[2]->buttons.mButtonFlags & ~0x10) == 0x40) &&
|
||||
(mDoCPd_c::m_gamePad[2]->buttons.mPressedButtonFlags & 0x10)) {
|
||||
data_80450588[0] < 0x5 ? data_80450588[0]++ : data_80450588[0] = 0x1;
|
||||
}
|
||||
|
||||
debugDisplay();
|
||||
}
|
||||
|
||||
Debug_console(2);
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80450B34-80450B38 000034 0004+00 1/1 0/0 0/0 .sbss frame$3939 */
|
||||
static u8 frame[4];
|
||||
|
||||
/* 8000628C-80006454 000BCC 01C8+00 1/1 0/0 0/0 .text main01__Fv */
|
||||
#ifdef NONMATCHING
|
||||
void main01(void) {
|
||||
HeapCheck* heaps = lbl_803D32E0;
|
||||
|
||||
mDoMch_Create__Fv();
|
||||
mDoGph_Create();
|
||||
create__8mDoCPd_cFv();
|
||||
|
||||
// mDoDVDThd_callback_c thread_callback;
|
||||
// JKRSolidHeap audio_heap;
|
||||
|
||||
// Root Heap
|
||||
heaps[0].setHeap((JKRExpHeap*)JKRHeap::getRootHeap());
|
||||
if (JKRHeap::getRootHeap()) {
|
||||
heaps[0].setHeapSize(JKRHeap::getRootHeap()->getSize());
|
||||
}
|
||||
|
||||
// System Heap
|
||||
heaps[1].setHeap((JKRExpHeap*)JKRHeap::getSystemHeap());
|
||||
if (JKRHeap::getSystemHeap()) {
|
||||
heaps[1].setHeapSize(JKRHeap::getSystemHeap()->getSize());
|
||||
}
|
||||
|
||||
// Zelda Heap
|
||||
heaps[2].setHeap(mDoExt_getZeldaHeap());
|
||||
if (heaps[2].getHeap()) {
|
||||
heaps[2].setHeapSize(heaps[2].getHeap()->getSize());
|
||||
}
|
||||
|
||||
// Game Heap
|
||||
heaps[3].setHeap(mDoExt_getGameHeap());
|
||||
if (heaps[3].getHeap()) {
|
||||
heaps[3].setHeapSize(heaps[3].getHeap()->getSize());
|
||||
}
|
||||
|
||||
// Archive Heap
|
||||
heaps[4].setHeap(mDoExt_getArchiveHeap());
|
||||
if (heaps[4].getHeap()) {
|
||||
heaps[4].setHeapSize(heaps[4].getHeap()->getSize());
|
||||
}
|
||||
|
||||
// J2D Heap
|
||||
heaps[5].setHeap(mDoExt_getJ2dHeap());
|
||||
if (heaps[5].getHeap()) {
|
||||
heaps[5].setHeapSize(heaps[5].getHeap()->getSize());
|
||||
}
|
||||
|
||||
// HostIO Heap
|
||||
heaps[6].setHeap(mDoExt_getHostIOHeap());
|
||||
if (heaps[6].getHeap()) {
|
||||
heaps[6].setHeapSize(heaps[6].getHeap()->getSize());
|
||||
}
|
||||
|
||||
// Command Heap
|
||||
heaps[7].setHeap(mDoExt_getCommandHeap());
|
||||
|
||||
JUTConsole* systemConsole = lbl_804511B8;
|
||||
|
||||
if (heaps[7].getHeap()) {
|
||||
heaps[7].setHeapSize(heaps[7].getHeap()->getSize());
|
||||
}
|
||||
|
||||
u32 unk = 0;
|
||||
if (lbl_80450580) {
|
||||
unk = 3;
|
||||
}
|
||||
|
||||
systemConsole->field_0x58 = unk;
|
||||
systemConsole->field_0x40 = 0x20;
|
||||
systemConsole->field_0x44 = 0x2A;
|
||||
|
||||
// lol
|
||||
mDoDVDThd_callback_c::create(LOAD_COPYDATE, 0);
|
||||
fapGm_Create();
|
||||
fopAcM_initManager();
|
||||
lbl_80450B18 = 0;
|
||||
cDyl_InitAsync__Fv();
|
||||
|
||||
// g_mDoAud_audioHeap
|
||||
|
||||
lbl_80450BBC = JKRSolidHeap::create(0x14d800, JKRHeap::getCurrentHeap(), false);
|
||||
|
||||
// main loop
|
||||
do {
|
||||
// global frame counter?
|
||||
lbl_80450B34++;
|
||||
|
||||
if (lbl_80450B00 && (lbl_80450B34 == ((lbl_80450B34 / lbl_80450B00) * lbl_80450B00))) {
|
||||
mDoMch_HeapCheckAll__Fv();
|
||||
}
|
||||
|
||||
if (lbl_80450C80) {
|
||||
update__15mDoMemCd_Ctrl_cFv();
|
||||
}
|
||||
mDoCPd_c_NS_read();
|
||||
fapGm_Execute();
|
||||
mDoAud_Execute();
|
||||
debug();
|
||||
} while (true);
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -604,6 +882,7 @@ static asm void main01() {
|
||||
#include "asm/m_Do/m_Do_main/main01__Fv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803D3420-803DB420 000140 8000+00 1/1 0/0 0/0 .bss mainThreadStack */
|
||||
@@ -613,6 +892,59 @@ static u8 mainThreadStack[32768];
|
||||
static u8 mainThread[792 + 8 /* padding */];
|
||||
|
||||
/* 80006454-800065D8 000D94 0184+00 0/0 1/1 0/0 .text main */
|
||||
#ifdef NONMATCHING
|
||||
void main() {
|
||||
u32 resetCode;
|
||||
OSThread* current_thread = OSGetCurrentThread();
|
||||
OSPriority* priority;
|
||||
mDoMain::sPowerOnTime = OSGetTime();
|
||||
OSReportInit();
|
||||
version_check();
|
||||
mDoRstData* reset_data = (mDoRstData*)OSAllocFromArenaLo(0x18, 4);
|
||||
mDoRst::setResetData(reset_data);
|
||||
|
||||
if (!mDoRst::getResetData()) {
|
||||
do {
|
||||
} while (true);
|
||||
}
|
||||
|
||||
if (!(OSGetResetCode() & 0x80000000)) {
|
||||
mDoRst::offReset();
|
||||
mDoRst::offResetPrepare();
|
||||
mDoRst::off3ButtonReset();
|
||||
mDoRst::off3ButtonResetPort(-1);
|
||||
mDoRst::setLogoScnFlag(0);
|
||||
mDoRst::setProgSeqFlag(0);
|
||||
mDoRst::setProgChgFlag(0);
|
||||
mDoRst::setWarningDispFlag(0);
|
||||
mDoRst::offShutdown();
|
||||
mDoRst::offReturnToMenu();
|
||||
}
|
||||
|
||||
dComIfG_ct();
|
||||
|
||||
if (data_80450580 < 0) {
|
||||
DVDDiskID* disk_id = DVDGetCurrentDiskID();
|
||||
|
||||
if (disk_id->game_version <= 0x90) {
|
||||
if (disk_id->game_version <= 0x80) {
|
||||
data_80450580 = 0;
|
||||
} else {
|
||||
resetCode = OSGetConsoleType();
|
||||
data_80450580 = (-(resetCode & 0x10000000) >> 0x1f);
|
||||
}
|
||||
} else {
|
||||
data_80450580 = 1;
|
||||
}
|
||||
}
|
||||
|
||||
priority = OSGetThreadPriority(current_thread);
|
||||
OSCreateThread(&mainThread, main01, 0, &mainThread, 0x8000, priority, 0);
|
||||
OSResumeThread(&mainThread);
|
||||
OSSetThreadPriority(current_thread, 0x1F);
|
||||
OSSuspendThread(current_thread);
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -621,6 +953,7 @@ asm void main() {
|
||||
#include "asm/m_Do/m_Do_main/main.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 800065D8-800065E0 000F18 0008+00 0/0 2/0 0/0 .text dump_sort__7JKRHeapFv */
|
||||
bool JKRHeap::dump_sort() {
|
||||
|
||||
Reference in New Issue
Block a user