NACP: Difference between revisions
No edit summary |
|||
| (One intermediate revision by one other user not shown) | |||
| Line 22: | Line 22: | ||
| 0x3025 | | 0x3025 | ||
| 0x1 | | 0x1 | ||
| StartupUserAccount | | [[#StartupUserAccount|StartupUserAccount]] | ||
|- | |- | ||
| 0x3026 | | 0x3026 | ||
| 0x1 | | 0x1 | ||
| UserAccountSwitchLock | | [[#UserAccountSwitchLock|UserAccountSwitchLock]] | ||
|- | |- | ||
| 0x3027 | | 0x3027 | ||
| 0x1 | | 0x1 | ||
| AddOnContentRegistrationType | | [[#AddOnContentRegistrationType|AddOnContentRegistrationType]] | ||
|- | |- | ||
| 0x3028 | | 0x3028 | ||
| Line 46: | Line 46: | ||
| 0x3034 | | 0x3034 | ||
| 0x1 | | 0x1 | ||
| Screenshot | | [[#Screenshot|Screenshot]] | ||
|- | |- | ||
| 0x3035 | | 0x3035 | ||
| 0x1 | | 0x1 | ||
| [[#VideoCapture]] | | [[#VideoCapture|VideoCapture]] | ||
|- | |- | ||
| 0x3036 | | 0x3036 | ||
| 0x1 | | 0x1 | ||
| DataLossConfirmation | | [[#DataLossConfirmation|DataLossConfirmation]] | ||
|- | |- | ||
| 0x3037 | | 0x3037 | ||
| 0x1 | | 0x1 | ||
| [[#PlayLogPolicy]] | | [[#PlayLogPolicy|PlayLogPolicy]] | ||
|- | |- | ||
| 0x3038 | | 0x3038 | ||
| Line 110: | Line 110: | ||
| 0x30F0 | | 0x30F0 | ||
| 0x1 | | 0x1 | ||
| LogoType | | [[#LogoType|LogoType]] | ||
|- | |- | ||
| 0x30F1 | | 0x30F1 | ||
| 0x1 | | 0x1 | ||
| LogoHandling | | [[#LogoHandling|LogoHandling]] | ||
|- | |- | ||
| 0x30F2 | | 0x30F2 | ||
| 0x1 | | 0x1 | ||
| RuntimeAddOnContentInstall | | [[#RuntimeAddOnContentInstall|RuntimeAddOnContentInstall]] | ||
|- | |- | ||
| 0x30F3 | | 0x30F3 | ||
| 0x1 | | 0x1 | ||
| RuntimeParameterDelivery | | [[#RuntimeParameterDelivery|RuntimeParameterDelivery]] | ||
|- | |- | ||
| 0x30F4 | | 0x30F4 | ||
| 0x1 | | 0x1 | ||
| AppropriateAgeForChina | | [[#AppropriateAgeForChina|AppropriateAgeForChina]] | ||
|- | |- | ||
| 0x30F5 | | 0x30F5 | ||
| Line 134: | Line 134: | ||
| 0x30F6 | | 0x30F6 | ||
| 0x1 | | 0x1 | ||
| CrashReport | | [[#CrashReport|CrashReport]] | ||
|- | |- | ||
| 0x30F7 | | 0x30F7 | ||
| 0x1 | | 0x1 | ||
| Hdcp | | [[#Hdcp|Hdcp]] | ||
|- | |- | ||
| 0x30F8 | | 0x30F8 | ||
| Line 210: | Line 210: | ||
| 0x3210 | | 0x3210 | ||
| 0x1 | | 0x1 | ||
| PlayLogQueryCapability | | [[#PlayLogQueryCapability|PlayLogQueryCapability]] | ||
|- | |- | ||
| 0x3211 | | 0x3211 | ||
| Line 226: | Line 226: | ||
| 0x3214 | | 0x3214 | ||
| 0x1 | | 0x1 | ||
| [20.0.0+] ApplicationErrorCodePrefix | | [20.0.0+] [[#ApplicationErrorCodePrefix|ApplicationErrorCodePrefix]] | ||
|- | |- | ||
| 0x3215 | | 0x3215 | ||
| 0x1 | | 0x1 | ||
| | | [21.0.0+] [[#TitlesDataFormat|TitlesDataFormat]] | ||
|- | |- | ||
| 0x3216 | | 0x3216 | ||
| Line 238: | Line 238: | ||
| 0x3217 | | 0x3217 | ||
| 0x1 | | 0x1 | ||
| [20.0.0+] ApparentPlatform | | [20.0.0+] [[#ApparentPlatform|ApparentPlatform]] | ||
|- | |- | ||
| 0x3218 | | 0x3218 | ||
| 0x198 | | 0x198 | ||
| [[# | | [[#NeighborDetectionClientConfiguration|NeighborDetectionClientConfiguration]] | ||
|- | |- | ||
| 0x33B0 | | 0x33B0 | ||
| 0x10 | | 0x10 | ||
| [[# | | [[#JitConfiguration|JitConfiguration]] | ||
|- | |- | ||
| 0x33C0 | | 0x33C0 | ||
| 0x40 | | 0x40 (0x2 * 32) | ||
| | | RequiredAddOnContentsSetBinaryDescriptor | ||
|- | |- | ||
| 0x3400 | | 0x3400 | ||
| Line 270: | Line 270: | ||
| 0x3404 | | 0x3404 | ||
| 0x4 | | 0x4 | ||
| | | [21.0.0+] SupportedLanguageFlagForNxAddon | ||
|- | |- | ||
| 0x3408 | | 0x3408 | ||
| Line 302: | Line 302: | ||
| 0x34E0 | | 0x34E0 | ||
| 0x80 | | 0x80 | ||
| [20.0.0+] SaveDataCertificateBytes | | [20.0.0+] [[#SaveDataCertificateBytes|SaveDataCertificateBytes]] | ||
|- | |- | ||
| 0x3560 | | 0x3560 | ||
| Line 317: | Line 317: | ||
|- | |- | ||
| 0x3568 | | 0x3568 | ||
| | | 0x1 | ||
| [21.0.0+] HasKaraokeFeature | |||
|- | |||
| 0x3569 | |||
| 0x697 | |||
| Reserved | | Reserved | ||
|- | |- | ||
| 0x3C00 | | 0x3C00 | ||
| 0x400 | | 0x400 | ||
| [20.0.0+] PlatformSpecificRegion | | [20.0.0+] [[#PlatformSpecificRegion|PlatformSpecificRegion]] | ||
|} | |} | ||
== ApplicationTitle == | == ApplicationTitle == | ||
This is "nn::ns::ApplicationTitle". | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
| Line 336: | Line 340: | ||
| 0x0 | | 0x0 | ||
| 0x200 | | 0x200 | ||
| | | Name (application name strings) | ||
|- | |- | ||
| 0x200 | | 0x200 | ||
| 0x100 | | 0x100 | ||
| | | Publisher (application publisher strings) | ||
|} | |} | ||
Entry index for each [[Settings_services#LanguageCode|language]]: | Entry index for each [[Settings_services#LanguageCode|language]]: | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
| Line 380: | Line 383: | ||
|- | |- | ||
| 15 || [10.1.0+] "BrazilianPortuguese" | | 15 || [10.1.0+] "BrazilianPortuguese" | ||
|- | |||
| 16 || [21.0.0+] "Polish" | |||
|- | |||
| 17 || [21.0.0+] "Thai" | |||
|} | |} | ||
Official apps tend to have most of the title entries' strings set only to English. Some apps don't have certain title entries set at all. | Official apps tend to have most of the title entries' strings set only to English. Some apps don't have certain title entries set at all. | ||
== StartupUserAccount == | |||
This is "nn::ns::StartupUserAccount". | |||
{| class="wikitable" border="1" | |||
|- | |||
! Value || Description | |||
|- | |||
| 0 || None | |||
|- | |||
| 1 || Required | |||
|- | |||
| 2 || RequiredWithNetworkServiceAccountAvailable | |||
|} | |||
== UserAccountSwitchLock == | |||
This is "nn::ns::UserAccountSwitchLock". | |||
{| class="wikitable" border="1" | |||
|- | |||
! Value || Description | |||
|- | |||
| 0 || Disable | |||
|- | |||
| 1 || Enable | |||
|} | |||
== AddOnContentRegistrationType == | |||
This is "nn::ns::AddOnContentRegistrationType". | |||
{| class="wikitable" border="1" | |||
|- | |||
! Value || Description | |||
|- | |||
| 0 || AllOnLaunch | |||
|- | |||
| 1 || OnDemand | |||
|} | |||
== Screenshot == | |||
This is "nn::ns::Screenshot". | |||
{| class="wikitable" border="1" | |||
|- | |||
! Value || Description | |||
|- | |||
| 0 || Allow | |||
|- | |||
| 1 || Deny | |||
|} | |||
== VideoCapture == | == VideoCapture == | ||
This is | This is "nn::ns::VideoCapture". | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
! Value || | ! Value || Description | ||
|- | |- | ||
| 0 || | | 0 || Disable | ||
|- | |- | ||
| 1 || | | 1 || Manual | ||
|- | |- | ||
| 2 || | | 2 || Enable | ||
|} | |} | ||
This is the enum used to determine how gameplay recording can occur, if at all. | |||
When this value is 0, gameplay cannot be recorded. When this value is 1, the game must manually sacrifice some of its heap as transfer memory for AM's IApplicationProxy->InitializeGamePlayRecording(). When this value is 2, AM will call NS->BoostSystemMemoryResourceSize(), and allocate the required memory for recording automatically without the usermode process having to do anything. | When this value is 0, gameplay cannot be recorded. When this value is 1, the game must manually sacrifice some of its heap as transfer memory for AM's IApplicationProxy->InitializeGamePlayRecording(). When this value is 2, AM will call NS->BoostSystemMemoryResourceSize(), and allocate the required memory for recording automatically without the usermode process having to do anything. | ||
== DataLossConfirmation == | |||
This is "nn::ns::DataLossConfirmation". | |||
{| class="wikitable" border="1" | |||
|- | |||
! Value || Description | |||
|- | |||
| 0 || None | |||
|- | |||
| 1 || Required | |||
|} | |||
== PlayLogPolicy == | == PlayLogPolicy == | ||
This is "nn::ns::PlayLogPolicy". | |||
{| class="wikitable" border="1" | |||
|- | |||
! Value || Description | |||
|- | |||
| 0 || Open | |||
|- | |||
| 1 || LogOnly | |||
|- | |||
| 2 || None | |||
|- | |||
| 3 || Closed | |||
|} | |||
[[Applet_Manager_services|AM]] passes [[Shared_Database_services#PlayLogPolicy|this]] to [[Shared_Database_services|pdm:ntfy]] cmd9. | [[Applet_Manager_services|AM]] passes [[Shared_Database_services#PlayLogPolicy|this]] to [[Shared_Database_services|pdm:ntfy]] cmd9. | ||
== LogoType == | |||
This is "nn::ns::LogoType". | |||
{| class="wikitable" border="1" | |||
|- | |||
! Value || Description | |||
|- | |||
| 0 || LicensedByNintendo | |||
|- | |||
| 1 || DistributedByNintendo | |||
|- | |||
| 2 || Nintendo | |||
|} | |||
== LogoHandling == | |||
This is "nn::ns::LogoHandling". | |||
{| class="wikitable" border="1" | |||
|- | |||
! Value || Description | |||
|- | |||
| 0 || Auto | |||
|- | |||
| 1 || Manual | |||
|} | |||
== RuntimeAddOnContentInstall == | |||
This is "nn::ns::RuntimeAddOnContentInstall". | |||
{| class="wikitable" border="1" | |||
|- | |||
! Value || Description | |||
|- | |||
| 0 || Deny | |||
|- | |||
| 1 || AllowAppend | |||
|- | |||
| 2 || AllowAppendButDontDownloadWhenUsingNetwork | |||
|} | |||
== RuntimeParameterDelivery == | |||
This is "nn::ns::RuntimeParameterDelivery". | |||
{| class="wikitable" border="1" | |||
|- | |||
! Value || Description | |||
|- | |||
| 0 || Always | |||
|- | |||
| 1 || AlwaysIfUserStateMatched | |||
|- | |||
| 2 || OnRestart | |||
|} | |||
== AppropriateAgeForChina == | |||
This is "nn::ns::AppropriateAgeForChina". | |||
{| class="wikitable" border="1" | |||
|- | |||
! Value || Description | |||
|- | |||
| 0 || None | |||
|- | |||
| 1 || Age8 | |||
|- | |||
| 2 || Age12 | |||
|- | |||
| 3 || Age16 | |||
|} | |||
== CrashReport == | |||
This is "nn::ns::CrashReport". | |||
{| class="wikitable" border="1" | |||
|- | |||
! Value || Description | |||
|- | |||
| 0 || Deny | |||
|- | |||
| 1 || Allow | |||
|} | |||
== Hdcp == | |||
This is "nn::ns::Hdcp". | |||
{| class="wikitable" border="1" | |||
|- | |||
! Value || Description | |||
|- | |||
| 0 || None | |||
|- | |||
| 1 || Required | |||
|} | |||
== PlayLogQueryCapability == | == PlayLogQueryCapability == | ||
This is "nn::ns::PlayLogQueryCapability". | |||
{| class="wikitable" border="1" | |||
|- | |||
! Value || Description | |||
|- | |||
| 0 || None | |||
|- | |||
| 1 || WhiteList | |||
|- | |||
| 2 || All | |||
|} | |||
This is used with [[Applet_Manager_services|AM]] commands QueryApplicationPlayStatistics and QueryApplicationPlayStatisticsByUid, to verify whether querying the specified titleIDs are allowed. When not allowed, error 0x3E880 is returned. | This is used with [[Applet_Manager_services|AM]] commands QueryApplicationPlayStatistics and QueryApplicationPlayStatisticsByUid, to verify whether querying the specified titleIDs are allowed. When not allowed, error 0x3E880 is returned. | ||
When this value is 0, the specified titleIDs must match the user-process titleID. When this value is 1, the specified titleIDs must match the user-process titleID, or one of the titleIDs from PlayLogQueryableApplicationId. When this value is 2, all titleIDs are allowed. | |||
== ApplicationErrorCodePrefix == | |||
This is "nn::ns::ApplicationErrorCodePrefix". | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
! | ! Offset | ||
! Size | |||
! Description | |||
|- | |||
| 0x0 | |||
| 0x1 | |||
| Value | |||
|} | |||
S1 games (including S2-Edition) built for [20.0.0+] set this to 0x2. This is set to 0x3 with S2-only games. | |||
== TitlesDataFormat == | |||
{| class="wikitable" border="1" | |||
|- | |- | ||
! Value | |||
! Description | |||
|- | |- | ||
| | | 0 | ||
| Format0 | |||
|- | |- | ||
| | | 1 | ||
| Format1 | |||
|} | |} | ||
== | With Format0, [[#ApplicationTitle|Title]] is an uncompressed array of up to 16 [[#ApplicationTitle|ApplicationTitle]] entries. | ||
With Format1, [[#ApplicationTitle|Title]] is Deflate compressed: | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 | |||
| 0x2 | |||
| DataSize | |||
|- | |||
| 0x2 | |||
| 0x2FFE | |||
| Data | |||
|} | |||
== ApparentPlatform == | |||
This is "nn::ns::ApparentPlatform". | |||
This is 0x0 with S1 games. This is set to 0x1 with S2-only and Switch 2 Edition games. | |||
== NeighborDetectionClientConfiguration == | |||
This is "nn::ns::NeighborDetectionClientConfiguration". | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
| Line 426: | Line 664: | ||
| 0x0 | | 0x0 | ||
| 0x18 | | 0x18 | ||
| [[# | | [[#NeighborDetectionGroupConfiguration|SendGroupConfiguration]] | ||
|- | |- | ||
| 0x18 | | 0x18 | ||
| 0x180 (0x18 * 16) | | 0x180 (0x18 * 16) | ||
| [[# | | [[#NeighborDetectionGroupConfiguration|ReceivableGroupConfigurations]] | ||
|} | |} | ||
=== | === NeighborDetectionGroupConfiguration === | ||
This is "nn::ns::NeighborDetectionGroupConfiguration". | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
| Line 442: | Line 682: | ||
| 0x0 | | 0x0 | ||
| 0x8 | | 0x8 | ||
| | | Id | ||
|- | |- | ||
| 0x8 | | 0x8 | ||
| Line 449: | Line 689: | ||
|} | |} | ||
== | == JitConfiguration == | ||
This is "nn::ns::JitConfiguration". | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
| Line 458: | Line 700: | ||
| 0x0 | | 0x0 | ||
| 0x8 | | 0x8 | ||
| Flags | | [[#JitConfigurationFlag|Flags]] | ||
|- | |- | ||
| 0x8 | | 0x8 | ||
| Line 465: | Line 707: | ||
|} | |} | ||
== | === JitConfigurationFlag === | ||
This is "nn::ns::JitConfigurationFlag". | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
! | ! Value | ||
! Description | ! Description | ||
|- | |- | ||
| | | 0 | ||
| | | None | ||
| | |- | ||
| 1 | |||
| Enabled | |||
|} | |} | ||
| Line 532: | Line 777: | ||
| Reserved | | Reserved | ||
|} | |} | ||
== SaveDataCertificateBytes == | |||
When initialized, the first two bytes here are both 0x1. With S2-only games, the second byte is instead set to 0x4. | |||
u8 +0x11 is 0x0 with S1 games, this is 0x1 with S2-only games. | |||
== PlatformSpecificRegion == | |||
Data here is only initialized with S2-only games. | |||