1 ============================================== 2 xpad - Linux USB driver for Xbox compatible co 3 ============================================== 4 5 This driver exposes all first-party and third- 6 controllers. It has a long history and has enj 7 as Windows' xinput library caused most PC game 8 controller compatibility. 9 10 Due to backwards compatibility all buttons are 11 This only affects Original Xbox controllers. A 12 have only digital face buttons. 13 14 Rumble is supported on some models of Xbox 360 15 Original Xbox controllers nor on Xbox One cont 16 the Xbox One's rumble protocol has not been re 17 the future could be supported. 18 19 20 Notes 21 ===== 22 23 The number of buttons/axes reported varies bas 24 25 - if you are using a known controller 26 - if you are using a known dance pad 27 - if using an unknown device (one not listed b 28 module configuration for "Map D-PAD to butto 29 pads" (module option dpad_to_buttons) 30 31 If you set dpad_to_buttons to N and you are us 32 the driver will map the directional pad to axe 33 If you said Y it will map the d-pad to buttons 34 style games to function correctly. The default 35 36 dpad_to_buttons has no effect for known pads. 37 claimed dpad_to_buttons could be used to force 38 This is not true. Both dpad_to_buttons and tri 39 unknown controllers. 40 41 42 Normal Controllers 43 ------------------ 44 45 With a normal controller, the directional pad 46 The jstest-program from joystick-1.2.15 (jstes 47 axes and 10 buttons. 48 49 All 8 axes work, though they all have the same 50 and the zero-setting is not correct for the tr 51 is some limitation of jstest, since the input 52 didn't have a look at jstest itself yet). 53 54 All of the 10 buttons work (in digital mode). 55 right side (A, B, X, Y, black, white) are said 56 report their values as 8 bit unsigned, not sur 57 58 I tested the controller with quake3, and confi 59 in game functionality were OK. However, I find 60 play first person shooters with a pad. Your mi 61 62 63 Xbox Dance Pads 64 --------------- 65 66 When using a known dance pad, jstest will repo 67 68 For dance style pads (like the redoctane pad) 69 have been made. The old driver would map the 70 in the driver being unable to report when the 71 left+right or up+down, making DDR style games 72 73 Known dance pads automatically map the d-pad t 74 correctly out of the box. 75 76 If your dance pad is recognized by the driver 77 of buttons, see section 0.3 - Unknown Controll 78 79 I've tested this with Stepmania, and it works 80 81 82 Unknown Controllers 83 ------------------- 84 85 If you have an unknown Xbox controller, it sho 86 the default settings. 87 88 HOWEVER if you have an unknown dance pad not l 89 work UNLESS you set "dpad_to_buttons" to 1 in 90 91 92 USB adapters 93 ============ 94 95 All generations of Xbox controllers speak USB 96 97 - Original Xbox controllers use a proprietary 98 - Wireless Xbox 360 controllers require a 'Xbo 99 for Windows' 100 - Wired Xbox 360 controllers use standard USB 101 - Xbox One controllers can be wireless but spe 102 yet supported. 103 - Xbox One controllers can be wired and use st 104 105 106 107 Original Xbox USB adapters 108 -------------------------- 109 110 Using this driver with an Original Xbox contro 111 adapter cable to break out the proprietary con 112 You can buy these online fairly cheap, or buil 113 114 Such a cable is pretty easy to build. The Cont 115 compound device (a hub with three ports for tw 116 the controller device) with the only differenc 117 (5 pins vs. 4 on standard USB 1.0 connectors). 118 119 You just need to solder a USB connector onto t 120 yellow wire unconnected. The other pins have t 121 connectors so there is no magic to it. Detaile 122 can be found on the net ([1]_, [2]_, [3]_). 123 124 Thanks to the trip splitter found on the cable 125 original one. You can buy an extension cable a 126 you can still use the controller with your Xbo 127 128 129 130 Driver Installation 131 =================== 132 133 Once you have the adapter cable, if needed, an 134 the xpad module should be auto loaded. To conf 135 /sys/kernel/debug/usb/devices. There should be 136 137 .. code-block:: none 138 :caption: dump from InterAct PowerPad Pro ( 139 140 T: Bus=01 Lev=03 Prnt=04 Port=00 Cnt=01 D 141 D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 142 P: Vendor=05fd ProdID=107a Rev= 1.00 143 C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mA 144 I: If#= 0 Alt= 0 #EPs= 2 Cls=58(unk. ) Su 145 E: Ad=81(I) Atr=03(Int.) MxPS= 32 Ivl= 1 146 E: Ad=02(O) Atr=03(Int.) MxPS= 32 Ivl= 1 147 148 .. code-block:: none 149 :caption: dump from Redoctane Xbox Dance Pa 150 151 T: Bus=01 Lev=02 Prnt=09 Port=00 Cnt=01 D 152 D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 153 P: Vendor=0c12 ProdID=8809 Rev= 0.01 154 S: Product=XBOX DDR 155 C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mA 156 I: If#= 0 Alt= 0 #EPs= 2 Cls=58(unk. ) Su 157 E: Ad=82(I) Atr=03(Int.) MxPS= 32 Ivl=4m 158 E: Ad=02(O) Atr=03(Int.) MxPS= 32 Ivl=4m 159 160 161 Supported Controllers 162 ===================== 163 164 For a full list of supported controllers and a 165 IDs see the xpad_device[] array\ [4]_. 166 167 As of the historic version 0.0.6 (2006-10-10) 168 were supported:: 169 170 original Microsoft XBOX controller (US), v 171 smaller Microsoft XBOX controller (US), v 172 original Microsoft XBOX controller (Japan), v 173 InterAct PowerPad Pro (Germany), v 174 RedOctane Xbox Dance Pad (US), v 175 176 Unrecognized models of Xbox controllers should 177 Xbox controllers. Unrecognized Dance Pad contr 178 the module option 'dpad_to_buttons'. 179 180 If you have an unrecognized controller please 181 182 183 Manual Testing 184 ============== 185 186 To test this driver's functionality you may us 187 188 For example:: 189 190 > modprobe xpad 191 > modprobe joydev 192 > jstest /dev/js0 193 194 If you're using a normal controller, there sho 195 18 inputs (8 axes, 10 buttons), and its values 196 the sticks and push the buttons. If you're us 197 show 20 inputs (6 axes, 14 buttons). 198 199 It works? Voila, you're done ;) 200 201 202 203 Thanks 204 ====== 205 206 I have to thank ITO Takayuki for the detailed 207 http://euc.jp/periphs/xbox-controller.ja.h 208 209 His useful info and both the usb-skeleton as w 210 (Greg Kroah-Hartmann; Vojtech Pavlik) helped a 211 the basic functionality. 212 213 214 215 References 216 ========== 217 218 .. [1] http://euc.jp/periphs/xbox-controller.j 219 .. [2] http://xpad.xbox-scene.com/ 220 .. [3] http://www.markosweb.com/www/xboxhackz. 221 .. [4] https://elixir.bootlin.com/linux/latest 222 223 224 Historic Edits 225 ============== 226 227 2002-07-16 - Marko Friedemann <mfr@bmx-chemnitz 228 - original doc 229 230 2005-03-19 - Dominic Cerquetti <binary1230@yaho 231 - added stuff for dance pads, new d-pad->axes 232 233 Later changes may be viewed with 234 'git log --follow Documentation/input/devices/
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.