FIX94 / Nintendont

A Wii Homebrew Project to play GC Games on Wii and vWii on Wii U
1.95k stars 326 forks source link

Rumble (Vibrations) support for HID controllers via USB #999

Open yongyang007 opened 2 years ago

yongyang007 commented 2 years ago

I have checked the HID_controllers.h and HID.c, I found that Nintendont should support rumble for those HID controllers via USB with a default (VID:PID)

Unfortunately I don't have these devices to test if Rumble works on Nintendont for HID controllers via USB .

What I want to confirm that:

  1. Does nintendont support rumble for any HID controller via USB theoretically? (if I have this data that can make the device rumble)
  2. How do I get those data via my controller? (e.g. through HIDAPI)
  3. How do I know which RumbleType I need to select? (I didn't understand the difference between HIDCTRLRumble and HIDIRQRumble)
carnage702 commented 2 years ago

yes dualshock 3 and wiiugc adapter do rumble through usb, those rumbles are hardcoded in nintendont itself, fix94 made rumble be available through the ini but i dont think anyone ever figured out how he got those values for the generic usb gamepad, so no idea, if anyone ever figures out how fix94 got those values i would be interested too.

yongyang007 commented 2 years ago

Hi, @carnage702 , do you know how to send an Output Report to HID via USB by Nintendont? I get the DS4 rumble Output Report from https://github.com/TheBITLINK/WebHID-DS4/blob/585ca5ae76058e5f85473fcce2b63582d01f2292/src/index.ts And try to use it with void HIDCTRLRumble(u32 Enable), but it doesn't work on my DS4. I think I have misunderstood how to convert rumble output report to the Rumble values using in Nintendont. It was difficult for me to read the underlying with C.

carnage702 commented 2 years ago

Hi, @carnage702 , do you know how to send an Output Report to HID via USB by Nintendont? I get the DS4 rumble Output Report from https://github.com/TheBITLINK/WebHID-DS4/blob/585ca5ae76058e5f85473fcce2b63582d01f2292/src/index.ts And try to use it with void HIDCTRLRumble(u32 Enable), but it doesn't work on my DS4. I think I have misunderstood how to convert rumble output report to the Rumble values using in Nintendont. It was difficult for me to read the underlying with C.

i have no idea how to convert it, the only person that did it was fix94 himself so i dont think anyone knows how to actually use the rumble hid stuff on the ini.