Electronicks / JoyShockMapper

A tool for PC gamers to play games with DualShock 4s, JoyCons, and Pro Controllers. Gyro aiming, flick stick.
Other
372 stars 20 forks source link

[Feature Request] Flydigi controllers gyro support #58

Open eVenent opened 2 years ago

eVenent commented 2 years ago

Flydigi is releasing Android/PC controllers with gyro controls. Maybe it will be worth someday to add their support to JoyShockMapper. I have found that these controllers have gyro support on Android:

Thanks. It would be nice to have more smaller gamepad releasing companies interested in motion controls.

Wolfbladelc commented 2 years ago

Up. I have a Flydigi Apex 2 and would very happy with this support.

zeddidragon commented 2 years ago

While JSM detecting and using the Apex' mouse output would be nice, what's keeping it from helping me is the program not detecting all of the extra buttons. That leaves a lot of the controller's strengths unused. The reason for this is, as far as I can tell from the README, JoyShockMapper aiming to support "most modern controllers", and that means following the Xinput protocol that is hard capped at 10 buttons.

Still, JSM does seem to make special cases for Microsoft's own elite paddles and Nintendo's inner Joycon buttons, so maybe there's a possibility after all.

I'm guessing this is a limitation of SDL2?

DamianS-eng commented 2 years ago

It's not entirely true that controllers with extra buttons won't be supported. Look at the Playstation's trackpad click; that's at least two extra buttons. And the Joycons have SL and SR buttons in addition that are recognized. Xinput protocol has nothing to do with the controllers the program will support, because the output was never Xinput in the first place.

eVenent commented 2 years ago

I see that reWASD have been added good support for these controllers including gyro and XYB wheel as third joystick. Maybe it will be worth to check how they did it.

zeddidragon commented 2 years ago

It's not entirely true that controllers with extra buttons won't be supported.

All I can tell you is that when I start up JoyShockMapper it won't detect any of my extra buttons. To my understanding, additional inputs like trackpads, gyro, and extra buttons on joycons/xbox elite is something that was put into SDL2 through specific exceptions on account of these controllers having a huge market share. Some of those additions were done specifically by JSM devs.

Now this is on Linux. I haven't tested the controller with JSM on Windows.

The reason I bring up Xinput is this phrasing from the README:

Most modern controllers will be suported, including all Xbox, Playstation and Switch controllers,

Why only modern controllers? I can only assume because the Xinput protocol is used to read the input. If there's a different reason why I can't use all of my buttons with this program I'd be interested in corrections.

80T commented 1 year ago

While JSM detecting and using the Apex' mouse output would be nice, what's keeping it from helping me is the program not detecting all of the extra buttons. That leaves a lot of the controller's strengths unused. The reason for this is, as far as I can tell from the README, JoyShockMapper aiming to support "most modern controllers", and that means following the Xinput protocol that is hard capped at 10 buttons.

Still, JSM does seem to make special cases for Microsoft's own elite paddles and Nintendo's inner Joycon buttons, so maybe there's a possibility after all.

I'm guessing this is a limitation of SDL2?

I believe that XInput was superseded and we are now currently on "Windows Gaming Input", or "GameInput" as the standard API for gaming peripherals in Windows. This has support for all the extra features on the newer controllers and likely more.

GameInput