diff --git a/branches/SelfCupExecChecker/main.cpp b/branches/SelfCupExecChecker/main.cpp index 43f73d7..a281c9a 100644 --- a/branches/SelfCupExecChecker/main.cpp +++ b/branches/SelfCupExecChecker/main.cpp @@ -38,123 +38,124 @@ namespace { const s32 s_GxHeapSize = 0x800000; - uptr s_GxHeap; +uptr s_GxHeap; - demo::RenderSystemDrawing s_RenderSystem; - ScrollBuffer s_scrollBufferInstance; - ScrollBuffer *s_scrollBuffer; +demo::RenderSystemDrawing s_RenderSystem; +ScrollBuffer s_scrollBufferInstance; +ScrollBuffer *s_scrollBuffer; - char s_updaterBuffer[1<<20] NN_ATTRIBUTE_ALIGN(4096); +char s_updaterBuffer[1 << 20] NN_ATTRIBUTE_ALIGN(4096); - // デモの初期化 - void Initialize() - { - // NuiShellの初期化 (CUPに必須) - NN_UTIL_PANIC_IF_FAILED(nn::ns::CTR::InitializeForShell()); +// デモの初期化 +void Initialize() +{ + // NuiShellの初期化 (CUPに必須) + NN_UTIL_PANIC_IF_FAILED(nn::ns::CTR::InitializeForShell()); - // ndmの初期化 - nn::ndm::Initialize(); + // ndmの初期化 + nn::ndm::Initialize(); - // 全デーモンの自律動作をacの自動接続も含めて止める - nn::ndm::SuspendScheduler(); + // 全デーモンの自律動作をacの自動接続も含めて止める + nn::ndm::SuspendScheduler(); - // amの初期化 - nn::am::InitializeForSystemMenu(); + // amの初期化 + nn::am::InitializeForSystemMenu(); - // fsの初期化 (カード確認用) - nn::fs::Initialize(); + // fsの初期化 (カード確認用) + nn::fs::Initialize(); - // appletの初期化 - //nn::applet::InitializeForSystem( nn::applet::PHOME_MENU_APPLET_ID, nn::applet::TYPE_SYS ); - //nn::applet::Initialize( nn::applet::TEST2_APPLET_ID); - //nn::applet::SetAppletMode(); - nn::applet::Enable(); + // appletの初期化 + //nn::applet::InitializeForSystem( nn::applet::PHOME_MENU_APPLET_ID, nn::applet::TYPE_SYS ); + //nn::applet::Initialize( nn::applet::TEST2_APPLET_ID); + //nn::applet::SetAppletMode(); + nn::applet::Enable(); - nn::cfg::Initialize(); + nn::cfg::Initialize(); - // デバイスメモリの設定 + // デバイスメモリの設定 const s32 DEVICE_MEMORY_SIZE = 32 * 1024 * 1024; - NN_UTIL_PANIC_IF_FAILED(nn::os::SetDeviceMemorySize(DEVICE_MEMORY_SIZE)); + NN_UTIL_PANIC_IF_FAILED(nn::os::SetDeviceMemorySize(DEVICE_MEMORY_SIZE)); - // ヒープの初期化 + // ヒープの初期化 InitializeHeap(); - // 描画インスタンスの初期化 - s_GxHeap = reinterpret_cast(ForceAllocate(s_GxHeapSize));s_RenderSystem - .Initialize(s_GxHeap, s_GxHeapSize); + // 描画インスタンスの初期化 + s_GxHeap = reinterpret_cast(ForceAllocate(s_GxHeapSize)); + s_RenderSystem.Initialize(s_GxHeap, s_GxHeapSize); - // 描画インスタンスの初期化 - s_scrollBufferInstance.Initialize(&s_RenderSystem); - s_scrollBuffer=&s_scrollBufferInstance; + // 描画インスタンスの初期化 + s_scrollBufferInstance.Initialize(&s_RenderSystem); + s_scrollBuffer = &s_scrollBufferInstance; - // GPU利用宣言 - nn::applet::AssignGpuRight(); - } + // GPU利用宣言 + nn::applet::AssignGpuRight(); +} - // 消費時間取得用関数群 - s64 s_StartTick; - void SetTick() - { - s_StartTick=nn::os::Tick::GetSystemCurrent(); - } - s64 GetConsumedMillisec() - { - s64 endTick=nn::os::Tick::GetSystemCurrent(); - nn::os::Tick consumed(endTick-s_StartTick); - return ((nn::fnd::TimeSpan)consumed).GetMilliSeconds(); - } +// 消費時間取得用関数群 +s64 s_StartTick; +void SetTick() +{ + s_StartTick = nn::os::Tick::GetSystemCurrent(); +} +s64 GetConsumedMillisec() +{ + s64 endTick = nn::os::Tick::GetSystemCurrent(); + nn::os::Tick consumed(endTick - s_StartTick); + return ((nn::fnd::TimeSpan) consumed).GetMilliSeconds(); +} - // 動いていることを知らせるための、くるくる画面表示取得用メソッド - const char s_progress[]="-\\|/"; +// 動いていることを知らせるための、くるくる画面表示取得用メソッド +const char s_progress[] = "-\\|/"; s32 s_progressIndex = 0; - char GetProgressChar() - { - s_progressIndex=(s_progressIndex+1)%(sizeof(s_progress)-1); - return s_progress[s_progressIndex]; - } +char GetProgressChar() +{ + s_progressIndex = (s_progressIndex + 1) % (sizeof(s_progress) - 1); + return s_progress[s_progressIndex]; +} - nn::Result UpdateSequence(bool *isHandledError, bool* needUpdate) - { - nn::Result result; - nn::Result lastResult=nn::ResultSuccess(); +nn::Result UpdateSequence(bool *isHandledError, bool* needUpdate) +{ + nn::Result result; + nn::Result lastResult = nn::ResultSuccess(); - /********************* CUPの初期化 *******************/ - s_scrollBuffer->AppendText("Initializing Cup Library")->Render(); - SetTick(); // 初期化開始前の時間をセット - result=nn::cup::CTR::Initialize(s_updaterBuffer,sizeof(s_updaterBuffer)); + /********************* CUPの初期化 *******************/ + s_scrollBuffer->AppendText("Initializing Cup Library")->Render(); + SetTick(); // 初期化開始前の時間をセット + result = nn::cup::CTR::Initialize(s_updaterBuffer, sizeof(s_updaterBuffer)); if (result == nn::cup::CTR::ResultUpdatePartitionNotFound()) { - s_scrollBuffer->AppendText(" - Update Partition Not Found (%lldmsec)", GetConsumedMillisec())->Render(); - s_scrollBuffer->AppendText("")->Render(); - *isHandledError=true; - return result; - } + s_scrollBuffer->AppendText(" - Update Partition Not Found (%lldmsec)", GetConsumedMillisec())->Render(); + s_scrollBuffer->AppendText("")->Render(); + *isHandledError = true; + return result; + } if (result == nn::cup::CTR::ResultUpdateNotRequired()) { - s_scrollBuffer->AppendText(" - Already Updated (%lldmsec)", GetConsumedMillisec())->Render(); - s_scrollBuffer->AppendText("")->Render(); - *isHandledError=true; - return result; - } + s_scrollBuffer->AppendText(" - Already Updated (%lldmsec)", GetConsumedMillisec())->Render(); + s_scrollBuffer->AppendText("")->Render(); + *isHandledError = true; + return result; + } if (result == nn::cup::CTR::ResultInvalidUpdatePartitionFormat()) { - s_scrollBuffer->AppendText(" - Invalid Update Partition (%lldmsec)", GetConsumedMillisec())->Render(); - s_scrollBuffer->AppendText("")->Render(); - *isHandledError=true; - return result; - }NN_UTIL_RETURN_IF_FAILED(result); - - s_scrollBuffer->AppendText(" - Need Update (%lldmsec)", GetConsumedMillisec())->Render(); - *needUpdate = true; + s_scrollBuffer->AppendText(" - Invalid Update Partition (%lldmsec)", GetConsumedMillisec())->Render(); s_scrollBuffer->AppendText("")->Render(); - - // Initializeに成功した場合のみ、再びInitializeするためにFinalizeが必要 - SetTick(); - s_scrollBuffer->AppendText("Finalizing Cup Library")->Render(); - NN_UTIL_RETURN_IF_FAILED(nn::cup::CTR::Finalize()); - - return lastResult; + *isHandledError = true; + return result; } + NN_UTIL_RETURN_IF_FAILED(result); + + s_scrollBuffer->AppendText(" - Need Update (%lldmsec)", GetConsumedMillisec())->Render(); + *needUpdate = true; + s_scrollBuffer->AppendText("")->Render(); + + // Initializeに成功した場合のみ、再びInitializeするためにFinalizeが必要 + SetTick(); + s_scrollBuffer->AppendText("Finalizing Cup Library")->Render(); + NN_UTIL_RETURN_IF_FAILED(nn::cup::CTR::Finalize()); + + return lastResult; +} } nn::Result ExecuteCup(ScrollBuffer* scrollBuf, bool* needUpdte)