Merge pull request #227 from robojumper/d_pad_manager

More game bootup / error related things
This commit is contained in:
robojumper
2025-09-13 10:07:19 +02:00
committed by GitHub
31 changed files with 1873 additions and 277 deletions
+17 -15
View File
@@ -26,6 +26,7 @@
#include "rvl/OS/OSThread.h"
#include "rvl/VI/vi.h"
#include "toBeSorted/file_manager.h"
#include "toBeSorted/nand_result_tracker.h"
#include "toBeSorted/save_manager.h"
#include "THPPlayer/THPPlayer.h"
@@ -328,23 +329,23 @@ 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);
dScBoot_c::GetInstance()->setField_0x5E4(false);
mpFader->setStatus(EGG::ColorFader::STATUS_PREPARE_OUT);
ModeRequest(Normal);
dSndPlayerMgr_c::GetInstance()->fn_8035E310();
} else {
if (field_0x66) {
dScBoot_c::GetInstance()->setField_0x5E3(1);
dScBoot_c::GetInstance()->setField_0x5E3(true);
dDvdUnk::FontUnk::GetInstance()->fn_800529B0();
dSndPlayerMgr_c::GetInstance()->fn_8035E6E0();
if (dDvdUnk::FontUnk::GetInstance()->getField_0x29() ||
dDvdUnk::FontUnk::GetInstance()->getField_0x24() ||
if (dDvdUnk::FontUnk::GetInstance()->isNandError() ||
dDvdUnk::FontUnk::GetInstance()->getNandError() != NandResultTracker::ERR_CAT_NONE ||
SaveMgr::GetInstance()->getCheckForFreeSpaceResult()) {
dScBoot_c::GetInstance()->setField_0x5E3(0);
dScBoot_c::GetInstance()->setField_0x5E2(1);
dDvdUnk::FontUnk::GetInstance()->fn_800529E0();
dScBoot_c::GetInstance()->setField_0x5E3(false);
dScBoot_c::GetInstance()->setField_0x5E2(true);
dDvdUnk::FontUnk::GetInstance()->clearNandError();
}
dDvdUnk::FontUnk::GetInstance()->fn_80052A20();
}
@@ -356,9 +357,9 @@ void Manage_c::ModeProc_SoftReset() {
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);
dCsBase_c::GetInstance()->setVisible(false);
dCsBase_c::GetInstance()->setDrawDirectly(false);
dCsBase_c::GetInstance()->setCalibrationPointCenterEnabled(false);
field_0x66 = false;
}
@@ -552,7 +553,8 @@ void Manage_c::CleanUpLC() {
void Manage_c::MotorCancelOn() {
for (int i = 0; i < 4; i++) {
mPad::g_core[--++i]->stopRumbleMgr();
// TODO: Fakematch
mPad::getCore(--++i)->stopRumbleMgr();
}
dRumble_c::stop(-1);
}
@@ -564,7 +566,7 @@ bool Manage_c::IsFatalError() {
}
bool Manage_c::IsDiskError() {
return dDvdUnk::FontUnk::GetInstance()->getField_0x28();
return dDvdUnk::FontUnk::GetInstance()->isDiskError();
}
bool Manage_c::FadeOutCalc() {
@@ -581,9 +583,9 @@ void Manage_c::FadeOutRequest(bool 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);
dCsBase_c::GetInstance()->setVisible(false);
dCsBase_c::GetInstance()->setDrawDirectly(false);
dCsBase_c::GetInstance()->setCalibrationPointCenterEnabled(false);
field_0x66 = 0;