Difference between revisions of "Es:Manual:Config:Advanced:Bindings:Joystick"
(→Sample) |
(→Microsoft SideWinder Force Feedback 2 (USB)) |
||
Line 194: | Line 194: | ||
==== Linux 2.4 ==== | ==== Linux 2.4 ==== | ||
− | :''( | + | :''(Núcleos probados: 2.4.27)'' |
− | + | Este modelo se muestra en Linux como si tuviera 11 ejes y 20 botones, pero sólo nueve botones y seis ejes son usados, dos de ellos son hatsticks pseudoanálogos (como si fuera difgital efectivamente). | |
− | + | La configuración de los hatswitch es especial aquí. La configuración de abajo usa un sistema de "retorno al centro", donde dejamos al hatswitch regresar a la vista estandar de la cabina. Por lo tanto, el camino obvio sería definir un eje centrado (0) como retorno al interior de la cabina (Cockpit::Inside). Pero entonces esto será definido para ''ambos'' ejes, esto no funciona; al presionar izquierda ó derecha solo parpadeará en esa dirección, regresando instantaneamente al centro siempre si el hatswitch es sostenido. Esto es debido a que el movimiento ''horizontal'' del the hatswitch (llendo desde el centro) de alguna manera dispara eventos de movimiento ''vertical'', siempre y cuando el eje vertical no haya sido modificado. El centrado vertical es cancelado fuera del movimiento izquierda-derecha. | |
− | + | Para definir el movimiento retorno-al-centro '''solamente''' en el movimiento horizontal, todo trabaja perfectamente: El movimiento horizontal es permitido por los eventos del movimiento vertical, y regresando de los ejes verticales al centro de alguna manera dispara un evento de centrado horizontal, regresando a la vista en el interior. La causa de esta inconsistencia es desconocida, pero el efecto es exactamente como el deseado. | |
− | + | Una vez que los ejes de mirada están fuera del camino, los botones son extremadamente simples; el primer mapa de ocho botones(0 a 7) mapea directamente a los botones stick. El botón #11 es un botón virtual especial, que es "presionado" cuando la mano deja el stick (por medio de un sensor óptico). Atracando en una estación espacial sería el uso más lógico para este "botón", sería aquí cuando el usuario deseará dejar el joystick por allí; aparte de ahorrarse el presionar una tecla, esto es algo bueno para onlookers con el joystick "mágico" de usuario. | |
<pre> | <pre> | ||
Line 245: | Line 245: | ||
==== Linux 2.6 ==== | ==== Linux 2.6 ==== | ||
− | :''( | + | :''(Núcleos probados: 2.6.10, 2.6.11, 2.6.12)'' |
− | + | Las cosas se vuelven mucho más simples en Linux 2.6. El hatswitch es actualmente reconocido como un hatswitch digital, y el botón virtual "joystick soltado" se convierte en el botón 8, a la derecha despues de los ocho botones físicos. Por otro lado, los números de los ejes throttle y twist actualmente se mueven para ''muchos'' números. No obstante, las cosas son simples en lo general. | |
− | + | Las características del stick reportadas varían de sobremanera a través de las versiones de los núcleos: | |
− | * '''2.6.10:''' 18 | + | * '''2.6.10:''' 18 ejes, 15 botones, 1 gatillo |
− | * '''2.6.12:''' 12 | + | * '''2.6.12:''' 12 ejes, 9 botones, 1 gatillo |
− | + | Aparentemente, el código del dispositivo funciona a pesar de todo, pero esto parece significar que la detección se vuelve más y más corta con el tiempo. | |
− | + | Abajo está exactamente el mismo código que arriba, pero adaptado para los nucleos de la serie 2.6: | |
<pre> | <pre> |
Revision as of 01:19, 20 January 2007
Traducciones de esta página: Deutsch – English – Français – Español – Polski – Italiano – Nederlands – Руccкий – 简体中文
Configuración Avanzada: Ratón | Configuración Avanzada:Dispositivos | Configuración Avanzada: Variables |
Contents
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
Ejemplo
<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 atrue
si quieres invertir la dirección de los ejes y afalse
si no.
COOLIHAT/HATSWITCH ANÁLOGO
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
ynr
- 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.
Ejemplos de Joysticks
Por favor inserta aquí tus configuraciones funcionales
Microsoft SideWinder Force Feedback Pro
(Puede servir para otros joysticks sidewinder tambien)
Agrega el nombre del joystick al menú desplegable
agrega joy_ffp
a la línea
#cat Joystick no_joy joy_normal joy_throttle joy_axis joy_throttle_and_axis joy_t_a_rev
como este
#cat Joystick no_joy joy_normal joy_throttle joy_axis joy_throttle_and_axis joy_t_a_rev joy_ffp
Agrega el texto de descripción
#desc joy_ffp Microsoft SideWinder Force Feedback Pro
Haz del joystick el seleccionado actualmente
edita la línea #set Joystick xxxx
a
#set Joystick joy_ffp
Código de reglas
Coloca el código de abajo sobre la línea </bindings>
en el archivo vegastrike.config
.
FIXME Atención: Estas reglas puden no trabajar bajo linux... al menos no para el mío. Ayuda bienvenida.
<!-- #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
- (Núcleos probados: 2.4.27)
Este modelo se muestra en Linux como si tuviera 11 ejes y 20 botones, pero sólo nueve botones y seis ejes son usados, dos de ellos son hatsticks pseudoanálogos (como si fuera difgital efectivamente).
La configuración de los hatswitch es especial aquí. La configuración de abajo usa un sistema de "retorno al centro", donde dejamos al hatswitch regresar a la vista estandar de la cabina. Por lo tanto, el camino obvio sería definir un eje centrado (0) como retorno al interior de la cabina (Cockpit::Inside). Pero entonces esto será definido para ambos ejes, esto no funciona; al presionar izquierda ó derecha solo parpadeará en esa dirección, regresando instantaneamente al centro siempre si el hatswitch es sostenido. Esto es debido a que el movimiento horizontal del the hatswitch (llendo desde el centro) de alguna manera dispara eventos de movimiento vertical, siempre y cuando el eje vertical no haya sido modificado. El centrado vertical es cancelado fuera del movimiento izquierda-derecha.
Para definir el movimiento retorno-al-centro solamente en el movimiento horizontal, todo trabaja perfectamente: El movimiento horizontal es permitido por los eventos del movimiento vertical, y regresando de los ejes verticales al centro de alguna manera dispara un evento de centrado horizontal, regresando a la vista en el interior. La causa de esta inconsistencia es desconocida, pero el efecto es exactamente como el deseado.
Una vez que los ejes de mirada están fuera del camino, los botones son extremadamente simples; el primer mapa de ocho botones(0 a 7) mapea directamente a los botones stick. El botón #11 es un botón virtual especial, que es "presionado" cuando la mano deja el stick (por medio de un sensor óptico). Atracando en una estación espacial sería el uso más lógico para este "botón", sería aquí cuando el usuario deseará dejar el joystick por allí; aparte de ahorrarse el presionar una tecla, esto es algo bueno para onlookers con el joystick "mágico" de usuario.
<!-- #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
- (Núcleos probados: 2.6.10, 2.6.11, 2.6.12)
Las cosas se vuelven mucho más simples en Linux 2.6. El hatswitch es actualmente reconocido como un hatswitch digital, y el botón virtual "joystick soltado" se convierte en el botón 8, a la derecha despues de los ocho botones físicos. Por otro lado, los números de los ejes throttle y twist actualmente se mueven para muchos números. No obstante, las cosas son simples en lo general.
Las características del stick reportadas varían de sobremanera a través de las versiones de los núcleos:
- 2.6.10: 18 ejes, 15 botones, 1 gatillo
- 2.6.12: 12 ejes, 9 botones, 1 gatillo
Aparentemente, el código del dispositivo funciona a pesar de todo, pero esto parece significar que la detección se vuelve más y más corta con el tiempo.
Abajo está exactamente el mismo código que arriba, pero adaptado para los nucleos de la serie 2.6:
<!-- #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 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
- Current vegastrike.config in the CVS.
Config:Advanced:Bindings:Mouse | Config:Advanced:Bindings | Config:Advanced:Variables |