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