Steam – How to get some games to install via Steam under Wine

borderlands-2steamwinexcom-enemy-unknown

Most of my Steam library installs and runs just fine under Wine. However, some new titles (so far Borderlands 2 and XCOM: Enemy Unknown) will not install. The initial download completes successfully, but on first launch a progress dialog box appears with the text: Completing installation ... 1%

Then, on the console, the following appears over the next approximately 30 seconds:

fixme:volume:GetVolumePathNameW (L"C:\\windows", 0xdefeb20, 520), stub!
fixme:volume:GetVolumePathNameW (L"Z:\\home\\user\\games\\Windows\\Steam\\userdata", 0xdefeb20, 520), stub!
fixme:volume:GetVolumePathNameW (L"C:\\windows\\system32", 0xdefeb20, 520), stub!
fixme:volume:GetVolumePathNameW (L"C:\\windows", 0xdefeb20, 520), stub!
fixme:volume:GetVolumePathNameW (L"Z:\\home\\user\\games\\Windows\\Steam\\config", 0xdefeb20, 520), stub!
fixme:volume:GetVolumePathNameW (L"C:\\windows\\system32", 0xdefeb20, 520), stub!
fixme:volume:GetVolumePathNameW (L"C:\\windows", 0xdefeb20, 520), stub!
fixme:volume:GetVolumePathNameW (L"Z:\\home\\user\\games\\Windows\\Steam\\Backups", 0xdefeb20, 520), stub!
fixme:volume:GetVolumePathNameW (L"C:\\windows\\system32", 0xdefeb20, 520), stub!
fixme:volume:GetVolumePathNameW (L"C:\\windows", 0xdefeb20, 520), stub!
fixme:volume:GetVolumePathNameW (L"Z:\\home\\user\\games\\Windows\\Steam\\bin", 0xdefeb20, 520), stub!
fixme:volume:GetVolumePathNameW (L"C:\\windows\\system32", 0xdefeb20, 520), stub!
fixme:volume:GetVolumePathNameW (L"C:\\windows", 0xdefeb20, 520), stub!
fixme:volume:GetVolumePathNameW (L"Z:\\home\\user\\games\\Windows\\Steam\\logs", 0xdefeb20, 520), stub!
fixme:volume:GetVolumePathNameW (L"C:\\windows\\system32", 0xdefeb20, 520), stub!
fixme:volume:GetVolumePathNameW (L"C:\\windows", 0xdefeb20, 520), stub!
fixme:volume:GetVolumePathNameW (L"Z:\\home\\user\\games\\Windows\\Steam\\dumps", 0xdefeb20, 520), stub!
fixme:volume:GetVolumePathNameW (L"C:\\windows\\system32\\mui", 0xdefeb1c, 520), stub!
fixme:volume:GetVolumePathNameW (L"C:\\windows\\Fonts", 0xdefeb1c, 520), stub!
fixme:volume:GetVolumePathNameW (L"Z:\\home\\user\\games\\Windows\\Steam\\Config", 0xdefeb20, 520), stub!" 

Finally, an error dialog appears with the text:

The Steam servers are too busy to handle your request for [Game name]. Error Code (2)
http://support.steampowered.com

My wine version is 1.5.8. I have tried running with a clean WINEPREFIX, and I have tried manually running the DirectX and VCRedist installers in the game directories in the steamapps directory. Can anyone offer insight into how I can resolve this issue? Thanks!

Best Answer

I found that the "servers are too busy" message was thrown basically any time an error prevented the game (Borderlands 2 in my case) from launching. It was certainly not in any way related to the Steam servers, and pretty unfortunate that it so misleadingly masks some specific problem with the system.

After much trial and error, based on clues on the Wine AppDB reports and such, I was able to get it running by installing various dependencies and stuff. Unfortunately, I failed to properly document my adventure, but here are a few things I did that you might want to try:

  • With winetricks or directly with wine, install: vcredist vcrun2008 vcrun2010 msxml3 winhttp physx
  • With your native package manager, install: lib32-mpg123 gpgme libassuan
  • Make sure DirectX is installed in the wine environment
  • Launch the game by running wine Borderlands2.exe from command line (no symlinks!)

For better performance, I also ended up creating a swapfile, and tweaking the wine registry to recognize all 2GB of my video card's RAM -- it defaulted to only addressing up to 128MB or something crazy like that.

Hope this helps! Good luck.