Controlify

Controlify

609k Downloads

Support for DS4Windows features

vico93 opened this issue ยท 9 comments

commented

Reading the documentation on the Modrinth page, i noticed the mention of "Gyro" features, but only mentions of joysticks, nothing about Dualshock 4 and/or DS4Windows.

DS4Windows, currently maintained by @Ryochan7, is like an "abstraction layer" to connect Dualshock 4 (and others) controllers to PC. They are recognized by standard Xbox controllers, with all extended features not present on Xinput exposed via an internal UDP server, that sends data like sixaxis (gyro) and the touch input. I think those extra inputs can be of use on Minecraft, specially the touch and gyro to control the camera.

Some information about the UDP feature of DS4Windows (also implemented by other similar solutions for other controller types) can be found here and client implementation (from CEMU emulator) here.

commented

Have you tested that Gyro doesn't already work? I expect it would. Make sure you have the Vibration Natives enabled as they are required for Gyro functionality to work.

commented

Controlify uses SDL under-the-hood, meaning you have to DISABLE DS4Windows and other remappers to use all the controller features properly (incl. automatic Dualshock prompts throughout the game). Also, it's advisable to plug your controller to your computer via USB.

commented

That's what i was fearing.
I really don't want to ditch DS4W just to play on Minecraft - i have a very bad experience with RPCS3 that also requires me to disable DS4W just to play on it, and a lot of times the BT connection randomly dropped, what was very frustrating to me.

commented

I really don't want to ditch DS4W just to play on Minecraft

This is what native gamepad support means. If you don't like that, you can still play Minecraft with DS4W, just remind yourself that you're remapping your controller to an Xbox 360 one, and Minecraft will just see that.

commented

I really don't want to ditch DS4W just to play on Minecraft

This is what native gamepad support means. If you don't like that, you can still play Minecraft with DS4W, just remind yourself that you're remapping your controller to an Xbox 360 one, and Minecraft will just see that.

I know, but why not add at least the UDP client as an optional (even hidden, i dont care) feature? Of course its a niche thing to do, but for folks like me that most of controller use are for emulators - most of them don't have native support for the gyro features of Dualshock 4, while Dolphin only support the gyro controllers via UDP. Being forced to switch back and forth between DS4W and native is much annoying for the end user.

I hope it can be considered, even if its put far behind on the "feature queue" roadmap.

commented

I know, but why not add at least the UDP client as an optional (even hidden, i dont care) feature? Of course its a niche thing to do, but for folks like me that most of controller use are for emulators - most of them don't have native support for the gyro features of Dualshock 4, while Dolphin only support the gyro controllers via UDP. Being forced to switch back and forth between DS4W and native is much annoying for the end user.

I hope it can be considered, even if its put far behind on the "feature queue" roadmap.

IMHO this is added complexity for no real world usage. You don't want to manually disable DS4Windows whenever you start Minecraft? Cool, that tool actually can have a custom per-app profile that even includes disabling itself whenever random app (so, even Minecraft) is open and in focus.

Again, this ask is too much out of the project scope, and it would only serve people on Windows.

commented

This is a possibility. Controlify currently has a really early-stage driver system which allows various parts of the controller input to be abstracted from different libraries and systems. A DS4 UDP driver could also be an option, though another native library is rough.

commented

After doing some further testing with DS4Windows, it appears that gyro is detected out of the box, but there seems to be a problem with DS4Windows passes through the gyro data (reporting [0, 0, 0])

commented

Got gyro working! Without any DS4Windows explicit support! (forgot to enable the sensor)