d_reset almost fully matching

This commit is contained in:
elijah-thomas774
2025-06-16 00:13:23 -04:00
parent 2d0fc73ec9
commit d7f1387471
23 changed files with 815 additions and 95 deletions
+4
View File
@@ -340,7 +340,11 @@ toBeSorted/deg_angle_util.cpp:
d/d_reset.cpp:
.text start:0x80067B20 end:0x80068FD0 align:16
.ctors start:0x804DB6A4 end:0x804DB6A8
.rodata start:0x804E0F18 end:0x804E0FA8
.data start:0x8050DFB0 end:0x8050DFE0
.sdata start:0x80571D20 end:0x80571D30
.sbss start:0x80575270 end:0x80575278
.sdata2 start:0x805779E8 end:0x805779F8
toBeSorted/arc_managers/current_stage_arc_manager.cpp:
.text start:0x80068FD0 end:0x80069910 align:16
+28 -28
View File
@@ -2155,9 +2155,9 @@ fn_800527F0 = .text:0x800527F0; // type:function size:0x11C
fn_80052910 = .text:0x80052910; // type:function size:0x48
fn_80052960 = .text:0x80052960; // type:function size:0x18
init__Q27dDvdUnk7FontUnkFv = .text:0x80052980; // type:function size:0x30
fn_800529B0 = .text:0x800529B0; // type:function size:0x30
fn_800529E0 = .text:0x800529E0; // type:function size:0x38
fn_80052A20 = .text:0x80052A20; // type:function size:0xB8
fn_800529B0__Q27dDvdUnk7FontUnkFv = .text:0x800529B0; // type:function size:0x30
fn_800529E0__Q27dDvdUnk7FontUnkFv = .text:0x800529E0; // type:function size:0x38
fn_80052A20__Q27dDvdUnk7FontUnkFv = .text:0x80052A20; // type:function size:0xB8
fn_80052AE0 = .text:0x80052AE0; // type:function size:0x148
fn_80052C30 = .text:0x80052C30; // type:function size:0x24
fn_80052C60__Q27dDvdUnk7FontUnkFv = .text:0x80052C60; // type:function size:0x24
@@ -2945,11 +2945,11 @@ SetHbmReset__Q26dReset8Manage_cFv = .text:0x80067FB0; // type:function size:0xC
SetDelayReset__Q26dReset8Manage_cFv = .text:0x80067FC0; // type:function size:0xC
SetDelayPowerOff__Q26dReset8Manage_cFv = .text:0x80067FD0; // type:function size:0xC
SetInteriorReturnDataManager__Q26dReset8Manage_cFv = .text:0x80067FE0; // type:function size:0xC
fn_80067FF0 = .text:0x80067FF0; // type:function size:0x3C
fn_80067FF0__Q26dReset8Manage_cFv = .text:0x80067FF0; // type:function size:0x3C
ExecProcPre__Q26dReset8Manage_cFv = .text:0x80068030; // type:function size:0x34
fn_80068070 = .text:0x80068070; // type:function size:0x4
fn_80068070__Q26dReset8Manage_cFv = .text:0x80068070; // type:function size:0x4
ExecProcMain__Q26dReset8Manage_cFv = .text:0x80068080; // type:function size:0x48
DiskCheckModeRequest__Q26dReset8Manage_cFv = .text:0x800680D0; // type:function size:0xC8
DiskCheckModeRequest__Q26dReset8Manage_cFb = .text:0x800680D0; // type:function size:0xC8
DebugPrintMode__Q26dReset8Manage_cFPCc = .text:0x800681A0; // type:function size:0x4
ModeProc__Q26dReset8Manage_cFv = .text:0x800681B0; // type:function size:0x114
ModeRequest__Q26dReset8Manage_cFQ36dReset8Manage_c6Mode_e = .text:0x800682D0; // type:function size:0x40
@@ -2969,8 +2969,8 @@ ModeInit_SafetyWait__Q26dReset8Manage_cFv = .text:0x80068B00; // type:function s
ModeProc_SafetyWait__Q26dReset8Manage_cFv = .text:0x80068B60; // type:function size:0xE8
SetResetCallback__Q26dReset8Manage_cFv = .text:0x80068C50; // type:function size:0xC
SetPowerCallback__Q26dReset8Manage_cFv = .text:0x80068C60; // type:function size:0xC
fn_80068C70 = .text:0x80068C70; // type:function size:0x18
fn_80068C90 = .text:0x80068C90; // type:function size:0x48
SetDiskCheckCallback__Q26dReset8Manage_cFv = .text:0x80068C70; // type:function size:0x18
DiskCheckCallback__Q26dReset8Manage_cFlP11DVDFileInfo = .text:0x80068C90; // type:function size:0x48
ResetCallback__Q26dReset8Manage_cFv = .text:0x80068CE0; // type:function size:0x30
PowerCallback__Q26dReset8Manage_cFv = .text:0x80068D10; // type:function size:0x30
CleanUpGX__Q26dReset8Manage_cFv = .text:0x80068D40; // type:function size:0x88
@@ -8513,13 +8513,13 @@ create__18dLytSystemWindow_cFv = .text:0x80152DE0; // type:function size:0x3C
fn_80152E20 = .text:0x80152E20; // type:function size:0xC8
fn_80152EF0 = .text:0x80152EF0; // type:function size:0x8
fn_80152F00 = .text:0x80152F00; // type:function size:0x8
fn_80152F10 = .text:0x80152F10; // type:function size:0x10
fn_80152F10__18dLytSystemWindow_cFv = .text:0x80152F10; // type:function size:0x10
fn_80152F20 = .text:0x80152F20; // type:function size:0x18
setProperties__18dLytSystemWindow_cFPCcbPCw = .text:0x80152F40; // type:function size:0x8
fn_80152F50__18dLytSystemWindow_cCFv = .text:0x80152F50; // type:function size:0x8
fn_80152F60__18dLytSystemWindow_cCFv = .text:0x80152F60; // type:function size:0x8
fn_80152F70__18dLytSystemWindow_cCFv = .text:0x80152F70; // type:function size:0x8
fn_80152F80 = .text:0x80152F80; // type:function size:0x8
fn_80152F80__18dLytSystemWindow_cCFv = .text:0x80152F80; // type:function size:0x8
getField_0xDE0__18dLytSystemWindow_cCFv = .text:0x80152F90; // type:function size:0x8
showMaybe__18dLytSystemWindow_cFl = .text:0x80152FA0; // type:function size:0x8
showMaybe__18dLytSystemWindow_cFv = .text:0x80152FB0; // type:function size:0x8
@@ -10512,9 +10512,9 @@ IconInit__Q24dHbm8Manage_cFv = .text:0x801971A0; // type:function size:0x44
IconCalc__Q24dHbm8Manage_cFv = .text:0x801971F0; // type:function size:0x148
IconClear__Q24dHbm8Manage_cFv = .text:0x80197340; // type:function size:0x14
StopMotor__Q24dHbm8Manage_cFv = .text:0x80197360; // type:function size:0x5C
fn_801973C0 = .text:0x801973C0; // type:function size:0x58
fn_801973C0__Q24dHbm8Manage_cFl = .text:0x801973C0; // type:function size:0x58
ForbidCalc__Q24dHbm8Manage_cFv = .text:0x80197420; // type:function size:0x140
fn_80197560__6dHbm_cFl = .text:0x80197560; // type:function size:0x28
fn_80197560__Q24dHbm8Manage_cFl = .text:0x80197560; // type:function size:0x28
fn_80197590 = .text:0x80197590; // type:function size:0x28
dStageMgr_c_classInit__Fv = .text:0x801975C0; // type:function size:0x34
fn_80197600 = .text:0x80197600; // type:function size:0xA0
@@ -19940,11 +19940,11 @@ getFreeSize__15dSndPlayerMgr_cFv = .text:0x8035DF60; // type:function size:0x54
fn_8035DFC0 = .text:0x8035DFC0; // type:function size:0x3C
fn_8035E000 = .text:0x8035E000; // type:function size:0xD4
fn_8035E0E0 = .text:0x8035E0E0; // type:function size:0xCC
fn_8035E1B0 = .text:0x8035E1B0; // type:function size:0x68
fn_8035E220 = .text:0x8035E220; // type:function size:0x2C
fn_8035E250 = .text:0x8035E250; // type:function size:0x8C
fn_8035E2E0 = .text:0x8035E2E0; // type:function size:0x2C
fn_8035E310 = .text:0x8035E310; // type:function size:0x50
fn_8035E1B0__15dSndPlayerMgr_cFUs = .text:0x8035E1B0; // type:function size:0x68
fn_8035E220__15dSndPlayerMgr_cFv = .text:0x8035E220; // type:function size:0x2C
fn_8035E250__15dSndPlayerMgr_cFUs = .text:0x8035E250; // type:function size:0x8C
fn_8035E2E0__15dSndPlayerMgr_cFv = .text:0x8035E2E0; // type:function size:0x2C
fn_8035E310__15dSndPlayerMgr_cFv = .text:0x8035E310; // type:function size:0x50
enterPauseState__15dSndPlayerMgr_cFv = .text:0x8035E360; // type:function size:0x70
leavePauseState__15dSndPlayerMgr_cFv = .text:0x8035E3D0; // type:function size:0x70
enterMenu__15dSndPlayerMgr_cFv = .text:0x8035E440; // type:function size:0x2C
@@ -19956,7 +19956,7 @@ fn_8035E560 = .text:0x8035E560; // type:function size:0x18
fn_8035E580 = .text:0x8035E580; // type:function size:0x50
fn_8035E5D0 = .text:0x8035E5D0; // type:function size:0x44
fn_8035E620 = .text:0x8035E620; // type:function size:0xB4
fn_8035E6E0 = .text:0x8035E6E0; // type:function size:0xA4
fn_8035E6E0__15dSndPlayerMgr_cFv = .text:0x8035E6E0; // type:function size:0xA4
fn_8035E790 = .text:0x8035E790; // type:function size:0x84
fn_8035E820 = .text:0x8035E820; // type:function size:0x38
fn_8035E860 = .text:0x8035E860; // type:function size:0x14
@@ -22009,12 +22009,12 @@ OSGetSaveRegion = .text:0x803AAE20; // type:function size:0x14
OSRegisterShutdownFunction = .text:0x803AAE40; // type:function size:0x88 scope:global
__OSCallShutdownFunctions = .text:0x803AAED0; // type:function size:0xB0
__OSShutdownDevices = .text:0x803AAF80; // type:function size:0x180 scope:global
fn_803AB100 = .text:0x803AB100; // type:function size:0xE0
fn_803AB1E0 = .text:0x803AB1E0; // type:function size:0x11C
fn_803AB300 = .text:0x803AB300; // type:function size:0xD4
OSRebootSystem = .text:0x803AB100; // type:function size:0xE0
OSShutdownSystem = .text:0x803AB1E0; // type:function size:0x11C
OSRestart = .text:0x803AB300; // type:function size:0xD4
__OSReturnToMenu = .text:0x803AB3E0; // type:function size:0x288 scope:local
OSReturnToMenu = .text:0x803AB670; // type:function size:0x40 scope:global
fn_803AB6B0 = .text:0x803AB6B0; // type:function size:0x40
OSReturnToDataManager = .text:0x803AB6B0; // type:function size:0x40
fn_803AB6F0 = .text:0x803AB6F0; // type:function size:0xA4
fn_803AB7A0 = .text:0x803AB7A0; // type:function size:0x58
OSGetResetCode = .text:0x803AB800; // type:function size:0x30 scope:global
@@ -22070,8 +22070,8 @@ OSUTF32toSJIS = .text:0x803AE130; // type:function size:0x40
__OSGetIPCBufferHi = .text:0x803AE170; // type:function size:0x8
__OSGetIPCBufferLo = .text:0x803AE180; // type:function size:0x8
__OSInitIPCBuffer = .text:0x803AE190; // type:function size:0x18 scope:global
fn_803AE1B0 = .text:0x803AE1B0; // type:function size:0xEC
fn_803AE2A0 = .text:0x803AE2A0; // type:function size:0xEC
OSSetResetCallback = .text:0x803AE1B0; // type:function size:0xEC
OSSetPowerCallback = .text:0x803AE2A0; // type:function size:0xEC
__OSInitSTM = .text:0x803AE390; // type:function size:0x118 scope:global
fn_803AE4B0 = .text:0x803AE4B0; // type:function size:0x7C
__OSHotReset = .text:0x803AE530; // type:function size:0x74 scope:global
@@ -28214,8 +28214,8 @@ lbl_804E0E3C = .rodata:0x804E0E3C; // type:object size:0x3C
lbl_804E0E78 = .rodata:0x804E0E78; // type:object size:0x3C
lbl_804E0EB4 = .rodata:0x804E0EB4; // type:object size:0x3C
lbl_804E0EF0 = .rodata:0x804E0EF0; // type:object size:0x28
lbl_804E0F18 = .rodata:0x804E0F18; // type:object size:0x48
lbl_804E0F60 = .rodata:0x804E0F60; // type:object size:0x48
@LOCAL@ModeProc__Q26dReset8Manage_cFv@procs = .rodata:0x804E0F18; // type:object size:0x48
@LOCAL@ModeRequest__Q26dReset8Manage_cFQ36dReset8Manage_c6Mode_e@procs = .rodata:0x804E0F60; // type:object size:0x48
sInfos = .rodata:0x804E0FA8; // type:object size:0x246C scope:local data:4byte
lbl_804E3418 = .rodata:0x804E3418; // type:object size:0x40 data:4byte
lbl_804E3458 = .rodata:0x804E3458; // type:object size:0x38 data:4byte
@@ -41338,7 +41338,7 @@ sInstance__18ArcCallbackHandler = .sbss:0x80575250; // type:object size:0x8 data
aspectRatio = .sbss:0x80575258; // type:object size:0x4 align:4 data:float
sInstance__8dCsMgr_c = .sbss:0x80575260; // type:object size:0x4 data:4byte
spInstance__9dRumble_c = .sbss:0x80575268; // type:object size:0x4 data:4byte
c_faderColor__Q26dReset8Manage_c = .sbss:0x80575270; // type:object size:0x1 data:byte
c_faderColor__Q26dReset8Manage_c = .sbss:0x80575270; // type:object size:0x4 data:byte
s_pInstance__Q26dReset8Manage_c = .sbss:0x80575274; // type:object size:0x4 data:4byte
sInstance__22CurrentStageArcManager = .sbss:0x80575278; // type:object size:0x4 data:4byte
@GUARD@getCurrentStageDirectory__22CurrentStageArcManagerFv@sStageDirTmp = .sbss:0x8057527C; // type:object size:0x1 scope:local data:byte
@@ -41524,7 +41524,7 @@ lbl_805756A0 = .sbss:0x805756A0; // type:object size:0x4 data:4byte
lbl_805756A4 = .sbss:0x805756A4; // type:object size:0x4 data:4byte
sInstance__19GoddessChestCounter = .sbss:0x805756A8; // type:object size:0x8 data:4byte
sInstance__9dScBoot_c = .sbss:0x805756B0; // type:object size:0x4 data:4byte
lbl_805756B4 = .sbss:0x805756B4; // type:object size:0x4 data:4byte
sInstance__11dTitleMgr_c = .sbss:0x805756B4; // type:object size:0x4 data:4byte
TITLE_SCREEN_CHANGE = .sbss:0x805756B8; // type:object size:0x4 data:4byte
sInstance__10dTgSiren_c = .sbss:0x805756BC; // type:object size:0x4 data:4byte
WEATHER_TAG = .sbss:0x805756C0; // type:object size:0x8 data:4byte
+3
View File
@@ -28,6 +28,9 @@ public:
void setField704(bool val) {
field_0x704 = val;
}
void setField705(bool val) {
field_0x705 = val;
}
dCursorHitCheck_c *getHitCheck() {
return mCursorIf.getHit();
+5 -2
View File
@@ -21,6 +21,9 @@ public:
static void create(EGG::Heap *heap);
void init();
void fn_800529B0();
void fn_800529E0();
void fn_80052A20();
void fn_80052D00(bool);
void fn_80052D50();
void fn_80052C90();
@@ -30,7 +33,7 @@ public:
return field_0x24;
}
u8 getField_0x28() const {
bool getField_0x28() const {
return field_0x28;
}
@@ -53,7 +56,7 @@ private:
/* 0x1C */ s32 field_0x1C;
/* 0x20 */ s32 field_0x20;
/* 0x24 */ s32 field_0x24;
/* 0x28 */ u8 field_0x28;
/* 0x28 */ bool field_0x28;
/* 0x29 */ u8 field_0x29;
/* 0x2A */ u8 field_0x2A;
/* 0x2B */ u8 field_0x2B;
+11 -2
View File
@@ -1,4 +1,5 @@
#include "common.h"
#include "egg/core/eggHeap.h"
namespace dHbm {
class Manage_c {
@@ -28,6 +29,7 @@ public:
void IconCalc();
void IconClear();
void StopMotor();
bool fn_801973C0(s32);
void ForbidCalc();
s32 fn_80197560(s32);
@@ -35,9 +37,16 @@ public:
mFlags &= ~flags;
}
UNKWORD getField_0x210() const {
return field_0x210;
}
private:
static Manage_c *s_pInstance;
u8 _0x00[0x218 - 0x000];
u32 mFlags;
/* 0x000 */ u8 _0x00[0x210 - 0x000];
/* 0x210 */ UNKWORD field_0x210;
/* 0x218 */ UNKWORD field_0x214;
/* 0x218 */ u32 mFlags;
};
} // namespace dHbm
+75 -27
View File
@@ -2,20 +2,34 @@
#define RELOAD_COLOR_FADER_H
#include "common.h"
#include "egg/core/eggColorFader.h"
#include "egg/core/eggFader.h"
#include "egg/core/eggHeap.h"
#include "m/m_color.h"
namespace dReset {
class Manage_c {
public:
enum Mode_c {
// TODO
enum Mode_e {
Normal = 0,
SoftReset = 1,
HbmWait = 2,
DiskWait = 3,
FatalError = 4,
SafetyWait = 5,
};
enum Exec_c {
// TODO
enum Exec_e {
Restart = 0,
Reboot = 1,
ReturnToMenu = 2,
ReturnToDataManager = 3,
Shutdown = 4,
ExecNone = 5,
};
static void CreateInstance(EGG::Heap *);
static Manage_c *GetInstance();
Manage_c(EGG::Heap *);
void Configure();
void Reset();
@@ -32,28 +46,28 @@ public:
void SetDelayReset();
void SetDelayPowerOff();
void SetInteriorReturnDataManager();
// fn_80067FF0
void fn_80067FF0();
void ExecProcPre();
// fn_80068070
void fn_80068070();
void ExecProcMain();
void DiskCheckModeRequest();
void DiskCheckModeRequest(bool);
void DebugPrintMode(const char *);
void ModeProc();
void ModeRequest(Mode_c);
void ModeRequestSafetyWait(Exec_c);
void ModeRequest(Mode_e);
void ModeRequestSafetyWait(Exec_e);
void ModeRequestSoftReset();
void ModeInit_Normal();
void ModeProc_Normal();
void ModtInit_SoftReset();
void ModtProc_SoftReset();
void ModeInit_SoftReset();
void ModeProc_SoftReset();
void ModtInit_HbmWait();
void ModtProc_HbmWait();
void ModeInit_HbmWait();
void ModeProc_HbmWait();
void ModtInit_DiscWait();
void ModtProc_DiscWait();
void ModeInit_DiskWait();
void ModeProc_DiskWait();
void ModeInit_FatalError();
void ModeProc_FatalError();
@@ -63,33 +77,67 @@ public:
void SetResetCallback();
void SetPowerCallback();
// fn_80068C70
// fn_80068C90
void SetDiskCheckCallback();
static void DiskCheckCallback(s32 b, struct DVDFileInfo *info);
static void ResetCallback();
static void PowerCallback();
void CleanUpGX();
void CleanUpLC();
void MotorCancelOn();
void MotorCancelOff();
bool IsFatalError();
bool IsDiskError();
EGG::Fader::EStatus FadeOutCalc();
static bool IsFatalError();
static bool IsDiskError();
bool FadeOutCalc();
void FadeOutRequest(bool fadeout);
bool is1Or5() const {
return field_0x0C == 1 || field_0x0C == 5;
bool isSoftResetOrSafetyWait() const {
return mMode == SoftReset || mMode == SafetyWait;
}
s32 get0x0C() const {
return field_0x0C;
bool isNormal() const {
return mMode == Normal;
}
bool isSoftReset() const {
return mMode == SoftReset;
}
bool isHbmWait() const {
return mMode == HbmWait;
}
bool isDiskWait() const {
return mMode == DiskWait;
}
bool isFatalError() const {
return mMode == FatalError;
}
bool isSafetyWait() const {
return mMode == SafetyWait;
}
private:
/* 0x00 */ EGG::Heap *mpHeap;
/* 0x04 */ EGG::ColorFader *mpFader;
/* 0x08 */ EGG::ColorFader::EStatus mFaderStatusPrev;
/* 0x0C */ Mode_e mMode;
/* 0x10 */ UNKWORD field_0x10;
/* 0x14 */ Mode_e mModePrev;
/* 0x18 */ Exec_e mExec;
/* 0x1C */ UNKWORD field_0x1C;
/* 0x20 */ DVDCommandBlock mDvdCmd;
/* 0x50 */ bool mHbmReset;
/* 0x51 */ bool mHbmReturnMenu;
/* 0x52 */ bool mRestart;
/* 0x53 */ bool mShutdown;
/* 0x54 */ bool mInteriorReturnDataManager;
/* 0x58 */ UNKWORD field_0x58;
/* 0x5C */ UNKWORD field_0x5C;
/* 0x60 */ UNKWORD field_0x60;
/* 0x64 */ u8 mBootComplete;
/* 0x65 */ u8 mSoftReset;
/* 0x66 */ u8 field_0x66;
/* 0x67 */ u8 field_0x67;
static Manage_c *s_pInstance;
static mColor c_faderColor;
u8 field_0x00[0x0C - 0x00];
s32 field_0x0C;
};
} // namespace dReset
+19
View File
@@ -24,6 +24,25 @@ public:
return sInstance;
}
u8 getField_0x5E2() const {
return field_0x5E2;
}
void setField_0x5E2(u8 val) {
field_0x5E2 = val;
}
u8 getField_0x5E3() const {
return field_0x5E3;
}
void setField_0x5E3(u8 val) {
field_0x5E3 = val;
}
u8 getField_0x5E4() const {
return field_0x5E4;
}
void setField_0x5E4(u8 val) {
field_0x5E4 = val;
}
private:
static dScBoot_c *sInstance;
class strap_c {
+11
View File
@@ -17,7 +17,18 @@ public:
STATE_FUNC_DECLARE(dTitleMgr_c, FileSelect);
STATE_FUNC_DECLARE(dTitleMgr_c, Input);
static dTitleMgr_c *GetInstance() {
return sInstance;
}
u8 getField_0xBC() const {
return field_0xBC;
}
private:
static dTitleMgr_c *sInstance;
/* 0x68 */ u8 _0x68[0xBC - 0x68];
/* 0xBC */ u8 field_0xBC;
/* 0x??? */ STATE_MGR_DECLARE(dTitleMgr_c);
};
+2
View File
@@ -23,9 +23,11 @@ public:
s32 getField_0xDE0() const;
bool getField_0xDFC() const;
void fn_80152F10();
bool fn_80152F50() const;
bool fn_80152F60() const;
bool fn_80152F70() const;
bool fn_80152F80() const;
private:
static dLytSystemWindow_c *sInstance;
+7
View File
@@ -39,6 +39,13 @@ public:
void enterHbm();
void leaveHbm();
void fn_8035E1B0(u16);
bool fn_8035E220();
void fn_8035E250(u16);
bool fn_8035E2E0();
void fn_8035E310();
void fn_8035E6E0();
u32 getFreeSize();
bool loadDemoArchive(const char *demoArchiveName);
const char *getSoundArchivePath();
+2 -2
View File
@@ -4,8 +4,8 @@
#include "common.h"
#include "egg/core/eggFader.h"
#include "egg/prim/eggBitFlag.h"
#include "nw4r/ut.h"
#include "nw4r/ut.h"
namespace EGG {
@@ -20,7 +20,7 @@ public:
/* vt 0x14 */ virtual bool fadeOut();
/* vt 0x18 */ virtual bool calc();
/* vt 0x1C */ virtual void draw();
/* vt 0x1C */ virtual ~ColorFader() {}
/* vt 0x20 */ virtual ~ColorFader() {}
public:
/* 0x04 */ EStatus mStatus;
+4 -1
View File
@@ -25,9 +25,12 @@ enum Button {
BUTTON_C = 0x4000,
};
inline EGG::CoreController *getCore(int i) {
inline EGG::CoreController *getCore(const int i) {
return g_core[i];
}
inline void stopRumbleMgr(int i) {
g_core[i]->stopRumbleMgr();
}
inline EGG::CoreController *getCore() {
return g_currentCore;
}
+20 -20
View File
@@ -22,30 +22,29 @@ typedef enum {
DVD_RESULT_OK,
} DVDResult;
#define DVD_ESUCCESS DVD_RESULT_OK
#define DVD_EFATAL DVD_RESULT_FATAL
#define DVD_ECANCELED DVD_RESULT_CANCELED
#define DVD_ECOVER DVD_RESULT_COVER_CLOSED
#define DVD_ESUCCESS DVD_RESULT_OK
#define DVD_EFATAL DVD_RESULT_FATAL
#define DVD_ECANCELED DVD_RESULT_CANCELED
#define DVD_ECOVER DVD_RESULT_COVER_CLOSED
typedef long DVDState;
enum DVDState_et
{
DVD_STATE_IDLE = 0,
enum DVDState_et {
DVD_STATE_IDLE = 0,
DVD_STATE_BUSY = 1,
DVD_STATE_WAITING = 2,
DVD_STATE_COVER_CLOSED = 3,
DVD_STATE_NO_DISK = 4,
DVD_STATE_COVER_OPENED = 5,
DVD_STATE_WRONG_DISK_ID = 6,
DVD_STATE_7 = 7,
DVD_STATE_PAUSED = 8,
DVD_STATE_9 = 9,
DVD_STATE_CANCELED = 10,
DVD_STATE_DISK_ERROR = 11,
DVD_STATE_MOTOR_STOPPED = 12,
DVD_STATE_BUSY = 1,
DVD_STATE_WAITING = 2,
DVD_STATE_COVER_CLOSED = 3,
DVD_STATE_NO_DISK = 4,
DVD_STATE_COVER_OPENED = 5,
DVD_STATE_WRONG_DISK_ID = 6,
DVD_STATE_7 = 7,
DVD_STATE_PAUSED = 8,
DVD_STATE_9 = 9,
DVD_STATE_CANCELED = 10,
DVD_STATE_DISK_ERROR = 11,
DVD_STATE_MOTOR_STOPPED = 12,
DVD_STATE_FATAL = -1,
DVD_STATE_FATAL = -1,
};
typedef enum {
@@ -110,6 +109,7 @@ s32 DVDGetDriveStatus(void);
void DVDPause(void);
void DVDResume(void);
BOOL DVDCancelAsync(DVDCommandBlock *block, DVDCommandCallback callback);
BOOL DVDCheckDiskAsync(DVDCommandBlock *block, DVDAsyncCallback callback);
s32 DVDCancel(DVDCommandBlock *block);
BOOL DVDCancelAllAsync(DVDCommandCallback callback);
const DVDDiskID *DVDGetCurrentDiskID(void);
+5
View File
@@ -2,6 +2,7 @@
#define RVL_SDK_GX_FIFO_H
#include "common.h"
#include "rvl/GX/GXInternal.h"
#include "rvl/OS/OSThread.h"
#ifdef __cplusplus
extern "C" {
@@ -15,6 +16,10 @@ BOOL GXGetCPUFifo(GXFifoObj *);
u32 GXGetFifoCount(GXFifoObj *);
u8 GXGetFifoWrap(GXFifoObj *);
// IDK where this goes
OSThread *GXSetCurrentGXThread();
OSThread *GXGetCurrentGXThread();
void GXSetDrawDoneCallback(void *);
#ifdef __cplusplus
}
#endif
+4
View File
@@ -40,6 +40,10 @@ void OSReturnToMenu(void);
u32 OSGetResetCode(void);
void OSResetSystem(u32 arg0, u32 arg1, u32 arg2);
void OSRestart(u32);
void OSRebootSystem(void);
void OSReturnToDataManager(void);
#ifdef __cplusplus
}
#endif
+3 -1
View File
@@ -342,7 +342,9 @@ public:
u8 getField_0xA843() const {
return mIsFileInvalid[1];
}
u8 getField_0xA84D() const {
return m_0xA84D;
}
void setField0xA84C(u8 val) {
m_0xA84C = val;
+1 -2
View File
@@ -13,7 +13,6 @@ class dSndSound_c;
#define BGM_MGR (dSndPlayerMgr_c::GetInstance())
extern "C" void fn_8035E000();
extern "C" void fn_8035E860(dSndPlayerMgr_c *);
extern "C" void fn_8035E310(dSndPlayerMgr_c *);
extern "C" void fn_8035E820(dSndPlayerMgr_c *);
extern "C" void fn_8035E880(dSndPlayerMgr_c *);
extern "C" void fn_8035E790(dSndPlayerMgr_c *, UNKWORD, void *);
@@ -45,6 +44,6 @@ extern "C" bool fn_80373550(void *, u32);
extern "C" void fn_80372920(void *);
extern "C" void fn_803738B0(void *, dSndSound_c *sound);
extern "C" void fn_80373900(void *, dSndSound_c *sound);
extern "C" bool fn_803733B0(void*, u32);
extern "C" bool fn_803733B0(void *, u32);
#endif
+14 -2
View File
@@ -124,6 +124,20 @@ public:
return sInstance;
}
bool getField_0x83D() const {
return field_0x83D;
}
bool getField_0x83F() const {
return field_0x83F;
}
s32 getCheckForFreeSpaceResult() const {
return mCheckForFreeSpaceResult;
}
bool isInState() {
return mCurrentState != STATE_MAX;
}
void init();
void createSaveMsgWindow();
void execute();
void draw();
@@ -191,7 +205,6 @@ private:
SaveMgr();
~SaveMgr();
void init();
void beginState(SaveMgrState_e state);
void endState();
@@ -226,5 +239,4 @@ private:
static SaveMgr *sInstance;
};
#endif
+1 -1
View File
@@ -499,7 +499,7 @@ void dScBoot_c::executeState_Strap() {
case 1:
if (!checkDone()) {
bool ok = mStrapScreen.execute();
if (dReset::Manage_c::GetInstance()->get0x0C() == 1) {
if (dReset::Manage_c::GetInstance()->isSoftReset()) {
ok = false;
}
+1 -2
View File
@@ -9,7 +9,6 @@
#include "m/m_mtx.h"
#include "m/m_vec.h"
/** 805750d0 */
dDvdDriveError_c *dDvdDriveError_c::sInstance;
@@ -146,7 +145,7 @@ void dDvdDriveError_c::execute() {
dDvdUnk::FontUnk::GetInstance()->fn_80052C60();
}
} else if (mDvdDriveStatus == DVD_STATE_IDLE) {
if (!dReset::Manage_c::GetInstance()->is1Or5()) {
if (!dReset::Manage_c::GetInstance()->isSoftResetOrSafetyWait()) {
mIsError = false;
}
}
+592 -1
View File
@@ -1,14 +1,605 @@
#include "d/d_reset.h"
#include "common.h"
#include "d/d_cs_base.h"
#include "d/d_dvd_unk.h"
#include "d/d_hbm.h"
#include "d/d_rumble.h"
#include "d/d_s_boot.h"
#include "d/d_sc_title.h"
#include "d/d_title_manager.h"
#include "d/lyt/d_lyt_system_window.h"
#include "d/snd/d_snd_player_mgr.h"
#include "egg/core/eggColorFader.h"
#include "egg/core/eggController.h"
#include "egg/core/eggFader.h"
#include "egg/core/eggHeap.h"
#include "m/m_color.h"
#include "m/m_pad.h"
#include "m/m_video.h"
#include "rvl/GX/GXDraw.h"
#include "rvl/GX/GXMisc.h"
#include "rvl/OS/OSCache.h"
#include "rvl/OS/OSInterrupt.h"
#include "rvl/OS/OSReset.h"
#include "rvl/OS/OSStateTM.h"
#include "rvl/OS/OSThread.h"
#include "rvl/VI/vi.h"
#include "toBeSorted/file_manager.h"
#include "toBeSorted/save_manager.h"
#include "rvl/OS.h"
namespace dReset {
Manage_c *Manage_c::s_pInstance;
mColor Manage_c::c_faderColor(0, 0, 0, 0xFF);
Manage_c *Manage_c::s_pInstance;
void Manage_c::CreateInstance(EGG::Heap *pHeap) {
s_pInstance = new (pHeap) Manage_c(pHeap);
}
Manage_c *Manage_c::GetInstance() {
return s_pInstance;
}
Manage_c::Manage_c(EGG::Heap *pHeap) {
mpHeap = pHeap;
mpFader = nullptr;
mMode = Normal;
field_0x10 = 0;
mModePrev = Normal;
mExec = ExecNone;
field_0x1C = 0;
mHbmReset = false;
mHbmReturnMenu = false;
mRestart = false;
mShutdown = false;
mInteriorReturnDataManager = false;
field_0x58 = 0;
field_0x5C = 0;
field_0x60 = 0;
mBootComplete = 0;
mSoftReset = 0;
field_0x66 = 0;
field_0x67 = 0;
Configure();
}
void Manage_c::Configure() {
mpFader = new (mpHeap) EGG::ColorFader(
0.f, 0.f, mVideo::m_video->pRenderMode->fbWidth, mVideo::m_video->pRenderMode->efbHeight, c_faderColor,
EGG::ColorFader::STATUS_PREPARE_OUT
);
SetResetCallback();
SetPowerCallback();
}
void Manage_c::Reset() {
mMode = Normal;
field_0x10 = 0;
mExec = ExecNone;
field_0x1C = 0;
SetResetCallback();
SetPowerCallback();
mHbmReset = false;
mHbmReturnMenu = false;
mRestart = false;
mShutdown = false;
mInteriorReturnDataManager = false;
field_0x58 = 0;
field_0x5C = 0;
field_0x60 = 0;
mSoftReset = 0;
field_0x67 = 0;
}
void Manage_c::Calculate() {
ModeProc();
if (!SaveMgr::GetInstance()->getField_0x83D() && !SaveMgr::GetInstance()->getField_0x83F()) {
if (FileManager::GetInstance()->getField_0xA84D() != 1) {
mpFader->calc();
}
}
}
void Manage_c::Draw() {
mpFader->draw();
}
void Manage_c::BootComplete(bool complete) {
mBootComplete = complete;
}
bool Manage_c::CanExecSoftReset() const {
return mMode == SoftReset && mpFader->getStatus() == EGG::Fader::STATUS_PREPARE_IN && field_0x60 == 0 &&
dHbm::Manage_c::GetInstance()->getField_0x210() != 2 && dSndPlayerMgr_c::GetInstance()->fn_8035E2E0() &&
FileManager::GetInstance()->getField_0xA84D() != 1;
}
void Manage_c::SetSoftResetFinish() {
if (mMode == SoftReset) {
if (field_0x60 == 1) {
field_0x60 = 2;
}
}
}
void Manage_c::SetSoftResetScene() {
if (CanExecSoftReset() && dScBoot_c::GetInstance() == nullptr) {
dScTitle_c::loadTitleScreen(0);
field_0x60 = 1;
}
}
void Manage_c::PostDeleteScene() {}
bool Manage_c::IsFaderBlank() const {
return mpFader->getStatus() == EGG::Fader::STATUS_PREPARE_IN;
}
void Manage_c::SetHbmReturnMenu() {
mHbmReturnMenu = true;
}
void Manage_c::SetHbmReset() {
mHbmReset = true;
}
void Manage_c::SetDelayReset() {
field_0x58 = 2;
}
void Manage_c::SetDelayPowerOff() {
field_0x5C = 2;
}
void Manage_c::SetInteriorReturnDataManager() {
mInteriorReturnDataManager = true;
}
void Manage_c::fn_80067FF0() {
MotorCancelOn();
CleanUpGX();
CleanUpLC();
}
void Manage_c::ExecProcPre() {
CleanUpGX();
CleanUpLC();
}
void Manage_c::fn_80068070() {
ExecProcMain();
}
void Manage_c::ExecProcMain() {
if (mExec == Restart) {
OSRestart(0);
} else if (mExec == Reboot) {
OSRebootSystem();
} else if (mExec == ReturnToMenu) {
OSReturnToMenu();
} else if (mExec == ReturnToDataManager) {
OSReturnToDataManager();
} else if (mExec == Shutdown) {
OSShutdownSystem();
}
}
void Manage_c::DiskCheckModeRequest(bool) {
if (mBootComplete) {
SetDiskCheckCallback();
while (true) {
if (field_0x1C == 2) {
ModeRequestSafetyWait(ReturnToMenu);
return;
} else if (field_0x1C == 1) {
ModeRequestSoftReset();
return;
} else {
VIWaitForRetrace();
}
}
} else {
SetDiskCheckCallback();
while (true) {
if (field_0x1C == 2) {
ModeRequestSafetyWait(ReturnToMenu);
return;
} else if (field_0x1C != 1) {
VIWaitForRetrace();
} else {
if (dScBoot_c::GetInstance()) {
ModeRequestSoftReset();
dHbm::Manage_c::GetInstance()->fn_80197560(1);
field_0x1C = 0;
}
return;
}
}
}
}
void Manage_c::DebugPrintMode(const char *) {}
void Manage_c::ModeProc() {
bool fatalErr = IsFatalError();
bool diskErr = IsDiskError();
if (fatalErr) {
if (mMode != FatalError) {
ModeRequest(FatalError);
}
} else if (diskErr) {
if (mMode != DiskWait && mMode != SafetyWait) {
ModeRequest(DiskWait);
}
} else if (mMode == Normal && dHbm::Manage_c::GetInstance()->getField_0x210() == 2) {
ModeRequest(HbmWait);
}
static void (Manage_c::*const procs[6])() = {
&Manage_c::ModeProc_Normal, &Manage_c::ModeProc_SoftReset, &Manage_c::ModeProc_HbmWait,
&Manage_c::ModeProc_DiskWait, &Manage_c::ModeProc_FatalError, &Manage_c::ModeProc_SafetyWait,
};
(this->*procs[mMode])();
if (mRestart) {
SetResetCallback();
}
if (mShutdown) {
SetPowerCallback();
}
mHbmReset = false;
mHbmReturnMenu = false;
mRestart = false;
mShutdown = false;
mInteriorReturnDataManager = false;
}
void Manage_c::ModeRequest(Manage_c::Mode_e mode) {
mModePrev = mMode;
mMode = mode;
static void (Manage_c::*const procs[6])() = {
&Manage_c::ModeInit_Normal, &Manage_c::ModeInit_SoftReset, &Manage_c::ModeInit_HbmWait,
&Manage_c::ModeInit_DiskWait, &Manage_c::ModeInit_FatalError, &Manage_c::ModeInit_SafetyWait,
};
(this->*procs[mMode])();
}
void Manage_c::ModeRequestSafetyWait(Manage_c::Exec_e exec) {
ModeRequest(SafetyWait);
mExec = exec;
MotorCancelOn();
}
void Manage_c::ModeRequestSoftReset() {
mSoftReset = 1;
ModeRequest(SoftReset);
MotorCancelOn();
}
void Manage_c::ModeInit_Normal() {
DebugPrintMode("Normal");
mExec = ExecNone;
}
void Manage_c::ModeProc_Normal() {
Exec_e exec;
if (mShutdown) {
ModeRequestSafetyWait(Shutdown);
} else if (mInteriorReturnDataManager) {
ModeRequestSafetyWait(ReturnToDataManager);
} else if (mRestart) {
DiskCheckModeRequest(false);
}
}
extern "C" void fn_803267B0(s32, s32);
void Manage_c::ModeInit_SoftReset() {
DebugPrintMode("SoftReset");
if (mSoftReset) {
mSoftReset = false;
if (dScBoot_c::GetInstance()) {
mpFader->setFrame(30);
mpFader->fadeOut();
field_0x66 = true;
dSndPlayerMgr_c::GetInstance()->fn_8035E250(30);
} else {
field_0x60 = 0;
if (dTitleMgr_c::GetInstance()) {
if (dTitleMgr_c::GetInstance()->getField_0xBC() == 0) {
dSndPlayerMgr_c::GetInstance()->fn_8035E250(30);
}
} else {
dSndPlayerMgr_c::GetInstance()->fn_8035E250(30);
}
fn_803267B0(0, 60);
mpFader->setFrame(30);
mpFader->fadeOut();
field_0x66 = true;
field_0x67 = false;
}
}
}
void Manage_c::ModeProc_SoftReset() {
if (dScBoot_c::GetInstance()) {
if (mpFader->getStatus() == EGG::ColorFader::STATUS_PREPARE_IN) {
if (dScBoot_c::GetInstance()->getField_0x5E4()) {
dScBoot_c::GetInstance()->setField_0x5E4(0);
mpFader->setStatus(EGG::ColorFader::STATUS_PREPARE_OUT);
ModeRequest(Normal);
dSndPlayerMgr_c::GetInstance()->fn_8035E310();
} else {
if (field_0x66) {
dScBoot_c::GetInstance()->setField_0x5E3(1);
dDvdUnk::FontUnk::GetInstance()->fn_800529B0();
dSndPlayerMgr_c::GetInstance()->fn_8035E6E0();
if (dDvdUnk::FontUnk::GetInstance()->getField_0x29() ||
dDvdUnk::FontUnk::GetInstance()->getField_0x24() ||
SaveMgr::GetInstance()->getCheckForFreeSpaceResult()) {
dScBoot_c::GetInstance()->setField_0x5E3(0);
dScBoot_c::GetInstance()->setField_0x5E2(1);
dDvdUnk::FontUnk::GetInstance()->fn_800529E0();
}
dDvdUnk::FontUnk::GetInstance()->fn_80052A20();
}
field_0x66 = false;
}
}
} else if (dTitleMgr_c::GetInstance() == nullptr || dTitleMgr_c::GetInstance()->getField_0xBC() == 0) {
if (field_0x66 && mpFader->getStatus() == EGG::ColorFader::STATUS_PREPARE_IN) {
dDvdUnk::FontUnk::GetInstance()->fn_800529B0();
dDvdUnk::FontUnk::GetInstance()->fn_80052A20();
dCsBase_c::GetInstance()->setField703(false);
dCsBase_c::GetInstance()->setField704(false);
dCsBase_c::GetInstance()->setField705(false);
field_0x66 = false;
}
if (mpFader->getStatus() == EGG::Fader::STATUS_PREPARE_IN && field_0x60 == 2) {
if (field_0x67 == 0) {
if (SaveMgr::GetInstance()->isInState()) {
SaveMgr::GetInstance()->init();
}
if (dLytSystemWindow_c::GetInstance()->fn_80152F80()) {
dLytSystemWindow_c::GetInstance()->fn_80152F10();
}
field_0x67++;
} else {
mpFader->setStatus(EGG::Fader::STATUS_PREPARE_OUT);
VISetBlack(FALSE);
MotorCancelOff();
Reset();
}
}
}
}
void Manage_c::ModeInit_HbmWait() {
DebugPrintMode("HbmWait");
}
void Manage_c::ModeProc_HbmWait() {
bool doFade = false;
if (field_0x5C == 0 && field_0x58 == 0) {
if (mHbmReturnMenu) {
ModeRequestSafetyWait(ReturnToMenu);
} else if (mHbmReset) {
DiskCheckModeRequest(true);
doFade = true;
} else {
if (dHbm::Manage_c::GetInstance()->getField_0x210() != 2) {
if (mShutdown) {
ModeRequestSafetyWait(Shutdown);
} else if (mRestart) {
DiskCheckModeRequest(false);
} else {
ModeRequest(Normal);
}
} else {
if (mShutdown) {
if (dHbm::Manage_c::GetInstance()->fn_801973C0(2)) {
field_0x5C = 1;
}
} else if (mRestart) {
if (dHbm::Manage_c::GetInstance()->fn_801973C0(1)) {
field_0x58 = 1;
}
}
}
}
} else if (field_0x5C == 2) {
field_0x5C = 0;
ModeRequestSafetyWait(Shutdown);
doFade = true;
} else if (field_0x58 == 2) {
field_0x58 = 0;
DiskCheckModeRequest(false);
doFade = true;
}
if (doFade) {
mpFader->setStatus(EGG::Fader::STATUS_PREPARE_IN);
}
}
void Manage_c::ModeInit_DiskWait() {
if (dScBoot_c::GetInstance()) {
mFaderStatusPrev = mpFader->getStatus();
mpFader->setStatus(EGG::Fader::STATUS_PREPARE_OUT);
} else {
if (mModePrev == SoftReset) {
mpFader->setStatus(EGG::Fader::STATUS_PREPARE_OUT);
}
}
DebugPrintMode("DiskWait");
}
void Manage_c::ModeProc_DiskWait() {
if (IsDiskError()) {
if (mShutdown) {
ModeRequestSafetyWait(Shutdown);
} else if (mRestart) {
ModeRequestSafetyWait(ReturnToMenu);
}
} else {
if (dScBoot_c::GetInstance()) {
if (mFaderStatusPrev == EGG::Fader::STATUS_PREPARE_IN) {
mpFader->setStatus(EGG::Fader::STATUS_PREPARE_IN);
} else if (mFaderStatusPrev == EGG::Fader::STATUS_PREPARE_OUT) {
mpFader->setStatus(EGG::Fader::STATUS_PREPARE_OUT);
} else if (mFaderStatusPrev == EGG::Fader::STATUS_FADE_IN) {
mpFader->setStatus(EGG::Fader::STATUS_PREPARE_OUT);
} else {
mpFader->setStatus(EGG::Fader::STATUS_PREPARE_IN);
}
} else {
if (mModePrev == SoftReset) {
mpFader->setStatus(EGG::Fader::STATUS_PREPARE_IN);
}
}
ModeRequest(mModePrev);
}
}
void Manage_c::ModeInit_FatalError() {
DebugPrintMode("FatalError");
}
void Manage_c::ModeProc_FatalError() {}
void Manage_c::ModeInit_SafetyWait() {
DebugPrintMode("SafetyWait");
dSndPlayerMgr_c::GetInstance()->fn_8035E1B0(30);
mpFader->setFrame(30);
mpFader->fadeOut();
}
void Manage_c::ModeProc_SafetyWait() {
if (mpFader->getStatus() == EGG::Fader::STATUS_PREPARE_IN) {
bool b = dSndPlayerMgr_c::GetInstance()->fn_8035E220() && !FileManager::GetInstance()->getField_0xA84D();
if (b) {
ExecProcPre();
fn_80068070();
}
}
if (SaveMgr::GetInstance()->getField_0x83D() || SaveMgr::GetInstance()->getField_0x83F() ||
FileManager::GetInstance()->getField_0xA84D() == 1) {
if (FileManager::GetInstance()->getField_0xA84D() != 1) {
mpFader->calc();
}
}
}
void Manage_c::SetResetCallback() {
OSSetResetCallback(ResetCallback);
}
void Manage_c::SetPowerCallback() {
OSSetPowerCallback(PowerCallback);
}
void Manage_c::SetDiskCheckCallback() {
field_0x1C = 0;
DVDCheckDiskAsync(&mDvdCmd, DiskCheckCallback);
}
void Manage_c::DiskCheckCallback(s32 result, struct DVDFileInfo *info) {
if (result == 0) {
GetInstance()->field_0x1C = 2;
} else {
GetInstance()->field_0x1C = 1;
}
};
void Manage_c::ResetCallback() {
GetInstance()->mRestart = true;
};
void Manage_c::PowerCallback() {
GetInstance()->mShutdown = true;
};
void Manage_c::CleanUpGX() {
VISetBlack(TRUE);
VIFlush();
VIWaitForRetrace();
VIWaitForRetrace();
OSThread *thread = GXGetCurrentGXThread();
BOOL status = OSDisableInterrupts();
if (thread != OSGetCurrentThread()) {
OSCancelThread(thread);
GXSetCurrentGXThread();
}
GXFlush();
GXAbortFrame();
GXDrawDone();
OSRestoreInterrupts(status);
GXSetDrawDoneCallback(0);
VIWaitForRetrace();
}
void Manage_c::CleanUpLC() {
LCDisable();
}
void Manage_c::MotorCancelOn() {
// Huh
for (int i = 0; i < 4;) {
mPad::g_core[i++]->stopRumbleMgr();
}
dRumble_c::stop(-1);
}
void Manage_c::MotorCancelOff() {}
bool Manage_c::IsFatalError() {
return false;
}
bool Manage_c::IsDiskError() {
return dDvdUnk::FontUnk::GetInstance()->getField_0x28();
}
bool Manage_c::FadeOutCalc() {
if (mpFader->getStatus() == EGG::Fader::STATUS_PREPARE_IN ||
mpFader->getStatus() == EGG::Fader::STATUS_PREPARE_OUT) {
return false;
} else {
return true;
}
}
void Manage_c::FadeOutRequest(bool fade) {
if (!fade) {
dDvdUnk::FontUnk::GetInstance()->fn_800529B0();
dDvdUnk::FontUnk::GetInstance()->fn_80052A20();
dCsBase_c::GetInstance()->setField703(false);
dCsBase_c::GetInstance()->setField704(false);
dCsBase_c::GetInstance()->setField705(false);
field_0x66 = 0;
if (SaveMgr::GetInstance()->isInState()) {
SaveMgr::GetInstance()->init();
}
if (dLytSystemWindow_c::GetInstance()->fn_80152F80()) {
dLytSystemWindow_c::GetInstance()->fn_80152F10();
}
} else {
mpFader->setStatus(EGG::Fader::STATUS_PREPARE_OUT);
VISetBlack(FALSE);
MotorCancelOff();
Reset();
}
}
} // namespace dReset
+1 -2
View File
@@ -6,7 +6,6 @@
#include "d/lyt/d_lyt_control_game.h"
#include "m/m_pad.h"
dRumbleEntry_c dRumble_c::sRumblePreset0(8, 0b11000000000000000000000000000000, 2.f);
dRumbleEntry_c dRumble_c::sRumblePreset1(9, 0b11010000000000000000000000000000, 4.f);
dRumbleEntry_c dRumble_c::sRumblePreset2(10, 0b11101100000000000000000000000000, 6.f);
@@ -45,7 +44,7 @@ void dRumble_c::execute() {
}
// I am guessing on any reload screen or homebutton menu?
if (dReset::Manage_c::GetInstance()->is1Or5()) {
if (dReset::Manage_c::GetInstance()->isSoftResetOrSafetyWait()) {
mPad::g_core[0]->stopRumbleMgr();
mPad::g_core[1]->stopRumbleMgr();
return;
+2 -2
View File
@@ -74,7 +74,7 @@ static const char *const sSkb = "SoftwareKeyboard";
int dScTitle_c::create() {
int ret = dScGame_c::create();
if (ret == SUCCEEDED && dReset::Manage_c::GetInstance()->get0x0C() == 1) {
if (ret == SUCCEEDED && dReset::Manage_c::GetInstance()->isSoftReset()) {
if (field_0x2AC == 0) {
dReset::Manage_c::GetInstance()->FadeOutRequest(false);
if (checkAllSaveFilesEmpty() != true) {
@@ -100,7 +100,7 @@ int dScTitle_c::create() {
SizedString<128> fntPath;
fntPath.sprintf("/US/Font/%s/%s", dMessage_c::getLanguageIdentifier(), "normal_02.brfnt");
mDvd_toMainRam_normal_c::create2(&mpSkbFont, fntPath, 0, dHeap::work2Heap.heap);
fn_8035E310(BGM_MGR);
BGM_MGR->fn_8035E310();
}
return ret;