The joystick wizard works out the shape of your pedals
You are never asked what you own. Two controls cannot simply be watched, so they are asked for differently. Yaw is asked for twice, right then left, and which axis answers is the measurement. The same axis both times is one control covering both directions - a twist grip, a rudder bar, pedals the driver has already mixed - and binds to the signed Pedals axis. Two different axes are two real pedals, one per foot, which is what the pod had, so they bind to the pod's own LeftPedal/RightPedal pair and the game does the mixing: both at once then does what both at once did in the pod. The throttle is zeroed first. A lever sits wherever it was last left, possibly hard against the stop that reads +1, so watching it move says nothing about which end means power. Close it, press SPACE, then open it, and the direction it travels from a known idle is the direction that means throttle. CONTROLS.md, the handbook and the packaged README say all of this, and joyconfig.bat's own header no longer promises "rudder-pedal setup" when racing pedals work too.
This commit is contained in:
+45
-11
@@ -163,15 +163,34 @@ it off.
|
||||
|
||||
---
|
||||
|
||||
## Flight sticks, HOTAS and rudder pedals
|
||||
## Flight sticks, HOTAS and pedals
|
||||
|
||||
Anything that is not an Xbox-class pad — a flight stick, a HOTAS
|
||||
throttle, a twist grip, rudder pedals, a wheel — comes in through
|
||||
DirectInput rather than XInput, and needs to be told which axis is
|
||||
which. **Run `joyconfig.bat` once.** It asks you to move each control in
|
||||
turn, works out which device and axis you moved and which way round it
|
||||
reads, and writes the joystick rows of `bindings.txt`. Then it carries
|
||||
on into the setup screen so you can try them straight away.
|
||||
throttle, a twist grip, rudder or racing pedals, a wheel — comes in
|
||||
through DirectInput rather than XInput, and needs to be told which axis
|
||||
is which. **Run `joyconfig.bat` once.** It asks you to move each control
|
||||
in turn, works out which device and axis you moved and which way round
|
||||
it reads, and writes the joystick rows of `bindings.txt`. Then it
|
||||
carries on into the setup screen so you can try them straight away.
|
||||
|
||||
You are never asked what you own. Two of the controls can't simply be
|
||||
watched, though, so they are asked for differently:
|
||||
|
||||
**Yaw is asked for twice** — right, then left — and *which axis answers*
|
||||
is the measurement. The same axis both times is one control covering
|
||||
both directions: a twist grip, a rudder bar, rudder pedals their driver
|
||||
has already mixed, racing pedals in combined mode. Two different axes
|
||||
are two real pedals, one per foot, which is what the pod itself had, and
|
||||
they bind to the pod's own pair so the game does the mixing — both at
|
||||
once then does what both at once did in the pod. Either way you just
|
||||
move the thing twice; the wizard works out the shape.
|
||||
|
||||
**The throttle is set to zero first.** A lever sits wherever it was last
|
||||
left — halfway, or hard against the stop that happens to read `+1` — so
|
||||
watching it move says nothing about which end means power. The wizard
|
||||
asks you to close it, press SPACE to say so, and *then* open it: the
|
||||
direction it travels from a known idle is the direction that means
|
||||
throttle. (Press `S` there if you have no throttle lever.)
|
||||
|
||||
It only writes its own section, between two marker lines, so anything
|
||||
you have edited yourself survives re-running it. Xbox-class controllers
|
||||
@@ -189,15 +208,30 @@ joybutton 0 button 0x40 # trigger
|
||||
joyhat 0 up button 0x42
|
||||
```
|
||||
|
||||
Two separate pedals bind to the pod's real pair instead, usually on a
|
||||
device of their own:
|
||||
|
||||
```
|
||||
joydev 1 Pedals
|
||||
joyaxis Y axis LeftPedal lever deadzone 0.05
|
||||
joyaxis RZ axis RightPedal lever deadzone 0.05
|
||||
```
|
||||
|
||||
Axis names are DirectInput's — `X Y Z RX RY RZ SL0 SL1` — where a twist
|
||||
grip is usually `RZ` and a HOTAS throttle usually `Z` or `SL0`.
|
||||
|
||||
Two things are worth knowing. `Pedals` is a signed axis that drives the
|
||||
Three things are worth knowing. `Pedals` is a signed axis that drives the
|
||||
pedal *pair*, positive for the right pedal and negative for the left, so
|
||||
one rudder bar or twist grip works both the way a foot never could. And
|
||||
a `joyaxis` on `Throttle` with no `rate` is treated as a real lever: its
|
||||
one rudder bar or twist grip works both the way a foot never could. A
|
||||
`joyaxis` on `Throttle` with no `rate` is treated as a real lever: its
|
||||
full travel *is* the throttle range, rather than nudging a position the
|
||||
way a spring-centred pad stick has to.
|
||||
way a spring-centred pad stick has to. And `lever` says the same thing
|
||||
about any other one-way control — a floor pedal rests at one *end* of
|
||||
its travel, not in the middle, but Windows still reports it as a full
|
||||
−1..+1 axis, so without the word the first half of the press does
|
||||
nothing. With it, the travel maps onto the channel's 0..1 and the
|
||||
deadzone measures from the released end, where a tired return spring's
|
||||
slack actually lives. Add or remove `invert` if a pedal reads backwards.
|
||||
|
||||
## Rebinding
|
||||
|
||||
|
||||
@@ -1183,6 +1183,10 @@
|
||||
<dt>It watches</dt>
|
||||
<dd>Which way<small>the direction you moved sets the sign</small></dd>
|
||||
</div>
|
||||
<div>
|
||||
<dt>And which</dt>
|
||||
<dd>Yaw twice<small>right then left: one axis or two?</small></dd>
|
||||
</div>
|
||||
<div>
|
||||
<dt>Then</dt>
|
||||
<dd>Straight in<small>the game carries on to the setup screen</small></dd>
|
||||
@@ -1199,6 +1203,23 @@
|
||||
answer off the movement. Skip a prompt with <code>SPACE</code> if you
|
||||
have no such control, <code>ESC</code> to abort without writing.
|
||||
</p>
|
||||
<p>
|
||||
It goes further than the sign: it works out the <b>shape</b> of your
|
||||
rig the same way. <b>Yaw is asked for twice</b>, right and then left,
|
||||
and which axis answers is the measurement — the same axis both times
|
||||
is one control covering both ways (a twist grip, a rudder bar, pedals
|
||||
their driver has already mixed), two different axes are two real
|
||||
pedals, one per foot. You just move the thing twice.
|
||||
</p>
|
||||
<p>
|
||||
The <b>throttle</b> is the one prompt that works backwards, because a
|
||||
lever sits wherever it was left: halfway, or hard against the stop
|
||||
that happens to read <span class="mono">+1</span>. Watching it move
|
||||
cannot tell you which end means power. So close it, press
|
||||
<code>SPACE</code> to say <i>it is at zero now</i>, and then open it —
|
||||
the travel from a known idle is the direction that means throttle.
|
||||
<code>S</code> there if you have no lever at all.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<p class="sub">
|
||||
@@ -1223,7 +1244,7 @@
|
||||
|
||||
<pre><i># grammar</i>
|
||||
<b>joydev</b> <slot> [product-name substring]
|
||||
<b>joyaxis</b> <src> <b>axis</b> <axis> [invert]
|
||||
<b>joyaxis</b> <src> <b>axis</b> <axis> [invert] [lever]
|
||||
[deadzone <d>] [rate <n>]
|
||||
<b>joybutton</b> <n> <b>button</b> <addr> [toggle]
|
||||
<b>joyhat</b> <n> <up|down|left|right>
|
||||
@@ -1235,7 +1256,7 @@
|
||||
|
||||
<div class="tbl-scroll" style="margin-top:22px">
|
||||
<table>
|
||||
<caption>Two rules the pod's shape asks for</caption>
|
||||
<caption>Three rules the pod's shape asks for</caption>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th class="mono">Pedals</th>
|
||||
@@ -1246,6 +1267,31 @@
|
||||
that presses one or the other and never both, which is exactly
|
||||
what this says. It is a channel name like any other, so a gamepad
|
||||
stick can drive the turn with it too.
|
||||
<br><br>
|
||||
Two real pedals — racing pedals, or rudder pedals with an axis
|
||||
per foot — bind to
|
||||
<span class="mono">LeftPedal</span> and
|
||||
<span class="mono">RightPedal</span> one axis each instead, and
|
||||
the wizard picks that up on its own from the two yaw prompts
|
||||
answering on two different axes. That is the pod's own
|
||||
arrangement: the game mixes your two feet into the turn rather
|
||||
than taking a turn already mixed for it, and both pedals at once
|
||||
does what both pedals at once did in the pod.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="mono">lever</th>
|
||||
<td>
|
||||
A pedal rests at one <b>end</b> of its travel, not in the middle,
|
||||
and Windows reports it as a full
|
||||
<span class="mono">−1..+1</span> axis regardless — so half the
|
||||
travel reads below zero and the first half of the press would do
|
||||
nothing at all. <span class="mono">lever</span> says the control
|
||||
is one-way: the travel maps onto the channel's
|
||||
<span class="mono">0..1</span>, and the deadzone then measures
|
||||
from the released end, where the slack in a tired return spring
|
||||
actually lives. The wizard writes it for you; add or remove
|
||||
<span class="mono">invert</span> if a pedal reads backwards.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
Reference in New Issue
Block a user