Settings services: Difference between revisions

No edit summary
No edit summary
(21 intermediate revisions by 2 users not shown)
Line 228: Line 228:
| 32 || [5.0.0+] GetUsbTypeCPowerSourceCircuitVersion
| 32 || [5.0.0+] GetUsbTypeCPowerSourceCircuitVersion
|-
|-
| 33 || [9.0.0+] GetAnalogStickModuleTypeL
| 33 || [8.1.1+] GetAnalogStickModuleTypeL
|-
|-
| 34 || [9.0.0+] GetAnalogStickModelParameterL
| 34 || [8.1.1+] GetAnalogStickModelParameterL
|-
|-
| 35 || [9.0.0+] GetAnalogStickFactoryCalibrationL
| 35 || [8.1.1+] GetAnalogStickFactoryCalibrationL
|-
|-
| 36 || [9.0.0+] GetAnalogStickModuleTypeR
| 36 || [8.1.1+] GetAnalogStickModuleTypeR
|-
|-
| 37 || [9.0.0+] GetAnalogStickModelParameterR
| 37 || [8.1.1+] GetAnalogStickModelParameterR
|-
|-
| 38 || [9.0.0+] GetAnalogStickFactoryCalibrationR
| 38 || [8.1.1+] GetAnalogStickFactoryCalibrationR
|-
|-
| 39 || [9.0.0+] GetConsoleSixAxisSensorModuleType
| 39 || [8.1.1+] GetConsoleSixAxisSensorModuleType
|-
|-
| 40 || [9.0.0+] GetConsoleSixAxisSensorHorizontalOffset
| 40 || [8.1.1+] GetConsoleSixAxisSensorHorizontalOffset
|-
|-
| 41 || [6.0.0+] GetBatteryVersion
| 41 || [6.0.0+] GetBatteryVersion
Line 250: Line 250:


== GetEciDeviceCertificate ==
== GetEciDeviceCertificate ==
Takes a type-0x16 output buffer with fixed size 0x180.
Takes a type-0x16 output buffer containing a [[#EccB233DeviceCertificate]].


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 with fixed size 0x240.
Takes a type-0x16 output buffer containing a [[#Rsa2048DeviceCertificate]].


Returns the ETicket certificate (RSA signed).
Returns the ETicket certificate (RSA signed).


== GetSslKey ==
== GetSslKey ==
Takes a type-0x16 output buffer with fixed size 0x134.
Takes a type-0x16 output buffer containing a [[#SslKey]].


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 267:


== GetSslCertificate ==
== GetSslCertificate ==
Takes a type-0x16 output buffer with fixed size 0x804.
Takes a type-0x16 output buffer containing a [[#SslCertificate]].
 
Returns a [[Settings_services#setcal_Container_Structure|container]] with the plaintext SSL certificate.


Used by SSL-sysmodule, see [[SSL_services|here]].
Used by SSL-sysmodule, see [[SSL_services|here]].


== GetGameCardKey ==
== GetGameCardKey ==
Takes a type-0x16 output buffer with fixed size 0x134.
Takes a type-0x16 output buffer containing a [[#GameCardKey]].


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 with fixed size 0x404.
Takes a type-0x16 output buffer containing a [[#GameCardCertificate]].


Returns a [[Settings_services#setcal_Container_Structure|container]] with the GameCard certificate.
== GetEciDeviceKey ==
No input, returns an [[#EccB233DeviceKey]].


== 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 ==
Takes a type-0x16 output buffer with fixed size 0x244.
Takes a type-0x16 output buffer containing a [[#Rsa2048DeviceKey]].


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 ==
== GetEciDeviceCertificate2 ==
Same as [[#GetEciDeviceCertificate]], but returns a RSA-2048 variant of the device certificate.
Same as [[#GetEciDeviceCertificate]], but [[#Rsa2048DeviceCertificate|returns]] a 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 [[#Rsa2048DeviceKey|returns]] a RSA-2048 variant of the device key.
 
== AccelerometerOffset ==
This is "nn::settings::factory::AccelerometerOffset". It's size is 0x06 bytes.
 
== AccelerometerScale ==
This is "nn::settings::factory::AccelerometerScale". It's size is 0x06 bytes.
 
== AmiiboEcdsaCertificate ==
This is "nn::settings::factory::AmiiboEcdsaCertificate". It's size is 0x70 bytes.
 
== AmiiboEcqvBlsCertificate ==
This is "nn::settings::factory::AmiiboEcqvBlsCertificate". It's size is 0x20 bytes.
 
== AmiiboEcqvBlsKey ==
This is "nn::settings::factory::AmiiboEcqvBlsKey". It's size is 0x40 bytes.
 
If [[Calibration#CAL0|Calibration Version]] >= 9, this is now:
{| class="wikitable" border="1"
|-
! Offset
! Size
! Name
|-
| 0x0
| 0x40
| Key
|-
| 0x44
| 0x4
| Key generation
|}
 
== AmiiboEcqvBlsRootCertificate ==
This is "nn::settings::factory::AmiiboEcqvBlsRootCertificate". It's size is 0x90 bytes.
 
== AmiiboEcqvCertificate ==
This is "nn::settings::factory::AmiiboEcqvCertificate". It's size is 0x14 bytes.
 
== AmiiboKey ==
This is "nn::settings::factory::AmiiboKey". It's size is 0x50 bytes.
 
If [[Calibration#CAL0|Calibration Version]] >= 9, this is now:
{| class="wikitable" border="1"
|-
! Offset
! Size
! Name
|-
| 0x0
| 0x50
| Key
|-
| 0x50
| 0x4
| Key generation
|}
 
== AnalogStickFactoryCalibration ==
This is "nn::settings::factory::AnalogStickFactoryCalibration". It's size is 0x09 bytes.
 
== AnalogStickModelParameter ==
This is "nn::settings::factory::AnalogStickModelParameter". It's size is 0x12 bytes.
 
== BatteryLot ==
This is "nn::settings::BatteryLot". It's size is 0x18 bytes.
 
== BdAddress ==
This is "nn::settings::factory::BdAddress". It's size is 0x06 bytes.
 
== ConfigurationId1 ==
This is "nn::settings::factory::ConfigurationId1". It's size is 0x1E bytes.
 
== ConsoleSixAxisSensorHorizontalOffset ==
This is "nn::settings::factory::ConsoleSixAxisSensorHorizontalOffset". It's size is 0x06 bytes.
 
== CountryCode ==
This is "nn::settings::factory::CountryCode". It's size is 0x04 bytes.
 
== EccB233DeviceCertificate ==
This is "nn::settings::factory::EccB233DeviceCertificate". It's size is 0x180 bytes.
 
== EccB233DeviceKey ==
This is "nn::settings::factory::EccB233DeviceKey". It's size is 0x30 bytes or 0x54 bytes in the extended version.
 
If [[Calibration#CAL0|Calibration Version]] >= 9, this is now:
{| class="wikitable" border="1"
|-
! Offset
! Size
! Name
|-
| 0x0
| 0x54
| Key
|-
| 0x54
| 0x4
| Key generation
|}
 
== GameCardCertificate ==
This is "nn::settings::factory::GameCardCertificate". It's maximum size is 0x404 bytes.
{| class="wikitable" border="1"
|-
! Offset
! Size
! Name
|-
| 0x0
| 0x4
| GameCard certificate size
|-
| 0x4
| {above size}
| GameCard certificate data
|}
 
== GameCardKey ==
This is "nn::settings::factory::GameCardKey". It's size is 0x110 bytes or 0x130 bytes in the extended version.
 
If [[Calibration#CAL0|Calibration Version]] >= 9, this is now:
{| class="wikitable" border="1"
|-
! Offset
! Size
! Name
|-
| 0x0
| 0x130
| Key
|-
| 0x130
| 0x4
| Key generation
|}
 
== GyroscopeOffset ==
This is "nn::settings::factory::GyroscopeOffset". It's size is 0x06 bytes.
 
== GyroscopeScale ==
This is "nn::settings::factory::GyroscopeScale". It's size is 0x06 bytes.
 
== MacAddress ==
This is "nn::settings::factory::MacAddress". It's size is 0x06 bytes.
 
== Rsa2048DeviceCertificate ==
This is "nn::settings::factory::Rsa2048DeviceCertificate". It's size is 0x240 bytes.
 
== Rsa2048DeviceKey ==
This is "nn::settings::factory::Rsa2048DeviceKey". It's size is 0x220 bytes or 0x240 bytes in the extended version.
 
If [[Calibration#CAL0|Calibration Version]] >= 9, this is now:
{| class="wikitable" border="1"
|-
! Offset
! Size
! Name
|-
| 0x0
| 0x240
| Key
|-
| 0x240
| 0x4
| Key generation
|}


== setcal Container Structure ==
== SerialNumber ==
This is "nn::settings::factory::SerialNumber". It's size is 0x18 bytes.
 
== SpeakerParameter ==
This is "nn::settings::factory::SpeakerParameter". It's size is 0x5A bytes.
 
== SslCertificate ==
This is "nn::settings::factory::SslCertificate". It's maximum size is 0x804 bytes.
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
Line 308: Line 477:
| 0x0
| 0x0
| 0x4
| 0x4
| Size (same size used for decryption if needed)
| SSL certificate size
|-
|-
| 0x4
| 0x4
| {above size}
| {above size}
| Actual data starts here.
| SSL certificate data
|}
|}


This container is used for returning data with variable sizes.
== SslKey ==
This is "nn::settings::factory::SslKey". It's size is 0x110 bytes or 0x130 bytes in the extended version.
 
If [[Calibration#CAL0|Calibration Version]] >= 9, this is now:
{| class="wikitable" border="1"
|-
! Offset
! Size
! Name
|-
| 0x0
| 0x130
| Key
|-
| 0x130
| 0x4
| Key generation
|}
 
== RegionCode ==
This is "nn::settings::factory::RegionCode". It's size is 0x04 bytes.


= set:sys =
= set:sys =
Line 634: Line 823:
| 157 || [6.0.0+] SetPctlReadyFlag
| 157 || [6.0.0+] SetPctlReadyFlag
|-
|-
| 158 || [9.0.0+] GetAnalogStickUserCalibrationL
| 158 || [8.1.1+] GetAnalogStickUserCalibrationL
|-
|-
| 159 || [9.0.0+] SetAnalogStickUserCalibrationL
| 159 || [8.1.1+] SetAnalogStickUserCalibrationL
|-
|-
| 160 || [9.0.0+] GetAnalogStickUserCalibrationR
| 160 || [8.1.1+] GetAnalogStickUserCalibrationR
|-
|-
| 161 || [9.0.0+] SetAnalogStickUserCalibrationR
| 161 || [8.1.1+] SetAnalogStickUserCalibrationR
|-
|-
| 162 || [6.0.0+] GetPtmBatteryVersion
| 162 || [6.0.0+] GetPtmBatteryVersion
Line 666: Line 855:
| 173 || [7.0.0+] SetPtmCycleCountReliability
| 173 || [7.0.0+] SetPtmCycleCountReliability
|-
|-
| 174 || [9.0.0+] [[#GetHomeMenuScheme]]
| 174 || [8.1.1+] [[#GetHomeMenuScheme]]
|-
|-
| 175 || [7.0.0+] GetThemeSettings
| 175 || [7.0.0+] GetThemeSettings
Line 887: Line 1,076:


Official sw sets the input to an u8 loaded from an input [[#TouchScreenMode]].
Official sw sets the input to an u8 loaded from an input [[#TouchScreenMode]].
== UserSelectorFlag ==
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 ==
== AccountSettings ==
This is "nn::settings::system::AccountSettings".
This is "nn::settings::system::AccountSettings".


This contains an u32 bitmask.
This contains [[#UserSelectorSettings]].
 
== EulaVersionClockType ==
{| class="wikitable" border="1"
|-
!  Value
!  Description
|-
| 0 || NetworkSystemClock
|-
| 1 || SteadyClock
|}
 
== NotificationVolume ==
{| class="wikitable" border="1"
|-
!  Value
!  Description
|-
| 0 || Mute
|-
| 1 || Low
|-
| 2 || High
|}


== FriendPresenceOverlayPermission ==
{| class="wikitable" border="1"
{| class="wikitable" border="1"
Bits
|-
Value
!  Description
|-
| 0 || NotConfirmed
|-
| 1 || NoDisplay
|-
| 2 || FavoriteFriends
|-
| 3 || Friends
|}
 
== TvResolution ==
{| class="wikitable" border="1"
|-
!  Value
!  Description
|-
| 0 || Auto
|-
| 1 || 1080p
|-
| 2 || 720p
|-
| 3 || 480p
|}
 
== HdmiContentType ==
{| class="wikitable" border="1"
|-
!  Value
!  Description
|-
| 0 || None
|-
| 1 || Graphics
|-
| 2 || Cinema
|-
| 3 || Photo
|-
| 4 || Game
|}
 
== RgbRange ==
{| class="wikitable" border="1"
|-
!  Value
!  Description
|-
| 0 || Auto
|-
| 1 || Full
|-
| 2 || Limited
|}
 
== CmuMode ==
{| class="wikitable" border="1"
|-
!  Value
!  Description
|-
| 0 || None
|-
| 1 || ColorInvert
|-
| 2 || HighContrast
|-
| 3 || GrayScale
|}
 
== HandheldSleepPlan ==
{| class="wikitable" border="1"
|-
!  Value
!  Description
|-
| 0 || 1Min
|-
| 1 || 3Min
|-
| 2 || 5Min
|-
| 3 || 10Min
|-
| 4 || 30Min
|-
| 5 || Never
|}
 
== ConsoleSleepPlan ==
{| class="wikitable" border="1"
|-
!  Value
!  Description
!  Description
|-
|-
| 0 || Unknown
| 0 || 1Hour
|-
| 1 || 2Hour
|-
| 2 || 3Hour
|-
|-
| 31 || Unknown
| 3 || 6Hour
|-
| 4 || 12Hour
|-
| 5 || Never
|}
|}


Line 909: Line 1,243:
! Offset || Size || Description
! Offset || Size || Description
|-
|-
| 0x0 || 0x30 || ?
| 0x0 || 0x4 || u32 version
|-
| 0x4 || 0x4 || s32 region_code
|-
| 0x8 || 0x4 || s32 [[#EulaVersionClockType|clock_type]]
|-
| 0xC || 0x4 || Padding
|-
| 0x10 || 0x8 || [[Glue_services|PosixTime]] network_clock_time
|-
| 0x18 || 0x18 || [[Glue_services|SteadyClockTimePoint]] steady_clock_time
|-
|}
 
== NotificationTime ==
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
| 0x0 || 0x4 || s32 hour
|-
| 0x4 || 0x4 || s32 minute
|-
|}
 
== NotificationFlag ==
This is "nn::settings::system::NotificationFlag".
 
{| class="wikitable" border="1"
!  Bits
!  Description
|-
|-
|}
|}
Line 920: Line 1,284:
! Offset || Size || Description
! Offset || Size || Description
|-
|-
| 0x0 || 0x4 || ?
| 0x0 || 0x4 || u32 flags. Bitmask with [[#NotificationFlag]].
|-
|-
| 0x4 || 0x4 || ?
| 0x4 || 0x4 || s32 [[#NotificationVolume|volume]]
|-
|-
| 0x8 || 0x4 || ?
| 0x8 || 0x8 || [[#NotificationTime]] start_time
|-
|-
| 0xC || 0x4 || ?
| 0x10 || 0x8 || [[#NotificationTime]] end_time
|-
|-
| 0x10 || 0x4 || ?
|}
|-
 
| 0x14 || 0x4 || ?
== AccountNotificationFlag ==
This is "nn::settings::system::AccountNotificationFlag".
 
{| class="wikitable" border="1"
!  Bits
!  Description
|-
|-
|}
|}
Line 941: Line 1,310:
! Offset || Size || Description
! Offset || Size || Description
|-
|-
| 0x0 || 0x18 || ?
| 0x0 || 0x10 || [[Account_services|uid]]
|-
| 0x10 || 0x4 || u32 flags. Bitmask for [[#AccountNotificationFlag]].
|-
| 0x14 || 0x1 || s8 [[#FriendPresenceOverlayPermission|friend_presence_overlay_permission]]
|-
| 0x15 || 0x3 || Padding
|-
|}
 
== TvFlag ==
This is "nn::settings::system::TvFlag".
 
{| class="wikitable" border="1"
!  Bits
!  Description
|-
|-
|}
|}
Line 950: Line 1,334:
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
| 0x0 || 0x4 || ?
! Offset || Size || Description
|-
| 0x0 || 0x4 || u32 flags. Bitmask with [[#TvFlag]].
|-
| 0x4 || 0x4 || s32 [[#TvResolution|tv_resolution]]
|-
|-
| 0x4 || 0x4 || ?
| 0x8 || 0x4 || s32 [[#HdmiContentType|hdmi_content_type]]
|-
|-
| 0x8 || 0x4 || ?
| 0xC || 0x4 || s32 [[#RgbRange|rgb_range]]
|-
|-
| 0xC || 0x4 || ?
| 0x10 || 0x4 || s32 [[#CmuMode|cmu_mode]]
|-
|-
| 0x10 || 0x4 || ?
| 0x14 || 0x4 || u32 underscan
|-
|-
| 0x14 || 0x4 || ?
| 0x18 || 0x4 || float gamma
|-
|-
| 0x18 || 0x4 || ?
| 0x1C || 0x4 || float contrast
|-
|-
| 0x1C || 0x4 || ?
|}
 
== DataDeletionFlag ==
This is "nn::settings::system::DataDeletionFlag".
 
{| class="wikitable" border="1"
!  Bits
!  Description
|-
|-
|}
|}
Line 973: Line 1,368:
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
| 0x0 || 0x4 || ?
! Offset || Size || Description
|-
|-
| 0x4 || 0x4 || ?
| 0x0 || 0x4 || u32 flags. Bitmask with [[#DataDeletionFlag]].
|-
| 0x4 || 0x4 || s32 use_count
|-
|-
|}
|}
Line 984: Line 1,381:
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
| 0x0 || 0x18 || ?
! Offset || Size || Description
|-
| 0x0 || 0x18 || String.
|-
|}
 
== SleepFlag ==
This is "nn::settings::system::SleepFlag".
 
{| class="wikitable" border="1"
!  Bits
!  Description
|-
|-
|}
|}
Line 993: Line 1,401:
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
| 0x0 || 0x4 || ?
! Offset || Size || Description
|-
|-
| 0x4 || 0x4 || ?
| 0x0 || 0x4 || u32 flags. Bitmask for [[#SleepFlag]].
|-
|-
| 0x8 || 0x4 || ?
| 0x4 || 0x4 || s32 [[#HandheldSleepPlan|handheld_sleep_plan]]
|-
| 0x8 || 0x4 || s32 [[#ConsoleSleepPlan|console_sleep_plan]]
|-
|}
 
== InitialLaunchFlag ==
This is "nn::settings::system::InitialLaunchFlag".
 
{| class="wikitable" border="1"
!  Bits
!  Description
|-
|-
|}
|}
Line 1,008: Line 1,427:
! Offset || Size || Description
! Offset || Size || Description
|-
|-
| 0x0 || 0x20 || ?
| 0x0 || 0x4 || u32 flags. Bitmask for [[#InitialLaunchFlag]].
|-
| 0x4 || 0x4 || Padding
|-
| 0x8 || 0x18 || [[Glue_services|SteadyClockTimePoint]] timestamp
|-
|-
|}
|}
Line 1,014: Line 1,437:
== RebootlessSystemUpdateVersion ==
== RebootlessSystemUpdateVersion ==
This is "nn::settings::system::RebootlessSystemUpdateVersion". This struct is 4-byte aligned.
This is "nn::settings::system::RebootlessSystemUpdateVersion". This struct is 4-byte aligned.
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,444:
! Offset || Size || Description
! Offset || Size || Description
|-
|-
| 0x0 || 0x40 || ?
| 0x0 || 0x4 || u32 version
|-
| 0x4 || 0x1C || Reserved
|-
| 0x20 || 0x20 || display_version string.
|-
|-
|}
|}


== PrimaryAlbumStorage ==
== PrimaryAlbumStorage ==
This is "nn::settings::system::PrimaryAlbumStorage".
This is u32 enum "nn::settings::system::PrimaryAlbumStorage".


No input, returns an output s32 [[#ErrorReportSharePermission]].
{| class="wikitable" border="1"
|-
!  Value
!  Description
|-
| 0 || Nand
|-
| 1 || SdCard
|}


== ErrorReportSharePermission ==
== ErrorReportSharePermission ==
This is "nn::settings::system::ErrorReportSharePermission".
This is u32 enum "nn::settings::system::ErrorReportSharePermission".
 
{| class="wikitable" border="1"
|-
!  Value
!  Description
|-
| 0 || NotConfirmed
|-
| 1 || Granted
|-
| 2 || Denied
|}


== ServiceDiscoveryControlSettings ==
== ServiceDiscoveryControlSettings ==
Line 1,046: Line 1,495:


== KeyboardLayout ==
== KeyboardLayout ==
This is "nn::settings::KeyboardLayout".
This is u32 enum "nn::settings::KeyboardLayout".
 
{| class="wikitable" border="1"
|-
!  Value
!  Description
|-
| 1 || EnglishUs
|-
| 2 || EnglishUsInternational
|-
| 3 || EnglishUk
|-
| 4 || French
|-
| 5 || FrenchCa
|-
| 6 || Spanish
|-
| 7 || SpanishLatin
|-
| 8 || German
|-
| 9 || Italian
|-
| 10 || Portuguese
|-
| 11 || Russian
|-
| 12 || Korean
|-
| 13 || ChineseSimplified
|-
| 14 || ChineseTraditional
|}


== ChineseTraditionalInputMethod ==
== ChineseTraditionalInputMethod ==
This is "nn::settings::ChineseTraditionalInputMethod".
This is u32 enum "nn::settings::ChineseTraditionalInputMethod".
 
{| class="wikitable" border="1"
|-
!  Value
!  Description
|-
| 1 ||
|-
| 2 ||
|}


== TouchScreenMode ==
== TouchScreenMode ==
Line 1,059: Line 1,552:


= System Config =
= System Config =
There's a common config title (*818), and a config title for each [[SPL_services|HardwareType]].
There's a common config title (*818), and a config title for each [[SMC#HardwareType|HardwareType]].


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


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