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 44: |
Line 46: |
| | 0x3034 | | | 0x3034 |
| | 0x1 | | | 0x1 |
− | | isScreenshotEnabled | + | | Screenshot |
| |- | | |- |
| | 0x3035 | | | 0x3035 |
Line 52: |
Line 54: |
| | 0x3036 | | | 0x3036 |
| | 0x1 | | | 0x1 |
− | | isDataLossConfirmationEnabled | + | | DataLossConfirmation |
| |- | | |- |
| | 0x3037 | | | 0x3037 |
| | 0x1 | | | 0x1 |
− | | PlayLogPolicy | + | | [[#PlayLogPolicy]] |
| |- | | |- |
| | 0x3038 | | | 0x3038 |
Line 116: |
Line 118: |
| | 0x30F2 | | | 0x30F2 |
| | 0x1 | | | 0x1 |
− | | isRuntimeAddOnContentInstallEnabled | + | | RuntimeAddOnContentInstall |
| |- | | |- |
| | 0x30F3 | | | 0x30F3 |
| | 0x3 | | | 0x3 |
− | | ? | + | | Reserved |
| |- | | |- |
| | 0x30F6 | | | 0x30F6 |
Line 136: |
Line 138: |
| | 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 148: |
Line 150: |
| | 0x3148 | | | 0x3148 |
| | 0x8 | | | 0x8 |
− | | UserAccountSaveDataSizeMax | + | | UserAccountSaveDataMaxSize |
| |- | | |- |
| | 0x3150 | | | 0x3150 |
| | 0x8 | | | 0x8 |
− | | UserAccountSaveDataJournalSizeMax | + | | UserAccountSaveDataMaxJournalSize |
| |- | | |- |
| | 0x3158 | | | 0x3158 |
| | 0x8 | | | 0x8 |
− | | DeviceSaveDataSizeMax | + | | DeviceSaveDataMaxSize |
| |- | | |- |
| | 0x3160 | | | 0x3160 |
| | 0x8 | | | 0x8 |
− | | DeviceSaveDataJournalSizeMax | + | | DeviceSaveDataMaxJournalSize |
| |- | | |- |
| | 0x3168 | | | 0x3168 |
Line 176: |
Line 178: |
| | 0x3180 | | | 0x3180 |
| | 0x8 | | | 0x8 |
− | | CacheStorageDataAndJournalSizeMax | + | | CacheStorageMaxSizeAndMaxJournalSize |
| |- | | |- |
| | 0x3188 | | | 0x3188 |
| | 0x8 | | | 0x8 |
− | | CacheStorageIndexMax | + | | CacheStorageMaxIndex |
| |- | | |- |
| | 0x3190 | | | 0x3190 |
Line 203: |
Line 205: |
| |- | | |- |
| | 0x3214 | | | 0x3214 |
− | | 0xEC | + | | 0x4 |
| + | | Reserved |
| + | |- |
| + | | 0x3218 |
| + | | 0x18 |
| + | | [[#SendDataConfiguration/ReceivableDataConfiguration Entry|SendDataConfiguration]] |
| + | |- |
| + | | 0x3230 |
| + | | 0x180 (0x18 * 0x10) |
| + | | [[#SendDataConfiguration/ReceivableDataConfiguration Entry|ReceivableDataConfigurations]] |
| + | |- |
| + | | 0x33B0 |
| + | | 0x8 |
| + | | JitConfigurationFlag |
| + | |- |
| + | | 0x33B8 |
| + | | 0x8 |
| + | | MemorySize |
| + | |- |
| + | | 0x33C0 |
| + | | 0xC40 |
| | Reserved | | | Reserved |
| |} | | |} |
Line 257: |
Line 279: |
| | 12 || "Korean" | | | 12 || "Korean" |
| |- | | |- |
− | | 13 || "Taiwanese" | + | | 13 || "TraditionalChinese" |
| |- | | |- |
− | | 14 || "Chinese" | + | | 14 || "SimplifiedChinese" |
| |} | | |} |
| | | |
Line 265: |
Line 287: |
| | | |
| == VideoCaptureMode == | | == VideoCaptureMode == |
− |
| |
| 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 277: |
Line 298: |
| |- | | |- |
| | 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. |
| |} | | |} |
| | | |
− | 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.
| + | == SendDataConfiguration/ReceivableDataConfiguration Entry == |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Offset |
| + | ! Size |
| + | ! Description |
| + | |- |
| + | | 0x0 |
| + | | 0x8 |
| + | | Id |
| + | |- |
| + | | 0x8 |
| + | | 0x10 |
| + | | Key |
| + | |} |