Settings services: Difference between revisions

 
(8 intermediate revisions by 2 users not shown)
Line 96: Line 96:
|-
|-
| 23 || [9.0.0+] SetMemoryUsageRateFlag
| 23 || [9.0.0+] SetMemoryUsageRateFlag
|-
| 24 || [20.0.0+] CommitSettings
|}
|}


Line 366: Line 368:
| 2 || GetNetworkSettings
| 2 || GetNetworkSettings
|-
|-
| 3 || [[#GetFirmwareVersion]]
| 3 || [S1] [[#GetFirmwareVersion]]
|-
|-
| 4 || [3.0.0+] GetFirmwareVersion2
| 4 || [3.0.0+] GetFirmwareVersion2
|-
|-
| 5 || [5.0.0+] GetFirmwareVersionDigest
| 5 || [S1] [5.0.0+] GetFirmwareVersionDigest
|-
|-
| 7 || GetLockScreenFlag
| 7 || GetLockScreenFlag
Line 380: Line 382:
| 10 || SetBacklightSettings
| 10 || SetBacklightSettings
|-
|-
| 11 || SetBluetoothDevicesSettings
| 11 || [S1] SetBluetoothDevicesSettings
|-
|-
| 12 || GetBluetoothDevicesSettings
| 12 || [S1] GetBluetoothDevicesSettings
|-
|-
| 13 || GetExternalSteadyClockSourceId
| 13 || GetExternalSteadyClockSourceId
Line 408: Line 410:
| 24 || [[#SetColorSetId]]
| 24 || [[#SetColorSetId]]
|-
|-
| 25 || GetConsoleInformationUploadFlag
| 25 || [S1] GetConsoleInformationUploadFlag
|-
|-
| 26 || SetConsoleInformationUploadFlag
| 26 || [S1] SetConsoleInformationUploadFlag
|-
|-
| 27 || GetAutomaticApplicationDownloadFlag
| 27 || [S1] GetAutomaticApplicationDownloadFlag
|-
|-
| 28 || SetAutomaticApplicationDownloadFlag
| 28 || [S1] SetAutomaticApplicationDownloadFlag
|-
|-
| 29 || [[#GetNotificationSettings]]
| 29 || [[#GetNotificationSettings]]
Line 452: Line 454:
| 48 || SetQuestFlag
| 48 || SetQuestFlag
|-
|-
| 49 || [[#GetDataDeletionSettings]]
| 49 || [S1] [[#GetDataDeletionSettings]]
|-
|-
| 50 || [[#SetDataDeletionSettings]]
| 50 || [S1] [[#SetDataDeletionSettings]]
|-
|-
| 51 || GetInitialSystemAppletProgramId
| 51 || [S1] GetInitialSystemAppletProgramId
|-
|-
| 52 || GetOverlayDispProgramId
| 52 || [S1] GetOverlayDispProgramId
|-
|-
| 53 || GetDeviceTimeZoneLocationName
| 53 || GetDeviceTimeZoneLocationName
Line 464: Line 466:
| 54 || SetDeviceTimeZoneLocationName
| 54 || SetDeviceTimeZoneLocationName
|-
|-
| 55 || [[#GetWirelessCertificationFileSize]]
| 55 || [S1] [[#GetWirelessCertificationFileSize]]
|-
|-
| 56 || [[#GetWirelessCertificationFile]]
| 56 || [S1] [[#GetWirelessCertificationFile]]
|-
|-
| 57 || [[#SetRegionCode]]
| 57 || [[#SetRegionCode]]
Line 484: Line 486:
| 64 || [[#SetPrimaryAlbumStorage]]
| 64 || [[#SetPrimaryAlbumStorage]]
|-
|-
| 65 || GetUsb30EnableFlag
| 65 || [S1] GetUsb30EnableFlag
|-
|-
| 66 || SetUsb30EnableFlag
| 66 || [S1] SetUsb30EnableFlag
|-
|-
| 67 || [[#GetBatteryLot]]
| 67 || [[#GetBatteryLot]]
Line 504: Line 506:
| 74 || SetWirelessLanEnableFlag
| 74 || SetWirelessLanEnableFlag
|-
|-
| 75 || [[#GetInitialLaunchSettings]]
| 75 || [S1] [[#GetInitialLaunchSettings]]
|-
|-
| 76 || [[#SetInitialLaunchSettings]]
| 76 || [S1] [[#SetInitialLaunchSettings]]
|-
|-
| 77 || [[#GetDeviceNickName]]
| 77 || [[#GetDeviceNickName]]
Line 514: Line 516:
| 79 || [[#GetProductModel]]
| 79 || [[#GetProductModel]]
|-
|-
| 80 || GetLdnChannel
| 80 || [S1] GetLdnChannel
|-
|-
| 81 || SetLdnChannel
| 81 || [S1] SetLdnChannel
|-
|-
| 82 || AcquireTelemetryDirtyFlagEventHandle
| 82 || AcquireTelemetryDirtyFlagEventHandle
Line 548: Line 550:
| 96 || [2.0.0+] SetAutoUpdateEnableFlag
| 96 || [2.0.0+] SetAutoUpdateEnableFlag
|-
|-
| 97 || [2.0.0+] GetNxControllerSettings
| 97 || [S1] [2.0.0+] GetNxControllerSettings
|-
|-
| 98 || [2.0.0+] SetNxControllerSettings
| 98 || [S1] [2.0.0+] SetNxControllerSettings
|-
|-
| 99 || [2.0.0+] GetBatteryPercentageFlag
| 99 || [2.0.0+] GetBatteryPercentageFlag
Line 556: Line 558:
| 100 || [2.0.0+] SetBatteryPercentageFlag
| 100 || [2.0.0+] SetBatteryPercentageFlag
|-
|-
| 101 || [2.0.0+] GetExternalRtcResetFlag
| 101 || [S1] [2.0.0+] GetExternalRtcResetFlag
|-
|-
| 102 || [2.0.0+] SetExternalRtcResetFlag
| 102 || [S1] [2.0.0+] SetExternalRtcResetFlag
|-
|-
| 103 || [3.0.0+] GetUsbFullKeyEnableFlag
| 103 || [3.0.0+] GetUsbFullKeyEnableFlag
Line 576: Line 578:
| 110 || [3.0.0+] SetHeadphoneVolumeWarningCount
| 110 || [3.0.0+] SetHeadphoneVolumeWarningCount
|-
|-
| 111 || [3.0.0+] GetBluetoothAfhEnableFlag
| 111 || [S1] [3.0.0+] GetBluetoothAfhEnableFlag
|-
|-
| 112 || [3.0.0+] SetBluetoothAfhEnableFlag
| 112 || [S1] [3.0.0+] SetBluetoothAfhEnableFlag
|-
|-
| 113 || [3.0.0+] GetBluetoothBoostEnableFlag
| 113 || [S1] [3.0.0+] GetBluetoothBoostEnableFlag
|-
|-
| 114 || [3.0.0+] SetBluetoothBoostEnableFlag
| 114 || [S1] [3.0.0+] SetBluetoothBoostEnableFlag
|-
|-
| 115 || [3.0.0+] GetInRepairProcessEnableFlag
| 115 || [3.0.0+] GetInRepairProcessEnableFlag
Line 588: Line 590:
| 116 || [3.0.0+] SetInRepairProcessEnableFlag
| 116 || [3.0.0+] SetInRepairProcessEnableFlag
|-
|-
| 117 || [3.0.0+] GetHeadphoneVolumeUpdateFlag
| 117 || [S1] [3.0.0+] GetHeadphoneVolumeUpdateFlag
|-
|-
| 118 || [3.0.0+] SetHeadphoneVolumeUpdateFlag
| 118 || [S1] [3.0.0+] SetHeadphoneVolumeUpdateFlag
|-
|-
| 119 || [3.0.0-14.1.2] NeedsToUpdateHeadphoneVolume
| 119 || [3.0.0-14.1.2] NeedsToUpdateHeadphoneVolume
Line 610: Line 612:
| 127 || [4.0.0+] [[#SetAppletLaunchFlags]]
| 127 || [4.0.0+] [[#SetAppletLaunchFlags]]
|-
|-
| 128 || [4.0.0+] GetConsoleSixAxisSensorAccelerationBias
| 128 || [S1] [4.0.0+] GetConsoleSixAxisSensorAccelerationBias
|-
|-
| 129 || [4.0.0+] SetConsoleSixAxisSensorAccelerationBias
| 129 || [S1] [4.0.0+] SetConsoleSixAxisSensorAccelerationBias
|-
|-
| 130 || [4.0.0+] GetConsoleSixAxisSensorAngularVelocityBias
| 130 || [S1] [4.0.0+] GetConsoleSixAxisSensorAngularVelocityBias
|-
|-
| 131 || [4.0.0+] SetConsoleSixAxisSensorAngularVelocityBias
| 131 || [S1] [4.0.0+] SetConsoleSixAxisSensorAngularVelocityBias
|-
|-
| 132 || [4.0.0+] GetConsoleSixAxisSensorAccelerationGain
| 132 || [S1] [4.0.0+] GetConsoleSixAxisSensorAccelerationGain
|-
|-
| 133 || [4.0.0+] SetConsoleSixAxisSensorAccelerationGain
| 133 || [S1] [4.0.0+] SetConsoleSixAxisSensorAccelerationGain
|-
|-
| 134 || [4.0.0+] GetConsoleSixAxisSensorAngularVelocityGain
| 134 || [S1] [4.0.0+] GetConsoleSixAxisSensorAngularVelocityGain
|-
|-
| 135 || [4.0.0+] SetConsoleSixAxisSensorAngularVelocityGain
| 135 || [S1] [4.0.0+] SetConsoleSixAxisSensorAngularVelocityGain
|-
|-
| 136 || [4.0.0+] [[#GetKeyboardLayout]]
| 136 || [4.0.0+] [[#GetKeyboardLayout]]
Line 640: Line 642:
| 142 || [5.0.0+] SetRequiresRunRepairTimeReviser
| 142 || [5.0.0+] SetRequiresRunRepairTimeReviser
|-
|-
| 143 || [5.0.0+] SetBlePairingSettings
| 143 || [S1] [5.0.0+] SetBlePairingSettings
|-
|-
| 144 || [5.0.0+] GetBlePairingSettings
| 144 || [S1] [5.0.0+] GetBlePairingSettings
|-
|-
| 145 || [5.0.0+] GetConsoleSixAxisSensorAngularVelocityTimeBias
| 145 || [S1] [5.0.0+] GetConsoleSixAxisSensorAngularVelocityTimeBias
|-
|-
| 146 || [5.0.0+] SetConsoleSixAxisSensorAngularVelocityTimeBias
| 146 || [S1] [5.0.0+] SetConsoleSixAxisSensorAngularVelocityTimeBias
|-
|-
| 147 || [5.0.0+] GetConsoleSixAxisSensorAngularAcceleration
| 147 || [S1] [5.0.0+] GetConsoleSixAxisSensorAngularAcceleration
|-
|-
| 148 || [5.0.0+] SetConsoleSixAxisSensorAngularAcceleration
| 148 || [S1] [5.0.0+] SetConsoleSixAxisSensorAngularAcceleration
|-
|-
| 149 || [5.0.0+] [[#GetRebootlessSystemUpdateVersion]]
| 149 || [5.0.0+] [[#GetRebootlessSystemUpdateVersion]]
Line 662: Line 664:
| 153 || [6.0.0+] SetUserSystemClockAutomaticCorrectionUpdatedTime
| 153 || [6.0.0+] SetUserSystemClockAutomaticCorrectionUpdatedTime
|-
|-
| 154 || [6.0.0+] GetAccountOnlineStorageSettings
| 154 || [S1] [6.0.0+] GetAccountOnlineStorageSettings
|-
|-
| 155 || [6.0.0+] SetAccountOnlineStorageSettings
| 155 || [S1] [6.0.0+] SetAccountOnlineStorageSettings
|-
|-
| 156 || [6.0.0+] GetPctlReadyFlag
| 156 || [S1] [6.0.0+] GetPctlReadyFlag
|-
|-
| 157 || [6.0.0+] SetPctlReadyFlag
| 157 || [S1] [6.0.0+] SetPctlReadyFlag
|-
|-
| 158 || [8.1.1+] GetAnalogStickUserCalibrationL
| 158 || [S1] [8.1.1+] GetAnalogStickUserCalibrationL
|-
|-
| 159 || [8.1.1+] SetAnalogStickUserCalibrationL
| 159 || [S1] [8.1.1+] SetAnalogStickUserCalibrationL
|-
|-
| 160 || [8.1.1+] GetAnalogStickUserCalibrationR
| 160 || [S1] [8.1.1+] GetAnalogStickUserCalibrationR
|-
|-
| 161 || [8.1.1+] SetAnalogStickUserCalibrationR
| 161 || [S1] [8.1.1+] SetAnalogStickUserCalibrationR
|-
|-
| 162 || [6.0.0+] GetPtmBatteryVersion
| 162 || [6.0.0+] GetPtmBatteryVersion
Line 690: Line 692:
| 167 || [6.0.0+] SetUsb30DeviceEnableFlag
| 167 || [6.0.0+] SetUsb30DeviceEnableFlag
|-
|-
| 168 || [7.0.0+] GetThemeId
| 168 || [S1] [7.0.0+] GetThemeId
|-
|-
| 169 || [7.0.0+] SetThemeId
| 169 || [S1] [7.0.0+] SetThemeId
|-
|-
| 170 || [7.0.0+] [[#GetChineseTraditionalInputMethod]]
| 170 || [7.0.0+] [[#GetChineseTraditionalInputMethod]]
Line 704: Line 706:
| 174 || [8.1.1+] [[#GetHomeMenuScheme]]
| 174 || [8.1.1+] [[#GetHomeMenuScheme]]
|-
|-
| 175 || [7.0.0+] GetThemeSettings
| 175 || [S1] [7.0.0+] GetThemeSettings
|-
|-
| 176 || [7.0.0+] SetThemeSettings
| 176 || [S1] [7.0.0+] SetThemeSettings
|-
|-
| 177 || [7.0.0+] GetThemeKey
| 177 || [S1] [7.0.0+] GetThemeKey
|-
|-
| 178 || [7.0.0+] SetThemeKey
| 178 || [S1] [7.0.0+] SetThemeKey
|-
|-
| 179 || [8.0.0+] GetZoomFlag
| 179 || [8.0.0+] GetZoomFlag
Line 716: Line 718:
| 180 || [8.0.0+] SetZoomFlag
| 180 || [8.0.0+] SetZoomFlag
|-
|-
| 181 || [8.0.0+] [[#GetT]]
| 181 || [S1] [8.0.0+] [[#GetT]]
|-
|-
| 182 || [8.0.0+] [[#SetT]]
| 182 || [S1] [8.0.0+] [[#SetT]]
|-
|-
| 183 || [9.0.0+] [[#GetPlatformRegion]]
| 183 || [9.0.0+] [[#GetPlatformRegion]]
Line 728: Line 730:
| 186 || [9.0.0+] [[#GetMemoryUsageRateFlag]]
| 186 || [9.0.0+] [[#GetMemoryUsageRateFlag]]
|-
|-
| 187 || [9.0.0+] [[#GetTouchScreenMode]]
| 187 || [S1] [9.0.0+] [[#GetTouchScreenMode]]
|-
|-
| 188 || [9.0.0+] [[#SetTouchScreenMode]]
| 188 || [S1] [9.0.0+] [[#SetTouchScreenMode]]
|-
|-
| 189 || [10.0.0+] [[#GetButtonConfigSettingsFull]]
| 189 || [S1] [10.0.0+] [[#GetButtonConfigSettingsFull]]
|-
|-
| 190 || [10.0.0+] [[#SetButtonConfigSettingsFull]]
| 190 || [S1] [10.0.0+] [[#SetButtonConfigSettingsFull]]
|-
|-
| 191 || [10.0.0+] [[#GetButtonConfigSettingsEmbedded]]
| 191 || [S1] [10.0.0+] [[#GetButtonConfigSettingsEmbedded]]
|-
|-
| 192 || [10.0.0+] [[#SetButtonConfigSettingsEmbedded]]
| 192 || [S1] [10.0.0+] [[#SetButtonConfigSettingsEmbedded]]
|-
|-
| 193 || [10.0.0+] [[#GetButtonConfigSettingsLeft]]
| 193 || [S1] [10.0.0+] [[#GetButtonConfigSettingsLeft]]
|-
|-
| 194 || [10.0.0+] [[#SetButtonConfigSettingsLeft]]
| 194 || [S1] [10.0.0+] [[#SetButtonConfigSettingsLeft]]
|-
|-
| 195 || [10.0.0+] [[#GetButtonConfigSettingsRight]]
| 195 || [S1] [10.0.0+] [[#GetButtonConfigSettingsRight]]
|-
|-
| 196 || [10.0.0+] [[#SetButtonConfigSettingsRight]]
| 196 || [S1] [10.0.0+] [[#SetButtonConfigSettingsRight]]
|-
|-
| 197 || [10.0.0+] [[#GetButtonConfigRegisteredSettingsEmbedded]]
| 197 || [S1] [10.0.0+] [[#GetButtonConfigRegisteredSettingsEmbedded]]
|-
|-
| 198 || [10.0.0+] [[#SetButtonConfigRegisteredSettingsEmbedded]]
| 198 || [S1] [10.0.0+] [[#SetButtonConfigRegisteredSettingsEmbedded]]
|-
|-
| 199 || [10.0.0+] [[#GetButtonConfigRegisteredSettings]]
| 199 || [S1] [10.0.0+] [[#GetButtonConfigRegisteredSettings]]
|-
|-
| 200 || [10.0.0+] [[#SetButtonConfigRegisteredSettings]]
| 200 || [S1] [10.0.0+] [[#SetButtonConfigRegisteredSettings]]
|-
|-
| 201 || [10.1.0+] [[#GetFieldTestingFlag]]
| 201 || [10.1.0+] [[#GetFieldTestingFlag]]
Line 764: Line 766:
| 204 || [11.0.0+] SetPanelCrcMode
| 204 || [11.0.0+] SetPanelCrcMode
|-
|-
| 205 || [13.0.0+] GetNxControllerSettingsEx
| 205 || [S1] [13.0.0+] GetNxControllerSettingsEx
|-
| 206 || [S1] [13.0.0+] SetNxControllerSettingsEx
|-
| 207 || [S1] [14.0.0+] GetHearingProtectionSafeguardFlag
|-
| 208 || [S1] [14.0.0+] SetHearingProtectionSafeguardFlag
|-
| 209 || [S1] [14.0.0+] GetHearingProtectionSafeguardRemainingTime
|-
| 210 || [S1] [14.0.0+] SetHearingProtectionSafeguardRemainingTime
|-
| 211 || [S2]
|-
|-
| 206 || [13.0.0+] SetNxControllerSettingsEx
| 212 || [S2]
|-
|-
| 207 || [14.0.0+] GetHearingProtectionSafeguardFlag
| 213 || [S2]
|-
|-
| 208 || [14.0.0+] SetHearingProtectionSafeguardFlag
| 214 || [S2]
|-
|-
| 209 || [14.0.0+] GetHearingProtectionSafeguardRemainingTime
| 215 || [S2]
|-
|-
| 210 || [14.0.0+] SetHearingProtectionSafeguardRemainingTime
| 216 || [S2]
|-
| 217 || [S2]
|-
| 218 || [S2]
|-
| 219 || [S2]
|-
| 220 || [S2]
|-
|-
| 221 || [17.0.0+] GetForceMonauralOutputFlag
| 221 || [17.0.0+] GetForceMonauralOutputFlag
Line 780: Line 802:
| 222 || [17.0.0+] SetForceMonauralOutputFlag
| 222 || [17.0.0+] SetForceMonauralOutputFlag
|-
|-
| 251 || [18.0.0+] GetAccountIdentificationSettings
| 223 || [S2]
|-
| 224 || [S2]
|-
| 225 || [S2]
|-
| 226 || [S2]
|-
| 227 || [S2]
|-
| 228 || [S2]
|-
| 229 || [S2]
|-
| 230 || [S2]
|-
| 235 || [S2]
|-
| 236 || [S2]
|-
|-
| 252 || [18.0.0+] SetAccountIdentificationSettings
| 237 || [S2]
|}
|-
 
| 238 || [S2]
Official user-processes gets a new service session handle each time a set:sys cmd is used, with the session being closed afterwards.
|-
 
| 239 || [S2]
== SetLanguageCode ==
|-
Takes an input [[#LanguageCode]], no output.
| 240 || [S2]
 
|-
== GetFirmwareVersion ==
| 241 || [S2]
Takes a type-0x1A output buffer. User-processes use hard-coded size 0x100.
|-
 
| 242 || [S2]
If needed, reads the content of the [[System_Version_Title]] "/file" into state. This is only done once.
|-
 
| 243 || [S2]
Then the above 0x100-byte data is copied to the output buffer.
|-
 
| 244 || [S2]
== GetAccountSettings ==
|-
No input, returns an output [[#AccountSettings]].
| 245 || [S2]
 
|-
== SetAccountSettings ==
| 246 || [S2]
Takes an input [[#AccountSettings]], no output.
|-
 
| 247 || [S2]
== GetEulaVersions ==
|-
Takes a type-0x6 output buffer containing an array of [[#EulaVersion]], returns an output s32 total_out.
| 248 || [S2]
 
|-
== SetEulaVersions ==
| 249 || [S2]
Takes a type-0x5 input buffer containing an array of [[#EulaVersion]], no output.
|-
| 250 || [S2]
|-
| 251 || [18.0.0+] GetAccountIdentificationSettings
|-
| 252 || [18.0.0+] SetAccountIdentificationSettings
|-
| 253 || [S2]
|-
| 254 || [S2]
|-
| 255 || [S2]
|-
| 256 || [S2]
|-
| 257 || [S2]
|-
| 258 || [S2]
|-
| 259 || [S2]
|-
| 260 || [S2]
|-
| 261 || [S2]
|-
| 262 || [S2]
|-
| 263 || [20.0.0+] AcquireVphymDirtyFlagEventHandle
|-
| 264 || [20.0.0+] GetVphymDirtyFlags
|-
| 265 || [S2]
|-
| 266 || [S2]
|-
| 267 || [S2]
|-
| 268 || [S2]
|-
| 269 || [S2]
|-
| 270 || [S2]
|-
| 271 || [S2]
|-
| 272 || [S2]
|-
| 273 || [S2]
|-
| 274 || [S2]
|-
| 275 || [S2]
|-
| 276 || [S2]
|-
| 277 || [S2]
|-
| 278 || [S2]
|-
| 279 || [S2]
|-
| 280 || [S2]
|-
| 281 || [S2]
|-
| 282 || [20.0.0+] ConvertToProductModel
|-
| 283 || [20.0.0+] ConvertToProductModelName
|-
| 284 || [S2]
|-
| 285 || [S2]
|-
| 286 || [S2]
|-
| 287 || [S2]
|-
| 288 || [S2]
|-
| 289 || [20.0.0+] GetDefaultAccountIdentificationFlagSet
|-
| 290 || [S2]
|-
| 291 || [S2]
|-
| 292 || [S2]
|-
| 293 || [S2]
|-
| 294 || [S2]
|-
| 295 || [S2]
|-
| 296 || [S2]
|-
| 297 || [S2]
|-
| 298 || [S2]
|-
| 299 || [S2]
|-
| 300 || [20.0.0+] AcquirePushNotificationDirtyFlagEventHandle
|-
| 301 || [20.0.0+] GetPushNotificationDirtyFlags
|-
| 302 || [S2]
|-
| 303 || [S2]
|-
| 304 || [S2]
|-
| 305 || [S2]
|-
| 306 || [20.0.0+] GetPinCodeReregistrationGuideAccounts
|-
| 307 || [20.0.0+] SetPinCodeReregistrationGuideAccounts
|-
| 308 || [S2]
|-
| 309 || [S2]
|-
| 310 || [S2]
|-
| 311 || [S2]
|-
| 312 || [S2]
|}
 
Official user-processes gets a new service session handle each time a set:sys cmd is used, with the session being closed afterwards.
 
== SetLanguageCode ==
Takes an input [[#LanguageCode]], no output.
 
== GetFirmwareVersion ==
Takes a type-0x1A output buffer. User-processes use hard-coded size 0x100.
 
This was removed with S2.
 
If needed, reads the content of the [[System_Version_Title]] "/file" into state. This is only done once.
 
Then the above 0x100-byte data is copied to the output buffer.
 
== GetAccountSettings ==
No input, returns an output [[#AccountSettings]].
 
== SetAccountSettings ==
Takes an input [[#AccountSettings]], no output.
 
== GetEulaVersions ==
Takes a type-0x6 output buffer containing an array of [[#EulaVersion]], returns an output s32 total_out.
 
== SetEulaVersions ==
Takes a type-0x5 input buffer containing an array of [[#EulaVersion]], no output.
 
== GetColorSetId ==
No input, returns an output s32.
 
This is the current Theme set by System Settings.
 
* 0: "Basic White"
* 1: "Basic Black"
 
== SetColorSetId ==
Takes an input s32, no output.
 
== GetNotificationSettings ==
No input, returns an output [[#NotificationSettings]].
 
== SetNotificationSettings ==
Takes an input [[#NotificationSettings]], no output.
 
== GetAccountNotificationSettings ==
Takes a type-0x6 output buffer containing an array of [[#AccountNotificationSettings]], returns an output s32 total_out.
 
== SetAccountNotificationSettings ==
Takes a type-0x5 input buffer containing an array of [[#AccountNotificationSettings]], no output.
 
== GetSettingsItemValue ==
Takes two type-0x19 input buffers and a type-0x6 output buffer. Returns an output u64 for the actual size written to the outbuf.
 
The outbuf_size is compared with the config_size. When config_size is larger than outbuf_size, outbuf_size is used for the memcpy, otherwise config_size is used. Afterwards the size used for the memcpy is written to output(see above).
 
If loading from main config fails, it will also attempt to load config from various state if the input strings match hard-coded strings.
 
== GetTvSettings ==
No input, returns an output [[#TvSettings]].
 
== SetTvSettings ==
Takes an input [[#TvSettings]], no output.
 
== GetDebugModeFlag ==
Returns an output u8.
 
Loads the 1-byte config for <"settings_debug", "is_debug_mode_enabled">. If that fails, value 0x1 is written to output. This uses the same func as ReadSetting internally.
 
Returned retval is always 0.
 
== GetPrimaryAlbumStorage ==
No input, returns an output s32 [[#PrimaryAlbumStorage]].
 
== SetPrimaryAlbumStorage ==
Takes an input s32 [[#PrimaryAlbumStorage]], no output.


== GetColorSetId ==
== GetBatteryLot ==
No input, returns an output s32.
No input, returns an output [[#BatteryLot]].


This is the current Theme set by System Settings.
== GetSerialNumber ==
Returns the 0x18-byte SerialNumber string.


* 0: "Basic White"
== GetSleepSettings ==
* 1: "Basic Black"
No input, returns an output [[#SleepSettings]].


== SetColorSetId ==
== SetSleepSettings ==
Takes an input s32, no output.
Takes an input [[#SleepSettings]], no output.


== GetNotificationSettings ==
== GetInitialLaunchSettings ==
No input, returns an output [[#NotificationSettings]].
No input, returns an output [[#InitialLaunchSettings]].


== SetNotificationSettings ==
== SetInitialLaunchSettings ==
Takes an input [[#NotificationSettings]], no output.
Takes an input [[#InitialLaunchSettings]], no output.


== GetAccountNotificationSettings ==
== GetDeviceNickName ==
Takes a type-0x6 output buffer containing an array of [[#AccountNotificationSettings]], returns an output s32 total_out.
Takes a type-0x16 output buffer containing a [[#DeviceNickName]].


== SetAccountNotificationSettings ==
With [10.1.0+] sdknso now uses the set cmd instead of the setsys cmd.
Takes a type-0x5 input buffer containing an array of [[#AccountNotificationSettings]], no output.


== GetSettingsItemValue ==
== SetDeviceNickName ==
Takes two type-0x19 input buffers and a type-0x6 output buffer. Returns an output u64 for the actual size written to the outbuf.
Takes a type-0x15 input buffer containing a [[#DeviceNickName]].


The outbuf_size is compared with the config_size. When config_size is larger than outbuf_size, outbuf_size is used for the memcpy, otherwise config_size is used. Afterwards the size used for the memcpy is written to output(see above).
== GetProductModel ==
No input, returns an output s32.


If loading from main config fails, it will also attempt to load config from various state if the input strings match hard-coded strings.
== GetMiiAuthorId ==
No input, returns an output "nn::util::Uuid".


== GetTvSettings ==
== GetServiceDiscoveryControlSettings ==
No input, returns an output [[#TvSettings]].
Returns an u32 [[#ServiceDiscoveryControlSettings|ServiceDiscoveryControlSettings]].


== SetTvSettings ==
== GetErrorReportSharePermission ==
Takes an input [[#TvSettings]], no output.
No input, returns an output s32 [[#ErrorReportSharePermission]].


== GetDebugModeFlag ==
== SetErrorReportSharePermission ==
Returns an output u8.
Takes an input s32 [[#ErrorReportSharePermission]], no output.


Loads the 1-byte config for <"settings_debug", "is_debug_mode_enabled">. If that fails, value 0x1 is written to output. This uses the same func as ReadSetting internally.
== GetAppletLaunchFlags ==
No input, returns an u32 bitmask [[#AppletLaunchFlag]].


Returned retval is always 0.
== SetAppletLaunchFlags ==
Takes an input u32 bitmask [[#AppletLaunchFlag]], no output.


== GetPrimaryAlbumStorage ==
== GetKeyboardLayout ==
No input, returns an output s32 [[#PrimaryAlbumStorage]].
No input, returns an output s32 [[#KeyboardLayout]].


== SetPrimaryAlbumStorage ==
== SetKeyboardLayout ==
Takes an input s32 [[#PrimaryAlbumStorage]], no output.
Takes an input s32 [[#KeyboardLayout]], no output.


== GetBatteryLot ==
== GetAllowedSslHosts ==
No input, returns an output [[#BatteryLot]].
Takes a type-0x6 output buffer. Returns an output s32 entry count.


== GetSerialNumber ==
== GetRebootlessSystemUpdateVersion ==
Returns the 0x18-byte SerialNumber string.
No input, returns an output [[#RebootlessSystemUpdateVersion]].


== GetSleepSettings ==
== GetQuestFlag ==
No input, returns an output [[#SleepSettings]].
Gets a flag determining whether the console is a kiosk unit (codenamed "Quest"). Used by qlaunch to determine whether to launch Retail Interactive Display Menu.


== SetSleepSettings ==
== GetDataDeletionSettings ==
Takes an input [[#SleepSettings]], no output.
No input, returns an output [[#DataDeletionSettings]].


== GetInitialLaunchSettings ==
== SetDataDeletionSettings ==
No input, returns an output [[#InitialLaunchSettings]].
Takes an input [[#DataDeletionSettings]], no output.


== SetInitialLaunchSettings ==
== GetWirelessCertificationFileSize ==
Takes an input [[#InitialLaunchSettings]], no output.
No input, returns an output u64 size.


== GetDeviceNickName ==
== GetWirelessCertificationFile ==
Takes a type-0x16 output buffer containing a [[#DeviceNickName]].
Takes a type-0x6 output buffer, returns an output u64 size.


With [10.1.0+] sdknso now uses the set cmd instead of the setsys cmd.
This gets the [[Flash_Filesystem#PRODINFOF|WirelessCertificationFile]].


== SetDeviceNickName ==
== SetRegionCode ==
Takes a type-0x15 input buffer containing a [[#DeviceNickName]].
Takes an input s32 [[#RegionCode_2|RegionCode]], no output.


== GetProductModel ==
== GetChineseTraditionalInputMethod ==
No input, returns an output s32.
No input, returns an output s32 [[#ChineseTraditionalInputMethod]].


== GetMiiAuthorId ==
== SetChineseTraditionalInputMethod ==
No input, returns an output "nn::util::Uuid".
Takes an input s32 [[#ChineseTraditionalInputMethod]], no output.


== GetServiceDiscoveryControlSettings ==
== GetHomeMenuScheme ==
Returns an u32 [[#ServiceDiscoveryControlSettings|ServiceDiscoveryControlSettings]].
No input. Returns an output [[#HomeMenuScheme]].


== GetErrorReportSharePermission ==
The colors are loaded from [[Calibration]], with the set of fields to use selected by [[Calibration#ColorVariation|ColorVariation]].
No input, returns an output s32 [[#ErrorReportSharePermission]].


== SetErrorReportSharePermission ==
== GetT ==
Takes an input s32 [[#ErrorReportSharePermission]], no output.
No input, returns an output u8 bool '''IsT'''.


== GetAppletLaunchFlags ==
[9.0.0+] This is a wrapper for [[#GetPlatformRegion]]: <code>IsT = (PlatformRegion == 2)</code>.
No input, returns an u32 bitmask [[#AppletLaunchFlag]].


== SetAppletLaunchFlags ==
== SetT ==
Takes an input u32 bitmask [[#AppletLaunchFlag]], no output.
Takes an input u8 bool '''IsT''', no output.


== GetKeyboardLayout ==
[9.0.0+] This is a wrapper for [[#SetPlatformRegion]]: <code>PlatformRegion = 1 + (IsT & 1)</code>.
No input, returns an output s32 [[#KeyboardLayout]].


== SetKeyboardLayout ==
== GetPlatformRegion ==
Takes an input s32 [[#KeyboardLayout]], no output.
No input, returns an output s32.


== GetAllowedSslHosts ==
== SetPlatformRegion ==
Takes a type-0x6 output buffer, returns an output s32 entry count. This buffer contains an array of 0x100-byte "nn::settings::system::AllowedSslHost" entries.
Takes an input s32, no output.


== GetRebootlessSystemUpdateVersion ==
== GetHomeMenuSchemeModel ==
No input, returns an output [[#RebootlessSystemUpdateVersion]].
No input. Returns an output u32.


== GetQuestFlag ==
Loads the 0xB-byte setting <"settings_debug", "home_menu_scheme_model">, throwing an error if loading this fails. Depending on the content of the setting, the output u32 is either determined by the value of this setting, or loaded from [[Calibration#ColorModel|ColorModel]].
Gets a flag determining whether the console is a kiosk unit (codenamed "Quest"). Used by qlaunch to determine whether to launch Retail Interactive Display Menu.


== GetDataDeletionSettings ==
== GetMemoryUsageRateFlag ==
No input, returns an output [[#DataDeletionSettings]].
No input, returns an output u8 bool.


== SetDataDeletionSettings ==
== GetTouchScreenMode ==
Takes an input [[#DataDeletionSettings]], no output.
No input, returns an output s32.


== GetWirelessCertificationFileSize ==
Official sw loads the output as an u8 and copies it to an output [[#TouchScreenMode]].
No input, returns an output u64 size.


== GetWirelessCertificationFile ==
== SetTouchScreenMode ==
Takes a type-0x6 output buffer, returns an output u64 size.
Takes an input s32, no output.


This gets the [[Flash_Filesystem#PRODINFOF|WirelessCertificationFile]].
Official sw sets the input to an u8 loaded from an input [[#TouchScreenMode]].


== SetRegionCode ==
== GetButtonConfigSettingsFull ==
Takes an input s32 [[#RegionCode_2|RegionCode]], no output.
Takes a type-0x6 output buffer containing an array of [[#ButtonConfigSettings]], returns an output s32.


== GetChineseTraditionalInputMethod ==
== SetButtonConfigSettingsFull ==
No input, returns an output s32 [[#ChineseTraditionalInputMethod]].
Takes a type-0x5 input buffer containing an array of [[#ButtonConfigSettings]], no output.


== SetChineseTraditionalInputMethod ==
== GetButtonConfigSettingsEmbedded ==
Takes an input s32 [[#ChineseTraditionalInputMethod]], no output.
Takes a type-0x6 output buffer containing an array of [[#ButtonConfigSettings]], returns an output s32.


== GetHomeMenuScheme ==
== SetButtonConfigSettingsEmbedded ==
No input, returns an output 0x14-byte struct "nn::settings::system::HomeMenuScheme".
Takes a type-0x5 input buffer containing an array of [[#ButtonConfigSettings]], no output.


This struct contains 5 RGBA8 u32s for colors: '''Main''', '''Back''', '''Sub''', '''Bezel''' and '''Extra'''.
== GetButtonConfigSettingsLeft ==
Takes a type-0x6 output buffer containing an array of [[#ButtonConfigSettings]], returns an output s32.


The colors are loaded from [[Calibration]], with the set of fields to use selected by ColorVariation. When ColorVariation is invalid (must be 1-4), the following fixed color values are returned: 0xFF323232, 0xFF323232, 0xFFFFFFFF, 0xFFFFFFFF, 0xFF000000.
== SetButtonConfigSettingsLeft ==
Takes a type-0x5 input buffer containing an array of [[#ButtonConfigSettings]], no output.


== GetT ==
== GetButtonConfigSettingsRight ==
No input, returns an output u8 bool '''IsT'''.
Takes a type-0x6 output buffer containing an array of [[#ButtonConfigSettings]], returns an output s32.


[9.0.0+] This is a wrapper for [[#GetPlatformRegion]]: <code>IsT = (PlatformRegion == 2)</code>.
== SetButtonConfigSettingsRight ==
Takes a type-0x5 input buffer containing an array of [[#ButtonConfigSettings]], no output.


== SetT ==
== GetButtonConfigRegisteredSettingsEmbedded ==
Takes an input u8 bool '''IsT''', no output.
Takes a type-0x16 output buffer containing a [[#ButtonConfigRegisteredSettings]], no output.


[9.0.0+] This is a wrapper for [[#SetPlatformRegion]]: <code>PlatformRegion = 1 + (IsT & 1)</code>.
== SetButtonConfigRegisteredSettingsEmbedded ==
Takes a type-0x15 input buffer containing a [[#ButtonConfigRegisteredSettings]], no output.


== GetPlatformRegion ==
== GetButtonConfigRegisteredSettings ==
No input, returns an output s32.
Takes a type-0x6 output buffer containing an array of [[#ButtonConfigRegisteredSettings]], returns an output s32.


== SetPlatformRegion ==
== SetButtonConfigRegisteredSettings ==
Takes an input s32, no output.
Takes a type-0x5 input buffer containing an array of [[#ButtonConfigRegisteredSettings]], no output.


== GetHomeMenuSchemeModel ==
== GetFieldTestingFlag ==
No input, returns an output u32.
No input, returns an output bool.


Loads the 0xB-byte setting <"settings_debug", "home_menu_scheme_model">, throwing an error if loading this fails. Depending on the content of the setting, the output u32 is either determined by the value of this setting, or loaded from [[Calibration]].
== SetFieldTestingFlag ==
Takes an input bool, no output.


== GetMemoryUsageRateFlag ==
== Cmd219 ==
No input, returns an output u8 bool.
This is exclusive to S2.


== GetTouchScreenMode ==
This is likely GetTextMagnificationRatio?
No input, returns an output s32.


Official sw loads the output as an u8 and copies it to an output [[#TouchScreenMode]].
No input, returns an output float.


== SetTouchScreenMode ==
= Language =
Takes an input s32, no output.
This is "nn::settings::Language".


Official sw sets the input to an u8 loaded from an input [[#TouchScreenMode]].
{| class="wikitable" border="1"
 
|-
== GetButtonConfigSettingsFull ==
! Value
Takes a type-0x6 output buffer containing an array of [[#ButtonConfigSettings]], returns an output s32.
! Description
 
|-
== SetButtonConfigSettingsFull ==
| 0 || Japanese
Takes a type-0x5 input buffer containing an array of [[#ButtonConfigSettings]], no output.
|-
 
| 1 || AmericanEnglish
== GetButtonConfigSettingsEmbedded ==
|-
Takes a type-0x6 output buffer containing an array of [[#ButtonConfigSettings]], returns an output s32.
| 2 || French
 
|-
== SetButtonConfigSettingsEmbedded ==
| 3 || German
Takes a type-0x5 input buffer containing an array of [[#ButtonConfigSettings]], no output.
|-
| 4 || Italian
|-
| 5 || Spanish
|-
| 6 || Chinese
|-
| 7 || Korean
|-
| 8 || Dutch
|-
| 9 || Portuguese
|-
| 10 || Russian
|-
| 11 || Taiwanese
|-
| 12 || BritishEnglish
|-
| 13 || CanadianFrench
|-
| 14 || LatinAmericanSpanish
|-
| 15 || [4.0.0+] SimplifiedChinese
|-
| 16 || [4.0.0+] TraditionalChinese
|-
| 17 || [10.1.0+] BrazilianPortuguese
|}


== GetButtonConfigSettingsLeft ==
= LanguageCode =
Takes a type-0x6 output buffer containing an array of [[#ButtonConfigSettings]], returns an output s32.
This is "nn::settings::LanguageCode". This is an u64, which is a NUL-terminated string.


== SetButtonConfigSettingsLeft ==
{| class="wikitable" border="1"
Takes a type-0x5 input buffer containing an array of [[#ButtonConfigSettings]], no output.
|-
 
! Value || [[#Language]]
== GetButtonConfigSettingsRight ==
|-
Takes a type-0x6 output buffer containing an array of [[#ButtonConfigSettings]], returns an output s32.
| "ja" || Japanese
 
|-
== SetButtonConfigSettingsRight ==
| "en-US" || AmericanEnglish
Takes a type-0x5 input buffer containing an array of [[#ButtonConfigSettings]], no output.
|-
 
| "fr" || French
== GetButtonConfigRegisteredSettingsEmbedded ==
|-
Takes a type-0x16 output buffer containing a [[#ButtonConfigRegisteredSettings]], no output.
| "de" || German
 
|-
== SetButtonConfigRegisteredSettingsEmbedded ==
| "it" || Italian
Takes a type-0x15 input buffer containing a [[#ButtonConfigRegisteredSettings]], no output.
|-
 
| "es" || Spanish
== GetButtonConfigRegisteredSettings ==
Takes a type-0x6 output buffer containing an array of [[#ButtonConfigRegisteredSettings]], returns an output s32.
 
== SetButtonConfigRegisteredSettings ==
Takes a type-0x5 input buffer containing an array of [[#ButtonConfigRegisteredSettings]], no output.
 
== GetFieldTestingFlag ==
No input, returns an output bool.
 
== SetFieldTestingFlag ==
Takes an input bool, no output.
 
= Language =
This is "nn::settings::Language".
 
{| class="wikitable" border="1"
|-
|-
! Value
| "zh-CN" || Chinese
! Description
|-
|-
| 0 || Japanese
| "ko" || Korean
|-
|-
| 1 || AmericanEnglish
| "nl" || Dutch
|-
|-
| 2 || French
| "pt" || Portuguese
|-
|-
| 3 || German
| "ru" || Russian
|-
|-
| 4 || Italian
| "zh-TW" || Taiwanese
|-
|-
| 5 || Spanish
| "en-GB" || BritishEnglish
|-
|-
| 6 || Chinese
| "fr-CA" || CanadianFrench
|-
|-
| 7 || Korean
| "es-419" || LatinAmericanSpanish
|-
|-
| 8 || Dutch
| "zh-Hans" || [4.0.0+] SimplifiedChinese
|-
|-
| 9 || Portuguese
| "zh-Hant" || [4.0.0+] TraditionalChinese
|-
|-
| 10 || Russian
| "pt-BR" || [10.1.0+] BrazilianPortuguese
|}
 
= AccelerometerOffset =
This is "nn::settings::factory::AccelerometerOffset".
 
{| class="wikitable" border="1"
|-
|-
| 11 || Taiwanese
! Offset || Size || Description
|-
|-
| 12 || BritishEnglish
| 0x0 || 0x2 || X
|-
|-
| 13 || CanadianFrench
| 0x2 || 0x2 || Y
|-
|-
| 14 || LatinAmericanSpanish
| 0x4 || 0x2 || Z
|-
|}
| 15 || [4.0.0+] SimplifiedChinese
 
= AccelerometerScale =
This is "nn::settings::factory::AccelerometerScale".
 
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
| 0x0 || 0x2 || X
|-
|-
| 16 || [4.0.0+] TraditionalChinese
| 0x2 || 0x2 || Y
|-
|-
| 17 || [10.1.0+] BrazilianPortuguese
| 0x4 || 0x2 || Z
|}
|}


= LanguageCode =
= AmiiboEcdsaCertificate =
This is "nn::settings::LanguageCode". This is an u64, which is a NUL-terminated string.
This is "nn::settings::factory::AmiiboEcdsaCertificate". This is a 0x70-byte struct.
 
= AmiiboEcqvBlsCertificate =
This is "nn::settings::factory::AmiiboEcqvBlsCertificate". This is a 0x20-byte struct.
 
= AmiiboEcqvBlsKey =
This is "nn::settings::factory::AmiiboEcqvBlsKey". This is a 0x40-byte struct.


If [[Calibration#CAL0|Calibration Version]] >= 9, this is now:
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Value || [[#Language]]
! Offset || Size || Description
|-
|-
| "ja" || Japanese
| 0x0 || 0x40 || Key
|-
|-
| "en-US" || AmericanEnglish
| 0x40 || 0x4 || KeyGeneration
|}
 
= AmiiboEcqvBlsRootCertificate =
This is "nn::settings::factory::AmiiboEcqvBlsRootCertificate". This is a 0x90-byte struct.
 
= AmiiboEcqvCertificate =
This is "nn::settings::factory::AmiiboEcqvCertificate". This is a 0x14-byte struct.
 
= AmiiboKey =
This is "nn::settings::factory::AmiiboKey". This is a 0x50-byte struct.
 
If [[Calibration#CAL0|Calibration Version]] >= 9, this is now:
{| class="wikitable" border="1"
|-
|-
| "fr" || French
! Offset || Size || Description
|-
|-
| "de" || German
| 0x0 || 0x50 || Key
|-
|-
| "it" || Italian
| 0x50 || 0x4 || KeyGeneration
|-
|}
| "es" || Spanish
 
|-
= AnalogStickFactoryCalibration =
| "zh-CN" || Chinese
This is "nn::settings::factory::AnalogStickFactoryCalibration". Same as [[Calibration#AnalogStickFactoryCalibration|AnalogStickFactoryCalibration]].
|-
 
| "ko" || Korean
= AnalogStickModelParameter =
This is "nn::settings::factory::AnalogStickModelParameter". Same as [[Calibration#AnalogStickModelParameter|AnalogStickModelParameter]].
 
= BatteryLot =
This is "nn::settings::BatteryLot". This is a 0x18-byte struct.
 
= BdAddress =
This is "nn::settings::factory::BdAddress". This is a 0x6-byte struct.
 
= ConfigurationId1 =
This is "nn::settings::factory::ConfigurationId1". This is a 0x1E-byte struct.
 
Usually, this is a string with the following format:
  {EventType}_{ProductModelType}_{MajorVersion}_{MinorVersion}_{MicroVersion}
 
== EventType ==
{| class="wikitable" border="1"
|-
|-
| "nl" || Dutch
! Value
! Description
|-
|-
| "pt" || Portuguese
| "FP" || Functional prototype
|-
|-
| "ru" || Russian
| "EP" || Engineering prototype
|-
|-
| "zh-TW" || Taiwanese
| "DP" || Design prototype
|-
|-
| "en-GB" || BritishEnglish
| "DPRD" || Design prototype for R&D
|-
|-
| "fr-CA" || CanadianFrench
| "HOAG" || Hoag prototype
|-
|-
| "es-419" || LatinAmericanSpanish
| "COPPER" || Copper prototype
|-
| "EDEV" || Extcon development kit for Icosa and Iowa
|-
| "SDEV" || SPI development kit for Icosa and Iowa
|-
| "MEDEV" || Mariko EDEV (deprecated)
|-
|-
| "zh-Hans" || [4.0.0+] SimplifiedChinese
| "MSDEV" || Mariko SDEV (deprecated)
|-
|-
| "zh-Hant" || [4.0.0+] TraditionalChinese
| "HDEV" || Development kit for Hoag
|-
|-
| "pt-BR" || [10.1.0+] BrazilianPortuguese
| "ADEV" || Development kit for Aula
|}
 
= AccelerometerOffset =
This is "nn::settings::factory::AccelerometerOffset".
 
{| class="wikitable" border="1"
|-
|-
! Offset || Size || Description
| "MP" || Mass production (retail Icosa)
|-
|-
| 0x0 || 0x2 || X
| "MNX" || Mariko NX (retail Iowa)
|-
|-
| 0x2 || 0x2 || Y
| "HNX" || Hoag NX (retail Hoag)
|-
|-
| 0x4 || 0x2 || Z
| "ANX" || Aula NX (retail Aula)
|}
|}


= AccelerometerScale =
== ProductModelType ==
This is "nn::settings::factory::AccelerometerScale".
{| class="wikitable" border="1"
 
|-
{| class="wikitable" border="1"
! Value
! Description
|-
| "00" || Icosa
|-
|-
! Offset || Size || Description
| "01" || Iowa (previously Copper)
|-
|-
| 0x0 || 0x2 || X
| "02" || Hoag
|-
|-
| 0x2 || 0x2 || Y
| "03" || Calcio
|-
|-
| 0x4 || 0x2 || Z
| "04" || Aula
|}
|}


= AmiiboEcdsaCertificate =
= ConsoleSixAxisSensorHorizontalOffset =
This is "nn::settings::factory::AmiiboEcdsaCertificate". This is a 0x70-byte struct.
This is "nn::settings::factory::ConsoleSixAxisSensorHorizontalOffset". Same as [[Calibration#ConsoleSixAxisSensorHorizontalOffset|ConsoleSixAxisSensorHorizontalOffset]].


= AmiiboEcqvBlsCertificate =
= CountryCode =
This is "nn::settings::factory::AmiiboEcqvBlsCertificate". This is a 0x20-byte struct.
This is "nn::settings::factory::CountryCode". This is a 0x3-byte struct.


= AmiiboEcqvBlsKey =
= EccB233DeviceCertificate =
This is "nn::settings::factory::AmiiboEcqvBlsKey". This is a 0x40-byte struct.
This is "nn::settings::factory::EccB233DeviceCertificate". This is a 0x180-byte struct.


If [[Calibration#CAL0|Calibration Version]] >= 9, this is now:
= EccB233DeviceKey =
This is "nn::settings::factory::EccB233DeviceKey". This is a 0x30-byte struct or a 0x54-byte struct in the extended version.
 
If [[Calibration#CAL0|Calibration Version]] >= 9, this is now:
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Offset || Size || Description
! Offset || Size || Description
|-
|-
| 0x0 || 0x40 || Key
| 0x0 || 0x54 || Key
|-
|-
| 0x40 || 0x4 || KeyGeneration
| 0x54 || 0x4 || KeyGeneration
|}
|}


= AmiiboEcqvBlsRootCertificate =
= GameCardCertificate =
This is "nn::settings::factory::AmiiboEcqvBlsRootCertificate". This is a 0x90-byte struct.
This is "nn::settings::factory::GameCardCertificate". This is a 0x400-byte struct.


= AmiiboEcqvCertificate =
= GameCardKey =
This is "nn::settings::factory::AmiiboEcqvCertificate". This is a 0x14-byte struct.
This is "nn::settings::factory::GameCardKey". This is a 0x110-byte struct or a 0x130-byte struct in the extended version.
 
= AmiiboKey =
This is "nn::settings::factory::AmiiboKey". This is a 0x50-byte struct.


If [[Calibration#CAL0|Calibration Version]] >= 9, this is now:
If [[Calibration#CAL0|Calibration Version]] >= 9, this is now:
Line 1,176: Line 1,485:
! Offset || Size || Description
! Offset || Size || Description
|-
|-
| 0x0 || 0x50 || Key
| 0x0 || 0x130 || Key
|-
|-
| 0x50 || 0x4 || KeyGeneration
| 0x130 || 0x4 || KeyGeneration
|}
|}


= AnalogStickFactoryCalibration =
= GyroscopeOffset =
This is "nn::settings::factory::AnalogStickFactoryCalibration". Same as [[Calibration#AnalogStickFactoryCalibration|AnalogStickFactoryCalibration]].
This is "nn::settings::factory::GyroscopeOffset".


= AnalogStickModelParameter =
{| class="wikitable" border="1"
This is "nn::settings::factory::AnalogStickModelParameter". Same as [[Calibration#AnalogStickModelParameter|AnalogStickModelParameter]].
|-
! Offset || Size || Description
|-
| 0x0 || 0x2 || X
|-
| 0x2 || 0x2 || Y
|-
| 0x4 || 0x2 || Z
|}


= BatteryLot =
= GyroscopeScale =
This is "nn::settings::BatteryLot". This is a 0x18-byte struct.
This is "nn::settings::factory::GyroscopeScale".
 
= BdAddress =
This is "nn::settings::factory::BdAddress". This is a 0x6-byte struct.
 
= ConfigurationId1 =
This is "nn::settings::factory::ConfigurationId1". This is a 0x1E-byte struct.
 
Usually, this is a string with the following format:
  {EventType}_{ProductModelType}_{MajorVersion}_{MinorVersion}_{MicroVersion}


== EventType ==
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Value
! Offset || Size || Description
! Description
|-
|-
| "FP" || Functional prototype
| 0x0 || 0x2 || X
|-
|-
| "EP" || Engineering prototype
| 0x2 || 0x2 || Y
|-
|-
| "DP" || Design prototype
| 0x4 || 0x2 || Z
|}
 
= MacAddress =
This is "nn::settings::factory::MacAddress". This is a 0x6-byte struct.
 
= Rsa2048DeviceCertificate =
This is "nn::settings::factory::Rsa2048DeviceCertificate". This is a 0x240-byte struct.
 
= Rsa2048DeviceKey =
This is "nn::settings::factory::Rsa2048DeviceKey". This is a 0x220-byte struct or a 0x240-byte struct in the extended version.
 
If [[Calibration#CAL0|Calibration Version]] >= 9, this is now:
{| class="wikitable" border="1"
|-
|-
| "DPRD" || Design prototype for R&D
! Offset || Size || Description
|-
|-
| "HOAG" || Hoag prototype
| 0x0 || 0x240 || Key
|-
|-
| "COPPER" || Copper prototype
| 0x240 || 0x4 || KeyGeneration
|-
|}
| "EDEV" || Extcon development kit for Icosa and Iowa
 
|-
= SerialNumber =
| "SDEV" || SPI development kit for Icosa and Iowa
This is "nn::settings::factory::SerialNumber". This is a 0x18-byte struct.
|-
 
| "MEDEV" || Mariko EDEV (deprecated)
= SpeakerParameter =
This is "nn::settings::factory::SpeakerParameter". This is copied from the first 0x5A bytes of [[Calibration#SpeakerCalibrationValue|SpeakerCalibrationValue]].
 
= SslCertificate =
This is "nn::settings::factory::SslCertificate". This is a 0x804-byte struct.
 
{| class="wikitable" border="1"
|-
|-
| "MSDEV" || Mariko SDEV (deprecated)
! Offset || Size || Description
|-
|-
| "HDEV" || Development kit for Hoag
| 0x0 || 0x4 || Size
|-
|-
| "ADEV" || Development kit for Aula
| 0x4 || Variable || Data
|-
| "MP" || Mass production (retail Icosa)
|-
| "MNX" || Mariko NX (retail Iowa)
|-
| "ANX" || Aula NX (retail Aula)
|}
|}


== ProductModelType ==
= SslKey =
This is "nn::settings::factory::SslKey". This is a 0x110-byte struct or a 0x130-byte struct in the extended version.
 
If [[Calibration#CAL0|Calibration Version]] >= 9, this is now:
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Value
! Offset || Size || Description
! Description
|-
|-
| "00" || Icosa
| 0x0 || 0x130 || Key
|-
|-
| "01" || Iowa (previously Copper)
| 0x130 || 0x4 || KeyGeneration
|-
| "02" || Hoag
|-
| "03" || Calcio
|-
| "04" || Aula
|}
|}


= ConsoleSixAxisSensorHorizontalOffset =
= RegionCode =
This is "nn::settings::factory::ConsoleSixAxisSensorHorizontalOffset". Same as [[Calibration#ConsoleSixAxisSensorHorizontalOffset|ConsoleSixAxisSensorHorizontalOffset]].
This is "nn::settings::factory::RegionCode".
 
= CountryCode =
This is "nn::settings::factory::CountryCode". This is a 0x3-byte struct.
 
= EccB233DeviceCertificate =
This is "nn::settings::factory::EccB233DeviceCertificate". This is a 0x180-byte struct.
 
= EccB233DeviceKey =
This is "nn::settings::factory::EccB233DeviceKey". This is a 0x30-byte struct or a 0x54-byte struct in the extended version.


If [[Calibration#CAL0|Calibration Version]] >= 9, this is now:
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Offset || Size || Description
! Value
! Description
|-
| 0 || Japan
|-
|-
| 0x0 || 0x54 || Key
| 1 || Usa
|-
|-
| 0x54 || 0x4 || KeyGeneration
| 2 || Europe
|}
|-
 
| 3 || Australia
= GameCardCertificate =
This is "nn::settings::factory::GameCardCertificate". This is a 0x400-byte struct.
 
= GameCardKey =
This is "nn::settings::factory::GameCardKey". This is a 0x110-byte struct or a 0x130-byte struct in the extended version.
 
If [[Calibration#CAL0|Calibration Version]] >= 9, this is now:
{| class="wikitable" border="1"
|-
|-
! Offset || Size || Description
| 4 || China
|-
|-
| 0x0 || 0x130 || Key
| 5 || Korea
|-
|-
| 0x130 || 0x4 || KeyGeneration
| 6 || Taiwan
|}
|}


= GyroscopeOffset =
= AudioOutputMode =
This is "nn::settings::factory::GyroscopeOffset".
This is "nn::settings::system::AudioOutputMode".


{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Offset || Size || Description
! Value
! Description
|-
|-
| 0x0 || 0x2 || X
| 0 || 1ch
|-
|-
| 0x2 || 0x2 || Y
| 1 || 2ch
|-
|-
| 0x4 || 0x2 || Z
| 2 || 5_1ch
|-
| 3 || 7_1ch
|}
|}


= GyroscopeScale =
= AudioOutputModeTarget =
This is "nn::settings::factory::GyroscopeScale".
This is "nn::settings::system::AudioOutputModeTarget".


{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Offset || Size || Description
! Value
! Description
|-
|-
| 0x0 || 0x2 || X
| 0 || Hdmi
|-
|-
| 0x2 || 0x2 || Y
| 1 || Speaker
|-
|-
| 0x4 || 0x2 || Z
| 2 || Headphone
|}
|}


= MacAddress =
= AudioVolumeTarget =
This is "nn::settings::factory::MacAddress". This is a 0x6-byte struct.
This is "nn::settings::system::AudioVolumeTarget".


= Rsa2048DeviceCertificate =
This is "nn::settings::factory::Rsa2048DeviceCertificate". This is a 0x240-byte struct.
= Rsa2048DeviceKey =
This is "nn::settings::factory::Rsa2048DeviceKey". This is a 0x220-byte struct or a 0x240-byte struct in the extended version.
If [[Calibration#CAL0|Calibration Version]] >= 9, this is now:
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Offset || Size || Description
! Value
! Description
|-
|-
| 0x0 || 0x240 || Key
| 0 || Speaker
|-
|-
| 0x240 || 0x4 || KeyGeneration
| 1 || Headphone
|}
|}


= SerialNumber =
= DeviceNickName =
This is "nn::settings::factory::SerialNumber". This is a 0x18-byte struct.
This is "nn::settings::system::DeviceNickName". This is a 0x80-byte struct.


= SpeakerParameter =
= Edid =
This is "nn::settings::factory::SpeakerParameter". This is copied from the first 0x5A bytes of [[Calibration#SpeakerCalibrationValue|SpeakerCalibrationValue]].
This is "nn::settings::system::Edid".
 
= SslCertificate =
This is "nn::settings::factory::SslCertificate". This is a 0x804-byte struct.


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 1,351: Line 1,646:
! Offset || Size || Description
! Offset || Size || Description
|-
|-
| 0x0 || 0x4 || Size
| 0x0 || 0x80 || Data0
|-
| 0x80 || 0x80 || Data1
|-
| 0x100 || 0x80 || [13.0.0+] Data2
|-
|-
| 0x4 || Variable || Data
| 0x180 || 0x80 || [13.0.0+] Data3
|}
|}


= SslKey =
= RegionCode =
This is "nn::settings::factory::SslKey". This is a 0x110-byte struct or a 0x130-byte struct in the extended version.
This is "nn::settings::system::RegionCode".


If [[Calibration#CAL0|Calibration Version]] >= 9, this is now:
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Offset || Size || Description
! Value
|-
| 0x0 || 0x130 || Key
|-
| 0x130 || 0x4 || KeyGeneration
|}
 
= RegionCode =
This is "nn::settings::factory::RegionCode".
 
{| class="wikitable" border="1"
|-
! Value
! Description
! Description
|-
|-
Line 1,385: Line 1,671:
| 3 || Australia
| 3 || Australia
|-
|-
| 4 || China
| 4 || HongKongTaiwanKorea
|-
|-
| 5 || Korea
| 5 || China
|-
| 6 || Taiwan
|}
|}


= AudioOutputMode =
= UserSelectorFlag =
This is "nn::settings::system::AudioOutputMode".
This is "nn::settings::system::UserSelectorFlag".


{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
! Bits
! Value
! Description
! Description
|-
|-
| 0 || 1ch
| 0 || SkipsIfSingleUser
|-
|-
| 1 || 2ch
| 31 || Unknown
|-
| 2 || 5_1ch
|-
| 3 || 7_1ch
|}
|}


= AudioOutputModeTarget =
= UserSelectorSettings =
This is "nn::settings::system::AudioOutputModeTarget".
This is "nn::settings::system::UserSelectorSettings".
 
This contains an u32 bitmask for [[#UserSelectorFlag]].
 
= AccountSettings =
This is "nn::settings::system::AccountSettings".
 
This contains [[#UserSelectorSettings]].
 
= ClockSourceId =
This is "nn::settings::system::ClockSourceId".


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 1,417: Line 1,706:
! Description
! Description
|-
|-
| 0 || Hdmi
| 0 || NetworkSystemClock
|-
|-
| 1 || Speaker
| 1 || SteadyClock
|-
| 2 || Headphone
|}
|}


= AudioVolumeTarget =
= NotificationVolume =
This is "nn::settings::system::AudioVolumeTarget".
This is "nn::settings::system::NotificationVolume".


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 1,432: Line 1,719:
! Description
! Description
|-
|-
| 0 || Speaker
| 0 || Mute
|-
|-
| 1 || Headphone
| 1 || Low
|-
| 2 || High
|}
|}


= DeviceNickName =
= FriendPresenceOverlayPermission =
This is "nn::settings::system::DeviceNickName". This is a 0x80-byte struct.
This is "nn::settings::system::FriendPresenceOverlayPermission".
 
= Edid =
This is "nn::settings::system::Edid".


{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Offset || Size || Description
! Value
! Description
|-
|-
| 0x0 || 0x80 || Data0
| 0 || NotConfirmed
|-
|-
| 0x80 || 0x80 || Data1
| 1 || NoDisplay
|-
|-
| 0x100 || 0x80 || [13.0.0+] Data2
| 2 || FavoriteFriends
|-
|-
| 0x180 || 0x80 || [13.0.0+] Data3
| 3 || Friends
|}
|}


= RegionCode =
= TvResolution =
This is "nn::settings::system::RegionCode".
This is "nn::settings::system::TvResolution".


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 1,464: Line 1,751:
! Description
! Description
|-
|-
| 0 || Japan
| 0 || Auto
|-
|-
| 1 || Usa
| 1 || 1080p
|-
|-
| 2 || Europe
| 2 || 720p
|-
|-
| 3 || Australia
| 3 || 480p
|-
| 4 || HongKongTaiwanKorea
|-
| 5 || China
|}
|}


= UserSelectorFlag =
= HdmiContentType =
This is "nn::settings::system::UserSelectorFlag".
This is "nn::settings::system::HdmiContentType".


{| class="wikitable" border="1"
{| class="wikitable" border="1"
! Bits
|-
! Value
! Description
! Description
|-
|-
| 0 || SkipsIfSingleUser
| 0 || None
|-
| 1 || Graphics
|-
| 2 || Cinema
|-
| 3 || Photo
|-
|-
| 31 || Unknown
| 4 || Game
|}
|}


= UserSelectorSettings =
= RgbRange =
This is "nn::settings::system::UserSelectorSettings".
This is "nn::settings::system::RgbRange".


This contains an u32 bitmask for [[#UserSelectorFlag]].
{| class="wikitable" border="1"
 
= AccountSettings =
This is "nn::settings::system::AccountSettings".
 
This contains [[#UserSelectorSettings]].
 
= ClockSourceId =
This is "nn::settings::system::ClockSourceId".
 
{| class="wikitable" border="1"
|-
|-
! Value
! Value
! Description
! Description
|-
|-
| 0 || NetworkSystemClock
| 0 || Auto
|-
| 1 || Full
|-
|-
| 1 || SteadyClock
| 2 || Limited
|}
|}


= NotificationVolume =
= CmuMode =
This is "nn::settings::system::NotificationVolume".
This is "nn::settings::system::CmuMode".


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 1,520: Line 1,802:
! Description
! Description
|-
|-
| 0 || Mute
| 0 || None
|-
| 1 || ColorInvert
|-
|-
| 1 || Low
| 2 || HighContrast
|-
|-
| 2 || High
| 3 || GrayScale
|}
|}


= FriendPresenceOverlayPermission =
= HandheldSleepPlan =
This is "nn::settings::system::FriendPresenceOverlayPermission".
This is "nn::settings::system::HandheldSleepPlan".


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 1,535: Line 1,819:
! Description
! Description
|-
|-
| 0 || NotConfirmed
| 0 || 1Min
|-
| 1 || 3Min
|-
| 2 || 5Min
|-
|-
| 1 || NoDisplay
| 3 || 10Min
|-
|-
| 2 || FavoriteFriends
| 4 || 30Min
|-
|-
| 3 || Friends
| 5 || Never
|}
|}


= TvResolution =
= ConsoleSleepPlan =
This is "nn::settings::system::TvResolution".
This is "nn::settings::system::ConsoleSleepPlan".


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 1,552: Line 1,840:
! Description
! Description
|-
|-
| 0 || Auto
| 0 || 1Hour
|-
| 1 || 2Hour
|-
|-
| 1 || 1080p
| 2 || 3Hour
|-
|-
| 2 || 720p
| 3 || 6Hour
|-
|-
| 3 || 480p
| 4 || 12Hour
|}
|-
| 5 || Never
|}


= HdmiContentType =
= EulaVersion =
This is "nn::settings::system::HdmiContentType".
This is "nn::settings::system::EulaVersion".


{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Value
! Offset || Size || Description
! Description
|-
| 0x0 || 0x4 || Version
|-
|-
| 0 || None
| 0x4 || 0x4 || [[#RegionCode_2|RegionCode]]
|-
|-
| 1 || Graphics
| 0x8 || 0x4 || [[#SteadyClockSourceId|ClockType]]
|-
|-
| 2 || Cinema
| 0xC || 0x4 || Reserved
|-
|-
| 3 || Photo
| 0x10 || 0x8 || [[Glue_services#PosixTime|NetworkSystemClock]]
|-
|-
| 4 || Game
| 0x18 || 0x18 || [[Glue_services#SteadyClockTimePoint|SteadyClock]]
|}
|}


= RgbRange =
= FirmwareVersion =
This is "nn::settings::system::RgbRange".
This is "nn::settings::system::FirmwareVersion".


{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Value
! Offset || Size || Description
! Description
|-
|-
| 0 || Auto
| 0x0 || 0x1 || Major
|-
| 0x1 || 0x1 || Minor
|-
|-
| 1 || Full
| 0x2 || 0x1 || Micro
|-
|-
| 2 || Limited
| 0x3 || 0x1 || Reserved
|}
 
= CmuMode =
This is "nn::settings::system::CmuMode".
 
{| class="wikitable" border="1"
|-
|-
! Value
| 0x4 || 0x4 || ReleaseNumber
! Description
|-
|-
| 0 || None
| 0x8 || 0x20 || Platform
|-
|-
| 1 || ColorInvert
| 0x28 || 0x40 || Revision
|-
|-
| 2 || HighContrast
| 0x68 || 0x18 || DisplayVersion
|-
|-
| 3 || GrayScale
| 0x80 || 0x80 || DisplayName
|}
|}


= HandheldSleepPlan =
= PtmFuelGaugeParameter =
This is "nn::settings::system::HandheldSleepPlan".
This is "nn::settings::system::PtmFuelGaugeParameter".


{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Value
! Offset || Size || Description
! Description
|-
| 0x0 || 0x2 || Rcomp0
|-
| 0x2 || 0x2 || TempCo
|-
| 0x4 || 0x2 || FullCap
|-
| 0x6 || 0x2 || FullCapNom
|-
| 0x8 || 0x2 || IavgEmpty
|-
|-
| 0 || 1Min
| 0xA || 0x2 || QrTable00
|-
|-
| 1 || 3Min
| 0xC || 0x2 || QrTable10
|-
|-
| 2 || 5Min
| 0xE || 0x2 || QrTable20
|-
|-
| 3 || 10Min
| 0x10 || 0x2 || QrTable30
|-
|-
| 4 || 30Min
| 0x12 || 0x2 || Reserved
|-
|-
| 5 || Never
| 0x14 || 0x4 || Cycles
|}
|}


= ConsoleSleepPlan =
= SecuritySettings =
This is "nn::settings::system::ConsoleSleepPlan".
This is "nn::settings::system::SecuritySettings".


{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Value
! Offset || Size || Description
! Description
|-
|-
| 0 || 1Hour
| 0x0 || 0x4 || AuthenticationMode
|-
|-
| 1 || 2Hour
| 0x4 || 0x4 || EncryptionMode
|-
|-
| 2 || 3Hour
| 0x8 || 0x40 || KeyMaterial
|-
|-
| 3 || 6Hour
| 0x48 || 0x4 || KeyMaterialLength
|-
| 4 || 12Hour
|-
| 5 || Never
|}
|}


= EulaVersion =
= NotificationTime =
This is "nn::settings::system::EulaVersion".
This is "nn::settings::system::NotificationTime".


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 1,661: Line 1,952:
! Offset || Size || Description
! Offset || Size || Description
|-
|-
| 0x0 || 0x4 || Version
| 0x0 || 0x4 || Hour
|-
|-
| 0x4 || 0x4 || [[#RegionCode_2|RegionCode]]
| 0x4 || 0x4 || Minute
|-
| 0x8 || 0x4 || [[#SteadyClockSourceId|ClockType]]
|-
| 0xC || 0x4 || Reserved
|-
| 0x10 || 0x8 || [[Glue_services#PosixTime|NetworkSystemClock]]
|-
| 0x18 || 0x18 || [[Glue_services#SteadyClockTimePoint|SteadyClock]]
|}
|}


= FirmwareVersion =
= NotificationFlag =
This is "nn::settings::system::FirmwareVersion".
This is "nn::settings::system::NotificationFlag".


{| class="wikitable" border="1"
{| class="wikitable" border="1"
! Bits
! Description
|-
|-
! Offset || Size || Description
| 0 || RingtoneFlag
|-
|-
| 0x0 || 0x1 || Major
| 1 || DownloadCompletionFlag
|-
|-
| 0x1 || 0x1 || Minor
| 8 || EnablesNews
|-
|-
| 0x2 || 0x1 || Micro
| 9 || IncomingLampFlag
|-
| 0x3 || 0x1 || Reserved
|-
| 0x4 || 0x4 || ReleaseNumber
|-
| 0x8 || 0x20 || Platform
|-
| 0x28 || 0x40 || Revision
|-
| 0x68 || 0x18 || DisplayVersion
|-
| 0x80 || 0x80 || DisplayName
|}
|}


= PtmFuelGaugeParameter =
= NotificationSettings =
This is "nn::settings::system::PtmFuelGaugeParameter".
This is "nn::settings::system::NotificationSettings".


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 1,707: Line 1,980:
! Offset || Size || Description
! Offset || Size || Description
|-
|-
| 0x0 || 0x2 || Rcomp0
| 0x0 || 0x4 || [[#NotificationFlag|Flags]]
|-
|-
| 0x2 || 0x2 || TempCo
| 0x4 || 0x4 || [[#NotificationVolume|Volume]]
|-
|-
| 0x4 || 0x2 || FullCap
| 0x8 || 0x8 || [[#NotificationTime|HeadTime]]
|-
|-
| 0x6 || 0x2 || FullCapNom
| 0x10 || 0x8 || [[#NotificationTime|TailTime]]
|-
| 0x8 || 0x2 || IavgEmpty
|-
| 0xA || 0x2 || QrTable00
|-
| 0xC || 0x2 || QrTable10
|-
| 0xE || 0x2 || QrTable20
|-
| 0x10 || 0x2 || QrTable30
|-
| 0x12 || 0x2 || Reserved
|-
| 0x14 || 0x4 || Cycles
|}
|}


= SecuritySettings =
= AccountNotificationFlag =
This is "nn::settings::system::SecuritySettings".
This is "nn::settings::system::AccountNotificationFlag".


{| class="wikitable" border="1"
{| class="wikitable" border="1"
! Bits
! Description
|-
|-
! Offset || Size || Description
| 0 || FriendOnlineFlag
|-
|-
| 0x0 || 0x4 || AuthenticationMode
| 1 || FriendRequestFlag
|-
|-
| 0x4 || 0x4 || EncryptionMode
| 8 || CoralInvitationFlag
|-
| 0x8 || 0x40 || KeyMaterial
|-
| 0x48 || 0x4 || KeyMaterialLength
|}
|}


= NotificationTime =
= AccountNotificationSettings =
This is "nn::settings::system::NotificationTime".
This is "nn::settings::system::AccountNotificationSettings".


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 1,753: Line 2,010:
! Offset || Size || Description
! Offset || Size || Description
|-
|-
| 0x0 || 0x4 || Hour
| 0x0 || 0x10 || [[Account_services#Uid|Uid]]
|-
| 0x10 || 0x4 || [[#AccountNotificationFlag|Flags]]
|-
| 0x14 || 0x1 || [[#FriendPresenceOverlayPermission|FriendPresenceOverlayPermission]]
|-
| 0x15 || 0x1 || [[#FriendPresenceOverlayPermission|FriendInvitationOverlayPermission]]
|-
|-
| 0x4 || 0x4 || Minute
| 0x16 || 0x2 || Reserved
|}
|}


= NotificationFlag =
= TvFlag =
This is "nn::settings::system::NotificationFlag".
This is "nn::settings::system::TvFlag".


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 1,765: Line 2,028:
! Description
! Description
|-
|-
| 0 || RingtoneFlag
| 0 || Allows4k
|-
|-
| 1 || DownloadCompletionFlag
| 1 || Allows3d
|-
|-
| 8 || EnablesNews
| 2 || AllowsCec
|-
|-
| 9 || IncomingLampFlag
| 3 || PreventsScreenBurnIn
|}
|}


= NotificationSettings =
= TvSettings =
This is "nn::settings::system::NotificationSettings".
This is "nn::settings::system::TvSettings".


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 1,781: Line 2,044:
! Offset || Size || Description
! Offset || Size || Description
|-
|-
| 0x0 || 0x4 || [[#NotificationFlag|Flags]]
| 0x0 || 0x4 || [[#TvFlag|Flags]]
|-
| 0x4 || 0x4 || [[#TvResolution|TvResolution]]
|-
| 0x8 || 0x4 || [[#HdmiContentType|HdmiContentType]]
|-
| 0xC || 0x4 || [[#RgbRange|RgbRange]]
|-
| 0x10 || 0x4 || [[#CmuMode|CmuMode]]
|-
|-
| 0x4 || 0x4 || [[#NotificationVolume|Volume]]
| 0x14 || 0x4 || TvUnderscan
|-
|-
| 0x8 || 0x8 || [[#NotificationTime|HeadTime]]
| 0x18 || 0x4 || TvGamma
|-
|-
| 0x10 || 0x8 || [[#NotificationTime|TailTime]]
| 0x1C || 0x4 || ContrastRatio
|}
|}


= AccountNotificationFlag =
= DataDeletionFlag =
This is "nn::settings::system::AccountNotificationFlag".
This is "nn::settings::system::DataDeletionFlag".


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 1,797: Line 2,068:
! Description
! Description
|-
|-
| 0 || FriendOnlineFlag
| 0 || AutomaticDeletionFlag
|-
|}
| 1 || FriendRequestFlag
|-
| 8 || CoralInvitationFlag
|}


= AccountNotificationSettings =
= DataDeletionSettings =
This is "nn::settings::system::AccountNotificationSettings".
This is "nn::settings::system::DataDeletionSettings".


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 1,811: Line 2,078:
! Offset || Size || Description
! Offset || Size || Description
|-
|-
| 0x0 || 0x10 || [[Account_services#Uid|Uid]]
| 0x0 || 0x4 || [[#DataDeletionFlag|Flags]]
|-
|-
| 0x10 || 0x4 || [[#AccountNotificationFlag|Flags]]
| 0x4 || 0x4 || UseCount
|-
| 0x14 || 0x1 || [[#FriendPresenceOverlayPermission|FriendPresenceOverlayPermission]]
|-
| 0x15 || 0x1 || [[#FriendPresenceOverlayPermission|FriendInvitationOverlayPermission]]
|-
| 0x16 || 0x2 || Reserved
|}
|}


= TvFlag =
= SleepFlag =
This is "nn::settings::system::TvFlag".
This is "nn::settings::system::SleepFlag".


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 1,829: Line 2,090:
! Description
! Description
|-
|-
| 0 || Allows4k
| 0 || SleepsWhilePlayingMedia
|-
|-
| 1 || Allows3d
| 1 || WakesAtPowerStateChange
|-
| 2 || AllowsCec
|-
| 3 || PreventsScreenBurnIn
|}
|}


= TvSettings =
= SleepSettings =
This is "nn::settings::system::TvSettings".
This is "nn::settings::system::SleepSettings".


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 1,845: Line 2,102:
! Offset || Size || Description
! Offset || Size || Description
|-
|-
| 0x0 || 0x4 || [[#TvFlag|Flags]]
| 0x0 || 0x4 || [[#SleepFlag|Flags]]
|-
|-
| 0x4 || 0x4 || [[#TvResolution|TvResolution]]
| 0x4 || 0x4 || [[#HandheldSleepPlan|HandheldSleepPlan]]
|-
|-
| 0x8 || 0x4 || [[#HdmiContentType|HdmiContentType]]
| 0x8 || 0x4 || [[#ConsoleSleepPlan|ConsoleSleepPlan]]
|-
| 0xC || 0x4 || [[#RgbRange|RgbRange]]
|-
| 0x10 || 0x4 || [[#CmuMode|CmuMode]]
|-
| 0x14 || 0x4 || TvUnderscan
|-
| 0x18 || 0x4 || TvGamma
|-
| 0x1C || 0x4 || ContrastRatio
|}
|}


= DataDeletionFlag =
= InitialLaunchFlag =
This is "nn::settings::system::DataDeletionFlag".
This is "nn::settings::system::InitialLaunchFlag".


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 1,869: Line 2,116:
! Description
! Description
|-
|-
| 0 || AutomaticDeletionFlag
| 0 || InitialLaunchCompletionFlag
|-
| 8 || InitialLaunchUserAdditionFlag
|-
| 16 || InitialLaunchTimestampFlag
|}
|}


= DataDeletionSettings =
= InitialLaunchSettings =
This is "nn::settings::system::DataDeletionSettings".
This is "nn::settings::system::InitialLaunchSettings". This struct is 8-byte aligned.


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 1,879: Line 2,130:
! Offset || Size || Description
! Offset || Size || Description
|-
|-
| 0x0 || 0x4 || [[#DataDeletionFlag|Flags]]
| 0x0 || 0x4 || [[#InitialLaunchFlag|Flags]]
|-
| 0x4 || 0x4 || Reserved
|-
|-
| 0x4 || 0x4 || UseCount
| 0x8 || 0x18 || [[Glue_services#SteadyClockTimePoint|TimeStamp]]
|}
|}


= SleepFlag =
= RebootlessSystemUpdateVersion =
This is "nn::settings::system::SleepFlag".
This is "nn::settings::system::RebootlessSystemUpdateVersion". This struct is 4-byte aligned.
 
This is the content of the RebootlessSystemUpdateVersion SystemData, in the "/version" file.


{| class="wikitable" border="1"
{| class="wikitable" border="1"
! Bits
! Description
|-
|-
| 0 || SleepsWhilePlayingMedia
! Offset || Size || Description
|-
| 0x0 || 0x4 || Version
|-
| 0x4 || 0x1C || Reserved
|-
|-
| 1 || WakesAtPowerStateChange
| 0x20 || 0x20 || DisplayVersion
|}
|}


= SleepSettings =
= PrimaryAlbumStorage =
This is "nn::settings::system::SleepSettings".
This is "nn::settings::system::PrimaryAlbumStorage".


{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Offset || Size || Description
! Value
! Description
|-
|-
| 0x0 || 0x4 || [[#SleepFlag|Flags]]
| 0 || Nand
|-
|-
| 0x4 || 0x4 || [[#HandheldSleepPlan|HandheldSleepPlan]]
| 1 || SdCard
|-
| 0x8 || 0x4 || [[#ConsoleSleepPlan|ConsoleSleepPlan]]
|}
|}


= InitialLaunchFlag =
= ErrorReportSharePermission =
This is "nn::settings::system::InitialLaunchFlag".
This is "nn::settings::system::ErrorReportSharePermission".


{| class="wikitable" border="1"
{| class="wikitable" border="1"
! Bits
|-
! Value
! Description
! Description
|-
|-
| 0 || InitialLaunchCompletionFlag
| 0 || NotConfirmed
|-
|-
| 8 || InitialLaunchUserAdditionFlag
| 1 || Granted
|-
|-
| 16 || InitialLaunchTimestampFlag
| 2 || Denied
|}
|}


= InitialLaunchSettings =
= ServiceDiscoveryControlSettings =
This is "nn::settings::system::InitialLaunchSettings". This struct is 8-byte aligned.
This is "nn::settings::system::ServiceDiscoveryControlSettings".


{| class="wikitable" border="1"
{| class="wikitable" border="1"
! Bits
! Description
|-
|-
! Offset || Size || Description
| 0
|-
| IsChangeEnvironmentIdentifierDisabled
| 0x0 || 0x4 || [[#InitialLaunchFlag|Flags]]
|-
| 0x4 || 0x4 || Reserved
|-
| 0x8 || 0x18 || [[Glue_services#SteadyClockTimePoint|TimeStamp]]
|}
|}


= RebootlessSystemUpdateVersion =
= AppletLaunchFlag =
This is "nn::settings::system::RebootlessSystemUpdateVersion". This struct is 4-byte aligned.
This is "nn::settings::system::AppletLaunchFlag". This is an u32 bitmask.


This is the content of the RebootlessSystemUpdateVersion SystemData, in the "/version" file.
= KeyboardLayout =
This is "nn::settings::KeyboardLayout".


{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Offset || Size || Description
! Value
! Description
|-
|-
| 0x0 || 0x4 || Version
| 1 || EnglishUs
|-
|-
| 0x4 || 0x1C || Reserved
| 2 || EnglishUsInternational
|-
|-
| 0x20 || 0x20 || DisplayVersion
| 3 || EnglishUk
|}
 
= PrimaryAlbumStorage =
This is "nn::settings::system::PrimaryAlbumStorage".
 
{| class="wikitable" border="1"
|-
|-
! Value
| 4 || French
! Description
|-
| 5 || FrenchCa
|-
| 6 || Spanish
|-
| 7 || SpanishLatin
|-
| 8 || German
|-
| 9 || Italian
|-
| 10 || Portuguese
|-
| 11 || Russian
|-
| 12 || Korean
|-
|-
| 0 || Nand
| 13 || ChineseSimplified
|-
|-
| 1 || SdCard
| 14 || ChineseTraditional
|}
|}


= ErrorReportSharePermission =
= ChineseTraditionalInputMethod =
This is "nn::settings::system::ErrorReportSharePermission".
This is "nn::settings::ChineseTraditionalInputMethod".


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 1,975: Line 2,240:
! Description
! Description
|-
|-
| 0 || NotConfirmed
| 1 ||  
|-
|-
| 1 || Granted
| 2 ||  
|-
| 2 || Denied
|}
|}


= ServiceDiscoveryControlSettings =
= HomeMenuScheme =
This is "nn::settings::system::ServiceDiscoveryControlSettings".
This is "nn::settings::system::HomeMenuScheme".


{| class="wikitable" border="1"
{| class="wikitable" border="1"
! Bits
! Description
|-
|-
| 0
! Offset || Size || Description
| IsChangeEnvironmentIdentifierDisabled
|-
| 0x0 || 0x4 || MainColor
|-
| 0x4 || 0x4 || BackColor
|-
| 0x8 || 0x4 || SubColor
|-
| 0xC || 0x4 || Reserved
|-
| 0x10 || 0x4 || BezelColor
|}
|}


= AppletLaunchFlag =
= TouchScreenMode =
This is "nn::settings::system::AppletLaunchFlag". This is an u32 bitmask.
This is "nn::settings::system::TouchScreenMode".
 
= KeyboardLayout =
This is "nn::settings::KeyboardLayout".


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 2,004: Line 2,271:
! Description
! Description
|-
|-
| 1 || EnglishUs
| 0 || Stylus
|-
|-
| 2 || EnglishUsInternational
| 1 || Standard
|-
|}
| 3 || EnglishUk
 
= ButtonConfigSettings =
This is "nn::settings::system::ButtonConfigSettings". This is a 0x5A8-byte struct.
 
{| class="wikitable" border="1"
|-
|-
| 4 || French
! Offset || Size || Description
|-
|-
| 5 || FrenchCa
| 0x0 || 0x1 || IsFull bool flag. 0 = empty config, 1 = config set. Also accessed as an u32, but only bit0 is used.
|-
|-
| 6 || Spanish
| 0x1 || 0x3 || Padding
|-
|-
| 7 || SpanishLatin
| 0x4 || 0x1C4 || Unused
|-
|-
| 8 || German
| 0x1C8 || 0x3E0 || Config
|}
 
= ButtonConfigRegisteredSettings =
This is "nn::settings::system::ButtonConfigRegisteredSettings". This is a 0x5C8-byte struct.
 
= BluetoothDevicesSettings =
This is "nn::settings::system::BluetoothDevicesSettings". This is a 0x200-byte struct.
 
{| class="wikitable" border="1"
|-
|-
| 9 || Italian
! Offset || Size || Description
|-
|-
| 10 || Portuguese
| 0x0 || 0x6 || [[BTM_services#BdAddress|BdAddr]]
|-
|-
| 11 || Russian
| 0x6 || 0x20 || [13.0.0+] Reserved ([1.0.0-12.1.0] [[BTM_services#BdName|DeviceName]])
|-
|-
| 12 || Korean
| 0x26 || 0x3 || [[BTM_services#ClassOfDevice|ClassOfDevice]]
|-
|-
| 13 || ChineseSimplified
| 0x29 || 0x10 || LinkKey
|-
|-
| 14 || ChineseTraditional
| 0x39 || 0x1 || LinkKeyPresent
|}
 
= ChineseTraditionalInputMethod =
This is "nn::settings::ChineseTraditionalInputMethod".
 
{| class="wikitable" border="1"
|-
|-
! Value
| 0x3A || 0x2 || Version
! Description
|-
|-
| 1 ||  
| 0x3C || 0x4 || TrustedServices
|-
|-
| 2 ||  
| 0x40 || 0x2 || Vid
|}
 
= TouchScreenMode =
This is "nn::settings::system::TouchScreenMode".
 
{| class="wikitable" border="1"
|-
|-
! Value
| 0x42 || 0x2 || Pid
! Description
|-
|-
| 0 || Stylus
| 0x44 || 0x1 || SubClass
|-
|-
| 1 || Standard
| 0x45 || 0x1 || AttributeMask
|}
 
= ButtonConfigSettings =
This is "nn::settings::system::ButtonConfigSettings". This is a 0x5A8-byte struct.
 
{| class="wikitable" border="1"
|-
|-
! Offset || Size || Description
| 0x46 || 0x2 || DescriptorLength
|-
|-
| 0x0 || 0x1 || IsFull bool flag. 0 = empty config, 1 = config set. Also accessed as an u32, but only bit0 is used.
| 0x48 || 0x80 || Descriptor
|-
|-
| 0x1 || 0x3 || Padding
| 0xC8 || 0x1 || KeyType
|-
|-
| 0x4 || 0x1C4 || Unused
| 0xC9 || 0x1 || DeviceType
|-
|-
| 0x1C8 || 0x3E0 || Config
| 0xCA || 0x2 || BrrSize
|}
 
= ButtonConfigRegisteredSettings =
This is "nn::settings::system::ButtonConfigRegisteredSettings". This is a 0x5C8-byte struct.
 
= BluetoothDevicesSettings =
This is "nn::settings::system::BluetoothDevicesSettings". This is a 0x200-byte struct.
 
{| class="wikitable" border="1"
|-
|-
! Offset || Size || Description
| 0xCC || 0x9 || Brr
|-
| 0x0 || 0x6 || [[BTM_services#BdAddress|BdAddr]]
|-
| 0x6 || 0x20 || [[BTM_services#BdName|DeviceName]]
|-
| 0x26 || 0x3 || [[BTM_services#ClassOfDevice|ClassOfDevice]]
|-
| 0x29 || 0x10 || LinkKey
|-
| 0x39 || 0x1 || LinkKeyPresent
|-
| 0x3A || 0x2 || Version
|-
| 0x3C || 0x4 || TrustedServices
|-
| 0x40 || 0x2 || Vid
|-
| 0x42 || 0x2 || Pid
|-
| 0x44 || 0x1 || SubClass
|-
|-
| 0x45 || 0x1 || AttributeMask
| 0xD5 || 0x1 || [13.0.0+] AudioSourceVolume
|-
|-
| 0x46 || 0x2 || DescriptorLength
| 0xD6 || 0xF9 || [13.0.0+] DeviceName
|-
|-
| 0x48 || 0x80 || Descriptor
| 0x1CF || 0x1 || [15.0.0+] AudioSinkVolume
|-
|-
| 0xC8 || 0x1 || KeyType
| 0x1D0 || 0x4 || [14.0.0+] AudioFlags
|-
| 0xC9 || 0x1 || DeviceType
|-
| 0xCA || 0x2 || BrrSize
|-
| 0xCC || 0x9 || Brr
|-
|-
| 0xD5 || 0x12B || Reserved
| 0x1D4 || 0x2C || Reserved
|}
|}