Changes

Jump to navigation Jump to search
6,179 bytes added ,  19:45, 12 June 2019
Line 160: Line 160:  
| 211 || [7.0.0+] [[#IsVibrationDeviceMounted]]
 
| 211 || [7.0.0+] [[#IsVibrationDeviceMounted]]
 
|-
 
|-
| 300 || ActivateConsoleSixAxisSensor
+
| 300 || [3.0.0+] ActivateConsoleSixAxisSensor
 
|-
 
|-
| 301 || StartConsoleSixAxisSensor
+
| 301 || [3.0.0+] StartConsoleSixAxisSensor
 
|-
 
|-
| 302 || StopConsoleSixAxisSensor
+
| 302 || [3.0.0+] StopConsoleSixAxisSensor
 
|-
 
|-
 
| 303 || [5.0.0+] [[#ActivateSevenSixAxisSensor]]
 
| 303 || [5.0.0+] [[#ActivateSevenSixAxisSensor]]
Line 176: Line 176:  
| 307 || [5.0.0+] [[#FinalizeSevenSixAxisSensor]]
 
| 307 || [5.0.0+] [[#FinalizeSevenSixAxisSensor]]
 
|-
 
|-
| 308 || [5.0.0+] SetSevenSixAxisSensorFusionStrength
+
| 308 || [5.0.0+] [[#SetSevenSixAxisSensorFusionStrength]]
 
|-
 
|-
| 309 || [5.0.0+] GetSevenSixAxisSensorFusionStrength
+
| 309 || [5.0.0+] [[#GetSevenSixAxisSensorFusionStrength]]
 
|-
 
|-
 
| 310 || [6.0.0+] [[#ResetSevenSixAxisSensorTimestamp]]
 
| 310 || [6.0.0+] [[#ResetSevenSixAxisSensorTimestamp]]
 
|-
 
|-
| 400 || IsUsbFullKeyControllerEnabled
+
| 400 || [3.0.0+] IsUsbFullKeyControllerEnabled
 
|-
 
|-
| 401 || EnableUsbFullKeyController
+
| 401 || [3.0.0+] EnableUsbFullKeyController
 
|-
 
|-
| 402 || IsUsbFullKeyControllerConnected
+
| 402 || [3.0.0+] IsUsbFullKeyControllerConnected
 
|-
 
|-
 
| 403 || [4.0.0+] HasBattery
 
| 403 || [4.0.0+] HasBattery
Line 339: Line 339:  
== FinalizeSevenSixAxisSensor ==
 
== FinalizeSevenSixAxisSensor ==
 
Takes a PID and an u64 [[AM_services|AppletResourceUserId]], no output.
 
Takes a PID and an u64 [[AM_services|AppletResourceUserId]], no output.
 +
 +
== SetSevenSixAxisSensorFusionStrength ==
 +
Takes a PID, a float, and an u64 [[AM_services|AppletResourceUserId]], no output.
 +
 +
== GetSevenSixAxisSensorFusionStrength ==
 +
Takes a PID and an u64 [[AM_services|AppletResourceUserId]], returns an output float.
    
== ResetSevenSixAxisSensorTimestamp ==
 
== ResetSevenSixAxisSensorTimestamp ==
Line 421: Line 427:  
| NES controller in handheld mode.
 
| NES controller in handheld mode.
 
|-
 
|-
| 9-28
+
| 9
 +
| NpadLucia
 +
|
 +
|-
 +
| 10-28
 
| Reserved
 
| Reserved
 
|
 
|
Line 502: Line 512:  
| 132 || UnsetCaptureButtonAutoPilotState
 
| 132 || UnsetCaptureButtonAutoPilotState
 
|-
 
|-
| 133 || SetShiftAccelerometerCalibrationValue
+
| 133 || [3.0.0+] SetShiftAccelerometerCalibrationValue
 
|-
 
|-
| 134 || GetShiftAccelerometerCalibrationValue
+
| 134 || [3.0.0+] GetShiftAccelerometerCalibrationValue
 
|-
 
|-
| 135 || SetShiftGyroscopeCalibrationValue
+
| 135 || [3.0.0+] SetShiftGyroscopeCalibrationValue
 
|-
 
|-
| 136 || GetShiftGyroscopeCalibrationValue
+
| 136 || [3.0.0+] GetShiftGyroscopeCalibrationValue
 
|-
 
|-
| 140 || DeactivateConsoleSixAxisSensor
+
| 140 || [3.0.0+] DeactivateConsoleSixAxisSensor
 
|-
 
|-
 
| 141 || [5.0.0+] GetConsoleSixAxisSensorSamplingFrequency
 
| 141 || [5.0.0+] GetConsoleSixAxisSensorSamplingFrequency
Line 538: Line 548:  
| 202 || DeactivateFirmwareUpdate
 
| 202 || DeactivateFirmwareUpdate
 
|-
 
|-
| 203 || StartFirmwareUpdate
+
| 203 || [[#StartFirmwareUpdate]]
 
|-
 
|-
 
| 204 || GetFirmwareUpdateStage
 
| 204 || GetFirmwareUpdateStage
 
|-
 
|-
| 205 || GetFirmwareVersion
+
| 205 || [[#GetFirmwareVersion]]
 
|-
 
|-
| 206 || GetDestinationFirmwareVersion
+
| 206 || [[#GetDestinationFirmwareVersion]]
 
|-
 
|-
| 207 || DiscardFirmwareInfoCacheForRevert
+
| 207 || [[#DiscardFirmwareInfoCacheForRevert]]
 
|-
 
|-
| 208 || StartFirmwareUpdateForRevert
+
| 208 || [3.0.0+] StartFirmwareUpdateForRevert
 
|-
 
|-
| 209 || GetAvailableFirmwareVersionForRevert
+
| 209 || [3.0.0+] GetAvailableFirmwareVersionForRevert
 
|-
 
|-
 
| 210 || [4.0.0+] IsFirmwareUpdatingDevice
 
| 210 || [4.0.0+] IsFirmwareUpdatingDevice
Line 560: Line 570:  
| 216 || [6.0.0+] SetAllKuinaDevicesToFirmwareUpdateMode
 
| 216 || [6.0.0+] SetAllKuinaDevicesToFirmwareUpdateMode
 
|-
 
|-
| 221 || [[#UpdateControllerColor]]
+
| 221 || [3.0.0+] [[#UpdateControllerColor]]
 
|-
 
|-
 
| 222 || [4.0.0+] ConnectUsbPadsAsync
 
| 222 || [4.0.0+] ConnectUsbPadsAsync
Line 602: Line 612:  
| 323 || [5.0.0+] UnsetAllAutoPilotVirtualPadState
 
| 323 || [5.0.0+] UnsetAllAutoPilotVirtualPadState
 
|-
 
|-
| 324 || [7.0.0+] AttachHdlsWorkBuffer
+
| 324 || [7.0.0+] [[#AttachHdlsWorkBuffer]]
 
|-
 
|-
| 325 || [7.0.0+] ReleaseHdlsWorkBuffer
+
| 325 || [7.0.0+] [[#ReleaseHdlsWorkBuffer]]
 
|-
 
|-
| 326 || [7.0.0+] DumpHdlsNpadAssignmentState
+
| 326 || [7.0.0+] [[#DumpHdlsNpadAssignmentState]]
 
|-
 
|-
| 327 || [7.0.0+] DumpHdlsStates
+
| 327 || [7.0.0+] [[#DumpHdlsStates]]
 
|-
 
|-
| 328 || [7.0.0+] ApplyHdlsNpadAssignmentState
+
| 328 || [7.0.0+] [[#ApplyHdlsNpadAssignmentState]]
 
|-
 
|-
| 329 || [7.0.0+] ApplyHdlsStateList
+
| 329 || [7.0.0+] [[#ApplyHdlsStateList]]
 
|-
 
|-
| 330 || [7.0.0+] AttachHdlsVirtualDevice
+
| 330 || [7.0.0+] [[#AttachHdlsVirtualDevice]]
 
|-
 
|-
| 331 || [7.0.0+] DetachHdlsVirtualDevice
+
| 331 || [7.0.0+] [[#DetachHdlsVirtualDevice]]
 
|-
 
|-
| 332 || [7.0.0+] SetHdlsState
+
| 332 || [7.0.0+] [[#SetHdlsState]]
 
|-
 
|-
 
| 350 || [5.0.0+] AddRegisteredDevice
 
| 350 || [5.0.0+] AddRegisteredDevice
Line 630: Line 640:  
| 501 || [8.0.0+] IsFactoryBootEnabled
 
| 501 || [8.0.0+] IsFactoryBootEnabled
 
|}
 
|}
 +
 +
== StartFirmwareUpdate ==
 +
Takes a total of 0x20-bytes of input, 2 handles, and returns an output handle.
 +
 +
[3.0.0+] Now takes a total of 8-bytes of input, and no longer uses any input/output handles.
 +
 +
== GetFirmwareVersion ==
 +
Takes a total of 8-bytes of input, and returns a total of 4-bytes of output.
 +
 +
[3.0.0+] Now returns an additional 0xC-bytes of output.
 +
 +
== GetDestinationFirmwareVersion ==
 +
Takes a total of 8-bytes of input, and returns a total of 4-bytes of output.
 +
 +
[3.0.0+] Now returns an additional 0xC-bytes of output.
 +
 +
== DiscardFirmwareInfoCacheForRevert ==
 +
Takes a total of 8-bytes of input, and returns a total of 5-bytes of output.
 +
 +
[3.0.0+] No input/output.
    
== UpdateControllerColor ==
 
== UpdateControllerColor ==
Line 644: Line 674:     
Sends the spi-write subcommand to the specified controller, for writing to offset 0x6050 size 0xD. The first 3-bytes from each u32 is used for the spi-write-data, with the u8 being copied immediately afterwards the color data.
 
Sends the spi-write subcommand to the specified controller, for writing to offset 0x6050 size 0xD. The first 3-bytes from each u32 is used for the spi-write-data, with the u8 being copied immediately afterwards the color data.
 +
 +
== AttachHdlsWorkBuffer ==
 +
Takes an input TransferMemory handle and an u64 for the TransferMemory size, no output.
 +
 +
Official user-processes use TransferMemory size=0x1000 and permissions=RW.
 +
 +
This TransferMemory is used as input/output by the other Hdls commands.
 +
 +
Hdls is for virtual HID controllers.
 +
 +
== ReleaseHdlsWorkBuffer ==
 +
No input/output.
 +
 +
== DumpHdlsNpadAssignmentState ==
 +
No input/output.
 +
 +
After using this cmd, the output [[#HdlsNpadAssignment]] is located at tmem+0.
 +
 +
== DumpHdlsStates ==
 +
No input/output.
 +
 +
After using this cmd, the output [[#HdlsStateList]] struct is located at tmem+0.
 +
 +
== ApplyHdlsNpadAssignmentState ==
 +
Takes an input u8 bool, no output.
 +
 +
Prior to using this cmd, the input [[#HdlsNpadAssignment]] is written to tmem+0 by the user-process.
 +
 +
== ApplyHdlsStateList ==
 +
No input/output.
 +
 +
Prior to using this cmd, the input [[#HdlsStateList]] is written to tmem+0 by the user-process.
 +
 +
The [[#HdlsState]] will be applied for each HdlsHandle. If a HdlsHandle is not found, code similar to [[#AttachHdlsVirtualDevice]] will run with the [[#HdlsDeviceInfo]], then it will continue with applying state with the new device.
 +
 +
== AttachHdlsVirtualDevice ==
 +
Takes an [[#HdlsDeviceInfo]], returns a 8-byte '''HdlsHandle'''.
 +
 +
== DetachHdlsVirtualDevice ==
 +
Takes an input 8-byte '''HdlsHandle''', no output.
 +
 +
== SetHdlsState ==
 +
Takes an input [[#HdlsState]] and an input 8-byte '''HdlsHandle''', no output.
 +
 +
== HdlsNpadAssignment ==
 +
This is a 0x208-byte struct. This seems to be an array, structure unknown.
 +
 +
== HdlsStateList ==
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset || Size || Description
 +
|-
 +
| 0x0 || 0x4 || Total entries
 +
|-
 +
| 0x4 || 0x4 || Padding
 +
|-
 +
| 0x8 || 0x400(0x40*0x10) || Array of [[#HdlsStateListEntry]].
 +
|}
 +
 +
This is a 0x408-byte struct.
 +
 +
This contains a list of all controllers, including non-virtual controllers.
 +
 +
=== HdlsStateListEntry ===
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset || Size || Description
 +
|-
 +
| 0x0 || 0x8 || HdlsHandle
 +
|-
 +
| 0x8 || 0x10 || [[#HdlsDeviceInfo]]. With [[#ApplyHdlsStateList]] this is only used when creating new devices.
 +
|-
 +
| 0x18 || 0x24 || [[#HdlsState]]
 +
|-
 +
| 0x3C || 0x4 || Padding
 +
|}
 +
 +
This is a 0x40-byte struct.
 +
 +
== HdlsDeviceInfo ==
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset || Size || Description
 +
|-
 +
| 0x0 || 0x4 || [[#NpadStyleTag]], only one bit can be set.
 +
|-
 +
| 0x4 || 0x4 || RGBA Single Body Color
 +
|-
 +
| 0x8 || 0x4 || RGBA Single Buttons Color
 +
|-
 +
| 0xC || 0x1 || Unknown
 +
|-
 +
| 0xD || 0x3 || Padding
 +
|}
 +
 +
This is a 0x10-byte struct.
 +
 +
== HdlsState ==
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset || Size || Description
 +
|-
 +
| 0x0 || 0x8 || Unknown
 +
|-
 +
| 0x8 || 0x4 || batteryCharge for the main [[HID_Shared_Memory#Controllers|PowerInfo]].
 +
|-
 +
| 0xC || 0x4 || Buttons
 +
|-
 +
| 0x10 || 0x10(4*2*2) || Joystick data, see [[HID_Shared_Memory#Controller_State]].
 +
|-
 +
| 0x20 || 0x1 || Unused for input. Set with output from [[#DumpHdlsStates]] (zero in some cases).
 +
|-
 +
| 0x21 || 0x3 || Padding
 +
|}
 +
 +
This is a 0x24-byte struct.
    
= hid:sys =
 
= hid:sys =
Line 728: Line 874:  
| 511 || GetVibrationMasterVolume
 
| 511 || GetVibrationMasterVolume
 
|-
 
|-
| 512 || BeginPermitVibrationSession
+
| 512 || [3.0.0+] BeginPermitVibrationSession
 
|-
 
|-
| 513 || EndPermitVibrationSession
+
| 513 || [3.0.0+] EndPermitVibrationSession
 
|-
 
|-
 
| 520 || EnableHandheldHids
 
| 520 || EnableHandheldHids
Line 744: Line 890:  
| 543 || GetRegisteredDevicesOld ([1.0.0-4.1.0] GetRegisteredDevices)
 
| 543 || GetRegisteredDevicesOld ([1.0.0-4.1.0] GetRegisteredDevices)
 
|-
 
|-
| 544 || AcquireConnectionTriggerTimeoutEvent
+
| 544 || [3.0.0+] AcquireConnectionTriggerTimeoutEvent
 
|-
 
|-
| 545 || SendConnectionTrigger
+
| 545 || [3.0.0+] SendConnectionTrigger
 
|-
 
|-
| 546 || AcquireDeviceRegisteredEventForControllerSupport
+
| 546 || [3.0.0+] AcquireDeviceRegisteredEventForControllerSupport
 
|-
 
|-
| 547 || GetAllowedBluetoothLinksCount
+
| 547 || [3.0.0+] GetAllowedBluetoothLinksCount
 
|-
 
|-
 
| 548 || [5.0.0+] GetRegisteredDevices
 
| 548 || [5.0.0+] GetRegisteredDevices
Line 774: Line 920:  
| 804 || CancelSixAxisSensorUserCalibration
 
| 804 || CancelSixAxisSensorUserCalibration
 
|-
 
|-
| 805 || GetUniquePadBluetoothAddress
+
| 805 || [3.0.0+] GetUniquePadBluetoothAddress
 
|-
 
|-
| 806 || DisconnectUniquePad
+
| 806 || [3.0.0+] DisconnectUniquePad
 
|-
 
|-
 
| 807 || [5.0.0+] GetUniquePadType
 
| 807 || [5.0.0+] GetUniquePadType
Line 810: Line 956:  
| 830 || [7.0.0+] [[#SetNotificationLedPattern]]
 
| 830 || [7.0.0+] [[#SetNotificationLedPattern]]
 
|-
 
|-
| 850 || IsUsbFullKeyControllerEnabled
+
| 850 || [3.0.0+] IsUsbFullKeyControllerEnabled
 
|-
 
|-
| 851 || EnableUsbFullKeyController
+
| 851 || [3.0.0+] EnableUsbFullKeyController
 
|-
 
|-
| 852 || IsUsbConnected
+
| 852 || [3.0.0+] IsUsbConnected
 
|-
 
|-
 
| 870 || [5.1.0+] IsHandheldButtonPressedOnConsoleMode
 
| 870 || [5.1.0+] IsHandheldButtonPressedOnConsoleMode
Line 822: Line 968:  
| 901 || [[#NotifyInputDetector]]
 
| 901 || [[#NotifyInputDetector]]
 
|-
 
|-
| 1000 || InitializeFirmwareUpdate
+
| 1000 || [3.0.0+] InitializeFirmwareUpdate
 
|-
 
|-
| 1001 || GetFirmwareVersion
+
| 1001 || [3.0.0+] GetFirmwareVersion
 
|-
 
|-
| 1002 || GetAvailableFirmwareVersion
+
| 1002 || [3.0.0+] GetAvailableFirmwareVersion
 
|-
 
|-
| 1003 || IsFirmwareUpdateAvailable
+
| 1003 || [3.0.0+] IsFirmwareUpdateAvailable
 
|-
 
|-
| 1004 || CheckFirmwareUpdateRequired
+
| 1004 || [3.0.0+] CheckFirmwareUpdateRequired
 
|-
 
|-
| 1005 || StartFirmwareUpdate
+
| 1005 || [3.0.0+] StartFirmwareUpdate
 
|-
 
|-
| 1006 || AbortFirmwareUpdate
+
| 1006 || [3.0.0+] AbortFirmwareUpdate
 
|-
 
|-
| 1007 || GetFirmwareUpdateState
+
| 1007 || [3.0.0+] GetFirmwareUpdateState
 
|-
 
|-
 
| 1008 || [4.0.0+] ActivateAudioControl
 
| 1008 || [4.0.0+] ActivateAudioControl
Line 854: Line 1,000:  
| 1053 || [5.0.0+] GetSixAxisSensorAccurateUserCalibrationState
 
| 1053 || [5.0.0+] GetSixAxisSensorAccurateUserCalibrationState
 
|-
 
|-
| 1100 || [5.0.0+] GetHidbusSystemServiceObject
+
| 1100 || [5.0.0+] [[#GetHidbusSystemServiceObject]]
 
|-
 
|-
 
| 1120 || [6.0.0+] SetFirmwareHotfixUpdateSkipEnabled
 
| 1120 || [6.0.0+] SetFirmwareHotfixUpdateSkipEnabled
Line 895: Line 1,041:     
This sends subcommand 0x38 to the specified controller, for setting the pattern for the HOME button notification LED. The input structure is converted to the format used by this [https://github.com/dekuNukem/Nintendo_Switch_Reverse_Engineering/blob/master/bluetooth_hid_subcommands_notes.md#subcommand-0x38-set-home-light subcommand].
 
This sends subcommand 0x38 to the specified controller, for setting the pattern for the HOME button notification LED. The input structure is converted to the format used by this [https://github.com/dekuNukem/Nintendo_Switch_Reverse_Engineering/blob/master/bluetooth_hid_subcommands_notes.md#subcommand-0x38-set-home-light subcommand].
 +
 +
== GetHidbusSystemServiceObject ==
 +
No input, returns an [[#IHidbusSystemServer]].
    
== NotificationLedPattern ==
 
== NotificationLedPattern ==
Line 1,071: Line 1,220:  
|-
 
|-
 
| 0x35 || 0x1 || Set to value 1.
 
| 0x35 || 0x1 || Set to value 1.
 +
|}
 +
 +
== IHidbusSystemServer ==
 +
This is "nn::hidbus::IHidbusSystemServer".
 +
 +
This was added with [5.0.0+].
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 500 ||
 +
|-
 +
| 501 ||
 +
|-
 +
| 502 ||
 
|}
 
|}
   Line 1,076: Line 1,241:  
This is "nn::hid::IHidTemporaryServer".
 
This is "nn::hid::IHidTemporaryServer".
   −
This service no longer exists in [8.0.0+].  
+
This service was added with [3.0.0+], then removed with [8.0.0+].
    
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
Line 1,118: Line 1,283:  
| 314 || [3.0.0+] [[#CheckFirmwareVersion]]
 
| 314 || [3.0.0+] [[#CheckFirmwareVersion]]
 
|-
 
|-
| 315 || [5.0.0+] SetFunctionLevel
+
| 315 || [4.0.0+] SetFunctionLevel
 
|-
 
|-
| 316 || [5.0.0+] RunImageTransferExProcessor
+
| 316 || [4.0.0+] RunImageTransferExProcessor
 
|-
 
|-
| 317 || [5.0.0+] RunIrLedProcessor
+
| 317 || [4.0.0+] RunIrLedProcessor
 
|-
 
|-
| 318 || [5.0.0+] StopImageProcessorAsync
+
| 318 || [4.0.0+] StopImageProcessorAsync
 
|-
 
|-
| 319 || [5.0.0+] ActivateIrsensorWithFunctionLevel
+
| 319 || [4.0.0+] ActivateIrsensorWithFunctionLevel
 
|}
 
|}
   Line 1,254: Line 1,419:  
| 3 || || Takes an input u32, returns an [[#IReadSession]].
 
| 3 || || Takes an input u32, returns an [[#IReadSession]].
 
|-
 
|-
| 4 || || Takes an input u32, returns an [[#IWriteSession]].
+
| [1.0.0-2.3.0] 4 || || Takes an input u32, returns an [[#IWriteSession]].
 
|}
 
|}
   Line 1,287: Line 1,452:  
|-
 
|-
 
| 11 || ||  
 
| 11 || ||  
 +
|-
 +
| 12 || [3.0.0+] ||
 
|}
 
|}
   Line 1,302: Line 1,469:     
Cmd0 uses [[USB_services|PostBufferAsync]] etc with the INPUT endpoint. The size must be <=0x1000. The actual transfer size is returned in an output u64. The data is copied from the tmpbuf to the output buffer using the actual-transfer-size.
 
Cmd0 uses [[USB_services|PostBufferAsync]] etc with the INPUT endpoint. The size must be <=0x1000. The actual transfer size is returned in an output u64. The data is copied from the tmpbuf to the output buffer using the actual-transfer-size.
 +
 +
[3.0.0+] Cmd0 now takes a total of 8-bytes of input.
    
== IWriteSession ==
 
== IWriteSession ==
 
This is "nn::ahid::IWriteSession".
 
This is "nn::ahid::IWriteSession".
 +
 +
This was removed with [3.0.0+].
    
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
Line 1,353: Line 1,524:  
|-
 
|-
 
| 5 || CheckNfcDevicePower
 
| 5 || CheckNfcDevicePower
 +
|-
 +
| 6 || [5.0.0+]
 
|-
 
|-
 
| 10 || SetNfcEvent
 
| 10 || SetNfcEvent
Line 1,380: Line 1,553:  
| 102 || GetAwakeTriggerReasonForRightRail
 
| 102 || GetAwakeTriggerReasonForRightRail
 
|}
 
|}
 +
 +
[5.0.0+] SetDataFormat, SetMcuState, and ClearMifareKey: now takes a total of 0xC-bytes of input instead of 0x10.
    
[6.0.0+]: The buffer type used by GetNfcInfo is now 0x32 instead of 0x1A.
 
[6.0.0+]: The buffer type used by GetNfcInfo is now 0x32 instead of 0x1A.
Line 1,385: Line 1,560:  
= hidbus =
 
= hidbus =
 
This is "nn::hidbus::IHidbusServer".
 
This is "nn::hidbus::IHidbusServer".
 +
 +
This was added with [5.0.0+].
    
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
Line 1,424: Line 1,601:  
     ├── NTD_4CD_1801.fts256
 
     ├── NTD_4CD_1801.fts256
 
     ├── NTD_4CD_2602.fts256
 
     ├── NTD_4CD_2602.fts256
     └── NTD_4CD_3801.fts256
+
    ├── NTD_4CD_3801.fts256
 +
     └── NTD_4CD_xxxx.fts256 [7.0.0+]
    
These are firmware files for the touchscreen controller.
 
These are firmware files for the touchscreen controller.
    
= Firmware update =
 
= Firmware update =
Starting with [[3.0.0]] HID-sysmodule now contains strings for data stored in title [[Title_list|0100000000000822]].
+
HID-sysmodule mounts the contents of title [[Title_list|0100000000000822]] as "systemData" or the contents of title [[Title_list|010000000000B22B]] as "systemDataD". Both titles contain the same files, but [[Title_list|0100000000000822]] is used on retail units while [[Title_list|010000000000B22B]] is used for development.
 +
 
 +
These titles contain the following files:
 +
* '''ExpectVersionInfo.csv''' - List in the format "[device],[type],[version]" where "device" can be "JoyLeft", "JoyRight", "FullKey" or "Palma", "type" can be "BT", "MCU" or "USB" and "version" is the hexadecimal representation of the firmware file's version.
 +
* '''FirmwareInfo.csv''' - List in the format "[device],[type],[version],[file]" where "device", "type" and "version" should match the values from "ExpectVersionInfo" and "file" is the name of the firmware file.
 +
* '''ukyosakyo_ep2_ota.bin''' - Left/Right Joy-Con BT firmware.
 +
* '''raizo_ep2_ota.bin''' - Pro Controller BT firmware.
 +
* '''tera_ota.bin''' - Right Joy-Con MCU firmware.
 +
* '''tera_ota_iap.bin''' - Right Joy-Con MCU (IAP profile) firmware.
 +
* '''tera_fullkey_ota.bin''' - Pro Controller MCU firmware.
 +
* '''tera_fullkey_ota_iap.bin''' - Pro Controller MCU (IAP profile) firmware.
 +
* [6.0.0+] '''ProController.dfu''' - Pro Controller USB firmware.
 +
* [6.1.0+] '''PalmaFw.bin''' - Poké Ball Plus BT firmware.
    
[[Category:Services]]
 
[[Category:Services]]

Navigation menu