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

From VsWiki
Jump to: navigation, search
(fixed links)
(Updated some hatswitch information)
Line 56: Line 56:
 
<bind hatswitch="0" button="3" modifier="none" command="StopKey" />
 
<bind hatswitch="0" button="3" modifier="none" command="StopKey" />
 
</pre>
 
</pre>
{{Fixme}} ''Is this really how it works? For me it binds the NORMAL BUTTON-0 to the ABKey and not the 'virtual' one of the hatswitch/throttle. But that's what is in the vegastrike.config file :-/ ''
 
  
====Description====
+
''Is this really how it works? For me it binds the NORMAL BUTTON-0 to the ABKey and not the 'virtual' one of the hatswitch/throttle. But that's what is in the vegastrike.config file :-/ ''
????
+
 
 +
''You are correct. This bug preventing "bind" from working with hatswitches, and thus hatswitches from working at all, has been fixed in latest CVS, but not in 0.4.3.''
  
 
===DIGITAL COOLIHAT/HATSWITCH===
 
===DIGITAL COOLIHAT/HATSWITCH===
Line 73: Line 73:
 
* <code>digital-hatswitch</code> - Number of the digital hatswitch.
 
* <code>digital-hatswitch</code> - Number of the digital hatswitch.
 
* <code>direction</code> - Direction (-button) of digital hatswitch.
 
* <code>direction</code> - Direction (-button) of digital hatswitch.
** Possible values: <code>left</code>, <code>right</code>, <code>up</code>, <code>back</code>, <code>center</code> {{Fixme}} ''is '<code>back</code>' correct?''
+
**Possible values: "center", "up", "right", "left", "down", "rightup", "rightdown", "leftup", "leftdown"
 +
* <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.
 +
 
 +
===DIGITAL AXES/D-PAD AS HATSWITCH===
 +
This can allow one to use a (usually digital) axis such as a D-Pad as button commands, such as camera keys, etc.
 +
 
 +
====Sample====
 +
<pre>
 +
<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" />
 +
</pre>
 +
 
 +
====Description====
 +
In <axis> tags:
 +
* <code>axis</code> - Number of the joystick axes for up/down and left/right.
 +
* <code>margin</code> - basically, you want this to include 1.0 and -1.0, but not 0.0 when adding hatswitch-value +/- margin
 +
* <code>joystick</code> - 0=down/left, 1=up/right
 +
In <bind> tags:
 +
* <code>hatswitch</code> and <code>nr</code> - Number of the two defined "hatswitches".
 +
* <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> - Specify the command to start when the button is pressed here. See [[Manual:Keyboard layout|Keyboard layout]] for description and a list of commands.
  

Revision as of 07:15, 30 July 2005

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

Joystick Configuration

This page provides working examples of different joystick configurations, showing how each buton has been bound to operate a single Vega Strike function.

If a Joystick Configuration matches your joystick, you can edit copy the configuration here into your vegastrike config file.

JOYSTICK: bind

Sample

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

Description

  • joystick - Number of the joystick.
  • player - for which player is the command specified? FIXME  ?how this is right?
  • button - Number of the button on the joystick.
  • modifier - FIXME ? no clue ?
  • command - Specify the command to start when the button is pressed here. See Keyboard layout for description and a list of commands.

JOYSTICK: axis

Sample

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

Description

  • name - Name of the axis (in the game) to bind (x,y,z,throttle)
  • joystick - Number of the joystick.
  • axis - Number of axis of the joystick.
  • inverse - Set this to true if you want to inverse the axis direction and to false if not.

ANALOG COOLIHAT/HATSWITCH

forum link 1

Sample

<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" />

Is this really how it works? For me it binds the NORMAL BUTTON-0 to the ABKey and not the 'virtual' one of the hatswitch/throttle. But that's what is in the vegastrike.config file :-/

You are correct. This bug preventing "bind" from working with hatswitches, and thus hatswitches from working at all, has been fixed in latest CVS, but not in 0.4.3.

DIGITAL COOLIHAT/HATSWITCH

forum link

Sample

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

Description

  • joystick - Number of the joystick.
  • digital-hatswitch - Number of the digital hatswitch.
  • direction - Direction (-button) of digital hatswitch.
    • Possible values: "center", "up", "right", "left", "down", "rightup", "rightdown", "leftup", "leftdown"
  • command - Specify the command to start when the button is pressed here. See Keyboard layout for description and a list of commands.

DIGITAL AXES/D-PAD AS HATSWITCH

This can allow one to use a (usually digital) axis such as a D-Pad as button commands, such as camera keys, etc.

Sample

<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" />

Description

In <axis> tags:

  • axis - Number of the joystick axes for up/down and left/right.
  • margin - basically, you want this to include 1.0 and -1.0, but not 0.0 when adding hatswitch-value +/- margin
  • joystick - 0=down/left, 1=up/right

In <bind> tags:

  • hatswitch and nr - Number of the two defined "hatswitches".
  • button - 0=down/left, 1=up/right
  • command - Specify the command to start when the button is pressed here. See Keyboard layout for description and a list of commands.

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 -->

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 -->

See also


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