NACP: Difference between revisions

Liam (talk | contribs)
No edit summary
Added info from a GameShare S2 NACP, etc.
 
(11 intermediate revisions by 2 users not shown)
Line 13: Line 13:
|-
|-
| 0x0
| 0x0
| 0x3000 (0x300*0x10)
| 0x3000 (0x300 * 16)
| [[#Title Entry|Title entries]]
| [[#ApplicationTitle|Title]]
|-
|-
| 0x3000
| 0x3000
Line 34: Line 34:
| 0x3028
| 0x3028
| 0x4
| 0x4
| ApplicationAttribute
| AttributeFlag
|-
|-
| 0x302C
| 0x302C
| 0x4
| 0x4
| SupportedLanguages
| SupportedLanguageFlag
|-
|-
| 0x3030
| 0x3030
| 0x4
| 0x4
| ParentalControl
| ParentalControlFlag
|-
|-
| 0x3034
| 0x3034
Line 50: Line 50:
| 0x3035
| 0x3035
| 0x1
| 0x1
| [[#VideoCaptureMode]]
| [[#VideoCapture]]
|-
|-
| 0x3036
| 0x3036
Line 105: Line 105:
|-
|-
| 0x30B0
| 0x30B0
| 0x40 (0x8*0x8)
| 0x40 (0x8 * 8)
| LocalCommunicationIds
| LocalCommunicationId
|-
|-
| 0x30F0
| 0x30F0
Line 121: Line 121:
|-
|-
| 0x30F3
| 0x30F3
| 0x3
| 0x1
| RuntimeParameterDelivery
|-
| 0x30F4
| 0x1
| AppropriateAgeForChina
|-
| 0x30F5
| 0x1
| Reserved
| Reserved
|-
|-
Line 150: Line 158:
| 0x3148
| 0x3148
| 0x8
| 0x8
| UserAccountSaveDataMaxSize
| UserAccountSaveDataSizeMax
|-
|-
| 0x3150
| 0x3150
| 0x8
| 0x8
| UserAccountSaveDataMaxJournalSize
| UserAccountSaveDataJournalSizeMax
|-
|-
| 0x3158
| 0x3158
| 0x8
| 0x8
| DeviceSaveDataMaxSize
| DeviceSaveDataSizeMax
|-
|-
| 0x3160
| 0x3160
| 0x8
| 0x8
| DeviceSaveDataMaxJournalSize
| DeviceSaveDataJournalSizeMax
|-
|-
| 0x3168
| 0x3168
Line 178: Line 186:
| 0x3180
| 0x3180
| 0x8
| 0x8
| CacheStorageMaxSizeAndMaxJournalSize
| CacheStorageDataAndJournalSizeMax
|-
|-
| 0x3188
| 0x3188
| 0x8
| 0x2
| CacheStorageMaxIndex
| CacheStorageIndexMax
|-
| 0x318A
| 0x1
| Reserved
|-
| 0x318B
| 0x1
| RuntimeUpgrade
|-
| 0x318C
| 0x4
| SupportingLimitedApplicationLicenses
|-
|-
| 0x3190
| 0x3190
| 0x80 (0x8*0x10)
| 0x80 (0x8 * 16)
| PlayLogQueryableApplicationId
| PlayLogQueryableApplicationId
|-
|-
Line 205: Line 225:
|-
|-
| 0x3214
| 0x3214
| 0x1
| [20.0.0+] [[#ApplicationErrorCodePrefix|ApplicationErrorCodePrefix]]
|-
| 0x3215
| 0x1
| Reserved
|-
| 0x3216
| 0x1
| [20.0.0+] AcdIndex
|-
| 0x3217
| 0x1
| [20.0.0+] [[#ApparentPlatform|ApparentPlatform]]
|-
| 0x3218
| 0x198
| [[#ApplicationNeighborDetectionClientConfiguration|NeighborDetectionClientConfiguration]]
|-
| 0x33B0
| 0x10
| [[#ApplicationJitConfiguration|JitConfiguration]]
|-
| 0x33C0
| 0x40
| [[#RequiredAddOnContentsSetBinaryDescriptor|RequiredAddOnContentsSetBinaryDescriptor]]
|-
| 0x3400
| 0x1
| PlayReportPermission
|-
| 0x3401
| 0x1
| CrashScreenshotForProd
|-
| 0x3402
| 0x1
| CrashScreenshotForDev
|-
| 0x3403
| 0x1
| ContentsAvailabilityTransitionPolicy
|-
| 0x3404
| 0x4
| Reserved
|-
| 0x3408
| 0x40
| [[#AccessibleLaunchRequiredVersionValue|AccessibleLaunchRequiredVersion]]
|-
| 0x3448
| 0x89
| [20.0.0+] [[#ApplicationControlDataCondition|ApplicationControlDataCondition]]
|-
| 0x34D1
| 0x1
| [20.0.0+] InitialProgramIndex
|-
| 0x34D2
| 0x2
| Reserved
|-
| 0x34D4
| 0x4
| 0x4
| [20.0.0+] AccessibleProgramIndexFlags
|-
| 0x34D8
| 0x1
| [20.0.0+] AlbumFileExport
|-
| 0x34D9
| 0x7
| Reserved
| Reserved
|-
|-
| 0x3218
| 0x34E0
| 0x18
| 0x80
| [[#SendDataConfiguration/ReceivableDataConfiguration Entry|SendDataConfiguration]]
| [20.0.0+] [[#SaveDataCertificateBytes|SaveDataCertificateBytes]]
|-
|-
| 0x3230
| 0x3560
| 0x180 (0x18 * 0x10)
| 0x1
| [[#SendDataConfiguration/ReceivableDataConfiguration Entry|ReceivableDataConfigurations]]
| [20.0.0+] HasInGameVoiceChat
|-
|-
| 0x33B0
| 0x3561
| 0x8
| 0x3
| JitConfigurationFlag
| Reserved
|-
|-
| 0x33B8
| 0x3564
| 0x8
| 0x4
| MemorySize
| [20.0.0+] SupportedExtraAddOnContentFlag
|-
|-
| 0x33C0
| 0x3568
| 0xC40
| 0x698
| Reserved
| Reserved
|-
| 0x3C00
| 0x400
| [20.0.0+] [[#PlatformSpecificRegion|PlatformSpecificRegion]]
|}
|}


== Title Entry ==
== ApplicationTitle ==
Total size is 0x300-bytes.
Total size is 0x300-bytes.


Line 282: Line 378:
|-
|-
| 14 || "SimplifiedChinese"
| 14 || "SimplifiedChinese"
|-
| 15 || [10.1.0+] "BrazilianPortuguese"
|}
|}


Official apps tend to have the title entries' strings set only to English. Some apps don't have certain title entries set at all. In addition, official apps usually (?) don't have the following title entries set: Korean, Taiwanese, and Chinese.
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.


== VideoCaptureMode ==
== VideoCapture ==
This is the enum used to determine how gameplay recording can occur, if at all.
This is the enum used to determine how gameplay recording can occur, if at all.


Line 319: Line 417:
|}
|}


== SendDataConfiguration/ReceivableDataConfiguration Entry ==
== ApplicationErrorCodePrefix ==
S1 games (including S2-Edition) built for [20.0.0+] set this to 0x2. This is set to 0x3 with S2-only games.
 
== ApparentPlatform ==
This is 0x0 with S1 games. This is set to 0x1 with S2-only and Switch 2 Edition games.
 
== ApplicationNeighborDetectionClientConfiguration ==
{| class="wikitable" border="1"
|-
! Offset
! Size
! Description
|-
| 0x0
| 0x18
| [[#ApplicationNeighborDetectionGroupConfiguration|SendGroupConfiguration]]
|-
| 0x18
| 0x180 (0x18 * 16)
| [[#ApplicationNeighborDetectionGroupConfiguration|ReceivableGroupConfigurations]]
|}


=== ApplicationNeighborDetectionGroupConfiguration ===
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
Line 329: Line 448:
| 0x0
| 0x0
| 0x8
| 0x8
| Id
| GroupId
|-
|-
| 0x8
| 0x8
Line 335: Line 454:
| Key
| Key
|}
|}
== ApplicationJitConfiguration ==
{| class="wikitable" border="1"
|-
! Offset
! Size
! Description
|-
| 0x0
| 0x8
| Flags
|-
| 0x8
| 0x8
| MemorySize
|}
== RequiredAddOnContentsSetBinaryDescriptor ==
{| class="wikitable" border="1"
|-
! Offset
! Size
! Description
|-
| 0x0
| 0x40 (0x2 * 32)
| Descriptors
|}
== AccessibleLaunchRequiredVersionValue ==
{| class="wikitable" border="1"
|-
! Offset
! Size
! Description
|-
| 0x0
| 0x40 (0x8 * 8)
| Array of [[NCM_services#ApplicationId|ApplicationId]]
|}
== ApplicationControlDataCondition ==
{| class="wikitable" border="1"
|-
! Offset
! Size
! Description
|-
| 0x0
| 0x8 (0x1 * 8)
| Type
|-
| 0x8
| 0x80 (0x10 * 8)
| [[#ApplicationControlDataConditionData|Data]]
|-
| 0x88
| 0x1
| Count
|}
=== ApplicationControlDataConditionData ===
{| class="wikitable" border="1"
|-
! Offset
! Size
! Description
|-
| 0x0
| 0x1
| Priority
|-
| 0x1
| 0x7
| Reserved
|-
| 0x8
| 0x2
| AocIndex
|-
| 0xA
| 0x6
| 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.