HID services: Difference between revisions
No edit summary |
|||
(13 intermediate revisions by 2 users not shown) | |||
Line 13: | Line 13: | ||
|- | |- | ||
| 21 || [[#ActivateMouse]] | | 21 || [[#ActivateMouse]] | ||
|- | |||
| 22 || [19.0.0+] AddMouseWheelDelta | |||
|- | |- | ||
| 26 || [16.0.0+] ActivateDebugMouse | | 26 || [16.0.0+] ActivateDebugMouse | ||
Line 149: | Line 151: | ||
|- | |- | ||
| 136 || [8.0.0+] [[#ClearNpadCaptureButtonAssignment]] | | 136 || [8.0.0+] [[#ClearNpadCaptureButtonAssignment]] | ||
|- | |||
| 137 || [20.0.0+] SetNpadGcAnalogStick8bitRawValue | |||
|- | |- | ||
| 200 || [[#GetVibrationDeviceInfo]] | | 200 || [[#GetVibrationDeviceInfo]] | ||
Line 292: | Line 296: | ||
| 1003 || [9.0.0+] [[#IsFirmwareUpdateNeededForNotification]] | | 1003 || [9.0.0+] [[#IsFirmwareUpdateNeededForNotification]] | ||
|- | |- | ||
| 1004 || [17.0.0+] | | 1004 || [20.0.0+] SetTouchScreenOutputRanges ([17.0.0-19.0.1] SetTouchScreenResolution) | ||
|- | |||
| 1005 || [20.0.0+] EnableNxTouchScreenEmulationForTouchEnter | |||
|- | |- | ||
| 2000 || [10.0.0+] [[#ActivateDigitizer]] | | 2000 || [10.0.0+] [[#ActivateDigitizer]] | ||
Line 982: | Line 988: | ||
== ActivateDigitizer == | == ActivateDigitizer == | ||
Takes a PID and an [[AM_services|AppletResourceUserId]] | Takes a PID and an [[AM_services|AppletResourceUserId]]. No output. | ||
== IAppletResource == | == IAppletResource == | ||
Line 1,150: | Line 1,156: | ||
|- | |- | ||
| 211 || [6.0.0+] StartFirmwareUpdateIndividual | | 211 || [6.0.0+] StartFirmwareUpdateIndividual | ||
|- | |||
| 212 || [19.0.0+] GetDetailFirmwareVersion | |||
|- | |||
| 213 || [20.0.0+] GetFirmwareVersionStringForDevMenu | |||
|- | |||
| 214 || [20.1.0+] | |||
|- | |- | ||
| 215 || [6.0.0+] SetUsbFirmwareForceUpdateEnabled | | 215 || [6.0.0+] SetUsbFirmwareForceUpdateEnabled | ||
Line 1,218: | Line 1,230: | ||
|- | |- | ||
| 251 || [12.0.0+] GetAnalogStickModuleParam | | 251 || [12.0.0+] GetAnalogStickModuleParam | ||
|- | |||
| 253 || [19.0.0+] ClearStorageForShipment | |||
|- | |- | ||
| 301 || [5.0.0-8.1.0] [[#GetAbstractedPadHandles]] | | 301 || [5.0.0-8.1.0] [[#GetAbstractedPadHandles]] | ||
Line 1,251: | Line 1,265: | ||
| 350 || [5.0.0+] [[#AddRegisteredDevice]] | | 350 || [5.0.0+] [[#AddRegisteredDevice]] | ||
|- | |- | ||
| 351 || [17.0.0 | | 351 || [17.0.0-18.1.0] GetRegisteredDevicesCountDebug | ||
|- | |- | ||
| 352 || [17.0.0 | | 352 || [17.0.0-18.1.0] DeleteRegisteredDevicesDebug | ||
|- | |- | ||
| 400 || [6.0.0+] DisableExternalMcuOnNxDevice | | 400 || [6.0.0+] DisableExternalMcuOnNxDevice | ||
Line 1,315: | Line 1,329: | ||
| 652 || [12.0.0+] StopButtonPlayData | | 652 || [12.0.0+] StopButtonPlayData | ||
|- | |- | ||
| 2000 || [10.0.0+] DeactivateDigitizer | | 2000 || [10.0.0+] [[#DeactivateDigitizer]] | ||
|- | |- | ||
| 2001 || [10.0.0+] SetDigitizerAutoPilotState | | 2001 || [10.0.0+] [[#SetDigitizerAutoPilotState]] | ||
|- | |- | ||
| 2002 || [10.0.0+] UnsetDigitizerAutoPilotState | | 2002 || [10.0.0+] [[#UnsetDigitizerAutoPilotState]] | ||
|- | |- | ||
| 3000 || [16.0.0+] ReloadFirmwareDebugSettings | | 3000 || [16.0.0+] ReloadFirmwareDebugSettings | ||
Line 1,541: | Line 1,555: | ||
[11.0.0+] Takes an input [[#DebugRegisteredDevice]], no output. | [11.0.0+] Takes an input [[#DebugRegisteredDevice]], no output. | ||
== DeactivateDigitizer == | |||
No input/output. | |||
== SetDigitizerAutoPilotState == | |||
Takes an input [[#DigitizerAutoPilotState]]. No output. | |||
== UnsetDigitizerAutoPilotState == | |||
No input/output. | |||
= hid:sys = | = hid:sys = | ||
Line 1,577: | Line 1,600: | ||
| 213 || ActivateNfc | | 213 || ActivateNfc | ||
|- | |- | ||
| 214 || [4.0.0 | | 214 || [4.0.0-18.1.0] GetXcdHandleForNpadWithNfc | ||
|- | |- | ||
| 215 || [4.0.0+] IsNfcActivated | | 215 || [4.0.0+] IsNfcActivated | ||
|- | |||
| 216 || [19.0.0+] GetAbstractedPadIdForNpadWithNfc | |||
|- | |||
| 217 || [19.0.0+] [[#SetNfcEvent]] | |||
|- | |||
| 218 || [19.0.0+] [[#GetNfcInfo]] | |||
|- | |||
| 219 || [19.0.0+] StartNfcDiscovery | |||
|- | |||
| 220 || [19.0.0+] StopNfcDiscovery | |||
|- | |||
| 221 || [19.0.0+] StartNtagRead | |||
|- | |||
| 222 || [19.0.0+] StartNtagWrite | |||
|- | |||
| 223 || [19.0.0+] SendNfcRawData | |||
|- | |||
| 224 || [19.0.0+] RegisterMifareKey | |||
|- | |||
| 225 || [19.0.0+] ClearMifareKey | |||
|- | |||
| 226 || [19.0.0+] StartMifareRead | |||
|- | |||
| 227 || [19.0.0+] StartMifareWrite | |||
|- | |- | ||
| 230 || AcquireIrSensorEventHandle | | 230 || AcquireIrSensorEventHandle | ||
Line 1,588: | Line 1,635: | ||
|- | |- | ||
| 233 || [10.0.0+] GetXcdHandleForNpadWithIrSensor | | 233 || [10.0.0+] GetXcdHandleForNpadWithIrSensor | ||
|- | |||
| 234 || [19.0.0+] GetNpadJoyHoldType | |||
|- | |||
| 241 || [19.0.0+] [[#GetDataFormat]] | |||
|- | |||
| 242 || [19.0.0+] [[#SetDataFormat]] | |||
|- | |||
| 243 || [19.0.0+] [[#GetMcuState]] | |||
|- | |||
| 244 || [19.0.0+] [[#SetMcuState]] | |||
|- | |||
| 245 || [19.0.0+] [[#GetMcuVersionForNfc]] | |||
|- | |||
| 246 || [19.0.0+] [[#CheckNfcDevicePower]] | |||
|- | |||
| 247 || [19.0.0+] [[#SetMcuStateImmediate]] | |||
|- | |- | ||
| 301 || ActivateNpadSystem | | 301 || ActivateNpadSystem | ||
Line 1,644: | Line 1,707: | ||
|- | |- | ||
| 330 || [14.0.0+] CheckAbstractedPadConnection | | 330 || [14.0.0+] CheckAbstractedPadConnection | ||
|- | |||
| 332 || [19.0.0+] ConvertAppletDetailedUiTypeFromPlayReportType | |||
|- | |||
| 333 || [20.0.0+] SetNpadUserSpgApplet | |||
|- | |||
| 334 || [20.0.0+] AcquireUniquePadButtonStateChangedEventHandle | |||
|- | |- | ||
| 500 || SetAppletResourceUserId | | 500 || SetAppletResourceUserId | ||
Line 1,682: | Line 1,751: | ||
|- | |- | ||
| 525 || [11.0.0+] IsJoyConAttachedOnAllRail | | 525 || [11.0.0+] IsJoyConAttachedOnAllRail | ||
|- | |||
| 526 || [19.0.0+] IsInvertedControllerConnectedOnRail | |||
|- | |- | ||
| 540 || AcquirePlayReportControllerUsageUpdateEvent | | 540 || AcquirePlayReportControllerUsageUpdateEvent | ||
Line 1,689: | Line 1,760: | ||
| 542 || AcquirePlayReportRegisteredDeviceUpdateEvent | | 542 || AcquirePlayReportRegisteredDeviceUpdateEvent | ||
|- | |- | ||
| 543 || GetRegisteredDevicesOld ([1.0.0-4.1.0] GetRegisteredDevices) | | 543 || [5.0.0-18.1.0] GetRegisteredDevicesOld ([1.0.0-4.1.0] GetRegisteredDevices) | ||
|- | |- | ||
| 544 || [3.0.0+] AcquireConnectionTriggerTimeoutEvent | | 544 || [3.0.0+] AcquireConnectionTriggerTimeoutEvent | ||
Line 1,702: | Line 1,773: | ||
|- | |- | ||
| 549 || [6.0.0+] GetConnectableRegisteredDevices | | 549 || [6.0.0+] GetConnectableRegisteredDevices | ||
|- | |||
| 551 || [20.0.0+] GetRegisteredDevicesForControllerSupport | |||
|- | |- | ||
| 700 || ActivateUniquePad | | 700 || ActivateUniquePad | ||
Line 1,708: | Line 1,781: | ||
|- | |- | ||
| 703 || [[#GetUniquePadIds]] | | 703 || [[#GetUniquePadIds]] | ||
|- | |||
| 711 || [20.0.0+] AcquireUniquePadConnectionOnHandheldForNsEventHandle | |||
|- | |||
| 712 || [20.0.0+] GetUniquePadColor12 | |||
|- | |- | ||
| 751 || AcquireJoyDetachOnBluetoothOffEventHandle | | 751 || AcquireJoyDetachOnBluetoothOffEventHandle | ||
Line 1,798: | Line 1,875: | ||
|- | |- | ||
| 1011 || [4.0.0+] DeactivateAudioControl | | 1011 || [4.0.0+] DeactivateAudioControl | ||
|- | |||
| 1012 || [20.0.0+] GetFirmwareVersionStringForUserSupportPage | |||
|- | |- | ||
| 1050 || [5.0.0+] IsSixAxisSensorAccurateUserCalibrationSupported | | 1050 || [5.0.0+] IsSixAxisSensorAccurateUserCalibrationSupported | ||
Line 1,838: | Line 1,917: | ||
|- | |- | ||
| 1157 || [10.0.0+] [[#CancelConnectionTrigger]] | | 1157 || [10.0.0+] [[#CancelConnectionTrigger]] | ||
|- | |||
| 1158 || [20.1.0+] | |||
|- | |||
| 1159 || [20.1.0+] | |||
|- | |- | ||
| 1200 || [10.0.0-17.0.1] [[#IsButtonConfigSupported]] | | 1200 || [10.0.0-17.0.1] [[#IsButtonConfigSupported]] | ||
Line 1,962: | Line 2,045: | ||
|- | |- | ||
| 1321 || [17.0.0+] PutTouchScreenToSleep | | 1321 || [17.0.0+] PutTouchScreenToSleep | ||
|- | |||
| 1322 || [20.0.0+] AcquireTouchScreenAsyncWakeCompletedEvent | |||
|- | |||
| 1420 || [19.0.0+] GetAppletResourceProperty | |||
|- | |- | ||
| 12010 || [11.0.0-17.0.1] [[#SetButtonConfigLeft]] | | 12010 || [11.0.0-17.0.1] [[#SetButtonConfigLeft]] | ||
Line 3,068: | Line 3,155: | ||
= xcd:sys = | = xcd:sys = | ||
This is "nn::xcd::detail::ISystemServer". | This is "nn::xcd::detail::ISystemServer". | ||
This was removed with [19.0.0+]. | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
Line 3,957: | Line 4,046: | ||
===== DigitizerState ===== | ===== DigitizerState ===== | ||
This is "nn::hid::DigitizerState". | This is "nn::hid::DigitizerState". | ||
This is managed by the sysmodule "cs" (development only) through [[HID_services#hid:dbg|hid:dbg]] commands. No actual physical device is supported on NX. | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
Line 7,840: | Line 7,931: | ||
== JoyConRight == | == JoyConRight == | ||
[[ | [[Joy-Con|Joy-Con]] right controller. | ||
== JoyConLeft == | == JoyConLeft == | ||
[[ | [[Joy-Con|Joy-Con]] left controller. | ||
== SwitchProController == | == SwitchProController == | ||
[[ | [[Pro_Controller|Pro Controller]]. | ||
== Tarragon == | == Tarragon == | ||
Line 7,864: | Line 7,955: | ||
== Lucia == | == Lucia == | ||
SNES controller | SNES controller. | ||
== Palma == | == Palma == | ||
Line 7,873: | Line 7,964: | ||
== Lagon == | == Lagon == | ||
N64 controller | N64 controller. | ||
== ExternalGrip == | == ExternalGrip == | ||
Joy-Con Charging Grip | Joy-Con Charging Grip. | ||
== SwitchProControllerDfu == | == SwitchProControllerDfu == | ||
"Kotetsu" (Pro Controller MCU) in DFU mode | "Kotetsu" (Pro Controller MCU) in DFU mode. | ||
== ExternalGripDfu == | == ExternalGripDfu == | ||
"Kuina" (Joy-Con Charging Grip MCU) in DFU mode | "Kuina" (Joy-Con Charging Grip MCU) in DFU mode. | ||
== LuciaDfu == | == LuciaDfu == | ||
SNES controller MCU in DFU mode | SNES controller MCU in DFU mode. | ||
== LagonDfu == | == LagonDfu == | ||
N64 controller MCU in DFU mode | N64 controller MCU in DFU mode. | ||
== Lager == | == Lager == | ||
Sega Genesis controller | Sega Genesis controller. | ||
== LagerDfu == | == LagerDfu == | ||
Sega Genesis controller MCU in DFU mode | Sega Genesis controller MCU in DFU mode. | ||
== Tarragon2 == | == Tarragon2 == | ||
Line 7,934: | Line 8,025: | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
! Vid || PidRangeMax || PidRangeMin || [[#DeviceTypeInternal|DeviceType]] | ! Vid || PidRangeMax || PidRangeMin || [[#DeviceTypeInternal|DeviceType]] || Description | ||
|- | |||
| 0x57E || 0x2006 || 0x2006 || 2 || Nintendo [[HID_services#JoyConLeft|JoyConLeft]] | |||
|- | |||
| 0x57E || 0x2007 || 0x2007 || 1 || Nintendo [[HID_services#JoyConRight|JoyConRight]] | |||
|- | |||
| 0x57E || 0x2009 || 0x2009 || 3 || Nintendo [[HID_services#SwitchProController|SwitchProController]] | |||
|- | |||
| 0x57E || 0x200F || 0x200F || 24 || Nintendo [[HID_services#SwitchProControllerDfu|SwitchProControllerDfu]] | |||
|- | |||
| 0x57E || 0x200E || 0x200E || 23 || Nintendo [[HID_services#ExternalGrip|ExternalGrip]] | |||
|- | |- | ||
| 0x57E || | | 0x57E || 0x2008 || 0x2008 || 25 || Nintendo [[HID_services#ExternalGripDfu|ExternalGripDfu]] | ||
|- | |- | ||
| 0x57E || | | 0x57E || 0x2017 || 0x2017 || 11 || Nintendo [[HID_services#Lucia|Lucia]] | ||
|- | |- | ||
| 0x57E || | | 0x57E || 0x2018 || 0x2018 || 26 || Nintendo [[HID_services#LuciaDfu|LuciaDfu]] | ||
|- | |- | ||
| 0x57E || | | 0x57E || 0x2019 || 0x2019 || 22 || Nintendo [[HID_services#Lagon|Lagon]] | ||
|- | |- | ||
| 0x57E || | | 0x57E || 0x201A || 0x201A || 27 || Nintendo [[HID_services#LagonDfu|LagonDfu]] | ||
|- | |- | ||
| 0x57E || | | 0x57E || 0x201E || 0x201E || 28 || Nintendo [[HID_services#Lager|Lager]] | ||
|- | |- | ||
| 0x57E || | | 0x57E || 0x201F || 0x201F || 29 || Nintendo [[HID_services#LagerDfu|LagerDfu]] | ||
|- | |- | ||
| 0x57E || | | 0x57E || 0x337 || 0x337 || 13 || Nintendo [[HID_services#GcOnGggg|GcOnGggg]] | ||
|- | |- | ||
| 0x57E || | | 0x57E || 0x300E || 0x300E || [17.0.0+] 18 || Nintendo FiftyR | ||
|- | |- | ||
| 0x57E || | | 0x57E || 0x300D || 0x300D || [17.0.0+] 14 || Nintendo FiftyL | ||
|- | |- | ||
| | | 0xF0D || 0x92 || 0x92 || 15 || HORI Pokken Tournament DX Pro Pad | ||
|- | |- | ||
| | | 0xF0D || 0xAB || 0xAA || 15 || HORI | ||
|- | |- | ||
| | | 0xF0D || 0xC1 || 0xC1 || 15 || HORIPAD for Nintendo Switch | ||
|- | |- | ||
| | | 0xF0D || 0xFF || 0xF0 || 15 || HORI | ||
|- | |- | ||
| | | 0xF0D || 0x22F || 0x200 || [1.0.0-20.0.1] 15 || HORI | ||
|- | |- | ||
| 0xF0D || | | 0xF0D || 0x201 || 0x200 || [20.1.0+] 15 || HORI Split Pad Pro | ||
|- | |- | ||
| 0xF0D || | | 0xF0D || 0x202 || 0x202 || [20.1.0+] 15 || HORI | ||
|- | |- | ||
| 0xF0D || | | 0xF0D || 0x21F || 0x203 || [20.1.0+] 15 || HORI | ||
|- | |- | ||
| 0xF0D || | | 0xF0D || 0x25F || 0x220 || [20.1.0+] 15 || HORI | ||
|- | |- | ||
| 0xF0D || | | 0xF0D || 0x27F || 0x260 || [20.1.0+] 15 || HORI | ||
|- | |- | ||
| 0xE6F || 0x193 || 0x180 || 15 | | 0xE6F || 0x193 || 0x180 || 15 || PDP | ||
|- | |- | ||
| 0x20D6 || 0xA719 || 0xA710 || 15 | | 0x20D6 || 0xA719 || 0xA710 || [1.0.0-20.0.1] 15 || PowerA | ||
|- | |- | ||
| 0x20D6 || 0xA729 || 0xA720 || 15 | | 0x20D6 || 0xA729 || 0xA720 || [1.0.0-20.0.1] 15 || PowerA | ||
|- | |- | ||
| 0x33DD || 0xB || 0x1 || 15 | | 0x20D6 || 0xA716 || 0xA710 || [20.1.0+] 15 || PowerA | ||
|- | |||
| 0x20D6 || 0xA717 || 0xA717 || [20.1.0+] 15 || PowerA | |||
|- | |||
| 0x20D6 || 0xA719 || 0xA718 || [20.1.0+] 15 || PowerA | |||
|- | |||
| 0x20D6 || 0xA720 || 0xA720 || [20.1.0+] 15 || PowerA | |||
|- | |||
| 0x20D6 || 0xA721 || 0xA721 || [20.1.0+] 15 || PowerA | |||
|- | |||
| 0x20D6 || 0xA726 || 0xA722 || [20.1.0+] 15 || PowerA | |||
|- | |||
| 0x20D6 || 0xA731 || 0xA727 || [20.1.0+] 15 || PowerA | |||
|- | |||
| 0x33DD || 0xB || 0x1 || 15 || ZUIKI | |||
|} | |} | ||
Line 8,466: | Line 8,581: | ||
|- | |- | ||
| 0x0 || 0x8 || Buttons (only bit0 is used) | | 0x0 || 0x8 || Buttons (only bit0 is used) | ||
|} | |||
= DigitizerAutoPilotState = | |||
This is "nn::hid::debug::DigitizerAutoPilotState". | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 || 0x44 || | |||
|} | |} | ||