Difference between revisions of "Settings services"

From Nintendo Switch Brew
Jump to navigation Jump to search
 
(46 intermediate revisions by 4 users not shown)
Line 4: Line 4:
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
! Cmd || Name || Notes
+
! Cmd || Name
 
|-
 
|-
| 0 || GetLanguageCode || No input, returns an output [[#LanguageCode]]. This is the current system language.
+
| 0 || [[#GetLanguageCode]]
 
|-
 
|-
| 1 || GetAvailableLanguageCodes || Takes a type-0xA buffer containing the [[#LanguageCode]] output array, returns an output s32.
+
| 1 || [[#GetAvailableLanguageCodes]]
 
|-
 
|-
| 2 || [4.0.0+] MakeLanguageCode || Takes an input [[#Language]], returns an output [[#LanguageCode]].
+
| 2 || [4.0.0+] [[#MakeLanguageCode]]
 
|-
 
|-
| 3 || GetAvailableLanguageCodeCount || No input, returns an output s32.
+
| 3 || [[#GetAvailableLanguageCodeCount]]
 
|-
 
|-
| 4 || GetRegionCode || No input, returns a [[#RegionCode]].
+
| 4 || [[#GetRegionCode]]
 
|-
 
|-
| 5 || [4.0.0+] GetAvailableLanguageCodes2 || Takes a type-0x6 buffer containing the [[#LanguageCode]] output array, returns an output s32.
+
| 5 || [4.0.0+] [[#GetAvailableLanguageCodes2]]
 
|-
 
|-
| 6 || [4.0.0+] GetAvailableLanguageCodeCount2 || No input, returns an output s32.
+
| 6 || [4.0.0+] [[#GetAvailableLanguageCodeCount2]]
 
|-
 
|-
| 7 || [4.0.0+] [[#GetKeyCodeMap]] ||
+
| 7 || [4.0.0+] [[#GetKeyCodeMap]]
 
|-
 
|-
| 8 || [5.0.0+] GetQuestFlag || Identical to "set:sys" [[#set:sys|GetQuestFlag]].
+
| 8 || [5.0.0+] [[#GetQuestFlag]]
 
|-
 
|-
| 9 || [6.0.0+] GetKeyCodeMap2 ||
+
| 9 || [6.0.0+] [[#GetKeyCodeMap2]]
 
|-
 
|-
| 10 || [9.0.0+] [[#GetFirmwareVersionForDebug]] ||
+
| 10 || [9.0.0+] [[#GetFirmwareVersionForDebug]]
 +
|-
 +
| 11 || [10.1.0+] [[#GetDeviceNickName]]
 +
|-
 +
| 12 || [18.0.0+] GetKeyCodeMapByPort
 
|}
 
|}
  
Line 34: Line 38:
 
* During one-time init, GetAvailableLanguageCodes is used to initialize the LanguageCodes array cache, with max_entries=0xF (buffer size in u64s). [4.0.0+] GetAvailableLanguageCodes2 is now used with max_entries 0x40.
 
* During one-time init, GetAvailableLanguageCodes is used to initialize the LanguageCodes array cache, with max_entries=0xF (buffer size in u64s). [4.0.0+] GetAvailableLanguageCodes2 is now used with max_entries 0x40.
 
* [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.
 +
 +
== GetLanguageCode ==
 +
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]].
 +
 +
== GetAvailableLanguageCodeCount ==
 +
No input, returns an output s32.
 +
 +
== GetRegionCode ==
 +
No input, returns a [[#RegionCode_2|RegionCode]].
 +
 +
== GetAvailableLanguageCodes2 ==
 +
Takes a type-0x6 buffer containing the [[#LanguageCode]] output array, returns an output s32.
 +
 +
== GetAvailableLanguageCodeCount2 ==
 +
No input, returns an output s32.
  
 
== GetKeyCodeMap ==
 
== GetKeyCodeMap ==
Line 44: Line 69:
  
 
This runs the same code as GetFirmwareVersion2, with the last 0x80-bytes of the [[System_Version_Title|output]] being copied to the output buffer.
 
This runs the same code as GetFirmwareVersion2, with the last 0x80-bytes of the [[System_Version_Title|output]] being copied to the output buffer.
 
== Language ==
 
"nn::settings::Language" (s32) is basically array indices in the output array from GetAvailableLanguageCodes.
 
 
== LanguageCode ==
 
This is "nn::settings::LanguageCode".
 
 
This is an u64, which is a NUL-terminated string.
 
 
{| class="wikitable" border="1"
 
|-
 
! Array-index / [[#Language]] || [[#LanguageCode]] || Icon [[NCA_Content_FS#FS-type3|language]] filename || Name
 
|-
 
| 0 || ja || "Japanese" || Japanese
 
|-
 
| 1 || en-US || "AmericanEnglish" || EnglishUs
 
|-
 
| 2 || fr || "French" || French
 
|-
 
| 3 || de || "German" || German
 
|-
 
| 4 || it || "Italian" || Italian
 
|-
 
| 5 || es || "Spanish" || Spanish
 
|-
 
| 6 || zh-CN || "Chinese" || Chinese
 
|-
 
| 7 || ko || "Korean" || Korean
 
|-
 
| 8 || nl || "Dutch" || Dutch
 
|-
 
| 9 || pt || "Portuguese" || Portuguese
 
|-
 
| 10 || ru || "Russian" || Russian
 
|-
 
| 11 || zh-TW || "Taiwanese" || Taiwanese
 
|-
 
| 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 ==
 
A region code is a signed 32-bit value representing a particular region. Currently the available regions defined by the system are as follows:
 
 
{| class="wikitable" border="1"
 
|-
 
! Value || Region
 
|-
 
| 0 || Japan
 
|-
 
| 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 146: Line 99:
  
 
== ISettingsItemKeyIterator ==
 
== ISettingsItemKeyIterator ==
 +
This is "nn::settings::ISettingsItemKeyIterator".
 +
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 164: Line 119:
 
! Cmd || Name
 
! Cmd || Name
 
|-
 
|-
| 0 || GetBluetoothBdAddress
+
| 0 || [[#GetBluetoothBdAddress]]
 
|-
 
|-
| 1 || GetConfigurationId1
+
| 1 || [[#GetConfigurationId1]]
 
|-
 
|-
| 2 || GetAccelerometerOffset
+
| 2 || [[#GetAccelerometerOffset]]
 
|-
 
|-
| 3 || GetAccelerometerScale
+
| 3 || [[#GetAccelerometerScale]]
 
|-
 
|-
| 4 || GetGyroscopeOffset
+
| 4 || [[#GetGyroscopeOffset]]
 
|-
 
|-
| 5 || GetGyroscopeScale
+
| 5 || [[#GetGyroscopeScale]]
 
|-
 
|-
| 6 || GetWirelessLanMacAddress
+
| 6 || [[#GetWirelessLanMacAddress]]
 
|-
 
|-
| 7 || GetWirelessLanCountryCodeCount
+
| 7 || [[#GetWirelessLanCountryCodeCount]]
 
|-
 
|-
| 8 || GetWirelessLanCountryCodes
+
| 8 || [[#GetWirelessLanCountryCodes]]
 
|-
 
|-
| 9 || GetSerialNumber
+
| 9 || [[#GetSerialNumber]]
 
|-
 
|-
| 10 || SetInitialSystemAppletProgramId
+
| 10 || [[#SetInitialSystemAppletProgramId]]
 
|-
 
|-
| 11 || SetOverlayDispProgramId
+
| 11 || [[#SetOverlayDispProgramId]]
 
|-
 
|-
| 12 || GetBatteryLot
+
| 12 || [[#GetBatteryLot]]
 
|-
 
|-
 
| 14 || [[#GetEciDeviceCertificate]]
 
| 14 || [[#GetEciDeviceCertificate]]
Line 206: Line 161:
 
| 21 || [[#GetEticketDeviceKey]]
 
| 21 || [[#GetEticketDeviceKey]]
 
|-
 
|-
| 22 || GetSpeakerParameter
+
| 22 || [[#GetSpeakerParameter]]
 
|-
 
|-
| 23 || [4.0.0+] GetLcdVendorId
+
| 23 || [4.0.0+] [[#GetLcdVendorId]]
 
|-
 
|-
 
| 24 || [5.0.0+] [[#GetEciDeviceCertificate2]]
 
| 24 || [5.0.0+] [[#GetEciDeviceCertificate2]]
Line 214: Line 169:
 
| 25 || [5.0.0+] [[#GetEciDeviceKey2]]
 
| 25 || [5.0.0+] [[#GetEciDeviceKey2]]
 
|-
 
|-
| 26 || [5.0.0+] GetAmiiboKey
+
| 26 || [5.0.0+] [[#GetAmiiboKey]]
 
|-
 
|-
| 27 || [5.0.0+] GetAmiiboEcqvCertificate
+
| 27 || [5.0.0+] [[#GetAmiiboEcqvCertificate]]
 
|-
 
|-
| 28 || [5.0.0+] GetAmiiboEcdsaCertificate
+
| 28 || [5.0.0+] [[#GetAmiiboEcdsaCertificate]]
 
|-
 
|-
| 29 || [5.0.0+] GetAmiiboEcqvBlsKey
+
| 29 || [5.0.0+] [[#GetAmiiboEcqvBlsKey]]
 
|-
 
|-
| 30 || [5.0.0+] GetAmiiboEcqvBlsCertificate
+
| 30 || [5.0.0+] [[#GetAmiiboEcqvBlsCertificate]]
 
|-
 
|-
| 31 || [5.0.0+] GetAmiiboEcqvBlsRootCertificate
+
| 31 || [5.0.0+] [[#GetAmiiboEcqvBlsRootCertificate]]
 
|-
 
|-
| 32 || [5.0.0+] GetUsbTypeCPowerSourceCircuitVersion
+
| 32 || [5.0.0+] [[#GetUsbTypeCPowerSourceCircuitVersion]]
 
|-
 
|-
| 33 || [8.1.1+] GetAnalogStickModuleTypeL
+
| 33 || [8.1.1+] [[#GetAnalogStickModuleTypeL]]
 
|-
 
|-
| 34 || [8.1.1+] GetAnalogStickModelParameterL
+
| 34 || [8.1.1+] [[#GetAnalogStickModelParameterL]]
 
|-
 
|-
| 35 || [8.1.1+] GetAnalogStickFactoryCalibrationL
+
| 35 || [8.1.1+] [[#GetAnalogStickFactoryCalibrationL]]
 
|-
 
|-
| 36 || [8.1.1+] GetAnalogStickModuleTypeR
+
| 36 || [8.1.1+] [[#GetAnalogStickModuleTypeR]]
 
|-
 
|-
| 37 || [8.1.1+] GetAnalogStickModelParameterR
+
| 37 || [8.1.1+] [[#GetAnalogStickModelParameterR]]
 
|-
 
|-
| 38 || [8.1.1+] GetAnalogStickFactoryCalibrationR
+
| 38 || [8.1.1+] [[#GetAnalogStickFactoryCalibrationR]]
 
|-
 
|-
| 39 || [8.1.1+] GetConsoleSixAxisSensorModuleType
+
| 39 || [8.1.1+] [[#GetConsoleSixAxisSensorModuleType]]
 
|-
 
|-
| 40 || [8.1.1+] GetConsoleSixAxisSensorHorizontalOffset
+
| 40 || [8.1.1+] [[#GetConsoleSixAxisSensorHorizontalOffset]]
 
|-
 
|-
| 41 || [6.0.0+] GetBatteryVersion
+
| 41 || [6.0.0+] [[#GetBatteryVersion]]
 +
|-
 +
| 42 || [10.0.0+] [[#GetDeviceId]]
 +
|-
 +
| 43 || [10.0.0+] [[#GetConsoleSixAxisSensorMountType]]
 
|}
 
|}
  
Used for accessing data calibrated at the factory.
+
Used for accessing data [[Calibration|calibrated]] at the factory.
 +
 
 +
== GetBluetoothBdAddress ==
 +
No input. Returns a [[#BdAddress|BdAddress]].
 +
 
 +
== GetConfigurationId1 ==
 +
No input. Returns a [[#ConfigurationId1|ConfigurationId1]].
 +
 
 +
== GetAccelerometerOffset ==
 +
No input. Returns a [[#AccelerometerOffset|AccelerometerOffset]].
 +
 
 +
== GetAccelerometerScale ==
 +
No input. Returns a [[#AccelerometerScale|AccelerometerScale]].
 +
 
 +
== GetGyroscopeOffset ==
 +
No input. Returns a [[#GyroscopeOffset|GyroscopeOffset]].
 +
 
 +
== GetGyroscopeScale ==
 +
No input. Returns a [[#GyroscopeScale|GyroscopeScale]].
 +
 
 +
== GetWirelessLanMacAddress ==
 +
No input. Returns a [[#MacAddress|MacAddress]].
 +
 
 +
== GetWirelessLanCountryCodeCount ==
 +
No input. Returns a s32 '''OutCount'''.
 +
 
 +
== GetWirelessLanCountryCodes ==
 +
Takes a type-0x16 output buffer containing an array of [[#CountryCode|CountryCode]]. Returns a s32 '''OutCount'''.
 +
 
 +
== GetSerialNumber ==
 +
No input. Returns a [[#SerialNumber|SerialNumber]].
 +
 
 +
== SetInitialSystemAppletProgramId ==
 +
Takes an input [[NCM_services#ProgramId|ProgramId]]. No output.
 +
 
 +
== SetOverlayDispProgramId ==
 +
Takes an input [[NCM_services#ProgramId|ProgramId]]. No output.
 +
 
 +
== GetBatteryLot ==
 +
No input. Returns a [[#BatteryLot|BatteryLot]].
  
 
== GetEciDeviceCertificate ==
 
== GetEciDeviceCertificate ==
Takes a type-0x16 output buffer containing a [[#EccB233DeviceCertificate]].
+
Takes a type-0x16 output buffer containing a [[#EccB233DeviceCertificate|EccB233DeviceCertificate]]. No output.
  
 
Returns the device certificate (ECC signed). This is identical to 3DS DeviceCert/CTCert besides the strings. NIM loads the DeviceId from this.
 
Returns the device certificate (ECC signed). This is identical to 3DS DeviceCert/CTCert besides the strings. NIM loads the DeviceId from this.
  
 
== GetEticketDeviceCertificate ==
 
== GetEticketDeviceCertificate ==
Takes a type-0x16 output buffer containing a [[#Rsa2048DeviceCertificate]].
+
Takes a type-0x16 output buffer containing a [[#Rsa2048DeviceCertificate|Rsa2048DeviceCertificate]]. No output.
  
 
Returns the ETicket certificate (RSA signed).
 
Returns the ETicket certificate (RSA signed).
  
 
== GetSslKey ==
 
== GetSslKey ==
Takes a type-0x16 output buffer containing a [[#SslKey]].
+
Takes a type-0x16 output buffer containing a [[#SslKey|SslKey]]. No output.
  
 
Returns the extended SSL key (0x130 bytes) from [[Calibration#CAL0|CAL0]]. If the extended key is not programmed then it falls back to the normal SSL key (0x110 bytes).
 
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).
Line 267: Line 265:
  
 
== GetSslCertificate ==
 
== GetSslCertificate ==
Takes a type-0x16 output buffer containing a [[#SslCertificate]].
+
Takes a type-0x16 output buffer containing a [[#SslCertificate|SslCertificate]]. No output.
  
 
Used by SSL-sysmodule, see [[SSL_services|here]].
 
Used by SSL-sysmodule, see [[SSL_services|here]].
  
 
== GetGameCardKey ==
 
== GetGameCardKey ==
Takes a type-0x16 output buffer containing a [[#GameCardKey]].
+
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).
 
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 ==
 
== GetGameCardCertificate ==
Takes a type-0x16 output buffer containing a [[#GameCardCertificate]].
+
Takes a type-0x16 output buffer containing a [[#GameCardCertificate|GameCardCertificate]]. No output.
  
 
== GetEciDeviceKey ==
 
== GetEciDeviceKey ==
No input, returns an [[#EccB233DeviceKey]].
+
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).
 
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 ==
 
== GetEticketDeviceKey ==
Takes a type-0x16 output buffer containing a [[#Rsa2048DeviceKey]].
+
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).
 
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 ==
 
== GetEciDeviceCertificate2 ==
Same as [[#GetEciDeviceCertificate]], but [[#Rsa2048DeviceCertificate|returns]] a RSA-2048 variant of the device certificate.
+
Same as [[#GetEciDeviceCertificate]], but returns a [[#Rsa2048DeviceCertificate|RSA-2048]] variant of the device certificate.
  
 
== GetEciDeviceKey2 ==
 
== GetEciDeviceKey2 ==
Same as [[#GetEciDeviceKey]], but [[#Rsa2048DeviceKey|returns]] a RSA-2048 variant of the device key.
+
Same as [[#GetEciDeviceKey]], but returns a [[#Rsa2048DeviceKey|RSA-2048]] variant of the device key.
  
== AccelerometerOffset ==
+
== GetAmiiboKey ==
This is "nn::settings::factory::AccelerometerOffset". It's size is 0x06 bytes.
+
No input. Returns an [[#AmiiboKey|AmiiboKey]].
  
== AccelerometerScale ==
+
== GetAmiiboEcqvCertificate ==
This is "nn::settings::factory::AccelerometerScale". It's size is 0x06 bytes.
+
No input. Returns an [[#AmiiboEcqvCertificate|AmiiboEcqvCertificate]].
  
== AmiiboEcdsaCertificate ==
+
== GetAmiiboEcdsaCertificate ==
This is "nn::settings::factory::AmiiboEcdsaCertificate". It's size is 0x70 bytes.
+
No input. Returns an [[#AmiiboEcdsaCertificate|AmiiboEcdsaCertificate]].
  
== AmiiboEcqvBlsCertificate ==
+
== GetAmiiboEcqvBlsKey ==
This is "nn::settings::factory::AmiiboEcqvBlsCertificate". It's size is 0x20 bytes.
+
No input. Returns an [[#AmiiboEcqvBlsKey|AmiiboEcqvBlsKey]].
  
== AmiiboEcqvBlsKey ==
+
== GetAmiiboEcqvBlsCertificate ==
This is "nn::settings::factory::AmiiboEcqvBlsKey". It's size is 0x40 bytes.
+
No input. Returns an [[#AmiiboEcqvBlsCertificate|AmiiboEcqvBlsCertificate]].
  
If [[Calibration#CAL0|Calibration Version]] >= 9, this is now:
+
== GetAmiiboEcqvBlsRootCertificate ==
{| class="wikitable" border="1"
+
No input. Returns an [[#AmiiboEcqvBlsRootCertificate|AmiiboEcqvBlsRootCertificate]].
|-
 
! Offset
 
! Size
 
! Name
 
|-
 
| 0x0
 
| 0x40
 
| Key
 
|-
 
| 0x44
 
| 0x4
 
| Key generation
 
|}
 
  
== AmiiboEcqvBlsRootCertificate ==
+
== GetUsbTypeCPowerSourceCircuitVersion ==
This is "nn::settings::factory::AmiiboEcqvBlsRootCertificate". It's size is 0x90 bytes.
+
No input. Returns an [[Calibration#UsbTypeCPowerSourceCircuit|UsbTypeCPowerSourceCircuitVersion]].
  
== AmiiboEcqvCertificate ==
+
== GetAnalogStickModuleTypeL ==
This is "nn::settings::factory::AmiiboEcqvCertificate". It's size is 0x14 bytes.
+
No input. Returns an [[Calibration#AnalogStickModuleType|AnalogStickModuleType]].
  
== AmiiboKey ==
+
== GetAnalogStickModelParameterL ==
This is "nn::settings::factory::AmiiboKey". It's size is 0x50 bytes.
+
No input. Returns an [[#AnalogStickModelParameter|AnalogStickModelParameter]].
  
If [[Calibration#CAL0|Calibration Version]] >= 9, this is now:
+
== GetAnalogStickFactoryCalibrationL ==
{| class="wikitable" border="1"
+
No input. Returns an [[#AnalogStickFactoryCalibration|AnalogStickFactoryCalibration]].
|-
 
! Offset
 
! Size
 
! Name
 
|-
 
| 0x0
 
| 0x50
 
| Key
 
|-
 
| 0x50
 
| 0x4
 
| Key generation
 
|}
 
  
== AnalogStickFactoryCalibration ==
+
== GetAnalogStickModuleTypeR ==
This is "nn::settings::factory::AnalogStickFactoryCalibration". It's size is 0x09 bytes.
+
No input. Returns an [[Calibration#AnalogStickModuleType|AnalogStickModuleType]].
  
== AnalogStickModelParameter ==
+
== GetAnalogStickModelParameterR ==
This is "nn::settings::factory::AnalogStickModelParameter". It's size is 0x12 bytes.
+
No input. Returns an [[#AnalogStickModelParameter|AnalogStickModelParameter]].
  
== BatteryLot ==
+
== GetAnalogStickFactoryCalibrationR ==
This is "nn::settings::BatteryLot". It's size is 0x18 bytes.
+
No input. Returns an [[#AnalogStickFactoryCalibration|AnalogStickFactoryCalibration]].
  
== BdAddress ==
+
== GetConsoleSixAxisSensorModuleType ==
This is "nn::settings::factory::BdAddress". It's size is 0x06 bytes.
+
No input. Returns a [[Calibration#ConsoleSixAxisSensorModuleType|ConsoleSixAxisSensorModuleType]].
  
== ConfigurationId1 ==
+
== GetConsoleSixAxisSensorHorizontalOffset ==
This is "nn::settings::factory::ConfigurationId1". It's size is 0x1E bytes.
+
No input. Returns a [[#ConsoleSixAxisSensorHorizontalOffset|ConsoleSixAxisSensorHorizontalOffset]].
  
== ConsoleSixAxisSensorHorizontalOffset ==
+
== GetBatteryVersion ==
This is "nn::settings::factory::ConsoleSixAxisSensorHorizontalOffset". It's size is 0x06 bytes.
+
No input. Returns a [[Calibration#BatteryVersion|BatteryVersion]].
  
== CountryCode ==
+
== GetDeviceId ==
This is "nn::settings::factory::CountryCode". It's size is 0x04 bytes.
+
No input. Returns an u64 '''DeviceId''' by reading and converting the hexadecimal string at offset 0xC6 inside [[#EccB233DeviceCertificate]] or [[#Rsa2048DeviceCertificate]].
 
 
== 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
 
! Size
 
! Name
 
|-
 
| 0x0
 
| 0x54
 
| Key
 
|-
 
| 0x54
 
| 0x4
 
| Key generation
 
|}
 
 
 
== GameCardCertificate ==
 
This is "nn::settings::factory::GameCardCertificate". It's maximum size is 0x404 bytes.
 
{| class="wikitable" border="1"
 
|-
 
! Offset
 
! Size
 
! Name
 
|-
 
| 0x0
 
| 0x4
 
| GameCard certificate size
 
|-
 
| 0x4
 
| {above size}
 
| GameCard certificate data
 
|}
 
 
 
== 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
 
! Size
 
! Name
 
|-
 
| 0x0
 
| 0x130
 
| Key
 
|-
 
| 0x130
 
| 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
 
! Size
 
! Name
 
|-
 
| 0x0
 
| 0x240
 
| Key
 
|-
 
| 0x240
 
| 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
 
! Size
 
! Name
 
|-
 
| 0x0
 
| 0x4
 
| SSL certificate size
 
|-
 
| 0x4
 
| {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
 
! Size
 
! Name
 
|-
 
| 0x0
 
| 0x130
 
| Key
 
|-
 
| 0x130
 
| 0x4
 
| Key generation
 
|}
 
  
== RegionCode ==
+
== GetConsoleSixAxisSensorMountType ==
This is "nn::settings::factory::RegionCode". It's size is 0x04 bytes.
+
No input. Returns a [[Calibration#ConsoleSixAxisSensorMountType|ConsoleSixAxisSensorMountType]].
  
 
= set:sys =
 
= set:sys =
Line 597: Line 444:
 
| 44 || SetAudioOutputMode
 
| 44 || SetAudioOutputMode
 
|-
 
|-
| 45 || IsForceMuteOnHeadphoneRemoved
+
| 45 || GetSpeakerAutoMuteFlag ([1.0.0-12.1.0] IsForceMuteOnHeadphoneRemoved)
 
|-
 
|-
| 46 || SetForceMuteOnHeadphoneRemoved
+
| 46 || SetSpeakerAutoMuteFlag ([1.0.0-12.1.0] SetForceMuteOnHeadphoneRemoved)
 
|-
 
|-
 
| 47 || [[#GetQuestFlag]]
 
| 47 || [[#GetQuestFlag]]
Line 661: Line 508:
 
| 76 || [[#SetInitialLaunchSettings]]
 
| 76 || [[#SetInitialLaunchSettings]]
 
|-
 
|-
| 77 || GetDeviceNickName
+
| 77 || [[#GetDeviceNickName]]
 
|-
 
|-
| 78 || SetDeviceNickName
+
| 78 || [[#SetDeviceNickName]]
 
|-
 
|-
 
| 79 || [[#GetProductModel]]
 
| 79 || [[#GetProductModel]]
Line 745: Line 592:
 
| 118 || [3.0.0+] SetHeadphoneVolumeUpdateFlag
 
| 118 || [3.0.0+] SetHeadphoneVolumeUpdateFlag
 
|-
 
|-
| 119 || [3.0.0+] NeedsToUpdateHeadphoneVolume
+
| 119 || [3.0.0-14.1.2] NeedsToUpdateHeadphoneVolume
 
|-
 
|-
 
| 120 || [3.0.0+] GetPushNotificationActivityModeOnSleep
 
| 120 || [3.0.0+] GetPushNotificationActivityModeOnSleep
Line 884: Line 731:
 
|-
 
|-
 
| 188 || [9.0.0+] [[#SetTouchScreenMode]]
 
| 188 || [9.0.0+] [[#SetTouchScreenMode]]
 +
|-
 +
| 189 || [10.0.0+] [[#GetButtonConfigSettingsFull]]
 +
|-
 +
| 190 || [10.0.0+] [[#SetButtonConfigSettingsFull]]
 +
|-
 +
| 191 || [10.0.0+] [[#GetButtonConfigSettingsEmbedded]]
 +
|-
 +
| 192 || [10.0.0+] [[#SetButtonConfigSettingsEmbedded]]
 +
|-
 +
| 193 || [10.0.0+] [[#GetButtonConfigSettingsLeft]]
 +
|-
 +
| 194 || [10.0.0+] [[#SetButtonConfigSettingsLeft]]
 +
|-
 +
| 195 || [10.0.0+] [[#GetButtonConfigSettingsRight]]
 +
|-
 +
| 196 || [10.0.0+] [[#SetButtonConfigSettingsRight]]
 +
|-
 +
| 197 || [10.0.0+] [[#GetButtonConfigRegisteredSettingsEmbedded]]
 +
|-
 +
| 198 || [10.0.0+] [[#SetButtonConfigRegisteredSettingsEmbedded]]
 +
|-
 +
| 199 || [10.0.0+] [[#GetButtonConfigRegisteredSettings]]
 +
|-
 +
| 200 || [10.0.0+] [[#SetButtonConfigRegisteredSettings]]
 +
|-
 +
| 201 || [10.1.0+] [[#GetFieldTestingFlag]]
 +
|-
 +
| 202 || [10.1.0+] [[#SetFieldTestingFlag]]
 +
|-
 +
| 203 || [11.0.0+] GetPanelCrcMode
 +
|-
 +
| 204 || [11.0.0+] SetPanelCrcMode
 +
|-
 +
| 205 || [13.0.0+] GetNxControllerSettingsEx
 +
|-
 +
| 206 || [13.0.0+] SetNxControllerSettingsEx
 +
|-
 +
| 207 || [14.0.0+] GetHearingProtectionSafeguardFlag
 +
|-
 +
| 208 || [14.0.0+] SetHearingProtectionSafeguardFlag
 +
|-
 +
| 209 || [14.0.0+] GetHearingProtectionSafeguardRemainingTime
 +
|-
 +
| 210 || [14.0.0+] SetHearingProtectionSafeguardRemainingTime
 +
|-
 +
| 221 || [17.0.0+] GetForceMonauralOutputFlag
 +
|-
 +
| 222 || [17.0.0+] SetForceMonauralOutputFlag
 +
|-
 +
| 251 || [18.0.0+] GetAccountIdentificationSettings
 +
|-
 +
| 252 || [18.0.0+] SetAccountIdentificationSettings
 
|}
 
|}
  
Line 976: Line 875:
 
== SetInitialLaunchSettings ==
 
== SetInitialLaunchSettings ==
 
Takes an input [[#InitialLaunchSettings]], no output.
 
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 ==
 
== GetProductModel ==
Line 1,005: Line 912:
  
 
== GetAllowedSslHosts ==
 
== GetAllowedSslHosts ==
Takes a type-0x6 output buffer, returns an output s32. This buffer contains an array of 0x8-byte "nn::settings::system::AllowedSslHost" entries.
+
Takes a type-0x6 output buffer, returns an output s32 entry count. This buffer contains an array of 0x100-byte "nn::settings::system::AllowedSslHost" entries.
  
 
== GetRebootlessSystemUpdateVersion ==
 
== GetRebootlessSystemUpdateVersion ==
Line 1,028: Line 935:
  
 
== SetRegionCode ==
 
== SetRegionCode ==
Takes an input s32 [[#RegionCode]], no output.
+
Takes an input s32 [[#RegionCode_2|RegionCode]], no output.
  
 
== GetChineseTraditionalInputMethod ==
 
== GetChineseTraditionalInputMethod ==
Line 1,077: Line 984:
 
Official sw sets the input to an u8 loaded from an input [[#TouchScreenMode]].
 
Official sw sets the input to an u8 loaded from an input [[#TouchScreenMode]].
  
== UserSelectorFlag ==
+
== 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.
 +
 
 +
= 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
 +
|-
 +
| 10 || Russian
 +
|-
 +
| 11 || Taiwanese
 +
|-
 +
| 12 || BritishEnglish
 +
|-
 +
| 13 || CanadianFrench
 +
|-
 +
| 14 || LatinAmericanSpanish
 +
|-
 +
| 15 || [4.0.0+] SimplifiedChinese
 +
|-
 +
| 16 || [4.0.0+] TraditionalChinese
 +
|-
 +
| 17 || [10.1.0+] BrazilianPortuguese
 +
|}
 +
 
 +
= LanguageCode =
 +
This is "nn::settings::LanguageCode". This is an u64, which is a NUL-terminated string.
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Value || [[#Language]]
 +
|-
 +
| "ja" || Japanese
 +
|-
 +
| "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)
 +
|-
 +
| "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".
 
This is "nn::settings::system::UserSelectorFlag".
  
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
! Bits
+
! Bits
! Description
+
! Description
 
|-
 
|-
 
| 0 || SkipsIfSingleUser
 
| 0 || SkipsIfSingleUser
Line 1,089: Line 1,489:
 
|}
 
|}
  
== UserSelectorSettings ==
+
= UserSelectorSettings =
 
This is "nn::settings::system::UserSelectorSettings".
 
This is "nn::settings::system::UserSelectorSettings".
  
 
This contains an u32 bitmask for [[#UserSelectorFlag]].
 
This contains an u32 bitmask for [[#UserSelectorFlag]].
  
== AccountSettings ==
+
= AccountSettings =
 
This is "nn::settings::system::AccountSettings".
 
This is "nn::settings::system::AccountSettings".
  
 
This contains [[#UserSelectorSettings]].
 
This contains [[#UserSelectorSettings]].
  
== EulaVersionClockType ==
+
= ClockSourceId =
 +
This is "nn::settings::system::ClockSourceId".
 +
 
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
! Value
+
! Value
! Description
+
! Description
 
|-
 
|-
 
| 0 || NetworkSystemClock
 
| 0 || NetworkSystemClock
Line 1,110: Line 1,512:
 
|}
 
|}
  
== NotificationVolume ==
+
= NotificationVolume =
 +
This is "nn::settings::system::NotificationVolume".
 +
 
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
! Value
+
! Value
! Description
+
! Description
 
|-
 
|-
 
| 0 || Mute
 
| 0 || Mute
Line 1,123: Line 1,527:
 
|}
 
|}
  
== FriendPresenceOverlayPermission ==
+
= FriendPresenceOverlayPermission =
 +
This is "nn::settings::system::FriendPresenceOverlayPermission".
 +
 
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
! Value
+
! Value
! Description
+
! Description
 
|-
 
|-
 
| 0 || NotConfirmed
 
| 0 || NotConfirmed
Line 1,138: Line 1,544:
 
|}
 
|}
  
== TvResolution ==
+
= TvResolution =
 +
This is "nn::settings::system::TvResolution".
 +
 
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
! Value
+
! Value
! Description
+
! Description
 
|-
 
|-
 
| 0 || Auto
 
| 0 || Auto
Line 1,153: Line 1,561:
 
|}
 
|}
  
== HdmiContentType ==
+
= HdmiContentType =
 +
This is "nn::settings::system::HdmiContentType".
 +
 
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
! Value
+
! Value
! Description
+
! Description
 
|-
 
|-
 
| 0 || None
 
| 0 || None
Line 1,170: Line 1,580:
 
|}
 
|}
  
== RgbRange ==
+
= RgbRange =
 +
This is "nn::settings::system::RgbRange".
 +
 
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
! Value
+
! Value
! Description
+
! Description
 
|-
 
|-
 
| 0 || Auto
 
| 0 || Auto
Line 1,183: Line 1,595:
 
|}
 
|}
  
== CmuMode ==
+
= CmuMode =
 +
This is "nn::settings::system::CmuMode".
 +
 
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
! Value
+
! Value
! Description
+
! Description
 
|-
 
|-
 
| 0 || None
 
| 0 || None
Line 1,198: Line 1,612:
 
|}
 
|}
  
== HandheldSleepPlan ==
+
= HandheldSleepPlan =
 +
This is "nn::settings::system::HandheldSleepPlan".
 +
 
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
! Value
+
! Value
! Description
+
! Description
 
|-
 
|-
 
| 0 || 1Min
 
| 0 || 1Min
Line 1,217: Line 1,633:
 
|}
 
|}
  
== ConsoleSleepPlan ==
+
= ConsoleSleepPlan =
 +
This is "nn::settings::system::ConsoleSleepPlan".
 +
 
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
! Value
+
! Value
! Description
+
! Description
 
|-
 
|-
 
| 0 || 1Hour
 
| 0 || 1Hour
Line 1,236: Line 1,654:
 
|}
 
|}
  
== EulaVersion ==
+
= EulaVersion =
 
This is "nn::settings::system::EulaVersion".
 
This is "nn::settings::system::EulaVersion".
  
Line 1,243: Line 1,661:
 
! Offset || Size || Description
 
! Offset || Size || Description
 
|-
 
|-
| 0x0 || 0x4 || u32 version
+
| 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
 
|-
 
|-
| 0x4 || 0x4 || s32 region_code
+
| 0x3 || 0x1 || Reserved
 
|-
 
|-
| 0x8 || 0x4 || s32 [[#EulaVersionClockType|clock_type]]
+
| 0x4 || 0x4 || ReleaseNumber
 
|-
 
|-
| 0xC || 0x4 || Padding
+
| 0x8 || 0x20 || Platform
 
|-
 
|-
| 0x10 || 0x8 || [[Glue_services|PosixTime]] network_clock_time
+
| 0x28 || 0x40 || Revision
 
|-
 
|-
| 0x18 || 0x18 || [[Glue_services|SteadyClockTimePoint]] steady_clock_time
+
| 0x68 || 0x18 || DisplayVersion
 
|-
 
|-
 +
| 0x80 || 0x80 || DisplayName
 
|}
 
|}
  
== NotificationTime ==
+
= PtmFuelGaugeParameter =
 +
This is "nn::settings::system::PtmFuelGaugeParameter".
 +
 
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
 
! Offset || Size || Description
 
! Offset || Size || Description
 
|-
 
|-
| 0x0 || 0x4 || s32 hour
+
| 0x0 || 0x2 || Rcomp0
 
|-
 
|-
| 0x4 || 0x4 || s32 minute
+
| 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
 
|}
 
|}
  
== NotificationFlag ==
+
= 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".
 
This is "nn::settings::system::NotificationFlag".
  
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
! Bits
+
! Bits
! Description
+
! Description
 
|-
 
|-
 +
| 0 || RingtoneFlag
 +
|-
 +
| 1 || DownloadCompletionFlag
 +
|-
 +
| 8 || EnablesNews
 +
|-
 +
| 9 || IncomingLampFlag
 
|}
 
|}
  
== NotificationSettings ==
+
= NotificationSettings =
 
This is "nn::settings::system::NotificationSettings".
 
This is "nn::settings::system::NotificationSettings".
  
Line 1,284: Line 1,781:
 
! Offset || Size || Description
 
! Offset || Size || Description
 
|-
 
|-
| 0x0 || 0x4 || u32 flags. Bitmask with [[#NotificationFlag]].
+
| 0x0 || 0x4 || [[#NotificationFlag|Flags]]
 
|-
 
|-
| 0x4 || 0x4 || s32 [[#NotificationVolume|volume]]
+
| 0x4 || 0x4 || [[#NotificationVolume|Volume]]
 
|-
 
|-
| 0x8 || 0x8 || [[#NotificationTime]] start_time
+
| 0x8 || 0x8 || [[#NotificationTime|HeadTime]]
|-
 
| 0x10 || 0x8 || [[#NotificationTime]] end_time
 
 
|-
 
|-
 +
| 0x10 || 0x8 || [[#NotificationTime|TailTime]]
 
|}
 
|}
  
== AccountNotificationFlag ==
+
= AccountNotificationFlag =
 
This is "nn::settings::system::AccountNotificationFlag".
 
This is "nn::settings::system::AccountNotificationFlag".
  
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
! Bits
+
! Bits
! Description
+
! Description
 +
|-
 +
| 0 || FriendOnlineFlag
 +
|-
 +
| 1 || FriendRequestFlag
 
|-
 
|-
 +
| 8 || CoralInvitationFlag
 
|}
 
|}
  
== AccountNotificationSettings ==
+
= AccountNotificationSettings =
 
This is "nn::settings::system::AccountNotificationSettings".
 
This is "nn::settings::system::AccountNotificationSettings".
  
Line 1,310: Line 1,811:
 
! Offset || Size || Description
 
! Offset || Size || Description
 
|-
 
|-
| 0x0 || 0x10 || [[Account_services|uid]]
+
| 0x0 || 0x10 || [[Account_services#Uid|Uid]]
 
|-
 
|-
| 0x10 || 0x4 || u32 flags. Bitmask for [[#AccountNotificationFlag]].
+
| 0x10 || 0x4 || [[#AccountNotificationFlag|Flags]]
 
|-
 
|-
| 0x14 || 0x1 || s8 [[#FriendPresenceOverlayPermission|friend_presence_overlay_permission]]
+
| 0x14 || 0x1 || [[#FriendPresenceOverlayPermission|FriendPresenceOverlayPermission]]
 
|-
 
|-
| 0x15 || 0x3 || Padding
+
| 0x15 || 0x1 || [[#FriendPresenceOverlayPermission|FriendInvitationOverlayPermission]]
 
|-
 
|-
 +
| 0x16 || 0x2 || Reserved
 
|}
 
|}
  
== TvFlag ==
+
= TvFlag =
 
This is "nn::settings::system::TvFlag".
 
This is "nn::settings::system::TvFlag".
  
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
! Bits
+
! Bits
! Description
+
! Description
 +
|-
 +
| 0 || Allows4k
 +
|-
 +
| 1 || Allows3d
 
|-
 
|-
 +
| 2 || AllowsCec
 +
|-
 +
| 3 || PreventsScreenBurnIn
 
|}
 
|}
  
== TvSettings ==
+
= TvSettings =
 
This is "nn::settings::system::TvSettings".
 
This is "nn::settings::system::TvSettings".
  
Line 1,336: Line 1,845:
 
! Offset || Size || Description
 
! Offset || Size || Description
 
|-
 
|-
| 0x0 || 0x4 || u32 flags. Bitmask with [[#TvFlag]].
+
| 0x0 || 0x4 || [[#TvFlag|Flags]]
 
|-
 
|-
| 0x4 || 0x4 || s32 [[#TvResolution|tv_resolution]]
+
| 0x4 || 0x4 || [[#TvResolution|TvResolution]]
 
|-
 
|-
| 0x8 || 0x4 || s32 [[#HdmiContentType|hdmi_content_type]]
+
| 0x8 || 0x4 || [[#HdmiContentType|HdmiContentType]]
 
|-
 
|-
| 0xC || 0x4 || s32 [[#RgbRange|rgb_range]]
+
| 0xC || 0x4 || [[#RgbRange|RgbRange]]
 
|-
 
|-
| 0x10 || 0x4 || s32 [[#CmuMode|cmu_mode]]
+
| 0x10 || 0x4 || [[#CmuMode|CmuMode]]
 
|-
 
|-
| 0x14 || 0x4 || u32 underscan
+
| 0x14 || 0x4 || TvUnderscan
 
|-
 
|-
| 0x18 || 0x4 || float gamma
+
| 0x18 || 0x4 || TvGamma
|-
 
| 0x1C || 0x4 || float contrast
 
 
|-
 
|-
 +
| 0x1C || 0x4 || ContrastRatio
 
|}
 
|}
  
== DataDeletionFlag ==
+
= DataDeletionFlag =
 
This is "nn::settings::system::DataDeletionFlag".
 
This is "nn::settings::system::DataDeletionFlag".
  
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
! Bits
+
! Bits
! Description
+
! Description
 
|-
 
|-
 +
| 0 || AutomaticDeletionFlag
 
|}
 
|}
  
== DataDeletionSettings ==
+
= DataDeletionSettings =
 
This is "nn::settings::system::DataDeletionSettings".
 
This is "nn::settings::system::DataDeletionSettings".
  
Line 1,370: Line 1,879:
 
! Offset || Size || Description
 
! Offset || Size || Description
 
|-
 
|-
| 0x0 || 0x4 || u32 flags. Bitmask with [[#DataDeletionFlag]].
+
| 0x0 || 0x4 || [[#DataDeletionFlag|Flags]]
|-
 
| 0x4 || 0x4 || s32 use_count
 
 
|-
 
|-
 +
| 0x4 || 0x4 || UseCount
 
|}
 
|}
  
== BatteryLot ==
+
= SleepFlag =
This is "nn::settings::BatteryLot".
+
This is "nn::settings::system::SleepFlag".
  
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 +
! Bits
 +
! Description
 
|-
 
|-
! Offset || Size || Description
+
| 0 || SleepsWhilePlayingMedia
|-
 
| 0x0 || 0x18 || String.
 
 
|-
 
|-
 +
| 1 || WakesAtPowerStateChange
 
|}
 
|}
  
== SleepFlag ==
+
= SleepSettings =
This is "nn::settings::system::SleepFlag".
 
 
 
{| class="wikitable" border="1"
 
!  Bits
 
!  Description
 
|-
 
|}
 
 
 
== SleepSettings ==
 
 
This is "nn::settings::system::SleepSettings".
 
This is "nn::settings::system::SleepSettings".
  
Line 1,403: Line 1,903:
 
! Offset || Size || Description
 
! Offset || Size || Description
 
|-
 
|-
| 0x0 || 0x4 || u32 flags. Bitmask for [[#SleepFlag]].
+
| 0x0 || 0x4 || [[#SleepFlag|Flags]]
 
|-
 
|-
| 0x4 || 0x4 || s32 [[#HandheldSleepPlan|handheld_sleep_plan]]
+
| 0x4 || 0x4 || [[#HandheldSleepPlan|HandheldSleepPlan]]
|-
 
| 0x8 || 0x4 || s32 [[#ConsoleSleepPlan|console_sleep_plan]]
 
 
|-
 
|-
 +
| 0x8 || 0x4 || [[#ConsoleSleepPlan|ConsoleSleepPlan]]
 
|}
 
|}
  
== InitialLaunchFlag ==
+
= InitialLaunchFlag =
 
This is "nn::settings::system::InitialLaunchFlag".
 
This is "nn::settings::system::InitialLaunchFlag".
  
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
! Bits
+
! Bits
! Description
+
! Description
 
|-
 
|-
 +
| 0 || InitialLaunchCompletionFlag
 +
|-
 +
| 8 || InitialLaunchUserAdditionFlag
 +
|-
 +
| 16 || InitialLaunchTimestampFlag
 
|}
 
|}
  
== InitialLaunchSettings ==
+
= InitialLaunchSettings =
 
This is "nn::settings::system::InitialLaunchSettings". This struct is 8-byte aligned.
 
This is "nn::settings::system::InitialLaunchSettings". This struct is 8-byte aligned.
  
Line 1,427: Line 1,931:
 
! Offset || Size || Description
 
! Offset || Size || Description
 
|-
 
|-
| 0x0 || 0x4 || u32 flags. Bitmask for [[#InitialLaunchFlag]].
+
| 0x0 || 0x4 || [[#InitialLaunchFlag|Flags]]
|-
 
| 0x4 || 0x4 || Padding
 
 
|-
 
|-
| 0x8 || 0x18 || [[Glue_services|SteadyClockTimePoint]] timestamp
+
| 0x4 || 0x4 || Reserved
 
|-
 
|-
 +
| 0x8 || 0x18 || [[Glue_services#SteadyClockTimePoint|TimeStamp]]
 
|}
 
|}
  
== RebootlessSystemUpdateVersion ==
+
= RebootlessSystemUpdateVersion =
 
This is "nn::settings::system::RebootlessSystemUpdateVersion". This struct is 4-byte aligned.
 
This is "nn::settings::system::RebootlessSystemUpdateVersion". This struct is 4-byte aligned.
  
Line 1,444: Line 1,947:
 
! Offset || Size || Description
 
! Offset || Size || Description
 
|-
 
|-
| 0x0 || 0x4 || u32 version
+
| 0x0 || 0x4 || Version
 
|-
 
|-
 
| 0x4 || 0x1C || Reserved
 
| 0x4 || 0x1C || Reserved
 
|-
 
|-
| 0x20 || 0x20 || display_version string.
+
| 0x20 || 0x20 || DisplayVersion
|-
 
 
|}
 
|}
  
== PrimaryAlbumStorage ==
+
= PrimaryAlbumStorage =
This is u32 enum "nn::settings::system::PrimaryAlbumStorage".
+
This is "nn::settings::system::PrimaryAlbumStorage".
  
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
! Value
+
! Value
! Description
+
! Description
 
|-
 
|-
 
| 0 || Nand
 
| 0 || Nand
Line 1,465: Line 1,967:
 
|}
 
|}
  
== ErrorReportSharePermission ==
+
= ErrorReportSharePermission =
This is u32 enum "nn::settings::system::ErrorReportSharePermission".
+
This is "nn::settings::system::ErrorReportSharePermission".
  
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
! Value
+
! Value
! Description
+
! Description
 
|-
 
|-
 
| 0 || NotConfirmed
 
| 0 || NotConfirmed
Line 1,480: Line 1,982:
 
|}
 
|}
  
== ServiceDiscoveryControlSettings ==
+
= ServiceDiscoveryControlSettings =
This is a 32-bit bitfield.
+
This is "nn::settings::system::ServiceDiscoveryControlSettings".
  
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
! Bits
+
! Bits
! Description
+
! Description
 
|-
 
|-
 
| 0
 
| 0
Line 1,491: Line 1,993:
 
|}
 
|}
  
== AppletLaunchFlag ==
+
= AppletLaunchFlag =
 
This is "nn::settings::system::AppletLaunchFlag". This is an u32 bitmask.
 
This is "nn::settings::system::AppletLaunchFlag". This is an u32 bitmask.
  
== KeyboardLayout ==
+
= KeyboardLayout =
This is u32 enum "nn::settings::KeyboardLayout".
+
This is "nn::settings::KeyboardLayout".
  
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
! Value
+
! Value
! Description
+
! Description
 
|-
 
|-
 
| 1 || EnglishUs
 
| 1 || EnglishUs
Line 1,531: Line 2,033:
 
|}
 
|}
  
== ChineseTraditionalInputMethod ==
+
= ChineseTraditionalInputMethod =
This is u32 enum "nn::settings::ChineseTraditionalInputMethod".
+
This is "nn::settings::ChineseTraditionalInputMethod".
  
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
! Value
+
! Value
! Description
+
! Description
 
|-
 
|-
 
| 1 ||  
 
| 1 ||  
Line 1,544: Line 2,046:
 
|}
 
|}
  
== TouchScreenMode ==
+
= TouchScreenMode =
 
This is "nn::settings::system::TouchScreenMode".
 
This is "nn::settings::system::TouchScreenMode".
  
This is an u8. This controls "Touch-Screen Sensitivity", values:
+
{| class="wikitable" border="1"
* 0: Stylus.
+
|-
* 1: Standard, the default.
+
! Value
 +
! Description
 +
|-
 +
| 0 || Stylus
 +
|-
 +
| 1 || Standard
 +
|}
 +
 
 +
= ButtonConfigSettings =
 +
This is "nn::settings::system::ButtonConfigSettings". This is a 0x5A8-byte struct.
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset || Size || Description
 +
|-
 +
| 0x0 || 0x1 || IsFull bool flag. 0 = empty config, 1 = config set. Also accessed as an u32, but only bit0 is used.
 +
|-
 +
| 0x1 || 0x3 || Padding
 +
|-
 +
| 0x4 || 0x1C4 || Unused
 +
|-
 +
| 0x1C8 || 0x3E0 || Config
 +
|}
 +
 
 +
= ButtonConfigRegisteredSettings =
 +
This is "nn::settings::system::ButtonConfigRegisteredSettings". This is a 0x5C8-byte struct.
 +
 
 +
= BluetoothDevicesSettings =
 +
This is "nn::settings::system::BluetoothDevicesSettings". This is a 0x200-byte struct.
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset || Size || Description
 +
|-
 +
| 0x0 || 0x6 || [[BTM_services#BdAddress|BdAddr]]
 +
|-
 +
| 0x6 || 0x20 || [[BTM_services#BdName|DeviceName]]
 +
|-
 +
| 0x26 || 0x3 || [[BTM_services#ClassOfDevice|ClassOfDevice]]
 +
|-
 +
| 0x29 || 0x10 || LinkKey
 +
|-
 +
| 0x39 || 0x1 || LinkKeyPresent
 +
|-
 +
| 0x3A || 0x2 || Version
 +
|-
 +
| 0x3C || 0x4 || TrustedServices
 +
|-
 +
| 0x40 || 0x2 || Vid
 +
|-
 +
| 0x42 || 0x2 || Pid
 +
|-
 +
| 0x44 || 0x1 || SubClass
 +
|-
 +
| 0x45 || 0x1 || AttributeMask
 +
|-
 +
| 0x46 || 0x2 || DescriptorLength
 +
|-
 +
| 0x48 || 0x80 || Descriptor
 +
|-
 +
| 0xC8 || 0x1 || KeyType
 +
|-
 +
| 0xC9 || 0x1 || DeviceType
 +
|-
 +
| 0xCA || 0x2 || BrrSize
 +
|-
 +
| 0xCC || 0x9 || Brr
 +
|-
 +
| 0xD5 || 0x12B || Reserved
 +
|}
 +
 
 +
= NxControllerLegacySettings =
 +
This is "nn::settings::system::NxControllerLegacySettings" ([1.0.0-12.1.0] "nn::settings::system::NxControllerSettings"). This is a 0x29-byte struct.
 +
 
 +
= NxControllerSettings =
 +
This is "nn::settings::system::NxControllerSettings". This is a 0x42C-byte struct. This was added with [13.0.0+].
  
= System Config =
+
= System Configuration =
There's a common config title (*818), and a config title for each [[SMC#HardwareType|HardwareType]].
+
There's a common configuration title (*818), and one configuration title for each [[SMC#HardwareType|HardwareType]].
  
 
See [[System_Settings]].
 
See [[System_Settings]].
  
 
[[Category:Services]]
 
[[Category:Services]]

Latest revision as of 16:07, 26 November 2024

set

This is "nn::settings::ISettingsServer".

Cmd Name
0 #GetLanguageCode
1 #GetAvailableLanguageCodes
2 [4.0.0+] #MakeLanguageCode
3 #GetAvailableLanguageCodeCount
4 #GetRegionCode
5 [4.0.0+] #GetAvailableLanguageCodes2
6 [4.0.0+] #GetAvailableLanguageCodeCount2
7 [4.0.0+] #GetKeyCodeMap
8 [5.0.0+] #GetQuestFlag
9 [6.0.0+] #GetKeyCodeMap2
10 [9.0.0+] #GetFirmwareVersionForDebug
11 [10.1.0+] #GetDeviceNickName
12 [18.0.0+] GetKeyCodeMapByPort

[4.0.0+] Official user-processes now use GetAvailableLanguageCodes2/GetAvailableLanguageCodeCount2 instead of {original commands}.

In official user-processes in the #Language->#LanguageCode conversion function (MakeLanguageCode):

  • During one-time init, GetAvailableLanguageCodes is used to initialize the LanguageCodes array cache, with max_entries=0xF (buffer size in u64s). [4.0.0+] GetAvailableLanguageCodes2 is now used with max_entries 0x40.
  • [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.

GetLanguageCode

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.

GetAvailableLanguageCodeCount

No input, returns an output s32.

GetRegionCode

No input, returns a RegionCode.

GetAvailableLanguageCodes2

Takes a type-0x6 buffer containing the #LanguageCode output array, returns an output s32.

GetAvailableLanguageCodeCount2

No input, returns an output s32.

GetKeyCodeMap

Takes a type-0x16 output buffer containing KeyCodeMap, official sw uses fixed size 0x1000. This is probably related to HID keyboard.

GetFirmwareVersionForDebug

Takes a type-0x16 output buffer containing a 0x80-byte "nn::oe::FirmwareVersionForDebug".

This uses #GetDebugModeFlag internally, if the output flag is 0 an error is thrown.

This runs the same code as GetFirmwareVersion2, with the last 0x80-bytes of the output being copied to the output buffer.

set:fd

This is "nn::settings::IFirmwareDebugSettingsServer".

[4.0.0+] Only exposed if in development mode.

Cmd Name
2 SetSettingsItemValue
3 ResetSettingsItemValue
4 CreateSettingsItemKeyIterator
10 [4.0.0+] ReadSettings
11 [4.0.0+] ResetSettings
20 [4.0.0+] SetWebInspectorFlag
21 [4.0.0+] SetAllowedSslHosts
22 [4.0.0+] SetHostFsMountPoint
23 [9.0.0+] SetMemoryUsageRateFlag

ISettingsItemKeyIterator

This is "nn::settings::ISettingsItemKeyIterator".

Cmd Name
0 GoNext
1 GetKeySize
2 GetKey

set:cal

This is "nn::settings::IFactorySettingsServer".

Cmd Name
0 #GetBluetoothBdAddress
1 #GetConfigurationId1
2 #GetAccelerometerOffset
3 #GetAccelerometerScale
4 #GetGyroscopeOffset
5 #GetGyroscopeScale
6 #GetWirelessLanMacAddress
7 #GetWirelessLanCountryCodeCount
8 #GetWirelessLanCountryCodes
9 #GetSerialNumber
10 #SetInitialSystemAppletProgramId
11 #SetOverlayDispProgramId
12 #GetBatteryLot
14 #GetEciDeviceCertificate
15 #GetEticketDeviceCertificate
16 #GetSslKey
17 #GetSslCertificate
18 #GetGameCardKey
19 #GetGameCardCertificate
20 #GetEciDeviceKey
21 #GetEticketDeviceKey
22 #GetSpeakerParameter
23 [4.0.0+] #GetLcdVendorId
24 [5.0.0+] #GetEciDeviceCertificate2
25 [5.0.0+] #GetEciDeviceKey2
26 [5.0.0+] #GetAmiiboKey
27 [5.0.0+] #GetAmiiboEcqvCertificate
28 [5.0.0+] #GetAmiiboEcdsaCertificate
29 [5.0.0+] #GetAmiiboEcqvBlsKey
30 [5.0.0+] #GetAmiiboEcqvBlsCertificate
31 [5.0.0+] #GetAmiiboEcqvBlsRootCertificate
32 [5.0.0+] #GetUsbTypeCPowerSourceCircuitVersion
33 [8.1.1+] #GetAnalogStickModuleTypeL
34 [8.1.1+] #GetAnalogStickModelParameterL
35 [8.1.1+] #GetAnalogStickFactoryCalibrationL
36 [8.1.1+] #GetAnalogStickModuleTypeR
37 [8.1.1+] #GetAnalogStickModelParameterR
38 [8.1.1+] #GetAnalogStickFactoryCalibrationR
39 [8.1.1+] #GetConsoleSixAxisSensorModuleType
40 [8.1.1+] #GetConsoleSixAxisSensorHorizontalOffset
41 [6.0.0+] #GetBatteryVersion
42 [10.0.0+] #GetDeviceId
43 [10.0.0+] #GetConsoleSixAxisSensorMountType

Used for accessing data calibrated at the factory.

GetBluetoothBdAddress

No input. Returns a BdAddress.

GetConfigurationId1

No input. Returns a ConfigurationId1.

GetAccelerometerOffset

No input. Returns a AccelerometerOffset.

GetAccelerometerScale

No input. Returns a AccelerometerScale.

GetGyroscopeOffset

No input. Returns a GyroscopeOffset.

GetGyroscopeScale

No input. Returns a GyroscopeScale.

GetWirelessLanMacAddress

No input. Returns a MacAddress.

GetWirelessLanCountryCodeCount

No input. Returns a s32 OutCount.

GetWirelessLanCountryCodes

Takes a type-0x16 output buffer containing an array of CountryCode. Returns a s32 OutCount.

GetSerialNumber

No input. Returns a SerialNumber.

SetInitialSystemAppletProgramId

Takes an input ProgramId. No output.

SetOverlayDispProgramId

Takes an input ProgramId. No output.

GetBatteryLot

No input. Returns a BatteryLot.

GetEciDeviceCertificate

Takes a type-0x16 output buffer containing a EccB233DeviceCertificate. No output.

Returns the device certificate (ECC signed). This is identical to 3DS DeviceCert/CTCert besides the strings. NIM loads the DeviceId from this.

GetEticketDeviceCertificate

Takes a type-0x16 output buffer containing a Rsa2048DeviceCertificate. No output.

Returns the ETicket certificate (RSA signed).

GetSslKey

Takes a type-0x16 output buffer containing a SslKey. No output.

Returns the extended SSL key (0x130 bytes) from CAL0. If the extended key is not programmed then it falls back to the normal SSL key (0x110 bytes).

Used by SSL-sysmodule, see here.

GetSslCertificate

Takes a type-0x16 output buffer containing a SslCertificate. No output.

Used by SSL-sysmodule, see here.

GetGameCardKey

Takes a type-0x16 output buffer containing a GameCardKey. No output.

Returns the extended GameCard key (0x130 bytes) from 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. No output.

GetEciDeviceKey

No input. Returns an EccB233DeviceKey.

Returns the extended device ECC-B233 key (0x50 bytes) from 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. No output.

Returns the extended ETicket RSA-2048 key (0x240 bytes) from 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.

GetLcdVendorId

No input. Returns a LcdVendorId.

GetEciDeviceCertificate2

Same as #GetEciDeviceCertificate, but returns a RSA-2048 variant of the device certificate.

GetEciDeviceKey2

Same as #GetEciDeviceKey, but returns a RSA-2048 variant of the device key.

GetAmiiboKey

No input. Returns an AmiiboKey.

GetAmiiboEcqvCertificate

No input. Returns an AmiiboEcqvCertificate.

GetAmiiboEcdsaCertificate

No input. Returns an AmiiboEcdsaCertificate.

GetAmiiboEcqvBlsKey

No input. Returns an AmiiboEcqvBlsKey.

GetAmiiboEcqvBlsCertificate

No input. Returns an AmiiboEcqvBlsCertificate.

GetAmiiboEcqvBlsRootCertificate

No input. Returns an AmiiboEcqvBlsRootCertificate.

GetUsbTypeCPowerSourceCircuitVersion

No input. Returns an UsbTypeCPowerSourceCircuitVersion.

GetAnalogStickModuleTypeL

No input. Returns an AnalogStickModuleType.

GetAnalogStickModelParameterL

No input. Returns an AnalogStickModelParameter.

GetAnalogStickFactoryCalibrationL

No input. Returns an AnalogStickFactoryCalibration.

GetAnalogStickModuleTypeR

No input. Returns an AnalogStickModuleType.

GetAnalogStickModelParameterR

No input. Returns an AnalogStickModelParameter.

GetAnalogStickFactoryCalibrationR

No input. Returns an AnalogStickFactoryCalibration.

GetConsoleSixAxisSensorModuleType

No input. Returns a ConsoleSixAxisSensorModuleType.

GetConsoleSixAxisSensorHorizontalOffset

No input. Returns a ConsoleSixAxisSensorHorizontalOffset.

GetBatteryVersion

No input. Returns a 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 ConsoleSixAxisSensorMountType.

set:sys

This is "nn::settings::ISystemSettingsServer".

Cmd Name
0 #SetLanguageCode
1 SetNetworkSettings
2 GetNetworkSettings
3 #GetFirmwareVersion
4 [3.0.0+] GetFirmwareVersion2
5 [5.0.0+] GetFirmwareVersionDigest
7 GetLockScreenFlag
8 SetLockScreenFlag
9 GetBacklightSettings
10 SetBacklightSettings
11 SetBluetoothDevicesSettings
12 GetBluetoothDevicesSettings
13 GetExternalSteadyClockSourceId
14 SetExternalSteadyClockSourceId
15 GetUserSystemClockContext
16 SetUserSystemClockContext
17 #GetAccountSettings
18 #SetAccountSettings
19 GetAudioVolume
20 SetAudioVolume
21 #GetEulaVersions
22 #SetEulaVersions
23 #GetColorSetId
24 #SetColorSetId
25 GetConsoleInformationUploadFlag
26 SetConsoleInformationUploadFlag
27 GetAutomaticApplicationDownloadFlag
28 SetAutomaticApplicationDownloadFlag
29 #GetNotificationSettings
30 #SetNotificationSettings
31 #GetAccountNotificationSettings
32 #SetAccountNotificationSettings
35 GetVibrationMasterVolume
36 SetVibrationMasterVolume
37 GetSettingsItemValueSize
38 #GetSettingsItemValue
39 #GetTvSettings
40 #SetTvSettings
41 GetEdid
42 SetEdid
43 GetAudioOutputMode
44 SetAudioOutputMode
45 GetSpeakerAutoMuteFlag ([1.0.0-12.1.0] IsForceMuteOnHeadphoneRemoved)
46 SetSpeakerAutoMuteFlag ([1.0.0-12.1.0] SetForceMuteOnHeadphoneRemoved)
47 #GetQuestFlag
48 SetQuestFlag
49 #GetDataDeletionSettings
50 #SetDataDeletionSettings
51 GetInitialSystemAppletProgramId
52 GetOverlayDispProgramId
53 GetDeviceTimeZoneLocationName
54 SetDeviceTimeZoneLocationName
55 #GetWirelessCertificationFileSize
56 #GetWirelessCertificationFile
57 #SetRegionCode
58 GetNetworkSystemClockContext
59 SetNetworkSystemClockContext
60 IsUserSystemClockAutomaticCorrectionEnabled
61 SetUserSystemClockAutomaticCorrectionEnabled
62 #GetDebugModeFlag
63 #GetPrimaryAlbumStorage
64 #SetPrimaryAlbumStorage
65 GetUsb30EnableFlag
66 SetUsb30EnableFlag
67 #GetBatteryLot
68 #GetSerialNumber
69 GetNfcEnableFlag
70 SetNfcEnableFlag
71 #GetSleepSettings
72 #SetSleepSettings
73 GetWirelessLanEnableFlag
74 SetWirelessLanEnableFlag
75 #GetInitialLaunchSettings
76 #SetInitialLaunchSettings
77 #GetDeviceNickName
78 #SetDeviceNickName
79 #GetProductModel
80 GetLdnChannel
81 SetLdnChannel
82 AcquireTelemetryDirtyFlagEventHandle
83 GetTelemetryDirtyFlags
84 GetPtmBatteryLot
85 SetPtmBatteryLot
86 GetPtmFuelGaugeParameter
87 SetPtmFuelGaugeParameter
88 GetBluetoothEnableFlag
89 SetBluetoothEnableFlag
90 #GetMiiAuthorId
91 SetShutdownRtcValue
92 GetShutdownRtcValue
93 AcquireFatalDirtyFlagEventHandle
94 GetFatalDirtyFlags
95 [2.0.0+] GetAutoUpdateEnableFlag
96 [2.0.0+] SetAutoUpdateEnableFlag
97 [2.0.0+] GetNxControllerSettings
98 [2.0.0+] SetNxControllerSettings
99 [2.0.0+] GetBatteryPercentageFlag
100 [2.0.0+] SetBatteryPercentageFlag
101 [2.0.0+] GetExternalRtcResetFlag
102 [2.0.0+] SetExternalRtcResetFlag
103 [3.0.0+] GetUsbFullKeyEnableFlag
104 [3.0.0+] SetUsbFullKeyEnableFlag
105 [3.0.0+] SetExternalSteadyClockInternalOffset
106 [3.0.0+] GetExternalSteadyClockInternalOffset
107 [3.0.0+] GetBacklightSettingsEx
108 [3.0.0+] SetBacklightSettingsEx
109 [3.0.0+] GetHeadphoneVolumeWarningCount
110 [3.0.0+] SetHeadphoneVolumeWarningCount
111 [3.0.0+] GetBluetoothAfhEnableFlag
112 [3.0.0+] SetBluetoothAfhEnableFlag
113 [3.0.0+] GetBluetoothBoostEnableFlag
114 [3.0.0+] SetBluetoothBoostEnableFlag
115 [3.0.0+] GetInRepairProcessEnableFlag
116 [3.0.0+] SetInRepairProcessEnableFlag
117 [3.0.0+] GetHeadphoneVolumeUpdateFlag
118 [3.0.0+] SetHeadphoneVolumeUpdateFlag
119 [3.0.0-14.1.2] NeedsToUpdateHeadphoneVolume
120 [3.0.0+] GetPushNotificationActivityModeOnSleep
121 [3.0.0+] SetPushNotificationActivityModeOnSleep
122 [4.0.0+] #GetServiceDiscoveryControlSettings
123 [4.0.0+] SetServiceDiscoveryControlSettings
124 [4.0.0+] #GetErrorReportSharePermission
125 [4.0.0+] #SetErrorReportSharePermission
126 [4.0.0+] #GetAppletLaunchFlags
127 [4.0.0+] #SetAppletLaunchFlags
128 [4.0.0+] GetConsoleSixAxisSensorAccelerationBias
129 [4.0.0+] SetConsoleSixAxisSensorAccelerationBias
130 [4.0.0+] GetConsoleSixAxisSensorAngularVelocityBias
131 [4.0.0+] SetConsoleSixAxisSensorAngularVelocityBias
132 [4.0.0+] GetConsoleSixAxisSensorAccelerationGain
133 [4.0.0+] SetConsoleSixAxisSensorAccelerationGain
134 [4.0.0+] GetConsoleSixAxisSensorAngularVelocityGain
135 [4.0.0+] SetConsoleSixAxisSensorAngularVelocityGain
136 [4.0.0+] #GetKeyboardLayout
137 [4.0.0+] #SetKeyboardLayout
138 [4.0.0+] GetWebInspectorFlag
139 [4.0.0+] #GetAllowedSslHosts
140 [4.0.0+] GetHostFsMountPoint
141 [5.0.0+] GetRequiresRunRepairTimeReviser
142 [5.0.0+] SetRequiresRunRepairTimeReviser
143 [5.0.0+] SetBlePairingSettings
144 [5.0.0+] GetBlePairingSettings
145 [5.0.0+] GetConsoleSixAxisSensorAngularVelocityTimeBias
146 [5.0.0+] SetConsoleSixAxisSensorAngularVelocityTimeBias
147 [5.0.0+] GetConsoleSixAxisSensorAngularAcceleration
148 [5.0.0+] SetConsoleSixAxisSensorAngularAcceleration
149 [5.0.0+] #GetRebootlessSystemUpdateVersion
150 [5.0.0+] GetDeviceTimeZoneLocationUpdatedTime
151 [5.0.0+] SetDeviceTimeZoneLocationUpdatedTime
152 [6.0.0+] GetUserSystemClockAutomaticCorrectionUpdatedTime
153 [6.0.0+] SetUserSystemClockAutomaticCorrectionUpdatedTime
154 [6.0.0+] GetAccountOnlineStorageSettings
155 [6.0.0+] SetAccountOnlineStorageSettings
156 [6.0.0+] GetPctlReadyFlag
157 [6.0.0+] SetPctlReadyFlag
158 [8.1.1+] GetAnalogStickUserCalibrationL
159 [8.1.1+] SetAnalogStickUserCalibrationL
160 [8.1.1+] GetAnalogStickUserCalibrationR
161 [8.1.1+] SetAnalogStickUserCalibrationR
162 [6.0.0+] GetPtmBatteryVersion
163 [6.0.0+] SetPtmBatteryVersion
164 [6.0.0+] GetUsb30HostEnableFlag
165 [6.0.0+] SetUsb30HostEnableFlag
166 [6.0.0+] GetUsb30DeviceEnableFlag
167 [6.0.0+] SetUsb30DeviceEnableFlag
168 [7.0.0+] GetThemeId
169 [7.0.0+] SetThemeId
170 [7.0.0+] #GetChineseTraditionalInputMethod
171 [7.0.0+] #SetChineseTraditionalInputMethod
172 [7.0.0+] GetPtmCycleCountReliability
173 [7.0.0+] SetPtmCycleCountReliability
174 [8.1.1+] #GetHomeMenuScheme
175 [7.0.0+] GetThemeSettings
176 [7.0.0+] SetThemeSettings
177 [7.0.0+] GetThemeKey
178 [7.0.0+] SetThemeKey
179 [8.0.0+] GetZoomFlag
180 [8.0.0+] SetZoomFlag
181 [8.0.0+] #GetT
182 [8.0.0+] #SetT
183 [9.0.0+] #GetPlatformRegion
184 [9.0.0+] #SetPlatformRegion
185 [9.0.0+] #GetHomeMenuSchemeModel
186 [9.0.0+] #GetMemoryUsageRateFlag
187 [9.0.0+] #GetTouchScreenMode
188 [9.0.0+] #SetTouchScreenMode
189 [10.0.0+] #GetButtonConfigSettingsFull
190 [10.0.0+] #SetButtonConfigSettingsFull
191 [10.0.0+] #GetButtonConfigSettingsEmbedded
192 [10.0.0+] #SetButtonConfigSettingsEmbedded
193 [10.0.0+] #GetButtonConfigSettingsLeft
194 [10.0.0+] #SetButtonConfigSettingsLeft
195 [10.0.0+] #GetButtonConfigSettingsRight
196 [10.0.0+] #SetButtonConfigSettingsRight
197 [10.0.0+] #GetButtonConfigRegisteredSettingsEmbedded
198 [10.0.0+] #SetButtonConfigRegisteredSettingsEmbedded
199 [10.0.0+] #GetButtonConfigRegisteredSettings
200 [10.0.0+] #SetButtonConfigRegisteredSettings
201 [10.1.0+] #GetFieldTestingFlag
202 [10.1.0+] #SetFieldTestingFlag
203 [11.0.0+] GetPanelCrcMode
204 [11.0.0+] SetPanelCrcMode
205 [13.0.0+] GetNxControllerSettingsEx
206 [13.0.0+] SetNxControllerSettingsEx
207 [14.0.0+] GetHearingProtectionSafeguardFlag
208 [14.0.0+] SetHearingProtectionSafeguardFlag
209 [14.0.0+] GetHearingProtectionSafeguardRemainingTime
210 [14.0.0+] SetHearingProtectionSafeguardRemainingTime
221 [17.0.0+] GetForceMonauralOutputFlag
222 [17.0.0+] SetForceMonauralOutputFlag
251 [18.0.0+] GetAccountIdentificationSettings
252 [18.0.0+] SetAccountIdentificationSettings

Official user-processes gets a new service session handle each time a set:sys cmd is used, with the session being closed afterwards.

SetLanguageCode

Takes an input #LanguageCode, no output.

GetFirmwareVersion

Takes a type-0x1A output buffer. User-processes use hard-coded size 0x100.

If needed, reads the content of the System_Version_Title "/file" into state. This is only done once.

Then the above 0x100-byte data is copied to the output buffer.

GetAccountSettings

No input, returns an output #AccountSettings.

SetAccountSettings

Takes an input #AccountSettings, no output.

GetEulaVersions

Takes a type-0x6 output buffer containing an array of #EulaVersion, returns an output s32 total_out.

SetEulaVersions

Takes a type-0x5 input buffer containing an array of #EulaVersion, no output.

GetColorSetId

No input, returns an output s32.

This is the current Theme set by System Settings.

  • 0: "Basic White"
  • 1: "Basic Black"

SetColorSetId

Takes an input s32, no output.

GetNotificationSettings

No input, returns an output #NotificationSettings.

SetNotificationSettings

Takes an input #NotificationSettings, no output.

GetAccountNotificationSettings

Takes a type-0x6 output buffer containing an array of #AccountNotificationSettings, returns an output s32 total_out.

SetAccountNotificationSettings

Takes a type-0x5 input buffer containing an array of #AccountNotificationSettings, no output.

GetSettingsItemValue

Takes two type-0x19 input buffers and a type-0x6 output buffer. Returns an output u64 for the actual size written to the outbuf.

The outbuf_size is compared with the config_size. When config_size is larger than outbuf_size, outbuf_size is used for the memcpy, otherwise config_size is used. Afterwards the size used for the memcpy is written to output(see above).

If loading from main config fails, it will also attempt to load config from various state if the input strings match hard-coded strings.

GetTvSettings

No input, returns an output #TvSettings.

SetTvSettings

Takes an input #TvSettings, no output.

GetDebugModeFlag

Returns an output u8.

Loads the 1-byte config for <"settings_debug", "is_debug_mode_enabled">. If that fails, value 0x1 is written to output. This uses the same func as ReadSetting internally.

Returned retval is always 0.

GetPrimaryAlbumStorage

No input, returns an output s32 #PrimaryAlbumStorage.

SetPrimaryAlbumStorage

Takes an input s32 #PrimaryAlbumStorage, no output.

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.

GetMiiAuthorId

No input, returns an output "nn::util::Uuid".

GetServiceDiscoveryControlSettings

Returns an u32 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. This buffer contains an array of 0x100-byte "nn::settings::system::AllowedSslHost" entries.

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 WirelessCertificationFile.

SetRegionCode

Takes an input s32 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 0x14-byte struct "nn::settings::system::HomeMenuScheme".

This struct contains 5 RGBA8 u32s for colors: Main, Back, Sub, Bezel and Extra.

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.

GetT

No input, returns an output u8 bool IsT.

[9.0.0+] This is a wrapper for #GetPlatformRegion: IsT = (PlatformRegion == 2).

SetT

Takes an input u8 bool IsT, no output.

[9.0.0+] This is a wrapper for #SetPlatformRegion: PlatformRegion = 1 + (IsT & 1).

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.

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.

Language

This is "nn::settings::Language".

Value Description
0 Japanese
1 AmericanEnglish
2 French
3 German
4 Italian
5 Spanish
6 Chinese
7 Korean
8 Dutch
9 Portuguese
10 Russian
11 Taiwanese
12 BritishEnglish
13 CanadianFrench
14 LatinAmericanSpanish
15 [4.0.0+] SimplifiedChinese
16 [4.0.0+] TraditionalChinese
17 [10.1.0+] BrazilianPortuguese

LanguageCode

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

Value #Language
"ja" Japanese
"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".

Offset Size Description
0x0 0x2 X
0x2 0x2 Y
0x4 0x2 Z

AccelerometerScale

This is "nn::settings::factory::AccelerometerScale".

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 Version >= 9, this is now:

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 Version >= 9, this is now:

Offset Size Description
0x0 0x50 Key
0x50 0x4 KeyGeneration

AnalogStickFactoryCalibration

This is "nn::settings::factory::AnalogStickFactoryCalibration". Same as AnalogStickFactoryCalibration.

AnalogStickModelParameter

This is "nn::settings::factory::AnalogStickModelParameter". Same as 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

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)
"ANX" Aula NX (retail Aula)

ProductModelType

Value Description
"00" Icosa
"01" Iowa (previously Copper)
"02" Hoag
"03" Calcio
"04" Aula

ConsoleSixAxisSensorHorizontalOffset

This is "nn::settings::factory::ConsoleSixAxisSensorHorizontalOffset". Same as 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 Version >= 9, this is now:

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 Version >= 9, this is now:

Offset Size Description
0x0 0x130 Key
0x130 0x4 KeyGeneration

GyroscopeOffset

This is "nn::settings::factory::GyroscopeOffset".

Offset Size Description
0x0 0x2 X
0x2 0x2 Y
0x4 0x2 Z

GyroscopeScale

This is "nn::settings::factory::GyroscopeScale".

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 Version >= 9, this is now:

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 SpeakerCalibrationValue.

SslCertificate

This is "nn::settings::factory::SslCertificate". This is a 0x804-byte struct.

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 Version >= 9, this is now:

Offset Size Description
0x0 0x130 Key
0x130 0x4 KeyGeneration

RegionCode

This is "nn::settings::factory::RegionCode".

Value Description
0 Japan
1 Usa
2 Europe
3 Australia
4 China
5 Korea
6 Taiwan

AudioOutputMode

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

Value Description
0 1ch
1 2ch
2 5_1ch
3 7_1ch

AudioOutputModeTarget

This is "nn::settings::system::AudioOutputModeTarget".

Value Description
0 Hdmi
1 Speaker
2 Headphone

AudioVolumeTarget

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

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".

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".

Value Description
0 Japan
1 Usa
2 Europe
3 Australia
4 HongKongTaiwanKorea
5 China

UserSelectorFlag

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

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".

Value Description
0 NetworkSystemClock
1 SteadyClock

NotificationVolume

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

Value Description
0 Mute
1 Low
2 High

FriendPresenceOverlayPermission

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

Value Description
0 NotConfirmed
1 NoDisplay
2 FavoriteFriends
3 Friends

TvResolution

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

Value Description
0 Auto
1 1080p
2 720p
3 480p

HdmiContentType

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

Value Description
0 None
1 Graphics
2 Cinema
3 Photo
4 Game

RgbRange

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

Value Description
0 Auto
1 Full
2 Limited

CmuMode

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

Value Description
0 None
1 ColorInvert
2 HighContrast
3 GrayScale

HandheldSleepPlan

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

Value Description
0 1Min
1 3Min
2 5Min
3 10Min
4 30Min
5 Never

ConsoleSleepPlan

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

Value Description
0 1Hour
1 2Hour
2 3Hour
3 6Hour
4 12Hour
5 Never

EulaVersion

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

Offset Size Description
0x0 0x4 Version
0x4 0x4 RegionCode
0x8 0x4 ClockType
0xC 0x4 Reserved
0x10 0x8 NetworkSystemClock
0x18 0x18 SteadyClock

FirmwareVersion

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

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".

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".

Offset Size Description
0x0 0x4 AuthenticationMode
0x4 0x4 EncryptionMode
0x8 0x40 KeyMaterial
0x48 0x4 KeyMaterialLength

NotificationTime

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

Offset Size Description
0x0 0x4 Hour
0x4 0x4 Minute

NotificationFlag

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

Bits Description
0 RingtoneFlag
1 DownloadCompletionFlag
8 EnablesNews
9 IncomingLampFlag

NotificationSettings

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

Offset Size Description
0x0 0x4 Flags
0x4 0x4 Volume
0x8 0x8 HeadTime
0x10 0x8 TailTime

AccountNotificationFlag

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

Bits Description
0 FriendOnlineFlag
1 FriendRequestFlag
8 CoralInvitationFlag

AccountNotificationSettings

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

Offset Size Description
0x0 0x10 Uid
0x10 0x4 Flags
0x14 0x1 FriendPresenceOverlayPermission
0x15 0x1 FriendInvitationOverlayPermission
0x16 0x2 Reserved

TvFlag

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

Bits Description
0 Allows4k
1 Allows3d
2 AllowsCec
3 PreventsScreenBurnIn

TvSettings

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

Offset Size Description
0x0 0x4 Flags
0x4 0x4 TvResolution
0x8 0x4 HdmiContentType
0xC 0x4 RgbRange
0x10 0x4 CmuMode
0x14 0x4 TvUnderscan
0x18 0x4 TvGamma
0x1C 0x4 ContrastRatio

DataDeletionFlag

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

Bits Description
0 AutomaticDeletionFlag

DataDeletionSettings

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

Offset Size Description
0x0 0x4 Flags
0x4 0x4 UseCount

SleepFlag

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

Bits Description
0 SleepsWhilePlayingMedia
1 WakesAtPowerStateChange

SleepSettings

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

Offset Size Description
0x0 0x4 Flags
0x4 0x4 HandheldSleepPlan
0x8 0x4 ConsoleSleepPlan

InitialLaunchFlag

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

Bits Description
0 InitialLaunchCompletionFlag
8 InitialLaunchUserAdditionFlag
16 InitialLaunchTimestampFlag

InitialLaunchSettings

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

Offset Size Description
0x0 0x4 Flags
0x4 0x4 Reserved
0x8 0x18 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.

Offset Size Description
0x0 0x4 Version
0x4 0x1C Reserved
0x20 0x20 DisplayVersion

PrimaryAlbumStorage

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

Value Description
0 Nand
1 SdCard

ErrorReportSharePermission

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

Value Description
0 NotConfirmed
1 Granted
2 Denied

ServiceDiscoveryControlSettings

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

Bits Description
0 IsChangeEnvironmentIdentifierDisabled

AppletLaunchFlag

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

KeyboardLayout

This is "nn::settings::KeyboardLayout".

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".

Value Description
1
2

TouchScreenMode

This is "nn::settings::system::TouchScreenMode".

Value Description
0 Stylus
1 Standard

ButtonConfigSettings

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

Offset Size Description
0x0 0x1 IsFull bool flag. 0 = empty config, 1 = config set. Also accessed as an u32, but only bit0 is used.
0x1 0x3 Padding
0x4 0x1C4 Unused
0x1C8 0x3E0 Config

ButtonConfigRegisteredSettings

This is "nn::settings::system::ButtonConfigRegisteredSettings". This is a 0x5C8-byte struct.

BluetoothDevicesSettings

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

Offset Size Description
0x0 0x6 BdAddr
0x6 0x20 DeviceName
0x26 0x3 ClassOfDevice
0x29 0x10 LinkKey
0x39 0x1 LinkKeyPresent
0x3A 0x2 Version
0x3C 0x4 TrustedServices
0x40 0x2 Vid
0x42 0x2 Pid
0x44 0x1 SubClass
0x45 0x1 AttributeMask
0x46 0x2 DescriptorLength
0x48 0x80 Descriptor
0xC8 0x1 KeyType
0xC9 0x1 DeviceType
0xCA 0x2 BrrSize
0xCC 0x9 Brr
0xD5 0x12B Reserved

NxControllerLegacySettings

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

NxControllerSettings

This is "nn::settings::system::NxControllerSettings". This is a 0x42C-byte struct. This was added with [13.0.0+].

System Configuration

There's a common configuration title (*818), and one configuration title for each HardwareType.

See System_Settings.