xboxdrv/TODO
2011-01-20 22:37:36 +01:00

828 lines
30 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
Ubuntu Package:
===============
add libudev, libusb-1.0 to builddependencies
# Ubuntu 10.10
$ cd ../debian/
$ git checkout master
$ git-import-orig -u 0.6.4 ~/projects/xboxdrv/htdocs/xboxdrv-linux-0.6.4.tar.bz2
$ dch -v "0.6.4-1" "xboxdrv 0.6.4 release"
$ git-buildpackage --git-no-create-orig --git-tag --git-builder="debuild -S"
$ sudo pbuilder --build ../xboxdrv_0.6.4-2.dsc
$ dput my-ppa ../xboxdrv_0.6.4-2_source.changes
# Ubuntu 10.04 (LTS)
$ cd ../debian/
$ git checkout master-lts
$ git merge master
$ dch -b -v "0.6.4-1~lucid1" --distribution lucid "xboxdrv 0.6.4 backport"
$ git-buildpackage --git-no-create-orig --git-debian-branch=master-lts --git-tag --git-builder="debuild -S"
$ sudo pbuilder --build ../xboxdrv_0.6.4-2~lucid1.dsc
$ dput my-ppa ../xboxdrv_0.6.4-2~lucid1_source.changes
Stuff to do before 0.6.5 release:
=================================
* fix inconsistent case in output of --list-all
* turn EnumBox into singleton
* Keysym2Keycode is currently always constructed at startup, even when
not used, construct it on demand
* add --list-keys --list-x11-keys --list-abs --list-rel --list-button --list-axis etc.
- add pretty printer, to make output look nice
* shifted axis without default mapping don't work:
./xboxdrv --ui-axismap lb+x1^cal:-64000:0:64000
in those cases the default mapping for the unshifted axis should be used
* give a warning when the user uses X as axis, instead of X1 (X is the
xbox1 analog button), maybe rename X button to btn_x or xbtn ybtn
* new deadzone code (and probably other) must not use boost::lexical_cast<int> but to_number()
* current deadzone code messes up the diagonals
* input filter need to have priorities
* move set_deadzone, set_deadzone_trigger and other older config
things to later in the app to get it order independed
* might have broken axis and button swapping with recent modifier updates
* document patches in AUTHORS
* modifier syntax:
--stickmap X/Y^rotate:90^square^round
--modifier rotate:X:Y:90^square^round
--modifier rotate=X:Y:90,square,round
[modifier]
rotate:X1:Y1:90
four-way-restrictor:X1:Y1
square:X1:Y1
round:X1:Y1
* add:
--modifier axis-sensitivity:X1=-1.0,Y1=-1.0
--modifier axis-sensitivity:X1=-1.0,Y1=-1.0
--modifier relative-axis:AXIS=NUM^axis-sensitivity:X1=-1.0,Y1=-1.0
little ugly, but should be workable. All those modifiers get appened to a modifier stack.
old modifier options also still work, but are sorted prior to use, to act the same as in older xboxdrv versions
* get rid of uinput.get_uinput(m_code.device_id)->send(EV_ABS, m_code.code, value) turn into:
uinput.send(m_code.device_id, EV_ABS, m_code.code, value);
or
uinput.send_abs(m_code.device_id, m_code.code, value);
* add: void Uinput::send(XboxGenericMsg& msg, int controller_slot = 0);
* have separate UinputConfig's for each controller_slot
* need magic to assign controller to a slot
* might need magic to give device-ids in a slot fashion:
from: 1-ABS_X (second uinput device)
to: 2.1-ABS_X (third uinput device for the second slot)
2.mouse-BTN_MIDDLE ?!
1.-BTN_MIDDLE
1.auto-BTN_MIDDLE
auto-BTN_MIDDLE
* add analog emulation for button (i.e. the longer its pressed, the higher the value)
* uinput must be made threadsafe
* write/recycle a proper logging class
* improve output on which uinput devices are created
* can't parse:
--ui-axismap x2=2-ABS_X,y2=2-ABS_Y
only this works:
--ui-axismap x2=abs:2-ABS_X,y2=abs:2-ABS_Y
implement better guessing
* make chatpad configurable:
--ui-chatpad a=KEY_A,green+a=SHIFT_X+KEY_B,...
* make sure that XK_??? names work with keys that are
shifted/mode_switched in the keymap, i.e. send key combination
* write UIEvent::from_string()
* absolute mouse pointer can be created with:
abs:1-ABS_X, abs:1-ABS_Y, key:1-BTN_LEFT
document that somewhere, device must not contain REL_X, REL_Y or BTN_A or it won't work in X11
* --four-way-restrictor for the dpad?
- keep whatever direction is pressed first, don't allow walking over diagonals?
- always keep last main direction until another main direction got pressed?
- --disable-dpad-diagonals ur,dl,dl
* better resume/suspend handling?
usb_interface_read() gets a -ENODEV on suspend/resume, could try to
open the connection back up after failure
* add udev support, to watch new controllers getting plugged in, allow
multiple controllers directly in xboxdrv
XboxdrvDaemon
=============
-a FILENAME, --on-attach=FILENAME
Launch EXE when a new controller is connected
-d FILENAME, --on-detach=FILENAME
Launch EXE when a controller is detached
* uinput must be thread safe
* use pretty print to print copyright notice
Stuff to do before 0.6.x release:
=================================
* basic Dualstrike mouse emulation with absolute position:
./xboxdrv-dualstrike \
--ui-clear \
--ui-buttonmap rb=key:1-BTN_LEFT,lb=key:1-BTN_RIGHT \
--ui-axismap x2^cal:-25000:0:25000=abs:1-ABS_X,y2^cal:-25000:0:25000=abs:1-ABS_Y
--ui-axismap x1=KEY_LEFT:KEY_RIGHT,y1=KEY_DOWN:KEY_UP -s
* limit --four-way-restrictor to a single stick, use a standard
logical notatino for a single stick that is rusable for other means:
--four-way-restrictor X-Y,X1-Y2
--four-way-restrictor XY,X2:Y2
--four-way-restrictor X/Y,X2/Y2
Chatpad
=======
Figure out a way to load custom keymaps:
* http://madduck.net/docs/extending-xkb/
* http://stackoverflow.com/questions/1557689/keyboard-remapping-with-more-modifiers
* http://tldp.org/HOWTO/Keyboard-and-Console-HOWTO-15.html
* setxkbmap -device ... -I xboxdrv/xorg/
xkbprint -label name $DISPLAY - | gv -orientation=seascape -
http://www.charvolant.org/~doug/xkb/html/xkb.html
http://pascal.tsu.ru/en/xkb/
http://wiki.debian.org/XStrikeForce/InputHotplugGuide
http://git.madduck.net/v/etc/xsession.git?a=blob;f=.xkb/symbols/madduck;hb=refs/heads/xkb
http://www.x.org/wiki/XKB
http://sourceforge.net/tracker/download.php?group_id=286545&atid=1214224&file_id=361450&aid=2945171
http://www.x.org/docs/XKB/XKBlib.pdf
* find a way to bring back --no-extra-devices, saves typing
http://www.mp3car.com/vbulletin/input-devices/108554-xbox360-chatpad-awsome-backlit-mini-keyboard-16.html#post1256444
* change default axis/button map depending on controller type (tricky as
type is only really known after the axis/buttonmap as already been
build):
* remove guide button from default mapping when its an Xbox1 controller
* guitar handling was changed in a4e1003cba0ff925358ce5ed84d2bf9a728e93d6
* REL_ events could need acceleration support, as mouse emulation is currently kind of imprecise
* write example ini configs (as documented source for user customization):
* default config
* two joysticks with one stick
* all buttons and axis shifted by LB and RB
* evdev joystick to xbox360
* dosbox flightstick emulation
* high sensitivty
* mouse emulation
* give some response curve examples:
# Low sensitivity on the stick when LB is pressed:
--ui-axismap lb+y1^resp:-8000:0:8000=ABS_Y,y1=ABS_Y,lb+x1^resp:-8000:0:8000=ABS_X,x1=ABS_X
* Not implementable as they need more then one axis: squareaxis, four-way-restrictor, dpad-rotation
* "couldn't convert 'ABS_y' to enum, not a member of EV_ABS"
convert all enum names to uppercase? or does that lead to conflicts in the naming?
* support for Playstation button names maybe? cross, triangle, circle, square, R3, L3, ...?
Stuff to do before 0.7.0 release:
=================================
* add extra checks to make sure the evdev buttons and axis given exist on the current device
* make dummy joystick axis creation optional
* --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
* invert y axis on --evdev
* allow --type to work even when --device-by-id is not given
* axis emulation
--ui-axisemulation A:B=ABS_X:5
* 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
* 045e:028f is the play&charge kit, give an error message when somebody tries to use that
* 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) }
* --ui-new must reset events to neutral when switching input mapping (done, but a hack)
* --ui-axismap doesn't work when same key name is given twice, either give warning or fix the issue:
--ui-axismap LT=KEY_A:KEY_A:1
* in INI files allow:
[xboxdrv]
ui-buttonmap = A=BTN_A,B=BTN_B,...
Feature
=======
* 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
Stuff to do before 0.6.0 release:
=================================
* add Playstation3 controller config to examples, convert to ini (done)
needs new config for bluetooth mode
./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
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 #