HID services: Difference between revisions

No edit summary
Line 121: Line 121:
|-
|-
| 132 || EnableUnintendedHomeButtonInputProtection
| 132 || EnableUnintendedHomeButtonInputProtection
|-
| 133 || [5.0.0+] SetNpadJoyAssignmentModeSingleWithDestination
|-
|-
| 200 || [[#GetVibrationDeviceInfo]]
| 200 || [[#GetVibrationDeviceInfo]]
Line 135: Line 137:
|-
|-
| 206 || [[#SendVibrationValues]]
| 206 || [[#SendVibrationValues]]
|-
| 207 || [4.0.0+] SendVibrationGcErmCommand
|-
| 208 || [4.0.0+] GetActualVibrationGcErmCommand
|-
| 209 || [4.0.0+] BeginPermitVibrationSession
|-
| 210 || [4.0.0+] EndPermitVibrationSession
|-
|-
| 300 || ActivateConsoleSixAxisSensor
| 300 || ActivateConsoleSixAxisSensor
Line 141: Line 151:
|-
|-
| 302 || StopConsoleSixAxisSensor
| 302 || StopConsoleSixAxisSensor
|-
| 303 || [5.0.0+] ActivateSevenSixAxisSensor
|-
| 304 || [5.0.0+] StartSevenSixAxisSensor
|-
| 305 || [5.0.0+] StopSevenSixAxisSensor
|-
| 306 || [5.0.0+] InitializeSevenSixAxisSensor
|-
| 307 || [5.0.0+] FinalizeSevenSixAxisSensor
|-
| 308 || [5.0.0+] SetSevenSixAxisSensorFusionStrength
|-
| 309 || [5.0.0+] GetSevenSixAxisSensorFusionStrength
|-
|-
| 400 || IsUsbFullKeyControllerEnabled
| 400 || IsUsbFullKeyControllerEnabled
Line 147: Line 171:
|-
|-
| 402 || IsUsbFullKeyControllerConnected
| 402 || IsUsbFullKeyControllerConnected
|-
| 403 || [4.0.0+] HasBattery
|-
| 404 || [4.0.0+] HasLeftRightBattery
|-
| 405 || [4.0.0+] GetNpadInterfaceType
|-
| 406 || [4.0.0+] GetNpadLeftRightInterfaceType
|-
| 500 || [5.0.0+] GetPalmaConnectionHandle
|-
| 501 || [5.0.0+] InitializePalma
|-
| 502 || [5.0.0+] AcquirePalmaOperationCompleteEvent
|-
| 503 || [5.0.0+] GetPalmaOperationInfo
|-
| 504 || [5.0.0+] PlayPalmaActivity
|-
| 505 || [5.0.0+] SetPalmaFrModeType
|-
| 506 || [5.0.0+] ReadPalmaStep
|-
| 507 || [5.0.0+] EnablePalmaStep
|-
| 508 || [5.0.0+] SuspendPalmaStep
|-
| 509 || [5.0.0+] ResetPalmaStep
|-
| 510 || [5.0.0+] ReadPalmaApplicationSection
|-
| 511 || [5.0.0+] WritePalmaApplicationSection
|-
| 512 || [5.0.0+] ReadPalmaUniqueCode
|-
| 513 || [5.0.0+] SetPalmaUniqueCodeInvalid
|-
|-
| 1000 || SetNpadCommunicationMode
| 1000 || SetNpadCommunicationMode
Line 300: Line 360:
|-
|-
| 140 || DeactivateConsoleSixAxisSensor
| 140 || DeactivateConsoleSixAxisSensor
|-
| 141 || [5.0.0+] GetConsoleSixAxisSensorSamplingFrequency
|-
| 142 || [5.0.0+] DeactivateSevenSixAxisSensor
|-
|-
| 201 || ActivateFirmwareUpdate
| 201 || ActivateFirmwareUpdate
Line 319: Line 383:
| 209 || GetAvailableFirmwareVersionForRevert
| 209 || GetAvailableFirmwareVersionForRevert
|-
|-
| 211 || UpdateControllerColor
| 210 || [4.0.0+] IsFirmwareUpdatingDevice
|-
| 221 || UpdateControllerColor
|-
| 222 || [4.0.0+] ConnectUsbPadsAsync
|-
| 223 || [4.0.0+] DisconnectUsbPadsAsync
|-
| 224 || [5.0.0+] UpdateDesignInfo
|-
| 225 || [5.0.0+] GetUniquePadDriverState
|-
| 226 || [5.0.0+] GetSixAxisSensorDriverStates
|-
| 301 || [5.0.0+] GetAbstractedPadHandles
|-
| 302 || [5.0.0+] GetAbstractedPadState
|-
| 303 || [5.0.0+] GetAbstractedPadsState
|-
| 321 || [5.0.0+] SetAutoPilotVirtualPadState
|-
| 322 || [5.0.0+] UnsetAutoPilotVirtualPadState
|-
| 323 || [5.0.0+] UnsetAllAutoPilotVirtualPadState
|-
| 350 || [5.0.0+] AddRegisteredDevice
|}
|}


Line 350: Line 440:
|-
|-
| 213 || ActivateNfc
| 213 || ActivateNfc
|-
| 214 || [4.0.0+] GetXcdHandleForNpadWithNfc
|-
| 215 || [4.0.0+] IsNfcActivated
|-
|-
| 230 || AcquireIrSensorEventHandle
| 230 || AcquireIrSensorEventHandle
Line 366: Line 460:
|-
|-
| 307 || GetNpadSystemExtStyle
| 307 || GetNpadSystemExtStyle
|-
| 308 || [5.0.0+] ApplyNpadSystemCommonPolicyFull
|-
| 309 || [5.0.0+] GetNpadFullKeyGripColor
|-
|-
| 311 || SetNpadPlayerLedBlinkingDevice
| 311 || SetNpadPlayerLedBlinkingDevice
Line 405: Line 503:
| 542 || AcquirePlayReportRegisteredDeviceUpdateEvent
| 542 || AcquirePlayReportRegisteredDeviceUpdateEvent
|-
|-
| 543 || GetRegisteredDevices
| 543 || GetRegisteredDevicesOld ([1.0.0-4.1.0] GetRegisteredDevices)
|-
|-
| 544 || AcquireConnectionTriggerTimeoutEvent
| 544 || AcquireConnectionTriggerTimeoutEvent
Line 414: Line 512:
|-
|-
| 547 || GetAllowedBluetoothLinksCount
| 547 || GetAllowedBluetoothLinksCount
|-
| 548 || [5.0.0+] GetRegisteredDevices
|-
|-
| 700 || ActivateUniquePad
| 700 || ActivateUniquePad
Line 436: Line 536:
|-
|-
| 806 || DisconnectUniquePad
| 806 || DisconnectUniquePad
|-
| 807 || [5.0.0+] GetUniquePadType
|-
| 808 || [5.0.0+] GetUniquePadInterface
|-
| 809 || [5.0.0+] GetUniquePadSerialNumber
|-
| 810 || [5.0.0+] GetUniquePadControllerNumber
|-
| 811 || [5.0.0+] GetSixAxisSensorUserCalibrationStage
|-
|-
| 821 || StartAnalogStickManualCalibration
| 821 || StartAnalogStickManualCalibration
Line 444: Line 554:
|-
|-
| 824 || ResetAnalogStickManualCalibration
| 824 || ResetAnalogStickManualCalibration
|-
| 825 || [5.0.0+] GetAnalogStickState
|-
| 826 || [5.0.0+] GetAnalogStickManualCalibrationStage
|-
| 827 || [5.0.0+] IsAnalogStickButtonPressed
|-
| 828 || [5.0.0+] IsAnalogStickInReleasePosition
|-
| 829 || [5.0.0+] IsAnalogStickInCircumference
|-
|-
| 850 || IsUsbFullKeyControllerEnabled
| 850 || IsUsbFullKeyControllerEnabled
Line 470: Line 590:
|-
|-
| 1007 || GetFirmwareUpdateState
| 1007 || GetFirmwareUpdateState
|-
| 1008 || [4.0.0+] ActivateAudioControl
|-
| 1009 || [4.0.0+] AcquireAudioControlEventHandle
|-
| 1010 || [4.0.0+] GetAudioControlStates
|-
| 1011 || [4.0.0+] DeactivateAudioControl
|-
| 1050 || [5.0.0+] IsSixAxisSensorAccurateUserCalibrationSupported
|-
| 1051 || [5.0.0+] StartSixAxisSensorAccurateUserCalibration
|-
| 1052 || [5.0.0+] CancelSixAxisSensorAccurateUserCalibration
|-
| 1053 || [5.0.0+] GetSixAxisSensorAccurateUserCalibrationState
|-
| 1100 || [5.0.0+] GetHidbusSystemServiceObject
|}
|}


Line 475: Line 613:
Takes an input 32bit float.
Takes an input 32bit float.


=irs=
= hid:tmp =
This is "nn::hid::IHidTemporaryServer".
 
{| class="wikitable" border="1"
|-
! Cmd || Name
|-
| 0 || GetConsoleSixAxisSensorCalibrationValues
|}
 
= irs =
This is "nn::irsensor::IIrSensorServer".
This is "nn::irsensor::IIrSensorServer".


Line 502: Line 650:
| 311 || [[#GetNpadIrCameraHandle]]
| 311 || [[#GetNpadIrCameraHandle]]
|-
|-
| 312 || [[#RunDpdProcessor]]
| 312 || [[#RunPointingProcessor]]
|-
|-
| 313 || [[#SuspendImageProcessor]]
| 313 || [[#SuspendImageProcessor]]
|-
|-
| 314 || [3.0.0+] [[#CheckFirmwareVersion]]
| 314 || [3.0.0+] [[#CheckFirmwareVersion]]
|-
| 315 || [5.0.0+] SetFunctionLevel
|-
| 316 || [5.0.0+] RunImageTransferExProcessor
|-
| 317 || [5.0.0+] RunIrLedProcessor
|-
| 318 || [5.0.0+] StopImageProcessorAsync
|-
| 319 || [5.0.0+] ActivateIrsensorWithFunctionLevel
|}
|}


==ActivateIrsensor==
== ActivateIrsensor ==
Takes a PID-descriptor and an [[AM_services|AppletResourceUserId]]. No output.
Takes a PID-descriptor and an [[AM_services|AppletResourceUserId]]. No output.


==DeactivateIrsensor==
== DeactivateIrsensor ==
Takes a PID-descriptor and an [[AM_services|AppletResourceUserId]]. No output.
Takes a PID-descriptor and an [[AM_services|AppletResourceUserId]]. No output.


==GetIrsensorSharedMemoryHandle==
== GetIrsensorSharedMemoryHandle ==
Takes a PID-descriptor and an [[AM_services|AppletResourceUserId]]. Returns a SharedMemory handle.
Takes a PID-descriptor and an [[AM_services|AppletResourceUserId]]. Returns a SharedMemory handle.


The SharedMemory is mapped with permissions=read-only and size=0x8000.
The SharedMemory is mapped with permissions=read-only and size=0x8000.


==StopImageProcessor==
== StopImageProcessor ==
Takes a PID-descriptor, an [[#IrCameraHandle]], and an [[AM_services|AppletResourceUserId]]. No output.
Takes a PID-descriptor, an [[#IrCameraHandle]], and an [[AM_services|AppletResourceUserId]]. No output.


==RunMomentProcessor==
== RunMomentProcessor ==
Takes a PID-descriptor, an [[#IrCameraHandle]], an [[AM_services|AppletResourceUserId]], and a [[#PackedMomentProcessorConfig]]. No output.
Takes a PID-descriptor, an [[#IrCameraHandle]], an [[AM_services|AppletResourceUserId]], and a [[#PackedMomentProcessorConfig]]. No output.


==RunClusteringProcessor==
== RunClusteringProcessor ==
Takes a PID-descriptor, an [[#IrCameraHandle]], an [[AM_services|AppletResourceUserId]], and a [[#PackedClusteringProcessorConfig]]. No output.
Takes a PID-descriptor, an [[#IrCameraHandle]], an [[AM_services|AppletResourceUserId]], and a [[#PackedClusteringProcessorConfig]]. No output.


==RunImageTransferProcessor==
== RunImageTransferProcessor ==
Takes a PID-descriptor, an [[#IrCameraHandle]], an [[AM_services|AppletResourceUserId]], a [[#PackedImageTransferProcessorConfig]], an u64 for the TransferMemory_size, and a TransferMemory handle. No output.
Takes a PID-descriptor, an [[#IrCameraHandle]], an [[AM_services|AppletResourceUserId]], a [[#PackedImageTransferProcessorConfig]], an u64 for the TransferMemory_size, and a TransferMemory handle. No output.


Official sw creates the TransferMemory with an user-specified buffer and permissions=0.
Official sw creates the TransferMemory with an user-specified buffer and permissions=0.


==GetImageTransferProcessorState==
== GetImageTransferProcessorState ==
Takes a PID-descriptor, a type-0x6 output buffer, an [[#IrCameraHandle]], and an [[AM_services|AppletResourceUserId]]. Returns an [[#ImageTransferProcessorState]]. No output.
Takes a PID-descriptor, a type-0x6 output buffer, an [[#IrCameraHandle]], and an [[AM_services|AppletResourceUserId]]. Returns an [[#ImageTransferProcessorState]]. No output.


==RunTeraPluginProcessor==
== RunTeraPluginProcessor==
Takes a PID-descriptor, an [[#IrCameraHandle]], a [[#PackedTeraPluginProcessorConfig]] (immediately after the previous word), and an [[AM_services|AppletResourceUserId]]. No output.
Takes a PID-descriptor, an [[#IrCameraHandle]], a [[#PackedTeraPluginProcessorConfig]] (immediately after the previous word), and an [[AM_services|AppletResourceUserId]]. No output.


==GetNpadIrCameraHandle==
== GetNpadIrCameraHandle ==
Takes an input u32. Returns an output [[#IrCameraHandle]].
Takes an input u32. Returns an output [[#IrCameraHandle]].


==RunDpdProcessor==
== RunPointingProcessor ==
Takes a PID-descriptor, an [[#IrCameraHandle]], a [[#PackedDpdProcessorConfig]] (immediately after the previous word), and an [[AM_services|AppletResourceUserId]]. No output.
Takes a PID-descriptor, an [[#IrCameraHandle]], a [[#PackedDpdProcessorConfig]] (immediately after the previous word), and an [[AM_services|AppletResourceUserId]]. No output.


==SuspendImageProcessor==
== SuspendImageProcessor ==
Takes a PID-descriptor, an [[#IrCameraHandle]], and an [[AM_services|AppletResourceUserId]]. No output.
Takes a PID-descriptor, an [[#IrCameraHandle]], and an [[AM_services|AppletResourceUserId]]. No output.


==CheckFirmwareVersion==
== CheckFirmwareVersion ==
Takes a PID-descriptor, an [[#IrCameraHandle]], a [[#PackedMcuVersion]], and an [[AM_services|AppletResourceUserId]]. No output.
Takes a PID-descriptor, an [[#IrCameraHandle]], a [[#PackedMcuVersion]], and an [[AM_services|AppletResourceUserId]]. No output.


==IrCameraHandle==
== IrCameraHandle ==
This is an u32.
This is an u32.


==PackedMomentProcessorConfig==
== PackedMomentProcessorConfig ==
This is a 0x20-byte struct. This is converted from another structure by the official user-process.
This is a 0x20-byte struct. This is converted from another structure by the official user-process.


Line 583: Line 741:
|}
|}


==PackedClusteringProcessorConfig==
== PackedClusteringProcessorConfig ==
This is a 0x28-byte struct.
This is a 0x28-byte struct.


==PackedImageTransferProcessorConfig==
== PackedImageTransferProcessorConfig ==
This is a 0x18-byte struct. This is converted from another structure by the official user-process. The conversion is the same as PackedMomentProcessorConfig, except the code using out +0x1C/+0x1D was removed, and the constant is now located at out+0x10. The code which wrote to out u64 +0x10 from in+0x24 was replaced with code which writes an u8 to out+0x14.
This is a 0x18-byte struct. This is converted from another structure by the official user-process. The conversion is the same as PackedMomentProcessorConfig, except the code using out +0x1C/+0x1D was removed, and the constant is now located at out+0x10. The code which wrote to out u64 +0x10 from in+0x24 was replaced with code which writes an u8 to out+0x14.


==ImageTransferProcessorState==
== ImageTransferProcessorState ==
This is a 0x10-byte struct.
This is a 0x10-byte struct.


==PackedTeraPluginProcessorConfig==
== PackedTeraPluginProcessorConfig ==
This is an u64.
This is an u64.


==PackedDpdProcessorConfig==
== PackedDpdProcessorConfig ==
This is a 0x10-byte struct.
This is a 0x10-byte struct.


==PackedMcuVersion==
== PackedMcuVersion ==
This is an u32.
This is an u32.


=RomFS=
= irs:sys =
This is "nn::irsensor::IIrSensorSystemServer".
 
{| class="wikitable" border="1"
|-
! Cmd || Name
|-
| 500 || SetAppletResourceUserId
|-
| 501 || RegisterAppletResourceUserId
|-
| 502 || UnregisterAppletResourceUserId
|-
| 503 || EnableAppletToGetInput
|}
 
= ahid:cd =
This is "nn::ahid::IServerSession".
 
{| class="wikitable" border="1"
|-
! Cmd || Name
|-
| 0 ||
|-
| 1 ||
|-
| 2 ||
|-
| 3 ||
|}
 
= ahid:hdr =
This is "nn::ahid::hdr::ISession".
 
{| class="wikitable" border="1"
|-
! Cmd || Name
|-
| 0 ||
|-
| 1 ||
|-
| 2 ||
|-
| 3 ||
|-
| 4 ||
|}
 
= xcd:sys =
This is "nn::xcd::detail::ISystemServer".
 
{| class="wikitable" border="1"
|-
! Cmd || Name
|-
| 0 ||
|-
| 1 ||
|-
| 2 ||
|-
| 3 ||
|-
| 4 ||
|-
| 5 ||
|-
| 10 ||
|-
| 11 ||
|-
| 12 ||
|-
| 13 ||
|-
| 14 ||
|-
| 15 ||
|-
| 16 ||
|-
| 17 ||
|-
| 18 ||
|-
| 19 ||
|-
| 20 ||
|-
| 101 ||
|-
| 102 ||
|}
 
= hidbus =
This is "nn::hidbus::IHidbusServer".
 
{| class="wikitable" border="1"
|-
! Cmd || Name
|-
| 1 || GetBusHandle
|-
| 2 || IsExternalDeviceConnected
|-
| 3 || Initialize
|-
| 4 || Finalize
|-
| 5 || EnableExternalDevice
|-
| 6 || GetExternalDeviceId
|-
| 7 || SendCommandAsync
|-
| 8 || GetSendCommandAsynceResult
|-
| 9 || SetEventForSendCommandAsycResult
|-
| 10 || GetSharedMemoryHandle
|-
| 11 || EnableJoyPollingReceiveMode
|-
| 12 || DisableJoyPollingReceiveMode
|-
| 13 || GetPollingData
|}
 
= RomFS =
The hid-sysmodule RomFS contains:
The hid-sysmodule RomFS contains:
   ftmFwUpdate
   ftmFwUpdate
Line 609: Line 897:
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]].
Starting with [[3.0.0]] HID-sysmodule now contains strings for data stored in title [[Title_list|0100000000000822]].


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