Monday, July 28, 2014

Wine-ing About Everything

So, the past few weeks of using Wine was interesting to say the least.  I had not realized how big this post was going to be until it was all done, so I'm putting this all after the jump!

Mass Effect 3 is done and that was a fairly interesting experience with the Trilogy save.  I'll save my comments on that for another day but I should point out that those looking to take screenshots in Mass Effect 3 need to use an ME3 Coalesced Editor and then go to bioinput.ini, then sfxgame then sfxgamemodedefault (and also on sfxgamemodebase, sfxgamemodeconversation, and sfxgamemodecinematic), paste the command ( Name="F8", Command="Screenshot" ).  This binds the screenshot key to F8 which is often overlooked by other ME3 coalesced.ini guides.  Remember to make backups before editing!

Since Origin overlay on Mass Effect 3 is broken, the only way to get access to your friends on Origin is by putting the game on windowed mode.  Unfortunately, Wine misbehaves when you set it on windowed mode and only a portion of the screen is visible.  To get around this issue, set your Wine install on a virtual desktop and then set the game on windowed mode.  You should be able to chat with your buddies, setup a game and even join since it appears on your chat window.

The next two games I wanted to get running that took a lot of work are Batman: Arkham City and WRC 4.  After mucking around a lot, I realized that Batman: Arkham City only works on a 32-bit wineprefix due to .net dependencies (dotnet20, dotnet30, dotnet35).  Unfortunately, since I was working on two games on the same wineprefix, this is going to get a bit messy.

I created a fresh wineprefix on 32-bit and installed Steam (disabled dwrite and gameoverlayrenderer) and the d3d9, d3d10, and xact_june2010.  I was working towards getting WRC 4 to work but ran into a bunch of gstreamer plugin issues.  After some intense investigations on this, I found installing the 32-bit gstreamer plugins (gstreamer0.10-plugins-bad:i386) to conflict the 64-bit ones and didn't even play the videos anyway.  So I renamed the MOVIES folder on the WRC install and get it out of the way.  The game had a bad flicker though on Wine 1.7.22 and hung on a black screen.  I instead moved to get the .net dependencies on Arkham City working.

Apparently, Arkham City does not create the game screen and I had to set a virtual desktop to get the game window to appear.  But the mouse grabbing would not work so while playing, the mouse pointer would leave the screen.  The only choice I had was to get the x360ce program working.

The x360ce program took a bit to get around as it was incorrectly detecting my gamepad.  To get around this I manually picked the axis to use and see if the analog stick would react.  When that was all sorted, I dropped the ini and dll files on /path/to/SteamApps/common/Batman Arkham City/Binaries/Win32.  Afterwards, the game picked up my gamepad and I was good to go.

Switching back to WRC 4, I discovered that the game was working at this point and in my attempt to fix the flickering screen, I set OffscreenRenderingMode to backbuffer.  This would crash not only WRC 4 on start up though, but also crash Arkham City.  For reference sake, here's the user.reg entry.

[Software\\Wine\\AppDefaults\\WRC4.exe\\Direct3D]
"OffscreenRenderingMode"="backbuffer"

The only option was to switch it to fbo which would make the game flicker intensely again.  After investigating success cases, I decided to install PlayOnLinux to get an older Wine build that was known to work.  The version I got was 1.7.6.  I whipped up a script to get my 32-bit wineprefix to load up on this old version of wine.

LD_LIBRARY_PATH="/home/somewhere/.PlayOnLinux/wine/linux-amd64/1.7.6:$LD_LIBRARY_PATH" WINEPREFIX="/home/somewhere/.local/share/wineprefixes/32bitwineprefix" /home/somewhere/.PlayOnLinux/wine/linux-amd64/1.7.6/bin/wine /path/to/Steam/executable/Steam.exe

Tricky, but WRC 4 did launch and I got a few runs in.  I can't set the names of the driver, and co-driver but oh well.  Game works though!  To skip the opening and get to the game loading, press ENTER.  In fact, spam that button!



No comments: