Line 14: |
Line 14: |
| | 3 || GetAvailableLanguageCodeCount || No input, returns an output s32. | | | 3 || GetAvailableLanguageCodeCount || No input, returns an output s32. |
| |- | | |- |
− | | 4 || GetRegionCode || No input, returns an output s32. | + | | 4 || GetRegionCode || No input, returns a [[#RegionCode]]. |
| |- | | |- |
| | 5 || [4.0.0+] GetAvailableLanguageCodes2 || Takes a type-0x6 buffer containing the [[#LanguageCode]] output array, returns an output s32. | | | 5 || [4.0.0+] GetAvailableLanguageCodes2 || Takes a type-0x6 buffer containing the [[#LanguageCode]] output array, returns an output s32. |
Line 20: |
Line 20: |
| | 6 || [4.0.0+] GetAvailableLanguageCodeCount2 || No input, returns an output s32. | | | 6 || [4.0.0+] GetAvailableLanguageCodeCount2 || No input, returns an output s32. |
| |- | | |- |
− | | 7 || [4.0.0+] GetKeyCodeMap || | + | | 7 || [4.0.0+] [[#GetKeyCodeMap]] || |
| |- | | |- |
| | 8 || [5.0.0+] GetQuestFlag || Identical to "set:sys" [[#set:sys|GetQuestFlag]]. | | | 8 || [5.0.0+] GetQuestFlag || Identical to "set:sys" [[#set:sys|GetQuestFlag]]. |
| + | |- |
| + | | 9 || [6.0.0+] GetKeyCodeMap2 || |
| + | |- |
| + | | 10 || [9.0.0+] [[#GetFirmwareVersionForDebug]] || |
| |} | | |} |
| | | |
Line 33: |
Line 37: |
| == GetKeyCodeMap == | | == GetKeyCodeMap == |
| Takes a type-0x16 output buffer containing KeyCodeMap, official sw uses fixed size 0x1000. This is probably related to HID keyboard. | | Takes a type-0x16 output buffer containing KeyCodeMap, official sw uses fixed size 0x1000. This is 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 [[System_Version_Title|output]] being copied to the output buffer. |
| | | |
| == Language == | | == Language == |
Line 44: |
Line 55: |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
− | ! Array-index / [[#Language]] || [[#LanguageCode]] || Icon [[NCA_Content_FS#FS-type3|language]] filename | + | ! Array-index / [[#Language]] || [[#LanguageCode]] || Icon [[NCA_Content_FS#FS-type3|language]] filename || Name |
| |- | | |- |
− | | 0 || ja || "Japanese" | + | | 0 || ja || "Japanese" || Japanese |
| |- | | |- |
− | | 1 || en-US || "AmericanEnglish" | + | | 1 || en-US || "AmericanEnglish" || EnglishUs |
| |- | | |- |
− | | 2 || fr || "French" | + | | 2 || fr || "French" || French |
| |- | | |- |
− | | 3 || de || "German" | + | | 3 || de || "German" || German |
| |- | | |- |
− | | 4 || it || "Italian" | + | | 4 || it || "Italian" || Italian |
| |- | | |- |
− | | 5 || es || "Spanish" | + | | 5 || es || "Spanish" || Spanish |
| |- | | |- |
− | | 6 || zh-CN || "Chinese" | + | | 6 || zh-CN || "Chinese" || Chinese |
| |- | | |- |
− | | 7 || ko || "Korean" | + | | 7 || ko || "Korean" || Korean |
| |- | | |- |
− | | 8 || nl || "Dutch" | + | | 8 || nl || "Dutch" || Dutch |
| |- | | |- |
− | | 9 || pt || "Portuguese" | + | | 9 || pt || "Portuguese" || Portuguese |
| |- | | |- |
− | | 10 || ru || "Russian" | + | | 10 || ru || "Russian" || Russian |
| |- | | |- |
− | | 11 || zh-TW || "Taiwanese" | + | | 11 || zh-TW || "Taiwanese" || Taiwanese |
| |- | | |- |
− | | 12 || en-GB || "BritishEnglish" | + | | 12 || en-GB || "BritishEnglish" || EnglishUk |
| |- | | |- |
− | | 13 || fr-CA || "CanadianFrench" | + | | 13 || fr-CA || "CanadianFrench" || FrenchCa |
| |- | | |- |
− | | 14 || es-419 || "LatinAmericanSpanish" | + | | 14 || es-419 || "LatinAmericanSpanish" || SpanishLatin |
| |- | | |- |
− | | [4.0.0+] 15 || zh-Hans || "SimplifiedChinese" | + | | [4.0.0+] 15 || zh-Hans || "SimplifiedChinese" || ChineseSimplified |
| + | |- |
| + | | [4.0.0+] 16 || zh-Hant || "TraditionalChinese" || ChineseTraditional |
| + | |} |
| + | |
| + | == RegionCode == |
| + | A region code is a signed 32-bit value representing a particular region. Currently the available regions defined by the system are as follows: |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Value || Region |
| + | |- |
| + | | 0 || Japan |
| + | |- |
| + | | 1 || USA |
| + | |- |
| + | | 2 || Europe |
| + | |- |
| + | | 3 || Australia |
| + | |- |
| + | | 4 || China |
| + | |- |
| + | | 5 || Korea |
| + | |- |
| + | | 6 || Taiwan |
| + | |- |
| + | | Any other value || Considered an unknown region |
| |- | | |- |
− | | [4.0.0+] 16 || zh-Hant || "TraditionalChinese"
| |
| |} | | |} |
| | | |
Line 88: |
Line 124: |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
− | ! Cmd || Name || Notes | + | ! Cmd || Name |
| + | |- |
| + | | 2 || SetSettingsItemValue |
| |- | | |- |
− | | 2 || SetSettingsItemValue || | + | | 3 || ResetSettingsItemValue |
| |- | | |- |
− | | 3 || ResetSettingsItemValue || | + | | 4 || [[#ISettingsItemKeyIterator|CreateSettingsItemKeyIterator]] |
| |- | | |- |
− | | 4 || CreateSettingsItemKeyIterator || Returns an [[#ISettingsItemKeyIterator]]. | + | | 10 || [4.0.0+] ReadSettings |
| |- | | |- |
− | | 10 || [4.0.0+] ReadSettings || | + | | 11 || [4.0.0+] ResetSettings |
| |- | | |- |
− | | 11 || [4.0.0+] ResetSettings || | + | | 20 || [4.0.0+] SetWebInspectorFlag |
| |- | | |- |
− | | 20 || [4.0.0+] SetWebInspectorFlag || | + | | 21 || [4.0.0+] SetAllowedSslHosts |
| |- | | |- |
− | | 21 || [4.0.0+] SetAllowedSslHosts || | + | | 22 || [4.0.0+] SetHostFsMountPoint |
| |- | | |- |
− | | 22 || [4.0.0+] SetHostFsMountPoint || | + | | 23 || [9.0.0+] SetMemoryUsageRateFlag |
| |} | | |} |
| | | |
Line 172: |
Line 210: |
| | 23 || [4.0.0+] GetLcdVendorId | | | 23 || [4.0.0+] GetLcdVendorId |
| |- | | |- |
− | | 24 || [5.0.0+] GetEciDeviceCertificate2 | + | | 24 || [5.0.0+] [[#GetEciDeviceCertificate2]] |
| |- | | |- |
− | | 25 || [5.0.0+] GetEciDeviceKey2 | + | | 25 || [5.0.0+] [[#GetEciDeviceKey2]] |
| |- | | |- |
| | 26 || [5.0.0+] GetAmiiboKey | | | 26 || [5.0.0+] GetAmiiboKey |
Line 188: |
Line 226: |
| | 31 || [5.0.0+] GetAmiiboEcqvBlsRootCertificate | | | 31 || [5.0.0+] GetAmiiboEcqvBlsRootCertificate |
| |- | | |- |
− | | 32 || [5.0.0+] GetUnknownId | + | | 32 || [5.0.0+] GetUsbTypeCPowerSourceCircuitVersion |
| + | |- |
| + | | 33 || [9.0.0+] GetAnalogStickModuleTypeL |
| + | |- |
| + | | 34 || [9.0.0+] GetAnalogStickModelParameterL |
| + | |- |
| + | | 35 || [9.0.0+] GetAnalogStickFactoryCalibrationL |
| + | |- |
| + | | 36 || [9.0.0+] GetAnalogStickModuleTypeR |
| |- | | |- |
− | | 33 || [6.0.0+] GetUnknownId2 | + | | 37 || [9.0.0+] GetAnalogStickModelParameterR |
| + | |- |
| + | | 38 || [9.0.0+] GetAnalogStickFactoryCalibrationR |
| + | |- |
| + | | 39 || [9.0.0+] GetConsoleSixAxisSensorModuleType |
| + | |- |
| + | | 40 || [9.0.0+] GetConsoleSixAxisSensorHorizontalOffset |
| + | |- |
| + | | 41 || [6.0.0+] GetBatteryVersion |
| |} | | |} |
| | | |
Line 231: |
Line 285: |
| == GetEciDeviceKey == | | == GetEciDeviceKey == |
| 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). |
| + | |
| + | [5.0.0+] Now returns an additional 4-bytes. |
| | | |
| == GetEticketDeviceKey == | | == GetEticketDeviceKey == |
Line 236: |
Line 292: |
| | | |
| 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). |
| + | |
| + | == 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. |
| | | |
| == setcal Container Structure == | | == setcal Container Structure == |
Line 555: |
Line 617: |
| |- | | |- |
| | 149 || [5.0.0+] GetRebootlessSystemUpdateVersion | | | 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 || [9.0.0+] GetAnalogStickUserCalibrationL |
| + | |- |
| + | | 159 || [9.0.0+] SetAnalogStickUserCalibrationL |
| + | |- |
| + | | 160 || [9.0.0+] GetAnalogStickUserCalibrationR |
| + | |- |
| + | | 161 || [9.0.0+] 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 || [9.0.0+] [[#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 |
| |} | | |} |
| | | |
Line 603: |
Line 743: |
| 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. | | 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. |
| | | |
− | =System Config= | + | == GetHomeMenuScheme == |
− | There's a common config title (*818), and a config title for each [[SPL_services|HardwareType]].
| + | No input, returns an output 0x14-byte struct "nn::settings::system::HomeMenuScheme". |
| + | |
| + | This struct contains 5 RGBA8 u32s for colors. |
| + | |
| + | 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 flag. |
| + | |
| + | [9.0.0+] This is a wrapper for [[#GetPlatformRegion]]: <code>flag = PlatformRegion==2</code>. |
| + | |
| + | == SetT == |
| + | Takes an input u8 bool flag, no output. |
| + | |
| + | [9.0.0+] This is a wrapper for [[#SetPlatformRegion]]: <code>PlatformRegion = 1 + (flag & 1)</code>. |
| + | |
| + | == GetPlatformRegion == |
| + | No input, returns an output s32. |
| + | |
| + | == SetPlatformRegion == |
| + | Takes an input s32, no output. |
| + | |
| + | == GetHomeMenuSchemeModel == |
| + | No input, returns an output u32. |
| | | |
− | [5.0.0+] New config fields were added to the HardwareType-specific config: | + | Loads the 0xB-byte setting <"settings_debug", "home_menu_scheme_model">. Depending on the content of the setting, the output u32 is either determined by the value of this setting, or loaded from [[Calibration]]. |
| | | |
− | * "systeminitializer!eks_enabled" 1 for non-Mariko, 0 otherwise. | + | = System Config = |
− | * "systeminitializer!bct_eks_offset" Offset within the [[BCT]] where the [[Flash_Filesystem|keyblob]]/"EKS" is stored.
| + | There's a common config title (*818), and a config title for each [[SPL_services|HardwareType]]. |
− | * "systeminitializer!bct_version_offset" Offset within the [[BCT]] where the keyblob version is stored (bootloader0_info.version).
| |
− | * "systeminitializer!boot_image_update_type" 0 for non-Mariko, 1 otherwise.
| |
| | | |
− | "bct_eks_offset" and "bct_version_offset" are only present in non-Mariko config, since (?) Mariko "eks_enabled" is 0. This presumably means the [[Flash_Filesystem|keyblob]]/"EKS" is not embedded in [[BCT]] with Mariko?
| + | See [[System_Settings]]. |
| | | |
| [[Category:Services]] | | [[Category:Services]] |