-
-
Notifications
You must be signed in to change notification settings - Fork 118
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rumble doesn't work on Stadia controller #974
Comments
I'm very open to receiving PRs ;) Hopefully this help a bit: Usage page is only stored as a 8bits value in the hid_parser stack: BlueRetro/main/adapter/hid_parser.c Lines 16 to 22 in 3c45c15
Would make sense to upgrade it to 32bits since everything else is that, including the global structure used in all other module: BlueRetro/main/adapter/adapter.h Lines 469 to 477 in 3c45c15
You would need to cast the pointer to uint16_t * to grab the full value.
Then after that you would likely need to edit the generic rumble code to support that usage_page/usage combination: BlueRetro/main/adapter/wireless/hid_generic.c Lines 700 to 786 in 3c45c15
|
Thanks for the pointers! I probably won't have time to get around to this for a few weeks, since I don't have the ESP-IDF environment set up and will be quite busy. That said, it looks like a good idea to support 32-bit usage pages, so I'll give that a shot when I have the chance. Either way, it looks as if the values are little-endian, so |
Yes indeed it was simply the same value using a bigger sized var. Rumble.work now! https://github.com/darthcloud/BlueRetro/actions/runs/8808673421 |
Nice! I didn't realize you had already merged the fix in. I modified the code earlier today but wasn't able to test it until just now. Thank you! |
Fixed in v24.04 |
BlueRetro firmware version
1.9.1 and 24.04 beta 21
BlueRetro firmware specification
HW1
BlueRetro firmware variant
Universal
BlueRetro hardware type
External adapter with detachable cord
Manufacturer
blue-retro.com
System used
Nintendo 64
Bluetooth controller brand & name
Google Stadia
What is problem? (only list ONE problem per report)
Vibrations don't work with the Stadia controller.
Previous bugs for this issue were closed, so reopening here.
I don't have a linux machine set up to pull the HID report from the controller, but assuming this HID report is correct, the issue seems to be that USAGE_PAGE16 is not handled in a way that supports the Stadia controller's HID report.
In particular, it looks like the Stadia controller is sending
0x06, 0x0F, 0x00, // Usage Page (PID Page)
instead of
0x05, 0x0F, // Usage Page (PID Page)
which would be properly handled with the existing code.
I'm going to see if I can get a dev environment set up to test this, but I think changing the
USAGE_PAGE16
code to the following might fix the problem:What did you expect to happen?
I would expect vibrations to work with the Stadia controller.
Attach files like logs or Bluetooth traces here
No response
The text was updated successfully, but these errors were encountered: