Difference between revisions of "Settings services"
(67 intermediate revisions by 4 users not shown) | |||
Line 4: | Line 4: | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
− | ! Cmd || Name || | + | ! 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 |
|} | |} | ||
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. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
= set:fd = | = set:fd = | ||
This is "nn::settings::IFirmwareDebugSettingsServer". | This is "nn::settings::IFirmwareDebugSettingsServer". | ||
− | [4.0.0+] Only exposed if in [[SPL_services# | + | [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]] | ||
|- | |- | ||
− | | | + | | 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. | + | 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 | + | 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 | + | 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 | + | 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 | + | 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 | + | 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 | + | Takes a type-0x16 output buffer containing a [[#GameCardCertificate|GameCardCertificate]]. No output. |
− | Returns | + | == GetEciDeviceKey == |
+ | No input. Returns an [[#EccB233DeviceKey|EccB233DeviceKey]]. | ||
− | |||
Returns the extended device ECC-B233 key (0x50 bytes) from [[Calibration#CAL0|CAL0]]. If the extended key is not programmed then it falls back to the normal device ECC-B233 key (0x30 bytes). | 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 | + | 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 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 returns a RSA-2048 variant of the device key. | + | Same as [[#GetEciDeviceKey]], but returns a [[#Rsa2048DeviceKey|RSA-2048]] variant of the device key. |
+ | |||
+ | == GetAmiiboKey == | ||
+ | No input. Returns an [[#AmiiboKey|AmiiboKey]]. | ||
+ | |||
+ | == GetAmiiboEcqvCertificate == | ||
+ | No input. Returns an [[#AmiiboEcqvCertificate|AmiiboEcqvCertificate]]. | ||
+ | |||
+ | == GetAmiiboEcdsaCertificate == | ||
+ | No input. Returns an [[#AmiiboEcdsaCertificate|AmiiboEcdsaCertificate]]. | ||
+ | |||
+ | == GetAmiiboEcqvBlsKey == | ||
+ | No input. Returns an [[#AmiiboEcqvBlsKey|AmiiboEcqvBlsKey]]. | ||
+ | |||
+ | == GetAmiiboEcqvBlsCertificate == | ||
+ | No input. Returns an [[#AmiiboEcqvBlsCertificate|AmiiboEcqvBlsCertificate]]. | ||
+ | |||
+ | == GetAmiiboEcqvBlsRootCertificate == | ||
+ | No input. Returns an [[#AmiiboEcqvBlsRootCertificate|AmiiboEcqvBlsRootCertificate]]. | ||
− | == | + | == GetUsbTypeCPowerSourceCircuitVersion == |
− | + | No input. Returns an [[Calibration#UsbTypeCPowerSourceCircuit|UsbTypeCPowerSourceCircuitVersion]]. | |
− | | | + | |
− | + | == GetAnalogStickModuleTypeL == | |
− | + | No input. Returns an [[Calibration#AnalogStickModuleType|AnalogStickModuleType]]. | |
− | + | ||
− | | | + | == GetAnalogStickModelParameterL == |
− | | | + | No input. Returns an [[#AnalogStickModelParameter|AnalogStickModelParameter]]. |
− | | | + | |
− | | | + | == GetAnalogStickFactoryCalibrationL == |
− | | | + | No input. Returns an [[#AnalogStickFactoryCalibration|AnalogStickFactoryCalibration]]. |
− | | | + | |
− | + | == GetAnalogStickModuleTypeR == | |
− | | | + | No input. Returns an [[Calibration#AnalogStickModuleType|AnalogStickModuleType]]. |
− | + | ||
+ | == GetAnalogStickModelParameterR == | ||
+ | No input. Returns an [[#AnalogStickModelParameter|AnalogStickModelParameter]]. | ||
+ | |||
+ | == GetAnalogStickFactoryCalibrationR == | ||
+ | No input. Returns an [[#AnalogStickFactoryCalibration|AnalogStickFactoryCalibration]]. | ||
+ | |||
+ | == GetConsoleSixAxisSensorModuleType == | ||
+ | No input. Returns a [[Calibration#ConsoleSixAxisSensorModuleType|ConsoleSixAxisSensorModuleType]]. | ||
+ | |||
+ | == GetConsoleSixAxisSensorHorizontalOffset == | ||
+ | No input. Returns a [[#ConsoleSixAxisSensorHorizontalOffset|ConsoleSixAxisSensorHorizontalOffset]]. | ||
+ | |||
+ | == GetBatteryVersion == | ||
+ | No input. Returns a [[Calibration#BatteryVersion|BatteryVersion]]. | ||
+ | |||
+ | == GetDeviceId == | ||
+ | No input. Returns an u64 '''DeviceId''' by reading and converting the hexadecimal string at offset 0xC6 inside [[#EccB233DeviceCertificate]] or [[#Rsa2048DeviceCertificate]]. | ||
− | + | == GetConsoleSixAxisSensorMountType == | |
+ | No input. Returns a [[Calibration#ConsoleSixAxisSensorMountType|ConsoleSixAxisSensorMountType]]. | ||
= set:sys = | = set:sys = | ||
Line 408: | 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 472: | Line 508: | ||
| 76 || [[#SetInitialLaunchSettings]] | | 76 || [[#SetInitialLaunchSettings]] | ||
|- | |- | ||
− | | 77 || GetDeviceNickName | + | | 77 || [[#GetDeviceNickName]] |
|- | |- | ||
− | | 78 || SetDeviceNickName | + | | 78 || [[#SetDeviceNickName]] |
|- | |- | ||
| 79 || [[#GetProductModel]] | | 79 || [[#GetProductModel]] | ||
Line 556: | Line 592: | ||
| 118 || [3.0.0+] SetHeadphoneVolumeUpdateFlag | | 118 || [3.0.0+] SetHeadphoneVolumeUpdateFlag | ||
|- | |- | ||
− | | 119 || [3.0.0 | + | | 119 || [3.0.0-14.1.2] NeedsToUpdateHeadphoneVolume |
|- | |- | ||
| 120 || [3.0.0+] GetPushNotificationActivityModeOnSleep | | 120 || [3.0.0+] GetPushNotificationActivityModeOnSleep | ||
Line 634: | Line 670: | ||
| 157 || [6.0.0+] SetPctlReadyFlag | | 157 || [6.0.0+] SetPctlReadyFlag | ||
|- | |- | ||
− | | 158 || [ | + | | 158 || [8.1.1+] GetAnalogStickUserCalibrationL |
|- | |- | ||
− | | 159 || [ | + | | 159 || [8.1.1+] SetAnalogStickUserCalibrationL |
|- | |- | ||
− | | 160 || [ | + | | 160 || [8.1.1+] GetAnalogStickUserCalibrationR |
|- | |- | ||
− | | 161 || [ | + | | 161 || [8.1.1+] SetAnalogStickUserCalibrationR |
|- | |- | ||
| 162 || [6.0.0+] GetPtmBatteryVersion | | 162 || [6.0.0+] GetPtmBatteryVersion | ||
Line 666: | Line 702: | ||
| 173 || [7.0.0+] SetPtmCycleCountReliability | | 173 || [7.0.0+] SetPtmCycleCountReliability | ||
|- | |- | ||
− | | 174 || [ | + | | 174 || [8.1.1+] [[#GetHomeMenuScheme]] |
|- | |- | ||
| 175 || [7.0.0+] GetThemeSettings | | 175 || [7.0.0+] GetThemeSettings | ||
Line 695: | 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 787: | 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 816: | Line 912: | ||
== GetAllowedSslHosts == | == GetAllowedSslHosts == | ||
− | Takes a type-0x6 output buffer, returns an output s32. This buffer contains an array of | + | 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 839: | Line 935: | ||
== SetRegionCode == | == SetRegionCode == | ||
− | Takes an input s32 [[#RegionCode]], no output. | + | Takes an input s32 [[#RegionCode_2|RegionCode]], no output. |
== GetChineseTraditionalInputMethod == | == GetChineseTraditionalInputMethod == | ||
Line 888: | 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]]. | ||
− | == AccountSettings | + | == 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 | ||
+ | |} | ||
+ | |||
+ | = RegionCode = | ||
+ | This is "nn::settings::system::RegionCode". | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Value | ||
+ | ! Description | ||
+ | |- | ||
+ | | 0 || Japan | ||
+ | |- | ||
+ | | 1 || Usa | ||
+ | |- | ||
+ | | 2 || Europe | ||
+ | |- | ||
+ | | 3 || Australia | ||
+ | |- | ||
+ | | 4 || HongKongTaiwanKorea | ||
+ | |- | ||
+ | | 5 || China | ||
+ | |} | ||
+ | |||
+ | = UserSelectorFlag = | ||
+ | This is "nn::settings::system::UserSelectorFlag". | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | ! Bits | ||
+ | ! Description | ||
+ | |- | ||
+ | | 0 || SkipsIfSingleUser | ||
+ | |- | ||
+ | | 31 || Unknown | ||
+ | |} | ||
+ | |||
+ | = UserSelectorSettings = | ||
+ | This is "nn::settings::system::UserSelectorSettings". | ||
+ | |||
+ | This contains an u32 bitmask for [[#UserSelectorFlag]]. | ||
+ | |||
+ | = AccountSettings = | ||
This is "nn::settings::system::AccountSettings". | This is "nn::settings::system::AccountSettings". | ||
− | This contains | + | This contains [[#UserSelectorSettings]]. |
+ | |||
+ | = ClockSourceId = | ||
+ | This is "nn::settings::system::ClockSourceId". | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Value | ||
+ | ! Description | ||
+ | |- | ||
+ | | 0 || NetworkSystemClock | ||
+ | |- | ||
+ | | 1 || SteadyClock | ||
+ | |} | ||
+ | |||
+ | = NotificationVolume = | ||
+ | This is "nn::settings::system::NotificationVolume". | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Value | ||
+ | ! Description | ||
+ | |- | ||
+ | | 0 || Mute | ||
+ | |- | ||
+ | | 1 || Low | ||
+ | |- | ||
+ | | 2 || High | ||
+ | |} | ||
+ | |||
+ | = FriendPresenceOverlayPermission = | ||
+ | This is "nn::settings::system::FriendPresenceOverlayPermission". | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Value | ||
+ | ! Description | ||
+ | |- | ||
+ | | 0 || NotConfirmed | ||
+ | |- | ||
+ | | 1 || NoDisplay | ||
+ | |- | ||
+ | | 2 || FavoriteFriends | ||
+ | |- | ||
+ | | 3 || Friends | ||
+ | |} | ||
+ | |||
+ | = TvResolution = | ||
+ | This is "nn::settings::system::TvResolution". | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Value | ||
+ | ! Description | ||
+ | |- | ||
+ | | 0 || Auto | ||
+ | |- | ||
+ | | 1 || 1080p | ||
+ | |- | ||
+ | | 2 || 720p | ||
+ | |- | ||
+ | | 3 || 480p | ||
+ | |} | ||
+ | |||
+ | = HdmiContentType = | ||
+ | This is "nn::settings::system::HdmiContentType". | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Value | ||
+ | ! Description | ||
+ | |- | ||
+ | | 0 || None | ||
+ | |- | ||
+ | | 1 || Graphics | ||
+ | |- | ||
+ | | 2 || Cinema | ||
+ | |- | ||
+ | | 3 || Photo | ||
+ | |- | ||
+ | | 4 || Game | ||
+ | |} | ||
+ | |||
+ | = RgbRange = | ||
+ | This is "nn::settings::system::RgbRange". | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Value | ||
+ | ! Description | ||
+ | |- | ||
+ | | 0 || Auto | ||
+ | |- | ||
+ | | 1 || Full | ||
+ | |- | ||
+ | | 2 || Limited | ||
+ | |} | ||
+ | |||
+ | = CmuMode = | ||
+ | This is "nn::settings::system::CmuMode". | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
− | |||
− | |||
|- | |- | ||
− | + | ! Value | |
+ | ! Description | ||
|- | |- | ||
− | | | + | | 0 || None |
+ | |- | ||
+ | | 1 || ColorInvert | ||
+ | |- | ||
+ | | 2 || HighContrast | ||
+ | |- | ||
+ | | 3 || GrayScale | ||
+ | |} | ||
+ | |||
+ | = HandheldSleepPlan = | ||
+ | This is "nn::settings::system::HandheldSleepPlan". | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Value | ||
+ | ! Description | ||
+ | |- | ||
+ | | 0 || 1Min | ||
+ | |- | ||
+ | | 1 || 3Min | ||
+ | |- | ||
+ | | 2 || 5Min | ||
+ | |- | ||
+ | | 3 || 10Min | ||
+ | |- | ||
+ | | 4 || 30Min | ||
+ | |- | ||
+ | | 5 || Never | ||
+ | |} | ||
+ | |||
+ | = ConsoleSleepPlan = | ||
+ | This is "nn::settings::system::ConsoleSleepPlan". | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Value | ||
+ | ! Description | ||
+ | |- | ||
+ | | 0 || 1Hour | ||
+ | |- | ||
+ | | 1 || 2Hour | ||
+ | |- | ||
+ | | 2 || 3Hour | ||
+ | |- | ||
+ | | 3 || 6Hour | ||
+ | |- | ||
+ | | 4 || 12Hour | ||
+ | |- | ||
+ | | 5 || Never | ||
|} | |} | ||
− | + | = EulaVersion = | |
This is "nn::settings::system::EulaVersion". | This is "nn::settings::system::EulaVersion". | ||
Line 909: | Line 1,657: | ||
! Offset || Size || Description | ! Offset || Size || Description | ||
|- | |- | ||
− | | 0x0 || | + | | 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]] | ||
|} | |} | ||
− | == NotificationSettings | + | = FirmwareVersion = |
+ | This is "nn::settings::system::FirmwareVersion". | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Offset || Size || Description | ||
+ | |- | ||
+ | | 0x0 || 0x1 || Major | ||
+ | |- | ||
+ | | 0x1 || 0x1 || Minor | ||
+ | |- | ||
+ | | 0x2 || 0x1 || Micro | ||
+ | |- | ||
+ | | 0x3 || 0x1 || Reserved | ||
+ | |- | ||
+ | | 0x4 || 0x4 || ReleaseNumber | ||
+ | |- | ||
+ | | 0x8 || 0x20 || Platform | ||
+ | |- | ||
+ | | 0x28 || 0x40 || Revision | ||
+ | |- | ||
+ | | 0x68 || 0x18 || DisplayVersion | ||
+ | |- | ||
+ | | 0x80 || 0x80 || DisplayName | ||
+ | |} | ||
+ | |||
+ | = PtmFuelGaugeParameter = | ||
+ | This is "nn::settings::system::PtmFuelGaugeParameter". | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Offset || Size || Description | ||
+ | |- | ||
+ | | 0x0 || 0x2 || Rcomp0 | ||
+ | |- | ||
+ | | 0x2 || 0x2 || TempCo | ||
+ | |- | ||
+ | | 0x4 || 0x2 || FullCap | ||
+ | |- | ||
+ | | 0x6 || 0x2 || FullCapNom | ||
+ | |- | ||
+ | | 0x8 || 0x2 || IavgEmpty | ||
+ | |- | ||
+ | | 0xA || 0x2 || QrTable00 | ||
+ | |- | ||
+ | | 0xC || 0x2 || QrTable10 | ||
+ | |- | ||
+ | | 0xE || 0x2 || QrTable20 | ||
+ | |- | ||
+ | | 0x10 || 0x2 || QrTable30 | ||
+ | |- | ||
+ | | 0x12 || 0x2 || Reserved | ||
+ | |- | ||
+ | | 0x14 || 0x4 || Cycles | ||
+ | |} | ||
+ | |||
+ | = SecuritySettings = | ||
+ | This is "nn::settings::system::SecuritySettings". | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Offset || Size || Description | ||
+ | |- | ||
+ | | 0x0 || 0x4 || AuthenticationMode | ||
+ | |- | ||
+ | | 0x4 || 0x4 || EncryptionMode | ||
+ | |- | ||
+ | | 0x8 || 0x40 || KeyMaterial | ||
+ | |- | ||
+ | | 0x48 || 0x4 || KeyMaterialLength | ||
+ | |} | ||
+ | |||
+ | = NotificationTime = | ||
+ | This is "nn::settings::system::NotificationTime". | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Offset || Size || Description | ||
+ | |- | ||
+ | | 0x0 || 0x4 || Hour | ||
+ | |- | ||
+ | | 0x4 || 0x4 || Minute | ||
+ | |} | ||
+ | |||
+ | = NotificationFlag = | ||
+ | This is "nn::settings::system::NotificationFlag". | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | ! Bits | ||
+ | ! Description | ||
+ | |- | ||
+ | | 0 || RingtoneFlag | ||
+ | |- | ||
+ | | 1 || DownloadCompletionFlag | ||
+ | |- | ||
+ | | 8 || EnablesNews | ||
+ | |- | ||
+ | | 9 || IncomingLampFlag | ||
+ | |} | ||
+ | |||
+ | = NotificationSettings = | ||
This is "nn::settings::system::NotificationSettings". | This is "nn::settings::system::NotificationSettings". | ||
Line 920: | Line 1,777: | ||
! Offset || Size || Description | ! Offset || Size || Description | ||
|- | |- | ||
− | | 0x0 || 0x4 || | + | | 0x0 || 0x4 || [[#NotificationFlag|Flags]] |
|- | |- | ||
− | | 0x4 || 0x4 || | + | | 0x4 || 0x4 || [[#NotificationVolume|Volume]] |
|- | |- | ||
− | | 0x8 || | + | | 0x8 || 0x8 || [[#NotificationTime|HeadTime]] |
|- | |- | ||
− | | | + | | 0x10 || 0x8 || [[#NotificationTime|TailTime]] |
+ | |} | ||
+ | |||
+ | = AccountNotificationFlag = | ||
+ | This is "nn::settings::system::AccountNotificationFlag". | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | ! Bits | ||
+ | ! Description | ||
|- | |- | ||
− | | | + | | 0 || FriendOnlineFlag |
|- | |- | ||
− | | | + | | 1 || FriendRequestFlag |
|- | |- | ||
+ | | 8 || CoralInvitationFlag | ||
|} | |} | ||
− | + | = AccountNotificationSettings = | |
This is "nn::settings::system::AccountNotificationSettings". | This is "nn::settings::system::AccountNotificationSettings". | ||
Line 941: | Line 1,807: | ||
! Offset || Size || Description | ! Offset || Size || Description | ||
|- | |- | ||
− | | 0x0 || | + | | 0x0 || 0x10 || [[Account_services#Uid|Uid]] |
+ | |- | ||
+ | | 0x10 || 0x4 || [[#AccountNotificationFlag|Flags]] | ||
+ | |- | ||
+ | | 0x14 || 0x1 || [[#FriendPresenceOverlayPermission|FriendPresenceOverlayPermission]] | ||
+ | |- | ||
+ | | 0x15 || 0x1 || [[#FriendPresenceOverlayPermission|FriendInvitationOverlayPermission]] | ||
|- | |- | ||
+ | | 0x16 || 0x2 || Reserved | ||
|} | |} | ||
− | == TvSettings | + | = TvFlag = |
+ | This is "nn::settings::system::TvFlag". | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | ! Bits | ||
+ | ! Description | ||
+ | |- | ||
+ | | 0 || Allows4k | ||
+ | |- | ||
+ | | 1 || Allows3d | ||
+ | |- | ||
+ | | 2 || AllowsCec | ||
+ | |- | ||
+ | | 3 || PreventsScreenBurnIn | ||
+ | |} | ||
+ | |||
+ | = TvSettings = | ||
This is "nn::settings::system::TvSettings". | This is "nn::settings::system::TvSettings". | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
− | | 0x0 || 0x4 || | + | ! Offset || Size || Description |
+ | |- | ||
+ | | 0x0 || 0x4 || [[#TvFlag|Flags]] | ||
|- | |- | ||
− | | 0x4 || 0x4 || | + | | 0x4 || 0x4 || [[#TvResolution|TvResolution]] |
|- | |- | ||
− | | 0x8 || 0x4 || | + | | 0x8 || 0x4 || [[#HdmiContentType|HdmiContentType]] |
|- | |- | ||
− | | 0xC || 0x4 || | + | | 0xC || 0x4 || [[#RgbRange|RgbRange]] |
|- | |- | ||
− | | 0x10 || 0x4 || | + | | 0x10 || 0x4 || [[#CmuMode|CmuMode]] |
|- | |- | ||
− | | 0x14 || 0x4 || | + | | 0x14 || 0x4 || TvUnderscan |
|- | |- | ||
− | | 0x18 || 0x4 || | + | | 0x18 || 0x4 || TvGamma |
|- | |- | ||
− | | 0x1C || 0x4 || | + | | 0x1C || 0x4 || ContrastRatio |
+ | |} | ||
+ | |||
+ | = DataDeletionFlag = | ||
+ | This is "nn::settings::system::DataDeletionFlag". | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | ! Bits | ||
+ | ! Description | ||
|- | |- | ||
+ | | 0 || AutomaticDeletionFlag | ||
|} | |} | ||
− | + | = DataDeletionSettings = | |
This is "nn::settings::system::DataDeletionSettings". | This is "nn::settings::system::DataDeletionSettings". | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
− | | | + | ! Offset || Size || Description |
|- | |- | ||
− | | | + | | 0x0 || 0x4 || [[#DataDeletionFlag|Flags]] |
|- | |- | ||
+ | | 0x4 || 0x4 || UseCount | ||
|} | |} | ||
− | = | + | = SleepFlag = |
− | This is "nn::settings:: | + | This is "nn::settings::system::SleepFlag". |
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
+ | ! Bits | ||
+ | ! Description | ||
|- | |- | ||
− | | | + | | 0 || SleepsWhilePlayingMedia |
|- | |- | ||
+ | | 1 || WakesAtPowerStateChange | ||
|} | |} | ||
− | + | = SleepSettings = | |
This is "nn::settings::system::SleepSettings". | This is "nn::settings::system::SleepSettings". | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
− | | 0x0 || 0x4 || | + | ! Offset || Size || Description |
+ | |- | ||
+ | | 0x0 || 0x4 || [[#SleepFlag|Flags]] | ||
+ | |- | ||
+ | | 0x4 || 0x4 || [[#HandheldSleepPlan|HandheldSleepPlan]] | ||
+ | |- | ||
+ | | 0x8 || 0x4 || [[#ConsoleSleepPlan|ConsoleSleepPlan]] | ||
+ | |} | ||
+ | |||
+ | = InitialLaunchFlag = | ||
+ | This is "nn::settings::system::InitialLaunchFlag". | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | ! Bits | ||
+ | ! Description | ||
|- | |- | ||
− | | | + | | 0 || InitialLaunchCompletionFlag |
|- | |- | ||
− | | | + | | 8 || InitialLaunchUserAdditionFlag |
|- | |- | ||
+ | | 16 || InitialLaunchTimestampFlag | ||
|} | |} | ||
− | + | = InitialLaunchSettings = | |
This is "nn::settings::system::InitialLaunchSettings". This struct is 8-byte aligned. | This is "nn::settings::system::InitialLaunchSettings". This struct is 8-byte aligned. | ||
Line 1,008: | Line 1,927: | ||
! Offset || Size || Description | ! Offset || Size || Description | ||
|- | |- | ||
− | | 0x0 || | + | | 0x0 || 0x4 || [[#InitialLaunchFlag|Flags]] |
|- | |- | ||
+ | | 0x4 || 0x4 || Reserved | ||
+ | |- | ||
+ | | 0x8 || 0x18 || [[Glue_services#SteadyClockTimePoint|TimeStamp]] | ||
|} | |} | ||
− | + | = RebootlessSystemUpdateVersion = | |
This is "nn::settings::system::RebootlessSystemUpdateVersion". This struct is 4-byte aligned. | This is "nn::settings::system::RebootlessSystemUpdateVersion". This struct is 4-byte aligned. | ||
+ | |||
+ | This is the content of the RebootlessSystemUpdateVersion SystemData, in the "/version" file. | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
Line 1,019: | Line 1,943: | ||
! Offset || Size || Description | ! Offset || Size || Description | ||
|- | |- | ||
− | | 0x0 || | + | | 0x0 || 0x4 || Version |
|- | |- | ||
+ | | 0x4 || 0x1C || Reserved | ||
+ | |- | ||
+ | | 0x20 || 0x20 || DisplayVersion | ||
|} | |} | ||
− | + | = PrimaryAlbumStorage = | |
This is "nn::settings::system::PrimaryAlbumStorage". | This is "nn::settings::system::PrimaryAlbumStorage". | ||
− | + | {| class="wikitable" border="1" | |
+ | |- | ||
+ | ! Value | ||
+ | ! Description | ||
+ | |- | ||
+ | | 0 || Nand | ||
+ | |- | ||
+ | | 1 || SdCard | ||
+ | |} | ||
− | + | = ErrorReportSharePermission = | |
This is "nn::settings::system::ErrorReportSharePermission". | This is "nn::settings::system::ErrorReportSharePermission". | ||
− | == ServiceDiscoveryControlSettings | + | {| class="wikitable" border="1" |
− | This is | + | |- |
+ | ! Value | ||
+ | ! Description | ||
+ | |- | ||
+ | | 0 || NotConfirmed | ||
+ | |- | ||
+ | | 1 || Granted | ||
+ | |- | ||
+ | | 2 || Denied | ||
+ | |} | ||
+ | |||
+ | = ServiceDiscoveryControlSettings = | ||
+ | This is "nn::settings::system::ServiceDiscoveryControlSettings". | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
− | ! | + | ! Bits |
− | ! | + | ! Description |
|- | |- | ||
| 0 | | 0 | ||
Line 1,042: | Line 1,989: | ||
|} | |} | ||
− | + | = AppletLaunchFlag = | |
This is "nn::settings::system::AppletLaunchFlag". This is an u32 bitmask. | This is "nn::settings::system::AppletLaunchFlag". This is an u32 bitmask. | ||
− | + | = KeyboardLayout = | |
This is "nn::settings::KeyboardLayout". | This is "nn::settings::KeyboardLayout". | ||
− | == ChineseTraditionalInputMethod | + | {| class="wikitable" border="1" |
+ | |- | ||
+ | ! Value | ||
+ | ! Description | ||
+ | |- | ||
+ | | 1 || EnglishUs | ||
+ | |- | ||
+ | | 2 || EnglishUsInternational | ||
+ | |- | ||
+ | | 3 || EnglishUk | ||
+ | |- | ||
+ | | 4 || French | ||
+ | |- | ||
+ | | 5 || FrenchCa | ||
+ | |- | ||
+ | | 6 || Spanish | ||
+ | |- | ||
+ | | 7 || SpanishLatin | ||
+ | |- | ||
+ | | 8 || German | ||
+ | |- | ||
+ | | 9 || Italian | ||
+ | |- | ||
+ | | 10 || Portuguese | ||
+ | |- | ||
+ | | 11 || Russian | ||
+ | |- | ||
+ | | 12 || Korean | ||
+ | |- | ||
+ | | 13 || ChineseSimplified | ||
+ | |- | ||
+ | | 14 || ChineseTraditional | ||
+ | |} | ||
+ | |||
+ | = ChineseTraditionalInputMethod = | ||
This is "nn::settings::ChineseTraditionalInputMethod". | This is "nn::settings::ChineseTraditionalInputMethod". | ||
− | == TouchScreenMode | + | {| class="wikitable" border="1" |
+ | |- | ||
+ | ! Value | ||
+ | ! Description | ||
+ | |- | ||
+ | | 1 || | ||
+ | |- | ||
+ | | 2 || | ||
+ | |} | ||
+ | |||
+ | = TouchScreenMode = | ||
This is "nn::settings::system::TouchScreenMode". | This is "nn::settings::system::TouchScreenMode". | ||
− | This is an | + | {| class="wikitable" border="1" |
− | + | |- | |
− | + | ! Value | |
+ | ! Description | ||
+ | |- | ||
+ | | 0 || Stylus | ||
+ | |- | ||
+ | | 1 || Standard | ||
+ | |} | ||
+ | |||
+ | = ButtonConfigSettings = | ||
+ | This is "nn::settings::system::ButtonConfigSettings". This is a 0x5A8-byte struct. | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Offset || Size || Description | ||
+ | |- | ||
+ | | 0x0 || 0x1 || IsFull bool flag. 0 = empty config, 1 = config set. Also accessed as an u32, but only bit0 is used. | ||
+ | |- | ||
+ | | 0x1 || 0x3 || Padding | ||
+ | |- | ||
+ | | 0x4 || 0x1C4 || Unused | ||
+ | |- | ||
+ | | 0x1C8 || 0x3E0 || Config | ||
+ | |} | ||
+ | |||
+ | = ButtonConfigRegisteredSettings = | ||
+ | This is "nn::settings::system::ButtonConfigRegisteredSettings". This is a 0x5C8-byte struct. | ||
+ | |||
+ | = BluetoothDevicesSettings = | ||
+ | This is "nn::settings::system::BluetoothDevicesSettings". This is a 0x200-byte struct. | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Offset || Size || Description | ||
+ | |- | ||
+ | | 0x0 || 0x6 || [[BTM_services#BdAddress|BdAddr]] | ||
+ | |- | ||
+ | | 0x6 || 0x20 || [[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 | + | = System Configuration = |
− | There's a common | + | 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 00:11, 27 September 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".
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.
No input, returns an output s32 #ErrorReportSharePermission.
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 |
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 |
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.