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
|
else
|
||||||
{
|
{
|
||||||
// SDカードのIVSと本体のIVSは異なるか?
|
|
||||||
if (EqualsIVSFileandIVS())
|
|
||||||
{
|
|
||||||
COMMON_LOGGER("Restore data to the same Console. Initialize.\n");
|
|
||||||
// 本体初期化を行う
|
|
||||||
InitializeFileSystem();
|
|
||||||
error = true;
|
|
||||||
s_RestoreState = REBOOTING;
|
|
||||||
}
|
|
||||||
|
|
||||||
// SDカードに書き込みできるか?
|
// SDカードに書き込みできるか?
|
||||||
if (nextStep && !nn::fs::IsSdmcWritable())
|
if (nextStep && !nn::fs::IsSdmcWritable())
|
||||||
{
|
{
|
||||||
@ -238,10 +228,22 @@ void ControlState(::std::vector<std::string>& operationMessage, bool& nextStep,
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
COMMON_LOGGER("Initialize Console\n");
|
COMMON_LOGGER("Initialize Console\n");
|
||||||
// 本体初期化完了ファイルを作る
|
|
||||||
CreateConsoleInitializedFile();
|
|
||||||
|
|
||||||
// 本体初期化を行う
|
// SDカードのIVSと本体のIVSは異なるか?
|
||||||
|
if (EqualsIVSFileandIVS())
|
||||||
|
{
|
||||||
|
// 同一本体に書き戻そうとしたファイルを作る
|
||||||
|
COMMON_LOGGER("Restore to the same console. Initialize.\n");
|
||||||
|
CreateTryRestoreSameConsoleFile();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// 本体初期化完了ファイルを作る
|
||||||
|
CreateConsoleInitializedFile();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// ファイルシステムの初期化を行う
|
||||||
InitializeFileSystem();
|
InitializeFileSystem();
|
||||||
error = true;
|
error = true;
|
||||||
s_RestoreState = REBOOTING;
|
s_RestoreState = REBOOTING;
|
||||||
@ -612,8 +614,12 @@ void ControlState(::std::vector<std::string>& operationMessage, bool& nextStep,
|
|||||||
// ptmのセーブデータ移行後に時計を無効化する
|
// ptmのセーブデータ移行後に時計を無効化する
|
||||||
nn::ptm::CTR::InvalidateSystemTime();
|
nn::ptm::CTR::InvalidateSystemTime();
|
||||||
|
|
||||||
// cfgのハードウェア固有情報をcal値で初期化する
|
// 同じ本体に書き戻す場合は初期化しない
|
||||||
InitializeHardwareDependentSetting();
|
if (!ExistsTryRestoreSameConsoleFile())
|
||||||
|
{
|
||||||
|
// cfgのハードウェア固有情報をcal値で初期化する
|
||||||
|
InitializeHardwareDependentSetting();
|
||||||
|
}
|
||||||
|
|
||||||
init = false;
|
init = false;
|
||||||
}
|
}
|
||||||
@ -697,6 +703,9 @@ void ControlState(::std::vector<std::string>& operationMessage, bool& nextStep,
|
|||||||
|
|
||||||
case SHUTDOWN:
|
case SHUTDOWN:
|
||||||
{
|
{
|
||||||
|
// リストア状態チェックファイルをすべて削除
|
||||||
|
DeleteAllCheckFiles();
|
||||||
|
|
||||||
// 本体初期化を行う
|
// 本体初期化を行う
|
||||||
InitializeFileSystem();
|
InitializeFileSystem();
|
||||||
|
|
||||||
|
|||||||
@ -769,6 +769,11 @@ void CreateRtcSyncFinishedFile()
|
|||||||
CreateEmptyFile(common::RTC_SYNC_CHECK_PATHNAME);
|
CreateEmptyFile(common::RTC_SYNC_CHECK_PATHNAME);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CreateTryRestoreSameConsoleFile()
|
||||||
|
{
|
||||||
|
CreateEmptyFile(common::TRY_RESTORE_SAME_CONSOLE_PATHNAME);
|
||||||
|
}
|
||||||
|
|
||||||
u32 GetImportProgress()
|
u32 GetImportProgress()
|
||||||
{
|
{
|
||||||
return common::GetProgress();
|
return common::GetProgress();
|
||||||
|
|||||||
@ -35,6 +35,7 @@ void CreateWriteFinishedFile();
|
|||||||
void CreateUpdateFinishedFile();
|
void CreateUpdateFinishedFile();
|
||||||
void CreateConsoleInitializedFile();
|
void CreateConsoleInitializedFile();
|
||||||
void CreateRtcSyncFinishedFile();
|
void CreateRtcSyncFinishedFile();
|
||||||
|
void CreateTryRestoreSameConsoleFile();
|
||||||
u32 GetImportProgress();
|
u32 GetImportProgress();
|
||||||
|
|
||||||
// NANDのごみを削除する
|
// NANDのごみを削除する
|
||||||
@ -45,7 +46,8 @@ const wchar_t* const CHECK_FILENAME_TABLE[] =
|
|||||||
common::UPDATE_CHECK_PATHNAME,
|
common::UPDATE_CHECK_PATHNAME,
|
||||||
common::INITIALIZED_CHECK_PATHNAME,
|
common::INITIALIZED_CHECK_PATHNAME,
|
||||||
common::WRITE_FINISHED_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();
|
void DeleteAllCheckFiles();
|
||||||
|
|||||||
@ -82,7 +82,9 @@ bool ExistsIVSFile()
|
|||||||
|
|
||||||
bool ExistsConsoleInitializedFile()
|
bool ExistsConsoleInitializedFile()
|
||||||
{
|
{
|
||||||
return ExistsFile(EXISTS_CONSOLE_INTIALIZED);
|
// どちらかのファイルがあれば初期化済み
|
||||||
|
return ExistsFile(EXISTS_CONSOLE_INTIALIZED) ||
|
||||||
|
ExistsFile(EXISTS_TRY_RESTORE_SAME_CONSOLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ExistsWriteFinishedFile()
|
bool ExistsWriteFinishedFile()
|
||||||
@ -105,6 +107,11 @@ bool ExistsCountryLanguageFile()
|
|||||||
return ExistsFile(EXISTS_COUNTRY_LANGUAGE);
|
return ExistsFile(EXISTS_COUNTRY_LANGUAGE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool ExistsTryRestoreSameConsoleFile()
|
||||||
|
{
|
||||||
|
return ExistsFile(EXISTS_TRY_RESTORE_SAME_CONSOLE);
|
||||||
|
}
|
||||||
|
|
||||||
void InitializeFileCheck()
|
void InitializeFileCheck()
|
||||||
{
|
{
|
||||||
for(u32 i = 0; i < EXISTS_MAX; i++)
|
for(u32 i = 0; i < EXISTS_MAX; i++)
|
||||||
|
|||||||
@ -31,6 +31,7 @@ typedef enum FILE_EXISTS_CHECK
|
|||||||
EXISTS_AP_SETTING,
|
EXISTS_AP_SETTING,
|
||||||
EXISTS_RTC_SYNC_FINISHED,
|
EXISTS_RTC_SYNC_FINISHED,
|
||||||
EXISTS_COUNTRY_LANGUAGE,
|
EXISTS_COUNTRY_LANGUAGE,
|
||||||
|
EXISTS_TRY_RESTORE_SAME_CONSOLE,
|
||||||
EXISTS_MAX
|
EXISTS_MAX
|
||||||
} FileExistsCheck;
|
} FileExistsCheck;
|
||||||
|
|
||||||
@ -43,7 +44,8 @@ const wchar_t* const FILENAME_TABLE[EXISTS_MAX] =
|
|||||||
common::WRITE_FINISHED_CHECK_PATHNAME,
|
common::WRITE_FINISHED_CHECK_PATHNAME,
|
||||||
common::AP_SETTING_PATHNAME,
|
common::AP_SETTING_PATHNAME,
|
||||||
common::RTC_SYNC_CHECK_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 ExistsAPSetting();
|
||||||
bool ExistsRtcSyncFinishedFile();
|
bool ExistsRtcSyncFinishedFile();
|
||||||
bool ExistsCountryLanguageFile();
|
bool ExistsCountryLanguageFile();
|
||||||
|
bool ExistsTryRestoreSameConsoleFile();
|
||||||
|
|
||||||
void InitializeFileCheck();
|
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 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 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 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 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_PATHNAME = L"sdmc:/CTR_Console_Repair/playhistory.bin";
|
||||||
const wchar_t* const PLAYHISTORY_COUNT_PATHNAME = L"sdmc:/CTR_Console_Repair/playhistoryCount.bin";
|
const wchar_t* const PLAYHISTORY_COUNT_PATHNAME = L"sdmc:/CTR_Console_Repair/playhistoryCount.bin";
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user