Jump to content

Should I Buy Throttle Or Rudder Pedals


91 replies to this topic

#61 mclang

    Member

  • PipPipPip
  • The Privateer
  • The Privateer
  • 97 posts

Posted 19 March 2016 - 10:21 AM

I got absolute aim script working as per your example.

I haven't tested it yet in the game because I had time only to find X/Y ratios for desktop usage (2600, 1650 -> 1920x1200), so that is next, maybe tomorrow. After that I'm planning to find good enough ratios for several of my mechs and assing a key to change between those. After all I'd rather start playing again instead of pouring all of my free time to calibration logic which in the end may or may not work.

One question though: Does the 10ms limit that Sleep has also affect Settimer, and even if it doesn't, is there any benefit do the calculations faster than every 10ms? I know that I could remove the sleep altogether, but then the loop would consume too much CPU power.

Oh, and another one: Is there any difference in AHK script performance between using Loop with 10ms Sleep, and Settimer with 10ms interval? I was thinking about enable/disable button that could turn timer off, but implementing it when using loop requires an additinal conditional check that has to be done every round...

I know this is premature optimizations and such, but it is in my nature to think these things when coding Posted Image

And sorry about all these questions, many of which is probably answered somewhere in AHK forums, but I have read a lot and it seems it is sometimes difficult to find answers to specific problems.

#62 mclang

    Member

  • PipPipPip
  • The Privateer
  • The Privateer
  • 97 posts

Posted 20 March 2016 - 09:54 PM

I got an idea about the X/Y axis ratios.

Does anybody know if the field-of-view setting has any effect in the needed axis ratios? I mean if I change my ingame FOV, is it probable that I have to scale the ratios accordingly?

#63 evilC

    Member

  • PipPipPipPipPipPipPipPip
  • Legendary Founder
  • Legendary Founder
  • 1,298 posts
  • LocationLondon, UK

Posted 21 March 2016 - 11:16 AM

Not as far as I am aware.
The FOV setting will have no impact on how much your torso can twist, as a mech's torso twist value governs what angle the *center* of the screen will be at when at max deflection, which is nothing to do with FOV.

#64 Zirakss

    Member

  • PipPip
  • 32 posts
  • LocationGermany, Kiel

Posted 22 March 2016 - 05:30 AM

For foot pedals I use a stealth switch 3. It's a programmable box for five inputs. You can use any on/off switch on them. I use the cheap plastik ones you can buy from them, but you can use any pedal or switch you like with an closing switch. There are a lot of good and sturdy ones for music applications. I have them bound to forward, backward on one pair. The other pair is bound to Q and E as it is for strafing in some games. Lazy as I am, I bound Q and E to turn left and right in MWO. But that is more for "the same feeling in any game". I don't use them that often. The last switch is bound to silence the mic. Other people would maybe use it for tap to chat, but I'am fine with voice activation and a fast way to silence the mic.

To turn the mech I use the small thumb joystick from a logitech G13. It can also be used for forward and backward but I mostly use the pedals for it. On the G13 I have some weapon groups and I will configure more buttons to in the future. It's a nice piece of hardware.

I have a CH trottle but it's an old gameport version. Sadly it can't be make to work under the more modern windows versions because of a lack of gameport support. The CH hardware is robust as hell and it did survive a lot of windows versions and PCs. The same goes for my old CH flightstick. It still works but it's unusable because of lack of gameport support.

#65 evilC

    Member

  • PipPipPipPipPipPipPipPip
  • Legendary Founder
  • Legendary Founder
  • 1,298 posts
  • LocationLondon, UK

Posted 22 March 2016 - 11:01 AM

You can get gameport to USB adapters, so you should be able to use the old CH throttle with MWO.
The CH software would no longer work, but as long as all the buttons / axes are mapped, it may work. You could then use software such as my UCR util to remap the buttons to keyboard.
Failing that, you could by a board such as a Teensy or a Leo Bodnar board and replace the main circuit board with that.

#66 mclang

    Member

  • PipPipPip
  • The Privateer
  • The Privateer
  • 97 posts

Posted 22 March 2016 - 11:07 PM

Now I know what twist icon you talked about, too bad it will light up way before the max twist limit is reached.

So I either have to find X/Y ratios manually and switch them as needed, or make up some kind of calibration function. I tested that my current X ratio of 2600 that covers the whole width of my 1920px Windows desktop is about 57° twist inside mech, so I can calculate the rest using ratio 1° = 45.6. Only drawback is that those max twist ranges will change when I get more X Twist skill, so calibration routine would be better solution.

But I thing those few degrees do not matter before I relearn aim with joystick. That is if I ever will.

Thanks Ziraks about the tip, I may well consider those pedals after I get my other gear in working condition. Although they cost pretty much considering they are only on/off type.

#67 Zirakss

    Member

  • PipPip
  • 32 posts
  • LocationGermany, Kiel

Posted 23 March 2016 - 01:06 AM

View PostevilC, on 22 March 2016 - 11:01 AM, said:

You can get gameport to USB adapters, so you should be able to use the old CH throttle with MWO.
The CH software would no longer work, but as long as all the buttons / axes are mapped, it may work. You could then use software such as my UCR util to remap the buttons to keyboard.
Failing that, you could by a board such as a Teensy or a Leo Bodnar board and replace the main circuit board with that.

Adapters don't work well with that CH hardware. Some buttons or coolie hats normaly don't work. But I'am thinking about to rewire them with another board.

#68 C E Dwyer

    Member

  • PipPipPipPipPipPipPipPipPipPip
  • Legendary Founder
  • Legendary Founder
  • 9,274 posts
  • LocationHiding in the periphery, from Bounty Hunters

Posted 23 March 2016 - 01:33 AM

Many find the mouse and throttle the bast way to play, if you can't play keyboard,mouse.

Joysticks can be used but you will struggle with fine control and sniping.

I have to use a joystick and throttle, for medical reasons, and have done since closed beta, but I also have a keypad and mouse set up for ranged playing. if I ever found a lefty throttle with buttons, unless you can make one, or have one made you won't find one, I would stop using a joystick and go with throttle and mouse hybrid in seconds.

You will find a big difference

Edited by Cathy, 23 March 2016 - 01:36 AM.


#69 Mystere

    Member

  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • Bad Company
  • Bad Company
  • 22,783 posts
  • LocationClassified

Posted 23 March 2016 - 06:52 AM

View PostCathy, on 23 March 2016 - 01:33 AM, said:

Many find the mouse and throttle the bast way to play, if you can't play keyboard,mouse.

Joysticks can be used but you will struggle with fine control and sniping.

I have to use a joystick and throttle, for medical reasons, and have done since closed beta, but I also have a keypad and mouse set up for ranged playing. if I ever found a lefty throttle with buttons, unless you can make one, or have one made you won't find one, I would stop using a joystick and go with throttle and mouse hybrid in seconds.

You will find a big difference


Thrustmaster has started selling separately their Warthog throttle.

#70 evilC

    Member

  • PipPipPipPipPipPipPipPip
  • Legendary Founder
  • Legendary Founder
  • 1,298 posts
  • LocationLondon, UK

Posted 23 March 2016 - 11:05 AM

View Postmclang, on 22 March 2016 - 11:07 PM, said:

Now I know what twist icon you talked about, too bad it will light up way before the max twist limit is reached.

So I either have to find X/Y ratios manually and switch them as needed, or make up some kind of calibration function. I tested that my current X ratio of 2600 that covers the whole width of my 1920px Windows desktop is about 57° twist inside mech, so I can calculate the rest using ratio 1° = 45.6. Only drawback is that those max twist ranges will change when I get more X Twist skill, so calibration routine would be better solution.

The HUD compass indicator looks like it would be accurate enough - the bit with the horizontal line connecting the two triangular indicators.
Center torso, then go into a loop where you issue a mouse move 1 unit left, check the x coordinate of the left-most orange pixel, and if it did not change since last loop then break.
That would give you the twist range of any mech in mouse units.
I dunno tho if there is still the issue with MWO where mech efficiencies do not take effect in Testing Grounds, but we could get the code working in testing grounds and then I reckon it would only take ~10 seconds or less to find that value, so could easily be done at the start of a match. Hell, as long as you don't touch the torso controls, you could even be moving and turning legs while it was doing it.

#71 evilC

    Member

  • PipPipPipPipPipPipPipPip
  • Legendary Founder
  • Legendary Founder
  • 1,298 posts
  • LocationLondon, UK

Posted 23 March 2016 - 11:13 AM

View PostMystere, on 23 March 2016 - 06:52 AM, said:


Thrustmaster has started selling separately their Warthog throttle.

The warthog lacks a rudder rocker. The Hotas X is better for MWO.
There is a new version of the Hotas X out called the "Hotas 4", and apparently it has a much smaller deadzone.

You could also remove the deadzone by swapping out the circuit board for something like a Leo Bodnar board, and probably wouldn't even need to replace the pots or wiring. The cost of a Hotas X plus a replacement board would still probably be half what a Warthog costs.

Once I get some time I am gonna finish off my Hall Sensor mod on my Hotas X, but to be honest the rudder rocker dz is not the problem - the problem is MWO's massive deadzone that you can do nothing about.

#72 Mystere

    Member

  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • Bad Company
  • Bad Company
  • 22,783 posts
  • LocationClassified

Posted 23 March 2016 - 11:45 AM

View PostevilC, on 23 March 2016 - 11:13 AM, said:

The warthog lacks a rudder rocker. The Hotas X is better for MWO.
There is a new version of the Hotas X out called the "Hotas 4", and apparently it has a much smaller deadzone.

You could also remove the deadzone by swapping out the circuit board for something like a Leo Bodnar board, and probably wouldn't even need to replace the pots or wiring. The cost of a Hotas X plus a replacement board would still probably be half what a Warthog costs.


For MWO, I am starting to use the Warthog throttle's analog mouse hat for turning and jump jets. It's almost a breeze to use in that manner. It works much better than using the mini-stick on the G13 for turning and jumping. On the other hand, the Warthog stick is a pain to tune properly for aiming in MWO. I'm still much better off using a mouse on the right hand. But maybe more practice will eventually fix that.

I also miss the old HOTAS Cougar's rotary switch on the throttle. I used that for torso twist in previous MW games.

As for the new HOTAS X, is that still using potentiometers? If so, I'll take a pass. I tend to wear them off rather quickly.

Finally, for MWO, I'm looking into pairing the Warthog's throttle with a T16000M for the latter's twisting stick. It is inexpensive enough for me to experiment with to see if I would like the combo.


View PostevilC, on 23 March 2016 - 11:13 AM, said:

Once I get some time I am gonna finish off my Hall Sensor mod on my Hotas X, but to be honest the rudder rocker dz is not the problem - the problem is MWO's massive deadzone that you can do nothing about.


Amem to that! And what's up with that anyway? Why is it even there?

Edited by Mystere, 23 March 2016 - 11:46 AM.


#73 evilC

    Member

  • PipPipPipPipPipPipPipPip
  • Legendary Founder
  • Legendary Founder
  • 1,298 posts
  • LocationLondon, UK

Posted 24 March 2016 - 04:55 AM

Using "Relative" stick aiming (The default stick aim mode in MWO), you will never, ever be able to come close to the level of accuracy you can achieve with mouse aiming - it's technically impossible. This is why you don't get cross-platform (Console, PC) FPS games where you can play against each other - console joypad aimers cannot possibly compete with mouse aimers.
Having a larger throw (Range of motion in the stick) alleviates this somewhat, but you still cannot change from moving your aim to the left to moving your aim to the right quickly enough (You have to move the stick through the center point to change direction).
The only way stick aiming could possibly compete is with "Absolute" stick input, which PGI tried to implement but failed epically.
Myself and others are trying to implement this in code, but it is not simple and even then you would probably need to remove the spring from your stick to make it comfortable to use.

Yes, the Hotas X has pots, but I have started to convert one of mine to hall sensors, and it isn't terribly hard.

View PostMystere, on 23 March 2016 - 11:45 AM, said:

Amem to that! And what's up with that anyway? Why is it even there?

A combination of catering to the lowest common denominator, incompetence and simply not caring about joystick input. Hell, analog throttle still cuts out when you open the chat box (But using keyboard for throttle doesnt). Just look at the promised "Absolute" input mode: It took ages to be delivered, didn't work (Didn't properly account for differences in torso twist range, still a massive dz that made it useless), and once you enabled it, it stopped mouse input from working. That was years ago, they never bothered to finish it.

Edited by evilC, 24 March 2016 - 04:56 AM.


#74 mclang

    Member

  • PipPipPip
  • The Privateer
  • The Privateer
  • 97 posts

Posted 24 March 2016 - 06:45 AM

I finished my Warthog extension last weekend.

Now my warthog feels really great, even with the big stock spring in place. Previously I tried also to play without the spring (easy to remove), but using extension is SO much better!

I will create a new thread that shows the parts needed for the extension first thing when I have time. And I thing the absolute aim, calibration and other such things belong to there also.

#75 Mystere

    Member

  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • Bad Company
  • Bad Company
  • 22,783 posts
  • LocationClassified

Posted 24 March 2016 - 07:33 AM

View PostevilC, on 24 March 2016 - 04:55 AM, said:

A combination of catering to the lowest common denominator, incompetence and simply not caring about joystick input. Hell, analog throttle still cuts out when you open the chat box (But using keyboard for throttle doesnt). Just look at the promised "Absolute" input mode: It took ages to be delivered, didn't work (Didn't properly account for differences in torso twist range, still a massive dz that made it useless), and once you enabled it, it stopped mouse input from working. That was years ago, they never bothered to finish it.


Yes, PGI not accounting for torso twist differences and those darned deadzones make using sticks "challenging" (to put things ever so mildly).

#76 evilC

    Member

  • PipPipPipPipPipPipPipPip
  • Legendary Founder
  • Legendary Founder
  • 1,298 posts
  • LocationLondon, UK

Posted 24 March 2016 - 01:04 PM

OK, I just had another look and it seems some recent changes could potentially help us out - the crosshair now behaves the same with arm lock on and off (it was more rigid when arm lock was on before).

I did some experiments with mouse_event DLL calls, and it seems that the crosshair is in effect a readout telling you how fast you are twisting. When you are at 100% twist rate, the crosshair does not move any further - it is at this point that mouse movement is "thrown away" and your script has basically no chance of staying perfectly in synch.

Using mouse_event, as long as i issued move commands sufficiently small such that the max twist rate was never exceeded, then I could issue a +100 move, then a -100 move, then hit C and the view did not change.

So... given this information and a little thought, I have some fresh ideas for ways to tackle this problem.
Gonna tinker with some code, will let you know if I come up with anything.

#77 evilC

    Member

  • PipPipPipPipPipPipPipPip
  • Legendary Founder
  • Legendary Founder
  • 1,298 posts
  • LocationLondon, UK

Posted 24 March 2016 - 02:30 PM

So basically here is a working solution, with the following caveats:
  • You need to know the max amount of mouse units that a given mech can twist.
  • You need to know the max mouse units / ms that a given mech can twist at.
So, as long as one can find these values (Through either trial and error, or through a yet-to-be-written calibration system), then this implementation seems to perfectly map joystick input to mouse output.

Ideally, you want the highest values as possible, but I have found some that are pretty darned close for my test mech and it never, seems to go out of synch, although I did not play a match as I found it unusable for the following reasons:

The "coordinate space" (ie the range of coordinates that can be acheived for both axes) for a joystick is square.
The coordinate space for the mech is a wide rectangle.

This means that if you map the joystick directly to the mouse, your X and Y sensitivities can be quite different, making it difficult to aim.

Also, the only flightstick I have is the Hotas X, and it is very low resolution, so it is quite unsuitable for stick aiming in MWO.

I think the X/Y ratio thing could be sorted out - you could make the Y axis match the X axis sensitivity, and "clip" it. It would mean that only the middle part of your Y axis would do anything, but at least it would be even.

Could anyone with a high accuracy stick try this out and see what they think?

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
#SingleInstance force
 
; User configurables
; For all [arrays], the first value is X, the second is Y
MOUSE_UNITS_RANGE := [5000, 1000] ; The total range of movement, in mouse units, for each axis.
MAX_TWIST_RATE := 25 ; The max twist rate, in mouse units
STICK_ID := 2 ; The ID of the stick to take input from
STICK_AXES := ["X", "Y"] ; The axes on the stick to take input from
 
; Internal vars
MAX_JOYSTICK_RANGE := 100
JOYSTICK_OFFSET := MAX_JOYSTICK_RANGE / 2
JOYSTICK_MOUSE_RATIOS := [MOUSE_UNITS_RANGE[1] / MAX_JOYSTICK_RANGE, MOUSE_UNITS_RANGE[2] / MAX_JOYSTICK_RANGE]
AXIS_NAMES := [STICK_ID "Joy" STICK_AXES[1], STICK_ID "Joy" STICK_AXES[2]]
 
current_values := [0,0]
 
Loop {
; Reset the move amount
delta_move := [0, 0]
; Work out how much we want to move in X and Y
Loop 2 {
; Get state of axis
axis_in := GetKeyState(AXIS_NAMES[A_Index])
; Work out at what mouse "coordinate" that the stick position equates to
desired_value := round((axis_in - JOYSTICK_OFFSET) * JOYSTICK_MOUSE_RATIOS[A_Index])
; Do we need to generate mouse input?
if (desired_value != current_values[A_Index]){
; Find out how much we want to move the mouse by
delta_move[A_Index] := desired_value - current_values[A_Index]
; Limit the amount of movement for this tick to the MAX_TWIST_RATE
delta_move[A_Index] := abs(delta_move[A_Index]) > MAX_TWIST_RATE ? MAX_TWIST_RATE * sgn(delta_move[A_Index]) : delta_move[A_Index]
; Update current value
current_values[A_Index] += delta_move[A_Index]
}
}
; Generate mouse input for both axes at once
DllCall("user32.dll\mouse_event", "UInt", 0x0001, "Int", delta_move[1], "Int", delta_move[2], "UInt", 0, "UPtr", 0)
Sleep 10
}
 
; Returns -1 if value is negative, or +1 if 0 or positive
sgn(val){
if (val >= 0)
return 1
else
return -1
}
 


#78 mclang

    Member

  • PipPipPip
  • The Privateer
  • The Privateer
  • 97 posts

Posted 25 March 2016 - 07:56 AM

I can test your script with my Warthog as soon as I have the time.

Good points about the difference between X and Y axis ranges, haven't thought about that! That is probable why my tests with aiming felt so,ewhat strange... I think that the right solution is to use same ratio for both axises (axes?) and like you said clip it.

I promised to create thread about the Warthog extension I made, so here it is. I think further absolute aim development belongs to there, because this thread was originally only about throttle versus pedals :)

#79 evilC

    Member

  • PipPipPipPipPipPipPipPip
  • Legendary Founder
  • Legendary Founder
  • 1,298 posts
  • LocationLondon, UK

Posted 26 March 2016 - 06:50 AM

I wrote a basic calibration script to find the MOUSE_UNITS_RANGE for a given mech.
I also created a new thread for this script, it is here: http://mwomercs.com/...s/topic/225233-

#80 mclang

    Member

  • PipPipPip
  • The Privateer
  • The Privateer
  • 97 posts

Posted 28 March 2016 - 09:56 PM

I may have time to test your aim and calibration test tonight.

I hope at least!





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users