World of Warcraft
Template:I18n entry Template:I18n links end
World of Warcraft (WoW) is a Massively Multiplayer Online Role-Playing Game (MMORPG) by Blizzard Entertainment taking place in the fictional world of Azeroth, the world that previous Blizzard titles in the Realtime Stategy (RTS) Warcraft series. For more information about the game itself, visit the Official World of Warcraft website.
This article will describe how install and run in on Arch Linux using Wine.
Some of this information was provided by http://www.wowwiki.com/Linux/Wine which is the best general source of information on WoW on Wine.
Contents
- 1 Introduction
- 2 Installing Wine
- 3 Installing Cedega
- 4 Installing the Game
- 5 Installing Patches
- 6 Installing in Cedega
- 7 Configuration
- 8 A customised version of Wine
- 9 Performance Tweaks
- 10 Kernel Timing Bug
- 11 Links
Introduction
As Blizzard so kindly created World of Warcraft with OpenGL support, we don't need Transgaming's Cedega, which is a non-free version of Wine with better DirectX support. Wine has as good, or better, OpenGL support than Cedega, and doesn't cost you a penny.
Running WoW is slightly more difficult than some other games with Wine, but still relatively easy. It's quite possible that you will need to patch Wine to work with WoW, however, even this process is rather simple with Arch. The following guide will explain it all, step by step.
If you do choose to purchase Cedega, which runs some games that Wine does not, for example, Guild Wars, the process is almost identical. I use Cedega myself because Wine currently doesn't cope with my Wireless USB keyboard well.
Installing Wine
Wine now no longer requires it's own special "World of Warcraft" version. The one in the repositories works fine (currently 0.9.38.1). Install both wine and unzip, which you will need later.
pacman -S unzip wine
Installing Cedega
Cedega 6.01 is available in the AUR. To get the cedega program you will need to subscribe to Transgaming ; this currently costs about £3 per month.
You also need dbus-python, which isn't a dependency of Cedega.
pacman -S dbus-python
Installing the Game
There are five options for installing World of Warcraft.
Downloading and installing via Blizzard's client
The most straightforward way of installing World of Warcraft on Linux is this method, in my opinion. On slower connections, however, you may not wish to use this method due to the fact that you will have to download the entire game, including patches.
I personally got this working with Wine 1.1.39 which I downloaded off Wine's website and compiled.
Downloading the Client
First step is to download the client. European users can download it off the european World of Warcraft website here, while people from the states would probably want to download the US client.
Installing the Game
Once the client is downloaded run it with Wine:
wine InstallWoW.exe
A window will pop up asking you which product to install. I chose to install World of Warcraft, then World of Warcraft: The Burning Crusade, and finally World of Warcraft: Wrath of the Lich King, while I was unsure if just choosing the newest expansion would install the older ones, please confirm whether this is true or not.
Troubleshooting
Not able to agree to terms
In some versions of Wine, you can not agree to the terms even though you scrolled down. Try to compile the latest Wine from source.
Wine crashes while reading terms
I had this issue where Wine chrashed as soon as I opened the terms which I must agree with before installing the game. To fix this I figured that WoW reads them from a website somewhere, and therefore uses a browser implementation to show them. Wine's equalivant for this is named [Gecko http://wiki.winehq.org/Gecko], and I had to install this in order to get it working.
Copying the CDs to a folder
This method's goal is to copy the 5 install CDs to a folder. This seems to solve problems with deciding whether a CD is mounted and needs changing or not ; I think this is a fundamental problem because Windows doesn't have the basic concept of mounting and unmounting drives.
mkdir /mnt/temp cd /mnt/temp
mount /mnt/cdrom cp -R /mnt/cdrom/* /mnt/temp umount /mnt/cdrom (repeat above for each of the 5 CDs)
Then run the World of Warcraft Installer with :
wine Installer.exe
Copying an Existing Installation
The third is to simply copy an exisiting WoW installation from a Windows drive to Linux.
NOTE: If you do not alreay have Wine installed, or have not run World of Warcraft with Wine before, you should skip down to #Installing Wine, then come back to this section. Please DO NOT SKIP this section unless you are absolutely sure you know what you are doing.
Copy the C:\Program Files\World of Warcraft directory from Windows to ~/.wine/drive_c/Program Files/World of Warcraft.
Example (assuming your windows partition is mounted at /mnt/windows and you are in your home directory) (Quotes are needed because of the spaces in the file names):
cp -R "/mnt/windows/Program Files/World of Warcraft" ".wine/drive_c/Program Files/World of Warcraft"
This will ensure that Wine knows about your WoW and will be able to configure it properly, and also ensures that WoW won't notice it has even been moved at all.
Now that you have WoW installed, skip down to #Post-Installation.
New Installation from CD
NOTE: We will assume that your Wine CD-ROM drive is "D:\" for this guide. Please use the correct letter as set up in the #Installing Wine section.
Insert the first CD, mount it, and start the installation with:
wine "D:\Installer.exe"
When it asks for the next cd, simply unmount your CD drive and mount the next CD. Make absolutely sure that you mount the CD before telling the installer to load the CD, or it may make the installation fail. If you have any issues installing using the CDs, please read the next section.
The WoW installation uses all 5 CDs, so it will take a while. Go outside and get some fresh air while the CD loads, because soon you won't have any "free time". :P
New Installation from DVD
NOTE: Note that on some WoW DVD's the installer executable is hidden and you need to mount the disc with the 'unhide' option. To do this type in a terminal:
mount -t iso9660 -o ro,unhide /dev/cdrom /media/cdrom/
Insert first the DVD. If it will be mounted automatically - just unmount.
# umount /media/dvd
Now mount manually
# mount -t iso9660 /dev/dvd0 /mnt/dvd
Now you will find the Install.exe on the DVD
~ wine /mnt/dvd/Installer.exe
Installing Patches
Now we will need to update WoW. As of today (1st July 2007), the latest version of WoW is 2.1.2.6803 . This will change over time, of course. The best place I have found to access the latest patches is http://www.wowwiki.com/Patch_mirrors
I think the simplest way of updating World of Warcraft is to download the patches (links are at the Patch Wiki) and copy them into the working directory for World of Warcraft. I have had problems with the Blizzard Downloaders either not working at all, or working very slowly. If you download them, you can reuse them if you reinstall or have an accident.
The current patches which are needed for 2.1.2.6803 are listed below
WoW-1.12.0-enGB-patch.exe wow-1.12.x-to-2.0.1-engb-patch-3.zip WoW-2.1.0-enGB-patch.exe WoW-2.1.0.6692-to-2.1.0.6729-enGB-patch.exe WoW-2.1.0.6729-to-2.1.1.6739-enGB-patch.exe WoW-2.1.1.6739-to-2.1.2.6803-enGB-patch.exe
I am British (pauses to sing "God Save the Queen"), so I use the enGB patches. There exist other patches for other versions of the game in the USA, France, Germany and Spain.
When you have downloaded the files into their own folder for neatness, copy these patches into the World of Warcraft working directory (paulr is my user name, you will need to use yours)
cp * /home/paulr/.wine/drive_c/Program\ Files/World\ of\ Warcraft/
The 1.12.x patch needs to be unzipped into the working directory
cd /home/paulr/.wine/drive_c/Program\ Files/World\ of\ Warcraft/ unzip wow-1.12.x-to-2.0.1-engb-patch-3.zip
The simplest way to install the patches seems to be to run World of Warcraft. It detects that you have downloaded the patches and doesn't do it again.
cd /home/paulr/.wine/drive_c/Program\ Files/World\ of\ Warcraft/ wine WoW.exe
You have to keep going round 5 times, it does get a bit dull, but it's fairly reliable. Accept the offer to Install the Gecko renderer when it comes up on your first patch install.
The original Wiki says you can install patches with Wine as follows:
wine wow-VERSION-LANG-patch.exe
I haven't tried this, so I can't say if this works, and I don't know how to install the zip file this way :)
If the Launcher (it displays a little box with News and Play) seems to stop when downloading, close its window and re-run WoW.exe
Installing in Cedega
Installing in Cedega is done by running the program from the menus, selecting Install, typing "World of Warcraft" in the Game name, selecting the WoW profile, navigating to the Installer.exe file using browse, and then clicking continue.
Fixes for Cedega
On my Gnome system, Cedega will not run using Alsa, it is necessary to switch to OSS.
The current version of Cedega requires you to edit the following file
gedit .cedega/configuration_profiles/cedega_6.0.1
and add the following line to the [d3dgl] section
"VertexShadersLevel" = "1.1"
Configuration
The World of Warcraft configuration file is kept in the WTF directory (do Blizzard have a sense of humour ?)
Edit it with
gedit WTF/Config.wtf
Using OpenGL
Add the following line which makes WoW run in OpenGL (hurrah !) instead of grotty old DirectX Mode (boo).
SET gxApi "opengl"
This is a REQUIREMENT for Wine, but is not required for Cedega.
Resolution and Colour depth
You can change the following two lines to set the default WoW resolution. I have a 19" Monitor so I can use the following.
SET gxColorBits "24" SET gxResolution "1440x900"
Windowing
You can run in a Window by setting this, but I haven't tried it.
SET gxWindow "1"
Sound Issues
Configuring the Buffer
If the sound makes a horrendous racket with squeaks and white noise try :
SET SoundOutputSystem "1" SET SoundBufferSize "100"
Stuttering or Static Sound
Run winecfg, and in the "Audio" tab, selected "OSS" as the sound driver, using "Standard" hardware acceleration and driver emulation enabled.
You can also set WoW to run at a higher "nice level", which will usually improve sound performance (renice must be run as root):
sudo renice -15 `pidof WoW.exe`
A customised version of Wine
If you wish to compile wine from source yourself, you will need to edit the Wine PKGBUILD. (Note that patching Wine with fixes for WoW is no longer necessary)
First, update your ABS with this command:
pacman -S cvsup abs
Next, copy the Wine PKGBUILD to /var/abs/local/wine:
cp -R /var/abs/extra/x11/wine /var/abs/local
and edit the PKGBUILD so that it looks something like this:
# $Id: PKGBUILD,v 1.12 2006/04/04 17:10:07 tpowa Exp $ # Maintainer: Dale Blount <dale@archlinux.org> # Contributor: Matt Smith (Majik) <darkknight@helpdesk.zaz.net> pkgname=wine pkgver=0.9.12 pkgrel=1 pkgdesc="Emulator of the Windows 3.x and Win32 APIs" url="http://www.winehq.com" # don't add arts, it's only a dep if configured depends=('x-server' 'libjpeg' 'libungif' 'alsa-lib' 'glut' 'openldap' 'libxslt' 'lcms' 'libxxf86dga' 'freeglut') makedepends=('alsa-lib' 'arts' 'sane') install= source=(http://ibiblio.org/pub/linux/system/emulators/wine/wine-$pkgver.tar.bz2 \ wine-$pkgver-wow_fixes.patch) build() { cd $startdir/src/$pkgname-$pkgver msg "Patching Wine..." patch -Np0 ../$pkgname-0.9.11-wow-fixes.patch msg "Done patching, starting build..." ./configure --prefix=/usr --sysconfdir=/etc --enable-opengl --with-x make depend || return 1 make || return 1 make prefix=$startdir/pkg/usr install || return 1 # expand conflicts with textutils ( doesn't exist anymore ? ) # mv $startdir/pkg/usr/bin/expand $startdir/pkg/usr/bin/wine-expand || return 1 mkdir -p $startdir/pkg/etc/wine # mkdir -p $startdir/pkg/etc/profile.d # cp -r $startdir/src/$pkgname-$pkgver/documentation/samples $startdir/pkg/etc/wine } #md5sums=('b21d359b75f07255bb5cd34384bdc3cf' 'a65f6f2d422e5ee50af8492ebd38470f')
NOTE: You can get the wine-$pkgver-wow_fixes.patch from here: http://appdb.winehq.org/appview.php?versionId=4031
Now execute the following commands to build and install your custom wine:
cd /var/abs/local/wine makepkg -w `pwd` pacman -U wine-*.pkg.tar.gz
You now have a working version of Wine!
Performance Tweaks
1. Here is a performance tweak that can boost your FPS significantly (everything without quotes):
- Open wine's version of the registry editor by running "regedit" - Navigate to HKEY_CURRENT_USER\Software\Wine\ - Select the "Wine" folder, right-click onto the folder symbol and select New-> Key and rename it to "OpenGL" - Select the OpenGL-Key, then right-click into the right-hand pane, chose New-> String Value and hit enter - Rename "New Value #1" to "DisabledExtensions" - Double-Click on the renamed Key and enter "GL_ARB_vertex_buffer_object" into the "value" field
That was it, close the registry editor again, your changes will be saved automatically.
2. If you are finding it annoying that turning your character by let's say 90 degree takes n seconds normally, but n+m seconds in pupolated areas (in other words: that the polygon count of your surroundings affects the camera turning speed), apply something to "GL_ARB_vertex_buffer_object", like let's say a "2", so it looks like this: "GL_ARB_vertex_buffer_object2". You will still have the performance boost of the above tweak, but with a smoother feeling.
Kernel Timing Bug
If you are having problems with choppy video every 15 seconds or so, it is related to the kernel scheduler. There is a custom version of the kernel in AUR here, or you can roll your own with ABS.
cp -r /var/abs/core/kernel26 ~/abs (or whatever your preferred abs directory is) cd abs/kernel26 gedit config
At this point, look for CONFIG_SCHED_DEBUG. Change
# CONFIG_SCHED_DEBUG is not set
to
CONFIG_SCHED_DEBUG=y
and save. Repeat for config.x86_64.
After the config files are changed, run
md5sum config md5sum config.x86_64
Note the sums provided. They will be needed to update PKGBUILD. Look at
source=(ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-$_basekernel.tar.bz2 ftp://ftp.archlinux.org/other/kernel26/${_patchname}.bz2 # the main kernel config files config config.x86_64 # standard config files for mkinitcpio ramdisk kernel26.preset)
and
md5sums=('5169d01c405bc3f866c59338e217968c' '003e89dd71b32ae9b93cd1601da3b1b0' '499d4841fbff665d0d0c768513018ba8' '5b5c7a9266af17d6ca3ebff420cd5381' '25584700a0a679542929c4bed31433b6')
Config and config.x86_64 are the 3rd and 4th entries in md5sums. Replace with your newly generated md5sums and save. Run makepkg as per normal.
After compiling and installing the new kernel, it may be necessary to compile new custom video drivers. For nVidia, see here.
Once the new kernel has been compiled and installed, add the following to /etc/sysctl.conf:
kernel.sched_features=21 kernel.sched_batch_wakeup_granularity_ns=25000000 kernel.sched_min_granularity_ns=4000000
and reboot.