HID services: Difference between revisions
Line 9,822: | Line 9,822: | ||
The following devices are used via hidbus: | The following devices are used via hidbus: | ||
* [[Ring-Con]] | * [[Ring-Con]] | ||
** [[#BusType]] is 0 (LeftJoyRail) or 1 (RightJoyRail). [[#GetExternalDeviceId|DeviceId]] is 0x20 ("Ronde"). | ** [[#BusType]] is 0 (LeftJoyRail) or 1 (RightJoyRail). | ||
** [[#GetExternalDeviceId|DeviceId]] is 0x20 ("Ronde"). | |||
* Famicom right controller (with microphone) | * Famicom right controller (with microphone) | ||
** [[#BusType]] is 2 (InternalBus). [[#GetExternalDeviceId|DeviceId]] is 0x21 ("LarkMic"). | ** [[#BusType]] is 2 (InternalBus). | ||
** [[#GetExternalDeviceId|DeviceId]] is 0x21 ("LarkMic"). | |||
** SendAndReceive is not used. EnableJoyPollingReceiveMode is used where the input buffer is an u32 with value 0, [[#JoyPollingMode]] = 2. GetJoyPollingReceivedData is used to get the output data. | ** SendAndReceive is not used. EnableJoyPollingReceiveMode is used where the input buffer is an u32 with value 0, [[#JoyPollingMode]] = 2. GetJoyPollingReceivedData is used to get the output data. | ||
* "Starlink: Battle For Atlas" controller mount | * "Starlink: Battle For Atlas" controller mount | ||
** [[#BusType]] is 1 (RightJoyRail). [[#GetExternalDeviceId|DeviceId]] is 0x28. | ** [[#BusType]] is 1 (RightJoyRail). | ||
** [[#GetExternalDeviceId|DeviceId]] is 0x28. | |||
** EnableJoyPollingReceiveMode is used where the input buffer is an u16 with value 0x09, [[#JoyPollingMode]] = 0. SendAndReceive is called from 1 func. GetJoyPollingReceivedData is used to determine whether to call the same func which calls SendAndReceive, which is only done if <code>out_size==0x4 && data[0]==0x09 && (data[1] & 1 == 1)</code>. | ** EnableJoyPollingReceiveMode is used where the input buffer is an u16 with value 0x09, [[#JoyPollingMode]] = 0. SendAndReceive is called from 1 func. GetJoyPollingReceivedData is used to determine whether to call the same func which calls SendAndReceive, which is only done if <code>out_size==0x4 && data[0]==0x09 && (data[1] & 1 == 1)</code>. | ||