League of Legends unter Ubuntu / Linux Mint

Hinweis: Die letzte funktionierende bekannte WINE Version mit diesem Tutorial ist Version 1.3.16! Alles darüber hat bei mir zuletzt nicht funktioniert. Im Fall der Fälle alles bitte immer diese Version benutzen!

Dieses kleine Tutorial soll zeigen, wie einfach es ist das Spiel League of Legends unter Linux lauffähig zu machen.

Für dieses Tutorial dient das Debian basierende Ubuntu bzw. Linux Mint als Grundlage. Im Endeffekt kann es jedoch auch auf jede andere Linux Distribution ebenso übertragen werden.

Um League of Legends jedoch überhaupt lauffähig zu bekommen, muss man sich WINE jedoch selbst bauen. Leider lässt sich dies nicht vermeiden, da es einer Änderung im Quellcode durch einen s. g. Patch bedarf. Andernfalls stürzt einem der Launcher beim Start jedes Mal ab, da WINE nicht weiß, wie es eine gewisse Angabe zu interpretieren hat.

Installation der Anforderungen

Die Installation der Anforderungen unter Ubuntu ist äußert einfach. Hierfür muss lediglich innerhalb einer Konsolen- / Terminalsitzung folgender Befehl ausgeführt werden:

sudo apt-get build-dep wine1.2

Was passiert jetzt in diesem Moment? Das ist relativ einfach erklärt. Mit Hilfe dieses Befehl werden alle Pakete, welche für das Bauen von WINE benötigt werden heruntergeladen und auf dem System installiert. Der Paketmanager (apt-get) weiß deshalb, welche Pakete benötigt werden, da er einfach die gleichen Pakete herunterläd, welche auch für das Bauen der Binären Version im Paketmanager verwendet wurden.
Dieser Vorgang kann nun etwas Zeit beanspruchen. Entweder man lässt die Konsolen Sitzung im Hintergrund einfach weiterarbeiten und widmet sich dem nächsten Punkt, dem Herunterladen des Sourcecodes, oder aber man wartet ab, bis apt die Aktion endgültig abgeschlossen hat.

Herunterladen des Sourcecodes und des benötigten Patches

Wie bereits erwähnt benötigt man, um League of Legends mit WINE spielen zu können, einen Patch, der WINE entsprechend so anpasst, dass diesem klar wird, wie er mit der API (?) umzugehen hat. Andernfalls würde der Launcher dauerhaft abstürzen, ohne das man auch nur die Chance hätte sich einzuloggen.
Bevor wir jedoch den Patch anwenden können, müssen wir uns erst einmal den Source von WINE herunterladen. Dieser kann einfach über die Homepage der WineHQ bezogen werden. Ich stelle hier nun auch einen direkten Link bereit, welcher nach dem Stand von heute (31.01.2011) noch auf den aktuellen Sourcecode verweißt. Nichts desto trotz lohnt es sich in jedem Fall nachzusehen, ob es evtl. bereits eine neuere Version gibt. Zum Download des Sourcecodes bitte folgenden Befehl in der Kommandozeile eingeben:

wget http://puzzle.dl.sourceforge.net/project/wine/Source/wine-1.3.16.tar.bz2

Bei wget handelt es sich um ein kleinen Downloadmanager als Konsolenprogramm. Je nachdem, wie schnell der Server ist und wie schnell die Leitung kann der Download natürlich auch ein paar Minuten benötigen. Anschließend haben wir die Möglichkeit den soeben heruntergeladenen Sourcecode zu entpacken, da uns dieser nämlich aktuell nur gepackt in Archivform vorliegt. Entweder man erledigt dies über die grafische Ebene, oder aber fast genauso einfach, man tut dies per Kommando in der Konsole:

tar xfvj wine-1.3.16.tar.bz2

Sobald dies abgeschlossen ist können wir mit Hilfe des Befehls “cd” in das Verzeichnis des entpackten WINE Sourcecodes wechseln:

cd wine-1.3.16

Nun müssen wir (wie oben erwähnt) noch den Patch anwenden um den Launcher mit WINE lauffähig zu bekommen. Hierfür müssen wir uns diesen selbstverständlich erst einmal downloaden. Auch hier greifen wir wieder auf wget zurück:

wget http://bugs.winehq.org/attachment.cgi?id=25672 -O ./ole-force-inproc-instead-of-local.patch

In diesem Fall übergeben wir wget sogar noch einen weiteren Parameter, nämlich -O und den Dateinamen, wie der Download später tatsächlich auf unserem Dateisystem bezeichnet werden soll.

Da wir nun alle Anforderungen abgeschlossen bzw. vorbereitet haben, können wir ans eingemachte gehen, dem Patchen und Kompilieren des Sourcecodes, sowie der anschließenden Installation der Binärpakete.

Patchen, Kompilieren und Installieren

Da wir uns noch immer im richtigen Verzeichnis befinden (dem von unserem entpackten Sourcecode / Quellcode) können wir nun direkt den Patch, welchen wir vorhin heruntergeladen hatten, anwenden. Dies geschieht relativ einfach mit folgendem Konsolenbefehl:

patch -p1 < ole-force-inproc-instead-of-local.patch

Anschließend ist WINE bereits gepatcht und es kann kompiliert werden. Für diesen Schritt muss zuerst folgender Befehl in der Konsole ausgeführt werden:

./configure

Nun bestimmt WINE bzw. der configure Vorgang, welche Abhängigkeiten benötigt werden und welche dem make Vorgang später zur Verfügung stehen werden. Z. B. wäre es auch möglich WINE ohne entsprechende Sound Bibliotheken zu kompilieren, jedoch würde das logischerweiße dazu führen, dass keine Soundausgabe zur Verfügung steht. Wenn nun einige Fehlermeldung und / oder Warnungen am Ende der Konsolenausgabe zu sehen sein sollten, so können diese ruhig ignoriert werden. Wir konnten durch das Installieren der o. g. Bibliotheken (mit Hilfe des build-dep Befehls) sicherstellen, dass alle die für uns nötigen Abhängigkeiten für den nachfolgenden Kompiliervorgang gewährleistet sind. Aus diesem Grund gehen wir nun auch direkt einen Schritt weiter und werden den eigentlichen Kompilierungsvorgang / Bau von WINE starten. Dazu muss folgendes in der Konsoleeingabe ausgeführt werden:

make depend && make

Dies kann nun wirklich sehr sehr lange dauern. Das bedeutet, das je nach Rechenleistung durchaus auch einmal 1-2 Stunden ins Land gehen können. Bei meinem stationären Linux PC (AMD X2 245e (?), 2GB DDR2) dauert es jedoch ca. nur 30 Minuten. Sobald in der Konsole ein “finished” zu lesen ist und man nun auch wieder Eingaben tätigen kann, ist der Vorgang beendet. Damit ist man auch schon mit dem Größten und mit Sicherheit “anstregendsten” Teil durch. Nun erfolgt der letzte Schritt, nämlich die Installation. Durch den oben durchgeführten “make” Vorgang wurden anhand der Informationen des Linux Kernels etc. die Binärpakete gebaut, die unser Ubuntu / Linux Mint nun auch versteht und ausführen kann. Da wir dies nun auch noch entsprechend in das Linux System installieren möchten, gibt es hierfür für make ebenfalls einen Befehl, der da lautet:

sudo make install

Wie zu erkennen ist, muss dieser Befehl mit root Rechten ausgeführt werden (sudo), da u. a. die Binärpakete nach /usr/bin installiert werden und dieser Pfad nicht für normale Benutzer schreibbar ist.
Das wars! Somit ist WINE gepatcht und entsprechend installiert worden, so dass nun mit der eigentlichen Installation des Spiels / League of Legends begonnen werden kann.

Installation der Anforderungen für League of Legends

Wenn ihr es bis hierher geschafft haben solltet, dann wird euch mit Sicherheit auffallen, dass es nun wirklich “einfach” wird. Da League of Legends einige Anforderungen hat (z. B. DirectX9) und wir diesem natürlich in WINE ebenso gerecht werden müssen, müssen wir nun quasi an die Anforderungen, die das Spiel an unseres System stellt, nachkommen. Hierfür gibt es für Ubuntu / Linux Mint das benötigte Hilfsmittel gleich im Paketmanagement, was uns die Sache dann auch sogleich noch etwas vereinfacht. Wir benötigen das Paket “winetricks”. Dieses kann entweder mit der grafischen Paketoberfläche “Synaptic” installiert werden, oder aber wie hier über einen einfachen Befehl in der Konsole:

sudo apt-get install winetricks

Auch hier führen wir also wieder etwas mit root Rechten aus (sudo), und übergeben der Paketverwaltung (apt) den Befehl etwas zu installieren (install winetricks).
Da dieses Paket gerade einmal wenige Kilobytes groß ist, sollte die Installation doch relativ zügig ablaufen. Anschließend können wir bereits in der Konsole mit winetricks arbeiten. Da wir nun DirectX9, die Visual C++ Runtime und den Internet Explorer 6 benötigen (dies sind eben die Anforderungen von League of Legends) führen wir nun einfach folgenden Befehl in der Konsole aus:

winetricks d3dx9 vcrun2005 ie6

Was geschieht nun? Das ist relativ schnell und einfach erklärt. winetricks lädt nun von den Microsoft Seiten die entsprechenden Installationsdateien für DirectX9, der Visual C++ Runtime 2005 und des Internet Explorers 6 in ein temoräres Verzeichnis herunter. Anschließend öffnet es mit Hilfe von WINE die soeben heruntergeladenen Dateien. Nun können wir bereits nach dem Bekannten Windows Prinzip (grafisch, klickend) die Anforderungen installieren. winetricks passt anschließend automatisch noch einige Dinge innerhalb von WINE an, damit dies zukünftig weiß, das es mit echten DirectX9 und anderen Bilbiotheken zu arbeiten hat und diese auch entsprechend so behandelt werden (dies ist nun wirklich eine einfach Erklärung von meiner Seite).
Diese Vorgänge dauern in der Regel nicht allzu lange, so dass nach der Installation der Paketen bereits die Anforderungen abgeschlossen sind. Nun ist es ein leichtes, die Installation von League of Legends selbst durchzuführen und den League of Legends Launcher entsprechend zu starten.

Installation von League of Legends

Aktuell gibt es ein Problem bei der Installation von League of Legends mit WINE, nämlich, dass der Downloader für den eigentlichen Installer nicht funktioniert. Aus diesem Grund muss der Installer fernab vom League of Legends Downloader heruntergeladen werden. Dies ist z. B. dadurch möglich, dass diesen von diversen anderen Seiten bezieht. Hierfür muss leider Google oder Konsorten abgestrengt werden. Alternativ gibt es natürlich auch die Möglichkeit, League of Legends von einer bestehenden Installation zu kopieren. Dies kann z. B. aus einer virtuellen Maschine heraus, aus einer echten Windows Installation, oder aber auch einfach nur von einem guten Freund / Kollegen sein.
Ich gehe hier jetzt weiter auf die Installation mit dem Installer ein, d. h. dass man ggf. umdenken muss, wenn z. B. League of Legends einfach nur kopiert wurde. Sobald der Installer sich nun also auf unserem Linux System wiederfindet, muss lediglich innerhalb der Konsole in das entsprechende Verzeichnis navigiert werden. Dies geschieht mit dem bereits bekannten Befehl “cd”. In meinem Bespiel befindet sich der League of Legends Installer in meinem Homeverzeichnis, wo man sich bekanntlich beim Starten eines Konsolenfensters direkt  befindet:

cd LoLInstaller

Anmerkung: Der Ordnername “LoLInstaller” muss selbstverständlich durch den eigentlich entsprechenden Namen ersetzt werden.

Nun befinden wir uns bereits im Verzeichnis, aus dem wir nun Leaugue of Legends installieren können. Da wir WINE vorhin installiert haben steht uns dieses nun auch zur Verfügung. In einer Konsole geben wir nun also folgendes Kommando ein:

wine setup.exe

Nach kurzer Zeit sollte der evtl. bereits bekannte League of Legends Installer aufgehen. Diesen einfach durchlaufen lassen / sich durchklicken. Dinge wie der Installationspfad von LoL können genauso belassen werden, wie diese vorgeschlagen werden.
Auch hierfür wieder ein paar Minuten Zeit einplanen, bis die Installation letztendlich komplett durchgelaufen ist.

Am Ende des Setups frägt uns der Installer bekanntlich noch, ob wir League of Legends nun sofort starten möchten. Diesen Haken bitte entfernen, den wir wollen dies händisch jetzt gleich selbst tun.

Der erste Start

Wir sind soweit, es kann losgehen! WINE wurde von uns vorbereitet, explizit compiliert, League of Legends sollte ebenfalls mit den Anforderungen zufrieden sein, also lasst uns loslegen!
Wenn keine weiteren Änderungen während der Installation von League of Legends vorgenommen wurden (Installation nach C:\Riot Games\), dann ist es uns nun möglich in das WINE Benutzerverzeichnis zu wechseln mit folgendem Befehl:

cd ./.wine/drive_c/Riot\ Games/

In diesem Fall navigieren wir von dem Verzeichnis heraus, wo wir uns aktuell befinden (deshalb der . vor .wine) in das Installationsverzeichnis von League of Legends. Solltet ihr eure Version von League of Legends kopiert haben und diese liegt nun in einem anderem Verzeichnis, dann müsst ihr den Pfad oben entsprechend anpassen.

Nun können wir das Spiel mit Hilfe von WINE starten:

wine lol.launcher.exe

Nicht wundern, dass nun evtl. die Buttons nicht angezeigt werden. Das Problem ist aktuell bekannt, ihr könnte diese aber nach wie vor ohne weiteres anklicken!

Der League of Legends Launcher sollte nun wir gewohnt aufgehen und den Patchvorgang durchführen. Auch dieser sollte keinerlei Probleme verursachen.

Troubleshooting

Leider gibt es noch einige Probleme, welche auftreten können (WINE Version Stand 1.3.13).

1. Keine Soudausgabe im Spiel
Einfache Lösung hierfür ist es, in der Konsole das WINE Konfigurationsmenü aufzurufen (mit Hilfe des Befehls winecfg) und unter dem Reiter “Bibliotheken” die “mmdevapi.dll” hinzuzufügen und diese auf “Disabled” zu setzen.

2. Performanceprobleme
Zum Steigern der Performance habe ich einen komplett eigenen Bloggeintrag (auf Englisch!) verfasst: https://unixblogger.wordpress.com/2011/02/07/improfe-the-performance-of-lol-in-wine/

3. Spiel hängt sich beim Chatten auf
Auf hierfür gibt es eine einfache Lösung. Startet wieder mit winecfg das Konfigurationsmenü von WINE und ändert direkt im ersten Reiter (Anwendungen) die Windows Version auf 2000.

Abschlussworte

Ich hoffe,ich konnte mit diesem Tutorial etwas helfen. Ich denke derzeit auch darüber nach, evtl. fertige Pakete für Ubuntu / Linux Mint und League of Legends anzufertigen, so dass dies der Einfachheit besser für den Endbenutzer zu bedienen / zugänglich ist.
Sollten nun trotz der langen Anleitungen noch Fragen (Verständisfragen, Probleme, etc.) vorhanden sein, so seit bitte so frei und teilt mir diese hier mit. Ich bin sicher, dass ich helfen kann 🙂

Ergänzung vom 02.03.2011 (vielen Dank an amazonuser)

Für alle, bei denen es Probleme gibt bei der Darstellung der Texturen (keine Türme, oder Fiddle Stick / Mordekaiser werden nicht angezeigt), muss GLSL deaktiviert werden. Dies kann sehr einfach mit Hilfe von winetricks erledigt werden, indem man nachfolgenden Befehl in der Konsole eingibt (darauf achten, dass man sich vorher im richtigen Verzeichnis befindet, wo das winetricks Script auch wirklich liegt):

winetricks glsl-disable

Anschließend sollten alle Texturen entsprechend dargestellt werden.

Improve the performance of LoL in WINE

NOTE: This will work with Mac OS X AND every known Linux distribution.

NOTE2: A special thanks flies to the maintainer and tester of the WINE AppDB which have found out, how to deal with the problematic Glow and Mouse Over Effects!

Since I’ve playing League of Legends with WINE, I’m played a little bit with the graphical settings at all.

In the official AppDB of WINE you can see some improvements, which I will write here down again. But that is not all, you can also do some things more to improve your FPS at all.

So, let us start with the known things from the AppDB.

At first, go to your League of Legends installation directory. If you are there, go to the directory “game/DATA/CFG/defaults”. Here you will got some files, but only 2 of these things are interesting for us, the Game.cfg and the GamePermanent.cfg.

Open now the Game.cfg and search for “[MouseOverEffect]”. If you found this one, open it with your favourite editor and change in this sections the value:

Style = 2

to the value

Style = 0

That’s all in this file. Save it and close!

Now, we come to the GamePermanent.cfg. Open it and search for “[FriendlyNameTag], [EnemyNameTag], [PlayerNameTag]”.
In every of the named sections, there is a part which is called

Glow = 2

now, easily change this lines to

Glow = 0

This will disable the Glow Effects, which you see, when you will go with your mouse on one over the units or heroes in the game. These Glow Effects will normally drop down your FPS heavily, so by disabeling them, we counter this one.

Now you have done the first part of the tweaking. At next, you have to change some settings in Game. These settings are at the graphical part (ESC –> Graphics).

If you are there, you should disable the shadows and VSync. This will give you a FPS boost for round about 20 FPS in my case.
You should also set the frame cap limit from “stable” to 60 FPS. This also will help you to get more FPS, because League of Legends will not use the average FPS value anymore.

Now, you’re done. You will have changed everything which is possible to get more FPS out of the game with WINE. So, I wish you a lot of fun 😉

If you have any questions, you’re welcome!

Greetings

ReCon