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]] |