Big picture + F710 (wine 1.7.1)

Questions about Wine on Linux
Locked
cherry
Newbie
Newbie
Posts: 1
Joined: Wed Sep 04, 2013 3:34 am

Big picture + F710 (wine 1.7.1)

Post by cherry »

Greetings,

Hopefully someone might be able to shed some light or assist me with this problem.

I've been struggling to find a solution to getting Steam Big Picture mode and my Logitech F710 to launch or be detected in a number of titles using wine 1.7.1.

I'm not sure whether this is already an issue or simply a feature not yet capable however any help would be delightful.

After a fresh install of steam using winearch=win32 and several testing prefixes, I receive the following errors when launching Big Picture mode:

Code: Select all

DWrite.dll missing, Check your Windows/DirectX installation.
followed by (in sequence):

Code: Select all

d3d10_1.dll missing, Check your Windows/DirectX installation.

Code: Select all

d2d1.dll missing, Check your Windows/DirectX installation.

Code: Select all

CreatePanoramaUIEngine failed for big picture.
Terminal output is very minimal and doesn't really feature anything helpful.
After several failed attempts including installing all required *.dlls in various sequences, I've now run out of ideas to get this working.

The F710 controller works flawlessly under native however I'm keen to hit up some indie games and titles that are not native.
When launching the game outside of big picture mode the controller is not picked up as a peripheral to use, which in turn leads me to think this is not possible to use without big picture.

Any help is greatly appreciated.

Cheers.

----
archlinux x86_64
3.10.10-1-ARCH
wine 1.7.1
User avatar
dimesio
Moderator
Moderator
Posts: 13208
Joined: Tue Mar 25, 2008 10:30 pm

Re: Big picture + F710 (wine 1.7.1)

Post by dimesio »

Code: Select all

DWrite.dll missing, Check your Windows/DirectX installation.
http://bugs.winehq.org/show_bug.cgi?id=31374
When launching the game outside of big picture mode the controller is not picked up as a peripheral to use,
File a bug.
Arkhelion
Newbie
Newbie
Posts: 4
Joined: Mon Oct 21, 2013 12:03 pm

Re: Big picture + F710 (wine 1.7.1)

Post by Arkhelion »

Greetings,

I have a similar issue and I'd like to eventually file a bug, but I don't have a lot of info to provide as is.

I have a clean prefix under wine 1.7.4 with winearch=32 on a gentoo64 system. I installed steam and launched it with -no-dwrite in order to have text (launching it with dwrite doesn't change anything in that issue).

I can tell that the F710 controller is recognised because in control > game controllers I can see the device and check that it behaves correctly. In steam I can see generic Xbox controller in the system information, but when I launch any game the device just seems to be ignored (Assault Android Cactus which works flawlessly native and in Windows don't react to any controller input, only keyboard), I tried that with Remember Me and Assault Android Cactus but it seems to be with every game, no controller listed in game options).

The problem is that I can't find any message in console output that relates to a controller issue. So I may have too few information to file a bug about that issue.

I could really use some guidelines to find out how to get more information.
oiaohm
Level 8
Level 8
Posts: 1020
Joined: Fri Feb 29, 2008 2:54 am

Re: Big picture + F710 (wine 1.7.1)

Post by oiaohm »

http://wiki.winehq.org/UsefulRegistryKeys directinput section Arkhelion may be some use.

WINEDEBUG=+dinput wine game.exe 2>&1 | grep joydev_enum_device'

This will find it wine is listing it as a joystick.

http://www.omgubuntu.co.uk/2013/07/deal ... -in-ubuntu

But being a F710 joystick there is every chance its not working due to driver issue. Yes the fun of Linux some xbox controllers perfectly some fail horible and strangely with the kernel xbox driver. Yes there are two drivers one in userspace and one in kernel space for xbox controllers.
Arkhelion
Newbie
Newbie
Posts: 4
Joined: Mon Oct 21, 2013 12:03 pm

Re: Big picture + F710 (wine 1.7.1)

Post by Arkhelion »

Code: Select all

WINEDEBUG=+dinput WINEPREFIX=~/.local/share/wineprefixes/steam/ wine "C:\Program Files\Steam\Steam.exe" -no-dwrite 2>&1|grep joydev_enum_device
trace:dinput:joydev_enum_deviceW Enumerating the linux Joystick device: /dev/input/js0 (Generic X-Box pad (js))
trace:dinput:joydev_enum_deviceW Enumerating the linux Joystick device: /dev/input/js0 (Generic X-Box pad (js))
trace:dinput:joydev_enum_deviceW Enumerating the linux Joystick device: /dev/input/js0 (Generic X-Box pad (js))
1st one and second one are when launching steam and third one when game launched.

About the drivers :

Code: Select all

$ zgrep XPAD /proc/config.gz
CONFIG_JOYSTICK_XPAD=m
CONFIG_JOYSTICK_XPAD_FF=y
CONFIG_JOYSTICK_XPAD_LEDS=y
It's loaded :

Code: Select all

lsmod|grep xpad
xpad                    9856  0 
ff_memless              3136  1 xpad
About userspace driver, were you mentioning this one ?
http://pingus.seul.org/~grumbel/xboxdrv/

If so, I'll try it.
Arkhelion
Newbie
Newbie
Posts: 4
Joined: Mon Oct 21, 2013 12:03 pm

Re: Big picture + F710 (wine 1.7.1)

Post by Arkhelion »

I might have a clue (or a totally wrong thought).

Steam auto-installs VC9, DirectX9 and probably dotnet when launching the game. Using the builtin control.exe, I can see the controller in the game controllers section but if I get native dinput with winetricks, then it disappears.

My clue would be that maybe the game uses native dinput DLL as it installed it and not using builtin (even when I explicitely put builtin in winecfg).

I'm still surprised that native dinput can't see my controller (as it works flawlessly in windows without any driver install IIRC) but I'd obviously rather use builtin, so the fact that they work in control.exe is a good point. How can I track which dinput DLL is used when the game is launched ?

If I try to see console output of a game with dinput debug flag I can see an awful lot of :

Code: Select all

trace:dinput:IDirectInputDevice2WImpl_GetDeviceData (0x188798) 0x1d1fb74 -> 0x1d1fb44(1) x20, 0x00000000
trace:dinput:IDirectInputDevice2WImpl_GetDeviceData Returning 0 events queued
If I catch full output, I can see specific portion of output when launching wineserver here :

Code: Select all

trace:dinput:find_joydevs Found a joystick on /dev/input/event16: Generic X-Box pad (event) ({9e573eda-7734-11d2-8d4a-23903fb6bdf7})
trace:dinput:find_joydevs  ... with force feedback
trace:dinput:find_joydevs  ... with axis 0: cur=128, min=-32768, max=32767, fuzz=16, flat=128
trace:dinput:find_joydevs  ... with axis 1: cur=27884, min=-32768, max=32767, fuzz=16, flat=128
trace:dinput:find_joydevs  ... with axis 2: cur=0, min=0, max=255, fuzz=0, flat=0
trace:dinput:find_joydevs  ... with axis 3: cur=899, min=-32768, max=32767, fuzz=16, flat=128
trace:dinput:find_joydevs  ... with axis 4: cur=-643, min=-32768, max=32767, fuzz=16, flat=128
trace:dinput:find_joydevs  ... with axis 5: cur=0, min=0, max=255, fuzz=0, flat=0
trace:dinput:find_joydevs  ... with axis 16: cur=0, min=-1, max=1, fuzz=0, flat=0
trace:dinput:find_joydevs  ... with axis 17: cur=0, min=-1, max=1, fuzz=0, flat=0
and here:

Code: Select all

trace:dinput:find_joystick_devices Found a joystick on /dev/input/js0: Generic X-Box pad (js)
  with 8 axes and 11 buttons
trace:dinput:joydev_enum_deviceW Enumerating the linux Joystick device: /dev/input/js0 (Generic X-Box pad (js))
I can tell that the device changes something when launching the actual game because it kinda changes its output (not really sure about what it means though) :

Code: Select all

<repeat ad nauseam>
trace:dinput:IDirectInputDevice2WImpl_GetDeviceData (0x187940) 0x1d1fb74 -> 0x1d1fb44(1) x20, 0x00000000
trace:dinput:IDirectInputDevice2WImpl_GetDeviceData Returning 0 events queued
trace:dinput:IDirectInputDevice2WImpl_GetDeviceData (0x187940) 0x1d1fc14 -> 0x1d1fbe4(1) x20, 0x00000000
<repeat ad nauseam again>
And after that if I hit start on the controller I get that:

Code: Select all

trace:dinput:LL_hook_proc calling 0x187940->0xf3ff41c0 (200 b2ae708)
trace:dinput:dinput_mouse_hook msg 200 @ (740 282)
trace:dinput:queue_event  queueing -11 at offset 0 (queue head 43 / size 1023)
trace:dinput:_dump_mouse_state (X: -20 Y: 76 Z: 0 B0: 00 B1: 00 B2: 00 B3: 00 B4: 00)
trace:dinput:queue_event  queueing -7 at offset 4 (queue head 44 / size 1023)
trace:dinput:LL_hook_proc calling 0x187940->0xf3ff41c0 (200 b2ae708)
trace:dinput:dinput_mouse_hook msg 200 @ (740 282)
The questions I'm looking for answers here are:
- How can I know if it's using builtin or native DLL (as Steam installs DirectX package when launching the game)?
- What information must I put in a bug report about this issue?
oiaohm
Level 8
Level 8
Posts: 1020
Joined: Fri Feb 29, 2008 2:54 am

Re: Big picture + F710 (wine 1.7.1)

Post by oiaohm »

trace:dinput would not be appaering if native dll was running. So we know its the builtin being used.

Yes using native windows dinput does break things. It expects to be able to talk to Windows drivers. So expects far more complete answers than linux joystick drivers are min required to answer. So xbox driver in kernel that you are using will not answer enough for native dinput to work. Builtin dinput is more compadible with Linux joysticks since it was designed for how little they like to provide about themselves. So mostly dinput native does not work. Native dinput on windows in fact is using a built in Windows driver that provides more details.

Wine mostly does not emulate the driver level.

Only thing I can suggest before doing a bug report is install the userspace xbox driver and attempt that. Could be something about the kernel xbox drivers reporting to userspace again.

Arkhelion I am not a master of dinput.

Your last post would be enough to start a bug report. Of course developers might ask you to get other things. Do remember to connect bug to applicaiton in appdb. Lot of people don't put enough anyhow.

Min would be joystick tried and Linux drivers(ixbox in kernel is the same version as the kernel) and what is not happening. Bonus is those traces. And the fact you are sure you are using built in not native.

Wine project in fact due to legal limitations will not be attempting ever to make native dinput work intentionally.
http://wiki.winehq.org/winetricks#winetricks_and_bugs So submitting a bug report that the native does not work and wanting that fix would be just deleted.

Arkhelion yes using native may get around some problems. But when it comes to legal limitations defects with native parts cannot be fixed. Yes more native installed in fact equals more problems of the unfixable kind.

http://pingus.seul.org/~grumbel/xboxdrv/ yes this is the userspace one I was refering to. Last restort the remaping to keyboard and mouse actions of xboxdrv can get around failures of wine dinput in the short term. if you have to restort to xboxdrv remapping it is a bug report on wine.

Yes this works under windows is the first line of fear. Wine old name was Wine Is Not an Emulator. Wine is very much a edition of Windows in its own right. Same issues kinds of strange issues happen if you take dlls from XP and put into Vista or vice verse as you had with dinput and disappearing joysticks.
Arkhelion
Newbie
Newbie
Posts: 4
Joined: Mon Oct 21, 2013 12:03 pm

Re: Big picture + F710 (wine 1.7.1)

Post by Arkhelion »

First,

Thanks for all your answers, it's been very helpful.
I just wanted to be precise here, I do _not_ want to get native to work, I want to get builtin to work obviously. My point in my former post was that I was afraid it would use native as the game installs official DirectX package in my prefix when launched via steam and I can't avoid it. But if the trace shows it uses builtin then I'm all good (and I wanna avoid posting a bug using native DLL because I know it's useless to the WINE project).

About your other suggestion, I tried xboxdrv userspace drivers and apart from this kind of message below, the behavior and output are exactly the same as with kernel drivers, so it's a no go here:

Code: Select all

trace:dinput:find_joydevs Found a joystick on /dev/input/event16: Xbox Gamepad (userspace driver) (event) ({9e573eda-7734-11d2-8d4a-23903fb6bdf7})
trace:dinput:find_joydevs  ... with axis 0: cur=128, min=-32768, max=32767, fuzz=0, flat=0
trace:dinput:find_joydevs  ... with axis 1: cur=-129, min=-32768, max=32767, fuzz=0, flat=0
trace:dinput:find_joydevs  ... with axis 3: cur=899, min=-32768, max=32767, fuzz=0, flat=0
trace:dinput:find_joydevs  ... with axis 4: cur=-643, min=-32768, max=32767, fuzz=0, flat=0
trace:dinput:find_joydevs  ... with axis 9: cur=0, min=0, max=255, fuzz=0, flat=0
trace:dinput:find_joydevs  ... with axis 10: cur=0, min=0, max=255, fuzz=0, flat=0
trace:dinput:find_joydevs  ... with axis 16: cur=0, min=-1, max=1, fuzz=0, flat=0
trace:dinput:find_joydevs  ... with axis 17: cur=0, min=-1, max=1, fuzz=0, flat=0
I can try key remapping but that's not a solution (and as xboxdrv package is only openRC compatible on gentoo, I can't maintain it on a daily basis because my system is systemd-based - well, I could, but I'd rather use official kernel drivers anyway) and it would not help the WINE project, which is what I want here. I don't care if I can't use this game in WINE, because one of them works perfectly natively in Linux, and for the other, I have already finished it... keyboard only. But I'd like to make my controller work in WINE for future gaming experience.

Anyway, thanks for the support, I'll open a bug report tomorrow (or friday, if I need more time)
Locked