https://bugs.winehq.org/show_bug.cgi?id=52222
Bug ID: 52222 Summary: WINEDLLOVERRIDES="DINPUT8.dll=n,b" no longer works since 4f1095a, worked in V6.23. Product: Wine Version: 7.0-rc1 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: winmm&mci Assignee: wine-bugs@winehq.org Reporter: billfleming11@gmail.com Distribution: ---
Zebediah pointed out where this new bug was and I confirmed the regression with a minor code modification. See his comments here for the program I first saw the regression against. https://bugs.winehq.org/show_bug.cgi?id=51409#c7
In Wine 3.X, 4.X, 5.X, 6.X we have been able to supply modified DLLs (for example that some games require to load a translation or a mod to fix bugs, etc) in the game's directory and override the built-in DLL to load the modification hook into the application. From 4f1095a on-wards dinput8 became an IMPORT requirement of winmm makefile leading to the following error in wine, before it even really attempts to load the application.
LdrInitializeThunk "WINMM.dll" failed to initialize, aborting
I can modify wine 7.0-rc1 to allow the dll to load again, making the game playable other than any lingering video playback issues it has. In dlls/winmm/Makefile.in I modified the IMPORTS line to remove dinput8. In dlls/winmm/joystick.c I commented out the contents of the void joystick_load( HINSTANCE instance ) function. (lines 157 to 159 as of 7.0-rc1).
Then after rebuilding wine the application will launch again using WINEDLLOVERRIDES="DINPUT8.dll=n,b"
Note that this regression will affect a large number of video games as it is almost universal to "hook" into a game using DINPUT8.dll specifically, as apposed to other possible DLLs.
If anyone really wants to look at a log file I put one here in the old report. https://bugs.winehq.org/attachment.cgi?id=71302
Note that at least in this one game my xbox 1 controller still works with xow after removing those lines, but someone who knows what they are doing should propose a new patch relating to joysticks.