World of Warcraft

From ArchWiki
Revision as of 23:46, 8 July 2011 by Thestinger (Talk | contribs) (Installing Cedega)

Jump to: navigation, search

Tango-edit-cut.pngThis section is being considered for removal.Tango-edit-cut.png

Reason: please use the first argument of the template to provide a brief explanation. (Discuss in Talk:World of Warcraft#)

Tango-view-refresh-red.pngThis article or section is out of date.Tango-view-refresh-red.png

Reason: please use the first argument of the template to provide a brief explanation. (Discuss in Talk:World of Warcraft#)
Template:I18n links start

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.

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

See Wine.

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 usually this method, while it may not be the fastest. 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.

It is known to work with Wine 1.1.39 which can be downloaded off Wine's website and compiled. However, you may wish to try with the newest version from the extra section, installed via Pacman like so:

# pacman -S wine

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 United States would probably want to download the US client.

Installing the Game

Once the client is downloaded run the file with Wine:

wine InstallWoW.exe

A window will pop up asking you which product to install. If you choose the latest expansion, it will install the base game and any previous expansions as well.

Troubleshooting

Not able to agree to terms

In case you can't see the license text, you probably have to install gecko, since the license is rendered as HTML.

To install it ( on 64 bit enable [multilib] )

pacman -S wine_gecko



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. Or use a version of wine it is known to work with, i.e. 1.1.39 (please add more here).

Wine crashes while reading terms

Wine crashes as soon as the terms which must be agreed to install the game opens. This is because the installer fetches the terms from a website somewhere, and therefore uses a browser implementation to show them. Wine's implementation of this is named [Gecko http://wiki.winehq.org/Gecko], and this must be installed in order for the installation to work!

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 Noevember 30th 2010, the latest version of World of Warcraft is 4.0.3.13329. 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.

When you have downloaded the files into their own folder for neatness, copy these patches into the World of Warcraft working directory.

cp * ~/.wine/drive_c/Program\ Files/World\ of\ Warcraft/

The 1.12.x patch needs to be unzipped into the working directory

 cd ~/.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 ~/.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

This method is currently still working.

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, which is confirmed to work in Wine.

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.

Links

World of Warcraft in the wine APPDB

WoWWiki

Patch Mirrors