Skip to content
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

Raw Protocol #149

Open
przymi opened this issue Oct 28, 2024 · 2 comments
Open

Raw Protocol #149

przymi opened this issue Oct 28, 2024 · 2 comments

Comments

@przymi
Copy link
Contributor

przymi commented Oct 28, 2024

Directly expose USB HID

  • all buttons
  • 6-axis IMU
  • thumbstick values

Mapping could be done e.g. by reWASD

@przymi przymi added this to Roadmap Oct 28, 2024
@przymi przymi converted this from a draft issue Oct 28, 2024
@marcos-diaz
Copy link
Contributor

There are several ways to implement this:

  • LibSDL, this I assume would be the preferred way for Steam Input integration.
  • Extending the generic HID gamepad interface with additional axis.
  • UnifiedControllerInputSpec, an initiative to create an open controller interface standard.

@AndyDevLat
Copy link

AndyDevLat commented Oct 28, 2024

I guess adding missing stuff to the generic HID gamepad interface would be fastest to do, but then all buttons and axes must be raw, i.e. not depend on any onboard profile, in order to avoid conflict with 3rd party mappers and to provide best user experience.
Basically, you can leave it as is for compatibility with your current design, but just duplicate all raw buttons, axes and IMU at the tail of this report as Const array so it will be ignored by standard OS HID parser, but 3rd party apps like reWASD will read them from report directly by offset.
It is also desirable not to add keyboard/mouse it this case, because 3rd party mappers should be able to emulate keyboard/mouse from raw gamepad input on their own.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Ideas box
Development

No branches or pull requests

3 participants