Controller Axes Not Recognized on Wine with OS X

Questions about Wine on macOS.
Locked
Adge
Level 1
Level 1
Posts: 8
Joined: Sat Oct 24, 2015 8:31 am

Controller Axes Not Recognized on Wine with OS X

Post by Adge »

So I'm using Wineskin to port programs and games to Yosemite. Im using the official wine engines.
I used the wine 1.7.52 to port a game with full controller support to OS X. I tested it with a controller on Windows and it works well without any flaws.

Winetricks the game needs: d3d_36, mfc42, xact

Strangely the Xbox360 controller partially works even without using xinput or dinput. The problem however is, that the axes and the throttle buttons don't work at all. Every two state (on/off) button is recognized properly but there is absolutely no response to the joystic axes and the throttle buttons. Seems the buttons with more than one input value don't work.
I'm using the unofficial tattibogle controller driver which got updated to run properly on OS X and the controller is recognized perfectly by OS X native games which have controller support.

I'm really not a programmer but I think I got something which could be the problem. I read on the UsefulRegistryKeys that you can use "WINEDEBUG=+dinput wine game.exe 2>&1 | grep joydev_enum_device" to get the name of the input device.
As I expected this did not work. The output from the logfile is:
"fixme:dinput:IDirectInputDevice2AImpl_EnumEffects (this=0x7043d00,0x26c1a60,0x2702fb8,0x00000000): stub!"

As I said I'm not a programmer and I don't really know how to solve this problem. First I think it's strange that it prompts it under a fixme. Second this looks to me as wine is searching for the controller or it's input values at the wrong place.

I thought that the controller driver stores the input values at different locations as wine expects them to be. I think that I only have to change a few numbers in wine's source code to get this working but I really don't know where to start.

I searched the whole web but it seems no one ever had a problem like this. I really do want to use the game's native controller support since it's a bit tricky to get the controller to work with a mapper because some keys have to be mapped to one single button on the controller.

It would be very cool if you could help me. I don't know what to do to solve this issue.
Adge
Level 1
Level 1
Posts: 8
Joined: Sat Oct 24, 2015 8:31 am

Re: Controller Axes Not Recognized on Wine with OS X

Post by Adge »

Since I'm stupid, it seems I posted in the wrong thread. I'm really sorry for that inconvenience.

Here is a little update to my problem:
I recognized that the controller is recognized correctly by plain wine from its "Control Panel" Controller.exe. All axes and buttons work. However even if I don't use a wrapper like winebottler or wineskin, the axes and throttlers also stop working in the game.
As a result this cant be an issue caused by the wrapper software itself, and also not a problem caused by the game since it runs perfectly on Windows. Even if I use Parallels (virtual emulation software) and plug in my controller, the game flawlessly responds to the input. I think it also isn't an issue caused by the unofficial driver build since mac native games work with the 360 controller.
So it seems to be a problem caused by the wine engine. I tried several wine engines but many are not even capable of running the game properly.
I'm sure that it's possible to fix this as all the other buttons work. Solving this would be a great success for me since I always had problems with getting controllers to work under wine.
Adge
Level 1
Level 1
Posts: 8
Joined: Sat Oct 24, 2015 8:31 am

Re: Controller Axes Not Recognized on Wine with OS X

Post by Adge »

I can't quite believe that no one ever had problems with getting controllers to work on OS X :D
lahmbi5678
Level 7
Level 7
Posts: 823
Joined: Thu Aug 27, 2009 6:23 am

Re: Controller Axes Not Recognized on Wine with OS X

Post by lahmbi5678 »

Hi,

I'm not a Mac user, so probably won't be much of a help. Still there are some things, I'd advise you to try.

Please run wine and your game in a terminal, post the output (if it's not too long). Can you test your game on linux and wine? Maybe the issue is Mac specific.

If there are no obvious errors, you may consider filing a bug in wine's bugzilla.
Adge
Level 1
Level 1
Posts: 8
Joined: Sat Oct 24, 2015 8:31 am

Re: Controller Axes Not Recognized on Wine with OS X

Post by Adge »

Thank you for your reply.

Output log:

Code: Select all

fixme:process:SetProcessShutdownParameters (00000380, 00000000): partial stub.
fixme:ole:RemUnknown_QueryInterface No interface for iid {00000019-0000-0000-c000-000000000046}
fixme:heap:RtlSetHeapInformation 0x0 1 0x0 0 stub
err:winediag:SECUR32_initNTLMSP ntlm_auth was not found or is outdated. Make sure that ntlm_auth >= 3.0.25 is in your path. Usually, you can find it in the winbind package of your distribution.
fixme:mountmgr:harddisk_ioctl returning zero-filled buffer for IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS
fixme:mountmgr:harddisk_ioctl Unsupported ioctl 74080 (device=7 access=1 func=20 method=0)
fixme:mountmgr:harddisk_ioctl Unsupported ioctl 2d1400 (device=2d access=0 func=500 method=0)
fixme:mountmgr:harddisk_ioctl Unsupported ioctl 74080 (device=7 access=1 func=20 method=0)
err:winediag:SECUR32_initNTLMSP ntlm_auth was not found or is outdated. Make sure that ntlm_auth >= 3.0.25 is in your path. Usually, you can find it in the winbind package of your distribution.
fixme:mountmgr:harddisk_ioctl returning zero-filled buffer for IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS
fixme:mountmgr:harddisk_ioctl Unsupported ioctl 74080 (device=7 access=1 func=20 method=0)
fixme:mountmgr:harddisk_ioctl Unsupported ioctl 2d1400 (device=2d access=0 func=500 method=0)
fixme:mountmgr:harddisk_ioctl Unsupported ioctl 74080 (device=7 access=1 func=20 method=0)
fixme:advapi:GetCurrentHwProfileA (0x33ef40) semi-stub
err:winediag:wined3d_dll_init The GLSL shader backend has been disabled. You get to keep all the pieces if it breaks.
err:winediag:init_driver_info Invalid GPU override 10de:0fd5 specified, ignoring.
fixme:win:EnumDisplayDevicesW ((null),0,0x33d33c,0x00000000), stub!
err:winediag:wined3d_dll_init The GLSL shader backend has been disabled. You get to keep all the pieces if it breaks.
err:winediag:init_driver_info Invalid GPU override 10de:0fd5 specified, ignoring.
fixme:win:EnumDisplayDevicesW ((null),0,0x33d2ec,0x00000000), stub!
fixme:ole:RemUnknown_QueryInterface No interface for iid {00000019-0000-0000-c000-000000000046}
err:ole:marshal_object couldn't get IPSFactory buffer for interface {5c6fb596-4828-4ed5-b9dd-293dad736fb5}
err:ole:StdMarshalImpl_MarshalInterface Failed to create ifstub, hres=0x80004002
err:ole:CoMarshalInterface Failed to marshal the interface {5c6fb596-4828-4ed5-b9dd-293dad736fb5}, 80004002
err:rpc:I_RpcReceive we got fault packet with status 0x80004002
fixme:ole:NdrClearOutParameters (0x86db54,0x445f0780,0x86de48): stub
err:ole:CoReleaseMarshalData IMarshal::ReleaseMarshalData failed with error 0x8001011d
err:ole:ifproxy_release_public_refs IRemUnknown_RemRelease failed with error 0x800706be
fixme:ole:CoCreateInstance no instance created for interface {5c6fb596-4828-4ed5-b9dd-293dad736fb5} of class {9f37a13d-311c-4467-b530-dca02bc10bf3}, hres is 0x80004002
fixme:advapi:RegisterEventSourceW ((null),L".NET Runtime Optimization Service"): stub
fixme:advapi:ReportEventW (0xcafe4242,0x0001,0x0000,0x00000456,0x0,0x0001,0x00000000,0x86ee8c,0x0): stub
err:eventlog:ReportEventW L".NET Runtime Optimization Service (clr_optimization_v2.0.50727_32) - Service Manager returned a fatal error (0x80004002). Will stop service\n"
fixme:advapi:DeregisterEventSource (0xcafe4242) stub
fixme:advapi:RegisterEventSourceW ((null),L".NET Runtime Optimization Service"): stub
fixme:advapi:DeregisterEventSource (0xcafe4242) stub
err:ole:CoInitializeEx Attempt to change threading model of this apartment from apartment threaded to multi-threaded
fixme:coreaudio:get_channel_mask Unknown speaker configuration: 64
fixme:coreaudio:get_channel_mask Unknown speaker configuration: 64
fixme:coreaudio:get_channel_mask Unknown speaker configuration: 64
fixme:dinput:IDirectInputDevice2AImpl_EnumEffects (this=0x5ecd8f8,0x88f1a60,0x8933918,0x00000000): stub!
fixme:keyboard:X11DRV_ActivateKeyboardLayout 0xc070c07, 0000: semi-stub!
fixme:keyboard:X11DRV_ActivateKeyboardLayout 0xc070c07, 0000: semi-stub!
fixme:keyboard:X11DRV_ActivateKeyboardLayout 0xc070c07, 0000: semi-stub!
fixme:keyboard:X11DRV_ActivateKeyboardLayout 0xc070c07, 0000: semi-stub!
fixme:keyboard:X11DRV_ActivateKeyboardLayout 0xc070c07, 0000: semi-stub!
fixme:keyboard:X11DRV_ActivateKeyboardLayout 0xc070c07, 0000: semi-stub!
I don't know if it's OS X specific but I think I'm so far to say it's "game specific". I downloaded several controller utilities and ran them through wine and they all recognized the controller correctly. I think that the game is taking in different values for the axes and throttlers than wine is throwing at it. So the only solution to this problem would be to change wines controller output to the game. However I'm really not in the position to do that since I don't know where to start. I could be able to if I knew which source code file I have to change and how I change these values through code.
I talked to the developers and asked them if they could alter the games controller input but since its made with the old game engine construct, they don't have deep access to these functions. I would really like to get this game working with the controller.
I tried mappers but these really feel different and are not even close to the finetuned'ness of the games native controller implementation.

There are games which work perfectly with controllers on OS X through wine. But only the ones who handle the controller by themselves. For example Volgarr The Viking works perfectly because you don't have to use xinput (which is quite redundant because it doesn't do anything at all) or dinput (which messes up controller input completely).

I will have to install linux through parallels to test it with wine but if I get some spare time, I will definitely try. However if I'm right and the game is taking in different input than wine is outputting then this wouldn't work either except the linux version has different outputs.

If you ask yourself what I mean with output and input, I don't even know that by myself. I think that maybe the game is searching for Z,U as axes but wine is giving X and Y or maybe different numbers. I don't know.

I also got the name of the controller through one of these controller utility tools which is:"Xbox 360 Wired Controller" and made a DirectInput registry key and played around with the mapping but this doesn't do anything at all.
lahmbi5678
Level 7
Level 7
Posts: 823
Joined: Thu Aug 27, 2009 6:23 am

Re: Controller Axes Not Recognized on Wine with OS X

Post by lahmbi5678 »

Hi,

I can understand that installing linux is a lot of work, maybe you can ask a friend with linux to test it with your controller?

You should fix the issue with ntlm_auth, though it probably won't fix the issue with your controller.

The other err message in your log indicates that you disabled GLSL, is that intentional/needed for the game? Still, this probably has nothing to do with your issue.

You can file a bug and hope that a wine dev will pick it up. That's probably your best bet.
Adge
Level 1
Level 1
Posts: 8
Joined: Sat Oct 24, 2015 8:31 am

Re: Controller Axes Not Recognized on Wine with OS X

Post by Adge »

How do I fix the htlm_auth issue?
I was playing around due to some performance issues so I tried to disable GLSL. Thought it would help as the game uses shaders and on some levels the game brutally slows down. Din't help though.

I think it's just that the game is asking for different values. If I knew what kind of input the game expects modifying wines source could help. But I don't know if thats really the problem or how to do this :-/
lahmbi5678
Level 7
Level 7
Posts: 823
Joined: Thu Aug 27, 2009 6:23 am

Re: Controller Axes Not Recognized on Wine with OS X

Post by lahmbi5678 »

Afaik you can use macports to install samba. An alternative might be
http://www.macupdate.com/app/mac/16066/samba .

Please file a bug report for the controller issue. It may take some time, until a wine developer will pick it up. Still your best bet.
Adge
Level 1
Level 1
Posts: 8
Joined: Sat Oct 24, 2015 8:31 am

Re: Controller Axes Not Recognized on Wine with OS X

Post by Adge »

Ok, I already filed a bug. I also installed Linux and tried to get it to work through wine but when I start up the game I just get a black window. I installed the same Winetricks as I did on OS X but it doesn't work. Is there a Linux OS which is better to use than others. Used Ubuntu.
If I disable GLSL it works but its brutally slow. However I think its because I'm running Linux through Parallels. I don't want to create a BootablePartition with Bootcamp to make Linux run besides OS X. So if anyone would like to test a TowerClimb port on Linux, feel free to volunteer.
Locked