Xbox Controller

Revision as of 01:12, 30 January 2007 by Linvir (talk | contribs)

This page describes configuring VO to use an Xbox controller as a joypad.

Note that this page was written based on my experience with a Controller-S in Windows XP using the XBCD driver. Users with 3rd party joypads in different OSes using different drivers may find that axis and button IDs differ from what is shown here.

First steps

Get your drivers installed, your controller plugged in and recognised, and login to VO. Hit escape, go to the controller menu, the joystick tab, and check to see if VO detected your joypad.

If it didn't, the rest of this page is useless to you. If it did, you now have a nice new config.ini entry for your controller.

Axis IDs

These are the axis IDs corresponding to the JOYXXX blocks in the first half of the config.ini entry, and to the dropdown menus in the VO joystick config menu.

"No such axis" means that this axis doesn't exist on the Xbox controller, so there's no point in setting any function to them.

RU - No such axis
RZ - No such axis
RY - right joystick, y axis
RX - right joystick, x axis
Z  - No such axis
Y  - left joystick, y axis
X  - left joystick, x axis

Button IDs

These are the button IDs corresponding to the JOYBUTTON numbers in the second half of the config.ini entry.

Though config.ini provides space for up to 23 button configurations per entry, anything above 11 is ignored for the Xbox controller as there are "only" 12 buttons, so there's no point in setting any function to them.

0  - A
1  - B
2  - X
3  - Y
4  - black
5  - white
6  - start
7  - select
8  - left joystick click
9  - right joystick click
10 - left trigger
11 - right trigger

Empty entry

This is an empty config.ini for the Xbox controller.

  • Buttons and axes that you can add binds to are marked in bold.
  • Nonexistent buttons and axes are crossed out.

It would be nicer to just remove these superfluous bits altogether, but they just get put back automatically if you do. This code block should still be okay to copy/paste, despite all the formatting.

Note that when configuring this, some axes will need to be inverted. However, I'm not sure which controls require inversion on which joysticks, so you'll have to figure that part out for yourself.

[XBCD XBox Gamepad]
enabled=1
JOYRU=NONE
Ruaxisinvert=0
Ruaxiscenter=0
Ruaxismindeadzone=-10
Ruaxisdeadzone=10
Ruaxisminsaturation=-95
Ruaxissaturation=95
JOYRZ=NONE
Rzaxisinvert=0
Rzaxiscenter=0
Rzaxismindeadzone=-10
Rzaxisdeadzone=10
Rzaxisminsaturation=-95
Rzaxissaturation=95
JOYRY=
Ryaxisinvert=0
Ryaxiscenter=0
Ryaxismindeadzone=-10
Ryaxisdeadzone=10
Ryaxisminsaturation=-95
Ryaxissaturation=95
JOYRX=
Rxaxisinvert=0
Rxaxiscenter=0
Rxaxismindeadzone=-10
Rxaxisdeadzone=10
Rxaxisminsaturation=-95
Rxaxissaturation=95
JOYZ=NONE
zaxisinvert=0
zaxiscenter=0
zaxismindeadzone=-10
zaxisdeadzone=10
zaxisminsaturation=-95
zaxissaturation=95
JOYY=
yaxisinvert=0
yaxiscenter=0
yaxismindeadzone=-10
yaxisdeadzone=10
yaxisminsaturation=-95
yaxissaturation=95
JOYX=
xaxisinvert=0
xaxiscenter=0
xaxismindeadzone=-10
xaxisdeadzone=10
xaxisminsaturation=-95
xaxissaturation=95
JOYBUTTON0=
JOYBUTTON1=
JOYBUTTON2=
JOYBUTTON3=
JOYBUTTON4=
JOYBUTTON5=
JOYBUTTON6=
JOYBUTTON7=
JOYBUTTON8=
JOYBUTTON9=
JOYBUTTON10=
JOYBUTTON11=
JOYBUTTON12=
JOYBUTTON13=
JOYBUTTON14=
JOYBUTTON15=
JOYBUTTON16=
JOYBUTTON17=
JOYBUTTON18=
JOYBUTTON19=
JOYBUTTON20=
JOYBUTTON21=
JOYBUTTON22=
JOYBUTTON23=
JOYPOV0UP=
JOYPOV0RIGHT=
JOYPOV0DOWN=
JOYPOV0LEFT=

Sample entry

This is a sample working entry, for instant gratification. It depends on the Variable_zoom_bind and the Turbo_lock_bind. The select button is unmapped, but only because I couldn't think of anything to map to it.

The controls are as follows:

left joystick        - vertical and horizontal strafing
right joystick       - turn and pitch
left joystick click  - roll left
right joystick click - roll right
d up                 - accelerate
d down               - decelerate
d right              - toggle flight mode
d left               - toggle turbo
start                - brake
right trigger        - primary weapon
left trigger         - secondary weapon
Y                    - tertiary weapon
X                    - zoom in
B                    - zoom out
A                    - activate
black                - target next nearest enemy
white                - target previous nearest enemy

And here is the entry itself, ready to copy and paste:

[XBCD XBox Gamepad]
enabled=1
JOYRU=NONE
Ruaxisinvert=0
Ruaxiscenter=0
Ruaxismindeadzone=-10
Ruaxisdeadzone=10
Ruaxisminsaturation=-95
Ruaxissaturation=95
JOYRZ=NONE
Rzaxisinvert=0
Rzaxiscenter=0
Rzaxismindeadzone=-10
Rzaxisdeadzone=10
Rzaxisminsaturation=-95
Rzaxissaturation=95
JOYRY=Pitch
Ryaxisinvert=1
Ryaxiscenter=0
Ryaxismindeadzone=-10
Ryaxisdeadzone=10
Ryaxisminsaturation=-95
Ryaxissaturation=95
JOYRX=Turn
Rxaxisinvert=1
Rxaxiscenter=0
Rxaxismindeadzone=-10
Rxaxisdeadzone=10
Rxaxisminsaturation=-95
Rxaxissaturation=95
JOYZ=NONE
zaxisinvert=0
zaxiscenter=0
zaxismindeadzone=-10
zaxisdeadzone=10
zaxisminsaturation=-95
zaxissaturation=95
JOYY=StrafeUD
yaxisinvert=1
yaxiscenter=0
yaxismindeadzone=-10
yaxisdeadzone=10
yaxisminsaturation=-95
yaxissaturation=95
JOYX=StrafeLR
xaxisinvert=0
xaxiscenter=0
xaxismindeadzone=-10
xaxisdeadzone=10
xaxisminsaturation=-95
xaxissaturation=95
JOYBUTTON0=activate
JOYBUTTON1=zoomOut
JOYBUTTON2=zoomIn
JOYBUTTON3=+Shoot3
JOYBUTTON4=RadarNextNearestEnemy
JOYBUTTON5=RadarPrevNearestEnemy
JOYBUTTON6=+Brakes
JOYBUTTON7=
JOYBUTTON8=+RotateCW
JOYBUTTON9=+RotateCCW
JOYBUTTON10=+Shoot1
JOYBUTTON11=+Shoot2
JOYBUTTON12=
JOYBUTTON13=
JOYBUTTON14=
JOYBUTTON15=
JOYBUTTON16=
JOYBUTTON17=
JOYBUTTON18=
JOYBUTTON19=
JOYBUTTON20=
JOYBUTTON21=
JOYBUTTON22=
JOYBUTTON23=
JOYPOV0UP=+Accelerate
JOYPOV0RIGHT=FlyModeToggle
JOYPOV0DOWN=+Decelerate
JOYPOV0LEFT=ttog