mirror of
https://github.com/rvtr/ctr_Repair.git
synced 2025-10-31 13:51:08 -04:00
同一本体への書き戻しを区別するように
git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@62 385bec56-5757-e545-9c3a-d8741f4650f1
This commit is contained in:
parent
5f340c6736
commit
9f0e693e94
@ -216,16 +216,6 @@ void ControlState(::std::vector<std::string>& operationMessage, bool& nextStep,
|
||||
}
|
||||
else
|
||||
{
|
||||
// SDカードのIVSと本体のIVSは異なるか?
|
||||
if (EqualsIVSFileandIVS())
|
||||
{
|
||||
COMMON_LOGGER("Restore data to the same Console. Initialize.\n");
|
||||
// 本体初期化を行う
|
||||
InitializeFileSystem();
|
||||
error = true;
|
||||
s_RestoreState = REBOOTING;
|
||||
}
|
||||
|
||||
// SDカードに書き込みできるか?
|
||||
if (nextStep && !nn::fs::IsSdmcWritable())
|
||||
{
|
||||
@ -238,10 +228,22 @@ void ControlState(::std::vector<std::string>& operationMessage, bool& nextStep,
|
||||
else
|
||||
{
|
||||
COMMON_LOGGER("Initialize Console\n");
|
||||
// 本体初期化完了ファイルを作る
|
||||
CreateConsoleInitializedFile();
|
||||
|
||||
// 本体初期化を行う
|
||||
// SDカードのIVSと本体のIVSは異なるか?
|
||||
if (EqualsIVSFileandIVS())
|
||||
{
|
||||
// 同一本体に書き戻そうとしたファイルを作る
|
||||
COMMON_LOGGER("Restore to the same console. Initialize.\n");
|
||||
CreateTryRestoreSameConsoleFile();
|
||||
}
|
||||
else
|
||||
{
|
||||
// 本体初期化完了ファイルを作る
|
||||
CreateConsoleInitializedFile();
|
||||
|
||||
}
|
||||
|
||||
// ファイルシステムの初期化を行う
|
||||
InitializeFileSystem();
|
||||
error = true;
|
||||
s_RestoreState = REBOOTING;
|
||||
@ -612,8 +614,12 @@ void ControlState(::std::vector<std::string>& operationMessage, bool& nextStep,
|
||||
// ptmのセーブデータ移行後に時計を無効化する
|
||||
nn::ptm::CTR::InvalidateSystemTime();
|
||||
|
||||
// cfgのハードウェア固有情報をcal値で初期化する
|
||||
InitializeHardwareDependentSetting();
|
||||
// 同じ本体に書き戻す場合は初期化しない
|
||||
if (!ExistsTryRestoreSameConsoleFile())
|
||||
{
|
||||
// cfgのハードウェア固有情報をcal値で初期化する
|
||||
InitializeHardwareDependentSetting();
|
||||
}
|
||||
|
||||
init = false;
|
||||
}
|
||||
@ -697,6 +703,9 @@ void ControlState(::std::vector<std::string>& operationMessage, bool& nextStep,
|
||||
|
||||
case SHUTDOWN:
|
||||
{
|
||||
// リストア状態チェックファイルをすべて削除
|
||||
DeleteAllCheckFiles();
|
||||
|
||||
// 本体初期化を行う
|
||||
InitializeFileSystem();
|
||||
|
||||
|
||||
@ -769,6 +769,11 @@ void CreateRtcSyncFinishedFile()
|
||||
CreateEmptyFile(common::RTC_SYNC_CHECK_PATHNAME);
|
||||
}
|
||||
|
||||
void CreateTryRestoreSameConsoleFile()
|
||||
{
|
||||
CreateEmptyFile(common::TRY_RESTORE_SAME_CONSOLE_PATHNAME);
|
||||
}
|
||||
|
||||
u32 GetImportProgress()
|
||||
{
|
||||
return common::GetProgress();
|
||||
|
||||
@ -35,6 +35,7 @@ void CreateWriteFinishedFile();
|
||||
void CreateUpdateFinishedFile();
|
||||
void CreateConsoleInitializedFile();
|
||||
void CreateRtcSyncFinishedFile();
|
||||
void CreateTryRestoreSameConsoleFile();
|
||||
u32 GetImportProgress();
|
||||
|
||||
// NANDのごみを削除する
|
||||
@ -45,7 +46,8 @@ const wchar_t* const CHECK_FILENAME_TABLE[] =
|
||||
common::UPDATE_CHECK_PATHNAME,
|
||||
common::INITIALIZED_CHECK_PATHNAME,
|
||||
common::WRITE_FINISHED_CHECK_PATHNAME,
|
||||
common::RTC_SYNC_CHECK_PATHNAME
|
||||
common::RTC_SYNC_CHECK_PATHNAME,
|
||||
common::TRY_RESTORE_SAME_CONSOLE_PATHNAME
|
||||
};
|
||||
|
||||
void DeleteAllCheckFiles();
|
||||
|
||||
@ -82,7 +82,9 @@ bool ExistsIVSFile()
|
||||
|
||||
bool ExistsConsoleInitializedFile()
|
||||
{
|
||||
return ExistsFile(EXISTS_CONSOLE_INTIALIZED);
|
||||
// どちらかのファイルがあれば初期化済み
|
||||
return ExistsFile(EXISTS_CONSOLE_INTIALIZED) ||
|
||||
ExistsFile(EXISTS_TRY_RESTORE_SAME_CONSOLE);
|
||||
}
|
||||
|
||||
bool ExistsWriteFinishedFile()
|
||||
@ -105,6 +107,11 @@ bool ExistsCountryLanguageFile()
|
||||
return ExistsFile(EXISTS_COUNTRY_LANGUAGE);
|
||||
}
|
||||
|
||||
bool ExistsTryRestoreSameConsoleFile()
|
||||
{
|
||||
return ExistsFile(EXISTS_TRY_RESTORE_SAME_CONSOLE);
|
||||
}
|
||||
|
||||
void InitializeFileCheck()
|
||||
{
|
||||
for(u32 i = 0; i < EXISTS_MAX; i++)
|
||||
|
||||
@ -31,6 +31,7 @@ typedef enum FILE_EXISTS_CHECK
|
||||
EXISTS_AP_SETTING,
|
||||
EXISTS_RTC_SYNC_FINISHED,
|
||||
EXISTS_COUNTRY_LANGUAGE,
|
||||
EXISTS_TRY_RESTORE_SAME_CONSOLE,
|
||||
EXISTS_MAX
|
||||
} FileExistsCheck;
|
||||
|
||||
@ -43,7 +44,8 @@ const wchar_t* const FILENAME_TABLE[EXISTS_MAX] =
|
||||
common::WRITE_FINISHED_CHECK_PATHNAME,
|
||||
common::AP_SETTING_PATHNAME,
|
||||
common::RTC_SYNC_CHECK_PATHNAME,
|
||||
common::COUNTRY_SETTING_PATHNAME
|
||||
common::COUNTRY_SETTING_PATHNAME,
|
||||
common::TRY_RESTORE_SAME_CONSOLE_PATHNAME
|
||||
};
|
||||
|
||||
|
||||
@ -55,6 +57,7 @@ bool ExistsWriteFinishedFile();
|
||||
bool ExistsAPSetting();
|
||||
bool ExistsRtcSyncFinishedFile();
|
||||
bool ExistsCountryLanguageFile();
|
||||
bool ExistsTryRestoreSameConsoleFile();
|
||||
|
||||
void InitializeFileCheck();
|
||||
|
||||
|
||||
@ -48,6 +48,7 @@ const wchar_t* const SDMC_ROOT_DIRECTORY_PATH = L"sdmc:/";
|
||||
const wchar_t* const WRITE_FINISHED_CHECK_PATHNAME = L"sdmc:/CTR_Console_Repair/WriteFinished";
|
||||
const wchar_t* const UPDATE_CHECK_PATHNAME = L"sdmc:/CTR_Console_Repair/UpdateFinished";
|
||||
const wchar_t* const INITIALIZED_CHECK_PATHNAME = L"sdmc:/CTR_Console_Repair/ConsoleInitialized";
|
||||
const wchar_t* const TRY_RESTORE_SAME_CONSOLE_PATHNAME = L"sdmc:/CTR_Console_Repair/TryRestoreSameConsole";
|
||||
const wchar_t* const RTC_SYNC_CHECK_PATHNAME = L"sdmc:/CTR_Console_Repair/RtcSyncFinished";
|
||||
const wchar_t* const PLAYHISTORY_PATHNAME = L"sdmc:/CTR_Console_Repair/playhistory.bin";
|
||||
const wchar_t* const PLAYHISTORY_COUNT_PATHNAME = L"sdmc:/CTR_Console_Repair/playhistoryCount.bin";
|
||||
|
||||
Loading…
Reference in New Issue
Block a user