Settings services: Difference between revisions

Masagrator (talk | contribs)
No edit summary
 
(34 intermediate revisions by 4 users not shown)
Line 29: Line 29:
|-
|-
| 11 || [10.1.0+] [[#GetDeviceNickName]]
| 11 || [10.1.0+] [[#GetDeviceNickName]]
|-
| 12 || [18.0.0+] GetKeyCodeMapByPort
|}
|}


Line 59: Line 61:


== GetKeyCodeMap ==
== GetKeyCodeMap ==
Takes a type-0x16 output buffer containing KeyCodeMap, official sw uses fixed size 0x1000. This is probably related to HID keyboard.
Takes a type-0x16 output buffer containing KeyCodeMap, official sw uses fixed size 0x1000. This is related to the USB HID keyboard.
 
The returned buffer consists of a 0x20-byte header followed by an array of key mapping structures.
 
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
| 0x0 || 0x4 || Magic number? (0x01000001)
|-
| 0x4 || 0x4 || Entry count per key (3 for US English, 4 for German as it includes AltGr mappings)
|-
| 0x8 || 0x4 || Map count
|-
| 0xC || 0x4 || Layout ID (e.g. 3 = German QWERTZ)
|-
| 0x10 || 0x10 || Reserved
|-
| 0x20 || 0x8 * MapCount || Array of <code>KeyMapEntry</code> structures. Indexed by the standard USB HID Usage ID (Keyboard/Keypad page 0x07).
|-
| ... || ... || Padding (remaining space up to 0x1000)
|}
 
=== KeyMapEntry ===
Structure defining the output characters and modifier behaviors for a single physical key. Size may vary depending on the symbol count per key.
 
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
| 0x0 || 0x2 || Normal char: UTF-16 code point when no modifiers are pressed. Dead keys map directly to Unicode combining characters (like U+0301 for combining acute accent).
|-
| 0x2 || 0x2 || Flags: Bitmask for character behavior and modifier rules.
|-
| 0x4 || 0x2 || Shift char: UTF-16 code point emitted when Shift is held.
|-
| 0x6 || 0x2 || AltGr char: UTF-16 code point emitted when AltGr is held (only included if the 'entry count per key' = 4)
|}
 
The Flags field changes how state changes are handled (like Caps Lock or NumLock) for that specific code point:
* 0x1001: Standard character. Uses standard Shift and Caps Lock rules.
* 0x1000: Static/dead character (e.g., Space).
* 0x20FF: Keypad modifier. State influenced by NumLock.


== GetFirmwareVersionForDebug ==
== GetFirmwareVersionForDebug ==
Line 94: Line 138:
|-
|-
| 23 || [9.0.0+] SetMemoryUsageRateFlag
| 23 || [9.0.0+] SetMemoryUsageRateFlag
|-
| 24 || [20.0.0+] CommitSettings
|-
| 27 || [21.0.0+] SetHttpAuthConfigs
|}
|}


Line 117: Line 165:
! Cmd || Name
! Cmd || Name
|-
|-
| 0 || GetBluetoothBdAddress
| 0 || [S1] [[#GetBluetoothBdAddress]]
|-
|-
| 1 || [[#GetConfigurationId1]]
| 1 || [[#GetConfigurationId1]]
|-
|-
| 2 || GetAccelerometerOffset
| 2 || [S1] [[#GetAccelerometerOffset]]
|-
|-
| 3 || GetAccelerometerScale
| 3 || [S1] [[#GetAccelerometerScale]]
|-
|-
| 4 || GetGyroscopeOffset
| 4 || [S1] [[#GetGyroscopeOffset]]
|-
|-
| 5 || GetGyroscopeScale
| 5 || [S1] [[#GetGyroscopeScale]]
|-
|-
| 6 || GetWirelessLanMacAddress
| 6 || [[#GetWirelessLanMacAddress]]
|-
|-
| 7 || GetWirelessLanCountryCodeCount
| 7 || [S1] [[#GetWirelessLanCountryCodeCount]]
|-
|-
| 8 || GetWirelessLanCountryCodes
| 8 || [S1] [[#GetWirelessLanCountryCodes]]
|-
|-
| 9 || GetSerialNumber
| 9 || [[#GetSerialNumber]]
|-
|-
| 10 || SetInitialSystemAppletProgramId
| 10 || [S1] [[#SetInitialSystemAppletProgramId]]
|-
|-
| 11 || SetOverlayDispProgramId
| 11 || [S1] [[#SetOverlayDispProgramId]]
|-
|-
| 12 || GetBatteryLot
| 12 || [[#GetBatteryLot]]
|-
|-
| 14 || [[#GetEciDeviceCertificate]]
| 14 || [S1] [[#GetEciDeviceCertificate]]
|-
|-
| 15 || [[#GetEticketDeviceCertificate]]
| 15 || [S1] [[#GetEticketDeviceCertificate]]
|-
|-
| 16 || [[#GetSslKey]]
| 16 || [S1] [[#GetSslKey]]
|-
|-
| 17 || [[#GetSslCertificate]]
| 17 || [S1] [[#GetSslCertificate]]
|-
|-
| 18 || [[#GetGameCardKey]]
| 18 || [S1] [[#GetGameCardKey]]
|-
|-
| 19 || [[#GetGameCardCertificate]]
| 19 || [S1] [[#GetGameCardCertificate]]
|-
|-
| 20 || [[#GetEciDeviceKey]]
| 20 || [S1] [[#GetEciDeviceKey]]
|-
|-
| 21 || [[#GetEticketDeviceKey]]
| 21 || [S1] [[#GetEticketDeviceKey]]
|-
|-
| 22 || GetSpeakerParameter
| 22 || [S1] [[#GetSpeakerParameter]]
|-
|-
| 23 || [4.0.0+] GetLcdVendorId
| 23 || [S1] [4.0.0+] [[#GetLcdVendorId]]
|-
|-
| 24 || [5.0.0+] [[#GetEciDeviceCertificate2]]
| 24 || [S1] [5.0.0+] [[#GetEciDeviceCertificate2]]
|-
|-
| 25 || [5.0.0+] [[#GetEciDeviceKey2]]
| 25 || [S1] [5.0.0+] [[#GetEciDeviceKey2]]
|-
|-
| 26 || [5.0.0+] GetAmiiboKey
| 26 || [S1] [5.0.0+] [[#GetAmiiboKey]]
|-
|-
| 27 || [5.0.0+] GetAmiiboEcqvCertificate
| 27 || [S1] [5.0.0+] [[#GetAmiiboEcqvCertificate]]
|-
|-
| 28 || [5.0.0+] GetAmiiboEcdsaCertificate
| 28 || [S1] [5.0.0+] [[#GetAmiiboEcdsaCertificate]]
|-
|-
| 29 || [5.0.0+] GetAmiiboEcqvBlsKey
| 29 || [S1] [5.0.0+] [[#GetAmiiboEcqvBlsKey]]
|-
|-
| 30 || [5.0.0+] GetAmiiboEcqvBlsCertificate
| 30 || [S1] [5.0.0+] [[#GetAmiiboEcqvBlsCertificate]]
|-
|-
| 31 || [5.0.0+] GetAmiiboEcqvBlsRootCertificate
| 31 || [S1] [5.0.0+] [[#GetAmiiboEcqvBlsRootCertificate]]
|-
|-
| 32 || [5.0.0+] GetUsbTypeCPowerSourceCircuitVersion
| 32 || [S1] [5.0.0+] [[#GetUsbTypeCPowerSourceCircuitVersion]]
|-
|-
| 33 || [8.1.1+] GetAnalogStickModuleTypeL
| 33 || [S1] [8.1.1+] [[#GetAnalogStickModuleTypeL]]
|-
|-
| 34 || [8.1.1+] GetAnalogStickModelParameterL
| 34 || [S1] [8.1.1+] [[#GetAnalogStickModelParameterL]]
|-
|-
| 35 || [8.1.1+] GetAnalogStickFactoryCalibrationL
| 35 || [S1] [8.1.1+] [[#GetAnalogStickFactoryCalibrationL]]
|-
|-
| 36 || [8.1.1+] GetAnalogStickModuleTypeR
| 36 || [S1] [8.1.1+] [[#GetAnalogStickModuleTypeR]]
|-
|-
| 37 || [8.1.1+] GetAnalogStickModelParameterR
| 37 || [S1] [8.1.1+] [[#GetAnalogStickModelParameterR]]
|-
|-
| 38 || [8.1.1+] GetAnalogStickFactoryCalibrationR
| 38 || [S1] [8.1.1+] [[#GetAnalogStickFactoryCalibrationR]]
|-
|-
| 39 || [8.1.1+] GetConsoleSixAxisSensorModuleType
| 39 || [S1] [8.1.1+] [[#GetConsoleSixAxisSensorModuleType]]
|-
|-
| 40 || [8.1.1+] GetConsoleSixAxisSensorHorizontalOffset
| 40 || [S1] [8.1.1+] [[#GetConsoleSixAxisSensorHorizontalOffset]]
|-
|-
| 41 || [6.0.0+] GetBatteryVersion
| 41 || [S1] [6.0.0+] [[#GetBatteryVersion]]
|-
|-
| 42 || [10.0.0+] [[#GetDeviceId]]
| 42 || [S1] [10.0.0+] [[#GetDeviceId]]
|-
|-
| 43 || [10.0.0+] GetConsoleSixAxisSensorMountType
| 43 || [S1] [10.0.0+] [[#GetConsoleSixAxisSensorMountType]]
|}
|-
 
| 44 || [S2] GetCpDeviceKeyFileSize
Used for accessing data calibrated at the factory.
|-
 
| 45 || [S2] GetCpDeviceKeyFile
== GetConfigurationId1 ==
|-
Returns the [[#ConfigurationId1]].
| 46 || [S2] GetCpCertificateFileSize
 
|-
== GetEciDeviceCertificate ==
| 47 || [S2] GetCpCertificateFile
Takes a type-0x16 output buffer containing a [[#EccB233DeviceCertificate]].
|-
 
| 48 || [S2] GetRaCertificateFileSize
Returns the device certificate (ECC signed). This is identical to 3DS DeviceCert/CTCert besides the strings. NIM loads the DeviceId from this.
|-
 
| 49 || [S2] GetRaCertificateFile
== GetEticketDeviceCertificate ==
|-
Takes a type-0x16 output buffer containing a [[#Rsa2048DeviceCertificate]].
| 50 || [S2] GetRaOemEkFileSize
 
|-
Returns the ETicket certificate (RSA signed).
| 51 || [S2] GetRaOemEkFile
 
|-
== GetSslKey ==
| 52 || [S2] GetRaPkaKekFileSize
Takes a type-0x16 output buffer containing a [[#SslKey]].
|-
 
| 53 || [S2] GetRaPkaKekFile
Returns the extended SSL key (0x130 bytes) from [[Calibration#CAL0|CAL0]]. If the extended key is not programmed then it falls back to the normal SSL key (0x110 bytes).
|-
 
| 54 || [S2] GetGcNxPkKekFileSize
Used by SSL-sysmodule, see [[SSL_services|here]].
|-
 
| 55 || [S2] GetGcNxPkKekFile
== GetSslCertificate ==
|-
Takes a type-0x16 output buffer containing a [[#SslCertificate]].
| 56 || [S2] GetGcUniqueImportKeyFileSize
 
|-
Used by SSL-sysmodule, see [[SSL_services|here]].
| 57 || [S2] GetGcUniqueImportKeyFile
 
|-
== GetGameCardKey ==
| 58 || [S2] GetGcUniqueEncryptionKeyFileSize
Takes a type-0x16 output buffer containing a [[#GameCardKey]].
|-
 
| 59 || [S2] GetGcUniqueEncryptionKeyFile
Returns the extended GameCard key (0x130 bytes) from [[Calibration#CAL0|CAL0]]. If the extended key is not programmed then it falls back to the normal GameCard key (0x110 bytes).
|-
 
| 60 || [S2] GetGcCertificateFileSize
== GetGameCardCertificate ==
|-
Takes a type-0x16 output buffer containing a [[#GameCardCertificate]].
| 61 || [S2] GetGcCertificateFile
 
|-
== GetEciDeviceKey ==
| 62 || [S2] GetGcUniqueKeyAFileSize
No input, returns an [[#EccB233DeviceKey]].
|-
 
| 63 || [S2] GetGcUniqueKeyAFile
Returns the extended device ECC-B233 key (0x50 bytes) from [[Calibration#CAL0|CAL0]]. If the extended key is not programmed then it falls back to the normal device ECC-B233 key (0x30 bytes).
|-
 
| 64 || [S2] GetGcUniqueKeyBFileSize
== GetEticketDeviceKey ==
|-
Takes a type-0x16 output buffer containing a [[#Rsa2048DeviceKey]].
| 65 || [S2] GetGcUniqueKeyBFile
 
|-
Returns the extended ETicket RSA-2048 key (0x240 bytes) from [[Calibration#CAL0|CAL0]]. If the extended key is not programmed then it falls back to the normal ETicket RSA-2048 key (0x220 bytes).
| 66 || [S2] GetGcNxKeyFileSize
 
|-
== GetEciDeviceCertificate2 ==
| 67 || [S2] GetGcNxKeyFile
Same as [[#GetEciDeviceCertificate]], but [[#Rsa2048DeviceCertificate|returns]] a RSA-2048 variant of the device certificate.
|-
 
| 68 || [S2] GetGcNxCertificateFileSize
== GetEciDeviceKey2 ==
|-
Same as [[#GetEciDeviceKey]], but [[#Rsa2048DeviceKey|returns]] a RSA-2048 variant of the device key.
| 69 || [S2] GetGcNxCertificateFile
 
|-
== GetDeviceId ==
| 70 || [S2] GetWirelessLanRegulatoryDomain
Returns an u64 '''DeviceId''' by reading and converting the hexadecimal string at offset 0xC6 inside [[#EccB233DeviceCertificate]] or [[#Rsa2048DeviceCertificate]].
|-
 
| 71 || [S2] GetDeviceId
= set:sys =
|-
This is "nn::settings::ISystemSettingsServer".
| 72 || [S2] GetBluetoothBdAddressSet
 
|-
{| class="wikitable" border="1"
| 73 || [S2] GetToolModel
|-
| 74 || [S2] IsRadioForbidden
|-
| 75 || [S2] GetDisplayModuleId
|-
|-
! Cmd || Name
| 76 || [S2] GetAnalogStickModuleTypeL
|-
|-
| 0 || [[#SetLanguageCode]]
| 77 || [S2] GetAnalogStickModelParameterL
|-
|-
| 1 || SetNetworkSettings
| 78 || [S2] GetAnalogStickFactoryCalibrationL
|-
|-
| 2 || GetNetworkSettings
| 79 || [S2] GetAnalogStickModuleTypeR
|-
|-
| 3 || [[#GetFirmwareVersion]]
| 80 || [S2] GetAnalogStickModelParameterR
|-
|-
| 4 || [3.0.0+] GetFirmwareVersion2
| 81 || [S2] GetAnalogStickFactoryCalibrationR
|-
|-
| 5 || [5.0.0+] GetFirmwareVersionDigest
| 82 || [S2] GetConsoleSixAxisSensorModuleType
|-
|-
| 7 || GetLockScreenFlag
| 83 || [S2] GetConsoleSixAxisSensorMountType
|-
|-
| 8 || SetLockScreenFlag
| 84 || [S2] GetConsoleSixAxisSensorFactoryCalibration
|-
|-
| 9 || GetBacklightSettings
| 85 || [S2] GetOta0DeviceKeyFileSize
|-
|-
| 10 || SetBacklightSettings
| 86 || [S2] GetOta0DeviceKeyFile
|-
|-
| 11 || SetBluetoothDevicesSettings
| 87 || [S2] GetOta0CertificateFileSize
|-
|-
| 12 || GetBluetoothDevicesSettings
| 88 || [S2] GetOta0CertificateFile
|-
|-
| 13 || GetExternalSteadyClockSourceId
| 89 || [S2] GetOta1DeviceKeyFileSize
|-
|-
| 14 || SetExternalSteadyClockSourceId
| 90 || [S2] GetOta1DeviceKeyFile
|-
|-
| 15 || GetUserSystemClockContext
| 91 || [S2] GetOta1CertificateFileSize
|-
|-
| 16 || SetUserSystemClockContext
| 92 || [S2] GetOta1CertificateFile
|-
|-
| 17 || [[#GetAccountSettings]]
| 93 || [S2] GetOta2DeviceKeyFileSize
|-
|-
| 18 || [[#SetAccountSettings]]
| 94 || [S2] GetOta2DeviceKeyFile
|-
|-
| 19 || GetAudioVolume
| 95 || [S2] GetOta2CertificateFileSize
|-
|-
| 20 || SetAudioVolume
| 96 || [S2] GetOta2CertificateFile
|-
|-
| 21 || [[#GetEulaVersions]]
| 97 || [S2] GetJc0CertificateFileSize
|-
|-
| 22 || [[#SetEulaVersions]]
| 98 || [S2] GetJc0CertificateFile
|-
|-
| 23 || [[#GetColorSetId]]
| 99 || [S2] GetJc0PrivateKeyFileSize
|-
|-
| 24 || [[#SetColorSetId]]
| 100 || [S2] GetJc0PrivateKeyFile
|-
|-
| 25 || GetConsoleInformationUploadFlag
| 101 || [S2] GetJc0PkKekFileSize
|-
|-
| 26 || SetConsoleInformationUploadFlag
| 102 || [S2] GetJc0PkKekFile
|-
|-
| 27 || GetAutomaticApplicationDownloadFlag
| 103 || [S2] GetJc1CertificateFileSize
|-
|-
| 28 || SetAutomaticApplicationDownloadFlag
| 104 || [S2] GetJc1CertificateFile
|-
|-
| 29 || [[#GetNotificationSettings]]
| 105 || [S2] GetJc1PrivateKeyFileSize
|-
|-
| 30 || [[#SetNotificationSettings]]
| 106 || [S2] GetJc1PrivateKeyFile
|-
| 31 || [[#GetAccountNotificationSettings]]
|-
|-
| 32 || [[#SetAccountNotificationSettings]]
| 107 || [S2] GetJc1PkKekFileSize
|-
|-
| 35 || GetVibrationMasterVolume
| 108 || [S2] GetJc1PkKekFile
|-
| 36 || SetVibrationMasterVolume
|-
|-
| 37 || GetSettingsItemValueSize
| 109 || [S2] GetWirelessLanPowerTable
|-
|-
| 38 || [[#GetSettingsItemValue]]
| 110 || [S2] GetConsoleSixAxisSensorFactoryAccelerationLog
|-
|-
| 39 || [[#GetTvSettings]]
| 111 || [S2] GetDrmCertificateFileSize
|-
|-
| 40 || [[#SetTvSettings]]
| 112 || [S2] GetDrmCertificateFile
|-
|-
| 41 || GetEdid
| 113 || [S2] GetCalibrationTimeStampUtc
|-
|-
| 42 || SetEdid
| 114 || [S2] GetEncryptedSecretDeviceIdFileSize
|-
|-
| 43 || GetAudioOutputMode
| 115 || [S2] GetEncryptedSecretDeviceIdFile
|-
|-
| 44 || SetAudioOutputMode
| 116 || [S2] GetEncryptedSecretDeviceIdEncryptionKeyFileSize
|-
|-
| 45 || GetSpeakerAutoMuteFlag ([1.0.0-12.1.0] IsForceMuteOnHeadphoneRemoved)
| 117 || [S2] GetEncryptedSecretDeviceIdEncryptionKeyFile
|-
|-
| 46 || SetSpeakerAutoMuteFlag ([1.0.0-12.1.0] SetForceMuteOnHeadphoneRemoved)
| 118 || [S2]  
|-
|-
| 47 || [[#GetQuestFlag]]
| 119 || [22.0.0+] GetRegionCode
|-
|}
| 48 || SetQuestFlag
 
|-
Used for accessing data [[Calibration|calibrated]] at the factory.
| 49 || [[#GetDataDeletionSettings]]
 
|-
== GetBluetoothBdAddress ==
| 50 || [[#SetDataDeletionSettings]]
No input. Returns a [[#BdAddress|BdAddress]].
|-
 
| 51 || GetInitialSystemAppletProgramId
== GetConfigurationId1 ==
|-
No input. Returns a [[#ConfigurationId1|ConfigurationId1]].
| 52 || GetOverlayDispProgramId
 
|-
== GetAccelerometerOffset ==
| 53 || GetDeviceTimeZoneLocationName
No input. Returns a [[#AccelerometerOffset|AccelerometerOffset]].
|-
 
| 54 || SetDeviceTimeZoneLocationName
== GetAccelerometerScale ==
|-
No input. Returns a [[#AccelerometerScale|AccelerometerScale]].
| 55 || [[#GetWirelessCertificationFileSize]]
 
|-
== GetGyroscopeOffset ==
| 56 || [[#GetWirelessCertificationFile]]
No input. Returns a [[#GyroscopeOffset|GyroscopeOffset]].
|-
 
| 57 || [[#SetRegionCode]]
== GetGyroscopeScale ==
|-
No input. Returns a [[#GyroscopeScale|GyroscopeScale]].
| 58 || GetNetworkSystemClockContext
 
|-
== GetWirelessLanMacAddress ==
| 59 || SetNetworkSystemClockContext
No input. Returns a [[#MacAddress|MacAddress]].
|-
 
| 60 || IsUserSystemClockAutomaticCorrectionEnabled
== GetWirelessLanCountryCodeCount ==
|-
No input. Returns a s32 '''OutCount'''.
| 61 || SetUserSystemClockAutomaticCorrectionEnabled
 
|-
== GetWirelessLanCountryCodes ==
| 62 || [[#GetDebugModeFlag]]
Takes a type-0x16 output buffer containing an array of [[#CountryCode|CountryCode]]. Returns a s32 '''OutCount'''.
|-
 
| 63 || [[#GetPrimaryAlbumStorage]]
== GetSerialNumber ==
|-
No input. Returns a [[#SerialNumber|SerialNumber]].
| 64 || [[#SetPrimaryAlbumStorage]]
 
|-
== SetInitialSystemAppletProgramId ==
| 65 || GetUsb30EnableFlag
Takes an input [[NCM_services#ProgramId|ProgramId]]. No output.
|-
 
| 66 || SetUsb30EnableFlag
== SetOverlayDispProgramId ==
|-
Takes an input [[NCM_services#ProgramId|ProgramId]]. No output.
| 67 || [[#GetBatteryLot]]
 
|-
== GetBatteryLot ==
| 68 || [[#GetSerialNumber]]
No input. Returns a [[#BatteryLot|BatteryLot]].
|-
 
| 69 || GetNfcEnableFlag
== GetEciDeviceCertificate ==
|-
Takes a type-0x16 output buffer containing a [[#EccB233DeviceCertificate|EccB233DeviceCertificate]]. No output.
| 70 || SetNfcEnableFlag
 
|-
Returns the device certificate (ECC signed). This is identical to 3DS DeviceCert/CTCert besides the strings. NIM loads the DeviceId from this.
| 71 || [[#GetSleepSettings]]
 
|-
== GetEticketDeviceCertificate ==
| 72 || [[#SetSleepSettings]]
Takes a type-0x16 output buffer containing a [[#Rsa2048DeviceCertificate|Rsa2048DeviceCertificate]]. No output.
|-
 
| 73 || GetWirelessLanEnableFlag
Returns the ETicket certificate (RSA signed).
|-
 
| 74 || SetWirelessLanEnableFlag
== GetSslKey ==
Takes a type-0x16 output buffer containing a [[#SslKey|SslKey]]. No output.
 
Returns the extended SSL key (0x130 bytes) from [[Calibration#CAL0|CAL0]]. If the extended key is not programmed then it falls back to the normal SSL key (0x110 bytes).
 
Used by SSL-sysmodule, see [[SSL_services|here]].
 
== GetSslCertificate ==
Takes a type-0x16 output buffer containing a [[#SslCertificate|SslCertificate]]. No output.
 
Used by SSL-sysmodule, see [[SSL_services|here]].
 
== GetGameCardKey ==
Takes a type-0x16 output buffer containing a [[#GameCardKey|GameCardKey]]. No output.
 
Returns the extended GameCard key (0x130 bytes) from [[Calibration#CAL0|CAL0]]. If the extended key is not programmed then it falls back to the normal GameCard key (0x110 bytes).
 
== GetGameCardCertificate ==
Takes a type-0x16 output buffer containing a [[#GameCardCertificate|GameCardCertificate]]. No output.
 
== GetEciDeviceKey ==
No input. Returns an [[#EccB233DeviceKey|EccB233DeviceKey]].
 
Returns the extended device ECC-B233 key (0x50 bytes) from [[Calibration#CAL0|CAL0]]. If the extended key is not programmed then it falls back to the normal device ECC-B233 key (0x30 bytes).
 
== GetEticketDeviceKey ==
Takes a type-0x16 output buffer containing a [[#Rsa2048DeviceKey|Rsa2048DeviceKey]]. No output.
 
Returns the extended ETicket RSA-2048 key (0x240 bytes) from [[Calibration#CAL0|CAL0]]. If the extended key is not programmed then it falls back to the normal ETicket RSA-2048 key (0x220 bytes).
 
== GetSpeakerParameter ==
No input. Returns a [[#SpeakerParameter|SpeakerParameter]].
 
== GetLcdVendorId ==
No input. Returns a [[Calibration#LcdVendorId|LcdVendorId]].
 
== GetEciDeviceCertificate2 ==
Same as [[#GetEciDeviceCertificate]], but returns a [[#Rsa2048DeviceCertificate|RSA-2048]] variant of the device certificate.
 
== GetEciDeviceKey2 ==
Same as [[#GetEciDeviceKey]], but returns a [[#Rsa2048DeviceKey|RSA-2048]] variant of the device key.
 
== GetAmiiboKey ==
No input. Returns an [[#AmiiboKey|AmiiboKey]].
 
== GetAmiiboEcqvCertificate ==
No input. Returns an [[#AmiiboEcqvCertificate|AmiiboEcqvCertificate]].
 
== GetAmiiboEcdsaCertificate ==
No input. Returns an [[#AmiiboEcdsaCertificate|AmiiboEcdsaCertificate]].
 
== GetAmiiboEcqvBlsKey ==
No input. Returns an [[#AmiiboEcqvBlsKey|AmiiboEcqvBlsKey]].
 
== GetAmiiboEcqvBlsCertificate ==
No input. Returns an [[#AmiiboEcqvBlsCertificate|AmiiboEcqvBlsCertificate]].
 
== GetAmiiboEcqvBlsRootCertificate ==
No input. Returns an [[#AmiiboEcqvBlsRootCertificate|AmiiboEcqvBlsRootCertificate]].
 
== GetUsbTypeCPowerSourceCircuitVersion ==
No input. Returns an [[Calibration#UsbTypeCPowerSourceCircuit|UsbTypeCPowerSourceCircuitVersion]].
 
== GetAnalogStickModuleTypeL ==
No input. Returns an [[Calibration#AnalogStickModuleType|AnalogStickModuleType]].
 
== GetAnalogStickModelParameterL ==
No input. Returns an [[#AnalogStickModelParameter|AnalogStickModelParameter]].
 
== GetAnalogStickFactoryCalibrationL ==
No input. Returns an [[#AnalogStickFactoryCalibration|AnalogStickFactoryCalibration]].
 
== GetAnalogStickModuleTypeR ==
No input. Returns an [[Calibration#AnalogStickModuleType|AnalogStickModuleType]].
 
== GetAnalogStickModelParameterR ==
No input. Returns an [[#AnalogStickModelParameter|AnalogStickModelParameter]].
 
== GetAnalogStickFactoryCalibrationR ==
No input. Returns an [[#AnalogStickFactoryCalibration|AnalogStickFactoryCalibration]].
 
== GetConsoleSixAxisSensorModuleType ==
No input. Returns a [[Calibration#ConsoleSixAxisSensorModuleType|ConsoleSixAxisSensorModuleType]].
 
== GetConsoleSixAxisSensorHorizontalOffset ==
No input. Returns a [[#ConsoleSixAxisSensorHorizontalOffset|ConsoleSixAxisSensorHorizontalOffset]].
 
== GetBatteryVersion ==
No input. Returns a [[Calibration#BatteryVersion|BatteryVersion]].
 
== GetDeviceId ==
No input. Returns an u64 '''DeviceId''' by reading and converting the hexadecimal string at offset 0xC6 inside [[#EccB233DeviceCertificate]] or [[#Rsa2048DeviceCertificate]].
 
== GetConsoleSixAxisSensorMountType ==
No input. Returns a [[Calibration#ConsoleSixAxisSensorMountType|ConsoleSixAxisSensorMountType]].
 
= set:sys =
This is "nn::settings::ISystemSettingsServer".
 
{| class="wikitable" border="1"
|-
|-
| 75 || [[#GetInitialLaunchSettings]]
! Cmd || Name
|-
|-
| 76 || [[#SetInitialLaunchSettings]]
| 0 || [[#SetLanguageCode]]
|-
|-
| 77 || [[#GetDeviceNickName]]
| 1 || SetNetworkSettings
|-
|-
| 78 || [[#SetDeviceNickName]]
| 2 || GetNetworkSettings
|-
|-
| 79 || [[#GetProductModel]]
| 3 || [S1] [[#GetFirmwareVersion]]
|-
|-
| 80 || GetLdnChannel
| 4 || [3.0.0+] GetFirmwareVersion2
|-
|-
| 81 || SetLdnChannel
| 5 || [S1] [5.0.0+] GetFirmwareVersionDigest
|-
|-
| 82 || AcquireTelemetryDirtyFlagEventHandle
| 7 || GetLockScreenFlag
|-
|-
| 83 || GetTelemetryDirtyFlags
| 8 || SetLockScreenFlag
|-
|-
| 84 || GetPtmBatteryLot
| 9 || GetBacklightSettings
|-
|-
| 85 || SetPtmBatteryLot
| 10 || SetBacklightSettings
|-
|-
| 86 || GetPtmFuelGaugeParameter
| 11 || [S1] SetBluetoothDevicesSettings
|-
|-
| 87 || SetPtmFuelGaugeParameter
| 12 || [S1] GetBluetoothDevicesSettings
|-
|-
| 88 || GetBluetoothEnableFlag
| 13 || GetExternalSteadyClockSourceId
|-
|-
| 89 || SetBluetoothEnableFlag
| 14 || SetExternalSteadyClockSourceId
|-
|-
| 90 || [[#GetMiiAuthorId]]
| 15 || GetUserSystemClockContext
|-
|-
| 91 || SetShutdownRtcValue
| 16 || SetUserSystemClockContext
|-
|-
| 92 || GetShutdownRtcValue
| 17 || [[#GetAccountSettings]]
|-
|-
| 93 || AcquireFatalDirtyFlagEventHandle
| 18 || [[#SetAccountSettings]]
|-
|-
| 94 || GetFatalDirtyFlags
| 19 || GetAudioVolume
|-
|-
| 95 || [2.0.0+] GetAutoUpdateEnableFlag
| 20 || SetAudioVolume
|-
|-
| 96 || [2.0.0+] SetAutoUpdateEnableFlag
| 21 || [[#GetEulaVersions]]
|-
|-
| 97 || [2.0.0+] GetNxControllerSettings
| 22 || [[#SetEulaVersions]]
|-
|-
| 98 || [2.0.0+] SetNxControllerSettings
| 23 || [[#GetColorSetId]]
|-
|-
| 99 || [2.0.0+] GetBatteryPercentageFlag
| 24 || [[#SetColorSetId]]
|-
|-
| 100 || [2.0.0+] SetBatteryPercentageFlag
| 25 || [S1] GetConsoleInformationUploadFlag
|-
|-
| 101 || [2.0.0+] GetExternalRtcResetFlag
| 26 || [S1] SetConsoleInformationUploadFlag
|-
|-
| 102 || [2.0.0+] SetExternalRtcResetFlag
| 27 || [S1] GetAutomaticApplicationDownloadFlag
|-
|-
| 103 || [3.0.0+] GetUsbFullKeyEnableFlag
| 28 || [S1] SetAutomaticApplicationDownloadFlag
|-
|-
| 104 || [3.0.0+] SetUsbFullKeyEnableFlag
| 29 || [[#GetNotificationSettings]]
|-
|-
| 105 || [3.0.0+] SetExternalSteadyClockInternalOffset
| 30 || [[#SetNotificationSettings]]
|-
|-
| 106 || [3.0.0+] GetExternalSteadyClockInternalOffset
| 31 || [[#GetAccountNotificationSettings]]
|-
|-
| 107 || [3.0.0+] GetBacklightSettingsEx
| 32 || [[#SetAccountNotificationSettings]]
|-
|-
| 108 || [3.0.0+] SetBacklightSettingsEx
| 35 || GetVibrationMasterVolume
|-
|-
| 109 || [3.0.0+] GetHeadphoneVolumeWarningCount
| 36 || SetVibrationMasterVolume
|-
|-
| 110 || [3.0.0+] SetHeadphoneVolumeWarningCount
| 37 || GetSettingsItemValueSize
|-
|-
| 111 || [3.0.0+] GetBluetoothAfhEnableFlag
| 38 || [[#GetSettingsItemValue]]
|-
|-
| 112 || [3.0.0+] SetBluetoothAfhEnableFlag
| 39 || [[#GetTvSettings]]
|-
|-
| 113 || [3.0.0+] GetBluetoothBoostEnableFlag
| 40 || [[#SetTvSettings]]
|-
|-
| 114 || [3.0.0+] SetBluetoothBoostEnableFlag
| 41 || GetEdid
|-
|-
| 115 || [3.0.0+] GetInRepairProcessEnableFlag
| 42 || SetEdid
|-
|-
| 116 || [3.0.0+] SetInRepairProcessEnableFlag
| 43 || GetAudioOutputMode
|-
|-
| 117 || [3.0.0+] GetHeadphoneVolumeUpdateFlag
| 44 || SetAudioOutputMode
|-
|-
| 118 || [3.0.0+] SetHeadphoneVolumeUpdateFlag
| 45 || GetSpeakerAutoMuteFlag ([1.0.0-12.1.0] IsForceMuteOnHeadphoneRemoved)
|-
|-
| 119 || [3.0.0-14.1.2] NeedsToUpdateHeadphoneVolume
| 46 || SetSpeakerAutoMuteFlag ([1.0.0-12.1.0] SetForceMuteOnHeadphoneRemoved)
|-
|-
| 120 || [3.0.0+] GetPushNotificationActivityModeOnSleep
| 47 || [[#GetQuestFlag]]
|-
|-
| 121 || [3.0.0+] SetPushNotificationActivityModeOnSleep
| 48 || SetQuestFlag
|-
|-
| 122 || [4.0.0+] [[#GetServiceDiscoveryControlSettings]]
| 49 || [S1] [[#GetDataDeletionSettings]]
|-
|-
| 123 || [4.0.0+] SetServiceDiscoveryControlSettings
| 50 || [S1] [[#SetDataDeletionSettings]]
|-
|-
| 124 || [4.0.0+] [[#GetErrorReportSharePermission]]
| 51 || [S1] GetInitialSystemAppletProgramId
|-
|-
| 125 || [4.0.0+] [[#SetErrorReportSharePermission]]
| 52 || [S1] GetOverlayDispProgramId
|-
|-
| 126 || [4.0.0+] [[#GetAppletLaunchFlags]]
| 53 || [[#GetDeviceTimeZoneLocationName]]
|-
|-
| 127 || [4.0.0+] [[#SetAppletLaunchFlags]]
| 54 || [[#SetDeviceTimeZoneLocationName]]
|-
|-
| 128 || [4.0.0+] GetConsoleSixAxisSensorAccelerationBias
| 55 || [S1] [[#GetWirelessCertificationFileSize]]
|-
|-
| 129 || [4.0.0+] SetConsoleSixAxisSensorAccelerationBias
| 56 || [S1] [[#GetWirelessCertificationFile]]
|-
|-
| 130 || [4.0.0+] GetConsoleSixAxisSensorAngularVelocityBias
| 57 || [[#SetRegionCode]]
|-
|-
| 131 || [4.0.0+] SetConsoleSixAxisSensorAngularVelocityBias
| 58 || GetNetworkSystemClockContext
|-
|-
| 132 || [4.0.0+] GetConsoleSixAxisSensorAccelerationGain
| 59 || SetNetworkSystemClockContext
|-
|-
| 133 || [4.0.0+] SetConsoleSixAxisSensorAccelerationGain
| 60 || IsUserSystemClockAutomaticCorrectionEnabled
|-
|-
| 134 || [4.0.0+] GetConsoleSixAxisSensorAngularVelocityGain
| 61 || SetUserSystemClockAutomaticCorrectionEnabled
|-
|-
| 135 || [4.0.0+] SetConsoleSixAxisSensorAngularVelocityGain
| 62 || [[#GetDebugModeFlag]]
|-
|-
| 136 || [4.0.0+] [[#GetKeyboardLayout]]
| 63 || [[#GetPrimaryAlbumStorage]]
|-
|-
| 137 || [4.0.0+] [[#SetKeyboardLayout]]
| 64 || [[#SetPrimaryAlbumStorage]]
|-
|-
| 138 || [4.0.0+] GetWebInspectorFlag
| 65 || [S1] GetUsb30EnableFlag
|-
|-
| 139 || [4.0.0+] [[#GetAllowedSslHosts]]
| 66 || [S1] SetUsb30EnableFlag
|-
|-
| 140 || [4.0.0+] GetHostFsMountPoint
| 67 || [[#GetBatteryLot]]
|-
|-
| 141 || [5.0.0+] GetRequiresRunRepairTimeReviser
| 68 || [[#GetSerialNumber]]
|-
|-
| 142 || [5.0.0+] SetRequiresRunRepairTimeReviser
| 69 || GetNfcEnableFlag
|-
|-
| 143 || [5.0.0+] SetBlePairingSettings
| 70 || SetNfcEnableFlag
|-
|-
| 144 || [5.0.0+] GetBlePairingSettings
| 71 || [[#GetSleepSettings]]
|-
|-
| 145 || [5.0.0+] GetConsoleSixAxisSensorAngularVelocityTimeBias
| 72 || [[#SetSleepSettings]]
|-
|-
| 146 || [5.0.0+] SetConsoleSixAxisSensorAngularVelocityTimeBias
| 73 || GetWirelessLanEnableFlag
|-
|-
| 147 || [5.0.0+] GetConsoleSixAxisSensorAngularAcceleration
| 74 || SetWirelessLanEnableFlag
|-
|-
| 148 || [5.0.0+] SetConsoleSixAxisSensorAngularAcceleration
| 75 || [S1] [[#GetInitialLaunchSettings]]
|-
|-
| 149 || [5.0.0+] [[#GetRebootlessSystemUpdateVersion]]
| 76 || [S1] [[#SetInitialLaunchSettings]]
|-
|-
| 150 || [5.0.0+] GetDeviceTimeZoneLocationUpdatedTime
| 77 || [[#GetDeviceNickName]]
|-
|-
| 151 || [5.0.0+] SetDeviceTimeZoneLocationUpdatedTime
| 78 || [[#SetDeviceNickName]]
|-
|-
| 152 || [6.0.0+] GetUserSystemClockAutomaticCorrectionUpdatedTime
| 79 || [[#GetProductModel]]
|-
|-
| 153 || [6.0.0+] SetUserSystemClockAutomaticCorrectionUpdatedTime
| 80 || [S1] GetLdnChannel
|-
|-
| 154 || [6.0.0+] GetAccountOnlineStorageSettings
| 81 || [S1] SetLdnChannel
|-
|-
| 155 || [6.0.0+] SetAccountOnlineStorageSettings
| 82 || AcquireTelemetryDirtyFlagEventHandle
|-
|-
| 156 || [6.0.0+] GetPctlReadyFlag
| 83 || GetTelemetryDirtyFlags
|-
|-
| 157 || [6.0.0+] SetPctlReadyFlag
| 84 || GetPtmBatteryLot
|-
|-
| 158 || [8.1.1+] GetAnalogStickUserCalibrationL
| 85 || SetPtmBatteryLot
|-
|-
| 159 || [8.1.1+] SetAnalogStickUserCalibrationL
| 86 || GetPtmFuelGaugeParameter
|-
|-
| 160 || [8.1.1+] GetAnalogStickUserCalibrationR
| 87 || SetPtmFuelGaugeParameter
|-
|-
| 161 || [8.1.1+] SetAnalogStickUserCalibrationR
| 88 || GetBluetoothEnableFlag
|-
|-
| 162 || [6.0.0+] GetPtmBatteryVersion
| 89 || SetBluetoothEnableFlag
|-
|-
| 163 || [6.0.0+] SetPtmBatteryVersion
| 90 || [[#GetMiiAuthorId]]
|-
|-
| 164 || [6.0.0+] GetUsb30HostEnableFlag
| 91 || SetShutdownRtcValue
|-
|-
| 165 || [6.0.0+] SetUsb30HostEnableFlag
| 92 || GetShutdownRtcValue
|-
|-
| 166 || [6.0.0+] GetUsb30DeviceEnableFlag
| 93 || AcquireFatalDirtyFlagEventHandle
|-
|-
| 167 || [6.0.0+] SetUsb30DeviceEnableFlag
| 94 || GetFatalDirtyFlags
|-
|-
| 168 || [7.0.0+] GetThemeId
| 95 || [2.0.0+] GetAutoUpdateEnableFlag
|-
|-
| 169 || [7.0.0+] SetThemeId
| 96 || [2.0.0+] SetAutoUpdateEnableFlag
|-
|-
| 170 || [7.0.0+] [[#GetChineseTraditionalInputMethod]]
| 97 || [S1] [2.0.0+] GetNxControllerSettings
|-
|-
| 171 || [7.0.0+] [[#SetChineseTraditionalInputMethod]]
| 98 || [S1] [2.0.0+] SetNxControllerSettings
|-
|-
| 172 || [7.0.0+] GetPtmCycleCountReliability
| 99 || [2.0.0+] GetBatteryPercentageFlag
|-
|-
| 173 || [7.0.0+] SetPtmCycleCountReliability
| 100 || [2.0.0+] SetBatteryPercentageFlag
|-
|-
| 174 || [8.1.1+] [[#GetHomeMenuScheme]]
| 101 || [S1] [2.0.0+] GetExternalRtcResetFlag
|-
|-
| 175 || [7.0.0+] GetThemeSettings
| 102 || [S1] [2.0.0+] SetExternalRtcResetFlag
|-
|-
| 176 || [7.0.0+] SetThemeSettings
| 103 || [3.0.0+] GetUsbFullKeyEnableFlag
|-
|-
| 177 || [7.0.0+] GetThemeKey
| 104 || [3.0.0+] SetUsbFullKeyEnableFlag
|-
|-
| 178 || [7.0.0+] SetThemeKey
| 105 || [3.0.0+] SetExternalSteadyClockInternalOffset
|-
|-
| 179 || [8.0.0+] GetZoomFlag
| 106 || [3.0.0+] GetExternalSteadyClockInternalOffset
|-
|-
| 180 || [8.0.0+] SetZoomFlag
| 107 || [3.0.0+] GetBacklightSettingsEx
|-
|-
| 181 || [8.0.0+] [[#GetT]]
| 108 || [3.0.0+] SetBacklightSettingsEx
|-
|-
| 182 || [8.0.0+] [[#SetT]]
| 109 || [3.0.0+] GetHeadphoneVolumeWarningCount
|-
|-
| 183 || [9.0.0+] [[#GetPlatformRegion]]
| 110 || [3.0.0+] SetHeadphoneVolumeWarningCount
|-
|-
| 184 || [9.0.0+] [[#SetPlatformRegion]]
| 111 || [S1] [3.0.0+] GetBluetoothAfhEnableFlag
|-
|-
| 185 || [9.0.0+] [[#GetHomeMenuSchemeModel]]
| 112 || [S1] [3.0.0+] SetBluetoothAfhEnableFlag
|-
|-
| 186 || [9.0.0+] [[#GetMemoryUsageRateFlag]]
| 113 || [S1] [3.0.0+] GetBluetoothBoostEnableFlag
|-
|-
| 187 || [9.0.0+] [[#GetTouchScreenMode]]
| 114 || [S1] [3.0.0+] SetBluetoothBoostEnableFlag
|-
|-
| 188 || [9.0.0+] [[#SetTouchScreenMode]]
| 115 || [3.0.0+] GetInRepairProcessEnableFlag
|-
|-
| 189 || [10.0.0+] [[#GetButtonConfigSettingsFull]]
| 116 || [3.0.0+] SetInRepairProcessEnableFlag
|-
|-
| 190 || [10.0.0+] [[#SetButtonConfigSettingsFull]]
| 117 || [S1] [3.0.0+] GetHeadphoneVolumeUpdateFlag
|-
|-
| 191 || [10.0.0+] [[#GetButtonConfigSettingsEmbedded]]
| 118 || [S1] [3.0.0+] SetHeadphoneVolumeUpdateFlag
|-
|-
| 192 || [10.0.0+] [[#SetButtonConfigSettingsEmbedded]]
| 119 || [3.0.0-14.1.2] NeedsToUpdateHeadphoneVolume
|-
|-
| 193 || [10.0.0+] [[#GetButtonConfigSettingsLeft]]
| 120 || [3.0.0+] GetPushNotificationActivityModeOnSleep
|-
|-
| 194 || [10.0.0+] [[#SetButtonConfigSettingsLeft]]
| 121 || [3.0.0+] SetPushNotificationActivityModeOnSleep
|-
|-
| 195 || [10.0.0+] [[#GetButtonConfigSettingsRight]]
| 122 || [4.0.0+] [[#GetServiceDiscoveryControlSettings]]
|-
|-
| 196 || [10.0.0+] [[#SetButtonConfigSettingsRight]]
| 123 || [4.0.0+] SetServiceDiscoveryControlSettings
|-
|-
| 197 || [10.0.0+] [[#GetButtonConfigRegisteredSettingsEmbedded]]
| 124 || [4.0.0+] [[#GetErrorReportSharePermission]]
|-
| 125 || [4.0.0+] [[#SetErrorReportSharePermission]]
|-
| 126 || [4.0.0+] [[#GetAppletLaunchFlags]]
|-
| 127 || [4.0.0+] [[#SetAppletLaunchFlags]]
|-
|-
| 198 || [10.0.0+] [[#SetButtonConfigRegisteredSettingsEmbedded]]
| 128 || [S1] [4.0.0+] GetConsoleSixAxisSensorAccelerationBias
|-
|-
| 199 || [10.0.0+] [[#GetButtonConfigRegisteredSettings]]
| 129 || [S1] [4.0.0+] SetConsoleSixAxisSensorAccelerationBias
|-
|-
| 200 || [10.0.0+] [[#SetButtonConfigRegisteredSettings]]
| 130 || [S1] [4.0.0+] GetConsoleSixAxisSensorAngularVelocityBias
|-
|-
| 201 || [10.1.0+] [[#GetFieldTestingFlag]]
| 131 || [S1] [4.0.0+] SetConsoleSixAxisSensorAngularVelocityBias
|-
|-
| 202 || [10.1.0+] [[#SetFieldTestingFlag]]
| 132 || [S1] [4.0.0+] GetConsoleSixAxisSensorAccelerationGain
|-
|-
| 203 || [11.0.0+] GetPanelCrcMode
| 133 || [S1] [4.0.0+] SetConsoleSixAxisSensorAccelerationGain
|-
|-
| 204 || [11.0.0+] SetPanelCrcMode
| 134 || [S1] [4.0.0+] GetConsoleSixAxisSensorAngularVelocityGain
|-
|-
| 205 || [13.0.0+] GetNxControllerSettingsEx
| 135 || [S1] [4.0.0+] SetConsoleSixAxisSensorAngularVelocityGain
|-
|-
| 206 || [13.0.0+] SetNxControllerSettingsEx
| 136 || [4.0.0+] [[#GetKeyboardLayout]]
|-
|-
| 207 || [14.0.0+] GetHearingProtectionSafeguardFlag
| 137 || [4.0.0+] [[#SetKeyboardLayout]]
|-
|-
| 208 || [14.0.0+] SetHearingProtectionSafeguardFlag
| 138 || [4.0.0+] GetWebInspectorFlag
|-
|-
| 209 || [14.0.0+] GetHearingProtectionSafeguardRemainingTime
| 139 || [4.0.0+] [[#GetAllowedSslHosts]]
|-
|-
| 210 || [14.0.0+] SetHearingProtectionSafeguardRemainingTime
| 140 || [4.0.0+] GetHostFsMountPoint
|}
|-
 
| 141 || [5.0.0+] GetRequiresRunRepairTimeReviser
Official user-processes gets a new service session handle each time a set:sys cmd is used, with the session being closed afterwards.
|-
 
| 142 || [5.0.0+] SetRequiresRunRepairTimeReviser
== SetLanguageCode ==
|-
Takes an input [[#LanguageCode]], no output.
| 143 || [S1] [5.0.0+] SetBlePairingSettings
 
|-
== GetFirmwareVersion ==
| 144 || [S1] [5.0.0+] GetBlePairingSettings
Takes a type-0x1A output buffer. User-processes use hard-coded size 0x100.
|-
 
| 145 || [S1] [5.0.0+] GetConsoleSixAxisSensorAngularVelocityTimeBias
If needed, reads the content of the [[System_Version_Title]] "/file" into state. This is only done once.
|-
 
| 146 || [S1] [5.0.0+] SetConsoleSixAxisSensorAngularVelocityTimeBias
Then the above 0x100-byte data is copied to the output buffer.
|-
 
| 147 || [S1] [5.0.0+] GetConsoleSixAxisSensorAngularAcceleration
== GetAccountSettings ==
|-
No input, returns an output [[#AccountSettings]].
| 148 || [S1] [5.0.0+] SetConsoleSixAxisSensorAngularAcceleration
 
|-
== SetAccountSettings ==
| 149 || [5.0.0+] [[#GetRebootlessSystemUpdateVersion]]
Takes an input [[#AccountSettings]], no output.
|-
 
| 150 || [5.0.0+] GetDeviceTimeZoneLocationUpdatedTime
== GetEulaVersions ==
|-
Takes a type-0x6 output buffer containing an array of [[#EulaVersion]], returns an output s32 total_out.
| 151 || [5.0.0+] SetDeviceTimeZoneLocationUpdatedTime
 
|-
== SetEulaVersions ==
| 152 || [6.0.0+] GetUserSystemClockAutomaticCorrectionUpdatedTime
Takes a type-0x5 input buffer containing an array of [[#EulaVersion]], no output.
|-
 
| 153 || [6.0.0+] SetUserSystemClockAutomaticCorrectionUpdatedTime
== GetColorSetId ==
|-
No input, returns an output s32.
| 154 || [S1] [6.0.0+] GetAccountOnlineStorageSettings
 
|-
This is the current Theme set by System Settings.
| 155 || [S1] [6.0.0+] SetAccountOnlineStorageSettings
 
|-
* 0: "Basic White"
| 156 || [S1] [6.0.0+] GetPctlReadyFlag
* 1: "Basic Black"
|-
 
| 157 || [S1] [6.0.0+] SetPctlReadyFlag
== SetColorSetId ==
|-
Takes an input s32, no output.
| 158 || [S1] [8.1.1+] GetAnalogStickUserCalibrationL
 
|-
== GetNotificationSettings ==
| 159 || [S1] [8.1.1+] SetAnalogStickUserCalibrationL
No input, returns an output [[#NotificationSettings]].
|-
 
| 160 || [S1] [8.1.1+] GetAnalogStickUserCalibrationR
== SetNotificationSettings ==
|-
Takes an input [[#NotificationSettings]], no output.
| 161 || [S1] [8.1.1+] SetAnalogStickUserCalibrationR
 
|-
== GetAccountNotificationSettings ==
| 162 || [6.0.0+] GetPtmBatteryVersion
Takes a type-0x6 output buffer containing an array of [[#AccountNotificationSettings]], returns an output s32 total_out.
|-
 
| 163 || [6.0.0+] SetPtmBatteryVersion
== SetAccountNotificationSettings ==
|-
Takes a type-0x5 input buffer containing an array of [[#AccountNotificationSettings]], no output.
| 164 || [6.0.0+] GetUsb30HostEnableFlag
 
|-
== GetSettingsItemValue ==
| 165 || [6.0.0+] SetUsb30HostEnableFlag
Takes two type-0x19 input buffers and a type-0x6 output buffer. Returns an output u64 for the actual size written to the outbuf.
|-
 
| 166 || [6.0.0+] GetUsb30DeviceEnableFlag
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).
|-
 
| 167 || [6.0.0+] SetUsb30DeviceEnableFlag
If loading from main config fails, it will also attempt to load config from various state if the input strings match hard-coded strings.
|-
 
| 168 || [S1] [7.0.0+] GetThemeId
== GetTvSettings ==
|-
No input, returns an output [[#TvSettings]].
| 169 || [S1] [7.0.0+] SetThemeId
 
|-
== SetTvSettings ==
| 170 || [7.0.0+] [[#GetChineseTraditionalInputMethod]]
Takes an input [[#TvSettings]], no output.
|-
 
| 171 || [7.0.0+] [[#SetChineseTraditionalInputMethod]]
== GetDebugModeFlag ==
|-
Returns an output u8.
| 172 || [7.0.0+] GetPtmCycleCountReliability
 
|-
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.
| 173 || [7.0.0+] SetPtmCycleCountReliability
 
|-
Returned retval is always 0.
| 174 || [8.1.1+] [[#GetHomeMenuScheme]]
 
|-
== GetPrimaryAlbumStorage ==
| 175 || [S1] [7.0.0+] GetThemeSettings
No input, returns an output s32 [[#PrimaryAlbumStorage]].
|-
 
| 176 || [S1] [7.0.0+] SetThemeSettings
== SetPrimaryAlbumStorage ==
|-
Takes an input s32 [[#PrimaryAlbumStorage]], no output.
| 177 || [S1] [7.0.0+] GetThemeKey
 
|-
== GetBatteryLot ==
| 178 || [S1] [7.0.0+] SetThemeKey
No input, returns an output [[#BatteryLot]].
|-
 
| 179 || [8.0.0+] GetZoomFlag
== GetSerialNumber ==
|-
Returns the 0x18-byte SerialNumber string.
| 180 || [8.0.0+] SetZoomFlag
 
|-
== GetSleepSettings ==
| 181 || [S1] [8.0.0+] [[#GetT]]
No input, returns an output [[#SleepSettings]].
|-
 
| 182 || [S1] [8.0.0+] [[#SetT]]
== SetSleepSettings ==
|-
Takes an input [[#SleepSettings]], no output.
| 183 || [9.0.0+] [[#GetPlatformRegion]]
 
|-
== GetInitialLaunchSettings ==
| 184 || [9.0.0+] [[#SetPlatformRegion]]
No input, returns an output [[#InitialLaunchSettings]].
|-
 
| 185 || [9.0.0+] [[#GetHomeMenuSchemeModel]]
== SetInitialLaunchSettings ==
|-
Takes an input [[#InitialLaunchSettings]], no output.
| 186 || [9.0.0+] [[#GetMemoryUsageRateFlag]]
 
|-
== GetDeviceNickName ==
| 187 || [S1] [9.0.0+] [[#GetTouchScreenMode]]
Takes a type-0x16 output buffer containing a [[#DeviceNickName]].
|-
 
| 188 || [S1] [9.0.0+] [[#SetTouchScreenMode]]
With [10.1.0+] sdknso now uses the set cmd instead of the setsys cmd.
|-
 
| 189 || [S1] [10.0.0+] [[#GetButtonConfigSettingsFull]]
== SetDeviceNickName ==
|-
Takes a type-0x15 input buffer containing a [[#DeviceNickName]].
| 190 || [S1] [10.0.0+] [[#SetButtonConfigSettingsFull]]
 
|-
== GetProductModel ==
| 191 || [S1] [10.0.0+] [[#GetButtonConfigSettingsEmbedded]]
No input, returns an output s32.
|-
 
| 192 || [S1] [10.0.0+] [[#SetButtonConfigSettingsEmbedded]]
== GetMiiAuthorId ==
|-
No input, returns an output "nn::util::Uuid".
| 193 || [S1] [10.0.0+] [[#GetButtonConfigSettingsLeft]]
 
|-
== GetServiceDiscoveryControlSettings ==
| 194 || [S1] [10.0.0+] [[#SetButtonConfigSettingsLeft]]
Returns an u32 [[#ServiceDiscoveryControlSettings|ServiceDiscoveryControlSettings]].
|-
 
| 195 || [S1] [10.0.0+] [[#GetButtonConfigSettingsRight]]
== GetErrorReportSharePermission ==
|-
No input, returns an output s32 [[#ErrorReportSharePermission]].
| 196 || [S1] [10.0.0+] [[#SetButtonConfigSettingsRight]]
 
|-
== SetErrorReportSharePermission ==
| 197 || [S1] [10.0.0+] [[#GetButtonConfigRegisteredSettingsEmbedded]]
Takes an input s32 [[#ErrorReportSharePermission]], no output.
|-
 
| 198 || [S1] [10.0.0+] [[#SetButtonConfigRegisteredSettingsEmbedded]]
== GetAppletLaunchFlags ==
|-
No input, returns an u32 bitmask [[#AppletLaunchFlag]].
| 199 || [S1] [10.0.0+] [[#GetButtonConfigRegisteredSettings]]
 
|-
== SetAppletLaunchFlags ==
| 200 || [S1] [10.0.0+] [[#SetButtonConfigRegisteredSettings]]
Takes an input u32 bitmask [[#AppletLaunchFlag]], no output.
|-
 
| 201 || [10.1.0+] [[#GetFieldTestingFlag]]
== GetKeyboardLayout ==
|-
No input, returns an output s32 [[#KeyboardLayout]].
| 202 || [10.1.0+] [[#SetFieldTestingFlag]]
 
|-
== SetKeyboardLayout ==
| 203 || [11.0.0+] GetPanelCrcMode
Takes an input s32 [[#KeyboardLayout]], no output.
|-
 
| 204 || [11.0.0+] SetPanelCrcMode
== GetAllowedSslHosts ==
|-
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.
| 205 || [S1] [13.0.0+] GetNxControllerSettingsEx
 
|-
== GetRebootlessSystemUpdateVersion ==
| 206 || [S1] [13.0.0+] SetNxControllerSettingsEx
No input, returns an output [[#RebootlessSystemUpdateVersion]].
|-
 
| 207 || [S1] [14.0.0+] GetHearingProtectionSafeguardFlag
== GetQuestFlag ==
|-
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.
| 208 || [S1] [14.0.0+] SetHearingProtectionSafeguardFlag
 
|-
== GetDataDeletionSettings ==
| 209 || [S1] [14.0.0+] GetHearingProtectionSafeguardRemainingTime
No input, returns an output [[#DataDeletionSettings]].
|-
 
| 210 || [S1] [14.0.0+] SetHearingProtectionSafeguardRemainingTime
== SetDataDeletionSettings ==
|-
Takes an input [[#DataDeletionSettings]], no output.
| 211 || [S2] GetWirelessCertificationHtmlFileSize
 
|-
== GetWirelessCertificationFileSize ==
| 212 || [S2] GetWirelessCertificationHtmlFile
No input, returns an output u64 size.
|-
 
| 213 || [S2] GetWirelessCertificationJpegFileSize
== GetWirelessCertificationFile ==
|-
Takes a type-0x6 output buffer, returns an output u64 size.
| 214 || [S2] GetWirelessCertificationJpegFile
 
|-
This gets the [[Flash_Filesystem#PRODINFOF|WirelessCertificationFile]].
| 215 || [S2] GetHighContrastFlag
 
|-
== SetRegionCode ==
| 216 || [S2] SetHighContrastFlag
Takes an input s32 [[#RegionCode_2|RegionCode]], no output.
|-
 
| 217 || [S2] GetTextToSpeechFlag
== GetChineseTraditionalInputMethod ==
|-
No input, returns an output s32 [[#ChineseTraditionalInputMethod]].
| 218 || [S2] SetTextToSpeechFlag
 
|-
== SetChineseTraditionalInputMethod ==
| 219 || [S2] [[#GetTextMagnificationRatio]]
Takes an input s32 [[#ChineseTraditionalInputMethod]], no output.
|-
 
| 220 || [S2] SetTextMagnificationRatio
== GetHomeMenuScheme ==
|-
No input, returns an output 0x14-byte struct "nn::settings::system::HomeMenuScheme".
| 221 || [17.0.0+] GetForceMonauralOutputFlag
 
|-
This struct contains 5 RGBA8 u32s for colors: '''Main''', '''Back''', '''Sub''', '''Bezel''' and '''Extra'''.
| 222 || [17.0.0+] SetForceMonauralOutputFlag
 
|-
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.
| 223 || [S2] GetUsbAudioVolumeSettings
 
|-
== GetT ==
| 224 || [S2] SetUsbAudioVolumeSettings
No input, returns an output u8 bool '''IsT'''.
|-
 
| 225 || [S2] GetTitleIconKeepFlag
[9.0.0+] This is a wrapper for [[#GetPlatformRegion]]: <code>IsT = (PlatformRegion == 2)</code>.
|-
 
| 226 || [S2] SetTitleIconKeepFlag
== SetT ==
|-
Takes an input u8 bool '''IsT''', no output.
| 227 || [S2] GetBoldTextFlag
 
|-
[9.0.0+] This is a wrapper for [[#SetPlatformRegion]]: <code>PlatformRegion = 1 + (IsT & 1)</code>.
| 228 || [S2] SetBoldTextFlag
 
|-
== GetPlatformRegion ==
| 229 || [S2] GetSpeechToTextFlag
No input, returns an output s32.
|-
 
| 230 || [S2] SetSpeechToTextFlag
== SetPlatformRegion ==
|-
Takes an input s32, no output.
| 235 || [S2] GetColorFilterType
 
|-
== GetHomeMenuSchemeModel ==
| 236 || [S2] SetColorFilterType
No input, returns an output u32.
|-
 
| 237 || [S2] GetPrioritizedOutputAudioDeviceSettings
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]].
|-
 
| 238 || [S2] SetPrioritizedOutputAudioDeviceSettings
== GetMemoryUsageRateFlag ==
|-
No input, returns an output u8 bool.
| 239 || [S2] GetPrioritizedInputAudioDeviceSettings
 
|-
== GetTouchScreenMode ==
| 240 || [S2] SetPrioritizedInputAudioDeviceSettings
No input, returns an output s32.
|-
| 241 || [S2] GetTextToSpeechVoiceTypeForUi
|-
| 242 || [S2] SetTextToSpeechVoiceTypeForUi
|-
| 243 || [S2] GetLcdFlags
|-
| 244 || [S2] SetLcdFlags
|-
| 245 || [S2] GetTvHdrSettings
|-
| 246 || [S2] SetTvHdrSettings
|-
| 247 || [S2] IsColorInversionEnabled
|-
| 248 || [S2] SetColorInversionEnabled
|-
| 249 || [S2] GetKeyRemapEnableFlagOnQuickSettings
|-
| 250 || [S2] SetKeyRemapEnableFlagOnQuickSettings
|-
| 251 || [18.0.0+] GetAccountIdentificationSettings
|-
| 252 || [18.0.0+] SetAccountIdentificationSettings
|-
| 253 || [S2] GetDeviceLockPinCodeLength
|-
| 254 || [S2] GetDeviceLockPinCode
|-
| 255 || [S2] SetDeviceLockPinCode
|-
| 256 || [S2] GetDeviceLockEnableFlag
|-
| 257 || [S2] GetDeviceLockStartPenaltyTime
|-
| 258 || [S2] SetDeviceLockStartPenaltyTime
|-
| 259 || [S2] GetDeviceLockErrorCount
|-
| 260 || [S2] SetDeviceLockErrorCount
|-
| 261 || [S2] GetBatteryCareModeEnableFlag
|-
| 262 || [S2] SetBatteryCareModeEnableFlag
|-
| 263 || [20.0.0+] AcquireVphymDirtyFlagEventHandle
|-
| 264 || [20.0.0+] GetVphymDirtyFlags
|-
| 265 || [S2] GetInitialLaunchSettings
|-
| 266 || [S2] SetInitialLaunchSettings
|-
| 267 || [S2] GetManufacturingTimeStamp
|-
| 268 || [S2] SetManufacturingTimeStamp
|-
| 269 || [S2] GetInputNoiseReductionForCommunicationFlag
|-
| 270 || [S2] SetInputNoiseReductionForCommunicationFlag
|-
| 271 || [S2] GetChatTranscriptionSettings
|-
| 272 || [S2] SetChatTranscriptionSettings
|-
| 273 || [S2] GetBuiltInMicrophoneGain
|-
| 274 || [S2] SetBuiltInMicrophoneGain
|-
| 275 || [S2] GetBuiltInMicrophoneJackGain
|-
| 276 || [S2] SetBuiltInMicrophoneJackGain
|-
| 277 || [S2] GetUsbAudioInputDeviceGainSettings
|-
| 278 || [S2] SetUsbAudioInputDeviceGainSettings
|-
| 279 || [S2] SetBluetoothStackFlag
|-
| 280 || [S2] SetHidDebugOcdUsbFlag
|-
| 281 || [S2] SetHidDebugRailFlag
|-
| 282 || [20.0.0+] [[#ConvertToProductModel|ConvertToProductModel]]
|-
| 283 || [20.0.0+] [[#ConvertToProductModelName|ConvertToProductModelName]]
|-
| 284 || [S2] GetSaveDataPurgedForRepairFlag
|-
| 285 || [S2] SetSaveDataPurgedForRepairFlag
|-
| 286 || [S2] [20.0.0+] GetAppletParameterSet
|-
| 287 || [S2] [20.0.0+] SetAppletParameterSet
|-
| 288 || [S2] [20.0.0+] BindChatTranscriptionSettingsChangedEvent
|-
| 289 || [20.0.0+] GetDefaultAccountIdentificationFlagSet
|-
| 290 || [S2] [20.0.0+] GetMouseEnableFlag
|-
| 291 || [S2] [20.0.0+] SetMouseEnableFlag
|-
| 292 || [S2] [20.0.0+] GetTextToSpeechVoiceVolume
|-
| 293 || [S2] [20.0.0+] SetTextToSpeechVoiceVolume
|-
| 294 || [S2] [20.0.0+] GetTextToSpeechVoiceSpeed
|-
| 295 || [S2] [20.0.0+] SetTextToSpeechVoiceSpeed
|-
| 296 || [S2] [20.0.0+] GetSleepSettingsEx
|-
| 297 || [S2] [20.0.0+] SetSleepSettingsEx
|-
| 298 || [S2] [20.0.0+] GetMousePointerSpeedScale
|-
| 299 || [S2] [20.0.0+] SetMousePointerSpeedScale
|-
| 300 || [20.0.0+] AcquirePushNotificationDirtyFlagEventHandle
|-
| 301 || [20.0.0+] GetPushNotificationDirtyFlags
|-
| 302 || [S2] [20.0.0+] GetTvHdrSettingsEx
|-
| 303 || [S2] [20.0.0+] SetTvHdrSettingsEx
|-
| 304 || [S2] [20.0.0+] GetOunceProControllerMicrophoneJackGain
|-
| 305 || [S2] [20.0.0+] SetOunceProControllerMicrophoneJackGain
|-
| 306 || [20.0.0+] GetPinCodeReregistrationGuideAccounts
|-
| 307 || [20.0.0+] SetPinCodeReregistrationGuideAccounts
|-
| 308 || [S2] [20.0.0+] GetChatTranscriptionSettings
|-
| 309 || [S2] [20.0.0+] SetChatTranscriptionSettings
|-
| 310 || [S2] [20.0.0+] GetDeviceLockPinCodeLsbParity
|-
| 311 || [S2] [20.0.0+] VerifyDeviceLockPinCode
|-
| 312 || [S2] [20.0.0+] GetDeviceLockVeificationForbiddenFlag
|-
| 315 || [21.0.0+] GetHttpAuthConfigs
|-
| 319 || [21.0.0+] GetAccountUserSettings
|-
| 320 || [21.0.0+] SetAccountUserSettings
|-
| 321 || [21.0.0+] GetDefaultAccountUserSettings
|-
| 324 || [22.0.0+] GetPtmQhClearCount
|-
| 325 || [22.0.0+] SetPtmQhClearCount
|-
| 326 || [22.0.0+] GetAirPlaneModeRestoreFlagSet
|-
| 327 || [22.0.0+] SetAirPlaneModeRestoreFlagSet
|-
| 328 || [22.0.0+] DeleteSettingsPerAccount
|}


Official sw loads the output as an u8 and copies it to an output [[#TouchScreenMode]].
Official user-processes gets a new service session handle each time a set:sys cmd is used, with the session being closed afterwards.


== SetTouchScreenMode ==
== SetLanguageCode ==
Takes an input s32, no output.
Takes an input [[#LanguageCode]], no output.


Official sw sets the input to an u8 loaded from an input [[#TouchScreenMode]].
== GetFirmwareVersion ==
Takes a type-0x1A output buffer. User-processes use hard-coded size 0x100.


== GetButtonConfigSettingsFull ==
This was removed with S2.
Takes a type-0x6 output buffer containing an array of [[#ButtonConfigSettings]], returns an output s32.


== SetButtonConfigSettingsFull ==
If needed, reads the content of the [[System_Version_Title]] "/file" into state. This is only done once.
Takes a type-0x5 input buffer containing an array of [[#ButtonConfigSettings]], no output.


== GetButtonConfigSettingsEmbedded ==
Then the above 0x100-byte data is copied to the output buffer.
Takes a type-0x6 output buffer containing an array of [[#ButtonConfigSettings]], returns an output s32.


== SetButtonConfigSettingsEmbedded ==
== GetAccountSettings ==
Takes a type-0x5 input buffer containing an array of [[#ButtonConfigSettings]], no output.
No input, returns an output [[#AccountSettings]].


== GetButtonConfigSettingsLeft ==
== SetAccountSettings ==
Takes a type-0x6 output buffer containing an array of [[#ButtonConfigSettings]], returns an output s32.
Takes an input [[#AccountSettings]], no output.


== SetButtonConfigSettingsLeft ==
== GetEulaVersions ==
Takes a type-0x5 input buffer containing an array of [[#ButtonConfigSettings]], no output.
Takes a type-0x6 output buffer containing an array of [[#EulaVersion]], returns an output s32 total_out.


== GetButtonConfigSettingsRight ==
== SetEulaVersions ==
Takes a type-0x6 output buffer containing an array of [[#ButtonConfigSettings]], returns an output s32.
Takes a type-0x5 input buffer containing an array of [[#EulaVersion]], no output.


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


== GetButtonConfigRegisteredSettingsEmbedded ==
This is the current Theme set by System Settings.
Takes a type-0x16 output buffer containing a [[#ButtonConfigRegisteredSettings]], no output.


== SetButtonConfigRegisteredSettingsEmbedded ==
* 0: "Basic White"
Takes a type-0x15 input buffer containing a [[#ButtonConfigRegisteredSettings]], no output.
* 1: "Basic Black"


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


== SetButtonConfigRegisteredSettings ==
== GetNotificationSettings ==
Takes a type-0x5 input buffer containing an array of [[#ButtonConfigRegisteredSettings]], no output.
No input, returns an output [[#NotificationSettings]].


== GetFieldTestingFlag ==
== SetNotificationSettings ==
No input, returns an output bool.
Takes an input [[#NotificationSettings]], no output.


== SetFieldTestingFlag ==
== GetAccountNotificationSettings ==
Takes an input bool, no output.
Takes a type-0x6 output buffer containing an array of [[#AccountNotificationSettings]], returns an output s32 total_out.


= Language =
== SetAccountNotificationSettings ==
This is "nn::settings::Language".
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.


{| class="wikitable" border="1"
== GetDebugModeFlag ==
|-
Returns an output u8.
! Value
! Description
|-
| 0 || Japanese
|-
| 1 || AmericanEnglish
|-
| 2 || French
|-
| 3 || German
|-
| 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
|}


= LanguageCode =
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.
This is "nn::settings::LanguageCode". This is an u64, which is a NUL-terminated string.


{| class="wikitable" border="1"
Returned retval is always 0.
|-
 
! Value || [[#Language]]
== GetPrimaryAlbumStorage ==
|-
No input, returns an output s32 [[#PrimaryAlbumStorage]].
| "ja" || Japanese
 
|-
== SetPrimaryAlbumStorage ==
| "en-US" || AmericanEnglish
Takes an input s32 [[#PrimaryAlbumStorage]], no output.
|-
 
| "fr" || French
== GetBatteryLot ==
|-
No input, returns an output [[#BatteryLot]].
| "de" || German
 
|-
== GetSerialNumber ==
| "it" || Italian
Returns the 0x18-byte SerialNumber string.
|-
 
| "es" || Spanish
== GetSleepSettings ==
|-
No input, returns an output [[#SleepSettings]].
| "zh-CN" || Chinese
|-
| "ko" || Korean
|-
| "nl" || Dutch
|-
| "pt" || Portuguese
|-
| "ru" || Russian
|-
| "zh-TW" || Taiwanese
|-
| "en-GB" || BritishEnglish
|-
| "fr-CA" || CanadianFrench
|-
| "es-419" || LatinAmericanSpanish
|-
| "zh-Hans" || [4.0.0+] SimplifiedChinese
|-
| "zh-Hant" || [4.0.0+] TraditionalChinese
|-
| "pt-BR" || [10.1.0+] BrazilianPortuguese
|}


= AccelerometerOffset =
== SetSleepSettings ==
This is "nn::settings::factory::AccelerometerOffset".
Takes an input [[#SleepSettings]], no output.


{| class="wikitable" border="1"
== GetInitialLaunchSettings ==
|-
No input, returns an output [[#InitialLaunchSettings]].
! Offset || Size || Description
|-
| 0x0 || 0x2 || X
|-
| 0x2 || 0x2 || Y
|-
| 0x4 || 0x2 || Z
|}


= AccelerometerScale =
== SetInitialLaunchSettings ==
This is "nn::settings::factory::AccelerometerScale".
Takes an input [[#InitialLaunchSettings]], no output.


{| class="wikitable" border="1"
== GetDeviceNickName ==
|-
Takes a type-0x16 output buffer containing a [[#DeviceNickName]].
! Offset || Size || Description
|-
| 0x0 || 0x2 || X
|-
| 0x2 || 0x2 || Y
|-
| 0x4 || 0x2 || Z
|}


= AmiiboEcdsaCertificate =
With [10.1.0+] sdknso now uses the set cmd instead of the setsys cmd.
This is "nn::settings::factory::AmiiboEcdsaCertificate". This is a 0x70-byte struct.


= AmiiboEcqvBlsCertificate =
== SetDeviceNickName ==
This is "nn::settings::factory::AmiiboEcqvBlsCertificate". This is a 0x20-byte struct.
Takes a type-0x15 input buffer containing a [[#DeviceNickName]].


= AmiiboEcqvBlsKey =
== GetProductModel ==
This is "nn::settings::factory::AmiiboEcqvBlsKey". This is a 0x40-byte struct.
No input, returns an output s32 [[#ProductModel|ProductModel]].


If [[Calibration#CAL0|Calibration Version]] >= 9, this is now:
== GetMiiAuthorId ==
{| class="wikitable" border="1"
No input, returns an output "nn::util::Uuid".
|-
! Offset || Size || Description
|-
| 0x0 || 0x40 || Key
|-
| 0x40 || 0x4 || KeyGeneration
|}


= AmiiboEcqvBlsRootCertificate =
== GetServiceDiscoveryControlSettings ==
This is "nn::settings::factory::AmiiboEcqvBlsRootCertificate". This is a 0x90-byte struct.
Returns an u32 [[#ServiceDiscoveryControlSettings|ServiceDiscoveryControlSettings]].


= AmiiboEcqvCertificate =
== GetErrorReportSharePermission ==
This is "nn::settings::factory::AmiiboEcqvCertificate". This is a 0x14-byte struct.
No input, returns an output s32 [[#ErrorReportSharePermission]].


= AmiiboKey =
== SetErrorReportSharePermission ==
This is "nn::settings::factory::AmiiboKey". This is a 0x50-byte struct.
Takes an input s32 [[#ErrorReportSharePermission]], no output.


If [[Calibration#CAL0|Calibration Version]] >= 9, this is now:
== GetAppletLaunchFlags ==
{| class="wikitable" border="1"
No input, returns an u32 bitmask [[#AppletLaunchFlag]].
|-
! Offset || Size || Description
|-
| 0x0 || 0x50 || Key
|-
| 0x50 || 0x4 || KeyGeneration
|}


= AnalogStickFactoryCalibration =
== SetAppletLaunchFlags ==
This is "nn::settings::factory::AnalogStickFactoryCalibration". This is a 0x9-byte struct.
Takes an input u32 bitmask [[#AppletLaunchFlag]], no output.


= AnalogStickModelParameter =
== GetKeyboardLayout ==
This is "nn::settings::factory::AnalogStickModelParameter". This is a 0x12-byte struct.
No input, returns an output s32 [[#KeyboardLayout]].


= BatteryLot =
== SetKeyboardLayout ==
This is "nn::settings::factory::BatteryLot" or "nn::settings::BatteryLot". This is a 0x18-byte struct.
Takes an input s32 [[#KeyboardLayout]], no output.


= BdAddress =
== GetAllowedSslHosts ==
This is "nn::settings::factory::BdAddress". This is a 0x6-byte struct.
Takes a type-0x6 output buffer. Returns an output s32 entry count.


= ConfigurationId1 =
== GetRebootlessSystemUpdateVersion ==
This is "nn::settings::factory::ConfigurationId1". This is a 0x1E-byte struct.
No input, returns an output [[#RebootlessSystemUpdateVersion]].


Usually, this is a string with the following format:
== GetQuestFlag ==
  {EventType}_{ProductModelType}_{MajorVersion}_{MinorVersion}_{MicroVersion}
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 ==
No input, returns an output [[#DataDeletionSettings]].
 
== SetDataDeletionSettings ==
Takes an input [[#DataDeletionSettings]], no output.
 
== GetDeviceTimeZoneLocationName ==
No input, returns an output [[Glue_services#LocationName|LocationName]].
 
== SetDeviceTimeZoneLocationName ==
Takes an input [[Glue_services#LocationName|LocationName]], no output.
 
== GetWirelessCertificationFileSize ==
No input, returns an output u64 size.
 
== GetWirelessCertificationFile ==
Takes a type-0x6 output buffer, returns an output u64 size.


== EventType ==
This gets the [[Flash_Filesystem#PRODINFOF|WirelessCertificationFile]].
{| class="wikitable" border="1"
 
|-
== SetRegionCode ==
! Value
Takes an input s32 [[#RegionCode_2|RegionCode]], no output.
! Description
|-
| "FP" || Functional prototype
|-
| "EP" || Engineering prototype
|-
| "DP" || Design prototype
|-
| "DPRD" || Design prototype for R&D
|-
| "HOAG" || Hoag prototype
|-
| "COPPER" || Copper prototype
|-
| "EDEV" || Extcon development kit for Icosa and Iowa
|-
| "SDEV" || SPI development kit for Icosa and Iowa
|-
| "MEDEV" || Mariko EDEV (deprecated)
|-
| "MSDEV" || Mariko SDEV (deprecated)
|-
| "HDEV" || Development kit for Hoag
|-
| "ADEV" || Development kit for Aula
|-
| "MP" || Mass production (retail Icosa)
|-
| "MNX" || Mariko NX (retail Iowa)
|-
| "ANX" || Aula NX (retail Aula)
|}


== ProductModelType ==
== GetChineseTraditionalInputMethod ==
{| class="wikitable" border="1"
No input, returns an output s32 [[#ChineseTraditionalInputMethod]].
|-
! Value
! Description
|-
| "00" || Icosa
|-
| "01" || Iowa (previously Copper)
|-
| "02" || Hoag
|-
| "03" || Calcio
|-
| "04" || Aula
|}


= ConsoleSixAxisSensorHorizontalOffset =
== SetChineseTraditionalInputMethod ==
This is "nn::settings::factory::ConsoleSixAxisSensorHorizontalOffset".
Takes an input s32 [[#ChineseTraditionalInputMethod]], no output.


{| class="wikitable" border="1"
== GetHomeMenuScheme ==
|-
No input. Returns an output [[#HomeMenuScheme]].
! Offset || Size || Description
|-
| 0x0 || 0x2 || X
|-
| 0x2 || 0x2 || Y
|-
| 0x4 || 0x2 || Z
|}


= CountryCode =
The colors are loaded from [[Calibration]], with the set of fields to use selected by [[Calibration#ColorVariation|ColorVariation]].
This is "nn::settings::factory::CountryCode". This is a 0x3-byte struct.


= EccB233DeviceCertificate =
== GetT ==
This is "nn::settings::factory::EccB233DeviceCertificate". This is a 0x180-byte struct.
No input, returns an output u8 bool '''IsT'''.
 
[9.0.0+] This is a wrapper for [[#GetPlatformRegion]]: <code>IsT = (PlatformRegion == 2)</code>.


= EccB233DeviceKey =
== SetT ==
This is "nn::settings::factory::EccB233DeviceKey". This is a 0x30-byte struct or a 0x54-byte struct in the extended version.
Takes an input u8 bool '''IsT''', no output.


If [[Calibration#CAL0|Calibration Version]] >= 9, this is now:
[9.0.0+] This is a wrapper for [[#SetPlatformRegion]]: <code>PlatformRegion = 1 + (IsT & 1)</code>.
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
| 0x0 || 0x54 || Key
|-
| 0x54 || 0x4 || KeyGeneration
|}


= GameCardCertificate =
== GetPlatformRegion ==
This is "nn::settings::factory::GameCardCertificate". This is a 0x400-byte struct.
No input, returns an output s32.


= GameCardKey =
== SetPlatformRegion ==
This is "nn::settings::factory::GameCardKey". This is a 0x110-byte struct or a 0x130-byte struct in the extended version.
Takes an input s32, no output.


If [[Calibration#CAL0|Calibration Version]] >= 9, this is now:
== GetHomeMenuSchemeModel ==
{| class="wikitable" border="1"
No input. Returns an output u32.
|-
 
! Offset || Size || Description
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]].
|-
| 0x0 || 0x130 || Key
|-
| 0x130 || 0x4 || KeyGeneration
|}


= GyroscopeOffset =
== GetMemoryUsageRateFlag ==
This is "nn::settings::factory::GyroscopeOffset".
No input, returns an output u8 bool.


{| class="wikitable" border="1"
== GetTouchScreenMode ==
|-
No input, returns an output s32.
! Offset || Size || Description
|-
| 0x0 || 0x2 || X
|-
| 0x2 || 0x2 || Y
|-
| 0x4 || 0x2 || Z
|}


= GyroscopeScale =
Official sw loads the output as an u8 and copies it to an output [[#TouchScreenMode]].
This is "nn::settings::factory::GyroscopeScale".


{| class="wikitable" border="1"
== SetTouchScreenMode ==
|-
Takes an input s32, no output.
! Offset || Size || Description
 
|-
Official sw sets the input to an u8 loaded from an input [[#TouchScreenMode]].
| 0x0 || 0x2 || X
|-
| 0x2 || 0x2 || Y
|-
| 0x4 || 0x2 || Z
|}


= MacAddress =
== GetButtonConfigSettingsFull ==
This is "nn::settings::factory::MacAddress". This is a 0x6-byte struct.
Takes a type-0x6 output buffer containing an array of [[#ButtonConfigSettings]], returns an output s32.


= Rsa2048DeviceCertificate =
== SetButtonConfigSettingsFull ==
This is "nn::settings::factory::Rsa2048DeviceCertificate". This is a 0x240-byte struct.
Takes a type-0x5 input buffer containing an array of [[#ButtonConfigSettings]], no output.


= Rsa2048DeviceKey =
== GetButtonConfigSettingsEmbedded ==
This is "nn::settings::factory::Rsa2048DeviceKey". This is a 0x220-byte struct or a 0x240-byte struct in the extended version.
Takes a type-0x6 output buffer containing an array of [[#ButtonConfigSettings]], returns an output s32.


If [[Calibration#CAL0|Calibration Version]] >= 9, this is now:
== SetButtonConfigSettingsEmbedded ==
{| class="wikitable" border="1"
Takes a type-0x5 input buffer containing an array of [[#ButtonConfigSettings]], no output.
|-
 
! Offset || Size || Description
== GetButtonConfigSettingsLeft ==
|-
Takes a type-0x6 output buffer containing an array of [[#ButtonConfigSettings]], returns an output s32.
| 0x0 || 0x240 || Key
 
|-
== SetButtonConfigSettingsLeft ==
| 0x240 || 0x4 || KeyGeneration
Takes a type-0x5 input buffer containing an array of [[#ButtonConfigSettings]], no output.
|}
 
== GetButtonConfigSettingsRight ==
Takes a type-0x6 output buffer containing an array of [[#ButtonConfigSettings]], returns an output s32.


= SerialNumber =
== SetButtonConfigSettingsRight ==
This is "nn::settings::factory::SerialNumber". This is a 0x18-byte struct.
Takes a type-0x5 input buffer containing an array of [[#ButtonConfigSettings]], no output.


= SpeakerParameter =
== GetButtonConfigRegisteredSettingsEmbedded ==
This is "nn::settings::factory::SpeakerParameter".
Takes a type-0x16 output buffer containing a [[#ButtonConfigRegisteredSettings]], no output.


{| class="wikitable" border="1"
== SetButtonConfigRegisteredSettingsEmbedded ==
|-
Takes a type-0x15 input buffer containing a [[#ButtonConfigRegisteredSettings]], no output.
! Offset || Size || Description
 
|-
== GetButtonConfigRegisteredSettings ==
| 0x0 || 0x2 || Version
Takes a type-0x6 output buffer containing an array of [[#ButtonConfigRegisteredSettings]], returns an output s32.
|-
 
| 0x2 || 0x22 || Reserved
== SetButtonConfigRegisteredSettings ==
|-
Takes a type-0x5 input buffer containing an array of [[#ButtonConfigRegisteredSettings]], no output.
| 0x24 || 0x2 || SpeakerHpf2A1
 
|-
== GetFieldTestingFlag ==
| 0x26 || 0x2 || SpeakerHpf2A2
No input, returns an output bool.
|-
 
| 0x28 || 0x2 || SpeakerHpf2H0
== SetFieldTestingFlag ==
|-
Takes an input bool, no output.
| 0x2A || 0x2 || SpeakerEqInputVolume
 
== GetTextMagnificationRatio ==
This is exclusive to S2.
 
No input, returns an output float.
 
== ConvertToProductModel ==
Takes an input [[#ProductModelName|ProductModelName]], returns an output [[#ProductModel|ProductModel]].
 
== ConvertToProductModelName ==
Takes an input [[#ProductModel|ProductModel]], return an output [[#ProductModelName|ProductModelName]].
 
When the input [[#ProductModel|ProductModel]] is invalid, this writes 0 to output and returns 0.
 
= Language =
This is "nn::settings::Language".
 
{| class="wikitable" border="1"
|-
|-
| 0x2C || 0x2 || SpeakerEqOutputVolume
! Value
! Description
|-
|-
| 0x2E || 0x2 || SpeakerEqCtrl1
| 0 || Japanese
|-
|-
| 0x30 || 0x2 || SpeakerEqCtrl2
| 1 || AmericanEnglish
|-
|-
| 0x32 || 0x2 || SpeakerDrcAgcCtrl2
| 2 || French
|-
|-
| 0x34 || 0x2 || SpeakerDrcAgcCtrl3
| 3 || German
|-
|-
| 0x36 || 0x2 || SpeakerDrcAgcCtrl1
| 4 || Italian
|-
|-
| 0x38 || 0x2 || SpeakerAnalogVolume
| 5 || Spanish
|-
|-
| 0x3A || 0x2 || HeadphoneAnalogVolume
| 6 || Chinese
|-
|-
| 0x3C || 0x2 || SpeakerDigitalVolumeMin
| 7 || Korean
|-
|-
| 0x3E || 0x2 || SpeakerDigitalVolumeMax
| 8 || Dutch
|-
|-
| 0x40 || 0x2 || HeadphoneDigitalVolumeMin
| 9 || Portuguese
|-
|-
| 0x42 || 0x2 || HeadphoneDigitalVolumeMax
| 10 || Russian
|-
|-
| 0x44 || 0x2 || MicFixedGain
| 11 || Taiwanese
|-
|-
| 0x46 || 0x2 || MicVariableVolumeMin
| 12 || BritishEnglish
|-
|-
| 0x48 || 0x2 || MicVariableVolumeMax
| 13 || CanadianFrench
|-
|-
| 0x4A || 0x10 || Reserved
| 14 || LatinAmericanSpanish
|}
 
= SslCertificate =
This is "nn::settings::factory::SslCertificate". This is a 0x804-byte struct.
 
{| class="wikitable" border="1"
|-
|-
! Offset || Size || Description
| 15 || [4.0.0+] SimplifiedChinese
|-
|-
| 0x0 || 0x4 || Size
| 16 || [4.0.0+] TraditionalChinese
|-
|-
| 0x4 || Variable || Data
| 17 || [10.1.0+] BrazilianPortuguese
|}
|}


= SslKey =
= LanguageCode =
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::LanguageCode". This is an u64, which is a NUL-terminated string.


If [[Calibration#CAL0|Calibration Version]] >= 9, this is now:
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Offset || Size || Description
! Value || [[#Language]]
|-
|-
| 0x0 || 0x130 || Key
| "ja" || Japanese
|-
| "en-US" || AmericanEnglish
|-
|-
| 0x130 || 0x4 || KeyGeneration
| "fr" || French
|}
 
= RegionCode =
This is "nn::settings::factory::RegionCode".
 
{| class="wikitable" border="1"
|-
|-
! Value
| "de" || German
! Description
|-
|-
| 0 || Japan
| "it" || Italian
|-
|-
| 1 || Usa
| "es" || Spanish
|-
|-
| 2 || Europe
| "zh-CN" || Chinese
|-
|-
| 3 || Australia
| "ko" || Korean
|-
|-
| 4 || China
| "nl" || Dutch
|-
|-
| 5 || Korea
| "pt" || Portuguese
|-
|-
| 6 || Taiwan
| "ru" || Russian
|}
 
= RegionCode =
This is "nn::settings::system::RegionCode".
 
{| class="wikitable" border="1"
|-
|-
! Value
| "zh-TW" || Taiwanese
! Description
|-
|-
| 0 || Japan
| "en-GB" || BritishEnglish
|-
|-
| 1 || Usa
| "fr-CA" || CanadianFrench
|-
|-
| 2 || Europe
| "es-419" || LatinAmericanSpanish
|-
|-
| 3 || Australia
| "zh-Hans" || [4.0.0+] SimplifiedChinese
|-
|-
| 4 || HongKongTaiwanKorea
| "zh-Hant" || [4.0.0+] TraditionalChinese
|-
|-
| 5 || China
| "pt-BR" || [10.1.0+] BrazilianPortuguese
|}
|}


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


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


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


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


= AudioVolumeTarget =
= AmiiboEcdsaCertificate =
This is "nn::settings::system::AudioVolumeTarget".
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
! Offset || Size || Description
! Description
|-
|-
| 0 || Speaker
| 0x0 || 0x40 || Key
|-
|-
| 1 || Headphone
| 0x40 || 0x4 || KeyGeneration
|}
|}


= DeviceNickName =
= AmiiboEcqvBlsRootCertificate =
This is "nn::settings::system::DeviceNickName". This is a 0x80-byte struct.
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.


= Edid =
= AmiiboKey =
This is "nn::settings::system::Edid".
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"
{| class="wikitable" border="1"
|-
|-
! Offset || Size || Description
! Offset || Size || Description
|-
|-
| 0x0 || 0x80 || Data0
| 0x0 || 0x50 || Key
|-
|-
| 0x80 || 0x80 || Data1
| 0x50 || 0x4 || KeyGeneration
|}
|}


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


{| class="wikitable" border="1"
= BatteryLot =
! Bits
This is "nn::settings::BatteryLot". This is a 0x18-byte struct.
! Description
|-
| 0 || SkipsIfSingleUser
|-
| 31 || Unknown
|}


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


This contains an u32 bitmask for [[#UserSelectorFlag]].
= ConfigurationId1 =
This is "nn::settings::factory::ConfigurationId1". This is a 0x1E-byte struct.


= AccountSettings =
Usually, this is a string with the following format:
This is "nn::settings::system::AccountSettings".
  {EventType}_{ProductModelType}_{MajorVersion}_{MinorVersion}_{MicroVersion}
 
This contains [[#UserSelectorSettings]].
 
= ClockSourceId =
This is "nn::settings::system::ClockSourceId".


== EventType ==
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
Line 1,460: Line 1,628:
! Description
! Description
|-
|-
| 0 || NetworkSystemClock
| "FP" || Functional prototype
|-
| "EP" || Engineering prototype
|-
|-
| 1 || SteadyClock
| "DP" || Design prototype
|}
 
= NotificationVolume =
This is "nn::settings::system::NotificationVolume".
 
{| class="wikitable" border="1"
|-
|-
! Value
| "DPRD" || Design prototype for R&D
! Description
|-
|-
| 0 || Mute
| "HOAG" || Hoag prototype
|-
|-
| 1 || Low
| "COPPER" || Copper prototype
|-
|-
| 2 || High
| "EDEV" || Extcon development kit for Icosa and Iowa
|}
 
= FriendPresenceOverlayPermission =
This is "nn::settings::system::FriendPresenceOverlayPermission".
 
{| class="wikitable" border="1"
|-
|-
! Value
| "SDEV" || SPI development kit for Icosa and Iowa
! Description
|-
|-
| 0 || NotConfirmed
| "MEDEV" || Mariko EDEV (deprecated)
|-
|-
| 1 || NoDisplay
| "MSDEV" || Mariko SDEV (deprecated)
|-
|-
| 2 || FavoriteFriends
| "HDEV" || Development kit for Hoag
|-
|-
| 3 || Friends
| "ADEV" || Development kit for Aula
|}
 
= TvResolution =
This is "nn::settings::system::TvResolution".
 
{| class="wikitable" border="1"
|-
|-
! Value
| "MP" || Mass production (retail Icosa)
! Description
|-
|-
| 0 || Auto
| "MNX" || Mariko NX (retail Iowa)
|-
|-
| 1 || 1080p
| "HNX" || Hoag NX (retail Hoag)
|-
|-
| 2 || 720p
| "ANX" || Aula NX (retail Aula)
|-
| 3 || 480p
|}
|}


= HdmiContentType =
== ProductModelType ==
This is "nn::settings::system::HdmiContentType".
 
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
Line 1,522: Line 1,667:
! Description
! Description
|-
|-
| 0 || None
| "00" || Icosa
|-
|-
| 1 || Graphics
| "01" || Iowa (previously Copper)
|-
|-
| 2 || Cinema
| "02" || Hoag
|-
|-
| 3 || Photo
| "03" || Calcio
|-
|-
| 4 || Game
| "04" || Aula
|}
|}


= RgbRange =
= ConsoleSixAxisSensorHorizontalOffset =
This is "nn::settings::system::RgbRange".
This is "nn::settings::factory::ConsoleSixAxisSensorHorizontalOffset". Same as [[Calibration#ConsoleSixAxisSensorHorizontalOffset|ConsoleSixAxisSensorHorizontalOffset]].
 
= 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"
|-
|-
! Value
! Offset || Size || Description
! Description
|-
|-
| 0 || Auto
| 0x0 || 0x54 || Key
|-
|-
| 1 || Full
| 0x54 || 0x4 || KeyGeneration
|-
| 2 || Limited
|}
|}


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


{| class="wikitable" border="1"
= 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"
|-
|-
! Value
! Offset || Size || Description
! Description
|-
|-
| 0 || None
| 0x0 || 0x130 || Key
|-
|-
| 1 || ColorInvert
| 0x130 || 0x4 || KeyGeneration
|-
| 2 || HighContrast
|-
| 3 || GrayScale
|}
|}


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


{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Value
! Offset || Size || Description
! Description
|-
|-
| 0 || 1Min
| 0x0 || 0x2 || X
|-
|-
| 1 || 3Min
| 0x2 || 0x2 || Y
|-
|-
| 2 || 5Min
| 0x4 || 0x2 || Z
|-
|}
| 3 || 10Min
 
= GyroscopeScale =
This is "nn::settings::factory::GyroscopeScale".
 
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
| 0x0 || 0x2 || X
|-
|-
| 4 || 30Min
| 0x2 || 0x2 || Y
|-
|-
| 5 || Never
| 0x4 || 0x2 || Z
|}
|}


= ConsoleSleepPlan =
= MacAddress =
This is "nn::settings::system::ConsoleSleepPlan".
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"
{| class="wikitable" border="1"
|-
|-
! Value
! Offset || Size || Description
! Description
|-
|-
| 0 || 1Hour
| 0x0 || 0x240 || Key
|-
|-
| 1 || 2Hour
| 0x240 || 0x4 || KeyGeneration
|}
 
= SerialNumber =
This is "nn::settings::factory::SerialNumber". This is a 0x18-byte struct.
 
= 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"
|-
|-
| 2 || 3Hour
! Offset || Size || Description
|-
|-
| 3 || 6Hour
| 0x0 || 0x4 || Size
|-
|-
| 4 || 12Hour
| 0x4 || Variable || Data
|-
| 5 || Never
|}
|}


= EulaVersion =
= SslKey =
This is "nn::settings::system::EulaVersion".
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"
|-
|-
! Offset || Size || Description
! Offset || Size || Description
|-
|-
| 0x0 || 0x4 || Version
| 0x0 || 0x130 || Key
|-
|-
| 0x4 || 0x4 || [[#RegionCode_2|RegionCode]]
| 0x130 || 0x4 || KeyGeneration
|-
|}
| 0x8 || 0x4 || [[#SteadyClockSourceId|ClockType]]
|-
| 0xC || 0x4 || Reserved
|-
| 0x10 || 0x8 || [[Glue_services#PosixTime|NetworkSystemClock]]
|-
| 0x18 || 0x18 || [[Glue_services#SteadyClockTimePoint|SteadyClock]]
|}


= FirmwareVersion =
= RegionCode =
This is "nn::settings::system::FirmwareVersion".
This is "nn::settings::factory::RegionCode".


{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Offset || Size || Description
! Value
! Description
|-
|-
| 0x0 || 0x1 || Major
| 0 || Japan
|-
|-
| 0x1 || 0x1 || Minor
| 1 || Usa
|-
|-
| 0x2 || 0x1 || Micro
| 2 || Europe
|-
|-
| 0x3 || 0x1 || Reserved
| 3 || Australia
|-
|-
| 0x4 || 0x4 || ReleaseNumber
| 4 || China
|-
|-
| 0x8 || 0x20 || Platform
| 5 || Korea
|-
|-
| 0x28 || 0x40 || Revision
| 6 || Taiwan
|-
| 0x68 || 0x18 || DisplayVersion
|-
| 0x80 || 0x80 || DisplayName
|}
|}


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


{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Offset || Size || Description
! Value
! Description
|-
|-
| 0x0 || 0x2 || Rcomp0
| 0 || 1ch
|-
|-
| 0x2 || 0x2 || TempCo
| 1 || 2ch
|-
|-
| 0x4 || 0x2 || FullCap
| 2 || 5_1ch
|-
|-
| 0x6 || 0x2 || FullCapNom
| 3 || 7_1ch
|}
 
= AudioOutputModeTarget =
This is "nn::settings::system::AudioOutputModeTarget".
 
{| class="wikitable" border="1"
|-
|-
| 0x8 || 0x2 || IavgEmpty
! Value
! Description
|-
|-
| 0xA || 0x2 || QrTable00
| 0 || Hdmi
|-
|-
| 0xC || 0x2 || QrTable10
| 1 || Speaker
|-
|-
| 0xE || 0x2 || QrTable20
| 2 || Headphone
|}
 
= AudioVolumeTarget =
This is "nn::settings::system::AudioVolumeTarget".
 
{| class="wikitable" border="1"
|-
|-
| 0x10 || 0x2 || QrTable30
! Value
! Description
|-
|-
| 0x12 || 0x2 || Reserved
| 0 || Speaker
|-
|-
| 0x14 || 0x4 || Cycles
| 1 || Headphone
|}
|}


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


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 1,690: Line 1,872:
! Offset || Size || Description
! Offset || Size || Description
|-
|-
| 0x0 || 0x4 || AuthenticationMode
| 0x0 || 0x80 || Data0
|-
|-
| 0x4 || 0x4 || EncryptionMode
| 0x80 || 0x80 || Data1
|-
|-
| 0x8 || 0x40 || KeyMaterial
| 0x100 || 0x80 || [13.0.0+] Data2
|-
|-
| 0x48 || 0x4 || KeyMaterialLength
| 0x180 || 0x80 || [13.0.0+] Data3
|}
|}


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


{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Offset || Size || Description
! Value
! Description
|-
| 0 || Japan
|-
| 1 || Usa
|-
| 2 || Europe
|-
| 3 || Australia
|-
|-
| 0x0 || 0x4 || Hour
| 4 || HongKongTaiwanKorea
|-
|-
| 0x4 || 0x4 || Minute
| 5 || China
|}
|}


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


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 1,718: Line 1,909:
! Description
! Description
|-
|-
| 0 || RingtoneFlag
| 0 || SkipsIfSingleUser
|-
|-
| 1 || DownloadCompletionFlag
| 31 || Unknown
|-
|}
| 8 || EnablesNews
 
|-
= UserSelectorSettings =
| 9 || IncomingLampFlag
This is "nn::settings::system::UserSelectorSettings".
|}
 
This contains an u32 bitmask for [[#UserSelectorFlag]].
 
= AccountSettings =
This is "nn::settings::system::AccountSettings".
 
This contains [[#UserSelectorSettings]].


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


{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Offset || Size || Description
! Value
! Description
|-
|-
| 0x0 || 0x4 || [[#NotificationFlag|Flags]]
| 0 || NetworkSystemClock
|-
|-
| 0x4 || 0x4 || [[#NotificationVolume|Volume]]
| 1 || SteadyClock
|-
| 0x8 || 0x8 || [[#NotificationTime|HeadTime]]
|-
| 0x10 || 0x8 || [[#NotificationTime|TailTime]]
|}
|}


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


{| class="wikitable" border="1"
{| class="wikitable" border="1"
! Bits
|-
! Value
! Description
! Description
|-
|-
| 0 || FriendOnlineFlag
| 0 || Mute
|-
|-
| 1 || FriendRequestFlag
| 1 || Low
|-
|-
| 8 || CoralInvitationFlag
| 2 || High
|}
|}


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


{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Offset || Size || Description
! Value
! Description
|-
|-
| 0x0 || 0x10 || [[Account_services#Uid|Uid]]
| 0 || NotConfirmed
|-
|-
| 0x10 || 0x4 || [[#AccountNotificationFlag|Flags]]
| 1 || NoDisplay
|-
|-
| 0x14 || 0x1 || [[#FriendPresenceOverlayPermission|FriendPresenceOverlayPermission]]
| 2 || FavoriteFriends
|-
|-
| 0x15 || 0x1 || [[#FriendPresenceOverlayPermission|FriendInvitationOverlayPermission]]
| 3 || Friends
|-
| 0x16 || 0x2 || Reserved
|}
|}


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


{| class="wikitable" border="1"
{| class="wikitable" border="1"
! Bits
|-
! Value
! Description
! Description
|-
|-
| 0 || Allows4k
| 0 || Auto
|-
|-
| 1 || Allows3d
| 1 || 1080p
|-
|-
| 2 || AllowsCec
| 2 || 720p
|-
|-
| 3 || PreventsScreenBurnIn
| 3 || 480p
|}
|}


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


{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Offset || Size || Description
! Value
! Description
|-
|-
| 0x0 || 0x4 || [[#TvFlag|Flags]]
| 0 || None
|-
|-
| 0x4 || 0x4 || [[#TvResolution|TvResolution]]
| 1 || Graphics
|-
|-
| 0x8 || 0x4 || [[#HdmiContentType|HdmiContentType]]
| 2 || Cinema
|-
|-
| 0xC || 0x4 || [[#RgbRange|RgbRange]]
| 3 || Photo
|-
|-
| 0x10 || 0x4 || [[#CmuMode|CmuMode]]
| 4 || Game
|-
| 0x14 || 0x4 || TvUnderscan
|-
| 0x18 || 0x4 || TvGamma
|-
| 0x1C || 0x4 || ContrastRatio
|}
|}


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


{| class="wikitable" border="1"
{| class="wikitable" border="1"
! Bits
|-
! Value
! Description
! Description
|-
|-
| 0 || AutomaticDeletionFlag
| 0 || Auto
|-
| 1 || Full
|-
| 2 || Limited
|}
|}


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


{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Offset || Size || Description
! Value
! Description
|-
| 0 || None
|-
|-
| 0x0 || 0x4 || [[#DataDeletionFlag|Flags]]
| 1 || ColorInvert
|-
|-
| 0x4 || 0x4 || UseCount
| 2 || HighContrast
|-
| 3 || GrayScale
|}
|}


= SleepFlag =
= TvUnderscan =
This is "nn::settings::system::SleepFlag".
This is s32. It defines the percentage point reduction from a 100% baseline.
 
= HandheldSleepPlan =
This is "nn::settings::system::HandheldSleepPlan".


{| class="wikitable" border="1"
{| class="wikitable" border="1"
! Bits
|-
! Value
! Description
! Description
|-
|-
| 0 || SleepsWhilePlayingMedia
| 0 || 1Min
|-
|-
| 1 || WakesAtPowerStateChange
| 1 || 3Min
|}
 
= SleepSettings =
This is "nn::settings::system::SleepSettings".
 
{| class="wikitable" border="1"
|-
|-
! Offset || Size || Description
| 2 || 5Min
|-
|-
| 0x0 || 0x4 || [[#SleepFlag|Flags]]
| 3 || 10Min
|-
|-
| 0x4 || 0x4 || [[#HandheldSleepPlan|HandheldSleepPlan]]
| 4 || 30Min
|-
|-
| 0x8 || 0x4 || [[#ConsoleSleepPlan|ConsoleSleepPlan]]
| 5 || Never
|}
|}


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


{| class="wikitable" border="1"
{| class="wikitable" border="1"
! Bits
|-
! Value
! Description
! Description
|-
|-
| 0 || InitialLaunchCompletionFlag
| 0 || 1Hour
|-
| 1 || 2Hour
|-
| 2 || 3Hour
|-
| 3 || 6Hour
|-
|-
| 8 || InitialLaunchUserAdditionFlag
| 4 || 12Hour
|-
|-
| 16 || InitialLaunchTimestampFlag
| 5 || Never
|}
|}


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


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 1,884: Line 2,089:
! Offset || Size || Description
! Offset || Size || Description
|-
|-
| 0x0 || 0x4 || [[#InitialLaunchFlag|Flags]]
| 0x0 || 0x4 || Version
|-
| 0x4 || 0x4 || [[#RegionCode_2|RegionCode]]
|-
|-
| 0x4 || 0x4 || Reserved
| 0x8 || 0x4 || [[#SteadyClockSourceId|ClockType]]
|-
|-
| 0x8 || 0x18 || [[Glue_services#SteadyClockTimePoint|TimeStamp]]
| 0xC || 0x4 || Reserved
|}
|-
| 0x10 || 0x8 || [[Glue_services#PosixTime|NetworkSystemClock]]
|-
| 0x18 || 0x18 || [[Glue_services#SteadyClockTimePoint|SteadyClock]]
|}


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


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 1,900: Line 2,109:
! Offset || Size || Description
! Offset || Size || Description
|-
|-
| 0x0 || 0x4 || Version
| 0x0 || 0x1 || Major
|-
|-
| 0x4 || 0x1C || Reserved
| 0x1 || 0x1 || Minor
|-
|-
| 0x20 || 0x20 || DisplayVersion
| 0x2 || 0x1 || Micro
|}
 
= PrimaryAlbumStorage =
This is "nn::settings::system::PrimaryAlbumStorage".
 
{| class="wikitable" border="1"
|-
|-
! Value
| 0x3 || 0x1 || Reserved
! Description
|-
|-
| 0 || Nand
| 0x4 || 0x4 || ReleaseNumber
|-
|-
| 1 || SdCard
| 0x8 || 0x20 || Platform
|-
| 0x28 || 0x40 || Revision
|-
| 0x68 || 0x18 || DisplayVersion
|-
| 0x80 || 0x80 || DisplayName
|}
|}


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


{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Value
! Offset || Size || Description
! Description
|-
|-
| 0 || NotConfirmed
| 0x0 || 0x2 || Rcomp0
|-
|-
| 1 || Granted
| 0x2 || 0x2 || TempCo
|-
|-
| 2 || Denied
| 0x4 || 0x2 || FullCap
|}
 
= ServiceDiscoveryControlSettings =
This is "nn::settings::system::ServiceDiscoveryControlSettings".
 
{| class="wikitable" border="1"
! Bits
! Description
|-
|-
| 0
| 0x6 || 0x2 || FullCapNom
| IsChangeEnvironmentIdentifierDisabled
|-
| 0x8 || 0x2 || IavgEmpty
|-
| 0xA || 0x2 || QrTable00
|-
| 0xC || 0x2 || QrTable10
|-
| 0xE || 0x2 || QrTable20
|-
| 0x10 || 0x2 || QrTable30
|-
| 0x12 || 0x2 || Reserved
|-
| 0x14 || 0x4 || Cycles
|}
|}


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


{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Value
! Offset || Size || Description
! Description
|-
|-
| 1 || EnglishUs
| 0x0 || 0x4 || AuthenticationMode
|-
|-
| 2 || EnglishUsInternational
| 0x4 || 0x4 || EncryptionMode
|-
|-
| 3 || EnglishUk
| 0x8 || 0x40 || KeyMaterial
|-
|-
| 4 || French
| 0x48 || 0x4 || KeyMaterialLength
|}
 
= NotificationTime =
This is "nn::settings::system::NotificationTime".
 
{| class="wikitable" border="1"
|-
|-
| 5 || FrenchCa
! Offset || Size || Description
|-
|-
| 6 || Spanish
| 0x0 || 0x4 || Hour
|-
|-
| 7 || SpanishLatin
| 0x4 || 0x4 || Minute
|}
 
= NotificationFlag =
This is "nn::settings::system::NotificationFlag".
 
{| class="wikitable" border="1"
! Bits
! Description
|-
|-
| 8 || German
| 0 || RingtoneFlag
|-
|-
| 9 || Italian
| 1 || DownloadCompletionFlag
|-
|-
| 10 || Portuguese
| 8 || EnablesNews
|-
|-
| 11 || Russian
| 9 || IncomingLampFlag
|}
 
= NotificationSettings =
This is "nn::settings::system::NotificationSettings".
 
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
| 0x0 || 0x4 || [[#NotificationFlag|Flags]]
|-
|-
| 12 || Korean
| 0x4 || 0x4 || [[#NotificationVolume|Volume]]
|-
|-
| 13 || ChineseSimplified
| 0x8 || 0x8 || [[#NotificationTime|HeadTime]]
|-
|-
| 14 || ChineseTraditional
| 0x10 || 0x8 || [[#NotificationTime|TailTime]]
|}
|}


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


{| class="wikitable" border="1"
{| class="wikitable" border="1"
! Bits
! Description
|-
|-
! Value
| 0 || FriendOnlineFlag
! Description
|-
|-
| 1 ||  
| 1 || FriendRequestFlag
|-
|-
| 2 ||  
| 8 || CoralInvitationFlag
|}
|}


= TouchScreenMode =
= AccountNotificationSettings =
This is "nn::settings::system::TouchScreenMode".
This is "nn::settings::system::AccountNotificationSettings".
 
This is an u8. This controls "Touch-Screen Sensitivity", values:
* 0: Stylus.
* 1: Standard, the default.
 
= ButtonConfigSettings =
This is "nn::settings::system::ButtonConfigSettings". This is a 0x5A8-byte struct.


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 2,013: Line 2,239:
! Offset || Size || Description
! Offset || Size || Description
|-
|-
| 0x0 || 0x1 || IsFull bool flag. 0 = empty config, 1 = config set. Also accessed as an u32, but only bit0 is used.
| 0x0 || 0x10 || [[Account_services#Uid|Uid]]
|-
| 0x10 || 0x4 || [[#AccountNotificationFlag|Flags]]
|-
|-
| 0x1 || 0x3 || Padding
| 0x14 || 0x1 || [[#FriendPresenceOverlayPermission|FriendPresenceOverlayPermission]]
|-
|-
| 0x4 || 0x1C4 || Unused
| 0x15 || 0x1 || [[#FriendPresenceOverlayPermission|FriendInvitationOverlayPermission]]
|-
|-
| 0x1C8 || 0x3E0 || Config
| 0x16 || 0x2 || Reserved
|}
|}


= ButtonConfigRegisteredSettings =
= TvFlag =
This is "nn::settings::system::ButtonConfigRegisteredSettings". This is a 0x5C8-byte struct.
This is "nn::settings::system::TvFlag".
 
= BluetoothDevicesSettings =
This is "nn::settings::system::BluetoothDevicesSettings". This is a 0x200-byte struct.


{| class="wikitable" border="1"
{| class="wikitable" border="1"
! Bits
! Description
|-
|-
! Offset || Size || Description
| 0 || Allows4k
|-
|-
| 0x0 || 0x6 || [[BTM_services#BdAddress|BdAddr]]
| 1 || Allows3d
|-
| 2 || AllowsCec
|-
| 3 || PreventsScreenBurnIn
|}
 
= TvSettings =
This is "nn::settings::system::TvSettings".
 
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
| 0x0 || 0x4 || [[#TvFlag|Flags]]
|-
| 0x4 || 0x4 || [[#TvResolution|TvResolution]]
|-
| 0x8 || 0x4 || [[#HdmiContentType|HdmiContentType]]
|-
| 0xC || 0x4 || [[#RgbRange|RgbRange]]
|-
| 0x10 || 0x4 || [[#CmuMode|CmuMode]]
|-
| 0x14 || 0x4 || [[#TvUnderscan|TvUnderscan]]
|-
|-
| 0x6 || 0x20 || [[BTM_services#BdName|DeviceName]]
| 0x18 || 0x4 || TvGamma
|-
| 0x1C || 0x4 || ContrastRatio
|}
 
= DataDeletionFlag =
This is "nn::settings::system::DataDeletionFlag".
 
{| class="wikitable" border="1"
! Bits
! Description
|-
| 0 || AutomaticDeletionFlag
|}
 
= DataDeletionSettings =
This is "nn::settings::system::DataDeletionSettings".
 
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
| 0x0 || 0x4 || [[#DataDeletionFlag|Flags]]
|-
| 0x4 || 0x4 || UseCount
|}
 
= SleepFlag =
This is "nn::settings::system::SleepFlag".
 
{| class="wikitable" border="1"
! Bits
! Description
|-
| 0 || SleepsWhilePlayingMedia
|-
| 1 || WakesAtPowerStateChange
|}
 
= SleepSettings =
This is "nn::settings::system::SleepSettings".
 
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
| 0x0 || 0x4 || [[#SleepFlag|Flags]]
|-
| 0x4 || 0x4 || [[#HandheldSleepPlan|HandheldSleepPlan]]
|-
| 0x8 || 0x4 || [[#ConsoleSleepPlan|ConsoleSleepPlan]]
|}
 
= InitialLaunchFlag =
This is "nn::settings::system::InitialLaunchFlag".
 
{| class="wikitable" border="1"
! Bits
! Description
|-
| 0 || InitialLaunchCompletionFlag
|-
| 8 || InitialLaunchUserAdditionFlag
|-
| 16 || InitialLaunchTimestampFlag
|}
 
= InitialLaunchSettings =
This is "nn::settings::system::InitialLaunchSettings". This struct is 8-byte aligned.
 
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
| 0x0 || 0x4 || [[#InitialLaunchFlag|Flags]]
|-
| 0x4 || 0x4 || Reserved
|-
| 0x8 || 0x18 || [[Glue_services#SteadyClockTimePoint|TimeStamp]]
|}
 
= RebootlessSystemUpdateVersion =
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"
|-
! Offset || Size || Description
|-
| 0x0 || 0x4 || Version
|-
| 0x4 || 0x1C || Reserved
|-
| 0x20 || 0x20 || DisplayVersion
|}
 
= PrimaryAlbumStorage =
This is "nn::settings::system::PrimaryAlbumStorage".
 
{| class="wikitable" border="1"
|-
! Value
! Description
|-
| 0 || Nand
|-
| 1 || SdCard
|}
 
= ErrorReportSharePermission =
This is "nn::settings::system::ErrorReportSharePermission".
 
{| class="wikitable" border="1"
|-
! Value
! Description
|-
| 0 || NotConfirmed
|-
| 1 || Granted
|-
| 2 || Denied
|}
 
= ServiceDiscoveryControlSettings =
This is "nn::settings::system::ServiceDiscoveryControlSettings".
 
{| class="wikitable" border="1"
! Bits
! Description
|-
| 0
| IsChangeEnvironmentIdentifierDisabled
|}
 
= AppletLaunchFlag =
This is "nn::settings::system::AppletLaunchFlag". This is an u32 bitmask.
 
= KeyboardLayout =
This is "nn::settings::KeyboardLayout".
 
{| class="wikitable" border="1"
|-
! Value
! Description
|-
| 1 || EnglishUs
|-
| 2 || EnglishUsInternational
|-
| 3 || EnglishUk
|-
| 4 || French
|-
| 5 || FrenchCa
|-
| 6 || Spanish
|-
| 7 || SpanishLatin
|-
| 8 || German
|-
| 9 || Italian
|-
| 10 || Portuguese
|-
| 11 || Russian
|-
| 12 || Korean
|-
| 13 || ChineseSimplified
|-
| 14 || ChineseTraditional
|}
 
= ChineseTraditionalInputMethod =
This is "nn::settings::ChineseTraditionalInputMethod".
 
{| class="wikitable" border="1"
|-
! Value
! Description
|-
| 1 ||
|-
| 2 ||
|}
 
= HomeMenuScheme =
This is "nn::settings::system::HomeMenuScheme".
 
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
| 0x0 || 0x4 || MainColor
|-
| 0x4 || 0x4 || BackColor
|-
| 0x8 || 0x4 || SubColor
|-
| 0xC || 0x4 || Reserved
|-
| 0x10 || 0x4 || BezelColor
|}
 
= TouchScreenMode =
This is "nn::settings::system::TouchScreenMode".
 
{| class="wikitable" border="1"
|-
! Value
! Description
|-
| 0 || Stylus
|-
| 1 || Standard
|}
 
= ButtonConfigSettings =
This is "nn::settings::system::ButtonConfigSettings". This is a 0x5A8-byte struct.
 
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
| 0x0 || 0x1 || IsFull bool flag. 0 = empty config, 1 = config set. Also accessed as an u32, but only bit0 is used.
|-
| 0x1 || 0x3 || Padding
|-
| 0x4 || 0x1C4 || Unused
|-
| 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"
|-
! Offset || Size || Description
|-
| 0x0 || 0x6 || [[BTM_services#BdAddress|BdAddr]]
|-
| 0x6 || 0x20 || [13.0.0+] Reserved ([1.0.0-12.1.0] [[BTM_services#BdName|DeviceName]])
|-
|-
| 0x26 || 0x3 || [[BTM_services#ClassOfDevice|ClassOfDevice]]
| 0x26 || 0x3 || [[BTM_services#ClassOfDevice|ClassOfDevice]]
|-
|-
| 0x29 || 0x10 || LinkKey
| 0x29 || 0x10 || LinkKey
|-
|-
| 0x39 || 0x1 || LinkKeyPresent
| 0x39 || 0x1 || LinkKeyPresent
|-
|-
| 0x3A || 0x2 || Version
| 0x3A || 0x2 || Version
|-
|-
| 0x3C || 0x4 || TrustedServices
| 0x3C || 0x4 || TrustedServices
|-
|-
| 0x40 || 0x2 || Vid
| 0x40 || 0x2 || Vid
|-
|-
| 0x42 || 0x2 || Pid
| 0x42 || 0x2 || Pid
|-
|-
| 0x44 || 0x1 || SubClass
| 0x44 || 0x1 || SubClass
|-
|-
| 0x45 || 0x1 || AttributeMask
| 0x45 || 0x1 || AttributeMask
|-
|-
| 0x46 || 0x2 || DescriptorLength
| 0x46 || 0x2 || DescriptorLength
|-
|-
| 0x48 || 0x80 || Descriptor
| 0x48 || 0x80 || Descriptor
|-
| 0xC8 || 0x1 || KeyType
|-
| 0xC9 || 0x1 || DeviceType
|-
| 0xCA || 0x2 || BrrSize
|-
| 0xCC || 0x9 || Brr
|-
| 0xD5 || 0x1 || [13.0.0+] AudioSourceVolume
|-
| 0xD6 || 0xF9 || [13.0.0+] DeviceName
|-
| 0x1CF || 0x1 || [15.0.0+] AudioSinkVolume
|-
| 0x1D0 || 0x4 || [14.0.0+] AudioFlags
|-
| 0x1D4 || 0x2C || Reserved
|}
 
= NxControllerLegacySettings =
This is "nn::settings::system::NxControllerLegacySettings" ([1.0.0-12.1.0] "nn::settings::system::NxControllerSettings"). This is a 0x29-byte struct.
 
= NxControllerSettings =
This is "nn::settings::system::NxControllerSettings". This is a 0x42C-byte struct. This was added with [13.0.0+].
 
= ProductModel =
Ths is "nn::settings::system::ProductModel".
 
{| class="wikitable" border="1"
|-
! Value
! Description
|-
| 0 || Invalid
|-
| 1 || Nx
|-
| 2 || NxCopper
|-
| 3 || NxIowa
|-
| 4 || NxHoag
|-
| 5 || NxCalcio
|-
| 6 || NxAula
|-
| 7 ||
|-
| 8 ||
|-
| 9 ||
|-
| 10 ||
|-
| 11 ||
|-
| 12 ||
|}
 
Range 1-6 is Nintendo Switch, range 7-12 is Nintendo Switch 2.
 
= ProductModelName =
This is "nn::settings::system::ProductModelName". This is a 0x8-byte struct containing a [[#ProductModel|string]].
 
{| class="wikitable" border="1"
|-
! Value
! [[#ProductModel|ProductModel]]
|-
| "HAC" || 1
|-
|-
| 0xC8 || 0x1 || KeyType
| "HAD" || 3
|-
|-
| 0xC9 || 0x1 || DeviceType
| "HDH" || 4
|-
|-
| 0xCA || 0x2 || BrrSize
| "HEG" || 6
|-
|-
| 0xCC || 0x9 || Brr
| "BEE" || 7
|-
| 0xD5 || 0x12B || Reserved
|}
|}


= NxControllerLegacySettings =
= SystemConfiguration =
This is "nn::settings::system::NxControllerLegacySettings" ([1.0.0-12.1.0] "nn::settings::system::NxControllerSettings"). This is a 0x29-byte struct.
 
= NxControllerSettings =
This is "nn::settings::system::NxControllerSettings". This is a 0x42C-byte struct. This was added with [13.0.0+].
 
= System Configuration =
There's a common configuration title (*818), and one configuration title for each [[SMC#HardwareType|HardwareType]].
There's a common configuration title (*818), and one configuration title for each [[SMC#HardwareType|HardwareType]].