Problem
When you play steam games on Linux with Wine and having the in-game Steam Community enabled, the game may crash when hitting any key. The main problem is, there's a dll called "imm32.dll", that's an internal dll of windows. The dll's API is not documented, so the wine develeopers cannot reimplement this library very well. You can read more about the bug here. I found three solutions to solve this Problem:Solution 1: The simple Way
Simply disable the Steam Community for the specific game. Right click the game, choose Properties and uncheck "Enable Steam Community in game". The disadvantage is, you can't use multiplayer than.
Solution 2: The native-dll way
After some tests, this way do not work.
Solution 3: The compilation way
You simple "patch" the source code of the official open source imm32.dll of wine.$ git clone git://source.winehq.org/git/wine.git ~/wine-git
$ cd ~/wine-git
Optional, but highly recommented:
$ nano Makefile
and change "prefix = ..." to "prefix = /tmp/wine".
do the same with "ac_default_prefix = ..." in the file "configure".
Now apply the patch:
$ nano dlls/imm32/imm.c
Search for this line: "BOOL WINAPI ImmProcessKey("...
and insert after the "TRACE("... line this new line:
return FALSE;
Please to not forget the ";" char.
Thats all! Now compile:
$ make depend
$ make
$ make install
If you are using PlayOnLinux, you can simply add a new wine version:
$ cp -r /tmp/wine ~/.PlayOnLinux/wine/linux-x86/1.7.x-imm-patch
In PlayOnLinux, select the Steam entry and press on the configure button in the menu bar and select the wine version "1.7.x-imm-patch".
Happy wine-playing!
This how-to work for me with wine 1.7.9 compiled from sources.
ReplyDeleteThanks.
For anyone who doesn't want to do their own compiling, PlayonLinux has a wine version labelled 1.7.14-imm32_bug35361, which does the trick on allowing steam overlay in Age of Empires II HD, and I imagine other games too. I don't know if later versions have this compiled in standard.
ReplyDeleteHave just tried the 1.7.14-imm32_bug35361 and the latest wine version 1.7.53. Neither appear to resolve the overlay not functioning on my Play On Linux version 4.2.9
DeleteAnyone with any further update to this?
Thanks in advance;}
Playonlinux command won't working, please help me ;-;
ReplyDeleteTo solve this problem, I found this website http://fix4dll.com/imm32_dll . Everything is simple and easy. Snack I downloaded the file and continue to work without problems.
ReplyDelete