AntiMicroX / antimicrox

Graphical program used to map keyboard buttons and mouse controls to a gamepad. Useful for playing games with no gamepad support.
GNU General Public License v3.0
2.47k stars 143 forks source link

Turbo Adjustments #147

Open Actuatedgear opened 3 years ago

Actuatedgear commented 3 years ago

I'm using the turbo feature to give me smooth acceleration on vehicles in Scrap Mechanic which currently only supports WASD style movement. For the record, the movement can be ever so slightly jittery even at the high end of Gradient setting, but other than that it works brilliantly... Mostly

What I'd like is the ability to set turbo input to as much as 100/s or 0.01 intervals which I believe would solve all jitteriness at the high end. In the mid range it will still be jittery, but there's not much helping that for animation issues.

What I'd also like is more in depth control of the gradient. For my purposes, the bottom end is slightly too low and the middle doesn't seem to have a smooth transition. I don't know how exactly you program that, but Qjoy gave the ability to input custom equations for joystick. Maybe there's a simple way to add a feature like that? Even just more gradients, say one that looks more like the Power Function would be nice.

If we wanted to get really crazy it would be could to do something like a graphically adjustable line function, like a bezier curve, but... well I figure that's a bit much of an ask.

In general, amazing job. This program was EXACTLY what I needed for controller setup and the onscreen keyboard is the perfect way to deal with inputs... can it do non-Qwerty?


Upvote & Fund

Fund with Polar

pktiuk commented 3 years ago

To be honest, I am just maintainer of this app since August, and I am still not very familiar with codebase of this project yet.
I am still finding new functionalities I was not aware of, and Turbo was one of them (credits to original developers for providing this feature).

That's why for now I can say that in the foreseeable future I will not be able to deal with it. But if you want feel free to deal with issue by yourself and submit PR with this.
If you think you would like to help us with developing AntiMicroX (in general) you can join our team :D (we need help not only from programmers)

Actuatedgear commented 3 years ago

For the record, I was able to get the functionality I wanted by tuning up my joystick deadzones. It made a world of difference. Good programs have lots of ways of doing things, but that also steepens the learning curve. That's my b.

As for programming... Ive dipped my toe in before, and I think I've gathered where it's at, but this is still a bit above my abilities TBH.

The relavent function appears to be defined (I think I'm saying that right) in joygradientbutton.cpp. It looks like it runs a timer and checks the distance from a zero point. It seems to be dealing with it like a mouse event, but that joystick doesn't move the mouse per say so it may just be using the same types of recognition. I'm having flashbacks to reading a book in french when I didn't speak french. Cognates and context take you far enough to be in a scary place where you understand most things by themselves, and yet never get the full picture.

As for PR, I'm guessing that means Pull Request, you're dealing with a full on N00b here. Is that basically like saying, "Hey! Anybody out there wanna take a crack at this?!" Or is there more to it?

Thank you!