League of Legends - Installazione nuovo client con Wine e Winetricks

lol_blueprint

Ciao a tutti.

Essendo il sabato, come noto, il giorno particolarmente preferito da tutti i trollazzi di questo mondo, un sabato di molto tempo fa ho deciso di non giocare a LoL, e di approfittare del tempo libero per fare prove di installazione e configurazione per il nuovo client Beta.

La novita’ sta nel non utilizzare Playonlinux, sostituito da winetrick e una gestione a linea di comando.

Io ho un sistema a 64bit, l’ambiente che andro’ a creare per League of Legends sara’ a 32bit, per una maggiore compatibilita’. In passato ho dovuto installare varie librerie a 32bit per poter utilizzare wine a 32bit: niente di speciale, basta leggere gli errori e installare quanto richiesto. In questa guida daro’ per scontato che tutte le necessarie librerie a 32 bit siano gia’ state installate.

N.B.: Causa pigrizia ho impiegato molto tempo a completare questa guida, e nel frattempo molte cose sono cambiate. In meglio. Conto di aggiornare la guida in modo che sia ancora valida e omogenea nel complesso.

  • Data inizio scrittura guida: 13 Maggio 2017
  • Sistema operativo ai tempi dell’installazione: GNU/Debian Jessie
  • versione di wine-staging ai tempi: 2.12.0
  • Data fine scrittura guida: 13 Maggio 2017
  • Sistema operativo attuale: GNU/Debian Testing (Buster)
  • versione di wine-staging attuale: 2.17.0

Preparazione: wine-staging e winetricks

Essendo Jessie una stable, i pacchetti wine sono molto datati, e vanno sostituiti. Edit: Questo vale anche per la versione Testing

Una buona cosa per evitare complicazioni e’ rimuovere tutti i pacchetti wine e collegati.

# eseguire da root
apt-get remove --purge wine*

Adesso installiamo i nuovi pacchetti

# eseguire da root
#
# la prossima riga installa la chiave del repo
wget https://dl.winehq.org/wine-builds/Release.key && apt-key add Release.key
#
# la prossima riga installa il repo dove prenderemo wine-staging
echo 'deb https://dl.winehq.org/wine-builds/debian/ testing main' > /etc/apt/sources.list.d/winehq.list
# aggiorniamo la lista pacchetti
apt-get update
#
# la prossima riga  installa i pacchetti wine-staging
apt-get install winehq-staging wine-staging-amd64 wine-staging-i386:i386
#
# la prossima riga scarica e rende eseguibile lo script winetricks
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks -O /usr/local/bin/winetricks && chmod +x /usr/local/bin/winetricks

Ho fatto un rapido controllo tramite

aptitude search ~iwine

Preparazione ambiente del gioco

Abitualmente metto i giochi dentro la directory ~/giochi, quindi ~/giochi/League_Of_Legends:

# qui siamo in userspace
#
# la prossima riga crea l'ambiente di lavoro in ~/giochi/League_Of_Legends/LoL32
WINEPREFIX=~/giochi/League_Of_Legends/LoL32 WINEARCH=win32 wine winecfg
#
# prossima riga installa dei componenti essenziali al gioco
WINEPREFIX=~/giochi/League_Of_Legends/LoL32 WINEARCH=win32 winetricks vcrun2015 d3dx9
# completare le installazioni

Adesso andiamo a configurare il registro di wine!

# qui siamo in userspace
#
WINEPREFIX=~/giochi/League_Of_Legends/LoL32 WINEARCH=win32 winecfg

Ecco la lista delle cose essenziali da fare:

  • Impostare la versione a Windows XP
  • Nella scheda Librerie eliminare tutte le righe eccetto quelle relative a:
    • d3dx9
    • msvcp140
    • vcomp140
    • vcruntime140
  • OPZIONALE: nella tabella Staging, abilitare la casella CSMT. Questa funzione sperimentale puo’ apportare grande beneficio alle prestazioni, oppure causare instabilita’ in molti altri casi. Fare delle prove. Io l’ho disabilitata dopo aver visto un incremento di carico nella CPU.
  • OPZIONALE: e’ possibile emulare un desktop virtuale, impostando la risoluzione uguale a quella del vostro desktop. Senza il desktop virtuale emulato da wine, le finestrelle aperte cliccando col tasto destro del mouse sui contatti della friendlist saranno molto difficili da utilizzare in quanto tenderanno a scomparire (EDIT: questo bug e’ stato risolto dalla versione di wine-staging 2.15). Io comunque ho lasciato disabilitata questa opzione.

Ci sono tante combinazioni di settaggi da provare, quindi ho pensato di rendere la mia installazione flessibile: info nella sezione dedicata!

configurazione_winecfg

Installazione Client Beta

Ed eccoci qui, nella sezione piu’ lunga o piu’ corta, in termini di tempo richiesto.

Caso Facile

Essendo gia’ in possesso di una installazione funzionante del gioco ho pensato bene di copiare la directory del gioco dentro il mio ambiente wineprefix:

cp <PATH>/Riot\ Games ~/giochi/League_Of_Legends/LoL32/drive_c/

fine. Prossimo step!

Caso luuuungo

Se e’ la prima installazione o comunque si vuole una installazione pulita (gli aggiornamenti dal Vecchio Client mantengono GB di roba inutilizzata! WP RIOT XD), scaricare il file di installazione da qui, e avviare l’installazione:

WINEPREFIX=~/giochi/League_Of_Legends/LoL32 WINEARCH=win32 wine ~/Scaricati/LeagueOfLegendsBaseNA.exe

Completare l’installazione, facendo attenzione a NON avviare il gioco in automatico alla fine dell’installazione (comportamento predefinito).

Quasi pronti per giocare

In verita’ e’ gia’ tutto pronto, il comando per far partire il gioco e’:

WINEPREFIX=~/giochi/League_Of_Legends/lol32 WINEARCH=win32 wine "C:/Riot Games/League of Legends/LeagueClient.exe"

Tutto molto spartano; quindi d’ora in avanti le prossime sezioni saranno opzionali ed interamente dedicate a migliorare la qualita’ della vita del giocatore di LoL.

OPZIONALE: installazione flessibile

In cosa consiste? Consiste nell’installare il gioco solo una volta e avviarlo da ambienti WINEPREFIX differenti, per provare varie opzioni nell’emulazione.

Tutto cio’ e’ possibile facendo uso dei collegamenti simbolici.

Supponiamo di aver creato due ambienti WINEPREFIX:

  • ~/giochi/League_Of_Legends/VirtualDesktop
  • ~/giochi/League_Of_Legends/FullScreen

E supponiamo che il gioco si trovi in “~/league_of_legends/Riot Games” (le virgolette si rendono necessarie in presenza di spari nel path), dobbiamo collegare il gioco ad ognuno degli ambienti WINEPREFIX:

ln -s "~/giochi/League_Of_Legends/Riot Games" "~/giochi/League_Of_Legends/VirtualDesktop/drive_c/Riot Games"
ln -s "~/giochi/League_Of_Legends/Riot Games" "~/giochi/League_Of_Legends/FullScreen/drive_c/Riot Games"

OPZIONALE: Script di avvio e kill

E’ possibile inserire il comando per avviare il gioco in un file di testo e renderlo eseguibile

Questo e’ un esempio di script di avvio del gioco

#!/bin/bash
WINEPREFIX=~/giochi/League_Of_Legends/lol32 WINEARCH=win32 wine "C:/Riot Games/League of Legends/LeagueClient.exe"

Ovviamente lo script necessita del permesso di essere eseguito, impostabile tramite interfaccia grafica (tasto destro, proprieta’, bla bla..), oppure tramite il comando chmod

chmod +x  ~/giochi/League_Of_Legends/start_lol32

Ovviamente il comando va adattato specificando il corretto path che individua lo script

Un bug di wine che ho notato e’ che spesso il server wine continua a macinare CPU anche dopo la chiusura del gioco. Si rende necessario uno script per assicurarsi agevolmente di aver chiuso definitivamente tutti i processi coinvolti. Ecco uno script che fa al caso:

#!/bin/bash
WINEPREFIX=~/giochi/League_Of_Legends/lol32 WINEARCH=win32 wineserver -k

OPZIONALE: Richiamare gli script di avvio dal menu’

Molto facile:

  • utilizzare l’apposito programma grafico in dotazione al vostro Desktop Environment (Gnome, KDE, etc. etc.);
  • scriverli a mano.

Ecco un esempio: ~/.local/share/applications/lol32.desktop

[Desktop Entry]
Encoding=UTF-8
Name=League Of Legends
Comment=League of Legend winetricks fresh clear client
Type=Application
Exec=/home/pillaz/giochi/League_Of_Legends/lol32/lol32
Icon=/home/pillaz/giochi/League_Of_Legends/lol32/lol
Categories=Game;

Similmente creare la voce che richiama lo script per chiudere wineserver

OPZIONALE: Backup

La Riot stessa raccomanda di prendere in considerazione l’idea di tenere backup periodi del gioco. Cio’ e’ ancora piu’ consigliato nel nostro caso!

Ovviamente e’ anche estremamente piu’ facile:

rsync -ra --delete "~/giochi/League_Of_Legends/Riot Games" "~/giochi/League_Of_Legends/Riot Games backup"

E’ buona norma effettuare il backup prima di aggiornare il client alla nuova patch del gioco


Comments