Settings services: Difference between revisions

No edit summary
No edit summary
 
(64 intermediate revisions by 5 users not shown)
Line 4: Line 4:
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Cmd || Name || Notes
! Cmd || Name
|-
| 0 || [[#GetLanguageCode]]
|-
| 1 || [[#GetAvailableLanguageCodes]]
|-
|-
| 0 || GetLanguageCode || No input, returns an output [[#LanguageCode]]. This is the current system language.
| 2 || [4.0.0+] [[#MakeLanguageCode]]
|-
|-
| 1 || GetAvailableLanguageCodes || Takes a type-0xA buffer containing the [[#LanguageCode]] output array, returns an output s32.
| 3 || [[#GetAvailableLanguageCodeCount]]
|-
|-
| 2 || [4.0.0+] MakeLanguageCode || Takes an input [[#Language]], returns an output [[#LanguageCode]].
| 4 || [[#GetRegionCode]]
|-
|-
| 3 || GetAvailableLanguageCodeCount || No input, returns an output s32.
| 5 || [4.0.0+] [[#GetAvailableLanguageCodes2]]
|-
|-
| 4 || GetRegionCode || No input, returns a [[#RegionCode]].
| 6 || [4.0.0+] [[#GetAvailableLanguageCodeCount2]]
|-
|-
| 5 || [4.0.0+] GetAvailableLanguageCodes2 || Takes a type-0x6 buffer containing the [[#LanguageCode]] output array, returns an output s32.
| 7 || [4.0.0+] [[#GetKeyCodeMap]]
|-
|-
| 6 || [4.0.0+] GetAvailableLanguageCodeCount2 || No input, returns an output s32.
| 8 || [5.0.0+] [[#GetQuestFlag]]
|-
|-
| 7 || [4.0.0+] [[#GetKeyCodeMap]] ||
| 9 || [6.0.0+] [[#GetKeyCodeMap2]]
|-
|-
| 8 || [5.0.0+] GetQuestFlag || Identical to "set:sys" [[#set:sys|GetQuestFlag]].
| 10 || [9.0.0+] [[#GetFirmwareVersionForDebug]]
|-
|-
| 9 || [6.0.0+] GetKeyCodeMap2 ||
| 11 || [10.1.0+] [[#GetDeviceNickName]]
|-
|-
| 10 || [9.0.0+] [[#GetFirmwareVersionForDebug]] ||
| 12 || [18.0.0+] GetKeyCodeMapByPort
|}
|}


Line 35: Line 39:
* [4.0.0+] When the input [[#Language]] is larger than the cached total_entries from the above command output, or [[#Language]] is negative, command MakeLanguageCode is used instead of the array.
* [4.0.0+] When the input [[#Language]] is larger than the cached total_entries from the above command output, or [[#Language]] is negative, command MakeLanguageCode is used instead of the array.


== GetKeyCodeMap ==
== GetLanguageCode ==
Takes a type-0x16 output buffer containing KeyCodeMap, official sw uses fixed size 0x1000. This is probably related to HID keyboard.
No input, returns an output [[#LanguageCode]]. This is the current system language.
 
== GetAvailableLanguageCodes ==
Takes a type-0xA buffer containing the [[#LanguageCode]] output array, returns an output s32.
 
== MakeLanguageCode ==
Takes an input [[#Language]], returns an output [[#LanguageCode]].


== GetFirmwareVersionForDebug ==
== GetAvailableLanguageCodeCount ==
Takes a type-0x16 output buffer containing a 0x80-byte "nn::oe::FirmwareVersionForDebug".
No input, returns an output s32.


This uses [[#GetDebugModeFlag]] internally, if the output flag is 0 an error is thrown.
== GetRegionCode ==
No input, returns a [[#RegionCode_2|RegionCode]].


This runs the same code as GetFirmwareVersion2, with the last 0x80-bytes of the [[System_Version_Title|output]] being copied to the output buffer.
== GetAvailableLanguageCodes2 ==
Takes a type-0x6 buffer containing the [[#LanguageCode]] output array, returns an output s32.


== Language ==
== GetAvailableLanguageCodeCount2 ==
"nn::settings::Language" (s32) is basically array indices in the output array from GetAvailableLanguageCodes.
No input, returns an output s32.


== LanguageCode ==
== GetKeyCodeMap ==
This is "nn::settings::LanguageCode".
Takes a type-0x16 output buffer containing KeyCodeMap, official sw uses fixed size 0x1000. This is related to the USB HID keyboard.


This is an u64, which is a NUL-terminated string.
The returned buffer consists of a 0x20-byte header followed by an array of key mapping structures.


{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Array-index / [[#Language]] || [[#LanguageCode]] || Icon [[NCA_Content_FS#FS-type3|language]] filename || Name
! Offset || Size || Description
|-
|-
| 0 || ja || "Japanese" || Japanese
| 0x0 || 0x4 || Magic number? (0x01000001)
|-
|-
| 1 || en-US || "AmericanEnglish" || EnglishUs
| 0x4 || 0x4 || Entry count per key (3 for US English, 4 for German as it includes AltGr mappings)
|-
|-
| 2 || fr || "French" || French
| 0x8 || 0x4 || Map count
|-
|-
| 3 || de || "German" || German
| 0xC || 0x4 || Layout ID (e.g. 3 = German QWERTZ)
|-
|-
| 4 || it || "Italian" || Italian
| 0x10 || 0x10 || Reserved
|-
|-
| 5 || es || "Spanish" || Spanish
| 0x20 || 0x8 * MapCount || Array of <code>KeyMapEntry</code> structures. Indexed by the standard USB HID Usage ID (Keyboard/Keypad page 0x07).
|-
|-
| 6 || zh-CN || "Chinese" || Chinese
| ... || ... || 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"
|-
|-
| 7 || ko || "Korean" || Korean
! Offset || Size || Description
|-
|-
| 8 || nl || "Dutch" || Dutch
| 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).
|-
|-
| 9 || pt || "Portuguese" || Portuguese
| 0x2 || 0x2 || Flags: Bitmask for character behavior and modifier rules.
|-
|-
| 10 || ru || "Russian" || Russian
| 0x4 || 0x2 || Shift char: UTF-16 code point emitted when Shift is held.
|-
|-
| 11 || zh-TW || "Taiwanese" || Taiwanese
| 0x6 || 0x2 || AltGr char: UTF-16 code point emitted when AltGr is held (only included if the 'entry count per key' = 4)
|-
| 12 || en-GB || "BritishEnglish" || EnglishUk
|-
| 13 || fr-CA || "CanadianFrench" || FrenchCa
|-
| 14 || es-419 || "LatinAmericanSpanish" || SpanishLatin
|-
| [4.0.0+] 15 || zh-Hans || "SimplifiedChinese" || ChineseSimplified
|-
| [4.0.0+] 16 || zh-Hant || "TraditionalChinese" || ChineseTraditional
|}
|}


== RegionCode ==
The Flags field changes how state changes are handled (like Caps Lock or NumLock) for that specific code point:
A region code is a signed 32-bit value representing a particular region. Currently the available regions defined by the system are as follows:
* 0x1001: Standard character. Uses standard Shift and Caps Lock rules.
* 0x1000: Static/dead character (e.g., Space).
* 0x20FF: Keypad modifier. State influenced by NumLock.


{| class="wikitable" border="1"
== GetFirmwareVersionForDebug ==
|-
Takes a type-0x16 output buffer containing a 0x80-byte "nn::oe::FirmwareVersionForDebug".
! Value || Region
 
|-
This uses [[#GetDebugModeFlag]] internally, if the output flag is 0 an error is thrown.
| 0 || Japan
 
|-
This runs the same code as GetFirmwareVersion2, with the last 0x80-bytes of the [[System_Version_Title|output]] being copied to the output buffer.
| 1 || USA
|-
| 2 || Europe
|-
| 3 || Australia
|-
| 4 || China
|-
| 5 || Korea
|-
| 6 || Taiwan
|-
| Any other value || Considered an unknown region
|-
|}


= set:fd =
= set:fd =
This is "nn::settings::IFirmwareDebugSettingsServer".
This is "nn::settings::IFirmwareDebugSettingsServer".


[4.0.0+] Only exposed if in [[SPL_services#IsDebugMode|debug mode]].
[4.0.0+] Only exposed if in [[SPL_services#IsDevelopment|development mode]].


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 143: Line 138:
|-
|-
| 23 || [9.0.0+] SetMemoryUsageRateFlag
| 23 || [9.0.0+] SetMemoryUsageRateFlag
|-
| 24 || [20.0.0+] CommitSettings
|-
| 27 || [21.0.0+] SetHttpAuthConfigs
|}
|}


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


== CmuMode ==
Official user-processes gets a new service session handle each time a set:sys cmd is used, with the session being closed afterwards.
{| class="wikitable" border="1"
 
|-
== SetLanguageCode ==
!  Value
Takes an input [[#LanguageCode]], no output.
!  Description
 
|-
== GetFirmwareVersion ==
| 0 || None
Takes a type-0x1A output buffer. User-processes use hard-coded size 0x100.
|-
| 1 || ColorInvert
|-
| 2 || HighContrast
|-
| 3 || GrayScale
|}


== HandheldSleepPlan ==
This was removed with S2.
{| class="wikitable" border="1"
|-
!  Value
!  Description
|-
| 0 || 1Min
|-
| 1 || 3Min
|-
| 2 || 5Min
|-
| 3 || 10Min
|-
| 4 || 30Min
|-
| 5 || Never
|}


== ConsoleSleepPlan ==
If needed, reads the content of the [[System_Version_Title]] "/file" into state. This is only done once.
{| class="wikitable" border="1"
 
|-
Then the above 0x100-byte data is copied to the output buffer.
!  Value
 
!  Description
== GetAccountSettings ==
|-
No input, returns an output [[#AccountSettings]].
| 0 || 1Hour
|-
| 1 || 2Hour
|-
| 2 || 3Hour
|-
| 3 || 6Hour
|-
| 4 || 12Hour
|-
| 5 || Never
|}


== EulaVersion ==
== SetAccountSettings ==
This is "nn::settings::system::EulaVersion".
Takes an input [[#AccountSettings]], no output.


{| class="wikitable" border="1"
== GetEulaVersions ==
Takes a type-0x6 output buffer containing an array of [[#EulaVersion]], returns an output s32 total_out.
 
== SetEulaVersions ==
Takes a type-0x5 input buffer containing an array of [[#EulaVersion]], no output.
 
== GetColorSetId ==
No input, returns an output s32.
 
This is the current Theme set by System Settings.
 
* 0: "Basic White"
* 1: "Basic Black"
 
== SetColorSetId ==
Takes an input s32, no output.
 
== GetNotificationSettings ==
No input, returns an output [[#NotificationSettings]].
 
== SetNotificationSettings ==
Takes an input [[#NotificationSettings]], no output.
 
== GetAccountNotificationSettings ==
Takes a type-0x6 output buffer containing an array of [[#AccountNotificationSettings]], returns an output s32 total_out.
 
== SetAccountNotificationSettings ==
Takes a type-0x5 input buffer containing an array of [[#AccountNotificationSettings]], no output.
 
== GetSettingsItemValue ==
Takes two type-0x19 input buffers and a type-0x6 output buffer. Returns an output u64 for the actual size written to the outbuf.
 
The outbuf_size is compared with the config_size. When config_size is larger than outbuf_size, outbuf_size is used for the memcpy, otherwise config_size is used. Afterwards the size used for the memcpy is written to output(see above).
 
If loading from main config fails, it will also attempt to load config from various state if the input strings match hard-coded strings.
 
== GetTvSettings ==
No input, returns an output [[#TvSettings]].
 
== SetTvSettings ==
Takes an input [[#TvSettings]], no output.
 
== GetDebugModeFlag ==
Returns an output u8.
 
Loads the 1-byte config for <"settings_debug", "is_debug_mode_enabled">. If that fails, value 0x1 is written to output. This uses the same func as ReadSetting internally.
 
Returned retval is always 0.
 
== GetPrimaryAlbumStorage ==
No input, returns an output s32 [[#PrimaryAlbumStorage]].
 
== SetPrimaryAlbumStorage ==
Takes an input s32 [[#PrimaryAlbumStorage]], no output.
 
== GetBatteryLot ==
No input, returns an output [[#BatteryLot]].
 
== GetSerialNumber ==
Returns the 0x18-byte SerialNumber string.
 
== GetSleepSettings ==
No input, returns an output [[#SleepSettings]].
 
== SetSleepSettings ==
Takes an input [[#SleepSettings]], no output.
 
== GetInitialLaunchSettings ==
No input, returns an output [[#InitialLaunchSettings]].
 
== SetInitialLaunchSettings ==
Takes an input [[#InitialLaunchSettings]], no output.
 
== GetDeviceNickName ==
Takes a type-0x16 output buffer containing a [[#DeviceNickName]].
 
With [10.1.0+] sdknso now uses the set cmd instead of the setsys cmd.
 
== SetDeviceNickName ==
Takes a type-0x15 input buffer containing a [[#DeviceNickName]].
 
== GetProductModel ==
No input, returns an output s32 [[#ProductModel|ProductModel]].
 
== GetMiiAuthorId ==
No input, returns an output "nn::util::Uuid".
 
== GetServiceDiscoveryControlSettings ==
Returns an u32 [[#ServiceDiscoveryControlSettings|ServiceDiscoveryControlSettings]].
 
== GetErrorReportSharePermission ==
No input, returns an output s32 [[#ErrorReportSharePermission]].
 
== SetErrorReportSharePermission ==
Takes an input s32 [[#ErrorReportSharePermission]], no output.
 
== GetAppletLaunchFlags ==
No input, returns an u32 bitmask [[#AppletLaunchFlag]].
 
== SetAppletLaunchFlags ==
Takes an input u32 bitmask [[#AppletLaunchFlag]], no output.
 
== GetKeyboardLayout ==
No input, returns an output s32 [[#KeyboardLayout]].
 
== SetKeyboardLayout ==
Takes an input s32 [[#KeyboardLayout]], no output.
 
== GetAllowedSslHosts ==
Takes a type-0x6 output buffer. Returns an output s32 entry count.
 
== GetRebootlessSystemUpdateVersion ==
No input, returns an output [[#RebootlessSystemUpdateVersion]].
 
== 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.
 
== GetDataDeletionSettings ==
No input, returns an output [[#DataDeletionSettings]].
 
== SetDataDeletionSettings ==
Takes an input [[#DataDeletionSettings]], no output.
 
== GetWirelessCertificationFileSize ==
No input, returns an output u64 size.
 
== GetWirelessCertificationFile ==
Takes a type-0x6 output buffer, returns an output u64 size.
 
This gets the [[Flash_Filesystem#PRODINFOF|WirelessCertificationFile]].
 
== SetRegionCode ==
Takes an input s32 [[#RegionCode_2|RegionCode]], no output.
 
== GetChineseTraditionalInputMethod ==
No input, returns an output s32 [[#ChineseTraditionalInputMethod]].
 
== SetChineseTraditionalInputMethod ==
Takes an input s32 [[#ChineseTraditionalInputMethod]], no output.
 
== GetHomeMenuScheme ==
No input. Returns an output [[#HomeMenuScheme]].
 
The colors are loaded from [[Calibration]], with the set of fields to use selected by [[Calibration#ColorVariation|ColorVariation]].
 
== GetT ==
No input, returns an output u8 bool '''IsT'''.
 
[9.0.0+] This is a wrapper for [[#GetPlatformRegion]]: <code>IsT = (PlatformRegion == 2)</code>.
 
== SetT ==
Takes an input u8 bool '''IsT''', no output.
 
[9.0.0+] This is a wrapper for [[#SetPlatformRegion]]: <code>PlatformRegion = 1 + (IsT & 1)</code>.
 
== 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.
 
== GetTouchScreenMode ==
No input, returns an output s32.
 
Official sw loads the output as an u8 and copies it to an output [[#TouchScreenMode]].
 
== SetTouchScreenMode ==
Takes an input s32, no output.
 
Official sw sets the input to an u8 loaded from an input [[#TouchScreenMode]].
 
== GetButtonConfigSettingsFull ==
Takes a type-0x6 output buffer containing an array of [[#ButtonConfigSettings]], returns an output s32.
 
== SetButtonConfigSettingsFull ==
Takes a type-0x5 input buffer containing an array of [[#ButtonConfigSettings]], no output.
 
== GetButtonConfigSettingsEmbedded ==
Takes a type-0x6 output buffer containing an array of [[#ButtonConfigSettings]], returns an output s32.
 
== SetButtonConfigSettingsEmbedded ==
Takes a type-0x5 input buffer containing an array of [[#ButtonConfigSettings]], no output.
 
== GetButtonConfigSettingsLeft ==
Takes a type-0x6 output buffer containing an array of [[#ButtonConfigSettings]], returns an output s32.
 
== SetButtonConfigSettingsLeft ==
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.
 
== SetButtonConfigSettingsRight ==
Takes a type-0x5 input buffer containing an array of [[#ButtonConfigSettings]], no output.
 
== GetButtonConfigRegisteredSettingsEmbedded ==
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"
|-
! Value
! Description
|-
| 0 || Japanese
|-
| 1 || AmericanEnglish
|-
| 2 || French
|-
| 3 || German
|-
| 4 || Italian
|-
| 5 || Spanish
|-
| 6 || Chinese
|-
| 7 || Korean
|-
| 8 || Dutch
|-
| 9 || Portuguese
|-
|-
! Offset || Size || Description
| 10 || Russian
|-
|-
| 0x0 || 0x4 || Version
| 11 || Taiwanese
|-
|-
| 0x4 || 0x4 || RegionCode
| 12 || BritishEnglish
|-
|-
| 0x8 || 0x4 || [[#SteadyClockSourceId|SteadyClockSourceId]]
| 13 || CanadianFrench
|-
|-
| 0xC || 0x4 || Reserved
| 14 || LatinAmericanSpanish
|-
|-
| 0x10 || 0x8 || [[Glue_services#PosixTime|NetworkClockTimePoint]]
| 15 || [4.0.0+] SimplifiedChinese
|-
|-
| 0x18 || 0x18 || [[Glue_services#SteadyClockTimePoint|SteadyClockTimePoint]]
| 16 || [4.0.0+] TraditionalChinese
|}
|-
 
| 17 || [10.1.0+] BrazilianPortuguese
== NotificationTime ==
|}
{| class="wikitable" border="1"
 
|-
= LanguageCode =
! Offset || Size || Description
This is "nn::settings::LanguageCode". This is an u64, which is a NUL-terminated string.
|-
 
| 0x0 || 0x4 || Hour
{| class="wikitable" border="1"
|-
|-
| 0x4 || 0x4 || Minute
! Value || [[#Language]]
|}
|-
 
| "ja" || Japanese
== NotificationFlag ==
|-
This is "nn::settings::system::NotificationFlag".
| "en-US" || AmericanEnglish
|-
| "fr" || French
|-
| "de" || German
|-
| "it" || Italian
|-
| "es" || Spanish
|-
| "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 =
This is "nn::settings::factory::AccelerometerOffset".
 
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
| 0x0 || 0x2 || X
|-
| 0x2 || 0x2 || Y
|-
| 0x4 || 0x2 || Z
|}
 
= AccelerometerScale =
This is "nn::settings::factory::AccelerometerScale".
 
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
| 0x0 || 0x2 || X
|-
| 0x2 || 0x2 || Y
|-
| 0x4 || 0x2 || Z
|}
 
= AmiiboEcdsaCertificate =
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"
|-
! Offset || Size || Description
|-
| 0x0 || 0x40 || Key
|-
| 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"
|-
! Offset || Size || Description
|-
| 0x0 || 0x50 || Key
|-
| 0x50 || 0x4 || KeyGeneration
|}
 
= AnalogStickFactoryCalibration =
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"
|-
! Value
! 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)
|-
| "HNX" || Hoag NX (retail Hoag)
|-
| "ANX" || Aula NX (retail Aula)
|}
 
== ProductModelType ==
{| class="wikitable" border="1"
|-
! Value
! Description
|-
| "00" || Icosa
|-
| "01" || Iowa (previously Copper)
|-
| "02" || Hoag
|-
| "03" || Calcio
|-
| "04" || Aula
|}
 
= ConsoleSixAxisSensorHorizontalOffset =
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"
|-
! Offset || Size || Description
|-
| 0x0 || 0x54 || Key
|-
| 0x54 || 0x4 || KeyGeneration
|}
 
= GameCardCertificate =
This is "nn::settings::factory::GameCardCertificate". This is a 0x400-byte struct.
 
= GameCardKey =
This is "nn::settings::factory::GameCardKey". This is a 0x110-byte struct or a 0x130-byte struct in the extended version.
 
If [[Calibration#CAL0|Calibration Version]] >= 9, this is now:
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
| 0x0 || 0x130 || Key
|-
| 0x130 || 0x4 || KeyGeneration
|}
 
= GyroscopeOffset =
This is "nn::settings::factory::GyroscopeOffset".
 
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
| 0x0 || 0x2 || X
|-
| 0x2 || 0x2 || Y
|-
| 0x4 || 0x2 || Z
|}
 
= GyroscopeScale =
This is "nn::settings::factory::GyroscopeScale".
 
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
| 0x0 || 0x2 || X
|-
| 0x2 || 0x2 || Y
|-
| 0x4 || 0x2 || Z
|}
 
= MacAddress =
This is "nn::settings::factory::MacAddress". This is a 0x6-byte struct.
 
= Rsa2048DeviceCertificate =
This is "nn::settings::factory::Rsa2048DeviceCertificate". This is a 0x240-byte struct.
 
= Rsa2048DeviceKey =
This is "nn::settings::factory::Rsa2048DeviceKey". This is a 0x220-byte struct or a 0x240-byte struct in the extended version.
 
If [[Calibration#CAL0|Calibration Version]] >= 9, this is now:
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
| 0x0 || 0x240 || Key
|-
| 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"
|-
! Offset || Size || Description
|-
| 0x0 || 0x4 || Size
|-
| 0x4 || Variable || Data
|}
 
= SslKey =
This is "nn::settings::factory::SslKey". This is a 0x110-byte struct or a 0x130-byte struct in the extended version.
 
If [[Calibration#CAL0|Calibration Version]] >= 9, this is now:
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
| 0x0 || 0x130 || Key
|-
| 0x130 || 0x4 || KeyGeneration
|}
 
= RegionCode =
This is "nn::settings::factory::RegionCode".
 
{| class="wikitable" border="1"
|-
! Value
! Description
|-
| 0 || Japan
|-
| 1 || Usa
|-
| 2 || Europe
|-
| 3 || Australia
|-
| 4 || China
|-
| 5 || Korea
|-
| 6 || Taiwan
|}
 
= AudioOutputMode =
This is "nn::settings::system::AudioOutputMode".
 
{| class="wikitable" border="1"
|-
! Value
! Description
|-
| 0 || 1ch
|-
| 1 || 2ch
|-
| 2 || 5_1ch
|-
| 3 || 7_1ch
|}
 
= AudioOutputModeTarget =
This is "nn::settings::system::AudioOutputModeTarget".
 
{| class="wikitable" border="1"
|-
! Value
! Description
|-
| 0 || Hdmi
|-
| 1 || Speaker
|-
| 2 || Headphone
|}
 
= AudioVolumeTarget =
This is "nn::settings::system::AudioVolumeTarget".
 
{| class="wikitable" border="1"
|-
! Value
! Description
|-
| 0 || Speaker
|-
| 1 || Headphone
|}
 
= DeviceNickName =
This is "nn::settings::system::DeviceNickName". This is a 0x80-byte struct.
 
= Edid =
This is "nn::settings::system::Edid".
 
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
| 0x0 || 0x80 || Data0
|-
| 0x80 || 0x80 || Data1
|-
| 0x100 || 0x80 || [13.0.0+] Data2
|-
| 0x180 || 0x80 || [13.0.0+] Data3
|}
 
= RegionCode =
This is "nn::settings::system::RegionCode".
 
{| class="wikitable" border="1"
|-
! Value
! Description
|-
| 0 || Japan
|-
| 1 || Usa
|-
| 2 || Europe
|-
| 3 || Australia
|-
| 4 || HongKongTaiwanKorea
|-
| 5 || China
|}
 
= UserSelectorFlag =
This is "nn::settings::system::UserSelectorFlag".
 
{| class="wikitable" border="1"
! Bits
! Description
|-
| 0 || SkipsIfSingleUser
|-
| 31 || Unknown
|}
 
= UserSelectorSettings =
This is "nn::settings::system::UserSelectorSettings".
 
This contains an u32 bitmask for [[#UserSelectorFlag]].
 
= AccountSettings =
This is "nn::settings::system::AccountSettings".
 
This contains [[#UserSelectorSettings]].
 
= ClockSourceId =
This is "nn::settings::system::ClockSourceId".
 
{| class="wikitable" border="1"
|-
! Value
! Description
|-
| 0 || NetworkSystemClock
|-
| 1 || SteadyClock
|}
 
= NotificationVolume =
This is "nn::settings::system::NotificationVolume".
 
{| class="wikitable" border="1"
|-
! Value
! Description
|-
| 0 || Mute
|-
| 1 || Low
|-
| 2 || High
|}
 
= FriendPresenceOverlayPermission =
This is "nn::settings::system::FriendPresenceOverlayPermission".
 
{| class="wikitable" border="1"
|-
! Value
! Description
|-
| 0 || NotConfirmed
|-
| 1 || NoDisplay
|-
| 2 || FavoriteFriends
|-
| 3 || Friends
|}
 
= TvResolution =
This is "nn::settings::system::TvResolution".
 
{| class="wikitable" border="1"
|-
! Value
! Description
|-
| 0 || Auto
|-
| 1 || 1080p
|-
| 2 || 720p
|-
| 3 || 480p
|}
 
= HdmiContentType =
This is "nn::settings::system::HdmiContentType".
 
{| class="wikitable" border="1"
|-
! Value
! Description
|-
| 0 || None
|-
| 1 || Graphics
|-
| 2 || Cinema
|-
| 3 || Photo
|-
| 4 || Game
|}
 
= RgbRange =
This is "nn::settings::system::RgbRange".
 
{| class="wikitable" border="1"
|-
! Value
! Description
|-
| 0 || Auto
|-
| 1 || Full
|-
| 2 || Limited
|}
 
= CmuMode =
This is "nn::settings::system::CmuMode".
 
{| class="wikitable" border="1"
|-
! Value
! Description
|-
| 0 || None
|-
| 1 || ColorInvert
|-
| 2 || HighContrast
|-
| 3 || GrayScale
|}
 
= HandheldSleepPlan =
This is "nn::settings::system::HandheldSleepPlan".
 
{| class="wikitable" border="1"
|-
! Value
! Description
|-
| 0 || 1Min
|-
| 1 || 3Min
|-
| 2 || 5Min
|-
| 3 || 10Min
|-
| 4 || 30Min
|-
| 5 || Never
|}
 
= ConsoleSleepPlan =
This is "nn::settings::system::ConsoleSleepPlan".
 
{| class="wikitable" border="1"
|-
! Value
! Description
|-
| 0 || 1Hour
|-
| 1 || 2Hour
|-
| 2 || 3Hour
|-
| 3 || 6Hour
|-
| 4 || 12Hour
|-
| 5 || Never
|}
 
= EulaVersion =
This is "nn::settings::system::EulaVersion".
 
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
| 0x0 || 0x4 || Version
|-
| 0x4 || 0x4 || [[#RegionCode_2|RegionCode]]
|-
| 0x8 || 0x4 || [[#SteadyClockSourceId|ClockType]]
|-
| 0xC || 0x4 || Reserved
|-
| 0x10 || 0x8 || [[Glue_services#PosixTime|NetworkSystemClock]]
|-
| 0x18 || 0x18 || [[Glue_services#SteadyClockTimePoint|SteadyClock]]
|}
 
= FirmwareVersion =
This is "nn::settings::system::FirmwareVersion".
 
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
| 0x0 || 0x1 || Major
|-
| 0x1 || 0x1 || Minor
|-
| 0x2 || 0x1 || Micro
|-
| 0x3 || 0x1 || Reserved
|-
| 0x4 || 0x4 || ReleaseNumber
|-
| 0x8 || 0x20 || Platform
|-
| 0x28 || 0x40 || Revision
|-
| 0x68 || 0x18 || DisplayVersion
|-
| 0x80 || 0x80 || DisplayName
|}
 
= PtmFuelGaugeParameter =
This is "nn::settings::system::PtmFuelGaugeParameter".
 
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
| 0x0 || 0x2 || Rcomp0
|-
| 0x2 || 0x2 || TempCo
|-
| 0x4 || 0x2 || FullCap
|-
| 0x6 || 0x2 || FullCapNom
|-
| 0x8 || 0x2 || IavgEmpty
|-
| 0xA || 0x2 || QrTable00
|-
| 0xC || 0x2 || QrTable10
|-
| 0xE || 0x2 || QrTable20
|-
| 0x10 || 0x2 || QrTable30
|-
| 0x12 || 0x2 || Reserved
|-
| 0x14 || 0x4 || Cycles
|}
 
= SecuritySettings =
This is "nn::settings::system::SecuritySettings".
 
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
| 0x0 || 0x4 || AuthenticationMode
|-
| 0x4 || 0x4 || EncryptionMode
|-
| 0x8 || 0x40 || KeyMaterial
|-
| 0x48 || 0x4 || KeyMaterialLength
|}
 
= NotificationTime =
This is "nn::settings::system::NotificationTime".
 
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
| 0x0 || 0x4 || Hour
|-
| 0x4 || 0x4 || Minute
|}
 
= NotificationFlag =
This is "nn::settings::system::NotificationFlag".
 
{| class="wikitable" border="1"
! Bits
! Description
|-
| 0 || RingtoneFlag
|-
| 1 || DownloadCompletionFlag
|-
| 8 || EnablesNews
|-
| 9 || IncomingLampFlag
|}
 
= NotificationSettings =
This is "nn::settings::system::NotificationSettings".
 
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
| 0x0 || 0x4 || [[#NotificationFlag|Flags]]
|-
| 0x4 || 0x4 || [[#NotificationVolume|Volume]]
|-
| 0x8 || 0x8 || [[#NotificationTime|HeadTime]]
|-
| 0x10 || 0x8 || [[#NotificationTime|TailTime]]
|}
 
= AccountNotificationFlag =
This is "nn::settings::system::AccountNotificationFlag".
 
{| class="wikitable" border="1"
! Bits
! Description
|-
| 0 || FriendOnlineFlag
|-
| 1 || FriendRequestFlag
|-
| 8 || CoralInvitationFlag
|}
 
= AccountNotificationSettings =
This is "nn::settings::system::AccountNotificationSettings".
 
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
| 0x0 || 0x10 || [[Account_services#Uid|Uid]]
|-
| 0x10 || 0x4 || [[#AccountNotificationFlag|Flags]]
|-
| 0x14 || 0x1 || [[#FriendPresenceOverlayPermission|FriendPresenceOverlayPermission]]
|-
| 0x15 || 0x1 || [[#FriendPresenceOverlayPermission|FriendInvitationOverlayPermission]]
|-
| 0x16 || 0x2 || Reserved
|}
 
= TvFlag =
This is "nn::settings::system::TvFlag".
 
{| class="wikitable" border="1"
! Bits
! Description
|-
| 0 || Allows4k
|-
| 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
|-
| 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"
{| class="wikitable" border="1"
!  Bits
!  Description
|-
| 0 || RingtoneFlag
|-
|-
| 1 || DownloadCompletionFlag
! Value
! Description
|-
|-
| 8 || EnablesNews
| 0 || Stylus
|-
|-
| 9 || IncomingLampFlag
| 1 || Standard
|}
|}


== NotificationSettings ==
= ButtonConfigSettings =
This is "nn::settings::system::NotificationSettings".
This is "nn::settings::system::ButtonConfigSettings". This is a 0x5A8-byte struct.


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 1,302: Line 2,503:
! Offset || Size || Description
! Offset || Size || Description
|-
|-
| 0x0 || 0x4 || [[#NotificationFlag|NotificationFlag]]
| 0x0 || 0x1 || IsFull bool flag. 0 = empty config, 1 = config set. Also accessed as an u32, but only bit0 is used.
|-
|-
| 0x4 || 0x4 || [[#NotificationVolume|NotificationVolume]]
| 0x1 || 0x3 || Padding
|-
|-
| 0x8 || 0x8 || [[#NotificationTime|HeadTime]]
| 0x4 || 0x1C4 || Unused
|-
|-
| 0x10 || 0x8 || [[#NotificationTime|TailTime]]
| 0x1C8 || 0x3E0 || Config
|}
|}


== AccountNotificationFlag ==
= ButtonConfigRegisteredSettings =
This is "nn::settings::system::AccountNotificationFlag".
This is "nn::settings::system::ButtonConfigRegisteredSettings". This is a 0x5C8-byte struct.
 
{| class="wikitable" border="1"
!  Bits
!  Description
|-
| 0 || FriendOnlineFlag
|-
| 1 || FriendRequestFlag
|-
| 8 || CoralInvitationFlag
|}


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


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 1,332: Line 2,522:
! Offset || Size || Description
! Offset || Size || Description
|-
|-
| 0x0 || 0x10 || [[Account_services|AccountUid]]
| 0x0 || 0x6 || [[BTM_services#BdAddress|BdAddr]]
|-
| 0x10 || 0x4 || [[#AccountNotificationFlag|AccountNotificationFlag]]
|-
| 0x14 || 0x1 || [[#FriendPresenceOverlayPermission|FriendPresenceOverlayPermission]]
|-
| 0x15 || 0x1 || [[#FriendPresenceOverlayPermission|FriendInvitationOverlayPermission]]
|-
| 0x16 || 0x2 || Reserved
|}
 
== TvFlag ==
This is "nn::settings::system::TvFlag".
 
{| class="wikitable" border="1"
!  Bits
!  Description
|-
| 0 || Allows4k
|-
|-
| 1 || Allows3d
| 0x6 || 0x20 || [13.0.0+] Reserved ([1.0.0-12.1.0] [[BTM_services#BdName|DeviceName]])
|-
|-
| 2 || AllowsCec
| 0x26 || 0x3 || [[BTM_services#ClassOfDevice|ClassOfDevice]]
|-
|-
| 3 || PreventsScreenBurnIn
| 0x29 || 0x10 || LinkKey
|}
 
== TvSettings ==
This is "nn::settings::system::TvSettings".
 
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
|-
| 0x0 || 0x4 || [[#TvFlag|TvFlag]]
| 0x39 || 0x1 || LinkKeyPresent
|-
|-
| 0x4 || 0x4 || [[#TvResolution|TvResolution]]
| 0x3A || 0x2 || Version
|-
|-
| 0x8 || 0x4 || [[#HdmiContentType|HdmiContentType]]
| 0x3C || 0x4 || TrustedServices
|-
|-
| 0xC || 0x4 || [[#RgbRange|RgbRange]]
| 0x40 || 0x2 || Vid
|-
|-
| 0x10 || 0x4 || [[#CmuMode|CmuMode]]
| 0x42 || 0x2 || Pid
|-
|-
| 0x14 || 0x4 || TvUnderscan
| 0x44 || 0x1 || SubClass
|-
|-
| 0x18 || 0x4 || TvGamma
| 0x45 || 0x1 || AttributeMask
|-
|-
| 0x1C || 0x4 || ContrastRatio
| 0x46 || 0x2 || DescriptorLength
|}
 
== DataDeletionFlag ==
This is "nn::settings::system::DataDeletionFlag".
 
{| class="wikitable" border="1"
!  Bits
!  Description
|-
|-
| 0 || AutomaticDeletionFlag
| 0x48 || 0x80 || Descriptor
|}
 
== DataDeletionSettings ==
This is "nn::settings::system::DataDeletionSettings".
 
{| class="wikitable" border="1"
|-
|-
! Offset || Size || Description
| 0xC8 || 0x1 || KeyType
|-
|-
| 0x0 || 0x4 || [[#DataDeletionFlag|DataDeletionFlag]].
| 0xC9 || 0x1 || DeviceType
|-
|-
| 0x4 || 0x4 || UseCount
| 0xCA || 0x2 || BrrSize
|}
 
== BatteryLot ==
This is "nn::settings::BatteryLot". It's size is 0x18 bytes.
 
== SleepFlag ==
This is "nn::settings::system::SleepFlag".
 
{| class="wikitable" border="1"
!  Bits
!  Description
|-
|-
| 0 || SleepsWhilePlayingMedia
| 0xCC || 0x9 || Brr
|-
|-
| 1 || WakesAtPowerStateChange
| 0xD5 || 0x1 || [13.0.0+] AudioSourceVolume
|}
 
== SleepSettings ==
This is "nn::settings::system::SleepSettings".
 
{| class="wikitable" border="1"
|-
|-
! Offset || Size || Description
| 0xD6 || 0xF9 || [13.0.0+] DeviceName
|-
|-
| 0x0 || 0x4 || [[#SleepFlag|SleepFlag]]
| 0x1CF || 0x1 || [15.0.0+] AudioSinkVolume
|-
|-
| 0x4 || 0x4 || [[#HandheldSleepPlan|HandheldSleepPlan]]
| 0x1D0 || 0x4 || [14.0.0+] AudioFlags
|-
|-
| 0x8 || 0x4 || [[#ConsoleSleepPlan|ConsoleSleepPlan]]
| 0x1D4 || 0x2C || Reserved
|}
|}


== InitialLaunchFlag ==
= NxControllerLegacySettings =
This is "nn::settings::system::InitialLaunchFlag".
This is "nn::settings::system::NxControllerLegacySettings" ([1.0.0-12.1.0] "nn::settings::system::NxControllerSettings"). This is a 0x29-byte struct.


{| class="wikitable" border="1"
= NxControllerSettings =
!  Bits
This is "nn::settings::system::NxControllerSettings". This is a 0x42C-byte struct. This was added with [13.0.0+].
!  Description
|-
| 0 || InitialLaunchCompletionFlag
|-
| 8 || InitialLaunchUserAdditionFlag
|-
| 16 || InitialLaunchTimestampFlag
|}


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


{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Offset || Size || Description
! Value
! Description
|-
|-
| 0x0 || 0x4 || [[#InitialLaunchFlag|InitialLaunchFlag]]
| 0 || Invalid
|-
| 0x4 || 0x4 || Reserved
|-
| 0x8 || 0x18 || [[Glue_services#SteadyClockTimePoint|InitialLaunchTimestampOffset]]
|}
 
== 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
| 1 || Nx
|-
|-
| 0x0 || 0x4 || Version
| 2 || NxCopper
|-
|-
| 0x4 || 0x1C || Reserved
| 3 || NxIowa
|-
|-
| 0x20 || 0x20 || DisplayVersion
| 4 || NxHoag
|}
 
== PrimaryAlbumStorage ==
This is u32 enum "nn::settings::system::PrimaryAlbumStorage".
 
{| class="wikitable" border="1"
|-
|-
!  Value
| 5 || NxCalcio
!  Description
|-
|-
| 0 || Nand
| 6 || NxAula
|-
|-
| 1 || SdCard
| 7 ||  
|}
 
== ErrorReportSharePermission ==
This is "nn::settings::system::ErrorReportSharePermission".
 
{| class="wikitable" border="1"
|-
|-
!  Value
| 8 ||
!  Description
|-
|-
| 0 || NotConfirmed
| 9 ||  
|-
|-
| 1 || Granted
| 10 ||  
|-
|-
| 2 || Denied
| 11 ||  
|}
 
== ServiceDiscoveryControlSettings ==
{| class="wikitable" border="1"
!  Bits
!  Description
|-
|-
| 0
| 12 ||  
| IsChangeEnvironmentIdentifierDisabled
|}
|}


== AppletLaunchFlag ==
Range 1-6 is Nintendo Switch, range 7-12 is Nintendo Switch 2.
This is "nn::settings::system::AppletLaunchFlag". This is an u32 bitmask.


== KeyboardLayout ==
= ProductModelName =
This is "nn::settings::KeyboardLayout".
This is "nn::settings::system::ProductModelName". This is a 0x8-byte struct containing a [[#ProductModel|string]].


{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Value
! Value
! Description
! [[#ProductModel|ProductModel]]
|-
| 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
| "HAC" || 1
|-
|-
| 14 || ChineseTraditional
| "HAD" || 3
|}
 
== ChineseTraditionalInputMethod ==
This is "nn::settings::ChineseTraditionalInputMethod".
 
{| class="wikitable" border="1"
|-
|-
!  Value
| "HDH" || 4
!  Description
|-
|-
| 1 ||  
| "HEG" || 6
|-
|-
| 2 ||  
| "BEE" || 7
|}
|}


== TouchScreenMode ==
= SystemConfiguration =
This is "nn::settings::system::TouchScreenMode".
There's a common configuration title (*818), and one configuration title for each [[SMC#HardwareType|HardwareType]].
 
This is an u8. This controls "Touch-Screen Sensitivity", values:
* 0: Stylus.
* 1: Standard, the default.
 
= System Config =
There's a common config title (*818), and a config title for each [[SMC#HardwareType|HardwareType]].


See [[System_Settings]].
See [[System_Settings]].


[[Category:Services]]
[[Category:Services]]