mirror of
https://github.com/rvtr/ctr_Repair.git
synced 2025-10-31 13:51:08 -04:00
SNAKE用のnup_versionがマウントできたかどうかでSNAKE判定するように。
git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@814 385bec56-5757-e545-9c3a-d8741f4650f1
This commit is contained in:
parent
bcf6adf349
commit
db7e2f0309
@ -25,6 +25,7 @@ SOURCES[] =
|
||||
scrollBuffer.cpp
|
||||
VersionDetect.cpp
|
||||
HeapManager.cpp
|
||||
Util.cpp
|
||||
|
||||
LIBS += lib_demo \
|
||||
libnn_am \
|
||||
|
||||
@ -4,5 +4,7 @@
|
||||
+ trunk r46347 pl_SharedDataTitleId.h
|
||||
+ trunk r41414 CTR_UniqueId.inc
|
||||
+ trunk r46237 CTR_Version.inc
|
||||
+ CTR_SDK-9_12 branch r58087 CTR_ProgramId.h
|
||||
+ CTR_SDK-9_12 branch r58087 pl_Version.h
|
||||
|
||||
r33437に、上記3ファイルを個別に上書きした後のパッチ forCardCup.patch をコミットしています。
|
||||
r33437に、上記のファイルを個別に上書きした後のパッチ forCardCup.patch をコミットしています。
|
||||
|
||||
57
trunk/CardCup/Util.cpp
Normal file
57
trunk/CardCup/Util.cpp
Normal file
@ -0,0 +1,57 @@
|
||||
/*---------------------------------------------------------------------------*
|
||||
Project: Horizon
|
||||
File: Util.cpp
|
||||
|
||||
Copyright (C)2010-2011 Nintendo Co., Ltd. All rights reserved.
|
||||
|
||||
These coded instructions, statements, and computer programs contain
|
||||
proprietary information of Nintendo of America Inc. and/or Nintendo
|
||||
Company Ltd., and are protected by Federal copyright law. They may
|
||||
not be disclosed to third parties or copied or duplicated in any form,
|
||||
in whole or in part, without the prior written consent of Nintendo.
|
||||
|
||||
$Rev$
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "Util.h"
|
||||
|
||||
u8 Util::GetCupMajorVersion(VerDef version)
|
||||
{
|
||||
if(version.isSnake)
|
||||
{
|
||||
return version.cup.snakeMajorVersion;
|
||||
}
|
||||
else
|
||||
{
|
||||
return version.cup.majorVersion;
|
||||
}
|
||||
}
|
||||
|
||||
u8 Util::GetCupMinorVersion(VerDef version)
|
||||
{
|
||||
if(version.isSnake)
|
||||
{
|
||||
return version.cup.snakeMinorVersion;
|
||||
}
|
||||
else
|
||||
{
|
||||
return version.cup.minorVersion;
|
||||
}
|
||||
}
|
||||
|
||||
u8 Util::GetCupMicroVersion(VerDef version)
|
||||
{
|
||||
if(version.isSnake)
|
||||
{
|
||||
return version.cup.snakeMicroVersion;
|
||||
}
|
||||
else
|
||||
{
|
||||
return version.cup.microVersion;
|
||||
}
|
||||
}
|
||||
|
||||
u8 Util::GetNupVersion(VerDef version)
|
||||
{
|
||||
return version.nup.majorVersion;
|
||||
}
|
||||
42
trunk/CardCup/Util.h
Normal file
42
trunk/CardCup/Util.h
Normal file
@ -0,0 +1,42 @@
|
||||
/*---------------------------------------------------------------------------*
|
||||
Project: Horizon
|
||||
File: Util.h
|
||||
|
||||
Copyright 2009 Nintendo. All rights reserved.
|
||||
|
||||
These coded instructions, statements, and computer programs contain
|
||||
proprietary information of Nintendo of America Inc. and/or Nintendo
|
||||
Company Ltd., and are protected by Federal copyright law. They may
|
||||
not be disclosed to third parties or copied or duplicated in any form,
|
||||
in whole or in part, without the prior written consent of Nintendo.
|
||||
|
||||
$Rev$
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef UTIL_H_
|
||||
#define UTIL_H_
|
||||
|
||||
#include <nn.h>
|
||||
#include "VersionDetect.h"
|
||||
|
||||
class Util
|
||||
{
|
||||
public:
|
||||
|
||||
Util(){};
|
||||
virtual ~Util(){};
|
||||
|
||||
// CUPメジャーバージョンを返す
|
||||
u8 GetCupMajorVersion(VerDef version);
|
||||
|
||||
// CUPマイナーバージョンを返す
|
||||
u8 GetCupMinorVersion(VerDef version);
|
||||
|
||||
// CUPマイクロバージョンを返す
|
||||
u8 GetCupMicroVersion(VerDef version);
|
||||
|
||||
// NUPバージョンを返す
|
||||
u8 GetNupVersion(VerDef version);
|
||||
};
|
||||
|
||||
#endif /* UTIL_H_ */
|
||||
@ -61,7 +61,7 @@ void GetCupVersion(nn::pl::CTR::CardUpdateVersion* cup, nn::cfg::CTR::CfgRegionC
|
||||
}
|
||||
|
||||
|
||||
void GetNupVersion(nn::pl::CTR::NetworkUpdateVersion* nup, nn::cfg::CTR::CfgRegionCode region)
|
||||
void GetNupVersion(nn::pl::CTR::NetworkUpdateVersion* nup, bool* isSnake, nn::cfg::CTR::CfgRegionCode region)
|
||||
{
|
||||
nn::Result result;
|
||||
const size_t BUF_SIZE = 1024;
|
||||
@ -69,8 +69,24 @@ void GetNupVersion(nn::pl::CTR::NetworkUpdateVersion* nup, nn::cfg::CTR::CfgRegi
|
||||
|
||||
// NUPバージョン
|
||||
{
|
||||
result = nn::fs::MountContent("nver:", nn::fs::MEDIA_TYPE_NAND, cNupVerId[region], 0, 1, 1, buf,
|
||||
nn::ProgramId snakeProgramId = nn::CTR::ReplacePlatform(cNupVerId[region],
|
||||
nn::CTR::PROGRAM_ID_PLATFORM_SNAKE);
|
||||
result = nn::fs::MountContent("nver:", nn::fs::MEDIA_TYPE_NAND, snakeProgramId, 0, 1, 1, buf,
|
||||
BUF_SIZE);
|
||||
if(result.IsFailure())
|
||||
{
|
||||
*isSnake = false;
|
||||
result = nn::fs::MountContent("nver:", nn::fs::MEDIA_TYPE_NAND, cNupVerId[region], 0, 1, 1, buf,
|
||||
BUF_SIZE);
|
||||
if(result.IsFailure())
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
*isSnake = true;
|
||||
}
|
||||
|
||||
nn::fs::FileInputStream fis;
|
||||
|
||||
@ -105,5 +121,5 @@ void GetNupVersion(nn::pl::CTR::NetworkUpdateVersion* nup, nn::cfg::CTR::CfgRegi
|
||||
void GetSystemVersion(VerDef* mVerData, nn::cfg::CTR::CfgRegionCode region)
|
||||
{
|
||||
GetCupVersion(&mVerData->cup, region);
|
||||
GetNupVersion(&mVerData->nup, region);
|
||||
GetNupVersion(&mVerData->nup, &mVerData->isSnake, region);
|
||||
}
|
||||
|
||||
@ -24,6 +24,9 @@ struct VerDef
|
||||
{
|
||||
nn::pl::CTR::CardUpdateVersion cup;
|
||||
nn::pl::CTR::NetworkUpdateVersion nup;
|
||||
bool isSnake;
|
||||
NN_PADDING3;
|
||||
NN_PADDING4;
|
||||
};
|
||||
|
||||
// TODO:リージョン追加時に範囲外アクセスにならないよう注意
|
||||
|
||||
@ -1,3 +1,310 @@
|
||||
Index: include/nn/CTR/CTR_ProgramId.h
|
||||
===================================================================
|
||||
--- include/nn/CTR/CTR_ProgramId.h (revision 34322)
|
||||
+++ include/nn/CTR/CTR_ProgramId.h (working copy)
|
||||
@@ -1,8 +1,8 @@
|
||||
-/*---------------------------------------------------------------------------*
|
||||
+/*---------------------------------------------------------------------------*
|
||||
Project: Horizon
|
||||
File: CTR_ProgramId.h
|
||||
|
||||
- Copyright (C)2009 Nintendo Co., Ltd. All rights reserved.
|
||||
+ Copyright (C)2009-2013 Nintendo Co., Ltd. All rights reserved.
|
||||
|
||||
These coded instructions, statements, and computer programs contain
|
||||
proprietary information of Nintendo of America Inc. and/or Nintendo
|
||||
@@ -18,6 +18,7 @@
|
||||
|
||||
|
||||
#include <nn/types.h>
|
||||
+#include <nn/assert.h>
|
||||
#include <nn/math/math_Utility.h>
|
||||
|
||||
|
||||
@@ -49,9 +50,13 @@
|
||||
{
|
||||
PROGRAM_ID_CATEGORY_FLAG_NORMAL = 0 , // 通常
|
||||
PROGRAM_ID_CATEGORY_FLAG_DLP_CHILD = 1, // DLPLAY 子機
|
||||
- PROGRAM_ID_CATEGORY_FLAG_TRIAL = 2, // 体験版
|
||||
- PROGRAM_ID_CATEGORY_FLAG_CONTENTS = 3, // 追加コンテンツ
|
||||
+ PROGRAM_ID_CATEGORY_FLAG_DEMO = 2, // 体験版
|
||||
+ PROGRAM_ID_CATEGORY_FLAG_CONTENTS = 3, // コンテンツ
|
||||
+ PROGRAM_ID_CATEGORY_FLAG_ADD_ON_CONTENTS = 4, // 追加コンテンツ
|
||||
+ PROGRAM_ID_CATEGORY_FLAG_RIGHTS_ONLY = 5, // 権利のみ
|
||||
+ PROGRAM_ID_CATEGORY_FLAG_PATCH = 6, // パッチ
|
||||
|
||||
+ PROGRAM_ID_CATEGORY_FLAG_TYPE_MASK = (7 << 0), // 種類
|
||||
PROGRAM_ID_CATEGORY_FLAG_CANNOT_EXECUTION = (1 << 3), // 実行不可
|
||||
PROGRAM_ID_CATEGORY_FLAG_SYSTEM = (1 << 4), // システム
|
||||
PROGRAM_ID_CATEGORY_FLAG_REQUIRE_BATCH_UPDATE = (1 << 5), // 一括アップデートが必要
|
||||
@@ -71,7 +76,7 @@
|
||||
PROGRAM_ID_CATEGORY_DLP_CHILD = ( PROGRAM_ID_CATEGORY_FLAG_DLP_CHILD ),
|
||||
|
||||
// 体験版
|
||||
- PROGRAM_ID_CATEGORY_TRIAL = ( PROGRAM_ID_CATEGORY_FLAG_TRIAL ),
|
||||
+ PROGRAM_ID_CATEGORY_DEMO = ( PROGRAM_ID_CATEGORY_FLAG_DEMO ),
|
||||
|
||||
// NAND ファームウェア
|
||||
PROGRAM_ID_CATEGORY_FIRMWARE = ( PROGRAM_ID_CATEGORY_FLAG_NORMAL
|
||||
@@ -113,6 +118,19 @@
|
||||
| PROGRAM_ID_CATEGORY_FLAG_NOT_REQUIRE_USER_APPROVAL
|
||||
| PROGRAM_ID_CATEGORY_FLAG_NOT_REQUIRE_RIGHT_FOR_MOUNT ),
|
||||
|
||||
+ // 追加コンテンツ
|
||||
+ PROGRAM_ID_CATEGORY_ADD_ON_CONTENTS = ( PROGRAM_ID_CATEGORY_FLAG_ADD_ON_CONTENTS
|
||||
+ | PROGRAM_ID_CATEGORY_FLAG_CANNOT_EXECUTION
|
||||
+ | PROGRAM_ID_CATEGORY_FLAG_NOT_REQUIRE_RIGHT_FOR_MOUNT ),
|
||||
+
|
||||
+ // 権利のみ
|
||||
+ PROGRAM_ID_CATEGORY_RIGHTS_ONLY = ( PROGRAM_ID_CATEGORY_FLAG_RIGHTS_ONLY
|
||||
+ | PROGRAM_ID_CATEGORY_FLAG_CANNOT_EXECUTION ),
|
||||
+
|
||||
+ // パッチ
|
||||
+ PROGRAM_ID_CATEGORY_PATCH = ( PROGRAM_ID_CATEGORY_FLAG_PATCH
|
||||
+ | PROGRAM_ID_CATEGORY_FLAG_CANNOT_EXECUTION ),
|
||||
+
|
||||
PROGRAM_ID_CATEGORY_MAX_BITS = (1u << 15)
|
||||
};
|
||||
|
||||
@@ -120,6 +138,7 @@
|
||||
enum ProgramIdPlatform
|
||||
{
|
||||
PROGRAM_ID_PLATFORM_CTR,
|
||||
+ PROGRAM_ID_PLATFORM_SNAKE = 2,
|
||||
|
||||
PROGRAM_ID_PLATFORM_MAX_BITS = (1 << 3)
|
||||
};
|
||||
@@ -135,7 +154,10 @@
|
||||
const int PROGRAM_ID_UNIQUE_ID_SHIFT = 8;
|
||||
const int PROGRAM_ID_VARIATION_SHIFT = 0;
|
||||
|
||||
+ const size_t PROGRAM_ID_PLATFORM_SIZE = 4;
|
||||
|
||||
+ const bit64 PROGRAM_ID_PLATFORM_MASK = ((1ull << PROGRAM_ID_PLATFORM_SIZE) - 1) << PROGRAM_ID_PLATFORM_SHIFT;
|
||||
+
|
||||
/* ------------------------------------------------------------------------
|
||||
ProgramId 作成関数
|
||||
------------------------------------------------------------------------ */
|
||||
@@ -171,7 +193,17 @@
|
||||
return ret;
|
||||
}
|
||||
|
||||
+ inline ProgramId MakeSystemProgramIdFromLegacyInitialCode(char gameCode[])
|
||||
+ { // TWLのNAND かつ システムアプリのProgramIdの生成
|
||||
+ ProgramId ret = TWL_CARD_APP_PSEUDO_PROGRAM_ID | (5ull << 32);
|
||||
+ for (int i = 0; i < 4; i++)
|
||||
+ {
|
||||
+ ret |= gameCode[i] << ((3-i) * 8);
|
||||
+ }
|
||||
+ return ret;
|
||||
+ }
|
||||
|
||||
+
|
||||
/* ------------------------------------------------------------------------
|
||||
ProgramId 分解関数
|
||||
------------------------------------------------------------------------ */
|
||||
@@ -196,7 +228,6 @@
|
||||
}
|
||||
|
||||
|
||||
-
|
||||
/* ------------------------------------------------------------------------
|
||||
定数定義の代わり
|
||||
------------------------------------------------------------------------ */
|
||||
@@ -204,15 +235,10 @@
|
||||
{
|
||||
return (static_cast<bit32>(pgid >> 32) & 0xFFFFC000) == 0x00048000;
|
||||
}
|
||||
- inline bool IsNtrTrialApp(ProgramId pgid)
|
||||
- {
|
||||
- return (static_cast<bit32>(pgid >> 32) & 0xFFFFC000) == 0x00044000;
|
||||
+ inline bool IsTwlSystemApp(ProgramId pgid)
|
||||
+ { // Channel code 0bit目が1
|
||||
+ return IsTwlApp(pgid) && (pgid & (1ull << 32));
|
||||
}
|
||||
- inline bool IsTwlCardApp(ProgramId pgid)
|
||||
- {
|
||||
- return pgid == TWL_CARD_APP_PSEUDO_PROGRAM_ID;
|
||||
- }
|
||||
-
|
||||
inline bool IsTwlCardAppByCtrProgramIdRule(ProgramId pgid)
|
||||
{
|
||||
return (static_cast<bit32>(pgid >> 32) & 0xFFFFFFFF) == 0x00048000;
|
||||
@@ -233,60 +259,118 @@
|
||||
return 0x0004800000000000ull | (pgid & 0x00007FFFFFFFFFFFull);
|
||||
}
|
||||
|
||||
+ inline ProgramId ReplacePlatform(ProgramId pgid, ProgramIdPlatform platform)
|
||||
+ {
|
||||
+ return (pgid & ~PROGRAM_ID_PLATFORM_MASK) | (platform << PROGRAM_ID_PLATFORM_SHIFT);
|
||||
+ }
|
||||
|
||||
-
|
||||
/* ------------------------------------------------------------------------
|
||||
カテゴリ判別関数
|
||||
------------------------------------------------------------------------ */
|
||||
+ inline bool IsCtr(ProgramId pgid)
|
||||
+ {
|
||||
+ return (static_cast<bit32>(pgid >> 32) & 0xFFFFC000) == 0x00040000;
|
||||
+ }
|
||||
+
|
||||
+ // bit 0-2
|
||||
+ inline bool IsContents(ProgramId pgid)
|
||||
+ {
|
||||
+ return IsCtr(pgid) && ((GetCategoryOf(pgid) & PROGRAM_ID_CATEGORY_FLAG_TYPE_MASK) == PROGRAM_ID_CATEGORY_FLAG_CONTENTS);
|
||||
+ }
|
||||
+
|
||||
+ inline bool IsNormalApplication(ProgramId pgid)
|
||||
+ {
|
||||
+ return IsCtr(pgid) && ((GetCategoryOf(pgid) & PROGRAM_ID_CATEGORY_FLAG_TYPE_MASK) == PROGRAM_ID_CATEGORY_FLAG_NORMAL);
|
||||
+ }
|
||||
+
|
||||
// bit 4
|
||||
inline bool IsSystem(ProgramId pgid)
|
||||
{
|
||||
- return (GetCategoryOf(pgid) & PROGRAM_ID_CATEGORY_FLAG_SYSTEM) != 0;
|
||||
+ return IsCtr(pgid) && (GetCategoryOf(pgid) & PROGRAM_ID_CATEGORY_FLAG_SYSTEM) != 0;
|
||||
}
|
||||
|
||||
// bit 5
|
||||
inline bool IsRequireBatchUpdate(ProgramId pgid)
|
||||
{
|
||||
- return (GetCategoryOf(pgid) & PROGRAM_ID_CATEGORY_FLAG_REQUIRE_BATCH_UPDATE) != 0;
|
||||
+ return IsCtr(pgid) && (GetCategoryOf(pgid) & PROGRAM_ID_CATEGORY_FLAG_REQUIRE_BATCH_UPDATE) != 0;
|
||||
}
|
||||
|
||||
// bit 7
|
||||
inline bool IsRequireRightForMount(ProgramId pgid)
|
||||
{
|
||||
- return (GetCategoryOf(pgid) & PROGRAM_ID_CATEGORY_FLAG_NOT_REQUIRE_RIGHT_FOR_MOUNT) == 0;
|
||||
+ return IsCtr(pgid) && (GetCategoryOf(pgid) & PROGRAM_ID_CATEGORY_FLAG_NOT_REQUIRE_RIGHT_FOR_MOUNT) == 0;
|
||||
}
|
||||
|
||||
// bit 8
|
||||
inline bool IsRequireJumpIdConversion(ProgramId pgid)
|
||||
{
|
||||
- return (GetCategoryOf(pgid) & PROGRAM_ID_CATEGORY_FLAG_CAN_SKIP_CONVERT_JUMP_ID) == 0;
|
||||
+ return IsCtr(pgid) && (GetCategoryOf(pgid) & PROGRAM_ID_CATEGORY_FLAG_CAN_SKIP_CONVERT_JUMP_ID) == 0;
|
||||
}
|
||||
|
||||
inline bool IsDlpChild(ProgramId pgid)
|
||||
{
|
||||
- return GetCategoryOf(pgid) == PROGRAM_ID_CATEGORY_DLP_CHILD;
|
||||
+ return IsCtr(pgid) && GetCategoryOf(pgid) == PROGRAM_ID_CATEGORY_DLP_CHILD;
|
||||
}
|
||||
|
||||
+ inline bool IsDemo(ProgramId pgid)
|
||||
+ {
|
||||
+ return IsCtr(pgid) && GetCategoryOf(pgid) == PROGRAM_ID_CATEGORY_DEMO;
|
||||
+ }
|
||||
+
|
||||
inline bool IsNandFirmware(ProgramId pgid)
|
||||
{
|
||||
- return GetCategoryOf(pgid) == PROGRAM_ID_CATEGORY_FIRMWARE;
|
||||
+ return IsCtr(pgid) && GetCategoryOf(pgid) == PROGRAM_ID_CATEGORY_FIRMWARE;
|
||||
}
|
||||
|
||||
inline bool IsInternal(ProgramId pgid)
|
||||
{
|
||||
const bit16 category = GetCategoryOf(pgid);
|
||||
- return category == PROGRAM_ID_CATEGORY_FIRMWARE
|
||||
+ return IsCtr(pgid) &&
|
||||
+ ( category == PROGRAM_ID_CATEGORY_FIRMWARE
|
||||
| category == PROGRAM_ID_CATEGORY_BASE
|
||||
- | category == PROGRAM_ID_CATEGORY_APPLET;
|
||||
+ | category == PROGRAM_ID_CATEGORY_APPLET );
|
||||
}
|
||||
|
||||
+ inline bool IsExecutable(ProgramId pgid)
|
||||
+ {
|
||||
+ return (GetCategoryOf(pgid) & PROGRAM_ID_CATEGORY_FLAG_CANNOT_EXECUTION) == 0;
|
||||
+ }
|
||||
+
|
||||
+ inline bool IsCtrOrTwlSystem(ProgramId pgid)
|
||||
+ {
|
||||
+ return IsSystem(pgid) || IsTwlSystemApp(pgid);
|
||||
+ }
|
||||
+
|
||||
inline bool IsRequireCheckLaunchRights(ProgramId pgid)
|
||||
{
|
||||
- return ! IsSystem(pgid);
|
||||
+ return ! IsCtrOrTwlSystem(pgid);
|
||||
}
|
||||
|
||||
+ inline bool IsAddOnContents(ProgramId pgid)
|
||||
+ {
|
||||
+ return IsCtr(pgid) && GetCategoryOf(pgid) == PROGRAM_ID_CATEGORY_ADD_ON_CONTENTS;
|
||||
+ }
|
||||
|
||||
+ inline bool IsRightsOnly(ProgramId pgid)
|
||||
+ {
|
||||
+ return IsCtr(pgid) && GetCategoryOf(pgid) == PROGRAM_ID_CATEGORY_RIGHTS_ONLY;
|
||||
+ }
|
||||
|
||||
+ inline bool IsPatch(ProgramId pgid)
|
||||
+ {
|
||||
+ return IsCtr(pgid) && GetCategoryOf(pgid) == PROGRAM_ID_CATEGORY_PATCH;
|
||||
+ }
|
||||
+
|
||||
+ inline bool HasInternalUniqueId(ProgramId pgid)
|
||||
+ {
|
||||
+ bit32 uid = GetUniqueIdOf(pgid);
|
||||
+ return (uid < 0x00300)
|
||||
+ || ((0xF8000 <= uid) && (uid < 0xFF000))
|
||||
+ || (0xFF400 <= uid);
|
||||
+ }
|
||||
+
|
||||
+
|
||||
+
|
||||
/* ------------------------------------------------------------------------
|
||||
コアバージョン
|
||||
------------------------------------------------------------------------ */
|
||||
@@ -308,8 +392,14 @@
|
||||
PROGRAM_ID_VERSION_TWL_FIRM );
|
||||
}
|
||||
|
||||
+ inline bit32 GetAgbCoreVersion()
|
||||
+ {
|
||||
+ return MakeTitleCode( PROGRAM_ID_UNIQUE_ID_AGB_FIRM,
|
||||
+ PROGRAM_ID_VERSION_AGB_FIRM );
|
||||
+ }
|
||||
|
||||
|
||||
+
|
||||
/* ------------------------------------------------------------------------
|
||||
個々の ProgramId
|
||||
------------------------------------------------------------------------ */
|
||||
@@ -330,6 +420,30 @@
|
||||
// 奇数のバリエーションは開発用システムのメジャーバージョン
|
||||
return IsSystem(pgid) && (GetVariationOf(pgid) % 2) != 0;
|
||||
}
|
||||
+
|
||||
+
|
||||
+
|
||||
+ /* ------------------------------------------------------------------------
|
||||
+ 変換関数
|
||||
+ ------------------------------------------------------------------------ */
|
||||
+ inline ProgramId GetPatchTargetProgramId(ProgramId patchId)
|
||||
+ {
|
||||
+ NN_EQUAL_TASSERT_(GetCategoryOf(patchId), PROGRAM_ID_CATEGORY_PATCH);
|
||||
+
|
||||
+ return MakeProgramId(
|
||||
+ PROGRAM_ID_CATEGORY_APPLICATION,
|
||||
+ GetUniqueIdOf(patchId),
|
||||
+ GetVariationOf(patchId) );
|
||||
+ }
|
||||
+ inline ProgramId GetPatchProgramIdOf(ProgramId appId)
|
||||
+ {
|
||||
+ NN_EQUAL_TASSERT_(GetCategoryOf(appId), PROGRAM_ID_CATEGORY_APPLICATION);
|
||||
+
|
||||
+ return MakeProgramId(
|
||||
+ PROGRAM_ID_CATEGORY_PATCH,
|
||||
+ GetUniqueIdOf(appId),
|
||||
+ GetVariationOf(appId) );
|
||||
+ }
|
||||
}}
|
||||
|
||||
|
||||
Index: include/nn/CTR/CTR_UniqueId.inc
|
||||
===================================================================
|
||||
--- include/nn/CTR/CTR_UniqueId.inc (revision 34322)
|
||||
@ -440,102 +747,75 @@ Index: include/nn/pl/CTR/pl_SharedDataTitleId.h
|
||||
|
||||
These coded instructions, statements, and computer programs contain
|
||||
proprietary information of Nintendo of America Inc. and/or Nintendo
|
||||
@@ -45,44 +45,60 @@
|
||||
| (static_cast<bit64>(x) << nn::CTR::PROGRAM_ID_UNIQUE_ID_SHIFT) \
|
||||
| (static_cast<bit64>(nn::CTR::PROGRAM_ID_VERSION_SHAREDDATA_COMMON) << nn::CTR::PROGRAM_ID_VARIATION_SHIFT) )
|
||||
|
||||
- const ProgramId SHAREDDATA_TITLEID_MII = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x102);
|
||||
- const ProgramId SHAREDDATA_TITLEID_NGWORD = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_AUTO_UPDATE_CONTENT_PROGRAM_ID(0x103);
|
||||
- const ProgramId SHAREDDATA_TITLEID_COUNTRY_REGION = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x104);
|
||||
- const ProgramId SHAREDDATA_TITLEID_SSID = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_AUTO_UPDATE_CONTENT_PROGRAM_ID(0x105);
|
||||
- const ProgramId SHAREDDATA_TITLEID_DICTIONARY_CHI_CH = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x110);
|
||||
- const ProgramId SHAREDDATA_TITLEID_DICTIONARY_CHI_TW = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x111);
|
||||
- const ProgramId SHAREDDATA_TITLEID_DICTIONARY_DUT = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x112);
|
||||
- const ProgramId SHAREDDATA_TITLEID_DICTIONARY_ENG_EU = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x113);
|
||||
- const ProgramId SHAREDDATA_TITLEID_DICTIONARY_ENG_US = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x114);
|
||||
- const ProgramId SHAREDDATA_TITLEID_DICTIONARY_FRE_EU = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x115);
|
||||
- const ProgramId SHAREDDATA_TITLEID_DICTIONARY_FRE_US = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x116);
|
||||
- const ProgramId SHAREDDATA_TITLEID_DICTIONARY_GER = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x117);
|
||||
- const ProgramId SHAREDDATA_TITLEID_DICTIONARY_ITA = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x118);
|
||||
- const ProgramId SHAREDDATA_TITLEID_DICTIONARY_JPN = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x119);
|
||||
- const ProgramId SHAREDDATA_TITLEID_DICTIONARY_KOR = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x11a);
|
||||
- const ProgramId SHAREDDATA_TITLEID_DICTIONARY_POR_EU = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x11b);
|
||||
- const ProgramId SHAREDDATA_TITLEID_DICTIONARY_RUS = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x11c);
|
||||
- const ProgramId SHAREDDATA_TITLEID_DICTIONARY_SPA = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x11d);
|
||||
- const ProgramId SHAREDDATA_TITLEID_DICTIONARY_POR_US = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x11e);
|
||||
- const ProgramId SHAREDDATA_TITLEID_ERROR_MESSAGE_EU = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x121);
|
||||
- const ProgramId SHAREDDATA_TITLEID_ERROR_MESSAGE_JP = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x122);
|
||||
- const ProgramId SHAREDDATA_TITLEID_ERROR_MESSAGE_US = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x123);
|
||||
- const ProgramId SHAREDDATA_TITLEID_EULA_EU = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x131);
|
||||
- const ProgramId SHAREDDATA_TITLEID_EULA_JP = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x132);
|
||||
- const ProgramId SHAREDDATA_TITLEID_EULA_US = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x133);
|
||||
- const ProgramId SHAREDDATA_TITLEID_FONT_STD = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x140);
|
||||
- const ProgramId SHAREDDATA_TITLEID_FONT_CN = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x141);
|
||||
- const ProgramId SHAREDDATA_TITLEID_FONT_KR = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x142);
|
||||
- const ProgramId SHAREDDATA_TITLEID_FONT_TW = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x143);
|
||||
- const ProgramId SHAREDDATA_TITLEID_RATING_ICON_EU = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x151);
|
||||
- const ProgramId SHAREDDATA_TITLEID_RATING_ICON_JP = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x152);
|
||||
- const ProgramId SHAREDDATA_TITLEID_RATING_ICON_US = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x153);
|
||||
- const ProgramId SHAREDDATA_TITLEID_NUP_VERSION_EU = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_AUTO_UPDATE_CONTENT_PROGRAM_ID(0x161);
|
||||
- const ProgramId SHAREDDATA_TITLEID_NUP_VERSION_JP = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_AUTO_UPDATE_CONTENT_PROGRAM_ID(0x162);
|
||||
- const ProgramId SHAREDDATA_TITLEID_NUP_VERSION_US = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_AUTO_UPDATE_CONTENT_PROGRAM_ID(0x163);
|
||||
- const ProgramId SHAREDDATA_TITLEID_CUP_VERSION_EU = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_AUTO_UPDATE_CONTENT_PROGRAM_ID(0x171);
|
||||
- const ProgramId SHAREDDATA_TITLEID_CUP_VERSION_JP = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_AUTO_UPDATE_CONTENT_PROGRAM_ID(0x172);
|
||||
- const ProgramId SHAREDDATA_TITLEID_CUP_VERSION_US = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_AUTO_UPDATE_CONTENT_PROGRAM_ID(0x173);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_MII = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x102);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_NGWORD = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_AUTO_UPDATE_CONTENT_PROGRAM_ID(0x103);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_COUNTRY_REGION = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x104);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_SSID = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_AUTO_UPDATE_CONTENT_PROGRAM_ID(0x105);
|
||||
@@ -49,6 +49,7 @@
|
||||
const ProgramId SHAREDDATA_TITLEID_NGWORD = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_AUTO_UPDATE_CONTENT_PROGRAM_ID(0x103);
|
||||
const ProgramId SHAREDDATA_TITLEID_COUNTRY_REGION = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x104);
|
||||
const ProgramId SHAREDDATA_TITLEID_SSID = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_AUTO_UPDATE_CONTENT_PROGRAM_ID(0x105);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_CERT_DATASTORAGE = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x106);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_DICTIONARY_CHI_CH = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x110);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_DICTIONARY_CHI_TW = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x111);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_DICTIONARY_DUT = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x112);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_DICTIONARY_ENG_EU = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x113);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_DICTIONARY_ENG_US = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x114);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_DICTIONARY_FRE_EU = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x115);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_DICTIONARY_FRE_US = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x116);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_DICTIONARY_GER = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x117);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_DICTIONARY_ITA = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x118);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_DICTIONARY_JPN = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x119);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_DICTIONARY_KOR = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x11a);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_DICTIONARY_POR_EU = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x11b);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_DICTIONARY_RUS = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x11c);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_DICTIONARY_SPA = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x11d);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_DICTIONARY_POR_US = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x11e);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_ERROR_MESSAGE_EU = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x121);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_ERROR_MESSAGE_JP = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x122);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_ERROR_MESSAGE_US = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x123);
|
||||
const ProgramId SHAREDDATA_TITLEID_DICTIONARY_CHI_CH = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x110);
|
||||
const ProgramId SHAREDDATA_TITLEID_DICTIONARY_CHI_TW = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x111);
|
||||
const ProgramId SHAREDDATA_TITLEID_DICTIONARY_DUT = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x112);
|
||||
@@ -67,9 +68,15 @@
|
||||
const ProgramId SHAREDDATA_TITLEID_ERROR_MESSAGE_EU = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x121);
|
||||
const ProgramId SHAREDDATA_TITLEID_ERROR_MESSAGE_JP = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x122);
|
||||
const ProgramId SHAREDDATA_TITLEID_ERROR_MESSAGE_US = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x123);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_ERROR_MESSAGE_CN = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x124);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_ERROR_MESSAGE_KR = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x125);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_ERROR_MESSAGE_TW = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x126);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_EULA_EU = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x131);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_EULA_JP = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x132);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_EULA_US = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x133);
|
||||
const ProgramId SHAREDDATA_TITLEID_EULA_EU = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x131);
|
||||
const ProgramId SHAREDDATA_TITLEID_EULA_JP = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x132);
|
||||
const ProgramId SHAREDDATA_TITLEID_EULA_US = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x133);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_EULA_CN = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x134);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_EULA_KR = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x135);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_EULA_TW = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x136);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_FONT_STD = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x140);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_FONT_CN = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x141);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_FONT_KR = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x142);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_FONT_TW = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x143);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_RATING_ICON_EU = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x151);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_RATING_ICON_JP = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x152);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_RATING_ICON_US = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x153);
|
||||
const ProgramId SHAREDDATA_TITLEID_FONT_STD = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x140);
|
||||
const ProgramId SHAREDDATA_TITLEID_FONT_CN = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x141);
|
||||
const ProgramId SHAREDDATA_TITLEID_FONT_KR = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x142);
|
||||
@@ -77,12 +84,21 @@
|
||||
const ProgramId SHAREDDATA_TITLEID_RATING_ICON_EU = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x151);
|
||||
const ProgramId SHAREDDATA_TITLEID_RATING_ICON_JP = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x152);
|
||||
const ProgramId SHAREDDATA_TITLEID_RATING_ICON_US = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x153);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_RATING_ICON_CN = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x154);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_RATING_ICON_KR = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x155);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_RATING_ICON_TW = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_SHARED_CONTENT_PROGRAM_ID (0x156);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_NUP_VERSION_EU = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_AUTO_UPDATE_CONTENT_PROGRAM_ID(0x161);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_NUP_VERSION_JP = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_AUTO_UPDATE_CONTENT_PROGRAM_ID(0x162);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_NUP_VERSION_US = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_AUTO_UPDATE_CONTENT_PROGRAM_ID(0x163);
|
||||
const ProgramId SHAREDDATA_TITLEID_NUP_VERSION_EU = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_AUTO_UPDATE_CONTENT_PROGRAM_ID(0x161);
|
||||
const ProgramId SHAREDDATA_TITLEID_NUP_VERSION_JP = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_AUTO_UPDATE_CONTENT_PROGRAM_ID(0x162);
|
||||
const ProgramId SHAREDDATA_TITLEID_NUP_VERSION_US = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_AUTO_UPDATE_CONTENT_PROGRAM_ID(0x163);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_NUP_VERSION_CN = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_AUTO_UPDATE_CONTENT_PROGRAM_ID(0x164);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_NUP_VERSION_KR = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_AUTO_UPDATE_CONTENT_PROGRAM_ID(0x165);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_NUP_VERSION_TW = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_AUTO_UPDATE_CONTENT_PROGRAM_ID(0x166);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_CUP_VERSION_EU = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_AUTO_UPDATE_CONTENT_PROGRAM_ID(0x171);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_CUP_VERSION_JP = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_AUTO_UPDATE_CONTENT_PROGRAM_ID(0x172);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_CUP_VERSION_US = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_AUTO_UPDATE_CONTENT_PROGRAM_ID(0x173);
|
||||
const ProgramId SHAREDDATA_TITLEID_CUP_VERSION_EU = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_AUTO_UPDATE_CONTENT_PROGRAM_ID(0x171);
|
||||
const ProgramId SHAREDDATA_TITLEID_CUP_VERSION_JP = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_AUTO_UPDATE_CONTENT_PROGRAM_ID(0x172);
|
||||
const ProgramId SHAREDDATA_TITLEID_CUP_VERSION_US = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_AUTO_UPDATE_CONTENT_PROGRAM_ID(0x173);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_CUP_VERSION_CN = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_AUTO_UPDATE_CONTENT_PROGRAM_ID(0x174);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_CUP_VERSION_KR = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_AUTO_UPDATE_CONTENT_PROGRAM_ID(0x175);
|
||||
+ const ProgramId SHAREDDATA_TITLEID_CUP_VERSION_TW = NN_PL_CTR_PL_SHAREDDATATITLEID_H_MAKE_AUTO_UPDATE_CONTENT_PROGRAM_ID(0x176);
|
||||
|
||||
} // end of namespace CTR
|
||||
} // end of namespace pl
|
||||
Index: include/nn/pl/CTR/pl_Version.h
|
||||
===================================================================
|
||||
--- include/nn/pl/CTR/pl_Version.h (revision 34322)
|
||||
+++ include/nn/pl/CTR/pl_Version.h (working copy)
|
||||
@@ -1,8 +1,8 @@
|
||||
-/*---------------------------------------------------------------------------*
|
||||
+/*---------------------------------------------------------------------------*
|
||||
Project: Horizon
|
||||
File: pl_Version.h
|
||||
|
||||
- Copyright (C)2010 Nintendo Co., Ltd. All rights reserved.
|
||||
+ Copyright (C)2009-2013 Nintendo Co., Ltd. All rights reserved.
|
||||
|
||||
These coded instructions, statements, and computer programs contain
|
||||
proprietary information of Nintendo of America Inc. and/or Nintendo
|
||||
@@ -40,7 +40,9 @@
|
||||
u8 majorVersion; // メジャーバージョン
|
||||
u8 reserved1;
|
||||
char region; // J:日本、U:北米、E:欧州・豪州、…
|
||||
- u8 reserved2[3];
|
||||
+ u8 snakeMicroVersion; // snake用 マイクロバージョン(非表示)
|
||||
+ u8 snakeMinorVersion; // snake用 マイナーバージョン
|
||||
+ u8 snakeMajorVersion; // snake用 メジャーバージョン
|
||||
};
|
||||
|
||||
/*!
|
||||
|
||||
@ -33,6 +33,7 @@
|
||||
#include "scrollBuffer.h"
|
||||
#include "VersionDetect.h"
|
||||
#include "HeapManager.h"
|
||||
#include "Util.h"
|
||||
|
||||
namespace
|
||||
{
|
||||
@ -308,13 +309,14 @@ extern "C" void nnMain()
|
||||
NN_LOG("Start Self Cup\n");
|
||||
nn::Result result;
|
||||
Initialize();
|
||||
VerDef versionData;
|
||||
VerDef version;
|
||||
Util utility;
|
||||
|
||||
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]);
|
||||
GetSystemVersion(&version, region);
|
||||
s_scrollBuffer->AppendText("Version: %d.%d.%d-%d%c", utility.GetCupMajorVersion(version), utility.GetCupMinorVersion(version),
|
||||
utility.GetCupMicroVersion(version), utility.GetNupVersion(version), nn::cfg::GetRegionCodeA3(region)[0]);
|
||||
|
||||
nn::am::ProgramInfo outInfos;
|
||||
result = nn::am::GetProgramInfos(&outInfos, nn::fs::MEDIA_TYPE_NAND, &MMEN_PROGRAM_ID, 1);
|
||||
@ -328,10 +330,10 @@ extern "C" void nnMain()
|
||||
}
|
||||
|
||||
s_scrollBuffer->AppendText("")->Render();
|
||||
GetSystemVersion(&versionData, region);
|
||||
GetSystemVersion(&version, 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]);
|
||||
s_scrollBuffer->AppendText("Version: %d.%d.%d-%d%c", utility.GetCupMajorVersion(version), utility.GetCupMinorVersion(version),
|
||||
utility.GetCupMicroVersion(version), utility.GetNupVersion(version), nn::cfg::GetRegionCodeA3(region)[0]);
|
||||
|
||||
s_scrollBuffer->AppendText("")->Render();
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user