In our Linux gaming feature a couple of months ago we looked at Wine, the Windows compatibility layer that allows Linux users to run a number of Windows games, including recent hits like Team Fortress 2 and Call of Duty 4. It’s not the easiest thing to set up – not by a long shot, in fact – but that’s why we’re here. We’ll show you what Wine can do, how to get it working, and how to get the best out of it.
Removing the cork
The easiest way to get started with Wine is to install your distribution’s packages – ‘sudo apt-get install wine’ would do the job on Ubuntu, for instance. However, with the rapid pace of Wine’s development, these packages might be a few versions old. A good alternative is to use the official packages from the WineHQ download page which are typically updated within days of each new Wine release. For most distributions, these are provided as repositories that you can add to your package manager, so you can easily keep up with new releases automatically.
Once it’s installed, you can run Windows .exe files by either double-clicking on them, or by running them at the command-line with the ‘wine’ command. For instance, if you have your Windows install handy, you could go to your ‘windows/system32’ folder and run:Wine stores its data in the ‘.wine’ folder in your home directory, which is created the first time it’s run. Under this, there’s a ‘drive_c’ folder, which contains the contents of your virtual Windows system – any applications running under Wine see this as your C: drive, so it contains your ‘windows’ and ‘Program Files’ folders, among others.wine sol.exe
Installing software under Wine is much the same as under Windows – just run the installer and step through. The files will be stored under your ‘.wine/drive_c’ folder, and on most distributions if the installer sets up shortcuts they’ll appear on the desktop or under your desktop menus. Alternatively, you can go in to your ‘.wine/drive_c’ folder and run the applications manually by double-clicking or using the ‘wine’ command.
For some games and applications, that’s all you need to do, but others will take a bit of tweaking. The best place to go for compatibility information, including the details on any tweaks required, is the Wine Application DB, but we’ll walk you through a few examples.
Steaming open The Orange Box
Valve’s games are the perfect starting point for jumping in to Wine: the Source engine runs well on Wine’s DirectX implementation, and using Steam gets around any disc-based copy protection issues. Follow these steps to get your Steam on:
1) Install the Gecko-based replacement for the MSHTML component, which Steam needs to render its internal web pages. It’s meant to install automatically when first requested, but this doesn’t always work with Steam, so it’s best to run Wine’s built-in ‘iexplore’ command instead:Close the browser window once the installation is complete.wine iexplore http://winehq.org/
2) Go to http://steampowered.com/ and download the Steam installer. Because it’s an MSI file, you need to launch it using Wine’s built-in MSI handler:wine msiexec /i SteamInstall.msi3) Step through the installer just as you would under Windows. When it’s complete, Steam should run automatically, but if not, you can launch it manually from Wine’s virtual C: drive:4) When Steam launches, log in to your account, and the main Steam window should appear.cd “~/.wine/drive_c/Program Files/Steam”
Your existing purchases should be listed in the ‘My games’ tab as ‘Not Installed’, so you can re-download them for free. Alternatively, you can save yourself the bandwidth by copying the ‘steamapps’ folder from the Steam folder on your Windows drive to your new Wine Steam folder. Re-launch Steam after the copy, and your games should be ready to play.
Everything in The Orange Box should work without tweaking, though you may hit some performance snags or graphical glitches when using DirectX 9 features. The Source engine is nice and scalable though, so you can force games to run in DirectX 8 mode if required: just right-click on the game in the ‘My games’ tab, select Properties, click the ‘Set launch options...’ button, and enter ‘-dxlevel 81’.
All good Linux tools are loaded with options, and like the blood in an anime character, Wine is filled to bursting point. The first port of call is, unsurprisingly, the Wine configuration tool, ‘winecfg’:wine winecfgSome of the key settings include:
Setting the version of Windows that Wine reports itself as, under the ‘Applications’ tab. You can set this on a global or per-application basis. This can be handy for getting specific applications running – 3DMark05, for instance, works with the ‘Windows 98’ setting, but not the 2000 or XP settings.
Audio acceleration options, in the ‘Audio’ tab. Many games only work when the ‘Hardware Acceleration’ option is set to ‘Emulation’, so try this if you have any in-game sound issues. It’s also best to pick one sound driver API to use (ALSA, generally), and disable the others.
The ‘Enable a virtual desktop’ option, in the Graphics tab. This creates a single window on your desktop that all of Wine’s windows sit inside, which can help avoid window management issues with some applications. It’s also great for troubleshooting full-screen games, since the game is limited to the virtual desktop window, giving you full access to any Wine error messages.
DLL override options, in the ‘Libraries’ tab. Some of Wine’s built-in DLLs can be replaced with the original Windows versions for improved compatibility, but to use them, you need to add a manual override for the specific DLL involved. Civilization IV is a good example – you need to install a genuine ‘msxml3.dll’ file in to your ‘system32’ folder and add a DLL override to get it running.
You can find further options in the registry, which you can edit using Wine’s built-in version of ‘regedit’:wine regeditFor instance, if you’re happy running Source engine games in DirectX 8 mode, you can improve performance by disabling Wine’s DirectX 9 shader support and using the older, but more heavily optimised, DirectX 8-only shader code. To do this, use ‘regedit’ to set the ‘HKEY_CURRENT_USER/Software/Wine/Direct3D/UseGLSL’ to ‘disabled’.
Please post any comments about this post to the new forum at wine-reviews.net In the near future this post will be removed from wine-review.blogspot so please visit our new and improved site and update your bookmarks.