dinput_test works but WINEDEBUG shows no joystick for game?

Open forum for end-user questions about Wine. Before asking questions, check out the Wiki as a first step.
Forum Rules
Locked
gnivler
Level 3
Level 3
Posts: 54
Joined: Wed May 07, 2008 9:30 pm

dinput_test works but WINEDEBUG shows no joystick for game?

Post by gnivler »

This is a continuation/evolution of what I've been trying to do, get some response from my controller(s) in Guitar Hero 3. I compiled wine (with some help :) and manually copied the dinput_test.exe.so file into my /usr/lib32/wine directory and made it's permissions match the other exe.so files (644). I then run the test to see if dinput is seeing/reacting to my controller, and it seems to. I then run GH3 with +dinput on debug and don't get a single line mentioning 'joy'. I'm curious if this makes sense, or tells someone what might need to be looked at next. Here's my terminal output (new hostname :)) :

mason@beast:~/c/Program Files/Aspyr/Guitar Hero III$ WINETEST_INTERACTIVE=1 wine dinput_test joystick
joystick.c:408:DLL Version: 5.1.2600.881
joystick.c:386:-- Testing Direct Input Version 0x0700 --
joystick.c:202:---- Xbox Gamepad (userspace driver) ----
joystick.c:335:You have 30 seconds to test all axes, sliders, POVs and buttons
joystick.c:340:
joystick.c:360:X -136 Y -82 Z -63 Rx 54 Ry-2000 Rz-2000 S0 0 S1 0 POV0 -1 POV1 -1 POV2 -1 POV3 -1 B 0 0 0 0 0 0 0 0 0 0 0 0
joystick.c:360:X -136 Y -82 Z -160 Rx 35 Ry-2000 Rz-2000 S0 0 S1 0 POV0 -1 POV1 -1 POV2 -1 POV3 -1 B 1 0 0 0 0 0 0 0 0 0 0 0
joystick.c:360:X -122 Y -75 Z -160 Rx 35 Ry-2000 Rz-2000 S0 0 S1 0 POV0 -1 POV1 -1 POV2 -1 POV3 -1 B 0 0 0 0 0 0 0 0 0 0 0 0
joystick.c:360:X -136 Y -75 Z -160 Rx 35 Ry-2000 Rz-2000 S0 0 S1 0 POV0 -1 POV1 -1 POV2 -1 POV3 -1 B 0 1 0 0 0 0 0 0 0 0 0 0
joystick.c:360:X -129 Y -75 Z -160 Rx 35 Ry-2000 Rz-2000 S0 0 S1 0 POV0 -1 POV1 -1 POV2 -1 POV3 -1 B 0 0 0 0 0 0 0 0 0 0 0 0
joystick.c:360:X -129 Y -82 Z -160 Rx 35 Ry-2000 Rz-2000 S0 0 S1 0 POV0 -1 POV1 -1 POV2 -1 POV3 -1 B 0 0 1 0 0 0 0 0 0 0 0 0
joystick.c:360:X -129 Y -75 Z -160 Rx 35 Ry-2000 Rz-2000 S0 0 S1 0 POV0 -1 POV1 -1 POV2 -1 POV3 -1 B 0 0 0 0 0 0 0 0 0 0 0 0
joystick.c:360:X -129 Y -82 Z -160 Rx 35 Ry-2000 Rz-2000 S0 0 S1 0 POV0 -1 POV1 -1 POV2 -1 POV3 -1 B 0 0 0 1 0 0 0 0 0 0 0 0
joystick.c:360:X -129 Y -75 Z -160 Rx 35 Ry-2000 Rz-2000 S0 0 S1 0 POV0 -1 POV1 -1 POV2 -1 POV3 -1 B 0 0 0 0 0 0 0 0 0 0 0 0
mason@beast:~/c/Program Files/Aspyr/Guitar Hero III$ WINEDEBUG=+dinput wine GH3.exe 2>&1 | grep -i joy (I believe vitamin suggested find_joydev in another post, what I'm basing my smaller match on)
mason@beast:~/c/Program Files/Aspyr/Guitar Hero III$
vitamin
Moderator
Moderator
Posts: 6605
Joined: Sat Feb 23, 2008 2:29 pm

Re: dinput_test works but WINEDEBUG shows no joystick for ga

Post by vitamin »

gnivler wrote:This is a continuation/evolution of what I've been trying to do, get some response from my controller(s) in Guitar Hero 3. I compiled wine (with some help :) and manually copied the dinput_test.exe.so file into my /usr/lib32/wine directory and made it's permissions match the other exe.so files (644). I then run the test to see if dinput is seeing/reacting to my controller, and it seems to. I then run GH3 with +dinput on debug and don't get a single line mentioning 'joy'. I'm curious if this makes sense, or tells someone what might need to be looked at next. Here's my terminal output (new hostname :)) :

mason@beast:~/c/Program Files/Aspyr/Guitar Hero III$ WINETEST_INTERACTIVE=1 wine dinput_test joystick
joystick.c:408:DLL Version: 5.1.2600.881
joystick.c:386:-- Testing Direct Input Version 0x0700 --
joystick.c:202:---- Xbox Gamepad (userspace driver) ----
joystick.c:335:You have 30 seconds to test all axes, sliders, POVs and buttons
joystick.c:340:
joystick.c:360:X -136 Y -82 Z -63 Rx 54 Ry-2000 Rz-2000 S0 0 S1 0 POV0 -1 POV1 -1 POV2 -1 POV3 -1 B 0 0 0 0 0 0 0 0 0 0 0 0
joystick.c:360:X -136 Y -82 Z -160 Rx 35 Ry-2000 Rz-2000 S0 0 S1 0 POV0 -1 POV1 -1 POV2 -1 POV3 -1 B 1 0 0 0 0 0 0 0 0 0 0 0
joystick.c:360:X -122 Y -75 Z -160 Rx 35 Ry-2000 Rz-2000 S0 0 S1 0 POV0 -1 POV1 -1 POV2 -1 POV3 -1 B 0 0 0 0 0 0 0 0 0 0 0 0
joystick.c:360:X -136 Y -75 Z -160 Rx 35 Ry-2000 Rz-2000 S0 0 S1 0 POV0 -1 POV1 -1 POV2 -1 POV3 -1 B 0 1 0 0 0 0 0 0 0 0 0 0
joystick.c:360:X -129 Y -75 Z -160 Rx 35 Ry-2000 Rz-2000 S0 0 S1 0 POV0 -1 POV1 -1 POV2 -1 POV3 -1 B 0 0 0 0 0 0 0 0 0 0 0 0
joystick.c:360:X -129 Y -82 Z -160 Rx 35 Ry-2000 Rz-2000 S0 0 S1 0 POV0 -1 POV1 -1 POV2 -1 POV3 -1 B 0 0 1 0 0 0 0 0 0 0 0 0
joystick.c:360:X -129 Y -75 Z -160 Rx 35 Ry-2000 Rz-2000 S0 0 S1 0 POV0 -1 POV1 -1 POV2 -1 POV3 -1 B 0 0 0 0 0 0 0 0 0 0 0 0
joystick.c:360:X -129 Y -82 Z -160 Rx 35 Ry-2000 Rz-2000 S0 0 S1 0 POV0 -1 POV1 -1 POV2 -1 POV3 -1 B 0 0 0 1 0 0 0 0 0 0 0 0
joystick.c:360:X -129 Y -75 Z -160 Rx 35 Ry-2000 Rz-2000 S0 0 S1 0 POV0 -1 POV1 -1 POV2 -1 POV3 -1 B 0 0 0 0 0 0 0 0 0 0 0 0
mason@beast:~/c/Program Files/Aspyr/Guitar Hero III$ WINEDEBUG=+dinput wine GH3.exe 2>&1 | grep -i joy (I believe vitamin suggested find_joydev in another post, what I'm basing my smaller match on)
mason@beast:~/c/Program Files/Aspyr/Guitar Hero III$
Then this program is not using dinput. Try WINEDEBUG=+joystick
gnivler
Level 3
Level 3
Posts: 54
Joined: Wed May 07, 2008 9:30 pm

Re: dinput_test works but WINEDEBUG shows no joystick for ga

Post by gnivler »

vitamin wrote:
gnivler wrote:This is a continuation/evolution of what I've been trying to do, get some response from my controller(s) in Guitar Hero 3. I compiled wine (with some help :) and manually copied the dinput_test.exe.so file into my /usr/lib32/wine directory and made it's permissions match the other exe.so files (644). I then run the test to see if dinput is seeing/reacting to my controller, and it seems to. I then run GH3 with +dinput on debug and don't get a single line mentioning 'joy'. I'm curious if this makes sense, or tells someone what might need to be looked at next. Here's my terminal output (new hostname :)) :

mason@beast:~/c/Program Files/Aspyr/Guitar Hero III$ WINETEST_INTERACTIVE=1 wine dinput_test joystick
joystick.c:408:DLL Version: 5.1.2600.881
joystick.c:386:-- Testing Direct Input Version 0x0700 --
joystick.c:202:---- Xbox Gamepad (userspace driver) ----
joystick.c:335:You have 30 seconds to test all axes, sliders, POVs and buttons
joystick.c:340:
joystick.c:360:X -136 Y -82 Z -63 Rx 54 Ry-2000 Rz-2000 S0 0 S1 0 POV0 -1 POV1 -1 POV2 -1 POV3 -1 B 0 0 0 0 0 0 0 0 0 0 0 0
joystick.c:360:X -136 Y -82 Z -160 Rx 35 Ry-2000 Rz-2000 S0 0 S1 0 POV0 -1 POV1 -1 POV2 -1 POV3 -1 B 1 0 0 0 0 0 0 0 0 0 0 0
joystick.c:360:X -122 Y -75 Z -160 Rx 35 Ry-2000 Rz-2000 S0 0 S1 0 POV0 -1 POV1 -1 POV2 -1 POV3 -1 B 0 0 0 0 0 0 0 0 0 0 0 0
joystick.c:360:X -136 Y -75 Z -160 Rx 35 Ry-2000 Rz-2000 S0 0 S1 0 POV0 -1 POV1 -1 POV2 -1 POV3 -1 B 0 1 0 0 0 0 0 0 0 0 0 0
joystick.c:360:X -129 Y -75 Z -160 Rx 35 Ry-2000 Rz-2000 S0 0 S1 0 POV0 -1 POV1 -1 POV2 -1 POV3 -1 B 0 0 0 0 0 0 0 0 0 0 0 0
joystick.c:360:X -129 Y -82 Z -160 Rx 35 Ry-2000 Rz-2000 S0 0 S1 0 POV0 -1 POV1 -1 POV2 -1 POV3 -1 B 0 0 1 0 0 0 0 0 0 0 0 0
joystick.c:360:X -129 Y -75 Z -160 Rx 35 Ry-2000 Rz-2000 S0 0 S1 0 POV0 -1 POV1 -1 POV2 -1 POV3 -1 B 0 0 0 0 0 0 0 0 0 0 0 0
joystick.c:360:X -129 Y -82 Z -160 Rx 35 Ry-2000 Rz-2000 S0 0 S1 0 POV0 -1 POV1 -1 POV2 -1 POV3 -1 B 0 0 0 1 0 0 0 0 0 0 0 0
joystick.c:360:X -129 Y -75 Z -160 Rx 35 Ry-2000 Rz-2000 S0 0 S1 0 POV0 -1 POV1 -1 POV2 -1 POV3 -1 B 0 0 0 0 0 0 0 0 0 0 0 0
mason@beast:~/c/Program Files/Aspyr/Guitar Hero III$ WINEDEBUG=+dinput wine GH3.exe 2>&1 | grep -i joy (I believe vitamin suggested find_joydev in another post, what I'm basing my smaller match on)
mason@beast:~/c/Program Files/Aspyr/Guitar Hero III$
Then this program is not using dinput. Try WINEDEBUG=+joystick
I ran some isolating tests and I posted the terminal output here: http://www.mediafire.com/?a2tngxntdlx so you can view the flat text files instead of 40 pages in the forum. The 7z has two text files, each with different WINEDEBUG settings, noted in the file name itself for clarity. One output file is +joystick and the other is -all,+dinput which actually shows quite a bit of dinput debug but it looks like all keyboard and mouse stuff to me only. +joystick didn't spit out anything I recognized, but the output is there for review if you want it.

My command lines were redirected like 'WINEDEBUG=opts wine prog.exe > outputfile.txt 2>&1' which I think is right.

Your expertise on the subject would be great, I'm at a loss of what I can test next, or look at. Thank you
vitamin
Moderator
Moderator
Posts: 6605
Joined: Sat Feb 23, 2008 2:29 pm

Re: dinput_test works but WINEDEBUG shows no joystick for ga

Post by vitamin »

gnivler wrote:
vitamin wrote:
gnivler wrote:This is a continuation/evolution of what I've been trying to do, get some response from my controller(s) in Guitar Hero 3. I compiled wine (with some help :) and manually copied the dinput_test.exe.so file into my /usr/lib32/wine directory and made it's permissions match the other exe.so files (644). I then run the test to see if dinput is seeing/reacting to my controller, and it seems to. I then run GH3 with +dinput on debug and don't get a single line mentioning 'joy'. I'm curious if this makes sense, or tells someone what might need to be looked at next. Here's my terminal output (new hostname :)) :
Well looking at it - this program does not query, enumerate or otherwise ask for joystick. So it must be looking somewhere else (registry?) to see if it's controller present or not. Unfortunately I don't know where exactly can that be.
gnivler
Level 3
Level 3
Posts: 54
Joined: Wed May 07, 2008 9:30 pm

dinput_test works but WINEDEBUG shows no joystick for game?

Post by gnivler »

On Sun, 2008-05-11 at 10:41 -0500, vitamin wrote:
gnivler wrote:
vitamin wrote: gnivler wrote: Well looking at it - this program does not query, enumerate or otherwise ask for joystick. So it must be looking somewhere else (registry?) to see if it's controller present or not. Unfortunately I don't know where exactly can that be.


Ah very cool, it kind of seemed to way to me also, just wasn't even
trying to find a controller. I just booted into Vista (ugh) and used
Process Monitor (sysinternals) to dump all activity from GH3.exe with
the guitar controller working then again with it not even plugged in,
saved each session to a CSV file and I'm looking over a ton of plain
text at the moment. Off on a tangent I wanted to figure out what
xinput1_3.dll is, and wikipedia has an entry for it:

http://en.wikipedia.org/wiki/XInput

It says that it uses a different API and it's specifically for xbox 360
controllers among other things. This is one of the overrides I have to
use to get the game running, along with d3dx9_36. Do you have any idea
what kind of reaction wine would have to this extra dinput library, if
any (assuming that question even makes sense)? Is there any method of
debugging it's activity? I don't understand this stuff very well but I
get the sense this is somehow a core part of the failure. Doing more
research now..
gnivler
Level 3
Level 3
Posts: 54
Joined: Wed May 07, 2008 9:30 pm

Post by gnivler »

Also linked there, a short list of games that actually use xinput lib:
http://en.wikipedia.org/wiki/List_of_XInput_games
vitamin
Moderator
Moderator
Posts: 6605
Joined: Sat Feb 23, 2008 2:29 pm

Re: dinput_test works but WINEDEBUG shows no joystick for ga

Post by vitamin »

gnivler wrote:http://en.wikipedia.org/wiki/XInput

It says that it uses a different API and it's specifically for xbox 360
controllers among other things. This is one of the overrides I have to
use to get the game running, along with d3dx9_36.
Instead of wasting my time you should have said something about that in the beginning. This is 100% not implemented in Wine.
gnivler
Level 3
Level 3
Posts: 54
Joined: Wed May 07, 2008 9:30 pm

dinput_test works but WINEDEBUG shows no joystick for game?

Post by gnivler »

On Sun, 2008-05-11 at 19:37 -0500, vitamin wrote:
gnivler wrote:
http://en.wikipedia.org/wiki/XInput

It says that it uses a different API and it's specifically for xbox 360
controllers among other things. This is one of the overrides I have to
use to get the game running, along with d3dx9_36.
Instead of wasting my time you should have said something about that in the beginning. This is 100% not implemented in Wine.




Hey man, I don't see the need to get angry, I wasn't jerking you around
because I wanted to. I've been polite and as thorough as I'm able to
be. I know how frustrating user support can be too, I've done it for a
long time. I'm sorry for wasting your time, but I can at least tell you
that your time spent on me has actually helped me quite a lot, I've
learned. I didn't have the slightest clue that xinput and dinput are
different things, I'm not an expert on the subject. I have no hard
feelings and hope you can say the same thing, I'd like to continue being
part of this list but I don't want to feel assaulted for honest
mistakes. Apologies if I am misinterpreting or overreacting, I am prone
to doing that too.

On the xinput side of things, I didn't pull up anything on AppDB or
Bugzilla that seemed to hit the topic directly, is that purely something
the devs work on, or can users help in some way?
vitamin
Moderator
Moderator
Posts: 6605
Joined: Sat Feb 23, 2008 2:29 pm

Re: dinput_test works but WINEDEBUG shows no joystick for ga

Post by vitamin »

gnivler wrote:On the xinput side of things, I didn't pull up anything on AppDB or Bugzilla that seemed to hit the topic directly, is that purely something the devs work on, or can users help in some way?
Like I said it is not implemented in Wine at all, except few stubs to prevent calls to unimplemented function crashes. It is totally different then dinput. This is xp+ feature that mostly no programs use. And yeah it is some xbox stuff that made it's way back into windows.
gnivler
Level 3
Level 3
Posts: 54
Joined: Wed May 07, 2008 9:30 pm

dinput_test works but WINEDEBUG shows no joystick for game?

Post by gnivler »

On Sun, 2008-05-11 at 22:06 -0500, vitamin wrote:
gnivler wrote:
On the xinput side of things, I didn't pull up anything on AppDB or Bugzilla that seemed to hit the topic directly, is that purely something the devs work on, or can users help in some way?
Like I said it is not implemented in Wine at all, except few stubs to prevent calls to unimplemented function crashes. It is totally different then dinput. This is xp+ feature that mostly no programs use. And yeah it is some xbox stuff that made it's way back into windows.




Hmm, cool thanks. Yeah, it seems like a back port or something, from
xbox360. go microsoft! lol
chourmovs
Level 3
Level 3
Posts: 80
Joined: Wed Apr 09, 2008 3:11 pm

Post by chourmovs »

Gamelist invoking xinput1_3.dll grow everyday and maybe it's time for us to work on it

I'm neebie with msdn C++ coding and i didn't read a line of wine code

Where do i have to begin ?

Anyone could guide me a bit threw wine input library and code ? or indicate me some interesting documentation ?

Is there someone working on it first ? or in charge of input implementation ?

Thank you
vitamin
Moderator
Moderator
Posts: 6605
Joined: Sat Feb 23, 2008 2:29 pm

Post by vitamin »

chourmovs wrote:Gamelist invoking xinput1_3.dll grow everyday and maybe it's time for us to work on it

I'm neebie with msdn C++ coding and i didn't read a line of wine code

Where do i have to begin ?

Anyone could guide me a bit threw wine input library and code ? or indicate me some interesting documentation ?

Is there someone working on it first ? or in charge of input implementation ?

Thank you
Now we talking :-)

You can find some information about x_input on ... msdn. Also you can look at the samples of the code there or from DXSDK. This is ok to look at that code because this is not the actual dlls, but samples of how to use it.

AFAIK no one working on it. But to be sure you can ask on wine-devel mailing list.
Locked