Wine World Of Warcraft
Aus Gentoo Linux Wiki
| Installationsmethoden • LiveCDs • Kernel & Hardware • Laptops & Notebooks • Portage • System • Netzwerke & Services • X • Software • Anderes • alphabetischer HOWTO Index |
Inhaltsverzeichnis |
[Bearbeiten] Einführung
Achtung: Diese Version ist stark veraltet. Anpassungen an Wine bzw. WoW sind in der z. Z. aktuellen Version 0.9.29 kaum noch nötig, per OpenGL läuft das Spiel stabil und schnell, jedoch gibt es eine wichtige Einstellung (DisabledExtensions in der Wine-Registry), welche die Framerate massiv erhöht und bei den meisten Usern Wirkung zu zeigen scheint. Bis diese Übersetzung aktualisiert ist wird daher empfohlen, die englische Version dieses Howto unter http://gentoo-wiki.com/index.php?title=HOWTO_Install_and_update_World_Of_Warcraft_with_wine oder den Eintrag zu WoW in der AppDB von Wine unter http://appdb.winehq.org/appview.php?iVersionId=6482 zu nutzen
Dieser Artikel basiert auf seiner englischen Fassung, beschränkt sich auf das Wesentliche und befasst sich nur mit Version 0.9.13 von Wine auf einem x86-Rechner. Es sollte aber auch auf einem x64-Rechner funktionieren. Mit einem ungepatchten Wine in Version 0.9.13 lässt sich World Of Warcraft (kurz WOW) in Version 1.10.2 installieren, aber nur eingeschränkt spielen. Um WOW normal spielen zu können, sind Anpassungen nötig, mit denen sich dieses Howto befasst. Wine befindet sich in der Betaphase und es erscheint derzeit alle zwei bis drei Wochen eine neue Version. Der Inhalt dieser Seite ist daher nicht immer ganz aktuell und wird vielleicht in absehbarer Zeit hinfällig, falls WOW dann (wieder) "out of the box" läuft.
[Bearbeiten] Überblick
In diesem Howto wird beschrieben, wie man Wine 0.9.13 für WOW patcht, installiert und konfiguriert. Es folgt die Installation der Windowsversion von Mozilla mit ActiveX-Komponenten und wie man WOW installiert, auf den neuesten Stand bringt, konfiguriert und startet.
[Bearbeiten] Wine
Dieser Abschnitt wird fast durchweg als root ausgeführt.
[Bearbeiten] Wine patchen
Neben den Änderungen der Standard-Patches von Gentoo müssen noch drei weitere Dateien gepatcht werden, was hier zu einem Patch zusammengefasst ist.
Falls nicht vorhanden, wird dafür als erstes ein "Portage Overlay" erstellt. In die /etc/make.conf wird diese Zeile eingefügt
PORTDIR_OVERLAY="/usr/local/portage"
Die nötigen Verzeichnisse müssen erstellt werden. Das geht mit
mkdir -p /usr/local/portage/app-emulation/wine/files
Nun müssen ein ebuild und die Patches kopiert werden:
cp /usr/portage/app-emulation/wine/wine-0.9.13.ebuild /usr/local/portage/app-emulation/wine/wine-0.9.13-r1.ebuild cp /usr/portage/app-emulation/wine/files/* /usr/local/portage/app-emulation/wine/files/
Schließlich fehlt noch der neue Patch, den man mit einem beliebigen Editor - hier nano - erstellt
nano -w /usr/local/portage/app-emulation/wine/files/wine-0.9.13-wow_fixes.patch
die Datei bekommt diesen Inhalt:
--- wine/libs/wine/mmap.c.orig 2006-01-27 04:58:28.000000000 -0900
+++ wine/libs/wine/mmap.c 2006-01-27 05:00:46.000000000 -0900
@@ -164,7 +164,26 @@
#endif /* (__svr4__ || __NetBSD__) && !MAP_TRYFIXED */
+static void *get_anon_mmap_null_address(size_t size)
+{
+ static int got_override = 0;
+ static void *low_alloc_ptr = NULL;
+ void * current_low_alloc_ptr;
+
+ if (!got_override)
+ {
+ low_alloc_ptr = (void*)0x10000000;
+ got_override = 1;
+ }
+ current_low_alloc_ptr = low_alloc_ptr;
+
+ if (low_alloc_ptr)
+ low_alloc_ptr += size;
+
+ return current_low_alloc_ptr;
+ }
+
/***********************************************************************
* wine_anon_mmap
*
@@ -212,6 +231,8 @@
return start;
#endif
}
+ if ((start == NULL) && !(flags & MAP_FIXED))
+ start = get_anon_mmap_null_address(size);
return mmap( start, size, prot, flags, get_fdzero(), 0 );
}
--- wine/loader/preloader.c.orig 2006-01-27 04:58:29.000000000 -0900
+++ wine/loader/preloader.c 2006-01-27 05:00:46.000000000 -0900
@@ -109,8 +109,8 @@
static struct wine_preload_info preload_info[] =
{
{ (void *)0x00000000, 0x00110000 }, /* DOS area */
- { (void *)0x7ffe0000, 0x01020000 }, /* shared user data + shared heap */
- { (void *)0x00110000, 0x1fef0000 }, /* PE exe range (may be set with WINEPRELOADRESERVE), defaults to 512mb */
+ { (void *)0x80000000, 0x01000000 }, /* shared user data + shared heap */
+ { (void *)0x10000000, 0x00f00000 }, /* PE exe range (may be set with WINEPRELOADRESERVE), defaults to 512mb */
{ 0, 0 } /* end of list */
};
schließlich muss der neue Patch noch angewendet werden. Dazu muss eine neue Zeile in das ebuild und das ebuild benötigt eine neue Prüfsumme.
Quelle des Patchs:
http://appdb.winehq.org/commentview.php?appId=1922&versionId=4031&threadId=12018
nano /usr/local/portage/app-emulation/wine/wine-0.9.13-r1.ebuild
unmittelbar nach den Zeilen
epatch "${FILESDIR}"/wine-0.9.6-force-ddraw-gamma.patch #119931
sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in
epatch "${FILESDIR}"/wine-gentoo-no-ssp.patch #66002
sed -i '/^MimeType/d' tools/wine.desktop || die #117785
wird eine neue Zeile eingefügt, nämlich
epatch "${FILESDIR}"/wine-0.9.13-wow_fixes.patch
wenn alles gespeichert ist, kann nun eine neue Prüfsumme erstellt werden:
cd /usr/local/portage/app-emulation/wine/ ebuild wine-0.9.13-r1.ebuild digest
[Bearbeiten] Wine installieren
Falls es nicht ohnehin schon geschehen ist, muss die neueste Wine-Version noch demaskiert werden.
echo "app-emulation/wine ~x86" >> /etc/portage/package.keywords
außerdem muss sichergestellt sein, dass wine kompiliert wird mit den USE-Flags X, opengl und oss
wenn alles geklappt hat, kann nun wine installiert werden.
emerge wine
Ab hier sind keine root-Rechte mehr erfolderlich. Im Gegenteil: alles Weitere muss als normaler Benutzer ausgeführt werden.
[Bearbeiten] Wine konfigurieren
Sobald Wine installiert ist, kann es mit dem noch recht neuen grafischen Frontend konfiguriert werden
winecfg
Es wird empfohlen, als Windowsversion Windows XP zu wählen und für die Soundausgabe OSS zu nutzen. Die automatisch Laufwerkserkserkennung kann außerdem hilfreich sein. Dabei sollte man sich den Laufwerksbuchstaben des CD-ROM-Laufwerks merken oder notieren.
[Bearbeiten] Mozilla und ActiveX
Nachdem nun Wine installiert ist, muss als nächstes Mozilla installiert werden und anschließend ActiveX und einige dlls um das Patchsystem nutzen zu können.
Mozilla als Download findet man auf der Mozillaseite (die Windowsversion wird benötigt!) Die ActiveX-Erweiterungen für Mozilla gibt es dort: Mozilla ActiveX
Diese Dateien sollte man an sinnvoller Stelle speichern (hier in ~/.wine/drive_c/)
Damit ActiveX funktioniert werden diese zwei dlls benötigt:
msvcp60.dll mfc42.dll
Die Links sind nur ein Vorschlag, man kann auch andere Quellen nutzen, die dlls von Windows XP funktionieren allerdings nicht
Diese beiden Dateien müssen ins Systemverzeichnis ~/.wine/drive_c/windows/system
Jetzt kann Mozilla installiert werden:
cd ~/.wine/drive_c/ wine mozilla-win32-1.7.12-installer.exe
Diese Installation sollte reibungsfrei ablaufen.
Eine Datei muss vor der Installation von ActiveX noch in der Registry eingetragen werden:
regsvr32 ~/.wine/drive_c/Programme/Gemeinsame\ Dateien/mozilla.org/GRE/1.7.12_2005091517/mozctlx.dll
Anschließend können die ActiveX-Komponenten installiert werden
wine MozillaControl1712.exe
[Bearbeiten] WoW
In diesem Howto wird WoW direkt von den CDs installiert, es ist aber auch möglich, erst die CDs auf Festplatte zu kopieren und dann von Festplatte zu installieren.
[Bearbeiten] Installation von CDs
Die Installation von WOW wird viel Zeit in Anspruch nehmen - die neueren Versionen bringen 5 CDs mit sich und benötigen gut 5 GB Festplattenspeicher.
Sollte bei der automatischen Laufwerkserkennung vorhin etwas schiefgegangen sein, muss das Laufwerk noch manuell mit winecfg konfiguriert werden. In der Regel sollte aber alles glattgegangen sein.
Die erste CD muss ins Laufwerk und gemountet werden. Die Installation wird gestartet mit:
wine d:\installer.exe
Dabei muss d:\ ggf. durch den Laufwerksbuchstaben des CD-ROM-Laufwerkes vom Anfang ersetzt werden.
DirectX soll auf jeden Fall nicht installiert werden. Wenn die nächste CD verlangt wird, muss man sie unmounten, die nächste CD mounten und fortfahren.
Die EULA werden möglicherweise nicht lesbar sein.
[Bearbeiten] WOW auf den neuesten Stand bringen
Mit den neuesten Versionen von Wine können Probleme beim Aktualisieren auftreten. Sollte die folgende Prozedur fehlschlagen, kann man die Patchdateien auch von einschlägigen WOW-Seiten herunterladen und installieren.
cd ~/.wine/drive_c/Programme/World of Warcraft wine WoW.exe -opengl
Es kann auch ohne den Parameter -opengl funktionieren, wird aber zu schwerwiegenden Grafikfehlern führen, da Direct3D von Wine noch unvollständig ist.
Der Updater sollte automatisch starten. Sollte der Updater nicht alles automatisch machen oder gar nicht funktionieren - und die Patches wurden manuell heruntergeladen, so lassen sie sich installieren mit
wine <patchname>.exe
Das kann wieder eine ganze Weile dauern. Das ist ganz normal.
WOW kann nun gestartet, aber vermutlich noch nicht sinnvoll gespielt werden mit
cd ~/.wine/drive_c/Programme/World of Warcraft wine WoW.exe -opengl
[Bearbeiten] WOW konfigurieren
Um einige gängige Probleme zu beheben (zum Beispiel Aussetzer und Verzerrungen im Ton), müssen noch ein paar Dinge angepasst werden. Dazu öffnet man die ~/.wine/drive_c/Programme/World of Warcraft/WTF/Config.wtf und fügt ans Ende diese Zeilen an:
SET SoundBufferSize "200" SET gxApi "opengl" SET ffxDeath "0" SET gxResolution "800x600"
Die Auflösung von 800x600 kann man im Spiel ändern. Bei schwachen Grafikkarten ist es aber ratsam, mit einer kleinen Auflösung zu starten. Die Puffergröße für den Sound ist in Millisekunden abgegeben. Daran kann man verschiedene Werte testen. Zu kleine Werte führen zu Aussetzern oder Verzerrungen. zu große Werte führen zu einem erkennbaren Versatz zwischen Bild und Ton. 200 Millisekunden sind eine defensive Einstellung. Meistens sind (deutlich) kleinere Werte möglich.
Außerdem wird man den Wineprozess "nicen" müssen. Das heißt, man startet WOW mit
nice -n 19 wine "C:\Programme\World of Warcraft\WoW.exe"
(Den -opengl-Schalter kann man weglassen, wenn man SET gxApi "opengl" in die Config.wtf eingetragen hat.)
[Bearbeiten] ATI
Ein (derzeit) neuer Treiber ist unbedingt notwendig. Mit alten Versionen gibt es zwansläufig Probleme.
Es kann außerdem helfen, in die Config.wtf die Zeile
SET renderer "d3d"
einzutragen
[Bearbeiten] nVidia
Sehr oft wird festgestellt, dass die Leistung miserabel ist. Wenn die Grafikkarte nicht zu neu ist, erreicht man meist ein deutlich besseres Ergebnis mit älteren Treiber (1.0-66xx)
[Bearbeiten] WOW spielen
WOW startet man also mit
nice -n 19 wine "C:\Programme\World of Warcraft\WoW.exe"
Beim Beenden kann es vorkommen, dass die Konfiguration nicht korrekt gespeichert wird. Das heißt, wenn man an den Grafik- oder Toneinstellungen etwas geändert hat, sollte man zuerst seinen Charakter ausloggen und dann das Programm beenden. Im Normalfall kann man aber auch so das Programm verlassen.
[Bearbeiten] weiterführende Links
Dieser Artikel basiert auf seiner englischen Version, die wesentlich detailierter ist. Sollten hier Fragen offen geblieben sein, so hilft der englische Artikel vielleicht weiter.
