aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/input
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@s-opensource.com>2017-04-04 20:45:05 -0400
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2017-04-05 18:44:58 -0400
commit89237c427b8ba33ee5976b97debeefa2418f8fb7 (patch)
tree04d16a609dbb74c394afa8f1b13283e55c39323c /Documentation/input
parent0498b4b40003106a2b4d40a95b9b1371b640d75e (diff)
Input: joystick - convert documentation into ReST format
This file require minimum adjustments to be a valid ReST file. Do it, in order to be able to parse it with Sphinx. Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Diffstat (limited to 'Documentation/input')
-rw-r--r--Documentation/input/joystick.txt553
1 files changed, 299 insertions, 254 deletions
diff --git a/Documentation/input/joystick.txt b/Documentation/input/joystick.txt
index 8d027dc86c1f..202f5a090675 100644
--- a/Documentation/input/joystick.txt
+++ b/Documentation/input/joystick.txt
@@ -1,271 +1,291 @@
1 Linux Joystick driver v2.0.0 1.. include:: <isonum.txt>
2 (c) 1996-2000 Vojtech Pavlik <vojtech@ucw.cz> 2
3 Sponsored by SuSE 3============================
4---------------------------------------------------------------------------- 4Linux Joystick driver v2.0.0
5 5============================
60. Disclaimer 6
7~~~~~~~~~~~~~ 7:Copyright: |copy| 1996-2000 Vojtech Pavlik <vojtech@ucw.cz> - Sponsored by SuSE
8 This program is free software; you can redistribute it and/or modify it 8
9
10Disclaimer
11==========
12
13This program is free software; you can redistribute it and/or modify it
9under the terms of the GNU General Public License as published by the Free 14under the terms of the GNU General Public License as published by the Free
10Software Foundation; either version 2 of the License, or (at your option) 15Software Foundation; either version 2 of the License, or (at your option)
11any later version. 16any later version.
12 17
13 This program is distributed in the hope that it will be useful, but 18This program is distributed in the hope that it will be useful, but
14WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 19WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
15or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 20or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
16more details. 21more details.
17 22
18 You should have received a copy of the GNU General Public License along 23You should have received a copy of the GNU General Public License along
19with this program; if not, write to the Free Software Foundation, Inc., 59 24with this program; if not, write to the Free Software Foundation, Inc., 59
20Temple Place, Suite 330, Boston, MA 02111-1307 USA 25Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 26
22 Should you need to contact me, the author, you can do so either by e-mail 27Should you need to contact me, the author, you can do so either by e-mail
23- mail your message to <vojtech@ucw.cz>, or by paper mail: Vojtech Pavlik, 28- mail your message to <vojtech@ucw.cz>, or by paper mail: Vojtech Pavlik,
24Simunkova 1594, Prague 8, 182 00 Czech Republic 29Simunkova 1594, Prague 8, 182 00 Czech Republic
25 30
26 For your convenience, the GNU General Public License version 2 is included 31For your convenience, the GNU General Public License version 2 is included
27in the package: See the file COPYING. 32in the package: See the file COPYING.
28 33
291. Intro 34Intro
30~~~~~~~~ 35=====
31 The joystick driver for Linux provides support for a variety of joysticks 36
37The joystick driver for Linux provides support for a variety of joysticks
32and similar devices. It is based on a larger project aiming to support all 38and similar devices. It is based on a larger project aiming to support all
33input devices in Linux. 39input devices in Linux.
34 40
35 Should you encounter any problems while using the driver, or joysticks 41Should you encounter any problems while using the driver, or joysticks
36this driver can't make complete use of, I'm very interested in hearing about 42this driver can't make complete use of, I'm very interested in hearing about
37them. Bug reports and success stories are also welcome. 43them. Bug reports and success stories are also welcome.
38 44
39 The input project website is at: 45The input project website is at:
40 46
41 http://atrey.karlin.mff.cuni.cz/~vojtech/input/ 47 http://atrey.karlin.mff.cuni.cz/~vojtech/input/
42 48
43 There is also a mailing list for the driver at: 49There is also a mailing list for the driver at:
44 50
45 listproc@atrey.karlin.mff.cuni.cz 51 listproc@atrey.karlin.mff.cuni.cz
46 52
47send "subscribe linux-joystick Your Name" to subscribe to it. 53send "subscribe linux-joystick Your Name" to subscribe to it.
48 54
492. Usage 55Usage
50~~~~~~~~ 56=====
51 For basic usage you just choose the right options in kernel config and 57
58For basic usage you just choose the right options in kernel config and
52you should be set. 59you should be set.
53 60
542.1 inpututils 61inpututils
55~~~~~~~~~~~~~~ 62----------
63
56For testing and other purposes (for example serial devices), a set of 64For testing and other purposes (for example serial devices), a set of
57utilities is available at the abovementioned website. I suggest you download 65utilities is available at the abovementioned website. I suggest you download
58and install it before going on. 66and install it before going on.
59 67
602.2 Device nodes 68Device nodes
61~~~~~~~~~~~~~~~~ 69------------
70
62For applications to be able to use the joysticks, 71For applications to be able to use the joysticks,
63you'll have to manually create these nodes in /dev: 72you'll have to manually create these nodes in /dev::
64 73
65cd /dev 74 cd /dev
66rm js* 75 rm js*
67mkdir input 76 mkdir input
68mknod input/js0 c 13 0 77 mknod input/js0 c 13 0
69mknod input/js1 c 13 1 78 mknod input/js1 c 13 1
70mknod input/js2 c 13 2 79 mknod input/js2 c 13 2
71mknod input/js3 c 13 3 80 mknod input/js3 c 13 3
72ln -s input/js0 js0 81 ln -s input/js0 js0
73ln -s input/js1 js1 82 ln -s input/js1 js1
74ln -s input/js2 js2 83 ln -s input/js2 js2
75ln -s input/js3 js3 84 ln -s input/js3 js3
76 85
77For testing with inpututils it's also convenient to create these: 86For testing with inpututils it's also convenient to create these::
78 87
79mknod input/event0 c 13 64 88 mknod input/event0 c 13 64
80mknod input/event1 c 13 65 89 mknod input/event1 c 13 65
81mknod input/event2 c 13 66 90 mknod input/event2 c 13 66
82mknod input/event3 c 13 67 91 mknod input/event3 c 13 67
83 92
842.4 Modules needed 93Modules needed
85~~~~~~~~~~~~~~~~~~ 94--------------
86 For all joystick drivers to function, you'll need the userland interface 95
87module in kernel, either loaded or compiled in: 96For all joystick drivers to function, you'll need the userland interface
97module in kernel, either loaded or compiled in::
88 98
89 modprobe joydev 99 modprobe joydev
90 100
91 For gameport joysticks, you'll have to load the gameport driver as well; 101For gameport joysticks, you'll have to load the gameport driver as well::
92 102
93 modprobe ns558 103 modprobe ns558
94 104
95 And for serial port joysticks, you'll need the serial input line 105And for serial port joysticks, you'll need the serial input line
96discipline module loaded and the inputattach utility started: 106discipline module loaded and the inputattach utility started::
97 107
98 modprobe serport 108 modprobe serport
99 inputattach -xxx /dev/tts/X & 109 inputattach -xxx /dev/tts/X &
100 110
101 In addition to that, you'll need the joystick driver module itself, most 111In addition to that, you'll need the joystick driver module itself, most
102usually you'll have an analog joystick: 112usually you'll have an analog joystick::
103 113
104 modprobe analog 114 modprobe analog
105 115
106 For automatic module loading, something like this might work - tailor to 116For automatic module loading, something like this might work - tailor to
107your needs: 117your needs::
108 118
109 alias tty-ldisc-2 serport 119 alias tty-ldisc-2 serport
110 alias char-major-13 input 120 alias char-major-13 input
111 above input joydev ns558 analog 121 above input joydev ns558 analog
112 options analog map=gamepad,none,2btn 122 options analog map=gamepad,none,2btn
113 123
1142.5 Verifying that it works 124Verifying that it works
115~~~~~~~~~~~~~~~~~~~~~~~~~~~ 125-----------------------
116 For testing the joystick driver functionality, there is the jstest 126
117program in the utilities package. You run it by typing: 127For testing the joystick driver functionality, there is the jstest
128program in the utilities package. You run it by typing::
118 129
119 jstest /dev/input/js0 130 jstest /dev/input/js0
120 131
121 And it should show a line with the joystick values, which update as you 132And it should show a line with the joystick values, which update as you
122move the stick, and press its buttons. The axes should all be zero when the 133move the stick, and press its buttons. The axes should all be zero when the
123joystick is in the center position. They should not jitter by themselves to 134joystick is in the center position. They should not jitter by themselves to
124other close values, and they also should be steady in any other position of 135other close values, and they also should be steady in any other position of
125the stick. They should have the full range from -32767 to 32767. If all this 136the stick. They should have the full range from -32767 to 32767. If all this
126is met, then it's all fine, and you can play the games. :) 137is met, then it's all fine, and you can play the games. :)
127 138
128 If it's not, then there might be a problem. Try to calibrate the joystick, 139If it's not, then there might be a problem. Try to calibrate the joystick,
129and if it still doesn't work, read the drivers section of this file, the 140and if it still doesn't work, read the drivers section of this file, the
130troubleshooting section, and the FAQ. 141troubleshooting section, and the FAQ.
131 142
1322.6. Calibration 143Calibration
133~~~~~~~~~~~~~~~~ 144-----------
134 For most joysticks you won't need any manual calibration, since the 145
146For most joysticks you won't need any manual calibration, since the
135joystick should be autocalibrated by the driver automagically. However, with 147joystick should be autocalibrated by the driver automagically. However, with
136some analog joysticks, that either do not use linear resistors, or if you 148some analog joysticks, that either do not use linear resistors, or if you
137want better precision, you can use the jscal program 149want better precision, you can use the jscal program::
138 150
139 jscal -c /dev/input/js0 151 jscal -c /dev/input/js0
140 152
141 included in the joystick package to set better correction coefficients than 153included in the joystick package to set better correction coefficients than
142what the driver would choose itself. 154what the driver would choose itself.
143 155
144 After calibrating the joystick you can verify if you like the new 156After calibrating the joystick you can verify if you like the new
145calibration using the jstest command, and if you do, you then can save the 157calibration using the jstest command, and if you do, you then can save the
146correction coefficients into a file 158correction coefficients into a file::
147 159
148 jscal -p /dev/input/js0 > /etc/joystick.cal 160 jscal -p /dev/input/js0 > /etc/joystick.cal
149 161
150 And add a line to your rc script executing that file 162And add a line to your rc script executing that file::
151 163
152 source /etc/joystick.cal 164 source /etc/joystick.cal
153 165
154 This way, after the next reboot your joystick will remain calibrated. You 166This way, after the next reboot your joystick will remain calibrated. You
155can also add the jscal -p line to your shutdown script. 167can also add the ``jscal -p`` line to your shutdown script.
156 168
157 169
1583. HW specific driver information 170HW specific driver information
159~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171==============================
172
160In this section each of the separate hardware specific drivers is described. 173In this section each of the separate hardware specific drivers is described.
161 174
1623.1 Analog joysticks 175Analog joysticks
163~~~~~~~~~~~~~~~~~~~~ 176----------------
164 The analog.c uses the standard analog inputs of the gameport, and thus 177
178The analog.c uses the standard analog inputs of the gameport, and thus
165supports all standard joysticks and gamepads. It uses a very advanced 179supports all standard joysticks and gamepads. It uses a very advanced
166routine for this, allowing for data precision that can't be found on any 180routine for this, allowing for data precision that can't be found on any
167other system. 181other system.
168 182
169 It also supports extensions like additional hats and buttons compatible 183It also supports extensions like additional hats and buttons compatible
170with CH Flightstick Pro, ThrustMaster FCS or 6 and 8 button gamepads. Saitek 184with CH Flightstick Pro, ThrustMaster FCS or 6 and 8 button gamepads. Saitek
171Cyborg 'digital' joysticks are also supported by this driver, because 185Cyborg 'digital' joysticks are also supported by this driver, because
172they're basically souped up CHF sticks. 186they're basically souped up CHF sticks.
173 187
174 However the only types that can be autodetected are: 188However the only types that can be autodetected are:
175 189
176* 2-axis, 4-button joystick 190* 2-axis, 4-button joystick
177* 3-axis, 4-button joystick 191* 3-axis, 4-button joystick
178* 4-axis, 4-button joystick 192* 4-axis, 4-button joystick
179* Saitek Cyborg 'digital' joysticks 193* Saitek Cyborg 'digital' joysticks
180 194
181 For other joystick types (more/less axes, hats, and buttons) support 195For other joystick types (more/less axes, hats, and buttons) support
182you'll need to specify the types either on the kernel command line or on the 196you'll need to specify the types either on the kernel command line or on the
183module command line, when inserting analog into the kernel. The 197module command line, when inserting analog into the kernel. The
184parameters are: 198parameters are::
185 199
186 analog.map=<type1>,<type2>,<type3>,.... 200 analog.map=<type1>,<type2>,<type3>,....
187 201
188 'type' is type of the joystick from the table below, defining joysticks 202'type' is type of the joystick from the table below, defining joysticks
189present on gameports in the system, starting with gameport0, second 'type' 203present on gameports in the system, starting with gameport0, second 'type'
190entry defining joystick on gameport1 and so on. 204entry defining joystick on gameport1 and so on.
191 205
192 Type | Meaning 206 ========= =====================================================
193 ----------------------------------- 207 Type Meaning
194 none | No analog joystick on that port 208 ========= =====================================================
195 auto | Autodetect joystick 209 none No analog joystick on that port
196 2btn | 2-button n-axis joystick 210 auto Autodetect joystick
197 y-joy | Two 2-button 2-axis joysticks on an Y-cable 211 2btn 2-button n-axis joystick
198 y-pad | Two 2-button 2-axis gamepads on an Y-cable 212 y-joy Two 2-button 2-axis joysticks on an Y-cable
199 fcs | Thrustmaster FCS compatible joystick 213 y-pad Two 2-button 2-axis gamepads on an Y-cable
200 chf | Joystick with a CH Flightstick compatible hat 214 fcs Thrustmaster FCS compatible joystick
201 fullchf | CH Flightstick compatible with two hats and 6 buttons 215 chf Joystick with a CH Flightstick compatible hat
202 gamepad | 4/6-button n-axis gamepad 216 fullchf CH Flightstick compatible with two hats and 6 buttons
203 gamepad8 | 8-button 2-axis gamepad 217 gamepad 4/6-button n-axis gamepad
204 218 gamepad8 8-button 2-axis gamepad
205 In case your joystick doesn't fit in any of the above categories, you can 219 ========= =====================================================
220
221In case your joystick doesn't fit in any of the above categories, you can
206specify the type as a number by combining the bits in the table below. This 222specify the type as a number by combining the bits in the table below. This
207is not recommended unless you really know what are you doing. It's not 223is not recommended unless you really know what are you doing. It's not
208dangerous, but not simple either. 224dangerous, but not simple either.
209 225
210 Bit | Meaning 226 ==== =========================
211 -------------------------- 227 Bit Meaning
212 0 | Axis X1 228 ==== =========================
213 1 | Axis Y1 229 0 Axis X1
214 2 | Axis X2 230 1 Axis Y1
215 3 | Axis Y2 231 2 Axis X2
216 4 | Button A 232 3 Axis Y2
217 5 | Button B 233 4 Button A
218 6 | Button C 234 5 Button B
219 7 | Button D 235 6 Button C
220 8 | CHF Buttons X and Y 236 7 Button D
221 9 | CHF Hat 1 237 8 CHF Buttons X and Y
222 10 | CHF Hat 2 238 9 CHF Hat 1
223 11 | FCS Hat 239 10 CHF Hat 2
224 12 | Pad Button X 240 11 FCS Hat
225 13 | Pad Button Y 241 12 Pad Button X
226 14 | Pad Button U 242 13 Pad Button Y
227 15 | Pad Button V 243 14 Pad Button U
228 16 | Saitek F1-F4 Buttons 244 15 Pad Button V
229 17 | Saitek Digital Mode 245 16 Saitek F1-F4 Buttons
230 19 | GamePad 246 17 Saitek Digital Mode
231 20 | Joy2 Axis X1 247 19 GamePad
232 21 | Joy2 Axis Y1 248 20 Joy2 Axis X1
233 22 | Joy2 Axis X2 249 21 Joy2 Axis Y1
234 23 | Joy2 Axis Y2 250 22 Joy2 Axis X2
235 24 | Joy2 Button A 251 23 Joy2 Axis Y2
236 25 | Joy2 Button B 252 24 Joy2 Button A
237 26 | Joy2 Button C 253 25 Joy2 Button B
238 27 | Joy2 Button D 254 26 Joy2 Button C
239 31 | Joy2 GamePad 255 27 Joy2 Button D
240 256 31 Joy2 GamePad
2413.2 Microsoft SideWinder joysticks 257 ==== =========================
242~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 258
243 Microsoft 'Digital Overdrive' protocol is supported by the sidewinder.c 259Microsoft SideWinder joysticks
260------------------------------
261
262Microsoft 'Digital Overdrive' protocol is supported by the sidewinder.c
244module. All currently supported joysticks: 263module. All currently supported joysticks:
245 264
246* Microsoft SideWinder 3D Pro 265* Microsoft SideWinder 3D Pro
247* Microsoft SideWinder Force Feedback Pro 266* Microsoft SideWinder Force Feedback Pro
248* Microsoft SideWinder Force Feedback Wheel 267* Microsoft SideWinder Force Feedback Wheel
249* Microsoft SideWinder FreeStyle Pro 268* Microsoft SideWinder FreeStyle Pro
250* Microsoft SideWinder GamePad (up to four, chained) 269* Microsoft SideWinder GamePad (up to four, chained)
251* Microsoft SideWinder Precision Pro 270* Microsoft SideWinder Precision Pro
252* Microsoft SideWinder Precision Pro USB 271* Microsoft SideWinder Precision Pro USB
253 272
254 are autodetected, and thus no module parameters are needed. 273are autodetected, and thus no module parameters are needed.
255 274
256 There is one caveat with the 3D Pro. There are 9 buttons reported, 275There is one caveat with the 3D Pro. There are 9 buttons reported,
257although the joystick has only 8. The 9th button is the mode switch on the 276although the joystick has only 8. The 9th button is the mode switch on the
258rear side of the joystick. However, moving it, you'll reset the joystick, 277rear side of the joystick. However, moving it, you'll reset the joystick,
259and make it unresponsive for about a one third of a second. Furthermore, the 278and make it unresponsive for about a one third of a second. Furthermore, the
260joystick will also re-center itself, taking the position it was in during 279joystick will also re-center itself, taking the position it was in during
261this time as a new center position. Use it if you want, but think first. 280this time as a new center position. Use it if you want, but think first.
262 281
263 The SideWinder Standard is not a digital joystick, and thus is supported 282The SideWinder Standard is not a digital joystick, and thus is supported
264by the analog driver described above. 283by the analog driver described above.
284
285Logitech ADI devices
286--------------------
265 287
2663.3 Logitech ADI devices 288Logitech ADI protocol is supported by the adi.c module. It should support
267~~~~~~~~~~~~~~~~~~~~~~~~
268 Logitech ADI protocol is supported by the adi.c module. It should support
269any Logitech device using this protocol. This includes, but is not limited 289any Logitech device using this protocol. This includes, but is not limited
270to: 290to:
271 291
@@ -279,20 +299,21 @@ to:
279* Logitech WingMan GamePad Extreme 299* Logitech WingMan GamePad Extreme
280* Logitech WingMan Extreme Digital 3D 300* Logitech WingMan Extreme Digital 3D
281 301
282 ADI devices are autodetected, and the driver supports up to two (any 302ADI devices are autodetected, and the driver supports up to two (any
283combination of) devices on a single gameport, using an Y-cable or chained 303combination of) devices on a single gameport, using an Y-cable or chained
284together. 304together.
285 305
286 Logitech WingMan Joystick, Logitech WingMan Attack, Logitech WingMan 306Logitech WingMan Joystick, Logitech WingMan Attack, Logitech WingMan
287Extreme and Logitech WingMan ThunderPad are not digital joysticks and are 307Extreme and Logitech WingMan ThunderPad are not digital joysticks and are
288handled by the analog driver described above. Logitech WingMan Warrior and 308handled by the analog driver described above. Logitech WingMan Warrior and
289Logitech Magellan are supported by serial drivers described below. Logitech 309Logitech Magellan are supported by serial drivers described below. Logitech
290WingMan Force and Logitech WingMan Formula Force are supported by the 310WingMan Force and Logitech WingMan Formula Force are supported by the
291I-Force driver described below. Logitech CyberMan is not supported yet. 311I-Force driver described below. Logitech CyberMan is not supported yet.
292 312
2933.4 Gravis GrIP 313Gravis GrIP
294~~~~~~~~~~~~~~~ 314-----------
295 Gravis GrIP protocol is supported by the grip.c module. It currently 315
316Gravis GrIP protocol is supported by the grip.c module. It currently
296supports: 317supports:
297 318
298* Gravis GamePad Pro 319* Gravis GamePad Pro
@@ -300,7 +321,7 @@ supports:
300* Gravis Xterminator 321* Gravis Xterminator
301* Gravis Xterminator DualControl 322* Gravis Xterminator DualControl
302 323
303 All these devices are autodetected, and you can even use any combination 324All these devices are autodetected, and you can even use any combination
304of up to two of these pads either chained together or using an Y-cable on a 325of up to two of these pads either chained together or using an Y-cable on a
305single gameport. 326single gameport.
306 327
@@ -308,9 +329,10 @@ GrIP MultiPort isn't supported yet. Gravis Stinger is a serial device and is
308supported by the stinger driver. Other Gravis joysticks are supported by the 329supported by the stinger driver. Other Gravis joysticks are supported by the
309analog driver. 330analog driver.
310 331
3113.5 FPGaming A3D and MadCatz A3D 332FPGaming A3D and MadCatz A3D
312~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333----------------------------
313 The Assassin 3D protocol created by FPGaming, is used both by FPGaming 334
335The Assassin 3D protocol created by FPGaming, is used both by FPGaming
314themselves and is licensed to MadCatz. A3D devices are supported by the 336themselves and is licensed to MadCatz. A3D devices are supported by the
315a3d.c module. It currently supports: 337a3d.c module. It currently supports:
316 338
@@ -318,125 +340,139 @@ a3d.c module. It currently supports:
318* MadCatz Panther 340* MadCatz Panther
319* MadCatz Panther XL 341* MadCatz Panther XL
320 342
321 All these devices are autodetected. Because the Assassin 3D and the Panther 343All these devices are autodetected. Because the Assassin 3D and the Panther
322allow connecting analog joysticks to them, you'll need to load the analog 344allow connecting analog joysticks to them, you'll need to load the analog
323driver as well to handle the attached joysticks. 345driver as well to handle the attached joysticks.
324 346
325 The trackball should work with USB mousedev module as a normal mouse. See 347The trackball should work with USB mousedev module as a normal mouse. See
326the USB documentation for how to setup an USB mouse. 348the USB documentation for how to setup an USB mouse.
327 349
3283.6 ThrustMaster DirectConnect (BSP) 350ThrustMaster DirectConnect (BSP)
329~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 351--------------------------------
330 The TM DirectConnect (BSP) protocol is supported by the tmdc.c 352
353The TM DirectConnect (BSP) protocol is supported by the tmdc.c
331module. This includes, but is not limited to: 354module. This includes, but is not limited to:
332 355
333* ThrustMaster Millennium 3D Interceptor 356* ThrustMaster Millennium 3D Interceptor
334* ThrustMaster 3D Rage Pad 357* ThrustMaster 3D Rage Pad
335* ThrustMaster Fusion Digital Game Pad 358* ThrustMaster Fusion Digital Game Pad
336 359
337 Devices not directly supported, but hopefully working are: 360Devices not directly supported, but hopefully working are:
338 361
339* ThrustMaster FragMaster 362* ThrustMaster FragMaster
340* ThrustMaster Attack Throttle 363* ThrustMaster Attack Throttle
341 364
342 If you have one of these, contact me. 365If you have one of these, contact me.
343 366
344 TMDC devices are autodetected, and thus no parameters to the module 367TMDC devices are autodetected, and thus no parameters to the module
345are needed. Up to two TMDC devices can be connected to one gameport, using 368are needed. Up to two TMDC devices can be connected to one gameport, using
346an Y-cable. 369an Y-cable.
347 370
3483.7 Creative Labs Blaster 371Creative Labs Blaster
349~~~~~~~~~~~~~~~~~~~~~~~~~ 372---------------------
350 The Blaster protocol is supported by the cobra.c module. It supports only 373
374The Blaster protocol is supported by the cobra.c module. It supports only
351the: 375the:
352 376
353* Creative Blaster GamePad Cobra 377* Creative Blaster GamePad Cobra
354 378
355 Up to two of these can be used on a single gameport, using an Y-cable. 379Up to two of these can be used on a single gameport, using an Y-cable.
380
381Genius Digital joysticks
382------------------------
356 383
3573.8 Genius Digital joysticks 384The Genius digitally communicating joysticks are supported by the gf2k.c
358~~~~~~~~~~~~~~~~~~~~~~~~~~~~
359 The Genius digitally communicating joysticks are supported by the gf2k.c
360module. This includes: 385module. This includes:
361 386
362* Genius Flight2000 F-23 joystick 387* Genius Flight2000 F-23 joystick
363* Genius Flight2000 F-31 joystick 388* Genius Flight2000 F-31 joystick
364* Genius G-09D gamepad 389* Genius G-09D gamepad
365 390
366 Other Genius digital joysticks are not supported yet, but support can be 391Other Genius digital joysticks are not supported yet, but support can be
367added fairly easily. 392added fairly easily.
368 393
3693.9 InterAct Digital joysticks 394InterAct Digital joysticks
370~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395--------------------------
371 The InterAct digitally communicating joysticks are supported by the 396
397The InterAct digitally communicating joysticks are supported by the
372interact.c module. This includes: 398interact.c module. This includes:
373 399
374* InterAct HammerHead/FX gamepad 400* InterAct HammerHead/FX gamepad
375* InterAct ProPad8 gamepad 401* InterAct ProPad8 gamepad
376 402
377 Other InterAct digital joysticks are not supported yet, but support can be 403Other InterAct digital joysticks are not supported yet, but support can be
378added fairly easily. 404added fairly easily.
379 405
3803.10 PDPI Lightning 4 gamecards 406PDPI Lightning 4 gamecards
381~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407--------------------------
382 PDPI Lightning 4 gamecards are supported by the lightning.c module. 408
409PDPI Lightning 4 gamecards are supported by the lightning.c module.
383Once the module is loaded, the analog driver can be used to handle the 410Once the module is loaded, the analog driver can be used to handle the
384joysticks. Digitally communicating joystick will work only on port 0, while 411joysticks. Digitally communicating joystick will work only on port 0, while
385using Y-cables, you can connect up to 8 analog joysticks to a single L4 412using Y-cables, you can connect up to 8 analog joysticks to a single L4
386card, 16 in case you have two in your system. 413card, 16 in case you have two in your system.
387 414
3883.11 Trident 4DWave / Aureal Vortex 415Trident 4DWave / Aureal Vortex
389~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416------------------------------
390 Soundcards with a Trident 4DWave DX/NX or Aureal Vortex/Vortex2 chipsets 417
418Soundcards with a Trident 4DWave DX/NX or Aureal Vortex/Vortex2 chipsets
391provide an "Enhanced Game Port" mode where the soundcard handles polling the 419provide an "Enhanced Game Port" mode where the soundcard handles polling the
392joystick. This mode is supported by the pcigame.c module. Once loaded the 420joystick. This mode is supported by the pcigame.c module. Once loaded the
393analog driver can use the enhanced features of these gameports.. 421analog driver can use the enhanced features of these gameports..
394 422
3953.13 Crystal SoundFusion 423Crystal SoundFusion
396~~~~~~~~~~~~~~~~~~~~~~~~ 424-------------------
397 Soundcards with Crystal SoundFusion chipsets provide an "Enhanced Game 425
426Soundcards with Crystal SoundFusion chipsets provide an "Enhanced Game
398Port", much like the 4DWave or Vortex above. This, and also the normal mode 427Port", much like the 4DWave or Vortex above. This, and also the normal mode
399for the port of the SoundFusion is supported by the cs461x.c module. 428for the port of the SoundFusion is supported by the cs461x.c module.
400 429
4013.14 SoundBlaster Live! 430SoundBlaster Live!
402~~~~~~~~~~~~~~~~~~~~~~~~ 431------------------
403 The Live! has a special PCI gameport, which, although it doesn't provide 432
433The Live! has a special PCI gameport, which, although it doesn't provide
404any "Enhanced" stuff like 4DWave and friends, is quite a bit faster than 434any "Enhanced" stuff like 4DWave and friends, is quite a bit faster than
405its ISA counterparts. It also requires special support, hence the 435its ISA counterparts. It also requires special support, hence the
406emu10k1-gp.c module for it instead of the normal ns558.c one. 436emu10k1-gp.c module for it instead of the normal ns558.c one.
407 437
4083.15 SoundBlaster 64 and 128 - ES1370 and ES1371, ESS Solo1 and S3 SonicVibes 438SoundBlaster 64 and 128 - ES1370 and ES1371, ESS Solo1 and S3 SonicVibes
409~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 439------------------------------------------------------------------------
410 These PCI soundcards have specific gameports. They are handled by the 440
441These PCI soundcards have specific gameports. They are handled by the
411sound drivers themselves. Make sure you select gameport support in the 442sound drivers themselves. Make sure you select gameport support in the
412joystick menu and sound card support in the sound menu for your appropriate 443joystick menu and sound card support in the sound menu for your appropriate
413card. 444card.
414 445
4153.16 Amiga 446Amiga
416~~~~~~~~~~ 447-----
417 Amiga joysticks, connected to an Amiga, are supported by the amijoy.c 448
418driver. Since they can't be autodetected, the driver has a command line. 449Amiga joysticks, connected to an Amiga, are supported by the amijoy.c
450driver. Since they can't be autodetected, the driver has a command line:
419 451
420 amijoy.map=<a>,<b> 452 amijoy.map=<a>,<b>
421 453
422 a and b define the joysticks connected to the JOY0DAT and JOY1DAT ports of 454a and b define the joysticks connected to the JOY0DAT and JOY1DAT ports of
423the Amiga. 455the Amiga.
424 456
425 Value | Joystick type 457 ====== ===========================
426 --------------------- 458 Value Joystick type
427 0 | None 459 ====== ===========================
428 1 | 1-button digital joystick 460 0 None
461 1 1-button digital joystick
462 ====== ===========================
429 463
430 No more joystick types are supported now, but that should change in the 464No more joystick types are supported now, but that should change in the
431future if I get an Amiga in the reach of my fingers. 465future if I get an Amiga in the reach of my fingers.
432 466
4333.17 Game console and 8-bit pads and joysticks 467Game console and 8-bit pads and joysticks
434~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 468~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
435See joystick-parport.txt for more info. 469
470See :ref:`joystick-parport` for more info.
436 471
4373.18 SpaceTec/LabTec devices 472SpaceTec/LabTec devices
438~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473-----------------------
439 SpaceTec serial devices communicate using the SpaceWare protocol. It is 474
475SpaceTec serial devices communicate using the SpaceWare protocol. It is
440supported by the spaceorb.c and spaceball.c drivers. The devices currently 476supported by the spaceorb.c and spaceball.c drivers. The devices currently
441supported by spaceorb.c are: 477supported by spaceorb.c are:
442 478
@@ -447,43 +483,47 @@ Devices currently supported by spaceball.c are:
447 483
448* SpaceTec SpaceBall 4000 FLX 484* SpaceTec SpaceBall 4000 FLX
449 485
450 In addition to having the spaceorb/spaceball and serport modules in the 486In addition to having the spaceorb/spaceball and serport modules in the
451kernel, you also need to attach a serial port to it. to do that, run the 487kernel, you also need to attach a serial port to it. to do that, run the
452inputattach program: 488inputattach program::
453 489
454 inputattach --spaceorb /dev/tts/x & 490 inputattach --spaceorb /dev/tts/x &
455or 491
492or::
493
456 inputattach --spaceball /dev/tts/x & 494 inputattach --spaceball /dev/tts/x &
457 495
458where /dev/tts/x is the serial port which the device is connected to. After 496where /dev/tts/x is the serial port which the device is connected to. After
459doing this, the device will be reported and will start working. 497doing this, the device will be reported and will start working.
460 498
461 There is one caveat with the SpaceOrb. The button #6, the on the bottom 499There is one caveat with the SpaceOrb. The button #6, the on the bottom
462side of the orb, although reported as an ordinary button, causes internal 500side of the orb, although reported as an ordinary button, causes internal
463recentering of the spaceorb, moving the zero point to the position in which 501recentering of the spaceorb, moving the zero point to the position in which
464the ball is at the moment of pressing the button. So, think first before 502the ball is at the moment of pressing the button. So, think first before
465you bind it to some other function. 503you bind it to some other function.
466 504
467SpaceTec SpaceBall 2003 FLX and 3003 FLX are not supported yet. 505SpaceTec SpaceBall 2003 FLX and 3003 FLX are not supported yet.
468 506
4693.19 Logitech SWIFT devices 507Logitech SWIFT devices
470~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508----------------------
471 The SWIFT serial protocol is supported by the warrior.c module. It 509
510The SWIFT serial protocol is supported by the warrior.c module. It
472currently supports only the: 511currently supports only the:
473 512
474* Logitech WingMan Warrior 513* Logitech WingMan Warrior
475 514
476but in the future, Logitech CyberMan (the original one, not CM2) could be 515but in the future, Logitech CyberMan (the original one, not CM2) could be
477supported as well. To use the module, you need to run inputattach after you 516supported as well. To use the module, you need to run inputattach after you
478insert/compile the module into your kernel: 517insert/compile the module into your kernel::
479 518
480 inputattach --warrior /dev/tts/x & 519 inputattach --warrior /dev/tts/x &
481 520
482/dev/tts/x is the serial port your Warrior is attached to. 521/dev/tts/x is the serial port your Warrior is attached to.
483 522
4843.20 Magellan / Space Mouse 523Magellan / Space Mouse
485~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524----------------------
486 The Magellan (or Space Mouse), manufactured by LogiCad3d (formerly Space 525
526The Magellan (or Space Mouse), manufactured by LogiCad3d (formerly Space
487Systems), for many other companies (Logitech, HP, ...) is supported by the 527Systems), for many other companies (Logitech, HP, ...) is supported by the
488joy-magellan module. It currently supports only the: 528joy-magellan module. It currently supports only the:
489 529
@@ -492,94 +532,99 @@ joy-magellan module. It currently supports only the:
492 532
493models, the additional buttons on the 'Plus' versions are not supported yet. 533models, the additional buttons on the 'Plus' versions are not supported yet.
494 534
495 To use it, you need to attach the serial port to the driver using the 535To use it, you need to attach the serial port to the driver using the::
496 536
497 inputattach --magellan /dev/tts/x & 537 inputattach --magellan /dev/tts/x &
498 538
499command. After that the Magellan will be detected, initialized, will beep, 539command. After that the Magellan will be detected, initialized, will beep,
500and the /dev/input/jsX device should become usable. 540and the /dev/input/jsX device should become usable.
501 541
5023.21 I-Force devices 542I-Force devices
503~~~~~~~~~~~~~~~~~~~~ 543---------------
504 All I-Force devices are supported by the iforce module. This includes: 544
545All I-Force devices are supported by the iforce module. This includes:
505 546
506* AVB Mag Turbo Force 547* AVB Mag Turbo Force
507* AVB Top Shot Pegasus 548* AVB Top Shot Pegasus
508* AVB Top Shot Force Feedback Racing Wheel 549* AVB Top Shot Force Feedback Racing Wheel
509* Logitech WingMan Force 550* Logitech WingMan Force
510* Logitech WingMan Force Wheel 551* Logitech WingMan Force Wheel
511* Guillemot Race Leader Force Feedback 552* Guillemot Race Leader Force Feedback
512* Guillemot Force Feedback Racing Wheel 553* Guillemot Force Feedback Racing Wheel
513* Thrustmaster Motor Sport GT 554* Thrustmaster Motor Sport GT
514 555
515 To use it, you need to attach the serial port to the driver using the 556To use it, you need to attach the serial port to the driver using the::
516 557
517 inputattach --iforce /dev/tts/x & 558 inputattach --iforce /dev/tts/x &
518 559
519command. After that the I-Force device will be detected, and the 560command. After that the I-Force device will be detected, and the
520/dev/input/jsX device should become usable. 561/dev/input/jsX device should become usable.
521 562
522 In case you're using the device via the USB port, the inputattach command 563In case you're using the device via the USB port, the inputattach command
523isn't needed. 564isn't needed.
524 565
525 The I-Force driver now supports force feedback via the event interface. 566The I-Force driver now supports force feedback via the event interface.
526 567
527 Please note that Logitech WingMan *3D devices are _not_ supported by this 568Please note that Logitech WingMan 3D devices are _not_ supported by this
528module, rather by hid. Force feedback is not supported for those devices. 569module, rather by hid. Force feedback is not supported for those devices.
529Logitech gamepads are also hid devices. 570Logitech gamepads are also hid devices.
530 571
5313.22 Gravis Stinger gamepad 572Gravis Stinger gamepad
532~~~~~~~~~~~~~~~~~~~~~~~~~~~ 573----------------------
533 The Gravis Stinger serial port gamepad, designed for use with laptop 574
575The Gravis Stinger serial port gamepad, designed for use with laptop
534computers, is supported by the stinger.c module. To use it, attach the 576computers, is supported by the stinger.c module. To use it, attach the
535serial port to the driver using: 577serial port to the driver using::
536 578
537 inputattach --stinger /dev/tty/x & 579 inputattach --stinger /dev/tty/x &
538 580
539where x is the number of the serial port. 581where x is the number of the serial port.
540 582
5414. Troubleshooting 583Troubleshooting
542~~~~~~~~~~~~~~~~~~ 584===============
543 There is quite a high probability that you run into some problems. For 585
586There is quite a high probability that you run into some problems. For
544testing whether the driver works, if in doubt, use the jstest utility in 587testing whether the driver works, if in doubt, use the jstest utility in
545some of its modes. The most useful modes are "normal" - for the 1.x 588some of its modes. The most useful modes are "normal" - for the 1.x
546interface, and "old" for the "0.x" interface. You run it by typing: 589interface, and "old" for the "0.x" interface. You run it by typing::
547 590
548 jstest --normal /dev/input/js0 591 jstest --normal /dev/input/js0
549 jstest --old /dev/input/js0 592 jstest --old /dev/input/js0
550 593
551 Additionally you can do a test with the evtest utility: 594Additionally you can do a test with the evtest utility::
552 595
553 evtest /dev/input/event0 596 evtest /dev/input/event0
554 597
555 Oh, and read the FAQ! :) 598Oh, and read the FAQ! :)
599
600FAQ
601===
602
603:Q: Running 'jstest /dev/input/js0' results in "File not found" error. What's the
604 cause?
605:A: The device files don't exist. Create them (see section 2.2).
556 606
5575. FAQ 607:Q: Is it possible to connect my old Atari/Commodore/Amiga/console joystick
558~~~~~~ 608 or pad that uses a 9-pin D-type cannon connector to the serial port of my
559Q: Running 'jstest /dev/input/js0' results in "File not found" error. What's the 609 PC?
560 cause? 610:A: Yes, it is possible, but it'll burn your serial port or the pad. It
561A: The device files don't exist. Create them (see section 2.2). 611 won't work, of course.
562 612
563Q: Is it possible to connect my old Atari/Commodore/Amiga/console joystick 613:Q: My joystick doesn't work with Quake / Quake 2. What's the cause?
564 or pad that uses a 9-pin D-type cannon connector to the serial port of my 614:A: Quake / Quake 2 don't support joystick. Use joy2key to simulate keypresses
565 PC? 615 for them.
566A: Yes, it is possible, but it'll burn your serial port or the pad. It
567 won't work, of course.
568 616
569Q: My joystick doesn't work with Quake / Quake 2. What's the cause? 617Programming Interface
570A: Quake / Quake 2 don't support joystick. Use joy2key to simulate keypresses 618=====================
571 for them.
572 619
5736. Programming Interface 620The 1.0 driver uses a new, event based approach to the joystick driver.
574~~~~~~~~~~~~~~~~~~~~~~~~
575 The 1.0 driver uses a new, event based approach to the joystick driver.
576Instead of the user program polling for the joystick values, the joystick 621Instead of the user program polling for the joystick values, the joystick
577driver now reports only any changes of its state. See joystick-api.txt, 622driver now reports only any changes of its state. See joystick-api.txt,
578joystick.h and jstest.c included in the joystick package for more 623joystick.h and jstest.c included in the joystick package for more
579information. The joystick device can be used in either blocking or 624information. The joystick device can be used in either blocking or
580nonblocking mode and supports select() calls. 625nonblocking mode and supports select() calls.
581 626
582 For backward compatibility the old (v0.x) interface is still included. 627For backward compatibility the old (v0.x) interface is still included.
583Any call to the joystick driver using the old interface will return values 628Any call to the joystick driver using the old interface will return values
584that are compatible to the old interface. This interface is still limited 629that are compatible to the old interface. This interface is still limited
585to 2 axes, and applications using it usually decode only 2 buttons, although 630to 2 axes, and applications using it usually decode only 2 buttons, although