xboxdrv/TODO
2010-12-13 13:30:59 +01:00

657 lines
24 KiB
Text
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Pre Release Testing:
====================
* check the version number
VERSION="$(cat VERSION)"
TAG="v${VERSION}"
git tag -s "${TAG}" -m "xboxdrv ${TAG}"
# Normal Source
git archive --format=tar --prefix="xboxdrv-linux-${VERSION}/" ${TAG} | bzip2 -c > /tmp/xboxdrv-linux-${VERSION}.tar.bz2
git push --tags
Stuff to do before 0.6.0 release:
=================================
* axis-map must take range into account
* gives weird not helpful error message: --ui-axismap x1=ABS_X2
* output information for evdev must output KEY_#342 instead of just 342
* Add: --evdev-absmap ABS_X2+=RT,-ABS_X2+=LT to allow mapping of
half-axes (syntax is inconsistent with axis inverting)
- write man page entry
* evdev handling needs to handle [-1,1] axis differently from [0,1] axis
http://ps3.jim.sh/sixaxis/usb/
see evdev_controller.cpp:165
* allow separate deadzone for each axis
* create dummy joystick axis for the joystick device, see:
/usr/src/linux-source-2.6.35/drivers/input/joydev.c
/usr/src/linux-source-2.6.35/drivers/input/mousedev.c
* make evdev grab optional:
--evdev-grab
Takes exclusive ownership of the event device, all events are
directed to xboxdrv and no other application will be able to
receive events.
--evdev-no-grab
* allow binding of scripts to a button
* --ui-axismap LT=KEY_A:KEY_B:1
Here KEY_B is the key you want to send and KEY_A is a random other key
that you don't need. It's a hack as mapping both to KEY_B seems to
cause some trouble with automatic key repeat for some reason. Note
that you must not combine this with --trigger-as-zaxis as that will
disable LT and RT
* should actually send everything, not just the onces that are needed,
rest could be handled by ButtonMap/AxisMap:
if (cfg.trigger_as_zaxis)
{
send_axis(XBOX_AXIS_TRIGGER, (int(msg.rt) - int(msg.lt)));
}
else if (cfg.trigger_as_button)
{
send_button(XBOX_BTN_LT, msg.lt);
send_button(XBOX_BTN_RT, msg.rt);
}
else
{
send_axis(XBOX_AXIS_LT, msg.lt);
send_axis(XBOX_AXIS_RT, msg.rt);
}
* axismap doesn't hamonize with axismap:
--ui-axismap LT=KEY_A:KEY_A:1
* invert y axis on --evdev
* add Playstation3 controller config to examples
./xboxdrv \
--evdev /dev/input/event6 \
--evdev-absmap ABS_X=x1,ABS_Y=y1 \
--evdev-absmap ABS_Z=x2,ABS_RZ=y2 \
--evdev-absmap ABS_#48=lt,ABS_#49=rt \
--evdev-keymap BTN_THUMB=tl,BTN_THUMB2=tr \
--evdev-keymap BTN_BASE5=lb,BTN_BASE6=rb \
--evdev-keymap KEY_#302=a,KEY_#301=b,BTN_DEAD=x,KEY_#300=y \
--evdev-keymap BTN_TRIGGER=back,KEY_#720=guide,BTN_TOP=start \
--evdev-keymap BTN_TOP2=du,BTN_PINKIE=dr,BTN_BASE=dd,BTN_BASE2=dl
* review error handling on missing enums in: src/enum_box.hpp, revert
last change and solve the issue in str2key/key2str
* allow --type to work even when --device-by-id is not given
* axis emulation
--ui-axisemulation A:B=ABS_X:5
* rewrite to use no floats:
scale_deadzone(int16_t value, const int deadzone)
scale_trigger_deadzone(uint8_t value, int deadzone)
* documentation on keyboard combinations for axis seems lacking
* ini support
* endpoints can be taken directly from the usb configuration, thus
avoiding issues with nummeric endpoints
* bcdDevice (product release version) seem to indicate type (to many
possible versions, not enough data):
new controller with merged endpoints: bcdDevice: 0x0114
old ones: 1.10
better way then to check for endpoints maybe
* give a hint in the documentation on how to do multi line comments:
xboxdrv \
--buttonmap A=X,X=A `# swap A and X` \
--buttonmap B=Y,Y=B `# swap B and Y`
* 045e:028f is the play&charge kit, give an error message when somebody tries to use that
* axis-min/max range must be transmitted to AxisEvent (maybe normalize to float)
* match by protocol not, just vendor/product, from xpad.c:
/* Xbox 360 has a vendor-specific class, so we cannot match it with only
* USB_INTERFACE_INFO (also specifically refused by USB subsystem), so we
* match against vendor id as well. Wired Xbox 360 devices have protocol 1,
* wireless controllers have protocol 129. */
#define XPAD_XBOX360_VENDOR_PROTOCOL(vend,pr) \
.match_flags = USB_DEVICE_ID_MATCH_VENDOR | USB_DEVICE_ID_MATCH_INT_INFO, \
.idVendor = (vend), \
.bInterfaceClass = USB_CLASS_VENDOR_SPEC, \
.bInterfaceSubClass = 93, \
.bInterfaceProtocol = (pr)
#define XPAD_XBOX360_VENDOR(vend) \
{ XPAD_XBOX360_VENDOR_PROTOCOL(vend,1) }, \
{ XPAD_XBOX360_VENDOR_PROTOCOL(vend,129) }
Docu
====
* docu on how to write a wrapper script needs to be moved to xboxdrv manpage
Packaging
=========
* split xboxdrv-daemon into a separate .deb package
Cleanup
=======
* improve output on which uinput devices are created
Feature
=======
* --extra_devices is broken (no longer implemented and somewhat tricky to reimplement)
* add --list-keys --list-x11-keys --list-axis --list-rel etc.
* figure out a way to make userspace force feedback driver not become dead processes
* better keyboard emulation via analog sticks: axis must not be
handled separately as this leads to issues with the diagonals (see
mail from Matthew G <matt@remort.org>) (maybe relative axis can help?)
* test TR:Anniversary with max effect 16
fixme:dinput:joy_polldev joystick cannot handle type 21 event (code 0) <- 21 == EV_FF (status report?)
http://www.immersion.com/developer/downloads/ImmFundamentals/HTML/
http://msdn.microsoft.com/en-us/library/bb219655(VS.85).aspx
Later versions:
===============
* complex macro programming, i.e. complete evdev sequences, not just key combinations
* The World Tour wireless guitar have 5 buttons and a
slide. Currently, the slide is mapped to the x axis, but I don't
know if it allows multiple presses at once. I don't have a Xbox, so
I don't know if it is allowed at all in the console.
Colour: Button: Value in X1 (slide):
Green A -27500
Red B -12900
Yellow Y +7000
Blue X +18500
Orange LB1 +32767
(None) (None) -300
* get rid of guitar, merge into xbox360
* send FF status reports (maybe, is that used by anything?)
* figure out the max values of force feedback effects so that stuff is
mapped more properly (kind of done, could need verification)
* add --detach option that detaches any existing driver (needed for
gamepads that use HID)
* figure out which devices xorg/hal handles as keyboard and how to
make it always happen, seems to require two keyboard keys, devices
with only one aren't registered
* display ui-buttonmap in the configuration overview, tricky since we
don't differ between default bindings and user created ones, also
which bindings get used depends on other configuration options
* report more precisly what devices got created, include device name (HAL has that information)
* add support for LED messages (can this be used by anything?)
* add support for analog buttons (not all that useful, but would still be nice to have)
* include id/wid in device name (would be cleaner, since it makes the
device unique, but would make Xorg trouble worse)
http://lists.libsdl.org/pipermail/sdl-libsdl.org/2007-March/060263.html
- fix http://userweb.kernel.org/~dtor/eviocgbit-bug.html in evtest
- cleanup evtest some more, add more features
- using rumble in scripts doesn't work, since you can't reset rumble back to 0,0
- thread away on all endpoints
- read from stdin on the main thread
- send output to file or so
usb -d 005:006 -c 5:in,5:out,6:in,7:in,8:out -o /tmp/out, else stdin
Daemon Mode:
SYSFS{idVendor}=="045e", SYSFS{idProduct}=="028e", RUN+="/home/ingo/projects/xboxdrv/trunk/xboxdrv --daemon"
Unpluging doesn't work and causes xboxdrv processing running amok
Pictures of Xbox360 and controller:
http://g-prime.net/x360/
Add examples to Readme for specific games
Use cases:
==========
* flightsim:
expects: X/Y Rudder Throttle
XBox: Left-Stick LT+RT Right-Stick(rel)
* FPS:
expects: Mouse-X/Y Walk-X/Y Trigger
XBox: Left-Stick RickStick Trigger(btn)
* 2D Jump Run (done)
needs dpad first
FIX:
=====
filter auto known unknown messages
uinput name should be configurable
uinput busid/devid shouldn't be hardcoded
Battery warning: LEDs 1,4 then 2,3 over and over ~10 times rapidly
* a way to send keyboard combination sequences or more general event sequences
* abs input must be normalized to min/max
* rel input must be scaleable
* Cleanup naming conventions
sending rumble is slow and delayed, gets buffered up
* examples in doc for --dpad as buttons and other options
Figure out:
===========
Unknown data: bytes: 3 Data: 0x01 0x03 0x0e
Unknown data: bytes: 3 Data: 0x02 0x03 0x00
Unknown data: bytes: 3 Data: 0x03 0x03 0x03
Unknown data: bytes: 3 Data: 0x08 0x03 0x00
Unknown data: bytes: 3 Data: 0x01 0x03 0x00
Different Computer/Pad:
Unknown data: bytes: 3 Data: 0x01 0x03 0x0e
Unknown data: bytes: 3 Data: 0x02 0x03 0x00
Unknown data: bytes: 3 Data: 0x03 0x03 0x03
Unknown data: bytes: 3 Data: 0x08 0x03 0x00
Unknown data: bytes: 3 Data: 0x01 0x03 0x00
/* Happens with XBox360 Controller sometimes
Unknown data: bytes: 3 Data: 0x01 0x03 0x0e
Unknown data: bytes: 3 Data: 0x02 0x03 0x00
Unknown data: bytes: 3 Data: 0x03 0x03 0x03
Unknown data: bytes: 3 Data: 0x08 0x03 0x00
-- different session:
Unknown data: bytes: 3 Data: 0x01 0x03 0x0e
Unknown data: bytes: 3 Data: 0x02 0x03 0x00
Unknown data: bytes: 3 Data: 0x03 0x03 0x03
Unknown data: bytes: 3 Data: 0x08 0x03 0x00
Unknown data: bytes: 3 Data: 0x01 0x03 0x06
*/
-----
Guitar:
Tilt Sensor: is mapped to the second axis of S2, to LT and RT (three parts)
- Range for 2nd axis of S2 : -32768 when guitar is straight down and 32767 when she is straight up.
- Range for LT : ~200 not very precise and ~60 at min.
- Range for RT : ~190 not very precise and ~55 at min.
dummy should stay mostly 0, except the position five and six, which
are the LT/RT trigger. We can either just ignore them or you can try
to find out if they have any meaning.
They control guitar rotation, hmm hard to explain, it's when I rotate the guitar in front of me, it detects if the guitar is in the correct position.
-----
* Question: Firestorm Dual Power: How to get rumble to work when there is no endpoint to send data to?
* Guitar Hero Controller:
- lsusb -v output looks like a XBox360 controller
- usbcat looks like an XBox360 controller
- it doesn't report events
http://forums.gentoo.org/viewtopic-p-5061825.html
http://gentoo-wiki.com/HOWTO_Xbox_360_controller_on_Linux
http://happypenguin.org/show?xboxdrv
http://ubuntuforums.org/showthread.php?t=404577&page=16
http://tattiebogle.net/index.php/ProjectRoot/Xbox360Controller/OsxDriver
WirelessHIDDevice::receivedMessage(IOMemoryDescriptor *data)
* wireless reports battery level
* disconnecting the pad in use will just let the driver wait forever
for new data, any way we can catch a disconnect?
* a way to configure the deadzone for axis (might be needed for some games)
* Add support for dancepad/mats (should just mean cleanup up the
buttons/axis not provided by the dancepad/mat)
New Command Line Options:
--button-map BTN
BTN is a list of integers, where each integer corresponds to the
event that gets send
A,B,X,Y,LB,RB,SL,SR,LT,RT,Start,Mode,Back,DPAD-UP,DPAD-DOWN,DPAD-LEFT,DPAD-RIGHT
A,B,X,Y,TL2,TR2,TL,TR,
#define BTN_A 0x130
#define BTN_B 0x131
#define BTN_C 0x132
#define BTN_X 0x133
#define BTN_Y 0x134
#define BTN_Z 0x135
#define BTN_TL 0x136
#define BTN_TR 0x137
#define BTN_TL2 0x138
#define BTN_TR2 0x139
#define BTN_SELECT 0x13a
#define BTN_START 0x13b
#define BTN_MODE 0x13c
#define BTN_THUMBL 0x13d
#define BTN_THUMBR 0x13e
* add support to remap keys
* allow mouse emulation
* allow swapping of dpad and analog axis, so that dpad is first instead of last
* merge this thing with Pingus Input handling to get a very flexible framework?
* ...
[[ InputDrv ]]
==============
Needed features:
================
* stick to mouse
* relative-axis (throttle doesn't flip back, a stick does, need to handle that)
* trigger to button
* dpad to axis
* dpad to button
* inversal of axis
* soft-axis for dpad
(controller
(button (name "BTN_X") ;; X and Y send out BTN_X events
(device (xbox360-button "Y")
(xbox360-button "X")))
(button (name "BTN_A")
(device (inverse (xbox360-button "Y"))))
(axis (name "ABS_X")
...
)
Controls:
=========
* invert button
* toggle button
* autofire button
* invert axis
* deadzone axis
* split axis (gas/break)
* join axis (trigger -> zaxis)
* non-linear axis (gamma or so)
[[ Xorg Input Hotplug ]]
========================
Not available in Ubuntu and still rough, would work via Dbus, see:
http://www.x.org/wiki/XInputHotplug
d-feet is a Dbus debuging/viewing tool.
Example Dbus stuff:
-------------------
dbus-send --system --type=method_call --print-reply --dest=org.x.config.display0 /org/x/config/0 org.x.config.input.remove uint32:5
Error org.freedesktop.DBus.Error.ServiceUnknown: The name org.x.config.display0 was not provi
Doing polling seems to lose some events
dbus-send --dest=org.gnome.ScreenSaver
/
dbus-send --dest=org.freedesktop.ExampleName \
/org/freedesktop/sample/object/name
org.freedesktop.ExampleInterface.ExampleMethod \
int32:47 string:'hello world' double:65.32 \
array:string:"1st item","next item","last item" \
dict:string:int32:"one",1,"two",2,"three",3 \
variant:int32:-8 \
objpath:/org/freedesktop/sample/object/name
dbus-send --dest=org.x.config.display0 \
/org/x/config/0
org.x.config.input.add
dbus-send --dest=org.x.config.display0 /org/x/config/0 org.x.config.input.remove int32:5
dbus-send \
--dest=org.x.config.display0 \
org.freedesktop.DBus.Introspectable \
org.freedesktop.DBus.Introspectable.Introspect \
Wine Force Feedback:
[ingo@duo:~/projects/xboxdrv/trunk/experimental]$ ~/bin/tombraider-anniversary
ERROR: Module xpad does not exist in /proc/modules
USB Device: 003:002
Controller: "Microsoft Xbox 360 Controller" (idVendor: 0x045e, idProduct: 0x028e)
Controller Type: Xbox360
Deadzone: 0
Rumble Debug: off
Rumble Speed: left: 0 right: 0
LED Status: auto
ButtonMap: none
AxisMap: none
Square Axis: no
RelativeAxisMap: none
AutoFireMap: none
ForceFeedback: enabled
Starting with uinput... done
Your Xbox/Xbox360 controller should now be available as:
/dev/input/js1
/dev/input/event10
Press Ctrl-c to quit
Unknown: len: 3 data: 0x02 0x03 0x00
user.reg is not a valid registry file
fixme:ole:CoInitializeSecurity ((nil),-1,(nil),(nil),0,3,(nil),0,(nil)) - stub!
err:ole:CoGetClassObject class {9a5ea990-3034-4d6f-9128-01f3c61022bc} not registered
err:ole:CoGetClassObject class {9a5ea990-3034-4d6f-9128-01f3c61022bc} not registered
err:ole:create_server class {9a5ea990-3034-4d6f-9128-01f3c61022bc} not registered
fixme:ole:CoGetClassObject CLSCTX_REMOTE_SERVER not supported
err:ole:CoGetClassObject no class object {9a5ea990-3034-4d6f-9128-01f3c61022bc} could be created for context 0x17
fixme:win:EnumDisplayDevicesW ((null),0,0x33ef54,0x00000000), stub!
fixme:system:SystemParametersInfoW Unimplemented action: 59 (SPI_SETSTICKYKEYS)
fixme:d3d:IWineD3DDeviceImpl_EvictManagedResources (0x140a78) : stub
fixme:d3d:IWineD3DDeviceImpl_EvictManagedResources (0x140a78) : stub
fixme:d3d:IWineD3DDeviceImpl_EvictManagedResources (0x140a78) : stub
fixme:d3d:IWineD3DDeviceImpl_EvictManagedResources (0x140a78) : stub
fixme:d3d:IWineD3DDeviceImpl_EvictManagedResources (0x140a78) : stub
fixme:d3d:IWineD3DDeviceImpl_EvictManagedResources (0x140a78) : stub
err:ole:CoGetClassObject class {4590f811-1d3a-11d0-891f-00aa004b2e24} not registered
err:ole:CoGetClassObject no class object {4590f811-1d3a-11d0-891f-00aa004b2e24} could be created for context 0x1
err:ole:CoGetClassObject class {4590f811-1d3a-11d0-891f-00aa004b2e24} not registered
err:ole:CoGetClassObject no class object {4590f811-1d3a-11d0-891f-00aa004b2e24} could be created for context 0x1
err:ole:CoGetClassObject class {4590f811-1d3a-11d0-891f-00aa004b2e24} not registered
err:ole:CoGetClassObject no class object {4590f811-1d3a-11d0-891f-00aa004b2e24} could be created for context 0x1
err:ole:CoGetClassObject class {4590f811-1d3a-11d0-891f-00aa004b2e24} not registered
err:ole:CoGetClassObject no class object {4590f811-1d3a-11d0-891f-00aa004b2e24} could be created for context 0x1
err:ole:CoGetClassObject class {4590f811-1d3a-11d0-891f-00aa004b2e24} not registered
err:ole:CoGetClassObject no class object {4590f811-1d3a-11d0-891f-00aa004b2e24} could be created for context 0x1
err:ole:CoGetClassObject class {4590f811-1d3a-11d0-891f-00aa004b2e24} not registered
err:ole:CoGetClassObject no class object {4590f811-1d3a-11d0-891f-00aa004b2e24} could be created for context 0x1
err:ole:CoGetClassObject class {4590f811-1d3a-11d0-891f-00aa004b2e24} not registered
err:ole:CoGetClassObject no class object {4590f811-1d3a-11d0-891f-00aa004b2e24} could be created for context 0x1
fixme:dinput:JoystickAImpl_SetProperty DIPROP_AUTOCENTER(0)
fixme:dinput:LinuxInputEffectImpl_Download Could not upload effect. Assuming a disconnected device.
err:ole:CoGetClassObject class {4590f811-1d3a-11d0-891f-00aa004b2e24} not registered
err:ole:CoGetClassObject no class object {4590f811-1d3a-11d0-891f-00aa004b2e24} could be created for context 0x1
err:ole:CoGetClassObject class {4590f811-1d3a-11d0-891f-00aa004b2e24} not registered
err:ole:CoGetClassObject no class object {4590f811-1d3a-11d0-891f-00aa004b2e24} could be created for context 0x1
Headset: nonetype: 257 code: 1 value: 0
XXX FF_UPLOAD: rumble upload: effect_id: 0 effect_type: 82
EFFECT: FF_CONSTANT level: 0 envelope: attack_length: 16 attack_level: 32767 fade_length: 16 fade_level: 32767
--------------------------------
type: 21 code: 0 value: 1
EV_FF: playing effect: effect_id = 0 value: 1
--------------------------------
type: 257 code: 1 value: 0
XXX FF_UPLOAD: rumble upload: effect_id: 0 effect_type: 82
EFFECT: FF_CONSTANT level: 26880 envelope: attack_length: 16 attack_level: 32767 fade_length: 16 fade_level: 32767
--------------------------------
fixme:dinput:joy_polldev joystick cannot handle type 21 event (code 0)
fixme:dinput:joy_polldev joystick cannot handle type 21 event (code 0)
type: 21 code: 0 value: 1
EV_FF: playing effect: effect_id = 0 value: 1
--------------------------------
type: 257 code: 1 value: 0
XXX FF_UPLOAD: rumble upload: effect_id: 0 effect_type: 82
EFFECT: FF_CONSTANT level: 26880 envelope: attack_length: 16 attack_level: 32767 fade_length: 16 fade_level: 32767
--------------------------------
fixme:dinput:joy_polldev joystick cannot handle type 21 event (code 0)
type: 21 code: 0 value: 1
EV_FF: playing effect: effect_id = 0 value: 1
--------------------------------
type: 257 code: 1 value: 0
XXX FF_UPLOAD: rumble upload: effect_id: 0 effect_type: 82
EFFECT: FF_CONSTANT level: 26880 envelope: attack_length: 16 attack_level: 32767 fade_length: 16 fade_level: 32767
--------------------------------
fixme:dinput:joy_polldev joystick cannot handle type 21 event (code 0)
type: 21 code: 0 value: 1
EV_FF: playing effect: effect_id = 0 value: 1
--------------------------------
type: 257 code: 1 value: 0
XXX FF_UPLOAD: rumble upload: effect_id: 0 effect_type: 82
EFFECT: FF_CONSTANT level: 26880 envelope: attack_length: 16 attack_level: 32767 fade_length: 16 fade_level: 32767
--------------------------------
fixme:dinput:joy_polldev joystick cannot handle type 21 event (code 0)
type: 21 code: 0 value: 1
EV_FF: playing effect: effect_id = 0 value: 1
--------------------------------
type: 257 code: 1 value: 0
XXX FF_UPLOAD: rumble upload: effect_id: 0 effect_type: 82
EFFECT: FF_CONSTANT level: 26880 envelope: attack_length: 16 attack_level: 32767 fade_length: 16 fade_level: 32767
--------------------------------
fixme:dinput:joy_polldev joystick cannot handle type 21 event (code 0)
type: 21 code: 0 value: 1
EV_FF: playing effect: effect_id = 0 value: 1
--------------------------------
type: 257 code: 1 value: 0
XXX FF_UPLOAD: rumble upload: effect_id: 0 effect_type: 82
EFFECT: FF_CONSTANT level: 26880 envelope: attack_length: 16 attack_level: 32767 fade_length: 16 fade_level: 32767
--------------------------------
fixme:dinput:joy_polldev joystick cannot handle type 21 event (code 0)
type: 21 code: 0 value: 1
EV_FF: playing effect: effect_id = 0 value: 1
--------------------------------
type: 257 code: 1 value: 0
XXX FF_UPLOAD: rumble upload: effect_id: 0 effect_type: 82
EFFECT: FF_CONSTANT level: 26880 envelope: attack_length: 16 attack_level: 32767 fade_length: 16 fade_level: 32767
--------------------------------
fixme:dinput:joy_polldev joystick cannot handle type 21 event (code 0)
type: 21 code: 0 value: 1
EV_FF: playing effect: effect_id = 0 value: 1
--------------------------------
type: 257 code: 1 value: 0
XXX FF_UPLOAD: rumble upload: effect_id: 0 effect_type: 82
EFFECT: FF_CONSTANT level: 26880 envelope: attack_length: 16 attack_level: 32767 fade_length: 16 fade_level: 32767
--------------------------------
fixme:dinput:joy_polldev joystick cannot handle type 21 event (code 0)
fixme:dinput:joy_polldev joystick cannot handle type 21 event (code 0)
type: 21 code: 0 value: 1
EV_FF: playing effect: effect_id = 0 value: 1
--------------------------------
type: 21 code: 0 value: 0
EV_FF: playing effect: effect_id = 0 value: 0
--------------------------------
type: 21 code: 0 value: 0
EV_FF: playing effect: effect_id = 0 value: 0
--------------------------------
type: 257 code: 2 value: 0
FF_ERASE: rumble erase: effect_id = 0
--------------------------------
fixme:dinput:LinuxInputEffectImpl_Download Could not upload effect. Assuming a disconnected device.
fixme:dinput:joy_polldev joystick cannot handle type 21 event (code 0)
fixme:dinput:LinuxInputEffectImpl_Download Could not upload effect. Assuming a disconnected device.
fixme:dinput:LinuxInputEffectImpl_Download Could not upload effect. Assuming a disconnected device.
fixme:dinput:LinuxInputEffectImpl_Download Could not upload effect. Assuming a disconnected device.
fixme:dinput:joy_polldev joystick cannot handle type 21 event (code 0)
fixme:dinput:LinuxInputEffectImpl_Download Could not upload effect. Assuming a disconnected device.
fixme:dinput:joy_polldev joystick cannot handle type 21 event (code 0)
fixme:dinput:LinuxInputEffectImpl_Download Could not upload effect. Assuming a disconnected device.
fixme:dinput:LinuxInputEffectImpl_Download Could not upload effect. Assuming a disconnected device.
fixme:dinput:LinuxInputEffectImpl_Download Could not upload effect. Assuming a disconnected device.
fixme:dinput:joy_polldev joystick cannot handle type 21 event (code 0)
wine: Unhandled page fault on read access to 0x35545844 at address 0x35545844 (thread 0009), starting debugger...
Unhandled exception: page fault on read access to 0x35545844 in 32-bit code (0x35545844).
Register dump:
CS:0073 SS:007b DS:007b ES:007b FS:0033 GS:003b
EIP:35545844 ESP:0033f2f8 EBP:0033f324 EFLAGS:00210206( - 00 - RIP1)
EAX:12b895d0 EBX:7c08fff4 ECX:116fe938 EDX:1294b6e8
ESI:12c59178 EDI:116fe920
Stack dump:
0x0033f2f8: 7c07d52a 12b895d0 b7ed0094 116fe938
0x0033f308: 0033f344 0033f344 b7ed0189 7c07d45b
0x0033f318: 7c08fff4 116fe920 00000000 0033f344
0x0033f328: 7c06f45f 116fe920 00000001 12b895d0
0x0033f338: 00000011 03a23650 039fbac0 03a2369c
0x0033f348: 00412e8a 116fe920 039fbbb0 03a23650
Backtrace:
=>1 0x35545844 (0x0033f324)
2 0x7c06f45f IDirectInputDevice2AImpl_Release+0x4f() in dinput (0x0033f344)
3 0x00412e8a in tra (+0x12e8a) (0x03a2369c)
4 0x00000000 (0x00000000)
0x35545844: addb %al,0x0(%eax)
Modules:
Module Address Debug info Name (88 modules)
PE 400000- c5b000 Export tra
PE 18000000-18033000 Deferred binkw32
ELF 7b800000-7b93d000 Deferred kernel32<elf>
# EOF #