Settings services: Difference between revisions

No edit summary
No edit summary
 
(23 intermediate revisions by 4 users not shown)
Line 61: 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 97: Line 139:
| 23 || [9.0.0+] SetMemoryUsageRateFlag
| 23 || [9.0.0+] SetMemoryUsageRateFlag
|-
|-
| 24 || [20.0.0+]  
| 24 || [20.0.0+] CommitSettings
|-
| 27 || [21.0.0+] SetHttpAuthConfigs
|}
|}


Line 121: 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 || [S1] [[#GetEticketDeviceCertificate]]
|-
| 16 || [S1] [[#GetSslKey]]
|-
|-
| 15 || [[#GetEticketDeviceCertificate]]
| 17 || [S1] [[#GetSslCertificate]]
|-
|-
| 16 || [[#GetSslKey]]
| 18 || [S1] [[#GetGameCardKey]]
|-
|-
| 17 || [[#GetSslCertificate]]
| 19 || [S1] [[#GetGameCardCertificate]]
|-
|-
| 18 || [[#GetGameCardKey]]
| 20 || [S1] [[#GetEciDeviceKey]]
|-
|-
| 19 || [[#GetGameCardCertificate]]
| 21 || [S1] [[#GetEticketDeviceKey]]
|-
|-
| 20 || [[#GetEciDeviceKey]]
| 22 || [S1] [[#GetSpeakerParameter]]
|-
|-
| 21 || [[#GetEticketDeviceKey]]
| 23 || [S1] [4.0.0+] [[#GetLcdVendorId]]
|-
|-
| 22 || [[#GetSpeakerParameter]]
| 24 || [S1] [5.0.0+] [[#GetEciDeviceCertificate2]]
|-
|-
| 23 || [4.0.0+] [[#GetLcdVendorId]]
| 25 || [S1] [5.0.0+] [[#GetEciDeviceKey2]]
|-
|-
| 24 || [5.0.0+] [[#GetEciDeviceCertificate2]]
| 26 || [S1] [5.0.0+] [[#GetAmiiboKey]]
|-
|-
| 25 || [5.0.0+] [[#GetEciDeviceKey2]]
| 27 || [S1] [5.0.0+] [[#GetAmiiboEcqvCertificate]]
|-
|-
| 26 || [5.0.0+] [[#GetAmiiboKey]]
| 28 || [S1] [5.0.0+] [[#GetAmiiboEcdsaCertificate]]
|-
|-
| 27 || [5.0.0+] [[#GetAmiiboEcqvCertificate]]
| 29 || [S1] [5.0.0+] [[#GetAmiiboEcqvBlsKey]]
|-
|-
| 28 || [5.0.0+] [[#GetAmiiboEcdsaCertificate]]
| 30 || [S1] [5.0.0+] [[#GetAmiiboEcqvBlsCertificate]]
|-
|-
| 29 || [5.0.0+] [[#GetAmiiboEcqvBlsKey]]
| 31 || [S1] [5.0.0+] [[#GetAmiiboEcqvBlsRootCertificate]]
|-
|-
| 30 || [5.0.0+] [[#GetAmiiboEcqvBlsCertificate]]
| 32 || [S1] [5.0.0+] [[#GetUsbTypeCPowerSourceCircuitVersion]]
|-
|-
| 31 || [5.0.0+] [[#GetAmiiboEcqvBlsRootCertificate]]
| 33 || [S1] [8.1.1+] [[#GetAnalogStickModuleTypeL]]
|-
|-
| 32 || [5.0.0+] [[#GetUsbTypeCPowerSourceCircuitVersion]]
| 34 || [S1] [8.1.1+] [[#GetAnalogStickModelParameterL]]
|-
|-
| 33 || [8.1.1+] [[#GetAnalogStickModuleTypeL]]
| 35 || [S1] [8.1.1+] [[#GetAnalogStickFactoryCalibrationL]]
|-
|-
| 34 || [8.1.1+] [[#GetAnalogStickModelParameterL]]
| 36 || [S1] [8.1.1+] [[#GetAnalogStickModuleTypeR]]
|-
|-
| 35 || [8.1.1+] [[#GetAnalogStickFactoryCalibrationL]]
| 37 || [S1] [8.1.1+] [[#GetAnalogStickModelParameterR]]
|-
|-
| 36 || [8.1.1+] [[#GetAnalogStickModuleTypeR]]
| 38 || [S1] [8.1.1+] [[#GetAnalogStickFactoryCalibrationR]]
|-
|-
| 37 || [8.1.1+] [[#GetAnalogStickModelParameterR]]
| 39 || [S1] [8.1.1+] [[#GetConsoleSixAxisSensorModuleType]]
|-
|-
| 38 || [8.1.1+] [[#GetAnalogStickFactoryCalibrationR]]
| 40 || [S1] [8.1.1+] [[#GetConsoleSixAxisSensorHorizontalOffset]]
|-
|-
| 39 || [8.1.1+] [[#GetConsoleSixAxisSensorModuleType]]
| 41 || [S1] [6.0.0+] [[#GetBatteryVersion]]
|-
|-
| 40 || [8.1.1+] [[#GetConsoleSixAxisSensorHorizontalOffset]]
| 42 || [S1] [10.0.0+] [[#GetDeviceId]]
|-
|-
| 41 || [6.0.0+] [[#GetBatteryVersion]]
| 43 || [S1] [10.0.0+] [[#GetConsoleSixAxisSensorMountType]]
|-
|-
| 42 || [10.0.0+] [[#GetDeviceId]]
| 44 || [S2] GetCpDeviceKeyFileSize
|-
|-
| 43 || [10.0.0+] [[#GetConsoleSixAxisSensorMountType]]
| 45 || [S2] GetCpDeviceKeyFile
|}
|-
 
| 46 || [S2] GetCpCertificateFileSize
Used for accessing data [[Calibration|calibrated]] at the factory.
|-
 
| 47 || [S2] GetCpCertificateFile
== GetBluetoothBdAddress ==
|-
No input. Returns a [[#BdAddress|BdAddress]].
| 48 || [S2] GetRaCertificateFileSize
 
|-
== GetConfigurationId1 ==
| 49 || [S2] GetRaCertificateFile
No input. Returns a [[#ConfigurationId1|ConfigurationId1]].
|-
 
| 50 || [S2] GetRaOemEkFileSize
== GetAccelerometerOffset ==
|-
No input. Returns a [[#AccelerometerOffset|AccelerometerOffset]].
| 51 || [S2] GetRaOemEkFile
 
|-
== GetAccelerometerScale ==
| 52 || [S2] GetRaPkaKekFileSize
No input. Returns a [[#AccelerometerScale|AccelerometerScale]].
|-
 
| 53 || [S2] GetRaPkaKekFile
== GetGyroscopeOffset ==
|-
No input. Returns a [[#GyroscopeOffset|GyroscopeOffset]].
| 54 || [S2] GetGcNxPkKekFileSize
 
|-
== GetGyroscopeScale ==
| 55 || [S2] GetGcNxPkKekFile
No input. Returns a [[#GyroscopeScale|GyroscopeScale]].
|-
 
| 56 || [S2] GetGcUniqueImportKeyFileSize
== GetWirelessLanMacAddress ==
|-
No input. Returns a [[#MacAddress|MacAddress]].
| 57 || [S2] GetGcUniqueImportKeyFile
 
|-
== GetWirelessLanCountryCodeCount ==
| 58 || [S2] GetGcUniqueEncryptionKeyFileSize
No input. Returns a s32 '''OutCount'''.
|-
 
| 59 || [S2] GetGcUniqueEncryptionKeyFile
== GetWirelessLanCountryCodes ==
|-
Takes a type-0x16 output buffer containing an array of [[#CountryCode|CountryCode]]. Returns a s32 '''OutCount'''.
| 60 || [S2] GetGcCertificateFileSize
 
|-
== GetSerialNumber ==
| 61 || [S2] GetGcCertificateFile
No input. Returns a [[#SerialNumber|SerialNumber]].
|-
 
| 62 || [S2] GetGcUniqueKeyAFileSize
== SetInitialSystemAppletProgramId ==
|-
Takes an input [[NCM_services#ProgramId|ProgramId]]. No output.
| 63 || [S2] GetGcUniqueKeyAFile
 
|-
== SetOverlayDispProgramId ==
| 64 || [S2] GetGcUniqueKeyBFileSize
Takes an input [[NCM_services#ProgramId|ProgramId]]. No output.
|-
 
| 65 || [S2] GetGcUniqueKeyBFile
== GetBatteryLot ==
|-
No input. Returns a [[#BatteryLot|BatteryLot]].
| 66 || [S2] GetGcNxKeyFileSize
 
|-
== GetEciDeviceCertificate ==
| 67 || [S2] GetGcNxKeyFile
Takes a type-0x16 output buffer containing a [[#EccB233DeviceCertificate|EccB233DeviceCertificate]]. No output.
|-
 
| 68 || [S2] GetGcNxCertificateFileSize
Returns the device certificate (ECC signed). This is identical to 3DS DeviceCert/CTCert besides the strings. NIM loads the DeviceId from this.
|-
 
| 69 || [S2] GetGcNxCertificateFile
== GetEticketDeviceCertificate ==
|-
Takes a type-0x16 output buffer containing a [[#Rsa2048DeviceCertificate|Rsa2048DeviceCertificate]]. No output.
| 70 || [S2] GetWirelessLanRegulatoryDomain
|-
| 71 || [S2] GetDeviceId
|-
| 72 || [S2] GetBluetoothBdAddressSet
|-
| 73 || [S2] GetToolModel
|-
| 74 || [S2] IsRadioForbidden
|-
| 75 || [S2] GetDisplayModuleId
|-
| 76 || [S2] GetAnalogStickModuleTypeL
|-
| 77 || [S2] GetAnalogStickModelParameterL
|-
| 78 || [S2] GetAnalogStickFactoryCalibrationL
|-
| 79 || [S2] GetAnalogStickModuleTypeR
|-
| 80 || [S2] GetAnalogStickModelParameterR
|-
| 81 || [S2] GetAnalogStickFactoryCalibrationR
|-
| 82 || [S2] GetConsoleSixAxisSensorModuleType
|-
| 83 || [S2] GetConsoleSixAxisSensorMountType
|-
| 84 || [S2] GetConsoleSixAxisSensorFactoryCalibration
|-
| 85 || [S2] GetOta0DeviceKeyFileSize
|-
| 86 || [S2] GetOta0DeviceKeyFile
|-
| 87 || [S2] GetOta0CertificateFileSize
|-
| 88 || [S2] GetOta0CertificateFile
|-
| 89 || [S2] GetOta1DeviceKeyFileSize
|-
| 90 || [S2] GetOta1DeviceKeyFile
|-
| 91 || [S2] GetOta1CertificateFileSize
|-
| 92 || [S2] GetOta1CertificateFile
|-
| 93 || [S2] GetOta2DeviceKeyFileSize
|-
| 94 || [S2] GetOta2DeviceKeyFile
|-
| 95 || [S2] GetOta2CertificateFileSize
|-
| 96 || [S2] GetOta2CertificateFile
|-
| 97 || [S2] GetJc0CertificateFileSize
|-
| 98 || [S2] GetJc0CertificateFile
|-
| 99 || [S2] GetJc0PrivateKeyFileSize
|-
| 100 || [S2] GetJc0PrivateKeyFile
|-
| 101 || [S2] GetJc0PkKekFileSize
|-
| 102 || [S2] GetJc0PkKekFile
|-
| 103 || [S2] GetJc1CertificateFileSize
|-
| 104 || [S2] GetJc1CertificateFile
|-
| 105 || [S2] GetJc1PrivateKeyFileSize
|-
| 106 || [S2] GetJc1PrivateKeyFile
|-
| 107 || [S2] GetJc1PkKekFileSize
|-
| 108 || [S2] GetJc1PkKekFile
|-
| 109 || [S2] GetWirelessLanPowerTable
|-
| 110 || [S2] GetConsoleSixAxisSensorFactoryAccelerationLog
|-
| 111 || [S2] GetDrmCertificateFileSize
|-
| 112 || [S2] GetDrmCertificateFile
|-
| 113 || [S2] GetCalibrationTimeStampUtc
|-
| 114 || [S2] GetEncryptedSecretDeviceIdFileSize
|-
| 115 || [S2] GetEncryptedSecretDeviceIdFile
|-
| 116 || [S2] GetEncryptedSecretDeviceIdEncryptionKeyFileSize
|-
| 117 || [S2] GetEncryptedSecretDeviceIdEncryptionKeyFile
|-
| 118 || [S2]
|-
| 119 || [22.0.0+] GetRegionCode
|}


Returns the ETicket certificate (RSA signed).
Used for accessing data [[Calibration|calibrated]] at the factory.


== GetSslKey ==
== GetBluetoothBdAddress ==
Takes a type-0x16 output buffer containing a [[#SslKey|SslKey]]. No output.
No input. Returns a [[#BdAddress|BdAddress]].


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).
== GetConfigurationId1 ==
No input. Returns a [[#ConfigurationId1|ConfigurationId1]].


Used by SSL-sysmodule, see [[SSL_services|here]].
== GetAccelerometerOffset ==
No input. Returns a [[#AccelerometerOffset|AccelerometerOffset]].


== GetSslCertificate ==
== GetAccelerometerScale ==
Takes a type-0x16 output buffer containing a [[#SslCertificate|SslCertificate]]. No output.
No input. Returns a [[#AccelerometerScale|AccelerometerScale]].


Used by SSL-sysmodule, see [[SSL_services|here]].
== GetGyroscopeOffset ==
No input. Returns a [[#GyroscopeOffset|GyroscopeOffset]].


== GetGameCardKey ==
== GetGyroscopeScale ==
Takes a type-0x16 output buffer containing a [[#GameCardKey|GameCardKey]]. No output.
No input. Returns a [[#GyroscopeScale|GyroscopeScale]].


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).
== GetWirelessLanMacAddress ==
No input. Returns a [[#MacAddress|MacAddress]].


== GetGameCardCertificate ==
== GetWirelessLanCountryCodeCount ==
Takes a type-0x16 output buffer containing a [[#GameCardCertificate|GameCardCertificate]]. No output.
No input. Returns a s32 '''OutCount'''.


== GetEciDeviceKey ==
== GetWirelessLanCountryCodes ==
No input. Returns an [[#EccB233DeviceKey|EccB233DeviceKey]].
Takes a type-0x16 output buffer containing an array of [[#CountryCode|CountryCode]]. Returns a s32 '''OutCount'''.  


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).
== GetSerialNumber ==
No input. Returns a [[#SerialNumber|SerialNumber]].


== GetEticketDeviceKey ==
== SetInitialSystemAppletProgramId ==
Takes a type-0x16 output buffer containing a [[#Rsa2048DeviceKey|Rsa2048DeviceKey]]. No output.
Takes an input [[NCM_services#ProgramId|ProgramId]]. 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).
== SetOverlayDispProgramId ==
Takes an input [[NCM_services#ProgramId|ProgramId]]. No output.


== GetSpeakerParameter ==
== GetBatteryLot ==
No input. Returns a [[#SpeakerParameter|SpeakerParameter]].
No input. Returns a [[#BatteryLot|BatteryLot]].


== GetLcdVendorId ==
== GetEciDeviceCertificate ==
No input. Returns a [[Calibration#LcdVendorId|LcdVendorId]].
Takes a type-0x16 output buffer containing a [[#EccB233DeviceCertificate|EccB233DeviceCertificate]]. No output.


== GetEciDeviceCertificate2 ==
Returns the device certificate (ECC signed). This is identical to 3DS DeviceCert/CTCert besides the strings. NIM loads the DeviceId from this.
Same as [[#GetEciDeviceCertificate]], but returns a [[#Rsa2048DeviceCertificate|RSA-2048]] variant of the device certificate.


== GetEciDeviceKey2 ==
== GetEticketDeviceCertificate ==
Same as [[#GetEciDeviceKey]], but returns a [[#Rsa2048DeviceKey|RSA-2048]] variant of the device key.
Takes a type-0x16 output buffer containing a [[#Rsa2048DeviceCertificate|Rsa2048DeviceCertificate]]. No output.


== GetAmiiboKey ==
Returns the ETicket certificate (RSA signed).
No input. Returns an [[#AmiiboKey|AmiiboKey]].


== GetAmiiboEcqvCertificate ==
== GetSslKey ==
No input. Returns an [[#AmiiboEcqvCertificate|AmiiboEcqvCertificate]].
Takes a type-0x16 output buffer containing a [[#SslKey|SslKey]]. No output.


== GetAmiiboEcdsaCertificate ==
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).
No input. Returns an [[#AmiiboEcdsaCertificate|AmiiboEcdsaCertificate]].


== GetAmiiboEcqvBlsKey ==
Used by SSL-sysmodule, see [[SSL_services|here]].
No input. Returns an [[#AmiiboEcqvBlsKey|AmiiboEcqvBlsKey]].


== GetAmiiboEcqvBlsCertificate ==
== GetSslCertificate ==
No input. Returns an [[#AmiiboEcqvBlsCertificate|AmiiboEcqvBlsCertificate]].
Takes a type-0x16 output buffer containing a [[#SslCertificate|SslCertificate]]. No output.


== GetAmiiboEcqvBlsRootCertificate ==
Used by SSL-sysmodule, see [[SSL_services|here]].
No input. Returns an [[#AmiiboEcqvBlsRootCertificate|AmiiboEcqvBlsRootCertificate]].


== GetUsbTypeCPowerSourceCircuitVersion ==
== GetGameCardKey ==
No input. Returns an [[Calibration#UsbTypeCPowerSourceCircuit|UsbTypeCPowerSourceCircuitVersion]].
Takes a type-0x16 output buffer containing a [[#GameCardKey|GameCardKey]]. No output.


== GetAnalogStickModuleTypeL ==
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).
No input. Returns an [[Calibration#AnalogStickModuleType|AnalogStickModuleType]].


== GetAnalogStickModelParameterL ==
== GetGameCardCertificate ==
No input. Returns an [[#AnalogStickModelParameter|AnalogStickModelParameter]].
Takes a type-0x16 output buffer containing a [[#GameCardCertificate|GameCardCertificate]]. No output.


== GetAnalogStickFactoryCalibrationL ==
== GetEciDeviceKey ==
No input. Returns an [[#AnalogStickFactoryCalibration|AnalogStickFactoryCalibration]].
No input. Returns an [[#EccB233DeviceKey|EccB233DeviceKey]].


== GetAnalogStickModuleTypeR ==
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).
No input. Returns an [[Calibration#AnalogStickModuleType|AnalogStickModuleType]].


== GetAnalogStickModelParameterR ==
== GetEticketDeviceKey ==
No input. Returns an [[#AnalogStickModelParameter|AnalogStickModelParameter]].
Takes a type-0x16 output buffer containing a [[#Rsa2048DeviceKey|Rsa2048DeviceKey]]. No output.


== GetAnalogStickFactoryCalibrationR ==
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).
No input. Returns an [[#AnalogStickFactoryCalibration|AnalogStickFactoryCalibration]].


== GetConsoleSixAxisSensorModuleType ==
== GetSpeakerParameter ==
No input. Returns a [[Calibration#ConsoleSixAxisSensorModuleType|ConsoleSixAxisSensorModuleType]].
No input. Returns a [[#SpeakerParameter|SpeakerParameter]].


== GetConsoleSixAxisSensorHorizontalOffset ==
== GetLcdVendorId ==
No input. Returns a [[#ConsoleSixAxisSensorHorizontalOffset|ConsoleSixAxisSensorHorizontalOffset]].
No input. Returns a [[Calibration#LcdVendorId|LcdVendorId]].


== GetBatteryVersion ==
== GetEciDeviceCertificate2 ==
No input. Returns a [[Calibration#BatteryVersion|BatteryVersion]].
Same as [[#GetEciDeviceCertificate]], but returns a [[#Rsa2048DeviceCertificate|RSA-2048]] variant of the device certificate.


== GetDeviceId ==
== GetEciDeviceKey2 ==
No input. Returns an u64 '''DeviceId''' by reading and converting the hexadecimal string at offset 0xC6 inside [[#EccB233DeviceCertificate]] or [[#Rsa2048DeviceCertificate]].
Same as [[#GetEciDeviceKey]], but returns a [[#Rsa2048DeviceKey|RSA-2048]] variant of the device key.


== GetConsoleSixAxisSensorMountType ==
== GetAmiiboKey ==
No input. Returns a [[Calibration#ConsoleSixAxisSensorMountType|ConsoleSixAxisSensorMountType]].
No input. Returns an [[#AmiiboKey|AmiiboKey]].


= set:sys =
== GetAmiiboEcqvCertificate ==
This is "nn::settings::ISystemSettingsServer".
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]].


{| class="wikitable" border="1"
== GetAnalogStickModuleTypeL ==
|-
No input. Returns an [[Calibration#AnalogStickModuleType|AnalogStickModuleType]].
! Cmd || Name
 
|-
== GetAnalogStickModelParameterL ==
| 0 || [[#SetLanguageCode]]
No input. Returns an [[#AnalogStickModelParameter|AnalogStickModelParameter]].
|-
 
| 1 || SetNetworkSettings
== GetAnalogStickFactoryCalibrationL ==
|-
No input. Returns an [[#AnalogStickFactoryCalibration|AnalogStickFactoryCalibration]].
| 2 || GetNetworkSettings
 
|-
== GetAnalogStickModuleTypeR ==
| 3 || [[#GetFirmwareVersion]]
No input. Returns an [[Calibration#AnalogStickModuleType|AnalogStickModuleType]].
|-
 
| 4 || [3.0.0+] GetFirmwareVersion2
== GetAnalogStickModelParameterR ==
|-
No input. Returns an [[#AnalogStickModelParameter|AnalogStickModelParameter]].
| 5 || [5.0.0+] GetFirmwareVersionDigest
 
|-
== GetAnalogStickFactoryCalibrationR ==
| 7 || GetLockScreenFlag
No input. Returns an [[#AnalogStickFactoryCalibration|AnalogStickFactoryCalibration]].
|-
 
| 8 || SetLockScreenFlag
== GetConsoleSixAxisSensorModuleType ==
|-
No input. Returns a [[Calibration#ConsoleSixAxisSensorModuleType|ConsoleSixAxisSensorModuleType]].
| 9 || GetBacklightSettings
 
|-
== GetConsoleSixAxisSensorHorizontalOffset ==
| 10 || SetBacklightSettings
No input. Returns a [[#ConsoleSixAxisSensorHorizontalOffset|ConsoleSixAxisSensorHorizontalOffset]].
|-
 
| 11 || SetBluetoothDevicesSettings
== GetBatteryVersion ==
|-
No input. Returns a [[Calibration#BatteryVersion|BatteryVersion]].
| 12 || GetBluetoothDevicesSettings
 
|-
== GetDeviceId ==
| 13 || GetExternalSteadyClockSourceId
No input. Returns an u64 '''DeviceId''' by reading and converting the hexadecimal string at offset 0xC6 inside [[#EccB233DeviceCertificate]] or [[#Rsa2048DeviceCertificate]].
|-
 
| 14 || SetExternalSteadyClockSourceId
== GetConsoleSixAxisSensorMountType ==
|-
No input. Returns a [[Calibration#ConsoleSixAxisSensorMountType|ConsoleSixAxisSensorMountType]].
| 15 || GetUserSystemClockContext
 
|-
= set:sys =
| 16 || SetUserSystemClockContext
This is "nn::settings::ISystemSettingsServer".
 
{| class="wikitable" border="1"
|-
|-
| 17 || [[#GetAccountSettings]]
! Cmd || Name
|-
|-
| 18 || [[#SetAccountSettings]]
| 0 || [[#SetLanguageCode]]
|-
|-
| 19 || GetAudioVolume
| 1 || SetNetworkSettings
|-
|-
| 20 || SetAudioVolume
| 2 || GetNetworkSettings
|-
|-
| 21 || [[#GetEulaVersions]]
| 3 || [S1] [[#GetFirmwareVersion]]
|-
| 4 || [3.0.0+] GetFirmwareVersion2
|-
| 5 || [S1] [5.0.0+] GetFirmwareVersionDigest
|-
| 7 || GetLockScreenFlag
|-
| 8 || SetLockScreenFlag
|-
| 9 || GetBacklightSettings
|-
| 10 || SetBacklightSettings
|-
| 11 || [S1] SetBluetoothDevicesSettings
|-
| 12 || [S1] GetBluetoothDevicesSettings
|-
| 13 || GetExternalSteadyClockSourceId
|-
| 14 || SetExternalSteadyClockSourceId
|-
| 15 || GetUserSystemClockContext
|-
| 16 || SetUserSystemClockContext
|-
| 17 || [[#GetAccountSettings]]
|-
| 18 || [[#SetAccountSettings]]
|-
| 19 || GetAudioVolume
|-
| 20 || SetAudioVolume
|-
| 21 || [[#GetEulaVersions]]
|-
|-
| 22 || [[#SetEulaVersions]]
| 22 || [[#SetEulaVersions]]
Line 410: Line 606:
| 24 || [[#SetColorSetId]]
| 24 || [[#SetColorSetId]]
|-
|-
| 25 || GetConsoleInformationUploadFlag
| 25 || [S1] GetConsoleInformationUploadFlag
|-
|-
| 26 || SetConsoleInformationUploadFlag
| 26 || [S1] SetConsoleInformationUploadFlag
|-
|-
| 27 || GetAutomaticApplicationDownloadFlag
| 27 || [S1] GetAutomaticApplicationDownloadFlag
|-
|-
| 28 || SetAutomaticApplicationDownloadFlag
| 28 || [S1] SetAutomaticApplicationDownloadFlag
|-
|-
| 29 || [[#GetNotificationSettings]]
| 29 || [[#GetNotificationSettings]]
Line 454: Line 650:
| 48 || SetQuestFlag
| 48 || SetQuestFlag
|-
|-
| 49 || [[#GetDataDeletionSettings]]
| 49 || [S1] [[#GetDataDeletionSettings]]
|-
|-
| 50 || [[#SetDataDeletionSettings]]
| 50 || [S1] [[#SetDataDeletionSettings]]
|-
|-
| 51 || GetInitialSystemAppletProgramId
| 51 || [S1] GetInitialSystemAppletProgramId
|-
|-
| 52 || GetOverlayDispProgramId
| 52 || [S1] GetOverlayDispProgramId
|-
|-
| 53 || GetDeviceTimeZoneLocationName
| 53 || [[#GetDeviceTimeZoneLocationName]]
|-
|-
| 54 || SetDeviceTimeZoneLocationName
| 54 || [[#SetDeviceTimeZoneLocationName]]
|-
|-
| 55 || [[#GetWirelessCertificationFileSize]]
| 55 || [S1] [[#GetWirelessCertificationFileSize]]
|-
|-
| 56 || [[#GetWirelessCertificationFile]]
| 56 || [S1] [[#GetWirelessCertificationFile]]
|-
|-
| 57 || [[#SetRegionCode]]
| 57 || [[#SetRegionCode]]
Line 486: Line 682:
| 64 || [[#SetPrimaryAlbumStorage]]
| 64 || [[#SetPrimaryAlbumStorage]]
|-
|-
| 65 || GetUsb30EnableFlag
| 65 || [S1] GetUsb30EnableFlag
|-
|-
| 66 || SetUsb30EnableFlag
| 66 || [S1] SetUsb30EnableFlag
|-
|-
| 67 || [[#GetBatteryLot]]
| 67 || [[#GetBatteryLot]]
Line 506: Line 702:
| 74 || SetWirelessLanEnableFlag
| 74 || SetWirelessLanEnableFlag
|-
|-
| 75 || [[#GetInitialLaunchSettings]]
| 75 || [S1] [[#GetInitialLaunchSettings]]
|-
|-
| 76 || [[#SetInitialLaunchSettings]]
| 76 || [S1] [[#SetInitialLaunchSettings]]
|-
|-
| 77 || [[#GetDeviceNickName]]
| 77 || [[#GetDeviceNickName]]
Line 516: Line 712:
| 79 || [[#GetProductModel]]
| 79 || [[#GetProductModel]]
|-
|-
| 80 || GetLdnChannel
| 80 || [S1] GetLdnChannel
|-
|-
| 81 || SetLdnChannel
| 81 || [S1] SetLdnChannel
|-
|-
| 82 || AcquireTelemetryDirtyFlagEventHandle
| 82 || AcquireTelemetryDirtyFlagEventHandle
Line 550: Line 746:
| 96 || [2.0.0+] SetAutoUpdateEnableFlag
| 96 || [2.0.0+] SetAutoUpdateEnableFlag
|-
|-
| 97 || [2.0.0+] GetNxControllerSettings
| 97 || [S1] [2.0.0+] GetNxControllerSettings
|-
|-
| 98 || [2.0.0+] SetNxControllerSettings
| 98 || [S1] [2.0.0+] SetNxControllerSettings
|-
|-
| 99 || [2.0.0+] GetBatteryPercentageFlag
| 99 || [2.0.0+] GetBatteryPercentageFlag
Line 558: Line 754:
| 100 || [2.0.0+] SetBatteryPercentageFlag
| 100 || [2.0.0+] SetBatteryPercentageFlag
|-
|-
| 101 || [2.0.0+] GetExternalRtcResetFlag
| 101 || [S1] [2.0.0+] GetExternalRtcResetFlag
|-
|-
| 102 || [2.0.0+] SetExternalRtcResetFlag
| 102 || [S1] [2.0.0+] SetExternalRtcResetFlag
|-
|-
| 103 || [3.0.0+] GetUsbFullKeyEnableFlag
| 103 || [3.0.0+] GetUsbFullKeyEnableFlag
Line 578: Line 774:
| 110 || [3.0.0+] SetHeadphoneVolumeWarningCount
| 110 || [3.0.0+] SetHeadphoneVolumeWarningCount
|-
|-
| 111 || [3.0.0+] GetBluetoothAfhEnableFlag
| 111 || [S1] [3.0.0+] GetBluetoothAfhEnableFlag
|-
|-
| 112 || [3.0.0+] SetBluetoothAfhEnableFlag
| 112 || [S1] [3.0.0+] SetBluetoothAfhEnableFlag
|-
|-
| 113 || [3.0.0+] GetBluetoothBoostEnableFlag
| 113 || [S1] [3.0.0+] GetBluetoothBoostEnableFlag
|-
|-
| 114 || [3.0.0+] SetBluetoothBoostEnableFlag
| 114 || [S1] [3.0.0+] SetBluetoothBoostEnableFlag
|-
|-
| 115 || [3.0.0+] GetInRepairProcessEnableFlag
| 115 || [3.0.0+] GetInRepairProcessEnableFlag
Line 590: Line 786:
| 116 || [3.0.0+] SetInRepairProcessEnableFlag
| 116 || [3.0.0+] SetInRepairProcessEnableFlag
|-
|-
| 117 || [3.0.0+] GetHeadphoneVolumeUpdateFlag
| 117 || [S1] [3.0.0+] GetHeadphoneVolumeUpdateFlag
|-
|-
| 118 || [3.0.0+] SetHeadphoneVolumeUpdateFlag
| 118 || [S1] [3.0.0+] SetHeadphoneVolumeUpdateFlag
|-
|-
| 119 || [3.0.0-14.1.2] NeedsToUpdateHeadphoneVolume
| 119 || [3.0.0-14.1.2] NeedsToUpdateHeadphoneVolume
Line 612: Line 808:
| 127 || [4.0.0+] [[#SetAppletLaunchFlags]]
| 127 || [4.0.0+] [[#SetAppletLaunchFlags]]
|-
|-
| 128 || [4.0.0+] GetConsoleSixAxisSensorAccelerationBias
| 128 || [S1] [4.0.0+] GetConsoleSixAxisSensorAccelerationBias
|-
|-
| 129 || [4.0.0+] SetConsoleSixAxisSensorAccelerationBias
| 129 || [S1] [4.0.0+] SetConsoleSixAxisSensorAccelerationBias
|-
|-
| 130 || [4.0.0+] GetConsoleSixAxisSensorAngularVelocityBias
| 130 || [S1] [4.0.0+] GetConsoleSixAxisSensorAngularVelocityBias
|-
|-
| 131 || [4.0.0+] SetConsoleSixAxisSensorAngularVelocityBias
| 131 || [S1] [4.0.0+] SetConsoleSixAxisSensorAngularVelocityBias
|-
|-
| 132 || [4.0.0+] GetConsoleSixAxisSensorAccelerationGain
| 132 || [S1] [4.0.0+] GetConsoleSixAxisSensorAccelerationGain
|-
|-
| 133 || [4.0.0+] SetConsoleSixAxisSensorAccelerationGain
| 133 || [S1] [4.0.0+] SetConsoleSixAxisSensorAccelerationGain
|-
|-
| 134 || [4.0.0+] GetConsoleSixAxisSensorAngularVelocityGain
| 134 || [S1] [4.0.0+] GetConsoleSixAxisSensorAngularVelocityGain
|-
|-
| 135 || [4.0.0+] SetConsoleSixAxisSensorAngularVelocityGain
| 135 || [S1] [4.0.0+] SetConsoleSixAxisSensorAngularVelocityGain
|-
|-
| 136 || [4.0.0+] [[#GetKeyboardLayout]]
| 136 || [4.0.0+] [[#GetKeyboardLayout]]
Line 642: Line 838:
| 142 || [5.0.0+] SetRequiresRunRepairTimeReviser
| 142 || [5.0.0+] SetRequiresRunRepairTimeReviser
|-
|-
| 143 || [5.0.0+] SetBlePairingSettings
| 143 || [S1] [5.0.0+] SetBlePairingSettings
|-
|-
| 144 || [5.0.0+] GetBlePairingSettings
| 144 || [S1] [5.0.0+] GetBlePairingSettings
|-
|-
| 145 || [5.0.0+] GetConsoleSixAxisSensorAngularVelocityTimeBias
| 145 || [S1] [5.0.0+] GetConsoleSixAxisSensorAngularVelocityTimeBias
|-
|-
| 146 || [5.0.0+] SetConsoleSixAxisSensorAngularVelocityTimeBias
| 146 || [S1] [5.0.0+] SetConsoleSixAxisSensorAngularVelocityTimeBias
|-
|-
| 147 || [5.0.0+] GetConsoleSixAxisSensorAngularAcceleration
| 147 || [S1] [5.0.0+] GetConsoleSixAxisSensorAngularAcceleration
|-
|-
| 148 || [5.0.0+] SetConsoleSixAxisSensorAngularAcceleration
| 148 || [S1] [5.0.0+] SetConsoleSixAxisSensorAngularAcceleration
|-
|-
| 149 || [5.0.0+] [[#GetRebootlessSystemUpdateVersion]]
| 149 || [5.0.0+] [[#GetRebootlessSystemUpdateVersion]]
Line 664: Line 860:
| 153 || [6.0.0+] SetUserSystemClockAutomaticCorrectionUpdatedTime
| 153 || [6.0.0+] SetUserSystemClockAutomaticCorrectionUpdatedTime
|-
|-
| 154 || [6.0.0+] GetAccountOnlineStorageSettings
| 154 || [S1] [6.0.0+] GetAccountOnlineStorageSettings
|-
|-
| 155 || [6.0.0+] SetAccountOnlineStorageSettings
| 155 || [S1] [6.0.0+] SetAccountOnlineStorageSettings
|-
|-
| 156 || [6.0.0+] GetPctlReadyFlag
| 156 || [S1] [6.0.0+] GetPctlReadyFlag
|-
|-
| 157 || [6.0.0+] SetPctlReadyFlag
| 157 || [S1] [6.0.0+] SetPctlReadyFlag
|-
|-
| 158 || [8.1.1+] GetAnalogStickUserCalibrationL
| 158 || [S1] [8.1.1+] GetAnalogStickUserCalibrationL
|-
|-
| 159 || [8.1.1+] SetAnalogStickUserCalibrationL
| 159 || [S1] [8.1.1+] SetAnalogStickUserCalibrationL
|-
|-
| 160 || [8.1.1+] GetAnalogStickUserCalibrationR
| 160 || [S1] [8.1.1+] GetAnalogStickUserCalibrationR
|-
|-
| 161 || [8.1.1+] SetAnalogStickUserCalibrationR
| 161 || [S1] [8.1.1+] SetAnalogStickUserCalibrationR
|-
|-
| 162 || [6.0.0+] GetPtmBatteryVersion
| 162 || [6.0.0+] GetPtmBatteryVersion
Line 692: Line 888:
| 167 || [6.0.0+] SetUsb30DeviceEnableFlag
| 167 || [6.0.0+] SetUsb30DeviceEnableFlag
|-
|-
| 168 || [7.0.0+] GetThemeId
| 168 || [S1] [7.0.0+] GetThemeId
|-
|-
| 169 || [7.0.0+] SetThemeId
| 169 || [S1] [7.0.0+] SetThemeId
|-
|-
| 170 || [7.0.0+] [[#GetChineseTraditionalInputMethod]]
| 170 || [7.0.0+] [[#GetChineseTraditionalInputMethod]]
Line 706: Line 902:
| 174 || [8.1.1+] [[#GetHomeMenuScheme]]
| 174 || [8.1.1+] [[#GetHomeMenuScheme]]
|-
|-
| 175 || [7.0.0+] GetThemeSettings
| 175 || [S1] [7.0.0+] GetThemeSettings
|-
|-
| 176 || [7.0.0+] SetThemeSettings
| 176 || [S1] [7.0.0+] SetThemeSettings
|-
|-
| 177 || [7.0.0+] GetThemeKey
| 177 || [S1] [7.0.0+] GetThemeKey
|-
|-
| 178 || [7.0.0+] SetThemeKey
| 178 || [S1] [7.0.0+] SetThemeKey
|-
|-
| 179 || [8.0.0+] GetZoomFlag
| 179 || [8.0.0+] GetZoomFlag
Line 718: Line 914:
| 180 || [8.0.0+] SetZoomFlag
| 180 || [8.0.0+] SetZoomFlag
|-
|-
| 181 || [8.0.0+] [[#GetT]]
| 181 || [S1] [8.0.0+] [[#GetT]]
|-
|-
| 182 || [8.0.0+] [[#SetT]]
| 182 || [S1] [8.0.0+] [[#SetT]]
|-
|-
| 183 || [9.0.0+] [[#GetPlatformRegion]]
| 183 || [9.0.0+] [[#GetPlatformRegion]]
Line 730: Line 926:
| 186 || [9.0.0+] [[#GetMemoryUsageRateFlag]]
| 186 || [9.0.0+] [[#GetMemoryUsageRateFlag]]
|-
|-
| 187 || [9.0.0+] [[#GetTouchScreenMode]]
| 187 || [S1] [9.0.0+] [[#GetTouchScreenMode]]
|-
|-
| 188 || [9.0.0+] [[#SetTouchScreenMode]]
| 188 || [S1] [9.0.0+] [[#SetTouchScreenMode]]
|-
|-
| 189 || [10.0.0+] [[#GetButtonConfigSettingsFull]]
| 189 || [S1] [10.0.0+] [[#GetButtonConfigSettingsFull]]
|-
|-
| 190 || [10.0.0+] [[#SetButtonConfigSettingsFull]]
| 190 || [S1] [10.0.0+] [[#SetButtonConfigSettingsFull]]
|-
|-
| 191 || [10.0.0+] [[#GetButtonConfigSettingsEmbedded]]
| 191 || [S1] [10.0.0+] [[#GetButtonConfigSettingsEmbedded]]
|-
|-
| 192 || [10.0.0+] [[#SetButtonConfigSettingsEmbedded]]
| 192 || [S1] [10.0.0+] [[#SetButtonConfigSettingsEmbedded]]
|-
|-
| 193 || [10.0.0+] [[#GetButtonConfigSettingsLeft]]
| 193 || [S1] [10.0.0+] [[#GetButtonConfigSettingsLeft]]
|-
|-
| 194 || [10.0.0+] [[#SetButtonConfigSettingsLeft]]
| 194 || [S1] [10.0.0+] [[#SetButtonConfigSettingsLeft]]
|-
|-
| 195 || [10.0.0+] [[#GetButtonConfigSettingsRight]]
| 195 || [S1] [10.0.0+] [[#GetButtonConfigSettingsRight]]
|-
|-
| 196 || [10.0.0+] [[#SetButtonConfigSettingsRight]]
| 196 || [S1] [10.0.0+] [[#SetButtonConfigSettingsRight]]
|-
|-
| 197 || [10.0.0+] [[#GetButtonConfigRegisteredSettingsEmbedded]]
| 197 || [S1] [10.0.0+] [[#GetButtonConfigRegisteredSettingsEmbedded]]
|-
|-
| 198 || [10.0.0+] [[#SetButtonConfigRegisteredSettingsEmbedded]]
| 198 || [S1] [10.0.0+] [[#SetButtonConfigRegisteredSettingsEmbedded]]
|-
|-
| 199 || [10.0.0+] [[#GetButtonConfigRegisteredSettings]]
| 199 || [S1] [10.0.0+] [[#GetButtonConfigRegisteredSettings]]
|-
|-
| 200 || [10.0.0+] [[#SetButtonConfigRegisteredSettings]]
| 200 || [S1] [10.0.0+] [[#SetButtonConfigRegisteredSettings]]
|-
|-
| 201 || [10.1.0+] [[#GetFieldTestingFlag]]
| 201 || [10.1.0+] [[#GetFieldTestingFlag]]
Line 766: Line 962:
| 204 || [11.0.0+] SetPanelCrcMode
| 204 || [11.0.0+] SetPanelCrcMode
|-
|-
| 205 || [13.0.0+] GetNxControllerSettingsEx
| 205 || [S1] [13.0.0+] GetNxControllerSettingsEx
|-
|-
| 206 || [13.0.0+] SetNxControllerSettingsEx
| 206 || [S1] [13.0.0+] SetNxControllerSettingsEx
|-
|-
| 207 || [14.0.0+] GetHearingProtectionSafeguardFlag
| 207 || [S1] [14.0.0+] GetHearingProtectionSafeguardFlag
|-
|-
| 208 || [14.0.0+] SetHearingProtectionSafeguardFlag
| 208 || [S1] [14.0.0+] SetHearingProtectionSafeguardFlag
|-
|-
| 209 || [14.0.0+] GetHearingProtectionSafeguardRemainingTime
| 209 || [S1] [14.0.0+] GetHearingProtectionSafeguardRemainingTime
|-
|-
| 210 || [14.0.0+] SetHearingProtectionSafeguardRemainingTime
| 210 || [S1] [14.0.0+] SetHearingProtectionSafeguardRemainingTime
|-
| 211 || [S2] GetWirelessCertificationHtmlFileSize
|-
| 212 || [S2] GetWirelessCertificationHtmlFile
|-
| 213 || [S2] GetWirelessCertificationJpegFileSize
|-
| 214 || [S2] GetWirelessCertificationJpegFile
|-
| 215 || [S2] GetHighContrastFlag
|-
| 216 || [S2] SetHighContrastFlag
|-
| 217 || [S2] GetTextToSpeechFlag
|-
| 218 || [S2] SetTextToSpeechFlag
|-
| 219 || [S2] [[#GetTextMagnificationRatio]]
|-
| 220 || [S2] SetTextMagnificationRatio
|-
|-
| 221 || [17.0.0+] GetForceMonauralOutputFlag
| 221 || [17.0.0+] GetForceMonauralOutputFlag
Line 782: Line 998:
| 222 || [17.0.0+] SetForceMonauralOutputFlag
| 222 || [17.0.0+] SetForceMonauralOutputFlag
|-
|-
| 251 || [18.0.0+] GetAccountIdentificationSettings
| 223 || [S2] GetUsbAudioVolumeSettings
|-
| 224 || [S2] SetUsbAudioVolumeSettings
|-
| 225 || [S2] GetTitleIconKeepFlag
|-
| 226 || [S2] SetTitleIconKeepFlag
|-
| 227 || [S2] GetBoldTextFlag
|-
| 228 || [S2] SetBoldTextFlag
|-
| 229 || [S2] GetSpeechToTextFlag
|-
| 230 || [S2] SetSpeechToTextFlag
|-
| 235 || [S2] GetColorFilterType
|-
| 236 || [S2] SetColorFilterType
|-
| 237 || [S2] GetPrioritizedOutputAudioDeviceSettings
|-
|-
| 252 || [18.0.0+] SetAccountIdentificationSettings
| 238 || [S2] SetPrioritizedOutputAudioDeviceSettings
|-
|-
| 263 || [20.0.0+]  
| 239 || [S2] GetPrioritizedInputAudioDeviceSettings
|-
|-
| 264 || [20.0.0+]  
| 240 || [S2] SetPrioritizedInputAudioDeviceSettings
|-
|-
| 282 || [20.0.0+]  
| 241 || [S2] GetTextToSpeechVoiceTypeForUi
|-
|-
| 283 || [20.0.0+]  
| 242 || [S2] SetTextToSpeechVoiceTypeForUi
|-
|-
| 289 || [20.0.0+]  
| 243 || [S2] GetLcdFlags
|-
|-
| 300 || [20.0.0+]  
| 244 || [S2] SetLcdFlags
|-
|-
| 301 || [20.0.0+]  
| 245 || [S2] GetTvHdrSettings
|-
|-
| 306 || [20.0.0+]  
| 246 || [S2] SetTvHdrSettings
|-
|-
| 307 || [20.0.0+]  
| 247 || [S2] IsColorInversionEnabled
|}
|-
 
| 248 || [S2] SetColorInversionEnabled
Official user-processes gets a new service session handle each time a set:sys cmd is used, with the session being closed afterwards.
|-
 
| 249 || [S2] GetKeyRemapEnableFlagOnQuickSettings
== SetLanguageCode ==
|-
Takes an input [[#LanguageCode]], no output.
| 250 || [S2] SetKeyRemapEnableFlagOnQuickSettings
 
|-
== GetFirmwareVersion ==
| 251 || [18.0.0+] GetAccountIdentificationSettings
Takes a type-0x1A output buffer. User-processes use hard-coded size 0x100.
|-
 
| 252 || [18.0.0+] SetAccountIdentificationSettings
If needed, reads the content of the [[System_Version_Title]] "/file" into state. This is only done once.
|-
 
| 253 || [S2] GetDeviceLockPinCodeLength
Then the above 0x100-byte data is copied to the output buffer.
|-
 
| 254 || [S2] GetDeviceLockPinCode
== GetAccountSettings ==
|-
No input, returns an output [[#AccountSettings]].
| 255 || [S2] SetDeviceLockPinCode
 
|-
== SetAccountSettings ==
| 256 || [S2] GetDeviceLockEnableFlag
Takes an input [[#AccountSettings]], no output.
|-
 
| 257 || [S2] GetDeviceLockStartPenaltyTime
== GetEulaVersions ==
|-
Takes a type-0x6 output buffer containing an array of [[#EulaVersion]], returns an output s32 total_out.
| 258 || [S2] SetDeviceLockStartPenaltyTime
 
|-
== SetEulaVersions ==
| 259 || [S2] GetDeviceLockErrorCount
Takes a type-0x5 input buffer containing an array of [[#EulaVersion]], no output.
|-
 
| 260 || [S2] SetDeviceLockErrorCount
== GetColorSetId ==
|-
No input, returns an output s32.
| 261 || [S2] GetBatteryCareModeEnableFlag
 
|-
This is the current Theme set by System Settings.
| 262 || [S2] SetBatteryCareModeEnableFlag
 
|-
* 0: "Basic White"
| 263 || [20.0.0+] AcquireVphymDirtyFlagEventHandle
* 1: "Basic Black"
|-
 
| 264 || [20.0.0+] GetVphymDirtyFlags
== SetColorSetId ==
|-
Takes an input s32, no output.
| 265 || [S2] GetInitialLaunchSettings
 
|-
== GetNotificationSettings ==
| 266 || [S2] SetInitialLaunchSettings
No input, returns an output [[#NotificationSettings]].
|-
 
| 267 || [S2] GetManufacturingTimeStamp
== SetNotificationSettings ==
|-
Takes an input [[#NotificationSettings]], no output.
| 268 || [S2] SetManufacturingTimeStamp
 
|-
== GetAccountNotificationSettings ==
| 269 || [S2] GetInputNoiseReductionForCommunicationFlag
Takes a type-0x6 output buffer containing an array of [[#AccountNotificationSettings]], returns an output s32 total_out.
|-
 
| 270 || [S2] SetInputNoiseReductionForCommunicationFlag
== SetAccountNotificationSettings ==
|-
Takes a type-0x5 input buffer containing an array of [[#AccountNotificationSettings]], no output.
| 271 || [S2] GetChatTranscriptionSettings
 
|-
== GetSettingsItemValue ==
| 272 || [S2] SetChatTranscriptionSettings
Takes two type-0x19 input buffers and a type-0x6 output buffer. Returns an output u64 for the actual size written to the outbuf.
|-
 
| 273 || [S2] GetBuiltInMicrophoneGain
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).
|-
 
| 274 || [S2] SetBuiltInMicrophoneGain
If loading from main config fails, it will also attempt to load config from various state if the input strings match hard-coded strings.
|-
| 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
|}


== GetTvSettings ==
Official user-processes gets a new service session handle each time a set:sys cmd is used, with the session being closed afterwards.
No input, returns an output [[#TvSettings]].


== SetTvSettings ==
== SetLanguageCode ==
Takes an input [[#TvSettings]], no output.
Takes an input [[#LanguageCode]], no output.


== GetDebugModeFlag ==
== GetFirmwareVersion ==
Returns an output u8.
Takes a type-0x1A output buffer. User-processes use hard-coded size 0x100.


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 was removed with S2.


Returned retval is always 0.
If needed, reads the content of the [[System_Version_Title]] "/file" into state. This is only done once.


== GetPrimaryAlbumStorage ==
Then the above 0x100-byte data is copied to the output buffer.
No input, returns an output s32 [[#PrimaryAlbumStorage]].


== SetPrimaryAlbumStorage ==
== GetAccountSettings ==
Takes an input s32 [[#PrimaryAlbumStorage]], no output.
No input, returns an output [[#AccountSettings]].


== GetBatteryLot ==
== SetAccountSettings ==
No input, returns an output [[#BatteryLot]].
Takes an input [[#AccountSettings]], no output.


== GetSerialNumber ==
== GetEulaVersions ==
Returns the 0x18-byte SerialNumber string.
Takes a type-0x6 output buffer containing an array of [[#EulaVersion]], returns an output s32 total_out.


== GetSleepSettings ==
== SetEulaVersions ==
No input, returns an output [[#SleepSettings]].
Takes a type-0x5 input buffer containing an array of [[#EulaVersion]], no output.


== SetSleepSettings ==
== GetColorSetId ==
Takes an input [[#SleepSettings]], no output.
No input, returns an output s32.


== GetInitialLaunchSettings ==
This is the current Theme set by System Settings.
No input, returns an output [[#InitialLaunchSettings]].


== SetInitialLaunchSettings ==
* 0: "Basic White"
Takes an input [[#InitialLaunchSettings]], no output.
* 1: "Basic Black"


== GetDeviceNickName ==
== SetColorSetId ==
Takes a type-0x16 output buffer containing a [[#DeviceNickName]].
Takes an input s32, no output.


With [10.1.0+] sdknso now uses the set cmd instead of the setsys cmd.
== GetNotificationSettings ==
No input, returns an output [[#NotificationSettings]].


== SetDeviceNickName ==
== SetNotificationSettings ==
Takes a type-0x15 input buffer containing a [[#DeviceNickName]].
Takes an input [[#NotificationSettings]], no output.


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


== GetMiiAuthorId ==
== SetAccountNotificationSettings ==
No input, returns an output "nn::util::Uuid".
Takes a type-0x5 input buffer containing an array of [[#AccountNotificationSettings]], no output.


== GetServiceDiscoveryControlSettings ==
== GetSettingsItemValue ==
Returns an u32 [[#ServiceDiscoveryControlSettings|ServiceDiscoveryControlSettings]].
Takes two type-0x19 input buffers and a type-0x6 output buffer. Returns an output u64 for the actual size written to the outbuf.


== GetErrorReportSharePermission ==
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).
No input, returns an output s32 [[#ErrorReportSharePermission]].


== SetErrorReportSharePermission ==
If loading from main config fails, it will also attempt to load config from various state if the input strings match hard-coded strings.
Takes an input s32 [[#ErrorReportSharePermission]], no output.


== GetAppletLaunchFlags ==
== GetTvSettings ==
No input, returns an u32 bitmask [[#AppletLaunchFlag]].
No input, returns an output [[#TvSettings]].


== SetAppletLaunchFlags ==
== SetTvSettings ==
Takes an input u32 bitmask [[#AppletLaunchFlag]], no output.
Takes an input [[#TvSettings]], no output.


== GetKeyboardLayout ==
== GetDebugModeFlag ==
No input, returns an output s32 [[#KeyboardLayout]].
Returns an output u8.


== SetKeyboardLayout ==
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.
Takes an input s32 [[#KeyboardLayout]], no output.


== GetAllowedSslHosts ==
Returned retval is always 0.
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.


== GetRebootlessSystemUpdateVersion ==
== GetPrimaryAlbumStorage ==
No input, returns an output [[#RebootlessSystemUpdateVersion]].
No input, returns an output s32 [[#PrimaryAlbumStorage]].


== GetQuestFlag ==
== SetPrimaryAlbumStorage ==
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.
Takes an input s32 [[#PrimaryAlbumStorage]], no output.


== GetDataDeletionSettings ==
== GetBatteryLot ==
No input, returns an output [[#DataDeletionSettings]].
No input, returns an output [[#BatteryLot]].


== SetDataDeletionSettings ==
== GetSerialNumber ==
Takes an input [[#DataDeletionSettings]], no output.
Returns the 0x18-byte SerialNumber string.


== GetWirelessCertificationFileSize ==
== GetSleepSettings ==
No input, returns an output u64 size.
No input, returns an output [[#SleepSettings]].


== GetWirelessCertificationFile ==
== SetSleepSettings ==
Takes a type-0x6 output buffer, returns an output u64 size.
Takes an input [[#SleepSettings]], no output.


This gets the [[Flash_Filesystem#PRODINFOF|WirelessCertificationFile]].
== GetInitialLaunchSettings ==
No input, returns an output [[#InitialLaunchSettings]].


== SetRegionCode ==
== SetInitialLaunchSettings ==
Takes an input s32 [[#RegionCode_2|RegionCode]], no output.
Takes an input [[#InitialLaunchSettings]], no output.


== GetChineseTraditionalInputMethod ==
== GetDeviceNickName ==
No input, returns an output s32 [[#ChineseTraditionalInputMethod]].
Takes a type-0x16 output buffer containing a [[#DeviceNickName]].


== SetChineseTraditionalInputMethod ==
With [10.1.0+] sdknso now uses the set cmd instead of the setsys cmd.
Takes an input s32 [[#ChineseTraditionalInputMethod]], no output.


== GetHomeMenuScheme ==
== SetDeviceNickName ==
No input, returns an output 0x14-byte struct "nn::settings::system::HomeMenuScheme".
Takes a type-0x15 input buffer containing a [[#DeviceNickName]].


This struct contains 5 RGBA8 u32s for colors: '''Main''', '''Back''', '''Sub''', '''Bezel''' and '''Extra'''.
== GetProductModel ==
No input, returns an output s32 [[#ProductModel|ProductModel]].


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.
== GetMiiAuthorId ==
No input, returns an output "nn::util::Uuid".


== GetT ==
== GetServiceDiscoveryControlSettings ==
No input, returns an output u8 bool '''IsT'''.
Returns an u32 [[#ServiceDiscoveryControlSettings|ServiceDiscoveryControlSettings]].


[9.0.0+] This is a wrapper for [[#GetPlatformRegion]]: <code>IsT = (PlatformRegion == 2)</code>.
== GetErrorReportSharePermission ==
No input, returns an output s32 [[#ErrorReportSharePermission]].


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


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


== GetPlatformRegion ==
== SetAppletLaunchFlags ==
No input, returns an output s32.
Takes an input u32 bitmask [[#AppletLaunchFlag]], no output.


== SetPlatformRegion ==
== GetKeyboardLayout ==
Takes an input s32, no output.
No input, returns an output s32 [[#KeyboardLayout]].


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


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]].
== GetAllowedSslHosts ==
Takes a type-0x6 output buffer. Returns an output s32 entry count.


== GetMemoryUsageRateFlag ==
== GetRebootlessSystemUpdateVersion ==
No input, returns an output u8 bool.
No input, returns an output [[#RebootlessSystemUpdateVersion]].


== GetTouchScreenMode ==
== GetQuestFlag ==
No input, returns an output s32.
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.


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


== SetTouchScreenMode ==
== SetDataDeletionSettings ==
Takes an input s32, no output.
Takes an input [[#DataDeletionSettings]], no output.


Official sw sets the input to an u8 loaded from an input [[#TouchScreenMode]].
== GetDeviceTimeZoneLocationName ==
No input, returns an output [[Glue_services#LocationName|LocationName]].


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


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


== GetButtonConfigSettingsEmbedded ==
== GetWirelessCertificationFile ==
Takes a type-0x6 output buffer containing an array of [[#ButtonConfigSettings]], returns an output s32.
Takes a type-0x6 output buffer, returns an output u64 size.


== SetButtonConfigSettingsEmbedded ==
This gets the [[Flash_Filesystem#PRODINFOF|WirelessCertificationFile]].
Takes a type-0x5 input buffer containing an array of [[#ButtonConfigSettings]], no output.


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


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


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


== SetButtonConfigSettingsRight ==
== GetHomeMenuScheme ==
Takes a type-0x5 input buffer containing an array of [[#ButtonConfigSettings]], no output.
No input. Returns an output [[#HomeMenuScheme]].


== GetButtonConfigRegisteredSettingsEmbedded ==
The colors are loaded from [[Calibration]], with the set of fields to use selected by [[Calibration#ColorVariation|ColorVariation]].
Takes a type-0x16 output buffer containing a [[#ButtonConfigRegisteredSettings]], no output.


== SetButtonConfigRegisteredSettingsEmbedded ==
== GetT ==
Takes a type-0x15 input buffer containing a [[#ButtonConfigRegisteredSettings]], no output.
No input, returns an output u8 bool '''IsT'''.


== GetButtonConfigRegisteredSettings ==
[9.0.0+] This is a wrapper for [[#GetPlatformRegion]]: <code>IsT = (PlatformRegion == 2)</code>.
Takes a type-0x6 output buffer containing an array of [[#ButtonConfigRegisteredSettings]], returns an output s32.


== SetButtonConfigRegisteredSettings ==
== SetT ==
Takes a type-0x5 input buffer containing an array of [[#ButtonConfigRegisteredSettings]], no output.
Takes an input u8 bool '''IsT''', no output.


== GetFieldTestingFlag ==
[9.0.0+] This is a wrapper for [[#SetPlatformRegion]]: <code>PlatformRegion = 1 + (IsT & 1)</code>.
No input, returns an output bool.
 
== GetPlatformRegion ==
No input, returns an output s32.
 
== SetPlatformRegion ==
Takes an input s32, no output.
 
== GetHomeMenuSchemeModel ==
No input. Returns an output u32.
 
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]].
 
== GetMemoryUsageRateFlag ==
No input, returns an output u8 bool.


== SetFieldTestingFlag ==
== GetTouchScreenMode ==
Takes an input bool, no output.
No input, returns an output s32.


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


{| class="wikitable" border="1"
== SetTouchScreenMode ==
|-
Takes an input s32, no output.
! Value
 
! Description
Official sw sets the input to an u8 loaded from an input [[#TouchScreenMode]].
|-
 
| 0 || Japanese
== GetButtonConfigSettingsFull ==
|-
Takes a type-0x6 output buffer containing an array of [[#ButtonConfigSettings]], returns an output s32.
| 1 || AmericanEnglish
 
|-
== SetButtonConfigSettingsFull ==
| 2 || French
Takes a type-0x5 input buffer containing an array of [[#ButtonConfigSettings]], no output.
|-
 
| 3 || German
== GetButtonConfigSettingsEmbedded ==
|-
Takes a type-0x6 output buffer containing an array of [[#ButtonConfigSettings]], returns an output s32.
| 4 || Italian
 
|-
== SetButtonConfigSettingsEmbedded ==
| 5 || Spanish
Takes a type-0x5 input buffer containing an array of [[#ButtonConfigSettings]], no output.
|-
 
| 6 || Chinese
== GetButtonConfigSettingsLeft ==
|-
Takes a type-0x6 output buffer containing an array of [[#ButtonConfigSettings]], returns an output s32.
| 7 || Korean
 
|-
== SetButtonConfigSettingsLeft ==
| 8 || Dutch
Takes a type-0x5 input buffer containing an array of [[#ButtonConfigSettings]], no output.
|-
| 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 =
== GetButtonConfigSettingsRight ==
This is "nn::settings::LanguageCode". This is an u64, which is a NUL-terminated string.
Takes a type-0x6 output buffer containing an array of [[#ButtonConfigSettings]], returns an output s32.


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


= AccelerometerOffset =
= LanguageCode =
This is "nn::settings::factory::AccelerometerOffset".
This is "nn::settings::LanguageCode". This is an u64, which is a NUL-terminated string.


{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Offset || Size || Description
! Value || [[#Language]]
|-
|-
| 0x0 || 0x2 || X
| "ja" || Japanese
|-
|-
| 0x2 || 0x2 || Y
| "en-US" || AmericanEnglish
|-
|-
| 0x4 || 0x2 || Z
| "fr" || French
|}
 
= AccelerometerScale =
This is "nn::settings::factory::AccelerometerScale".
 
{| class="wikitable" border="1"
|-
|-
! Offset || Size || Description
| "de" || German
|-
|-
| 0x0 || 0x2 || X
| "it" || Italian
|-
|-
| 0x2 || 0x2 || Y
| "es" || Spanish
|-
|-
| 0x4 || 0x2 || Z
| "zh-CN" || Chinese
|}
|-
 
| "ko" || Korean
= AmiiboEcdsaCertificate =
|-
This is "nn::settings::factory::AmiiboEcdsaCertificate". This is a 0x70-byte struct.
| "nl" || Dutch
 
|-
= AmiiboEcqvBlsCertificate =
| "pt" || Portuguese
This is "nn::settings::factory::AmiiboEcqvBlsCertificate". This is a 0x20-byte struct.
|-
 
| "ru" || Russian
= 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"
|-
|-
! Offset || Size || Description
| "zh-TW" || Taiwanese
|-
|-
| 0x0 || 0x40 || Key
| "en-GB" || BritishEnglish
|-
|-
| 0x40 || 0x4 || KeyGeneration
| "fr-CA" || CanadianFrench
|}
|-
 
| "es-419" || LatinAmericanSpanish
= AmiiboEcqvBlsRootCertificate =
|-
This is "nn::settings::factory::AmiiboEcqvBlsRootCertificate". This is a 0x90-byte struct.
| "zh-Hans" || [4.0.0+] SimplifiedChinese
|-
| "zh-Hant" || [4.0.0+] TraditionalChinese
|-
| "pt-BR" || [10.1.0+] BrazilianPortuguese
|}


= AmiiboEcqvCertificate =
= AccelerometerOffset =
This is "nn::settings::factory::AmiiboEcqvCertificate". This is a 0x14-byte struct.
This is "nn::settings::factory::AccelerometerOffset".


= AmiiboKey =
This is "nn::settings::factory::AmiiboKey". This is a 0x50-byte struct.
If [[Calibration#CAL0|Calibration Version]] >= 9, this is now:
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Offset || Size || Description
! Offset || Size || Description
|-
|-
| 0x0 || 0x50 || Key
| 0x0 || 0x2 || X
|-
| 0x2 || 0x2 || Y
|-
|-
| 0x50 || 0x4 || KeyGeneration
| 0x4 || 0x2 || Z
|}
|}


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


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


= BatteryLot =
= AmiiboEcdsaCertificate =
This is "nn::settings::BatteryLot". This is a 0x18-byte struct.
This is "nn::settings::factory::AmiiboEcdsaCertificate". This is a 0x70-byte struct.


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


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


Usually, this is a string with the following format:
If [[Calibration#CAL0|Calibration Version]] >= 9, this is now:
  {EventType}_{ProductModelType}_{MajorVersion}_{MinorVersion}_{MicroVersion}
 
== EventType ==
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Value
! Offset || Size || Description
! Description
|-
|-
| "FP" || Functional prototype
| 0x0 || 0x40 || Key
|-
|-
| "EP" || Engineering prototype
| 0x40 || 0x4 || KeyGeneration
|}
 
= AmiiboEcqvBlsRootCertificate =
This is "nn::settings::factory::AmiiboEcqvBlsRootCertificate". This is a 0x90-byte struct.
 
= AmiiboEcqvCertificate =
This is "nn::settings::factory::AmiiboEcqvCertificate". This is a 0x14-byte struct.
 
= AmiiboKey =
This is "nn::settings::factory::AmiiboKey". This is a 0x50-byte struct.
 
If [[Calibration#CAL0|Calibration Version]] >= 9, this is now:
{| class="wikitable" border="1"
|-
|-
| "DP" || Design prototype
! Offset || Size || Description
|-
|-
| "DPRD" || Design prototype for R&D
| 0x0 || 0x50 || Key
|-
|-
| "HOAG" || Hoag prototype
| 0x50 || 0x4 || KeyGeneration
|-
|}
| "COPPER" || Copper prototype
 
|-
= AnalogStickFactoryCalibration =
| "EDEV" || Extcon development kit for Icosa and Iowa
This is "nn::settings::factory::AnalogStickFactoryCalibration". Same as [[Calibration#AnalogStickFactoryCalibration|AnalogStickFactoryCalibration]].
 
= AnalogStickModelParameter =
This is "nn::settings::factory::AnalogStickModelParameter". Same as [[Calibration#AnalogStickModelParameter|AnalogStickModelParameter]].
 
= BatteryLot =
This is "nn::settings::BatteryLot". This is a 0x18-byte struct.
 
= BdAddress =
This is "nn::settings::factory::BdAddress". This is a 0x6-byte struct.
 
= ConfigurationId1 =
This is "nn::settings::factory::ConfigurationId1". This is a 0x1E-byte struct.
 
Usually, this is a string with the following format:
  {EventType}_{ProductModelType}_{MajorVersion}_{MinorVersion}_{MicroVersion}
 
== EventType ==
{| class="wikitable" border="1"
|-
|-
| "SDEV" || SPI development kit for Icosa and Iowa
! Value
! Description
|-
|-
| "MEDEV" || Mariko EDEV (deprecated)
| "FP" || Functional prototype
|-
|-
| "MSDEV" || Mariko SDEV (deprecated)
| "EP" || Engineering prototype
|-
|-
| "HDEV" || Development kit for Hoag
| "DP" || Design prototype
|-
|-
| "ADEV" || Development kit for Aula
| "DPRD" || Design prototype for R&D
|-
|-
| "MP" || Mass production (retail Icosa)
| "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)
| "MNX" || Mariko NX (retail Iowa)
|-
| "HNX" || Hoag NX (retail Hoag)
|-
|-
| "ANX" || Aula NX (retail Aula)
| "ANX" || Aula NX (retail Aula)
Line 1,631: Line 2,036:
| 3 || GrayScale
| 3 || GrayScale
|}
|}
= TvUnderscan =
This is s32. It defines the percentage point reduction from a 100% baseline.


= HandheldSleepPlan =
= HandheldSleepPlan =
Line 1,875: Line 2,283:
| 0x10 || 0x4 || [[#CmuMode|CmuMode]]
| 0x10 || 0x4 || [[#CmuMode|CmuMode]]
|-
|-
| 0x14 || 0x4 || TvUnderscan
| 0x14 || 0x4 || [[#TvUnderscan|TvUnderscan]]
|-
|-
| 0x18 || 0x4 || TvGamma
| 0x18 || 0x4 || TvGamma
Line 2,064: Line 2,472:
|-
|-
| 2 ||  
| 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
|}
|}


Line 2,117: Line 2,543:
| 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
|-
| 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 || ([[#ProductModelName|ProductModelName]] BEE)
|-
| 8 || [22.5.0+] ([[#ProductModelName|ProductModelName]] OSM)
|-
| 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]]
|-
|-
| 0x48 || 0x80 || Descriptor
| "HAC" || 1
|-
|-
| 0xC8 || 0x1 || KeyType
| "HAD" || 3
|-
|-
| 0xC9 || 0x1 || DeviceType
| "HDH" || 4
|-
|-
| 0xCA || 0x2 || BrrSize
| "HEG" || 6
|-
|-
| 0xCC || 0x9 || Brr
| "BEE" || 7
|-
|-
| 0xD5 || 0x1 || [13.0.0+] AudioSourceVolume
| "OSM" || [22.5.0+] 8
|-
| 0xD6 || 0xF9 || [13.0.0+] DeviceName
|-
| 0x1CF || 0x1 || [15.0.0+] AudioSinkVolume
|-
| 0x1D0 || 0x4 || [14.0.0+] AudioFlags
|-
| 0x1D4 || 0x2C || 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]].