Wine

Wine is a Windows API shell which runs Windows applications on non-Windows operating systems, such as Mac OS X and Linux. It is also the basis for the CrossOver series of products put out by CodeWeavers.

Rift is among the games that can be played via Wine, although with some difficulties and limitations. Although the setup is not supported by Trion Worlds, the development team has been known to issue hotfixes relating to Wine compatibility issues in the past.

System Requirements
In general, the System Requirements for playing Rift on Wine will be slightly higher than those for playing Rift on Windows. Since Wine has to translate DirectX Windows calls into the native 3D graphics API (usually OpenGL), systems close to the minimum requirements may not be able to play Rift on Wine.

Video Card Support
Video support is particularly crucial for playing Rift smoothly anywhere, and this is no less true when playing via Wine. Chipsets from NVidia or ATI are recommended; Intel chipsets are near the bottom of the compatibility chart.

When running games under Wine, always use the latest drivers as supplied by the chipset manufacturer. Some Linux distributions provide applications for installing these drivers; otherwise, go to the ATI or NVidia website and search for "linux". On Mac OS X, the proper drivers should be installed as part of the hardware setup.

Wine Software
Rift is only known to run on development versions of Wine (versions 1.3.x as of this writing). On Linux, version 1.2.x is often provided by default; check to see if a "wine1.3" package is available. For Mac OS X, or Linux systems that don't provide a new enough Wine, download the latest development version from the Wine site, and follow the installation instructions provided there. For Mac OS X users, Wine 1.3 can also be installed from the MacPorts system using the wine-devel port.

The CodeWeavers site also reports that Rift works with CrossOver Games. They maintain an information page about running Rift on CrossOver Games.

Installing Rift
Wine creates a virtual Windows filesystem (sometimes called a bottle) in which to install and run programs. The default bottle is set up in the ".wine" directory in the user's home directory, but this can be overriden by setting the WINEPREFIX environment variable. It's best to set up Rift in a separate bottle, because the hardware settings that allow Rift to play well might cause other Windows programs in the same bottle to not run as well.

If you're planning to run Rift on a non-Windows system as your primary gaming environment, use the free trial if possible to get the game working before committing to buy it.

Pre-Install
Before installing, a few changes should be made. First, run the configuration program:

$ WINEPREFIX=/path/to/bottle winecfg

The Wine configuration program will run. Most settings can be made to match individual preferences, but the following settings should be set:


 * On the Graphics tab, "Vertex Shader Support" should be set to "hardware", and "Allow Pixel Shader" should be checked. These are usually the default.
 * On the Audio tab, choose a sound driver. For Linux, "PulseAudio" should be checked if it is available; otherwise, choose "ALSA".

After saving the configuration and closing winecfg, download the "winetricks" script from its website, and run it to install some necessary runtime components:

$ WINEPREFIX=/path/to/bottle /bin/sh ./winetricks vcrun2008 d3dx9_43

Installing via the Downloadable Installer
After setting up your account (either by buying Rift online or signing up for the free trial), download the setup program from your account page. You should end up with a file called "Rift_LIVE_Patcher_setup.exe". Run this program from the terminal prompt:

$ WINEPREFIX=/path/to/bottle wine Rift_LIVE_Patcher_setup.exe

The initial installation will only take a few minutes, but the bulk of the installation will happen after logging into the game for the first time. As of Rift 1.2, the install was taking around an hour after logging in; the actual time will depend on your Internet connection speed.

Installing via Game Disc
After loading the game disc into your optical drive, run the setup program the same way:

$ WINEPREFIX=/path/to/bottle wine /media/dvd/setup.exe

The exact path to your DVD drive, and the name of the setup program, may differ.

Running Rift
Because of the way Rift is normally run, starting Rift by running an executable file generally doesn't work. This can be a problem if you lose the startup icon created during the installation, or if you want to have more control over how Rift runs. You can run Rift from the command line as follows:

$ WINEPREFIX=/path/to/bottle wine C:\\Windows\\command\\start.exe /Unix \ $WINEPREFIX/dosdevices/c:/users/Public/Desktop/Play\ RIFT.lnk

Troubleshooting
Here are a number of solutions to common problems with Rift on Wine. For more information and discussion, see the WineHQ page on Rift.

Game hangs after initial login with 1.3 Hotfix #2 and later
After logging in and pressing the "Play" button, the game used to hang, playing the startup music but otherwise not responding.

This issue was fixed by Hotfix #5.

Flashing colors when playing cutscenes and on loading screens generally
This is a problem in Wine that is still being tracked down. It should not affect gameplay.

Slow framerates
Usually, this is caused by a slow video card. Note that video cards that work well under Windows may not work as well under Wine, because of the translation being done between DirectX and OpenGL. If you can, upgrade your video card.

Switching to the Low Quality renderer in the game (Settings -> Video -> Advanced) will probably help tremendously.

Black backgrounds, black character models, or black effects
In most cases, switching to the Low Quality renderer will eliminate problems with blacked-out objects in the display. On some NVidia cards, effects may continue to render to black even with the Low Quality renderer.

It's possible to resolve some of these issues without switching to Low Quality. Run the following command from a terminal:

$ WINEPREFIX=/path/to/bottle regedit

In the Registry Editor, navigate to HKEY_CURRENT_USER/Software/Wine. If there is a "Direct3D" key, go to it; otherwise, create it as a new key. Within that key, we want to create a number of string values:


 * DirectDrawRenderer: "opengl"
 * Multisampling: "enabled"
 * OffscreenRenderingMode: "backbuffer", "pbuffer", or "fbo" (see which works better)
 * UseGLSL: "enabled"
 * VertexShaderMode: "hardware"

Setting UseGLSL to "disabled" will force the Low Quality renderer. Different values of OffscreenRenderingMode work better for different circumstances; "pbuffer" is probably a good place to start.

After setting these values, close the Registry Editor and try running Rift again.

d3dx9_43.dll not found
You may need to tell wine to use the builtin DirectX9 libraries instead of the native library.

$ WINEPREFIX=/path/to/bottle winecfg

Go to the Libraries tab and find the d3dx9* file that the error is showing (mine was d3dx9_43). Select it from the list and press 'Edit...'. Choose the Builtin (Wine) option from the list. Press OK.

RIFT crashing on initial loading screen
This is the loading screen after the RIFT logo, before the character selection. RIFT will crash, and may throw up a dialogue mentioning the Renderer has failed. This seems to be linked to a problem with changing resolutions for some configurations.

A solution is to run winecfg and enable an emulated desktop.

$ WINEPREFIX=/path/to/bottle winecfg

Go to the Graphics tab and select 'Emulate a virtual desktop'. Set the desktop size to be the size of the window you would like for the game. Press OK. The resolution you specified will be selectable in the game settings, otherwise you will only get a bunch of 4:3 options. This will run the fullscreen RIFT in a windowed-like mode.

[EDIT] This might be due to wine not reporting the correct amount of memory that your video card has, to correct that simply add the following string to wine register. [HKEY_CURRENT_USER/Software/Wine/Direct3D] (Create Direct3D if it doesn't exists) Add new string called "VideoMemorySize" and set it to the appropriate value. (256, 512, 1024, etc.)