Difference between revisions of "Es:Manual:Config:Advanced:Bindings:Joystick"

From VsWiki
Jump to: navigation, search
(DIGITAL COOLIHAT/HATSWITCH)
(DIGITAL AXES/D-PAD AS HATSWITCH)
Line 81: Line 81:
 
'' '''Nota (2):''' El soporte para hatswitch digital está deshabilitado por defecto en los árboles CVS. Para habilitarlo, edita tu vegastrike.config y establece "debug_digital_hatswitch" a "true". Ten cuidado porque esto  mandará grandes cantidades de texto depurador a la consola. Además, actualmente no puedes establecer comandos en  "center". Algunos errores han sido arreglados con un parche y pueden ser resueltos también.''
 
'' '''Nota (2):''' El soporte para hatswitch digital está deshabilitado por defecto en los árboles CVS. Para habilitarlo, edita tu vegastrike.config y establece "debug_digital_hatswitch" a "true". Ten cuidado porque esto  mandará grandes cantidades de texto depurador a la consola. Además, actualmente no puedes establecer comandos en  "center". Algunos errores han sido arreglados con un parche y pueden ser resueltos también.''
  
===DIGITAL AXES/D-PAD AS HATSWITCH===
+
===EJES/D-PAD DIGITALES CÓMO HATSWITCH===
This can allow one to use a (usually digital) axis such as a D-Pad as button commands, such as camera keys, etc.
+
Esto nos puede permitir el uso de ejes (Digitales usualmente) como el de un D-Pad como si fueran botones de comando, justo como botones de cámara, etc.
  
====Sample====
+
====Ejemplo====
 
<pre>
 
<pre>
 
<axis name="hatswitch" nr="0" margin="0.26" joystick="0" axis="2">
 
<axis name="hatswitch" nr="0" margin="0.26" joystick="0" axis="2">
Line 101: Line 101:
 
</pre>
 
</pre>
  
====Description====
+
====Descripción====
In <axis> tags:
+
En las etiquetas <axis>:
* <code>axis</code> - Number of the joystick axes for up/down and left/right.
+
* <code>axis</code> - Número de los ejes del joystick para arriba/abajo y derecha/izquierda.
* <code>margin</code> - basically, you want this to include 1.0 and -1.0, but not 0.0 when adding hatswitch-value +/- margin
+
* <code>margin</code> - Básicamente, desearás que esto incluya 1.0 y -1.0, pero no 0.0 si se añade el margen hatswitch-value +/-
 
* <code>joystick</code> - 0=down/left, 1=up/right
 
* <code>joystick</code> - 0=down/left, 1=up/right
In <bind> tags:
+
En las etiquetas <bind>:
* <code>hatswitch</code> and <code>nr</code> - Number of the two defined "hatswitches".
+
* <code>hatswitch</code> y <code>nr</code> - Número de los dos "hatswitches" definidos.
 
* <code>button</code> - 0=down/left, 1=up/right
 
* <code>button</code> - 0=down/left, 1=up/right
* <code>command</code> - Specify the command to start when the button is pressed here. See [[Manual:Keyboard layout|Keyboard layout]] for description and a list of commands.
+
* <code>command</code> - Especifica el comando a iniciar cuando el botón es presionado. Ver [[Es:Manual:Keyboard layout|Distribución de Teclado]] para descripciones y una lista de comandos.
  
 
==Joystick Examples==
 
==Joystick Examples==

Revision as of 23:00, 17 January 2007

Traducciones de esta página:   DeutschEnglishFrançaisEspañolPolskiItalianoNederlandsРуccкий简体中文


arrow_left.png Configuración Avanzada: Ratón arrow_up.png Configuración Avanzada:Dispositivos Configuración Avanzada: Variables arrow_right.png

Configuración del Joystick

Esta página proporciona ejemplos funcionales de diferentes configuraciones de joystick, mostrando como cada botón ha sido limitado para operar una simple función de Vega Strike.

Si una configuración falla con tu joystick, puedes editar copiando la configuración de aquí dentro de tu archivo de configuración de Vega Strike.

JOYSTICK: bind

Ejemplo

<bind joystick="0" player="0" button="0" modifier="none" command="FireKey" />

Descripción

  • joystick - Número del Joystick.
  • player - ¿Para cada jugador es el comando especificado? FIXME ¿Como está esto?
  • button - Número de botón del Joystick.
  • modifier - FIXME ¿Una pista?
  • command - Especifica el comando a iniciar cuando el botón es presionado. Ver Distribución de Teclado para descripción y una lista de comandos.

JOYSTICK: ejes

Sample

<axis name="x" joystick="0" axis="0" inverse="false" />

Descripción

  • name - Nombre del eje (en el juego) a arreglar (x,y,z,throttle)
  • joystick - Número del joystick.
  • axis - Número de ejes del joystick.
  • inverse - Cambialo a true si quieres invertir la dirección de los ejes y a false si no.

Ver mensaje en el foro (en ingles).

Ejemplo

<axis name="hatswitch" nr="0" margin="0.15" joystick="1" axis="2">
  <hatswitch value="-1.0"/>
  <hatswitch value="-0.6"/>
  <hatswitch value="-0.19"/>
  <hatswitch value="0.1"/>
</axis>

<bind hatswitch="0" button="0" modifier="none" command="ABKey" />
<bind hatswitch="0" button="1" modifier="none" command="AccelKey" />
<bind hatswitch="0" button="2" modifier="none" command="DecelKey" />
<bind hatswitch="0" button="3" modifier="none" command="StopKey" />

Una vez definidos, los hatswitches tienen su propio número, y sus "botones" (posiciones) son definidas independientemente de los joysticks. Cuando creas tus etiquetas <bind>, asegurate de no especificar un numero de joystick (como joystick="0"); esto areglará botones en el joystick en vez de posiciones en el hatswitch.

Nota: El soporte para hatswitch análogo no trabaja como en la versión Vega Strike 0.4.3. Esto ha sido arreglado en el árbol CVS como el 2005-07-30. Para añadir soporte de hatswitch análogo en Vega Strike 0.4.3, revisa la etiqueta "vegastrike_0_4_3", entones actualiza el archivo "in_sdl.cpp" a la versión CVS 1.30.

COOLIHAT/HATSWITCH DIGITAL

Ver mensaje en el foro (en Inglés)

Ejemplo

<bind joystick="0" digital-hatswitch="0" direction="up" command="ABKey"/>

Descripción

  • joystick - Número del Joystick.
  • digital-hatswitch - Número del hatswitch digital.
  • direction - Dirección (-botón) del hatswitch digital.
    • Posibles valores: "center", "up", "right", "left", "down", "rightup", "rightdown", "leftup", "leftdown"
  • command - Especifica el comando a iniciar cuando el botón es presionado. Ver Distribución del Teclado para descripciones y una lista de comandos.

Nota: Hatswitches digitales "resuenan". Si sustituyes comandos por "left", "up", y "leftup", moviendo el hatswitch arriba a la izquierda activaría los tres comandos.

Nota (2): El soporte para hatswitch digital está deshabilitado por defecto en los árboles CVS. Para habilitarlo, edita tu vegastrike.config y establece "debug_digital_hatswitch" a "true". Ten cuidado porque esto mandará grandes cantidades de texto depurador a la consola. Además, actualmente no puedes establecer comandos en "center". Algunos errores han sido arreglados con un parche y pueden ser resueltos también.

EJES/D-PAD DIGITALES CÓMO HATSWITCH

Esto nos puede permitir el uso de ejes (Digitales usualmente) como el de un D-Pad como si fueran botones de comando, justo como botones de cámara, etc.

Ejemplo

<axis name="hatswitch" nr="0" margin="0.26" joystick="0" axis="2">
  <hatswitch value="-0.75"/>
  <hatswitch value="0.75"/>
</axis>
<axis name="hatswitch" nr="1" margin="0.26" joystick="0" axis="3">
  <hatswitch value="-0.75"/>
  <hatswitch value="0.75"/>
</axis>

<bind hatswitch="0" button="0" command="Cockpit::YawLeft" />
<bind hatswitch="0" button="1" command="Cockpit::YawRight" />
<bind hatswitch="1" button="0" command="Cockpit::PitchDown" />
<bind hatswitch="1" button="1" command="Cockpit::PitchUp" />

Descripción

En las etiquetas <axis>:

  • axis - Número de los ejes del joystick para arriba/abajo y derecha/izquierda.
  • margin - Básicamente, desearás que esto incluya 1.0 y -1.0, pero no 0.0 si se añade el margen hatswitch-value +/-
  • joystick - 0=down/left, 1=up/right

En las etiquetas <bind>:

  • hatswitch y nr - Número de los dos "hatswitches" definidos.
  • button - 0=down/left, 1=up/right
  • command - Especifica el comando a iniciar cuando el botón es presionado. Ver Distribución de Teclado para descripciones y una lista de comandos.

Joystick Examples

Please insert your working configs here

Microsoft SideWinder Force Feedback Pro

(may work for other sidewinder-joysticks as well)

Add the joystick-name to the dropdown menu

add joy_ffp to the line

#cat Joystick no_joy joy_normal joy_throttle joy_axis joy_throttle_and_axis joy_t_a_rev

like this

#cat Joystick no_joy joy_normal joy_throttle joy_axis joy_throttle_and_axis joy_t_a_rev joy_ffp

Add the description text

#desc joy_ffp Microsoft SideWinder Force Feedback Pro

Make the joystick the current one

edit the #set Joystick xxxx line to

#set Joystick joy_ffp

Binding code

Place the code below above the </bindings> line in the vegastrike.config file.

FIXME Attention: This bindings may not work under linux ... at least it doesn't for me since i switched. Help is always welcome.

<!-- #joy_ffp -->
<!-- Joystick:Microsoft SideWinder Force Feedback Pro:BEGIN-->
<!-- buttons:BEGIN -->
 <bind joystick="0" player="0" button="0" modifier="none" command="FireKey" />  <!-- stick:fire key -->
 <bind joystick="0" button="1" modifier="none" command="MissileKey" />          <!-- stick:left key -->
 <bind joystick="0" button="2" modifier="none" command="TargetKey" />           <!-- stick:top right key -->
 <bind joystick="0" button="3" modifier="none" command="PickTargetKey" />       <!-- stick:bottom right key -->
 <bind joystick="0" button="4" modifier="none" command="ABKey" />               <!-- socket:"A" key -->
 <bind joystick="0" button="5" modifier="none" command="MisSelKey" />           <!-- socket:"B" key -->
 <bind joystick="0" button="6" modifier="none" command="WeapSelKey" />          <!-- socket:"C" key -->
 <bind joystick="0" button="7" modifier="none" command="AccelKey" />            <!-- socket:"D" key -->
 <bind joystick="0" button="8" modifier="none" command="SheltonKey" />          <!-- not used? -->
 <bind joystick="0" button="9" modifier="none" command="DecelKey" />            <!-- socket:shift key -->
<!-- buttons:END -->

<!-- axes:BEGIN -->
 <axis name="x"        joystick="0" axis="0" inverse="false" /> <!-- stick:left/right -->
 <axis name="y"        joystick="0" axis="1" inverse="false" /> <!-- stick:up/down -->
 <axis name="z"        joystick="0" axis="3" inverse="true" />  <!-- stick:roll left/right -->
 <!-- <axis name="throttle" joystick="0" axis="2" inverse="false" /> not working in 0.4.x -->   <!-- socket:throttle -->
 <!--vvv throttle axis vvvv-->
 <axis name="hatswitch" nr="0" margin="0.25" joystick="0" axis="2" inverse="false"> <!-- socket:throttle -->
   <hatswitch value="-1.0"/>
   <hatswitch value="-0.5"/>
   <hatswitch value="0.5"/>
   <hatswitch value="1.0"/>
 </axis>
 <!-- axes:END -->

<!-- throttle-bindings:BEGIN -->
 <bind hatswitch="0" button="0" modifier="none" command="ABKey" />
 <bind hatswitch="0" button="1" modifier="none" command="AccelKey" />
 <bind hatswitch="0" button="2" modifier="none" command="DecelKey" />
 <bind hatswitch="0" button="3" modifier="none" command="StopKey" />
<!-- throttle-bindings:END -->

<!-- hatswitch:BEGIN -->
 <bind joystick="0" digital-hatswitch="0" direction="up"     command="Cockpit::Inside"/>
 <bind joystick="0" digital-hatswitch="0" direction="left"   command="Cockpit::InsideLeft"/>
 <bind joystick="0" digital-hatswitch="0" direction="center" command="Cockpit::Inside"/>
 <bind joystick="0" digital-hatswitch="0" direction="right"  command="Cockpit::InsideRight"/>
 <bind joystick="0" digital-hatswitch="0" direction="down"   command="Cockpit::InsideBack"/>
<!-- hatswitch:END -->
<!-- Joystick:Microsoft SideWinder Force Feedback Pro:END-->
<!-- #end -->

Microsoft SideWinder Force Feedback 2 (USB)

Linux 2.4

(tested kernels: 2.4.27)

This model shows up in Linux as having 11 axes and 20 buttons, but only nine buttons and six axes are used, two of which are for the pseudo-analog hatstick (which is really effectively digital).

The hatswitch configuration is special here. The configuration below uses a "return to center" system, where releasing the hatswitch returns to standard cockpit view. Hence, the obvious way would be to define a centered axis (0) as returning to Cockpit::Inside. But when this was defined for both axes, it didn't work; pressing left or right would only flicker in that direction, instantly returning to center even if the hatswitch was held. This is because horizontal movement of the hatswitch (away from center) somehow also triggers vertical movement events, even if the vertical axis has not changed. The vertical centering was cancelling out the left-right movement.

By defining the return-to-center behaviour only on the horizontal movement, everything works perfectly: Horizontal movement is unimpeded by vertical movement events, and returning the vertical axis to center somehow also triggers a centered horizontal event, returning the view to the inside. The cause of this inconsistency is unknown, but the effect is exactly as desired.

Once the myriad axes are out of the way, the buttons are exceedingly simple; the first eight buttons (0 through 7) map directly to the stick buttons. Button #11 is a special virtual button that is "pressed" when the hand leaves the stick (via an optical sensor). Docking at a space station is the most logical use for this "button", since that's when the user will want to let go of the joystick anyway; aside from saving a keypress, it's also good for amazing any onlookers with the user's "magic" joystick.

<!-- #joy_ff2 -->
 <!-- Trigger button (1) and labelled buttons 2 through 8, in order. -->
 <bind joystick="0" player="0" button="0" modifier="none" command="FireKey" />
 <bind joystick="0" button="1" modifier="none" command="MissileKey" />
 <bind joystick="0" button="2" modifier="none" command="TargetKey" />
 <bind joystick="0" button="3" modifier="none" command="PickTargetKey" />
 <bind joystick="0" button="4" modifier="none" command="MisSelKey" />
 <bind joystick="0" button="5" modifier="none" command="WeapSelKey" />
 <bind joystick="0" button="6" modifier="none" command="SheltonKey" />
 <bind joystick="0" button="7" modifier="none" command="ABKey" />
 <!-- The special button triggered when the hand leaves the stick. -->
 <bind joystick="0" button="11" modifier="none" command="DockKey" />

 <!-- The axes aren't sequential; many are unused. -->
 <axis joystick="0" axis="0" name="x" inverse="false" />
 <axis joystick="0" axis="1" name="y" inverse="false" />
 <axis joystick="0" axis="4" name="z" inverse="true" />
 <axis joystick="0" axis="5" name="throttle" inverse="false" />

 <!-- Hatswitch left-right movement. -->
 <axis joystick="0" axis="6" name="hatswitch" nr="0" margin="0.5" inverse="false">
   <hatswitch value="-1.0"/>
   <hatswitch value="1.0"/>
   <hatswitch value="0"/>
 </axis>
 <bind hatswitch="0" button="0" modifier="none" command="Cockpit::InsideLeft" />
 <bind hatswitch="0" button="1" modifier="none" command="Cockpit::InsideRight"/>
 <bind hatswitch="0" button="2" modifier="none" command="Cockpit::Inside" />

 <!-- Hatswitch up-down movement. -->
 <axis joystick="0" axis="7" name="hatswitch" nr="1" margin="0.5" inverse="false">
   <hatswitch value="-1.0"/>
   <hatswitch value="1.0"/>
 </axis>
 <bind hatswitch="1" button="0" modifier="none" command="Cockpit::Behind" />
 <bind hatswitch="1" button="1" modifier="none" command="Cockpit::InsideBack" />
<!-- #end -->

Linux 2.6

(tested kernels: 2.6.10, 2.6.11, 2.6.12)

Things become much simpler in Linux 2.6. The hatswitch is actually recognised as a digital hatswitch, and the virtual "hand off joystick" button becomes button 8, right after the eight physical buttons. On the other hand, the throttle and twist axes numbers actually move to higher numbers. Still, things get simpler overall.

The stick's reported properties vary greatly between kernel versions:

  • 2.6.10: 18 axes, 15 buttons, 1 hat
  • 2.6.12: 12 axes, 9 buttons, 1 hat

Apparently, the device code is still being worked on, but it seems the detection is getting closer and closer to the truth.

Below is the exact same configuration as above, but adapted for the 2.6 series of kernels:

<!-- #joy_ff2 -->
 <bind joystick="0" player="0" button="0" modifier="none" command="FireKey" />
 <bind joystick="0" button="1" modifier="none" command="MissileKey" />
 <bind joystick="0" button="2" modifier="none" command="TargetKey" />
 <bind joystick="0" button="3" modifier="none" command="PickTargetKey" />
 <bind joystick="0" button="4" modifier="none" command="MisSelKey" />
 <bind joystick="0" button="5" modifier="none" command="WeapSelKey" />
 <bind joystick="0" button="6" modifier="none" command="SheltonKey" />
 <bind joystick="0" button="7" modifier="none" command="ABKey" />
 <bind joystick="0" button="8" modifier="none" command="DockKey" />

 <axis joystick="0" axis="0" name="x" inverse="false" />
 <axis joystick="0" axis="1" name="y" inverse="false" />
 <axis joystick="0" axis="5" name="z" inverse="true" />
 <axis joystick="0" axis="6" name="throttle" inverse="false" />

 <bind joystick="0" digital-hatswitch="0" direction="up" command="Cockpit::Behind"/>
 <bind joystick="0" digital-hatswitch="0" direction="down" command="Cockpit::InsideBack"/>
 <bind joystick="0" digital-hatswitch="0" direction="left" command="Cockpit::InsideLeft"/>
 <bind joystick="0" digital-hatswitch="0" direction="right" command="Cockpit::InsideRight"/>
 <bind joystick="0" digital-hatswitch="0" direction="center" command="Cockpit::Inside"/>
<!-- #end -->

USB Saitek Cyborg 3D

4-axis/8-buttons/1-hatswitch stick + CH pedals on a gameport 

http://vegastrike.sourceforge.net/forums/viewtopic.php?p=12580#12580 forum link

<!-- #joy_cyborg3d -->
<!-- Joystick:USB Saitek Cyborg 3D (4 axis 10 button 1 hatswitch):BEGIN -->
<!-- buttons:BEGIN -->
  <bind joystick="1" player="0"  button="0" modifier="none" command="FireKey" />
  <bind joystick="1" button="1"  modifier="none" command="ABKey" />
  <bind joystick="1" button="2"  modifier="none" command="StopKey" />
  <bind joystick="1" button="3"  modifier="none" command="TargetKey" />
  <bind joystick="1" button="4"  modifier="none" command="PickTargetKey" />
  <bind joystick="1" button="5"  modifier="none" command="DecelKey" />
  <bind joystick="1" button="6"  modifier="none" command="SheltonKey" />
  <bind joystick="1" button="7"  modifier="none" command="AccelKey" />
  <bind joystick="1" button="8"  modifier="none" command="Cockpit::NavScreen" />
  <bind joystick="1" button="9"  modifier="none" command="MisSelKey" />
  <bind joystick="1" button="10" modifier="none" command="Cockpit::Inside" />
  <bind joystick="1" button="11" modifier="none" command="Cockpit::InsideLeft" />
  <bind joystick="1" button="12" modifier="none" command="Cockpit::InsideRight" />
  <bind joystick="1" button="13" modifier="none" command="Cockpit::InsideBack" />
<!-- buttons:END -->

<!-- axes:BEGIN -->
  <axis name="x" joystick="1" axis="0" inverse="false" />
  <axis name="y" joystick="1" axis="1" inverse="false" />
  <!-- <axis name="throttle" joystick="1" axis="2"/> -->
<!-- axes:END -->
<!-- Joystick:USB Saitek Cyborg 3D (4 axis 10 button 1 hatswitch):END -->

<!-- gameport CH pedals:BEGIN -->
<!-- axes:BEGIN -->
  <axis name="z" joystick="0" axis="3" inverse="true"/>
<!-- axes:END -->
<!-- gameport CH pedals:END -->
<!-- #end -->


USB Saitek X45

4-axis/7-button/4-hatswitch/2 rotary control, 2 mode switch (M1,M2,M3 and AUX0-1) stick/flight control system.

3 of the 4 hatswitches could be called like buttons. So I configured them for Cockpit Display and Weapon Selection. Until now the 2 rotary controls are unused. The mode switches are configured for SPEC/cloak.

<!-- #joy_saitek_x45 -->
<!-- Joystick:USB Saitek X45 (4 axis, 7 buttons, 4 hatswitches):BEGIN -->
<!-- buttons:BEGIN -->
	<bind joystick="0" player="0"  button="0" modifier="none" command="FireKey" />
	<bind joystick="0" button="3"  modifier="none" command="MissileKey" />
	<bind joystick="0" button="4"  modifier="none" command="ABKey" />
	<bind joystick="0" button="5"  modifier="none" command="Cockpit::SwitchRVDU" />
	<bind joystick="0" button="1"  modifier="none" command="UnitTargetKey" />
	<bind joystick="0" button="2"  modifier="none" command="SigTargetKey" />
	<bind joystick="0" button="7"  modifier="none" command="NearestTargetKey" />

<!-- button 6 is originally intended as Shift button -->
<!--	<bind joystick="0" button="6"  modifier="none" command="Cockpit::NavScreen" /> -->

	<bind joystick="0" button="8"  modifier="none" command="CloakKey" />
	<bind joystick="0" button="9"  modifier="none" command="CloakKey" />
	<bind joystick="0" button="10" modifier="none" command="CloakKey" />

	<bind joystick="0" button="11" modifier="none" command="ToggleWarpDrive" />
	<bind joystick="0" button="12" modifier="none" command="ToggleWarpDrive" />
	<bind joystick="0" button="13" modifier="none" command="ToggleWarpDrive" />

<!-- Joystick: HatSwitch 2 (left) -->
	<bind joystick="0" button="14" modifier="none" command="WeapSelKey" />
	<bind joystick="0" button="15" modifier="none" command="MisSelKey" />
	<bind joystick="0" button="16" modifier="none" command="ReverseWeapSelKey" />
	<bind joystick="0" button="17" modifier="none" command="ReverseMisSelKey" />

<!-- ThrottleSystem: HatSwitch 3 (back)-->
	<bind joystick="0" button="18" modifier="none" command="Cockpit::PitchDown" />
	<bind joystick="0" button="19" modifier="none" command="Cockpit::YawLeft" />
	<bind joystick="0" button="20" modifier="none" command="Cockpit::PitchUp" />
	<bind joystick="0" button="21" modifier="none" command="Cockpit::YawRight" />

<!-- ThrottleSystem: MouseCursorControl (front)-->
	<bind joystick="0" button="22" modifier="none" command="Cockpit::InsideLeft" />
	<bind joystick="0" button="23" modifier="none" command="Cockpit::Inside" />
	<bind joystick="0" button="24" modifier="none" command="Cockpit::InsideRight" />
	<bind joystick="0" button="25" modifier="none" command="Cockpit::InsideBack" />
<!-- buttons:END -->

<!-- axes:BEGIN -->
	<axis name="x" joystick="0" axis="0" inverse="false" />
	<axis name="y" joystick="0" axis="1" inverse="false" />
	<axis name="throttle" joystick="0" axis="4"/>
	<axis name="z" joystick="0" axis="3"/>
<!-- axes:END -->
<!-- Joystick:USB Saitek X45 (4 axis, 25 buttons, 4 hatswitches):END -->
<!-- #end -->

Logitech Dual Analog Gamepad

Add the joystick-name to the dropdown menu

add joy_log_dual_gp to the line

#cat Joystick no_joy joy_normal joy_throttle joy_axis joy_throttle_and_axis joy_t_a_rev

like this

#cat Joystick no_joy joy_normal joy_throttle joy_axis joy_throttle_and_axis joy_t_a_rev joy_log_dual_gp

Add the description text

#desc joy_log_dual_gp Logitech Dual Analog Gamepad

Make the joystick the current one

edit the #set Joystick xxxx line to

#set Joystick joy_log_dual_gp

Binding code

Place the code below above the </bindings> line in the vegastrike.config file.

<!-- #joy_log_dual_gp -->
                <axis name="x" joystick="0" axis="0" inverse="false" />
                <axis name="y" joystick="0" axis="1" inverse="true" />
                <axis name="z" joystick="0" axis="2" inverse="true"/>
                <!-- (Not Working) axis name="throttle" joystick="0" axis="3"/-->
<!-- The digital pad has axis 4 and 5 and values of -1,0,1 -->
<!-- Need to work out what to use it for and how to use it -->
<!--The Buttons on this Joypad are clearly marked with numbers -->
<!--Unfortunately they start with 1 and system starts with 0 -->
        <bind joystick="0" button="0" modifier="none" command="ABKey" />
        <bind joystick="0" button="1" modifier="none" command="DecelKey" />
        <bind joystick="0" button="2" modifier="none" command="DockKey" />
        <bind joystick="0" button="3" modifier="none" command="AccelKey" />
        <bind joystick="0" button="4" modifier="none" command="TargetKey" />
        <bind joystick="0" button="5" player="0" modifier="none" command="FireKey" />
        <bind joystick="0" button="6" modifier="none" command="PickTargetKey" />
        <bind joystick="0" button="7" modifier="none" command="MissileKey" />
        <bind joystick="0" button="8" modifier="none" command="WeapSelKey" />
        <bind joystick="0" button="9" modifier="none" command="AutoKey" />
<!-- #end -->

Joystick probing

If you can't seem to properly bind your various joystick axes, buttons, and hatswitches, your joystick may be reporting its various functions in unexpected ways. Probing your joystick allows you to test each part of the joystick and see what events it sends to your computer.

Linux

To probe a joystick in Linux, you need the "jstest" utility. (In Debian, this is part of the "joystick" package.) Locate your joystick device (typically /dev/js0) and run "jstest" on it while not touching the joystick. You'll see a series of axis positions and button states.

Once "jstest" is running, grab the joystick and fiddle with whatever function you were unable to bind. Watch the readout and determine what axis or button your actions are triggering. With this knowledge, you should be able to use one of the recipes above (or an existing entry in the vegastrike.config file) to fully map your joystick.

Normally, "jstest" will show all information on a single line and keep updating that line in-place, without scrolling downwards. If it outputs multiple lines instead of updating the same line, you have a lot of axes and buttons (or a very narrow terminal window). Some USB joysticks may even output a couple of screens worth of lines without you even touching the joystick. Ignore everything until it stops scrolling — it's just the joystick "booting up". After that, you can grab the joystick and test as normal.

NOTE: If your joystick is at /dev/input/js0, you may need to create a symbolic link as follows: ln -s /dev/input/js0 /dev/js0

See also


arrow_left.png Config:Advanced:Bindings:Mouse arrow_up.png Config:Advanced:Bindings Config:Advanced:Variables arrow_right.png