Line 27: |
Line 27: |
| |- | | |- |
| | 10 || [9.0.0+] [[#GetFirmwareVersionForDebug]] || | | | 10 || [9.0.0+] [[#GetFirmwareVersionForDebug]] || |
| + | |- |
| + | | 11 || [10.1.0+] [[#GetDeviceNickName]] || |
| |} | | |} |
| | | |
Line 90: |
Line 92: |
| |- | | |- |
| | [4.0.0+] 16 || zh-Hant || "TraditionalChinese" || ChineseTraditional | | | [4.0.0+] 16 || zh-Hant || "TraditionalChinese" || ChineseTraditional |
| + | |- |
| + | | [10.1.0+] 17 || pt-BR || "BrazilianPortuguese" || |
| |} | | |} |
| | | |
Line 120: |
Line 124: |
| This is "nn::settings::IFirmwareDebugSettingsServer". | | This is "nn::settings::IFirmwareDebugSettingsServer". |
| | | |
− | [4.0.0+] Only exposed if in [[SPL_services#IsDebugMode|debug mode]]. | + | [4.0.0+] Only exposed if in [[SPL_services#IsDevelopment|development mode]]. |
| | | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
Line 166: |
Line 170: |
| | 0 || GetBluetoothBdAddress | | | 0 || GetBluetoothBdAddress |
| |- | | |- |
− | | 1 || GetConfigurationId1 | + | | 1 || [[#GetConfigurationId1]] |
| |- | | |- |
| | 2 || GetAccelerometerOffset | | | 2 || GetAccelerometerOffset |
Line 245: |
Line 249: |
| |- | | |- |
| | 41 || [6.0.0+] GetBatteryVersion | | | 41 || [6.0.0+] GetBatteryVersion |
| + | |- |
| + | | 42 || [10.0.0+] [[#GetDeviceId]] |
| + | |- |
| + | | 43 || [10.0.0+] GetConsoleSixAxisSensorMountType |
| |} | | |} |
| | | |
| Used for accessing data calibrated at the factory. | | Used for accessing data calibrated at the factory. |
| + | |
| + | == GetConfigurationId1 == |
| + | Returns the [[#ConfigurationId1]]. |
| | | |
| == GetEciDeviceCertificate == | | == GetEciDeviceCertificate == |
Line 294: |
Line 305: |
| == GetEciDeviceKey2 == | | == GetEciDeviceKey2 == |
| Same as [[#GetEciDeviceKey]], but [[#Rsa2048DeviceKey|returns]] a RSA-2048 variant of the device key. | | Same as [[#GetEciDeviceKey]], but [[#Rsa2048DeviceKey|returns]] a RSA-2048 variant of the device key. |
| + | |
| + | == GetDeviceId == |
| + | Returns an u64 '''DeviceId''' by reading and converting the hexadecimal string at offset 0xC6 inside [[#EccB233DeviceCertificate]] or [[#Rsa2048DeviceCertificate]]. |
| | | |
| == AccelerometerOffset == | | == AccelerometerOffset == |
− | This is "nn::settings::factory::AccelerometerOffset". It's size is 0x06 bytes. | + | This is "nn::settings::factory::AccelerometerOffset". Its size is 0x06 bytes. |
| | | |
| == AccelerometerScale == | | == AccelerometerScale == |
− | This is "nn::settings::factory::AccelerometerScale". It's size is 0x06 bytes. | + | This is "nn::settings::factory::AccelerometerScale". Its size is 0x06 bytes. |
| | | |
| == AmiiboEcdsaCertificate == | | == AmiiboEcdsaCertificate == |
− | This is "nn::settings::factory::AmiiboEcdsaCertificate". It's size is 0x70 bytes. | + | This is "nn::settings::factory::AmiiboEcdsaCertificate". Its size is 0x70 bytes. |
| | | |
| == AmiiboEcqvBlsCertificate == | | == AmiiboEcqvBlsCertificate == |
− | This is "nn::settings::factory::AmiiboEcqvBlsCertificate". It's size is 0x20 bytes. | + | This is "nn::settings::factory::AmiiboEcqvBlsCertificate". Its size is 0x20 bytes. |
| | | |
| == AmiiboEcqvBlsKey == | | == AmiiboEcqvBlsKey == |
− | This is "nn::settings::factory::AmiiboEcqvBlsKey". It's size is 0x40 bytes. | + | This is "nn::settings::factory::AmiiboEcqvBlsKey". Its size is 0x40 bytes. |
| | | |
| If [[Calibration#CAL0|Calibration Version]] >= 9, this is now: | | If [[Calibration#CAL0|Calibration Version]] >= 9, this is now: |
Line 327: |
Line 341: |
| | | |
| == AmiiboEcqvBlsRootCertificate == | | == AmiiboEcqvBlsRootCertificate == |
− | This is "nn::settings::factory::AmiiboEcqvBlsRootCertificate". It's size is 0x90 bytes. | + | This is "nn::settings::factory::AmiiboEcqvBlsRootCertificate". Its size is 0x90 bytes. |
| | | |
| == AmiiboEcqvCertificate == | | == AmiiboEcqvCertificate == |
− | This is "nn::settings::factory::AmiiboEcqvCertificate". It's size is 0x14 bytes. | + | This is "nn::settings::factory::AmiiboEcqvCertificate". Its size is 0x14 bytes. |
| | | |
| == AmiiboKey == | | == AmiiboKey == |
− | This is "nn::settings::factory::AmiiboKey". It's size is 0x50 bytes. | + | This is "nn::settings::factory::AmiiboKey". Its size is 0x50 bytes. |
| | | |
| If [[Calibration#CAL0|Calibration Version]] >= 9, this is now: | | If [[Calibration#CAL0|Calibration Version]] >= 9, this is now: |
Line 352: |
Line 366: |
| | | |
| == AnalogStickFactoryCalibration == | | == AnalogStickFactoryCalibration == |
− | This is "nn::settings::factory::AnalogStickFactoryCalibration". It's size is 0x09 bytes. | + | This is "nn::settings::factory::AnalogStickFactoryCalibration". Its size is 0x09 bytes. |
| | | |
| == AnalogStickModelParameter == | | == AnalogStickModelParameter == |
− | This is "nn::settings::factory::AnalogStickModelParameter". It's size is 0x12 bytes. | + | This is "nn::settings::factory::AnalogStickModelParameter". Its size is 0x12 bytes. |
| | | |
| == BatteryLot == | | == BatteryLot == |
− | This is "nn::settings::BatteryLot". It's size is 0x18 bytes. | + | This is "nn::settings::BatteryLot". Its size is 0x18 bytes. |
| | | |
| == BdAddress == | | == BdAddress == |
− | This is "nn::settings::factory::BdAddress". It's size is 0x06 bytes. | + | This is "nn::settings::factory::BdAddress". Its size is 0x06 bytes. |
| | | |
| == ConfigurationId1 == | | == ConfigurationId1 == |
− | This is "nn::settings::factory::ConfigurationId1". It's size is 0x1E bytes. | + | This is "nn::settings::factory::ConfigurationId1". Its size is 0x1E bytes. |
| + | |
| + | Usually, this is a string with the following format: |
| + | {device}_{revision}_{major_version}_{minor_version}_{micro_version} |
| + | |
| + | Where: |
| + | {device}: "MP", "EDEV", "SDEV", "HDEV", "HOAG", "COPPER" or "CALCIO". |
| + | {revision}: 2 digit number. |
| + | {major_version}: 2 digit number. |
| + | {minor_version}: 2 digit number. |
| + | {micro_version}: 2 digit number. |
| | | |
| == ConsoleSixAxisSensorHorizontalOffset == | | == ConsoleSixAxisSensorHorizontalOffset == |
− | This is "nn::settings::factory::ConsoleSixAxisSensorHorizontalOffset". It's size is 0x06 bytes. | + | This is "nn::settings::factory::ConsoleSixAxisSensorHorizontalOffset". Its size is 0x06 bytes. |
| | | |
| == CountryCode == | | == CountryCode == |
− | This is "nn::settings::factory::CountryCode". It's size is 0x04 bytes. | + | This is "nn::settings::factory::CountryCode". Its size is 0x04 bytes. |
| | | |
| == EccB233DeviceCertificate == | | == EccB233DeviceCertificate == |
− | This is "nn::settings::factory::EccB233DeviceCertificate". It's size is 0x180 bytes. | + | This is "nn::settings::factory::EccB233DeviceCertificate". Its size is 0x180 bytes. |
| | | |
| == EccB233DeviceKey == | | == EccB233DeviceKey == |
− | This is "nn::settings::factory::EccB233DeviceKey". It's size is 0x30 bytes or 0x54 bytes in the extended version. | + | This is "nn::settings::factory::EccB233DeviceKey". Its size is 0x30 bytes or 0x54 bytes in the extended version. |
| | | |
| If [[Calibration#CAL0|Calibration Version]] >= 9, this is now: | | If [[Calibration#CAL0|Calibration Version]] >= 9, this is now: |
Line 395: |
Line 419: |
| | | |
| == GameCardCertificate == | | == GameCardCertificate == |
− | This is "nn::settings::factory::GameCardCertificate". It's maximum size is 0x404 bytes. | + | This is "nn::settings::factory::GameCardCertificate". Its size is 0x400 bytes. |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 403: |
Line 427: |
| |- | | |- |
| | 0x0 | | | 0x0 |
− | | 0x4 | + | | 0x400 |
− | | GameCard certificate size
| |
− | |-
| |
− | | 0x4
| |
− | | {above size}
| |
| | GameCard certificate data | | | GameCard certificate data |
| |} | | |} |
| | | |
| == GameCardKey == | | == GameCardKey == |
− | This is "nn::settings::factory::GameCardKey". It's size is 0x110 bytes or 0x130 bytes in the extended version. | + | This is "nn::settings::factory::GameCardKey". Its size is 0x110 bytes or 0x130 bytes in the extended version. |
| | | |
| If [[Calibration#CAL0|Calibration Version]] >= 9, this is now: | | If [[Calibration#CAL0|Calibration Version]] >= 9, this is now: |
Line 431: |
Line 451: |
| | | |
| == GyroscopeOffset == | | == GyroscopeOffset == |
− | This is "nn::settings::factory::GyroscopeOffset". It's size is 0x06 bytes. | + | This is "nn::settings::factory::GyroscopeOffset". Its size is 0x06 bytes. |
| | | |
| == GyroscopeScale == | | == GyroscopeScale == |
− | This is "nn::settings::factory::GyroscopeScale". It's size is 0x06 bytes. | + | This is "nn::settings::factory::GyroscopeScale". Its size is 0x06 bytes. |
| | | |
| == MacAddress == | | == MacAddress == |
− | This is "nn::settings::factory::MacAddress". It's size is 0x06 bytes. | + | This is "nn::settings::factory::MacAddress". Its size is 0x06 bytes. |
| | | |
| == Rsa2048DeviceCertificate == | | == Rsa2048DeviceCertificate == |
− | This is "nn::settings::factory::Rsa2048DeviceCertificate". It's size is 0x240 bytes. | + | This is "nn::settings::factory::Rsa2048DeviceCertificate". Its size is 0x240 bytes. |
| | | |
| == Rsa2048DeviceKey == | | == Rsa2048DeviceKey == |
− | This is "nn::settings::factory::Rsa2048DeviceKey". It's size is 0x220 bytes or 0x240 bytes in the extended version. | + | This is "nn::settings::factory::Rsa2048DeviceKey". Its size is 0x220 bytes or 0x240 bytes in the extended version. |
| | | |
| If [[Calibration#CAL0|Calibration Version]] >= 9, this is now: | | If [[Calibration#CAL0|Calibration Version]] >= 9, this is now: |
Line 462: |
Line 482: |
| | | |
| == SerialNumber == | | == SerialNumber == |
− | This is "nn::settings::factory::SerialNumber". It's size is 0x18 bytes. | + | This is "nn::settings::factory::SerialNumber". Its size is 0x18 bytes. |
| | | |
| == SpeakerParameter == | | == SpeakerParameter == |
− | This is "nn::settings::factory::SpeakerParameter". It's size is 0x5A bytes. | + | This is "nn::settings::factory::SpeakerParameter". Its size is 0x5A bytes. |
| | | |
| == SslCertificate == | | == SslCertificate == |
− | This is "nn::settings::factory::SslCertificate". It's maximum size is 0x804 bytes. | + | This is "nn::settings::factory::SslCertificate". Its maximum size is 0x804 bytes. |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 485: |
Line 505: |
| | | |
| == SslKey == | | == SslKey == |
− | This is "nn::settings::factory::SslKey". It's size is 0x110 bytes or 0x130 bytes in the extended version. | + | This is "nn::settings::factory::SslKey". Its size is 0x110 bytes or 0x130 bytes in the extended version. |
| | | |
| If [[Calibration#CAL0|Calibration Version]] >= 9, this is now: | | If [[Calibration#CAL0|Calibration Version]] >= 9, this is now: |
Line 504: |
Line 524: |
| | | |
| == RegionCode == | | == RegionCode == |
− | This is "nn::settings::factory::RegionCode". It's size is 0x04 bytes. | + | This is "nn::settings::factory::RegionCode". Its size is 0x04 bytes. |
| | | |
| = set:sys = | | = set:sys = |
Line 661: |
Line 681: |
| | 76 || [[#SetInitialLaunchSettings]] | | | 76 || [[#SetInitialLaunchSettings]] |
| |- | | |- |
− | | 77 || GetDeviceNickName | + | | 77 || [[#GetDeviceNickName]] |
| |- | | |- |
− | | 78 || SetDeviceNickName | + | | 78 || [[#SetDeviceNickName]] |
| |- | | |- |
| | 79 || [[#GetProductModel]] | | | 79 || [[#GetProductModel]] |
Line 884: |
Line 904: |
| |- | | |- |
| | 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]] |
| |} | | |} |
| | | |
Line 976: |
Line 1,024: |
| == SetInitialLaunchSettings == | | == SetInitialLaunchSettings == |
| Takes an input [[#InitialLaunchSettings]], no output. | | Takes an input [[#InitialLaunchSettings]], no output. |
| + | |
| + | == GetDeviceNickName == |
| + | Takes a type-0x16 output buffer containing a [[#DeviceNickName]]. |
| + | |
| + | With [10.1.0+] sdknso now uses the set cmd instead of the setsys cmd. |
| + | |
| + | == SetDeviceNickName == |
| + | Takes a type-0x15 input buffer containing a [[#DeviceNickName]]. |
| | | |
| == GetProductModel == | | == GetProductModel == |
Line 1,076: |
Line 1,132: |
| | | |
| 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]]. |
| + | |
| + | == 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. |
| + | |
| + | == DeviceNickName == |
| + | This is "nn::settings::system::DeviceNickName". This is a 0x80-byte struct. |
| | | |
| == UserSelectorFlag == | | == UserSelectorFlag == |
Line 1,099: |
Line 1,200: |
| This contains [[#UserSelectorSettings]]. | | This contains [[#UserSelectorSettings]]. |
| | | |
− | == EulaVersionClockType == | + | == SteadyClockSourceId == |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 1,243: |
Line 1,344: |
| ! Offset || Size || Description | | ! Offset || Size || Description |
| |- | | |- |
− | | 0x0 || 0x4 || u32 version | + | | 0x0 || 0x4 || Version |
| |- | | |- |
− | | 0x4 || 0x4 || s32 region_code | + | | 0x4 || 0x4 || RegionCode |
| |- | | |- |
− | | 0x8 || 0x4 || s32 [[#EulaVersionClockType|clock_type]] | + | | 0x8 || 0x4 || [[#SteadyClockSourceId|SteadyClockSourceId]] |
| |- | | |- |
− | | 0xC || 0x4 || Padding | + | | 0xC || 0x4 || Reserved |
| |- | | |- |
− | | 0x10 || 0x8 || [[Glue_services|PosixTime]] network_clock_time | + | | 0x10 || 0x8 || [[Glue_services#PosixTime|NetworkClockTimePoint]] |
− | |-
| |
− | | 0x18 || 0x18 || [[Glue_services|SteadyClockTimePoint]] steady_clock_time
| |
| |- | | |- |
| + | | 0x18 || 0x18 || [[Glue_services#SteadyClockTimePoint|SteadyClockTimePoint]] |
| |} | | |} |
| | | |
Line 1,262: |
Line 1,362: |
| ! Offset || Size || Description | | ! Offset || Size || Description |
| |- | | |- |
− | | 0x0 || 0x4 || s32 hour | + | | 0x0 || 0x4 || Hour |
− | |-
| |
− | | 0x4 || 0x4 || s32 minute
| |
| |- | | |- |
| + | | 0x4 || 0x4 || Minute |
| |} | | |} |
| | | |
Line 1,275: |
Line 1,374: |
| ! Description | | ! Description |
| |- | | |- |
| + | | 0 || RingtoneFlag |
| + | |- |
| + | | 1 || DownloadCompletionFlag |
| + | |- |
| + | | 8 || EnablesNews |
| + | |- |
| + | | 9 || IncomingLampFlag |
| |} | | |} |
| | | |
Line 1,284: |
Line 1,390: |
| ! Offset || Size || Description | | ! Offset || Size || Description |
| |- | | |- |
− | | 0x0 || 0x4 || u32 flags. Bitmask with [[#NotificationFlag]]. | + | | 0x0 || 0x4 || [[#NotificationFlag|NotificationFlag]] |
− | |- | |
− | | 0x4 || 0x4 || s32 [[#NotificationVolume|volume]]
| |
| |- | | |- |
− | | 0x8 || 0x8 || [[#NotificationTime]] start_time | + | | 0x4 || 0x4 || [[#NotificationVolume|NotificationVolume]] |
| |- | | |- |
− | | 0x10 || 0x8 || [[#NotificationTime]] end_time | + | | 0x8 || 0x8 || [[#NotificationTime|HeadTime]] |
| |- | | |- |
| + | | 0x10 || 0x8 || [[#NotificationTime|TailTime]] |
| |} | | |} |
| | | |
Line 1,301: |
Line 1,406: |
| ! Description | | ! Description |
| |- | | |- |
| + | | 0 || FriendOnlineFlag |
| + | |- |
| + | | 1 || FriendRequestFlag |
| + | |- |
| + | | 8 || CoralInvitationFlag |
| |} | | |} |
| | | |
Line 1,310: |
Line 1,420: |
| ! Offset || Size || Description | | ! Offset || Size || Description |
| |- | | |- |
− | | 0x0 || 0x10 || [[Account_services|uid]] | + | | 0x0 || 0x10 || [[Account_services|AccountUid]] |
| |- | | |- |
− | | 0x10 || 0x4 || u32 flags. Bitmask for [[#AccountNotificationFlag]]. | + | | 0x10 || 0x4 || [[#AccountNotificationFlag|AccountNotificationFlag]] |
| |- | | |- |
− | | 0x14 || 0x1 || s8 [[#FriendPresenceOverlayPermission|friend_presence_overlay_permission]] | + | | 0x14 || 0x1 || [[#FriendPresenceOverlayPermission|FriendPresenceOverlayPermission]] |
| |- | | |- |
− | | 0x15 || 0x3 || Padding | + | | 0x15 || 0x1 || [[#FriendPresenceOverlayPermission|FriendInvitationOverlayPermission]] |
| |- | | |- |
| + | | 0x16 || 0x2 || Reserved |
| |} | | |} |
| | | |
Line 1,327: |
Line 1,438: |
| ! Description | | ! Description |
| |- | | |- |
| + | | 0 || Allows4k |
| + | |- |
| + | | 1 || Allows3d |
| + | |- |
| + | | 2 || AllowsCec |
| + | |- |
| + | | 3 || PreventsScreenBurnIn |
| |} | | |} |
| | | |
Line 1,336: |
Line 1,454: |
| ! Offset || Size || Description | | ! Offset || Size || Description |
| |- | | |- |
− | | 0x0 || 0x4 || u32 flags. Bitmask with [[#TvFlag]]. | + | | 0x0 || 0x4 || [[#TvFlag|TvFlag]] |
| |- | | |- |
− | | 0x4 || 0x4 || s32 [[#TvResolution|tv_resolution]] | + | | 0x4 || 0x4 || [[#TvResolution|TvResolution]] |
| |- | | |- |
− | | 0x8 || 0x4 || s32 [[#HdmiContentType|hdmi_content_type]] | + | | 0x8 || 0x4 || [[#HdmiContentType|HdmiContentType]] |
| |- | | |- |
− | | 0xC || 0x4 || s32 [[#RgbRange|rgb_range]] | + | | 0xC || 0x4 || [[#RgbRange|RgbRange]] |
| |- | | |- |
− | | 0x10 || 0x4 || s32 [[#CmuMode|cmu_mode]] | + | | 0x10 || 0x4 || [[#CmuMode|CmuMode]] |
| |- | | |- |
− | | 0x14 || 0x4 || u32 underscan | + | | 0x14 || 0x4 || TvUnderscan |
| |- | | |- |
− | | 0x18 || 0x4 || float gamma | + | | 0x18 || 0x4 || TvGamma |
− | |-
| |
− | | 0x1C || 0x4 || float contrast
| |
| |- | | |- |
| + | | 0x1C || 0x4 || ContrastRatio |
| |} | | |} |
| | | |
Line 1,361: |
Line 1,478: |
| ! Description | | ! Description |
| |- | | |- |
| + | | 0 || AutomaticDeletionFlag |
| |} | | |} |
| | | |
Line 1,370: |
Line 1,488: |
| ! Offset || Size || Description | | ! Offset || Size || Description |
| |- | | |- |
− | | 0x0 || 0x4 || u32 flags. Bitmask with [[#DataDeletionFlag]]. | + | | 0x0 || 0x4 || [[#DataDeletionFlag|DataDeletionFlag]]. |
− | |-
| |
− | | 0x4 || 0x4 || s32 use_count
| |
| |- | | |- |
| + | | 0x4 || 0x4 || UseCount |
| |} | | |} |
| | | |
| == BatteryLot == | | == BatteryLot == |
− | This is "nn::settings::BatteryLot". | + | This is "nn::settings::BatteryLot". Its size is 0x18 bytes. |
− | | |
− | {| class="wikitable" border="1"
| |
− | |-
| |
− | ! Offset || Size || Description
| |
− | |-
| |
− | | 0x0 || 0x18 || String.
| |
− | |-
| |
− | |}
| |
| | | |
| == SleepFlag == | | == SleepFlag == |
Line 1,394: |
Line 1,503: |
| ! Description | | ! Description |
| |- | | |- |
| + | | 0 || SleepsWhilePlayingMedia |
| + | |- |
| + | | 1 || WakesAtPowerStateChange |
| |} | | |} |
| | | |
Line 1,403: |
Line 1,515: |
| ! Offset || Size || Description | | ! Offset || Size || Description |
| |- | | |- |
− | | 0x0 || 0x4 || u32 flags. Bitmask for [[#SleepFlag]]. | + | | 0x0 || 0x4 || [[#SleepFlag|SleepFlag]] |
− | |- | |
− | | 0x4 || 0x4 || s32 [[#HandheldSleepPlan|handheld_sleep_plan]]
| |
| |- | | |- |
− | | 0x8 || 0x4 || s32 [[#ConsoleSleepPlan|console_sleep_plan]] | + | | 0x4 || 0x4 || [[#HandheldSleepPlan|HandheldSleepPlan]] |
| |- | | |- |
| + | | 0x8 || 0x4 || [[#ConsoleSleepPlan|ConsoleSleepPlan]] |
| |} | | |} |
| | | |
Line 1,418: |
Line 1,529: |
| ! Description | | ! Description |
| |- | | |- |
| + | | 0 || InitialLaunchCompletionFlag |
| + | |- |
| + | | 8 || InitialLaunchUserAdditionFlag |
| + | |- |
| + | | 16 || InitialLaunchTimestampFlag |
| |} | | |} |
| | | |
Line 1,427: |
Line 1,543: |
| ! Offset || Size || Description | | ! Offset || Size || Description |
| |- | | |- |
− | | 0x0 || 0x4 || u32 flags. Bitmask for [[#InitialLaunchFlag]]. | + | | 0x0 || 0x4 || [[#InitialLaunchFlag|InitialLaunchFlag]] |
| |- | | |- |
− | | 0x4 || 0x4 || Padding | + | | 0x4 || 0x4 || Reserved |
− | |-
| |
− | | 0x8 || 0x18 || [[Glue_services|SteadyClockTimePoint]] timestamp
| |
| |- | | |- |
| + | | 0x8 || 0x18 || [[Glue_services#SteadyClockTimePoint|InitialLaunchTimestampOffset]] |
| |} | | |} |
| | | |
Line 1,444: |
Line 1,559: |
| ! Offset || Size || Description | | ! Offset || Size || Description |
| |- | | |- |
− | | 0x0 || 0x4 || u32 version | + | | 0x0 || 0x4 || Version |
| |- | | |- |
| | 0x4 || 0x1C || Reserved | | | 0x4 || 0x1C || Reserved |
| |- | | |- |
− | | 0x20 || 0x20 || display_version string. | + | | 0x20 || 0x20 || DisplayVersion |
− | |-
| |
| |} | | |} |
| | | |
Line 1,466: |
Line 1,580: |
| | | |
| == ErrorReportSharePermission == | | == ErrorReportSharePermission == |
− | This is u32 enum "nn::settings::system::ErrorReportSharePermission". | + | This is "nn::settings::system::ErrorReportSharePermission". |
| | | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
Line 1,481: |
Line 1,595: |
| | | |
| == ServiceDiscoveryControlSettings == | | == ServiceDiscoveryControlSettings == |
− | This is a 32-bit bitfield.
| |
− |
| |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| ! Bits | | ! Bits |
Line 1,495: |
Line 1,607: |
| | | |
| == KeyboardLayout == | | == KeyboardLayout == |
− | This is u32 enum "nn::settings::KeyboardLayout". | + | This is "nn::settings::KeyboardLayout". |
| | | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
Line 1,532: |
Line 1,644: |
| | | |
| == ChineseTraditionalInputMethod == | | == ChineseTraditionalInputMethod == |
− | This is u32 enum "nn::settings::ChineseTraditionalInputMethod". | + | This is "nn::settings::ChineseTraditionalInputMethod". |
| | | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
Line 1,551: |
Line 1,663: |
| * 1: Standard, the default. | | * 1: Standard, the default. |
| | | |
− | = System Config = | + | == ButtonConfigSettings == |
− | There's a common config title (*818), and a config title for each [[SMC#HardwareType|HardwareType]]. | + | 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 || [[Bluetooth_Driver_services#Address|Address]] |
| + | |- |
| + | | 0x6 || 0x20 || Name string |
| + | |- |
| + | | 0x26 || 0x2 || |
| + | |- |
| + | | 0x28 || 0x1 || |
| + | |- |
| + | | 0x29 || 0x10 || Uuid |
| + | |- |
| + | | 0x39 || 0x1 || |
| + | |- |
| + | | 0x3A || 0x2 || |
| + | |- |
| + | | 0x3C || 0x4 || |
| + | |- |
| + | | 0x40 || 0x2 || |
| + | |- |
| + | | 0x42 || 0x2 || |
| + | |- |
| + | | 0x44 || 0x2 || |
| + | |- |
| + | | 0x46 || 0x80 || |
| + | |- |
| + | | 0xC6 || 0x2 || |
| + | |- |
| + | | 0xC8 || 0x1 || |
| + | |- |
| + | | 0xC9 || 0x1 || |
| + | |- |
| + | | 0xCA || 0x2 || |
| + | |- |
| + | | 0xCC || 0x8 || |
| + | |- |
| + | | 0xD4 || 0x1 || |
| + | |- |
| + | | 0xD5 || 0x12B || |
| + | |} |
| + | |
| + | = System Configuration = |
| + | 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]] |