mirror of
https://github.com/rvtr/ctr_Repair.git
synced 2025-10-31 13:51:08 -04:00
CUP自体を実行しないように
CUPが必要な場合黄色画面で終了するように git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@385 385bec56-5757-e545-9c3a-d8741f4650f1
This commit is contained in:
parent
c766294fe4
commit
3317fbbbd8
@ -114,72 +114,7 @@ namespace
|
||||
return s_progress[s_progressIndex];
|
||||
}
|
||||
|
||||
nn::Result UpdateCore()
|
||||
{
|
||||
nn::Result result;
|
||||
nn::cup::ProgressInfo info;
|
||||
|
||||
/********************** アップデート*******************/
|
||||
SetTick();
|
||||
s_scrollBuffer->AppendText("Start Card Update")->Render();
|
||||
NN_UTIL_RETURN_IF_FAILED(nn::cup::CTR::DoUpdate());
|
||||
|
||||
// ステータスがStartedになるまで、プログレスは取得できない
|
||||
s_scrollBuffer->AppendText("");
|
||||
do{
|
||||
s_scrollBuffer->ReplaceText(" %c Initializing", GetProgressChar())->Render();
|
||||
result = nn::cup::CTR::GetProgressInfo(&info);
|
||||
NN_UTIL_RETURN_IF_FAILED(result);
|
||||
nn::os::Thread::Sleep(nn::fnd::TimeSpan::FromMilliSeconds(40));
|
||||
}while(info.state==nn::cup::CTR::UPDATE_STATE_INITIALIZING);
|
||||
|
||||
// 抜けた際のstateがFAILEDかどうか確認
|
||||
if(info.state==nn::cup::CTR::UPDATE_STATE_FAILED){
|
||||
NN_UTIL_RETURN_IF_FAILED(info.lastResult);
|
||||
}
|
||||
s_scrollBuffer->ReplaceText(" - Initialized (%lldmsec)", GetConsumedMillisec());
|
||||
|
||||
/********************* アップデート中 ******************/
|
||||
SetTick();
|
||||
s_scrollBuffer->AppendText("")->Render();
|
||||
do{
|
||||
result = nn::cup::CTR::GetProgressInfo(&info);
|
||||
NN_UTIL_RETURN_IF_FAILED(result);
|
||||
s_scrollBuffer->ReplaceText(" %c Title %d/%d, size %lld/%lld",
|
||||
GetProgressChar(),
|
||||
info.numImportedTitles, info.numTotalTitles,
|
||||
info.importedSize, info.totalSize)->Render();
|
||||
nn::os::Thread::Sleep(nn::fnd::TimeSpan::FromMilliSeconds(40));
|
||||
|
||||
}while(info.state==nn::cup::CTR::UPDATE_STATE_STARTED);
|
||||
// 抜けた際のstateがFAILEDかどうか確認
|
||||
if(info.state==nn::cup::CTR::UPDATE_STATE_FAILED){
|
||||
NN_UTIL_RETURN_IF_FAILED(info.lastResult);
|
||||
}
|
||||
s_scrollBuffer->AppendText(" - Imported (%lldmsec)", GetConsumedMillisec())->Render();
|
||||
|
||||
/***************** アップデート終了中 ******************/
|
||||
SetTick();
|
||||
s_scrollBuffer->AppendText("")->Render();
|
||||
do{
|
||||
result = nn::cup::CTR::GetProgressInfo(&info);
|
||||
NN_UTIL_RETURN_IF_FAILED(result);
|
||||
s_scrollBuffer->ReplaceText(" %c Update Finalizing", GetProgressChar())->Render();
|
||||
nn::os::Thread::Sleep(nn::fnd::TimeSpan::FromMilliSeconds(40));
|
||||
}while(info.state==nn::cup::CTR::UPDATE_STATE_FINALIZING);
|
||||
// 抜けた際のstateがFAILEDかどうか確認
|
||||
if(info.state==nn::cup::CTR::UPDATE_STATE_FAILED){
|
||||
NN_UTIL_RETURN_IF_FAILED(info.lastResult);
|
||||
}
|
||||
|
||||
/******************* アップデート終了 *******************/
|
||||
s_scrollBuffer->AppendText(" - Finalized (%lldmsec)", GetConsumedMillisec())->Render();
|
||||
s_scrollBuffer->AppendText("");
|
||||
|
||||
return nn::ResultSuccess();
|
||||
}
|
||||
|
||||
nn::Result UpdateSequence(bool *isHandledError)
|
||||
nn::Result UpdateSequence(bool *isHandledError, bool* needUpdate)
|
||||
{
|
||||
nn::Result result;
|
||||
nn::Result lastResult=nn::ResultSuccess();
|
||||
@ -209,16 +144,13 @@ namespace
|
||||
NN_UTIL_RETURN_IF_FAILED(result);
|
||||
|
||||
s_scrollBuffer->AppendText(" - Need Update (%lldmsec)", GetConsumedMillisec())->Render();
|
||||
*needUpdate = true;
|
||||
s_scrollBuffer->AppendText("")->Render();
|
||||
|
||||
lastResult=UpdateCore();
|
||||
|
||||
// Initializeに成功した場合のみ、再びInitializeするためにFinalizeが必要
|
||||
SetTick();
|
||||
s_scrollBuffer->AppendText("Finalizing Cup Library")->Render();
|
||||
NN_UTIL_RETURN_IF_FAILED(nn::cup::CTR::Finalize());
|
||||
s_scrollBuffer->AppendText(" - Complete (%lldmsec)", GetConsumedMillisec())->Render();
|
||||
s_scrollBuffer->AppendText("")->Render();
|
||||
|
||||
return lastResult;
|
||||
}
|
||||
@ -258,12 +190,13 @@ extern "C" void nnMain()
|
||||
|
||||
nn::am::ProgramInfo outInfos;
|
||||
result = nn::am::GetProgramInfos(&outInfos, nn::fs::MEDIA_TYPE_NAND, &MMEN_PROGRAM_ID, 1);
|
||||
bool needUpdate = false;
|
||||
if (result.IsSuccess())
|
||||
{
|
||||
|
||||
/******************** CUPの実行 *******************/
|
||||
bool isHandledError = false;
|
||||
result = UpdateSequence(&isHandledError);
|
||||
result = UpdateSequence(&isHandledError, &needUpdate);
|
||||
if (isHandledError == false && result.IsFailure())
|
||||
{
|
||||
{
|
||||
@ -283,7 +216,11 @@ extern "C" void nnMain()
|
||||
for(;;)
|
||||
{
|
||||
s_RenderSystem.SetRenderTarget(NN_GX_DISPLAY0);
|
||||
if(result.IsSuccess() || result == nn::cup::CTR::ResultUpdateNotRequired())
|
||||
if(needUpdate)
|
||||
{
|
||||
s_RenderSystem.SetClearColor(NN_GX_DISPLAY0, 1, 1, 0, 1);
|
||||
}
|
||||
else if(result.IsSuccess() || result == nn::cup::CTR::ResultUpdateNotRequired())
|
||||
{
|
||||
s_RenderSystem.SetClearColor(NN_GX_DISPLAY0, 0, 1, 0, 1);
|
||||
}
|
||||
@ -294,7 +231,11 @@ extern "C" void nnMain()
|
||||
s_RenderSystem.Clear();
|
||||
s_RenderSystem.SwapBuffers();
|
||||
s_RenderSystem.SetRenderTarget(NN_GX_DISPLAY1);
|
||||
if(result.IsSuccess() || result == nn::cup::CTR::ResultUpdateNotRequired())
|
||||
if(needUpdate)
|
||||
{
|
||||
s_RenderSystem.SetClearColor(NN_GX_DISPLAY0, 1, 1, 0, 1);
|
||||
}
|
||||
else if(result.IsSuccess() || result == nn::cup::CTR::ResultUpdateNotRequired())
|
||||
{
|
||||
s_RenderSystem.SetClearColor(NN_GX_DISPLAY1, 0, 1, 0, 1);
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user