Jump to content
Sign in to follow this  
TheHarvesteR

updates on the analogue throttle issue?

Recommended Posts

hello,

When patch 1.03 came out, it added an analogue throttle control binding for those with HOTAS joysticks to be able to have full control over aircraft throttle. (up until then, the throttle input was filtered through some sort of AI that regulated the throttle for you)

this improvement, however, somewhat failed to deliver for a number of reasons...

first, the analogue throttle only works for fixed wing aircraft... meaning that to be able to fly helicopters as well, one needs to have both throttle bindings (old and new) set to the same joystick throttle axis, which inevitably causes a conflict.

second, the old (AI-driven) throttle binding has priority over new analogue one when both are mapped to the same axis, meaning fixed-wing flight is still being controlled by the AI throttle. Needless to say, this renders the new binding useless for those not willing to re-map controls upon switching from fixed-wing to rotorcraft or vice-versa...

patch 1.04 brought forth no change for this issue, and I was hoping to find out if a fix is due for any future release

another point i'd like to suggest, if this is to be addressed in the near future, is that perhaps it might be possible to have separate bindings for the analogue thrust and the airbrakes. (currently they both dwell on the upper and bottom half of the mapped axis) ...although both actions do have separate bindings as of now, since they only exist on their respective halves of the axis range, mapping the throttle to one axis and the brakes to another means that only the upper half of the former and the lower half of the latter will have any effect... the rest of the ranges stay unused.

I thank you in advance. ArmA II is a wonderful game, and addressing this rather small issue will only increase the enjoyment we "pilots" get from it.

Cheers

HarvesteR

Share this post


Link to post
Share on other sites

I agree with this, we need analogue throttle for Helis, and we need the ability to have separate settings for fixed wing and helis. Personally I really hope the heli issue is fixed ASAP, as it kills the experience for me and I wont fly helis because of it.

Share this post


Link to post
Share on other sites

Ok, I came up with a "fix" for now... not an optimal solution, as you will soon realize, but it's the best it can get right now.

bear in mind that I'm using a saitek X52 Pro, and my procedure is based on the capabilities of the SST profiling software from saitek and probably will only work for this stick. (if you have an X52, try it.)

anyways, what I've done was this:

I set up a profile for ArmA 2 in the SST (if you have a saitek stick, you probably have already done the same)

then, using the mode switch on the stick, I set up mode 1 to be fixed wing / generic and mode 3 to be rotorcraft

the fixed wing throttle setting is the deafult axis mapping, I didn't tweak that.

the rotorcraft mode now, uses the throttle axis in bands mode, meaning you can define 'regions' in the axis travel that will give out programmable keypresses when the stick is on that position

so, for rotorcraft (mode 3) throttle I defined 9 regions, evenly spaced throughout the throttle range. The middle one (center of travel) doing nothing... on the upper half I have bands for 1/4 up, half up, 3/4 up and full up, and likewise for the lower half. (up being the Q key and down being Z)

so I setup an advanced command for each band... the advanced command lets you define a sequence of keys to be pressed and released, cyclic or not, and lets you time those keypresses.

so I set delays for keypresses and key releases to get a variable intermitent keypress for each region. the delay defines how much time the key will remain pressed in relation to how much time it will remain unpressed... by doing this fast enough (5 times a second), it's possible to have something akin to a semi-pressed key. the key sequence loops once it finishes, so I only had to define a 2-key sequence.

the delays for each region are as follows:

full up :: fully repeating Q -- pressed 100% of the time

3/4 up :: Q down (.075), Q up (.025), Q down (.075), Q up (.025) -- pressed 75% of the time

half up :: Q down (.05), Q up (.05), Q down (.05), Q up (.05) -- pressed 50% of the time

1/4 up :: Q down (.025), Q up (.075), Q down (.025), Q up (.75) -- pressed 25% of the time

note that all delays will add up to .2 seconds... this is intentional... how much time it takes to complete the key sequence is immaterial, what matters is how much time the key is being held down, in relation to the full sequence time.

the lower half of the range is the same, only using the Z key instead...

what this causes is that you get a progressively higher amount of time with the key pressed, thus being able to emulate (to an extent) the behaviour of a joystick axis only using binary buttons.

now when I enter a helicopter, I switch the stick to mode 3, and fly it using the throttle as normal... for fixed-wing, I just switch back to mode 1. (it's also necessary to switch back to mode 1 when leaving the helicopter, since these keys have other uses when on foot, and you don't want them being pressed all the time)

as you can see, this is a major kludge, but it was the best solution I could find for this issue for now (and it only works if you have the means to sequence keypresses and define regions in axes, as the Saitek SST software allows)

I hope this helps those using X52's

Cheers

Edited by TheHarvesteR

Share this post


Link to post
Share on other sites
Ok, I came up with a "fix" for now... not an optimal solution, as you will soon realize, but it's the best it can get right now.

bear in mind that I'm using a saitek X52 Pro, and my procedure is based on the capabilities of the SST profiling software from saitek and probably will only work for this stick. (if you have an X52, try it.)

anyways, what I've done was this:

I set up a profile for ArmA 2 in the SST (if you have a saitek stick, you probably have already done the same)

then, using the mode switch on the stick, I set up mode 1 to be fixed wing / generic and mode 3 to be rotorcraft

the fixed wing throttle setting is the deafult axis mapping, I didn't tweak that.

the rotorcraft mode now, uses the throttle axis in bands mode, meaning you can define 'regions' in the axis travel that will give out programmable keypresses when the stick is on that position

so, for rotorcraft (mode 3) throttle I defined 9 regions, evenly spaced throughout the throttle range. The middle one (center of travel) doing nothing... on the upper half I have bands for 1/4 up, half up, 3/4 up and full up, and likewise for the lower half. (up being the Q key and down being Z)

so I setup an advanced command for each band... the advanced command lets you define a sequence of keys to be pressed and released, cyclic or not, and lets you time those keypresses.

so I set delays for keypresses and key releases to get a variable intermitent keypress for each region. the delay defines how much time the key will remain pressed in relation to how much time it will remain unpressed... by doing this fast enough (5 times a second), it's possible to have something akin to a semi-pressed key. the key sequence loops once it finishes, so I only had to define a 2-key sequence.

the delays for each region are as follows:

full up :: fully repeating Q -- pressed 100% of the time

3/4 up :: Q down (.075), Q up (.025), Q down (.075), Q up (.025) -- pressed 75% of the time

half up :: Q down (.05), Q up (.05), Q down (.05), Q up (.05) -- pressed 50% of the time

1/4 up :: Q down (.025), Q up (.075), Q down (.025), Q up (.75) -- pressed 25% of the time

note that all delays will add up to .2 seconds... this is intentional... how much time it takes to complete the key sequence is immaterial, what matters is how much time the key is being held down, in relation to the full sequence time.

the lower half of the range is the same, only using the Z key instead...

what this causes is that you get a progressively higher amount of time with the key pressed, thus being able to emulate (to an extent) the behaviour of a joystick axis only using binary buttons.

now when I enter a helicopter, I switch the stick to mode 3, and fly it using the throttle as normal... for fixed-wing, I just switch back to mode 1. (it's also necessary to switch back to mode 1 when leaving the helicopter, since these keys have other uses when on foot, and you don't want them being pressed all the time)

as you can see, this is a major kludge, but it was the best solution I could find for this issue for now (and it only works if you have the means to sequence keypresses and define regions in axes, as the Saitek SST software allows)

I hope this helps those using X52's

Cheers

Wow this is wonderful Harvest! I have a problem with fixed wing aircraft I hope you can help me solve. Basically I can't even come close to maintaining airspeed. I have the anaolg throttle control (in AmrA2) set to the Z axis throttle, and as you know, the Saitek throttle has a small reverse zone, large normal zone, and an afterburner zone. You can feel it as it slides into position. Well for me, for some reason the throttle doens't give me any acceleration until I guesstimate where 50% is which means a much of the throttle is clunky and very inaccurate. How can I get this working properly (for fixed wing) like you?

Thanks for the help! :)

Share this post


Link to post
Share on other sites

1.05 introduced analouge controls for rotor-wing aircraft.

The above mentioned problems in the OP no longer exist.

Share this post


Link to post
Share on other sites
1.05 introduced analouge controls for rotor-wing aircraft.

The above mentioned problems in the OP no longer exist.

And even further, you can tweak the Z-slider on Hotas a bit by giving Throttle up a high response like 1.5 and leave throttle down at 1.0

Share this post


Link to post
Share on other sites
And even further, you can tweak the Z-slider on Hotas a bit by giving Throttle up a high response like 1.5 and leave throttle down at 1.0

How do I do that?

Share this post


Link to post
Share on other sites

Yes indeed, version 1.05 fixed the whole analogue mapping debacle, so that's no longer a problem. :yay:

for some reason the throttle doens't give me any acceleration until I guesstimate where 50% is which means a much of the throttle is clunky and very inaccurate.

Yes, that is still a problem with the ArmA 2 control mapping... all axis mapping are divided into a positive and negative binding (as in throttle up/down, pedal left/right, and so on). And, all axis inputs are also divided into a negative and positive range, as in X+/X-, Y+/Y- and so on...

What this means is that it's impossible as of now, to map an entire axis range on your joystick into a single action of the game... for instance, a full range throttle instead of half throttle, half spoilers as it is now.

BIS was a little shortsighted in this area, since they didn't leave an option for mapping an entire axis range to a single action... it probably never occurred to them, as most joysticks will only have 4 axes anyways...

But for us flyboys with our HOTAS gear, we want to have our airbraks on a different lever than that of the throttle... we have a lot of axes and we want to use them... and right now, we can't do it really well...

Even if you were to map just the 'throttle up' action to the Z+ axis, you would still have the bottom half of the throttle range unused, since bohemia assumed we would want our spoilers there...

Well, right now I'm just biting the bullet and playing half range for throttle half range for spoilers... It's not very realistic, but I'm happy that the command mapping in ArmA has come a long way since the terrain-mapping, auto-accelerating arcadeness of OFP's controls :)

The light at the end of this tunnel here will hopefully come soon... from Saitek. I spoke to them and they said they have an 'axis features pack' coming soon to an SST upgrade... this would hopefully enable us to tweak ranges, reverse outputs and all kinds of cool stuff within the SST, so we could bypass all these limitations the games throw at us :bounce3:

Well, I've been waiting on it for quite a while now... but it must be getting closer ;)

Cheers

---------- Post added at 12:51 PM ---------- Previous post was at 12:33 PM ----------

oops, missed this one post

And even further, you can tweak the Z-slider on Hotas a bit by giving Throttle up a high response like 1.5 and leave throttle down at 1.0

If you mean tweaking the axis sensitivities on the controller menu, I'd advise against it...

I've tried all possible setting on that thing... when the game doesn't straight out crash when tweaking that, you can set the responsiveness of the joystick axes there...

But I'm afraid those settings won't change the enabled range of the axis... It just changes the sensitivity of the axis input...

So even if you were to drag the throttle slider all the way down, so you'd get less input for any given movement and therefore a longer travel range, you would just get a throttle that doesn't max out when it reaches max range... you would be clipping it, not extending it...

I guess we gotta wait for a new patch, or for Saitek's miracle update :p

Cheers

Share this post


Link to post
Share on other sites
The light at the end of this tunnel here will hopefully come soon... from Saitek. I spoke to them and they said they have an 'axis features pack' coming soon to an SST upgrade... this would hopefully enable us to tweak ranges, reverse outputs and all kinds of cool stuff within the SST, so we could bypass all these limitations the games throw at us :bounce3:

For real?! WOW, this would be so awesome. Did they give you a timeline? Did you talk to them via e-mail, phone, or forum?

Share this post


Link to post
Share on other sites

I spoke to the forum support... that was a long time ago, but they said that based on their schedule, this update was due in early 2010

I dropped a new post there inquiring about it, but it' hasn't been answered yet...

When it finally comes though... it will be pure awesome!!

Cheers

Share this post


Link to post
Share on other sites
I spoke to the forum support... that was a long time ago, but they said that based on their schedule, this update was due in early 2010

I dropped a new post there inquiring about it, but it' hasn't been answered yet...

When it finally comes though... it will be pure awesome!!

Cheers

If you can point me to the thread (if it's on their forum), I'll post a response there as well citing more user interest.

Share this post


Link to post
Share on other sites

hmm.. I've gotta do some more testing now. I've been using the analog throttle on my joystick for fixed wing and helo's and never thought anything of it. I entered all the joystick info manually but I really have no idea why it's working for me (could be driver related I guess).

Share this post


Link to post
Share on other sites

Hi, ive followed this thread with some interest. I too have had some frustration myself with the joystick config, especially with helicopters. Im also using an x52 but believe my solution will work for any input device with some research.

Essentially what I did was install glovepie and ppjoy (win 7 installation 64bit) created a virtual joystick, and then wrote a script that converted the positive and negative elements of an axis on the joystick to a single positive range between 0 and 1 on the virtual stick. I specified two virtual axis so that i could map an individual axis to both thrust and brake.

http://glovepie.org/GlovePIEWithEmotiv043.zip

http://drop.io/ppjoy0846testrelease/asset/ppjoysetup-0-8-4-6-exe/safe_download

In ppjoy, create a virtual joystick, simply click add. In Parallel port select virtual joysticks then click add again. Now highlight the new stick entry and select mapping- set a custom mapping for controller. click next. Now

I didnt worry too much about matching the saitek config exactly, I just specified two axis for the new stick, one z axis and one slider axis. no buttons, click next,next,next,finish. Done.

Now launch glovepie, this is where your config could possibly differ to mine, depending on what controllers are plugged in etc but with some experimentation im sure youll work it out. Create a new file and write a script for the virtual joystick mapping to your controller.

this is my script:

var.z = (Joystick2.z)

var.s = (Joystick2.slider)

if (var.z < 0) then // z- axis

var.vval = 0.5 - ((abs(var.z))/2)

else if (var.z > 0) then // z+ axis

var.vval = (var.z/2) + 0.5

else if var.z == 0 then

var.vval = 0.5

endif

if (var.s < 0) then // s- axis

var.vval2 = 0.5 - ((abs(var.s))/2)

else if (var.s > 0) then // s+ axis

var.vval2 = (var.s/2) + 0.5

else if var.s == 0 then

var.vval2 = 0.5

endif

//assign virtual stick with calibrated positive values to single axis on virtual stick

PPJoy1.Analog0 = var.vval

PPJoy1.Analog1 = 1-var.vval2 //1-val, just to reverse direction of slider

you can play with this script in glovepie and after selecting run, check the variables tab and watch their values as you move your controller to ensure that the correct axis is mapped etc.

Then all I did in arma was to go into controls, disabled the x52 temporarily as it was seeing x52 axis before the ppjoy virtual stick, then i bound the axis as youd normally do - thrust (analoque) - moved the throttle and arma accepted the ppjoy mapping, I did the same for brake (mapped it to the slider on the throttle) then reenable the x52 controller . Done :yay:

I now have full range on the throttle, Im still a crap pilot but this has helped me a hell of a lot. Hope this helps someone, Cheers.

Share this post


Link to post
Share on other sites

var.z = (Joystick2.z)

var.s = (Joystick2.slider)

if (var.z < 0) then // z- axis

var.vval = 0.5 - ((abs(var.z))/2)

else if (var.z > 0) then // z+ axis

var.vval = (var.z/2) + 0.5

else if var.z == 0 then

var.vval = 0.5

endif

if (var.s < 0) then // s- axis

var.vval2 = 0.5 - ((abs(var.s))/2)

else if (var.s > 0) then // s+ axis

var.vval2 = (var.s/2) + 0.5

else if var.s == 0 then

var.vval2 = 0.5

endif

//assign virtual stick with calibrated positive values to single axis on virtual stick

PPJoy1.Analog0 = var.vval

PPJoy1.Analog1 = 1-var.vval2 //1-val, just to reverse direction of slider

x2

though i basically used the maprange (functionally probably the same though...)

//x
ppjoy.Analog0=joystick1.x
//y
ppjoy.Analog1=joystick1.y
//throttle axis
ppjoy1.Analog2= MapRange(joystick1.z, -1,1,0,1)
//rudders
//x52 rotation is [throttle1, throttle2, joystick rot]
ppjoy.Analog3=joystick1.Rot[3]

where Maprange(input, inputmin, inputmax, remappedmin, remappedmax)

(all credit to others as i am not the first to do this)

Share this post


Link to post
Share on other sites

Well can we all have your SST profile file please? I have the x52 pro, I created a profile file for infantry avatar, it works in SST tester and in Vista Notepad, it does not work in ArmA II. I don't know if this is due to my being in France or some oddity in making x52 work with ArmA II. France issue is that I am English, Vista is set to english for GUI but french for keyboard cos here all keyboards are sold in french layout. The x52 is set up to Vista as a keyboard and mouse device, there is a universal Vista setting for keyboard language, for SST and ArmA II I set that to english but I did find that in ArmA II Ws are being seen as Zs which means a language screwup. But language only affects a few things, in my recruit training most things are not working. Thanks.

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×