From 0d14ccf41eceebaeecb0403db2d92799c9a9dc37 Mon Sep 17 00:00:00 2001 From: N2614 Date: Tue, 24 Apr 2012 02:27:39 +0000 Subject: [PATCH] =?UTF-8?q?3rdNUP=E4=BB=A5=E4=B8=8A=E3=81=AE=E6=9C=AC?= =?UTF-8?q?=E4=BD=93=E3=81=A7=E3=81=AF=E3=82=A8=E3=83=A9=E3=83=BC=E3=81=A8?= =?UTF-8?q?=E3=81=99=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@689 385bec56-5757-e545-9c3a-d8741f4650f1 --- trunk/CardCup/main.cpp | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/trunk/CardCup/main.cpp b/trunk/CardCup/main.cpp index 6da1878..cc68b57 100644 --- a/trunk/CardCup/main.cpp +++ b/trunk/CardCup/main.cpp @@ -46,6 +46,13 @@ ScrollBuffer *s_scrollBuffer; char s_updaterBuffer[1 << 20] NN_ATTRIBUTE_ALIGN(4096); +const u8 CUP_MAJOR_VER_3ND_NUP = 4; + +bool IsOver3rdNup(u8 cupMajor) +{ + return CUP_MAJOR_VER_3ND_NUP <= cupMajor; +} + nn::ProgramId GetHomeMenuProgramId(nn::cfg::CTR::CfgRegionCode region) { nn::ProgramId pid; @@ -287,14 +294,46 @@ nn::Result ExecuteCup(ScrollBuffer* scrollBuf) return result; } +void ShowError(const char* str) +{ + s_scrollBuffer->AppendText(str); + for (;;) + { + s_RenderSystem.SetRenderTarget(NN_GX_DISPLAY0); + s_RenderSystem.SetClearColor(NN_GX_DISPLAY0, 1, 0, 0, 1); + s_RenderSystem.Clear(); + s_RenderSystem.SwapBuffers(); + s_RenderSystem.SetRenderTarget(NN_GX_DISPLAY1); + s_RenderSystem.SetClearColor(NN_GX_DISPLAY1, 1, 0, 0, 1); + s_RenderSystem.Clear(); + s_scrollBuffer->Render(); + s_RenderSystem.SwapBuffers(); + + if (nn::applet::IsExpectedToCloseApplication()) + { + nn::applet::PrepareToCloseApplication(); + nn::applet::CloseApplication(); + } + } +} + extern "C" void nnMain() { NN_LOG("Start Self Cup\n"); nn::Result result; Initialize(); + VerDef versionData; nn::cfg::CfgRegionCode region = nn::cfg::GetRegion(); nn::ProgramId MMEN_PROGRAM_ID = GetHomeMenuProgramId(region); + GetSystemVersion(&versionData, region); + s_scrollBuffer->AppendText("Version: %d.%d.%d-%d%c", versionData.cup.majorVersion, versionData.cup.minorVersion, + versionData.cup.microVersion, versionData.nup.majorVersion, nn::cfg::GetRegionCodeA3(region)[0]); + + if(IsOver3rdNup(versionData.cup.majorVersion)) + { + ShowError("Cannot Update"); + } nn::am::ProgramInfo outInfos; result = nn::am::GetProgramInfos(&outInfos, nn::fs::MEDIA_TYPE_NAND, &MMEN_PROGRAM_ID, 1); @@ -308,7 +347,6 @@ extern "C" void nnMain() } s_scrollBuffer->AppendText("")->Render(); - VerDef versionData; GetSystemVersion(&versionData, region); s_scrollBuffer->AppendText("Version: %d.%d.%d-%d%c", versionData.cup.majorVersion, versionData.cup.minorVersion,