http://bugs.winehq.org/show_bug.cgi?id=11644
Summary: Crashes in the dinput device.c and joystick.c tests... Product: Wine Version: 0.9.55. Platform: PC OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: directx-dinput AssignedTo: wine-bugs@winehq.org ReportedBy: lionel_debroux@yahoo.fr
I have a Microsoft Digital Media Pro keyboard, USB ID 045e:00b0 (description: http://www.microsoft.com/hardware/mouseandkeyboard/productdetails.aspx?pid=0... ). As can be seen on the photo, this keyboard has a "zoom" slider, which is exposed to the computer as a joystick.
When I'm running the dinput tests with WINEDEBUG=warn+heap, and this keyboard/joystick is plugged in, two tests, device.c and joystick.c, outright crash, due to accesses at address 0x55555555 (magic value indicating an access to uninitialized allocated memory). These two tests have been consistently crashing since around november 2007, when I started running "make test".
I mentioned this problem as part of bug #9916 ("make test usually fails"): http://bugs.winehq.org/show_bug.cgi?id=9916#c27 At first, I tried debugging the issue on my own: * I have already submitted a patch for improved traces in dinput, which Alexandre committed as efc81cb233538ba72198ea9b80b160abfa0e8ecc on 2008-01-02; * I added a couple of printf (number of axes, number of buttons) to alloc_device in dlls/dinput/joystick_linux.c. but I came up to nothing interesting.
Several interesting facts about the keyboard: * on this computer, a laptop Core 2 Duo @ 2 GHz with 2 GB of RAM running SimplyMEPIS 7.0 (kernel 2.6.22.x), the keyboard has 37 axes and 37 buttons (?!); * on another computer, a laptop Pentium 4 @ 2.6 GHz with 512 MB of RAM running SimplyMEPIS 6.5 (kernel 2.6.15.x), the keyboard has 37 axes and 7 buttons (?!); * on both computers, I have to unplug the keyboard if I want games such as PlanetPenguinRacer and Nexuiz to be playable. Otherwise, the penguin strongly drifts leftwards (PPR), or the weapon drifts up-leftwards very fast (Nexuiz).
=> there's certainly another problem outside of Wine (the kernel, since Wine uses the kernel API, and the number of buttons reported has changed between 2.6.15.x and 2.6.22.x ?). But still, the dinput implementation should try not to crash, even if it's fed up incorrect data - that's the reason of me opening this bug here.
To help debugging the Wine part of the issue, I can * try patches that would be provided to me; * run executables on Wine and native Windows. Both laptops still have the Windows XP (1 Home, 1 Pro) that was on the HD when I bought the computers. I never installed the suite of Microsoft programs that would enable the Zoom slider. (I currently have nothing installed for compiling native Windows executables, be it mingw or MSVC + PSDK - but I could probably ask a friend to compile programs for me on MSVC 2008 + PSDK)
To help debugging the other part of the issue, where should I write ?