Changes

Jump to navigation Jump to search
2,472 bytes added ,  19:27, 7 April 2021
no edit summary
Line 1: Line 1:  +
This is '''control.nacp''', "nn::ns::ApplicationControlProperty".
 +
 
Roughly equivalent to non-gfx areas of 3DS SMDH. All strings for language-entries are UTF-8, unlike SMDH which uses UTF-16.
 
Roughly equivalent to non-gfx areas of 3DS SMDH. All strings for language-entries are UTF-8, unlike SMDH which uses UTF-16.
   Line 12: Line 14:  
| 0x0
 
| 0x0
 
| 0x3000 (0x300*0x10)
 
| 0x3000 (0x300*0x10)
| [[#Title Entry|Title entries]]
+
| [[#ApplicationTitle|Title]]
 
|-
 
|-
 
| 0x3000
 
| 0x3000
Line 24: Line 26:  
| 0x3026
 
| 0x3026
 
| 0x1
 
| 0x1
| ?
+
| UserAccountSwitchLock
 
|-
 
|-
 
| 0x3027
 
| 0x3027
 
| 0x1
 
| 0x1
| ?
+
| AddOnContentRegistrationType
 
|-
 
|-
 
| 0x3028
 
| 0x3028
 
| 0x4
 
| 0x4
| ApplicationAttribute
+
| AttributeFlag
 
|-
 
|-
 
| 0x302C
 
| 0x302C
 
| 0x4
 
| 0x4
| SupportedLanguages
+
| SupportedLanguageFlag
 
|-
 
|-
 
| 0x3030
 
| 0x3030
 
| 0x4
 
| 0x4
| ParentalControl
+
| ParentalControlFlag
 
|-
 
|-
 
| 0x3034
 
| 0x3034
 
| 0x1
 
| 0x1
| isScreenshotEnabled
+
| Screenshot
 
|-
 
|-
 
| 0x3035
 
| 0x3035
 
| 0x1
 
| 0x1
| [[#VideoCaptureMode]]
+
| [[#VideoCapture]]
 
|-
 
|-
 
| 0x3036
 
| 0x3036
 
| 0x1
 
| 0x1
| isDataLossConfirmationEnabled
+
| DataLossConfirmation
 
|-
 
|-
 
| 0x3037
 
| 0x3037
 
| 0x1
 
| 0x1
| PlayLogPolicy
+
| [[#PlayLogPolicy]]
 
|-
 
|-
 
| 0x3038
 
| 0x3038
Line 104: Line 106:  
| 0x30B0
 
| 0x30B0
 
| 0x40 (0x8*0x8)
 
| 0x40 (0x8*0x8)
| LocalCommunicationIds
+
| LocalCommunicationId
 
|-
 
|-
 
| 0x30F0
 
| 0x30F0
Line 116: Line 118:  
| 0x30F2
 
| 0x30F2
 
| 0x1
 
| 0x1
| isRuntimeAddOnContentInstallEnabled
+
| RuntimeAddOnContentInstall
 
|-
 
|-
 
| 0x30F3
 
| 0x30F3
| 0x3
+
| 0x1
| ?
+
| RuntimeParameterDelivery
 +
|-
 +
| 0x30F4
 +
| 0x2
 +
| Reserved
 
|-
 
|-
 
| 0x30F6
 
| 0x30F6
Line 136: Line 142:  
| 0x3100
 
| 0x3100
 
| 0x41
 
| 0x41
| [[BCAT_Content_Container|BcatPassphrase]], all-zero when unused.
+
| [[BCAT_Content_Container|BcatPassphrase]] (all-zero when unused)
 
|-
 
|-
 
| 0x3141
 
| 0x3141
 
| 0x1
 
| 0x1
| ?
+
| StartupUserAccountOption
 
|-
 
|-
 
| 0x3142
 
| 0x3142
Line 168: Line 174:  
| 0x3170
 
| 0x3170
 
| 0x8
 
| 0x8
| ?
+
| CacheStorageSize
 
|-
 
|-
 
| 0x3178
 
| 0x3178
 
| 0x8
 
| 0x8
| CacheStorageSize
+
| CacheStorageJournalSize
 
|-
 
|-
 
| 0x3180
 
| 0x3180
| 0xE80
+
| 0x8
| ?
+
| CacheStorageDataAndJournalSizeMax
 +
|-
 +
| 0x3188
 +
| 0x2
 +
| CacheStorageIndexMax
 +
|-
 +
| 0x318A
 +
| 0x6
 +
| Reserved
 +
|-
 +
| 0x3190
 +
| 0x80 (0x8*0x10)
 +
| PlayLogQueryableApplicationId
 +
|-
 +
| 0x3210
 +
| 0x1
 +
| PlayLogQueryCapability
 +
|-
 +
| 0x3211
 +
| 0x1
 +
| RepairFlag
 +
|-
 +
| 0x3212
 +
| 0x1
 +
| ProgramIndex
 +
|-
 +
| 0x3213
 +
| 0x1
 +
| RequiredNetworkServiceLicenseOnLaunchFlag
 +
|-
 +
| 0x3214
 +
| 0x4
 +
| Reserved
 +
|-
 +
| 0x3218
 +
| 0x198
 +
| [[#ApplicationNeighborDetectionClientConfiguration|NeighborDetectionClientConfiguration]]
 +
|-
 +
| 0x33B0
 +
| 0x10
 +
| [[#ApplicationJitConfiguration|JitConfiguration]]
 +
|-
 +
| 0x33C0
 +
| 0x40 (0x2*0x20)
 +
| RequiredAddOnContentsSetBinaryDescriptor
 +
|-
 +
| 0x3400
 +
| 0x1
 +
| PlayReportPermission
 +
|-
 +
| 0x3401
 +
| 0x1
 +
| CrashScreenshotForProd
 +
|-
 +
| 0x3402
 +
| 0x1
 +
| CrashScreenshotForDev
 +
|-
 +
| 0x3403
 +
| 0x5
 +
| Reserved
 +
|-
 +
| 0x3408
 +
| 0x40 (0x8*0x8)
 +
| AccessibleLaunchRequiredVersion
 +
|-
 +
| 0x3448
 +
| 0xBB8
 +
| Reserved
 
|}
 
|}
   −
== Title Entry ==
+
== ApplicationTitle ==
 
Total size is 0x300-bytes.
 
Total size is 0x300-bytes.
   Line 229: Line 303:  
| 12 || "Korean"
 
| 12 || "Korean"
 
|-
 
|-
| 13 || "Taiwanese"
+
| 13 || "TraditionalChinese"
 
|-
 
|-
| 14 || "Chinese"
+
| 14 || "SimplifiedChinese"
 
|}
 
|}
    
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 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.
   −
== 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.
    
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
! Enum Value || Meaning
+
! Value || Meaning
 
|-
 
|-
 
| 0 || Disabled
 
| 0 || Disabled
Line 249: Line 322:  
|-
 
|-
 
| 2 || Automatic
 
| 2 || Automatic
 +
|}
 +
 +
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.
 +
 +
== PlayLogPolicy ==
 +
[[Applet_Manager_services|AM]] passes [[Shared_Database_services#PlayLogPolicy|this]] to [[Shared_Database_services|pdm:ntfy]] cmd9.
 +
 +
== PlayLogQueryCapability ==
 +
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.
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Value || Meaning || Description
 +
|-
 +
| 0 || None || The specified titleIDs must match the user-process titleID.
 +
|-
 +
| 1 || WhiteList || The specified titleIDs must match the user-process titleID, or one of the titleIDs from PlayLogQueryableApplicationId.
 +
|-
 +
| 2 || All || All titleIDs are allowed.
 +
|}
 +
 +
== ApplicationNeighborDetectionClientConfiguration ==
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0
 +
| 0x18
 +
| [[#ApplicationNeighborDetectionGroupConfiguration|SendGroupConfiguration]]
 +
|-
 +
| 0x18
 +
| 0x180 (0x18 * 0x10)
 +
| [[#ApplicationNeighborDetectionGroupConfiguration|ReceivableGroupConfigurations]]
 +
|}
 +
 +
=== ApplicationNeighborDetectionGroupConfiguration ===
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0
 +
| 0x8
 +
| GroupId
 
|-
 
|-
 +
| 0x8
 +
| 0x10
 +
| Key
 
|}
 
|}
   −
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.
+
== ApplicationJitConfiguration ==
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0
 +
| 0x8
 +
| Flags
 +
|-
 +
| 0x8
 +
| 0x8
 +
| MemorySize
 +
|}

Navigation menu