WhiteMagic / JoystickGremlin

A tool for configuring and managing joystick devices.
http://whitemagic.github.io/JoystickGremlin/
GNU General Public License v3.0
326 stars 46 forks source link

Help with joystik Gremlin and Vjoy Setup #270

Closed JFA-94 closed 1 month ago

JFA-94 commented 4 years ago

Hi guys,

i Need some help with my Joystick Gremlin and Vjoy Setup and i would be very happy if you have the time to give me your advice.

My aim i want to achieve is having a virtual Controller Setup, where i can use two Saitek yokes in the same game (Xplane). Both of them shall be usable. Therefore i merged the axes in gremlin in a way that only the maximum of the yokes is used in my flight sim. This Pilot and co Pilot have yokes although there are not able to use them at the same time.

But when i want to use the right yoke everytime i move it the vjoy monitor Shows me that for a second that the virtual Joystick switches back to the "Standard Position". It is like the yjoy Controller "trembles". I have no clue what is the reason for that. Especially because the Right yoke is absolutely fine. Even when i check the gremlin Input monitor there is no trembling so the Yokes are fine and the Problem has to be Vjoy.

I dont think the Problem is that my vjoy or Xplane gets confused with the Inputs.

My Suggestion is, that vjoy and josystick gremlin have Problems with merging the axes. The Thing is that when both yokes are centered the vjoy monitor Shows a half scale. If you imagine the yoke as a throttle the program thinks of it as the throttle would be in a middle Position.

Now back to the yokes: when one yoke is centered (because you only use the Right one while the left one does Nothing) the program does not think "left one does Nothing and Right one is fully turned to the Right". It thinks "the left one is half scale and the Right one is Zero". Because I merged the axis a way that only the maximum is recognized the plane flys straight foreward.

What i am Looking for is a tool that gives me the possiblilty for saying the Simulator that centred is "Zero scale", fully turned to Right is "+100% scale" and fully turned to left is "-100% scale".

Maybe you have an idea how to solve my Problem. This would be really great!

BenBlake79 commented 4 years ago

I had some issues with the axes mrging as well but somehow fixied or worked around it. I think the only way is to make such a setup in two steps but a vjoy device can not be set up as source and target at once in 13.3. One workaround would be to make two modes and switch between them or use UCR to split axes first and invert the lower half to vjoy device #2 and then remerge them in joystic gremlin. So every movement away from the center would be considered as a higher level and the therefor the higher deflexion is the maximum irrespective of the direction...

of course an option that makes that within joystick gremlin would be great ;)

Edit: And there's another idea, you can manipulate the response curve to an v-shape (bezier spline without smooth curves - finetuning in an xml-editor to make it symetrical) but when I think about it you need three steps anyway - split and invert (can be done as an V-shape) in joystick gremlin to vjoy#3, merge the upper halves and lower halves in UCR to vjoy#2 (input in joystick gremlin) with maximum option and then merge and invert the lower half again in joystick gremlin to vjoy#1 - this should work

PS: It seems you have to Install SCPVBus in UCR (IOClasses - vjoy) and start UCR first to make it work...

WhiteMagic commented 4 years ago

What mode are you using when merging the two axes? If you did not change anything then it will default to average which is why you would see it only reach half the deflection range. The maximum operation would actually not help you much as it takes the sign into account, so if the deflection is positive it would behave as desired, however if the deflection is negative it actually wouldn't allow the deflection at all assuming the other axis is not moving from the neutral zero position. Though writing a plugin that behaves correctly, i.e. uses the unsigned rather then signed value to determine the maximum wouldn't be too hard.

As for the odd behavior, I can't really say where this comes from, as far as Gremlin is concerned there is nothing special about yokes, they're just an axis. Depending on the merge setting and whether or not both axes have been used and thus have a known value things might be weird, but a consistent jumping upon usage sounds like the merge operation is fighting itself. Though to actually make a comment about that I'd need to know how the whole thing is configured.