Guild Wars on Wine
|Warning: Running Guild Wars on a non-Windows operating system, or with any other computer which does not meet the system requirements, is completely unsupported by ArenaNet and NCSoft.|
Wine provides a win32 API implementation for operating systems not made by Microsoft and can be used to run Guild Wars on such systems. The following guide has been written with Linux in mind, but can work on BSD- and Darwin-based systems under most circumstances. Be aware that without a powerful central processor and a reasonably powerful graphics card, Guild Wars is unlikely to be playable: translating system calls for a complex program constitutes a great deal of overhead.
Guild Wars has been given Wine's "platinum" application status, indicating the highest level of compatibility. Given the correct settings and hardware, it should work as well on Linux as it does on Windows.
CrossOver is commercial version of Wine with official support of Guild Wars on Linux and MacOS using Intel processors.
First, we'll need to download and install Wine on your system, if it isn't already there. Most package management systems have a copy of Wine available in the default repositories. Here are some distribution-specific instructions:
|Ubuntu||Wine from Ubuntu|
|Debian||Wine from Debian|
|Fedora Core||Wine from Fedora|
|Gentoo Linux||Wine from Gentoo|
|SourceMage GNU/Linux||Wine from SourceMage|
|Source code||Wine from source|
It is recommended you use the latest stable Wine (or well tested development) release, which should be included in the package archive of your distribution. If you wish to use the latest development release, follow the instructions at the Wine downloads page. Note: The development release may include regressions which can prevent Guild Wars from working properly. If this occurs, try rolling back to a previous verison.
Configure Graphics driver
Check if the system uses your Video Card's 3d acceleration driver.
How do you do this?
On Debian-oid systems:
In debian package mesa-utils use /usr/bin/glxinfo; for example run:
glxinfo | grep -Ei '(vendor|rendering|renderer|version)'
gives output like this:
direct rendering: Yes # <== "Yes" is usually sufficient to play GW. "No" would be too slow usally.
server glx vendor string: SGI # Some version-numbers to bragg about and whatnot ;-)
server glx version string: 1.4
client glx vendor string: Mesa Project and SGI
client glx version string: 1.4
GLX version: 1.4
OpenGL vendor string: X.Org R300 Project
OpenGL renderer string: Gallium 0.4 on ATI RS600
OpenGL version string: 2.1 Mesa 7.10.3
OpenGL shading language version string: 1.20
Get Guild Wars
Open a terminal window and download the Guild Wars installation program:
Then run gwsetup: the /complete switch will download all the files so you get a complete install rather than piece meal as you enter each zone. This makes the install slower but the game play isn't delayed whenever you enter a new area.
wine GwSetup.exe /complete
Proceed with the installation, which will download the basic GW data.
Download the .exe client directly from here: https://www.guildwars.com/download Like the previous directions use:
or, if you intend not having any files to load when entering a new area, use:
wine GwSetup.exe /complete
If you used the first method without '/complete' then you can still load Guild Wars to prevent downloading files when entering a new area by using the following command:
WINEDEBUG=-all wine "C:\Program Files (x86)\Guild Wars\Gw.exe" -image
This command works in the same manner of adding "-image" to the properties of Guild Wars in Windows.
Mount Guild Wars media and use winecfg to assign a "Letter" to the mount point. Then run Setup.exe from the media:
Where D: is the Letter for the media Drive Mapping. You may need to unmount and mount the next media yourself if wine failed to do so.
Running Guild Wars
To run Guild Wars after the installation, simply type this command from a terminal window:
wine "C:\Program Files (x86)\Guild Wars\Gw.exe"
You can use your system's menu editor to add a shortcut to the above command, so you don't have to manually run it from a terminal every time.
The process above will in the majority of cases land you with a working Guild Wars installation. However, for those systems where this doesn't happen, or where you are unsatisfied with the performance and want to try tinkering with the settings to get a better game experience, the following instructions may help.
When using Intel onboard graphics like GMA 3100 disabling the option SwapbuffersWait in the device section can improve the performance.
Option "SwapbuffersWait" "false"
man intel for the details about this option.
winecfg and, if your hardware supports it, configure the following options.
In the Graphics tab Allow Pixel Shader and set Vertex Shader Support to Hardware. Also it is highly recommended that Allow the window manager to control the window be disabled, this will prevent common desktop hotkey to activate during play. (eg: Switch desktop, cycle window, ...)
If you're running a lower-spec machine, like a netbook, turn off pixel shader support and use the pbuffer for OSR instead. This will make the game look worse but perform better.
In the Audio tab enable the driver that support your audio hardware, ALSA Driver will work in most installation. The following audio options are recommended, Hardware Acceleration select Emulation and make sure Driver Emulation is checked.
If graphics freeze for short durations when moving or turning (loading new shaders):
- Create key "HKEY_CURRENT_USER/Software/wine/Direct3D", create string "UseGLSL", set value to "disabled". This hint applies to Wine 0.9.49 and later. Re-enable GLSL whenever upgrading to see if this performance issue was fixed, because graphics quality increases with GLSL enabled.
In the latest stable release of WINE, i.e. 1.2, disabling GLSL causes footprints to become white squares. Using an older version of WINE such as 1.1.40 prevents such occurrences.
Enable Multi-sampling (Anti-Aliasing):
- Create key "HKEY_CURRENT_USER/Software/wine/Direct3D", create string "Multisampling", set value to "enabled".
- Within Guild Wars, enter Menu, Options, Graphics and chose desired Anti-Aliasing setting. Though the Guild Wars setting seems to be non-influential, it is good practice to keep it in sync.
If your GW screen turns black when Multi-sampling or post-process effects are enabled:
- Create key "HKEY_CURRENT_USER/Software/wine/Direct3D", create string "OffscreenRenderingMode", set value to "backbuffer". There seems to be no performance or quality penalty.
For a full reference of further registry keys, see https://wiki.winehq.org/UsefulRegistryKeys
Wine implementation of Microsoft DirectX9 can be lacking in old versions. If that is the case, try running Gw.exe with the flags -dx8 -noshaders. You can also change the Windows version Wine emulates in the Wine Configuration panel. Several people have better luck getting it to work in Windows 98 mode than others. However this mode causes a massive number of graphics anomalies since the Eye of the North updates. It is possible to force Guild Wars to run in a window instead of fullscreen; this can be useful if you run into problems. To do this the flag -windowed is added to the gw.exe command. We will use this until we are satisfied with the results.
Also because Wine will generate a lot of debugging output when running, this can slow the game, environment variable WINEDEBUG will be set to -all (minus all) to prevent any debug output on the console.
WINEDEBUG=-all wine "C:\Program Files (x86)\Guild Wars\Gw.exe" -windowed
Running on a separate X server
If you run Guild Wars on a separate X server, it doesn't interrupt other applications on other X servers. If Wine or Guild Wars crashes on one X server, the other remains unaffected. Since separate X servers can without or a different window manager than another, keys can be rebound and not get in the way of playing Guild Wars. If you usually run a compositing window manager (e.g. compiz), you might also see a speed increase, as the visual effect can be disabled on the other X server.
On the other hand, minimizing Guild Wars or switching to window mode won't work as expected any more - but you can switch between your regular desktop and Guild Wars anytime usually by using Ctrl-Alt-F7 / -F8 (your mileage may vary). Multiple X servers can also take up overall performance on slower machines.
If you like those features, do as follows: Create a text file containing the command to start Guild Wars, without the -windowed switch
#!/bin/bash WINEDEBUG=-all wine "C:\Program Files\Guild Wars\Gw.exe"
save it, for example as ~/run_guildwars, and make it executable
chmod +x ~/run_guildwars
To start a second X server with Guild Wars running, execute this command (or add a corresponding shortcut or menu entry):
xinit ~/run_guildwars -- :1 -br
|Guild Wars installation and execution|
|Guild Wars on Wine • Guild Wars on CrossOver|