[Pkg-games-ubuntu] [Bug 581862] Re: Problematic joystick device with Microsoft Nano Transceiver

Martin Pitt martin.pitt at ubuntu.com
Thu Aug 26 13:32:54 UTC 2010


** Package changed: udev (Ubuntu) => linux (Ubuntu)

-- 
Problematic joystick device with Microsoft Nano Transceiver
https://bugs.launchpad.net/bugs/581862
You received this bug notification because you are a member of
Debian/Ubuntu Games Team, which is subscribed to tumiki-fighters in
ubuntu.

Status in “linux” package in Ubuntu: New
Status in “tumiki-fighters” package in Ubuntu: Invalid

Bug description:
I'm pretty well clueless as far as the input stack is concerned, so I hope I am aiming this report at the right place :)


When I insert the Microsoft Nano Transceiver 1.0 (which comes with the MS Mobile Mouse 6000, for example) three input devices are created. Naturally, one of those corresponds to the mouse I am using, the other two are for other devices it could have been connected to. xinput lists these as two pointers and one keyboard. One of those pointers is a joystick (which udev sticks at /dev/js0).

Even though I have no joystick associated with that transceiver (or indeed any joystick), games see that device and use it. The phantom joystick's position seems to be tilted upwards and to the left; in tumiki-fighter (where I noticed the problem), I am unable to control the game because I am stuck flying to the upper left corner of the screen.


Here's some fun stuff…



 % xinput list
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ Wacom Bamboo eraser                     	id=13	[slave  pointer  (2)]
⎜   ↳ Wacom Bamboo cursor                     	id=14	[slave  pointer  (2)]
⎜   ↳ Wacom Bamboo pad                        	id=15	[slave  pointer  (2)]
⎜   ↳ Wacom Bamboo                            	id=16	[slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad              	id=18	[slave  pointer  (2)]
⎜   ↳ Macintosh mouse button emulation        	id=19	[slave  pointer  (2)]
⎜   ↳ Microsoft Microsoft® Nano Transceiver v1.0	id=11	[slave  pointer  (2)]
⎜   ↳ Microsoft Microsoft® Nano Transceiver v1.0	id=12	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ Power Button                            	id=6	[slave  keyboard (3)]
    ↳ Video Bus                               	id=7	[slave  keyboard (3)]
    ↳ Sleep Button                            	id=8	[slave  keyboard (3)]
    ↳ USB 2.0 Camera                          	id=9	[slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard            	id=17	[slave  keyboard (3)]
    ↳ Asus Laptop extra buttons               	id=20	[slave  keyboard (3)]
    ↳ Microsoft Microsoft® Nano Transceiver v1.0	id=10	[slave  keyboard (3)]



 % xinput query-state 10
1 class :
KeyClass
	key[0]=up
	key[1]=up
	key[2]=up
*Continues as so; all keys are up*



 % xinput query-state 12
3 classes :
KeyClass
	key[0]=up
	key[1]=up
	key[2]=up
*Snip*
ButtonClass
	button[1]=up
	button[2]=up
	button[3]=up
	button[4]=up
	button[5]=up
	button[6]=up
	button[7]=up
ValuatorClass Mode=Absolute Proximity=In
	valuator[0]=960
	valuator[1]=600
	valuator[2]=0
	valuator[3]=0
*All others (4 to 35) are 0*



valuator[0] and valuator[1] look interesting ;)


I installed the joystick package…



 % jstest --event /dev/input/js0 
Driver version is 2.1.0.
Joystick (Microsoft Microsoft® Nano Transceiver v1.0) has 37 axes (X, Y, Z, Rx, Ry, Rz, Throttle, Rudder, Wheel, Hat0X, Hat0Y, Hat1X, (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null))
and 41 buttons (BtnThumbL, BtnThumbR, (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), (null), Btn0).
Testing ... (interrupt to exit)
Event: type 129, time 19221516, number 0, value 0
Event: type 129, time 19221516, number 1, value 0
Event: type 129, time 19221516, number 2, value 0
Event: type 129, time 19221516, number 3, value 0
Event: type 129, time 19221516, number 4, value 0
Event: type 129, time 19221516, number 5, value 0
Event: type 129, time 19221516, number 6, value 0
Event: type 129, time 19221516, number 7, value 0
Event: type 129, time 19221516, number 8, value 0
Event: type 129, time 19221516, number 9, value 0
Event: type 129, time 19221516, number 10, value 0
Event: type 129, time 19221516, number 11, value 0
Event: type 129, time 19221516, number 12, value 0
Event: type 129, time 19221516, number 13, value 0
Event: type 129, time 19221516, number 14, value 0
Event: type 129, time 19221516, number 15, value 0
Event: type 129, time 19221516, number 16, value 0
Event: type 129, time 19221516, number 17, value 0
Event: type 129, time 19221516, number 18, value 0
Event: type 129, time 19221516, number 19, value 0
Event: type 129, time 19221516, number 20, value 0
Event: type 129, time 19221516, number 21, value 0
Event: type 129, time 19221516, number 22, value 0
Event: type 129, time 19221516, number 23, value 0
Event: type 129, time 19221516, number 24, value 0
Event: type 129, time 19221516, number 25, value 0
Event: type 129, time 19221516, number 26, value 0
Event: type 129, time 19221516, number 27, value 0
Event: type 129, time 19221516, number 28, value 0
Event: type 129, time 19221516, number 29, value 0
Event: type 129, time 19221516, number 30, value 0
Event: type 129, time 19221516, number 31, value 0
Event: type 129, time 19221516, number 32, value 0
Event: type 129, time 19221516, number 33, value 0
Event: type 129, time 19221516, number 34, value 0
Event: type 129, time 19221516, number 35, value 0
Event: type 129, time 19221516, number 36, value 0
Event: type 129, time 19221516, number 37, value 0
Event: type 129, time 19221516, number 38, value 0
Event: type 129, time 19221516, number 39, value 0
Event: type 129, time 19221516, number 40, value 0
Event: type 130, time 19221516, number 0, value -32767
Event: type 130, time 19221516, number 1, value -32767
Event: type 130, time 19221516, number 2, value -32767
Event: type 130, time 19221516, number 3, value -32767
Event: type 130, time 19221516, number 4, value -32767
Event: type 130, time 19221516, number 5, value -32767
Event: type 130, time 19221516, number 6, value -32767
Event: type 130, time 19221516, number 7, value -32767
Event: type 130, time 19221516, number 8, value -32767
Event: type 130, time 19221516, number 9, value -32767
Event: type 130, time 19221516, number 10, value 0
Event: type 130, time 19221516, number 11, value 0
Event: type 130, time 19221516, number 12, value -32767
Event: type 130, time 19221516, number 13, value -32767
Event: type 130, time 19221516, number 14, value -32767
Event: type 130, time 19221516, number 15, value -32767
Event: type 130, time 19221516, number 16, value -32767
Event: type 130, time 19221516, number 17, value -32767
Event: type 130, time 19221516, number 18, value -32767
Event: type 130, time 19221516, number 19, value -32767
Event: type 130, time 19221516, number 20, value -32767
Event: type 130, time 19221516, number 21, value -32767
Event: type 130, time 19221516, number 22, value -32767
Event: type 130, time 19221516, number 23, value -32767
Event: type 130, time 19221516, number 24, value -32767
Event: type 130, time 19221516, number 25, value -32767
Event: type 130, time 19221516, number 26, value -32767
Event: type 130, time 19221516, number 27, value -32767
Event: type 130, time 19221516, number 28, value -32767
Event: type 130, time 19221516, number 29, value -32767
Event: type 130, time 19221516, number 30, value -32767
Event: type 130, time 19221516, number 31, value -32767
Event: type 130, time 19221516, number 32, value -32767
Event: type 130, time 19221516, number 33, value -32767
Event: type 130, time 19221516, number 34, value -32767
Event: type 130, time 19221516, number 35, value -32767
Event: type 130, time 19221516, number 36, value -32767




Later I tried running
 % jscal -c /dev/input/js0 
It crashed, but indeed zeroed the imaginary joystick, so tumiki-fighter cooperated.



If more data is needed, I am happy to provide it!






Original bug report follows:


Binary package hint: tumiki-fighters

Weird issue with this game. The ship appears to be stuck flying up and to the left. Thus, it is impossible to move down and the ship is always being pushed leftwards. This renders it unplayable ;)

At first, it appears as thought the Down control simply does not work, regardless of which one I use.

It may be specific to my system. I ran the Windows version of the game in Wine, and it works there. However, I did notice that controls became stuck in a similar fashion when another process rudely grabbed the keyboard and mouse, so the game is evidently quirky in how it handles input.

ProblemType: Bug
DistroRelease: Ubuntu 10.04
Package: tumiki-fighters 0.2.dfsg1-3build1
ProcVersionSignature: Ubuntu 2.6.32-22.33-generic 2.6.32.11+drm33.2
Uname: Linux 2.6.32-22-generic i686
NonfreeKernelModules: nvidia
Architecture: i386
Date: Mon May 17 10:16:13 2010
ProcEnviron:
 LANGUAGE=en_CA:en_GB:en
 LANG=en_CA.utf8
 SHELL=/bin/zsh
SourcePackage: tumiki-fighters







More information about the Pkg-games-ubuntu mailing list