diff --git a/trunk/CardCup/Readme.txt b/trunk/CardCup/Readme.txt index 01dd48d..7dd30dc 100644 --- a/trunk/CardCup/Readme.txt +++ b/trunk/CardCup/Readme.txt @@ -1,4 +1,6 @@ -ビルド環境 -・SDK +サソ繝薙Ν繝臥腸蠅 +繝サSDK Horizon 2.3 branch r38025 + r38091 SelfCup.desc + trunk r38944 pl_SharedDataTitleId.h + + trunk r46913 CTR_UniqueId.inc + + trunk r46913 CTR_Version.inc diff --git a/trunk/CardCup/main.cpp b/trunk/CardCup/main.cpp index b0d868d..6da1878 100644 --- a/trunk/CardCup/main.cpp +++ b/trunk/CardCup/main.cpp @@ -46,6 +46,47 @@ ScrollBuffer *s_scrollBuffer; char s_updaterBuffer[1 << 20] NN_ATTRIBUTE_ALIGN(4096); +nn::ProgramId GetHomeMenuProgramId(nn::cfg::CTR::CfgRegionCode region) +{ +nn::ProgramId pid; +bit32 uid = nn::CTR::PROGRAM_ID_UNIQUE_ID_HOMEMENU; +bit8 ver = nn::CTR::PROGRAM_ID_VERSION_HOMEMENU; + + switch( region ) + { + case nn::cfg::CTR::CFG_REGION_AMERICA: + uid = nn::CTR::PROGRAM_ID_UNIQUE_ID_SYSMENU_US; + ver = nn::CTR::PROGRAM_ID_VERSION_SYSMENU_US; + break; + + case nn::cfg::CTR::CFG_REGION_EUROPE: + case nn::cfg::CTR::CFG_REGION_AUSTRALIA: + uid = nn::CTR::PROGRAM_ID_UNIQUE_ID_SYSMENU_EU; + ver = nn::CTR::PROGRAM_ID_VERSION_SYSMENU_EU; + break; + + case nn::cfg::CTR::CFG_REGION_CHINA: + uid = nn::CTR::PROGRAM_ID_UNIQUE_ID_SYSMENU_CN; + ver = nn::CTR::PROGRAM_ID_VERSION_SYSMENU_CN; + break; + + case nn::cfg::CTR::CFG_REGION_KOREA: + uid = nn::CTR::PROGRAM_ID_UNIQUE_ID_SYSMENU_KR; + ver = nn::CTR::PROGRAM_ID_VERSION_SYSMENU_KR; + break; + + case nn::cfg::CTR::CFG_REGION_TAIWAN: + uid = nn::CTR::PROGRAM_ID_UNIQUE_ID_SYSMENU_TW; + ver = nn::CTR::PROGRAM_ID_VERSION_SYSMENU_TW; + break; + } + + pid = nn::CTR::MakeProgramId( nn::CTR::PROGRAM_ID_CATEGORY_APPLET, + uid, + ver ); // 繝励Ο繧ー繝ゥ繝ID + return pid; +} + // 繝繝「縺ョ蛻晄悄蛹 void Initialize() { @@ -252,30 +293,8 @@ extern "C" void nnMain() nn::Result result; Initialize(); - nn::ProgramId MMEN_PROGRAM_ID = 0x0004003000008202; - nn::cfg::CfgRegionCode region = nn::cfg::GetRegion(); - switch (region) - { - case nn::cfg::CFG_REGION_AMERICA: - { - MMEN_PROGRAM_ID = 0x0004003000008f02; - } - break; - - case nn::cfg::CFG_REGION_EUROPE: - case nn::cfg::CFG_REGION_AUSTRALIA: - { - MMEN_PROGRAM_ID = 0x0004003000009802; - } - break; - - case nn::cfg::CFG_REGION_JAPAN: - { - MMEN_PROGRAM_ID = 0x0004003000008202; - } - break; - } + nn::ProgramId MMEN_PROGRAM_ID = GetHomeMenuProgramId(region); nn::am::ProgramInfo outInfos; result = nn::am::GetProgramInfos(&outInfos, nn::fs::MEDIA_TYPE_NAND, &MMEN_PROGRAM_ID, 1);