00cpxxx / wine-xinput Goto Github PK
View Code? Open in Web Editor NEWXInput support to play games in Wine
License: The Unlicense
XInput support to play games in Wine
License: The Unlicense
The devices are correctly showing up, but the triggers don't appear to work in-game. Trying to remap controls is impossible as the moment you try and redefine one, it gets set to either "Analog Channel 3+" or "Analog Channel 3-" which I guess are the two triggers which it seems to think are being held down.
I have SDL_GAMECONTROLLERCONFIG set to a local copy of this file - https://raw.githubusercontent.com/gabomdq/SDL_GameControllerDB/master/gamecontrollerdb.txt - and I'm using xboxdrv (with real XBox 360 controllers and mimic-xpad = true).
I installed this back in February and it worked fine for a couple weeks. Then I didn't touch most of my games for a few months. Now it doesn't work at all! I tried using this patch on the latest version of Wine and that doesn't work either. However, all my controllers are in the control panel.
Currently I'm using koku-wine-xinput, but that only works on about half of my games (whereas historically this patch has worked on all of them)
What can I do to troubleshoot? Could xboxdrv be the issue? How would I go about trying to track down what's wrong with my laptop?
I'm tested this on Steam version with Xbox 360 controller, input works perfectly.
Thank you for great work!
Hi,
your patch doesn't apply anymore since dlls/xinput1_3/xinput1_3_main.c
was renamed to dlls/xinput1_3/xinput_main.c
in commit ff8c49ee. But even after fixing the patch accordingly, wine fails to build with the following error:
make[2]: Entering directory '/<<PKGBUILDDIR>>/dlls/xinput1_1'
gcc -m64 -c -o xinput_main.o ../xinput1_3/xinput_main.c -I. -I../xinput1_3 -I../../include -D__WINESRC__ \
-D_REENTRANT -fPIC -Wall -pipe -fno-strict-aliasing -Wdeclaration-after-statement -Wempty-body \
-Wignored-qualifiers -Wno-packed-not-aligned -Wshift-overflow=2 -Wstrict-prototypes -Wtype-limits \
-Wunused-but-set-parameter -Wvla -Wwrite-strings -Wpointer-arith -Wlogical-op -gdwarf-2 \
-gstrict-dwarf -Werror -Wdate-time -g -O2 -fdebug-prefix-map=/<<PKGBUILDDIR>>=. -specs=/usr/share/dpkg/no-pie-compile.specs -fstack-protector-strong -Wformat -Werror=format-security -Wno-error
../../tools/wrc/wrc -o version.res -m64 --nostdinc -I. -I../xinput1_3 -I../../include -D__WINESRC__ \
version.rc
../../tools/winegcc/winegcc -o xinput1_1.dll.so -B../../tools/winebuild -m64 -fasynchronous-unwind-tables -shared xinput1_1.spec \
xinput_main.o version.res ../../libs/port/libwine_port.a -specs=/usr/share/dpkg/no-pie-link.specs -Wl,-z,relro -Wl,-z,now -Wl,-rpath,/usr/lib/x86_64-linux-gnu/wine-development
xinput_main.o: In function `dinput_acquire':
./dlls/xinput1_1/../xinput1_3/xinput_main.c:217: undefined reference to `c_dfDIJoystick2'
xinput_main.o: In function `dinput_start':
./dlls/xinput1_1/../xinput1_3/xinput_main.c:351: undefined reference to `IID_IDirectInput8A'
/usr/bin/ld: xinput_main.o: relocation R_X86_64_PC32 against undefined hidden symbol `IID_IDirectInput8A' can not be used when making a shared object
/usr/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
winegcc: gcc failed
Makefile:209: recipe for target 'xinput1_1.dll.so' failed
make[2]: *** [xinput1_1.dll.so] Error 2
make[2]: Leaving directory '/<<PKGBUILDDIR>>/dlls/xinput1_1'
Makefile:18042: recipe for target 'dlls/xinput1_1' failed
make[1]: *** [dlls/xinput1_1] Error 2
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
Besides rebasing your patch to the recent wine version, could you write down (probably in the README) against which wine version you last rebased your patch and had it known working? It seems to compile fine with 2.0.3 but I have yet to test if it works.
I played Witcher 3 with this patch for a couple of hours everything seems to work fine (apart from my system not reconsigning any actions and tourning off the screen)
I guess you cloud add it to the list of games that were tested and work.
As the topic says :)
I'm currently getting...
xinput1_3_main.o: In function `dinput_acquire':
xinput1_3_main.c:(.text+0x42): undefined reference to `c_dfDIJoystick2'
xinput1_3_main.o: In function `dinput_start':
xinput1_3_main.c:(.text+0x80f): undefined reference to `IID_IDirectInput8A'
/usr/bin/ld: xinput1_3_main.o: relocation R_X86_64_PC32 against undefined hidden symbol `IID_IDirectInput8A' can not be used when making a shared object
/usr/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
winegcc: gcc failed
make[1]: *** [Makefile:222: xinput9_1_0.dll.so] Error 2
make[1]: Leaving directory '/mnt/store/Build/pkg-autobuild/wine-staging-git/src/wine-staging-git-64-build/dlls/xinput9_1_0'
make: *** [Makefile:19723: dlls/xinput9_1_0] Error 2
make: *** Waiting for unfinished jobs....
... when trying to build the quigon patch against Wine Staging 2.0. Do you know if it should currently be compatible or not?
(just to clarify, the build works fine without your patch)
Force Feedback (vibration) work in $wine control joy.cpl, but in games this not work, i
have installed "Legacy Of Kain Defiance" and not work, is occurs in others
games force feedback no work.
My device ID is:
ID 0810:0001 Personal Communication Systems, Inc. Dual PSX Adaptor
Is possible solve this? I tested in Windows 10 and force feedback work in this game.
Twin Usb Joystick is device that enable DualShock 2 (Playstation 2 joystick) connect in PC via USB.
As mentioned here:
https://bugs.winehq.org/show_bug.cgi?id=38816
wine_steam_starwars_complete_saga_dinput_xinput_debug_patched.log.zip
The game detects the controller, but when I go to assign items, the game is waiting for a controller event, but never gets one.
Hello,
can I assume that your patch falls under same LGPL license as Wine?
Everything works, when I connect the controller via USB. But wireless the Mapping gets totally wrong.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.