ndeadly / MissionControl

Use controllers from other consoles natively on your Nintendo Switch via Bluetooth. No dongles or other external hardware neccessary.
GNU General Public License v2.0
2.38k stars 137 forks source link

[Controller Request]: Support Rumble/Vibration for PXN-9613 #727

Open DzungHT opened 9 months ago

DzungHT commented 9 months ago

Controller Name

PXN-9613

Current Controller Behaviour

Other (please specify below)

Controller successfully pair with the console but doesn't support rumble/vibration.

Controller vendor and product ID

1949:0402

Supported Features

Input Report Format

No response

Additional Details

I can't get the official link. So the following is the image of the controller PXN-9613. The controller has 2 modes for Bluetooth:

  1. Android mode: If using this mode on the PC, the trigger buttons work as normal buttons (Windows doesn't realize the sensitivity)
  2. PC mode: I used it in Windows 10/11. It's very like an Xbox controller, except for the "Home" button)

image

ndeadly commented 9 months ago

This controller appears to be identified as an ipega controller, which is why it works at all (I don't officially support this one). If all the buttons work correctly then I guess I don't need to change anything with regards to inputs.

Rumble is harder to support for arbitrary controllers, because we can't just observe the packet format on the Switch. The easiest way to do this that I know of is to make a wireshark capture on a PC of something sending rumble commands to the controller. If you make a USB capture with wireshark (this can also capture Bluetooth traffic on many PCs) and run something that can trigger rumble (eg. an online gamepad tester or a game) it should be possible to see what is sent to the gamepad to trigger it.

DzungHT commented 8 months ago

Rumble is harder to support for arbitrary controllers, because we can't just observe the packet format on the Switch. The easiest way to do this that I know of is to make a wireshark capture on a PC of something sending rumble commands to the controller. If you make a USB capture with wireshark (this can also capture Bluetooth traffic on many PCs) and run something that can trigger rumble (eg. an online gamepad tester or a game) it should be possible to see what is sent to the gamepad to trigger it.

@ndeadly Sorry, I don't have experiences in this field. I tried to use wireshark software but I haven't found a document on how to capture data send to my controller :(

If possible, please guide me on how to capture the data what you need. Thanks!

ndeadly commented 8 months ago

@DzungHT You just need to start a capture with Wireshark on the USB interface, connect your controller either via USB or Bluetooth, and then do something on your PC that triggers the controller vibration. There should be plenty of guides out the on how to start capturing traffic if you can't figure that part out. The only catch is that you'll need to make sure you have the optional USB packet capture driver installed that comes with the Wireshark installer.