araghon007 / X1nput

Xinput hook for Impulse Trigger emulation
MIT License
344 stars 37 forks source link

I would like to program X1nput to modulate rumble signals #16

Closed LeVraiRoiDHyrule closed 3 years ago

LeVraiRoiDHyrule commented 3 years ago

Hi,

I just tried X1nput with some of my games, it works great !

But I would like to custom it a bit more. My objective would be to feel rumbling waves on my controller instead of just impulsion on the 4 motors. Currently, when a game sends a rumble signal, it justs turn all the motors on and off at the same time. I would like to modulate the rumble signals.

I would like to use sin() and cos() functions to modulate the signals, so the rumbling is oscillating. I would also love to be able to delay the signals on each motors. That way, I would be able to program rumble from left to right, or right to left. That would make the rumbling feedback much more immersive.

But I don't know where I could do this. Does someone have an idea for such a project ? Thanks in advance for your help

araghon007 commented 3 years ago

Hello, I tried making a UE4 plugin at one point, but quickly found out that's not a good idea. I wouldn't recommend using the approach I used here for actual game, since it's only functional on windows 10, and requires the game window to be in focus. I tried experimenting with the approach people used for the new DualSense triggers, but gave up on that one since I have no experience with USB protocols.

LeVraiRoiDHyrule commented 3 years ago

Well, your plugin works great. I would just like to know if it's possible to use like motor1 = sin(t+3.14)*output instead of motor1 = output. Maybe it can be simply edited in the plugin ? Maybe you already tried...

araghon007 commented 3 years ago

If you're experienced with C++, you could try integrating this into your project. You'll have to do the initialization stuff from dllmain, and then look at XInputSetState to see how to set vibration values on the controller. Otherwise I don't really know how to help you.

araghon007 commented 3 years ago

I just realized that that's sort of what lindquest did. I'm hoping I could experiment with custom curves at some point, but I'm not much of a mathematician. Also let me see what does this button do