Emulare Lineage 2 su Linux
Quante volte avete provato ad emulare Lineage 2 (voce su Wikipedia) su Linux, e non avete mai ottenuto risultati soddisfacenti?
Io ci ho perso un paio di giorni. Non sono riuscito a giocare, ma ho scoperto alcune cose interessanti che potrebbero tornarvi utili.
Wine o Cedega?
Innanzi tutto, è bene sapere che differenza c’è fra le due applicazioni. Wine (Wine Is Not Emulator, acronimo ricorsivo) è decisamente più completo, e permette di utilizzare gran parte delle applicazioni per Windows ricostruendo le sue API. Cedega (voce su Wikipedia) è un fork più specifico, in particolare si occupa di emulare al meglio le librerie DirectX per il rendering 3d: è quindi particolarmente adatto per emulare i videogiochi.
In realtà, sarete probabilmente costretti ad utilizzare entrambi i motori per riuscire a completare correttamente le operazioni di installazione/patching. Esistono, comunque, howto specifici per Wine, in particolare è stato relativamente utile quello disponibile su WineHQ.
Wine: il problema
Il problema di Wine riguarda specialmente le configurazioni del mouse: utilizzando una versione di Wine ufficiale il nostro cursore tende a gravitare sempre verso il centro, togliendoci la possibilità di muoverci liberamente nello schermo. Ovviamente qualcuno ha pensato bene di creare una patch (No mouse centering hack
). E’ anche possibile scaricare una versione già patchata di Wine, che necessita solo ed esclusivamente di essere compilata. Per patchare Wine, dopo aver scaricato i sorgenti ufficiali, eseguite i seguenti comandi:
$ cd [Cartella dell'archivio scompattato con i sorgenti di wine]
$ cd dlls/dinput
$ patch -i mouse_center_hack.diff # La patch deve essere in dlls/input
Cedega: il problema
Su Cedega (attualmente siamo alla versione 5.2.x) non avrete bisogno di patchare alcunchè, basterà semplicemente installare l’applicazione (sono disponibili pacchetti .rpm, .deb, ecc…). Ricordate che è software commerciale, e quindi deve essere comprato. Potete comunque utilizzare WineX, che è l'equivalente gratuito di Cedega, ma non dispone della GUI (Graphical User Interface - Interfaccia Grafica) e di alcune funzionalità (approfondimenti su volalibero.it).
Il problema di Cedega è che spesso non riesce ad emulare le patch dei server unofficial, e quindi per quelle è necessario sfruttare Wine.
Una volta partito il gioco, inoltre, potreste avere problemi nel visualizzare alcune armature. Niente di grave insomma, ma considerate sempre Wine come alternativa a ciò che Cedega in quanto fork non può fare.
I problemi comuni
Entrambi i progetti tuttavia condividono, direttamente o non, gli stessi problemi.
-
Ogni distro è una storia
Ogni distribuzione ha i propri pregi, i propri difetti, le proprie caratteristiche. E’ inevitabile quindi che anche i risultati di un’emulazione siano diversi. Sulla pagina di Lineage II relativa al database di WineHQ troverete alcune informazioni più specifiche al riguardo. In particolare, vi è una lista di distribuzioni su cui è stato effettuato del testing (cliccate su
[Show]
per visualizzare la documentazione relativa al vostro SO Linux. -
Hardware
E’ facile riscontrare problemi anche fra chi condivide le stesse scelte nell’ambito della distribuzione Linux utilizzata. Questo è dovuto al fatto che Lineage 2 richiede driver ed hardware aggiornato, in particolare per quel che concerne le schede video. Io ho una nVIDIA GeForce 5600, e con gli ultimi driver 9629 non ho mai avuto problemi. E voi?
-
Questioni di shard
Ogni shard necessita delle opportune modifiche nella cartella "system/" della vostra copia di Lineage 2. E’ evidente quindi che a seconda del server variano anche le possibilità di corretto funzionamento del gioco. Con NSG Servers il client è partito al primo colpo.
-
Chronicle? GameGuard!
Se la memoria non mi inganna, a partire dalla Chronicle 3 è stato introdotto un nuovo sistema anti-hacking, di nome GameGuard, che è un vero e proprio demonio per noi poveri utenti Linux alle prese con una difficile emulazione. Nella maggior parte dei casi (mio compreso) GG resta l’unico, purtroppo impossibile, ostacolo da superare.
Suggerimenti e consigli
In quei due giorni (oserei dire mal spesi…) ho appuntato quei procedimenti che consideravo utili ai fini di una corretta emulazione del gioco. Cercherò di suddividerli per stato.
Installazione
E’ preferibile un’installazione via Wine, poichè con Cedega può capitare di ottenere qualche oscuro errore relativo al registro di sistema. Tuttavia, anche con Cedega l’installazione va sostanzialmente a buon fine.
Un consiglio che posso dare a voi temerari che mi leggete, è quello di provare ad installare il gioco su Windows, e copiare la cartella di installazione presente nella directory dei programmi (es. "C:\Programmi\Lineage II\") in quella di Wine (es. "~/.wine/drive_c/Program Files/") o Cedega (es. "~/.cedega/$GameFolder/c_drive/Program Files/").
Se avete optato per Wine, allora dovete prima abilitare il No Mouse Centering Hack
(ricordate? Ne abbiamo parlato qualche riga fa). Ecco il procedimento:
-
Se avete una preesistente directory di configurazione di wine (per intenderci, "~/.wine"), cancellatela o rinominatela (io vi consiglio la seconda, così eventualmente fate un backup dei programmi installati in "Program Files").
$ cd ~ $ mv .wine .wine.old # Rinomina ".wine" in ".wine.old" -
A questo punto dovreste avere installato il nuovo wine patchato. Se non lo avete già fatto, seguite l’howto su WineHQ, che riporto semplificato qui:
$ cd [Cartella dell'archivio scompattato con i sorgenti patchati] $ ./configure $ make depend && make $ sudo make install # Oppure "sudo checkinstall" -
$ winecfgQuesto comando creerà la nuova cartella "~/.wine" con tutti i files di configurazione.
Ecco i miei settaggi principali:Applications -> Windows Version -> Windows XP
Graphics -> [Senza spunta] Allow DirectX apps to stop the mouse leaving their window
Graphics -> [Con spunta] Emulate a virtual desktop
(io ho messo1024×768
, ma dipende dalla vostra risoluzione)
-
$ regeditSe tutto andrà bene vi si aprirà il registro di sistema di Windows.
A questo punto, dirigetevi inHKEY_CURRENT_USER\Software\Wine
, e create una nuova chiave di nomeDirectInput
.
Fatto ciò, dentro di essa inserite due tipi stringa, di nomeMouse_Hack
eNo_Mouse_Center
, ed applicate ad entrambi il valoreTRUE
.
Grazie a questa nuova chiave nel registro di sistema, il mouse smetterà di accentrarsi.
Aggiornamento ufficiale
L’aggiornamento dovrebbe funzionare sia con Wine che con Cedega senza alcun tipo di errore. Per lanciare "LineageII.exe", potete dare questi comandi:
$ # Con Wine
$ wine LineageII.exe
$ # Con Cedega
$ cedega -gddb LineageII.exe
Aggiornamento non ufficiale in base allo shard
A questo punto è bene evidenziare che Lineage 2 NON funziona sui server ufficiali. Gli shard spesso si preoccupano di sostituire i files in "system/" per eludere in parte il controllo GG. Non ci credete? Chiede su #lineage2linux @ Freenode. ;-)
Per patchare il gioco e giocare sul vostro server amatoriale preferito vi consiglio di utilizzare Wine. Cedega spesso emula solo le librerie .dll necessarie al 3d, mentre Wine bene o male contiene tutte le librerie di sistema più comuni. Se volete provare con Cedega, copiate in "$Drive_C/Windows/system32/" tutte le librerie che vi richiede il client unofficial. Potete prelevarle dalla directory di Wine (es. "~/.wine/drive_c/Windowssystem/32/") o anche direttamente dall’hard disk/partizione in cui risiede Windows (es. "C:\Windows\system32\").
Siccome non è una cosa scientificamente testata, use at your own risk
.
Avvio del gioco
A questo punto, siamo pronti per far partire (con una buona dose di speranza, di quella che muore per ultima) il nostro buon vecchio Lineage 2.
Se usate Wine assicuratevi di farlo partire con l’eseguibile generato dalla versione patchata: in teoria potreste utilizzare due differenti versioni di Wine, basta scegliere un percorso diverso nella compilazione:
$ ./configure --prefix=/usr/local # Installa wine in /usr/local
Se invece usate Cedega, ecco qualche consiglio per la configurazione del profilo:
General -> Winver -> winxp
General -> Engine Version -> 5.2
General -> [Senza spunta] DXGrab
General -> Desktop -> 1024×768
(dipende dalla vostra risoluzione)
Infine, è ora di introdurre L2EncDec, un tool che ci torna utile per creare files "l2.ini" personalizzati ed adeguati alle nostre esigenze. In questo caso, essendo Linux users, le nostre esigenze sono tante, e urge soddisfarle (ambiguo, eh?). Per ora l’unico file di configurazione che ha sempre funzionato senza problemi è stato quello postato da A2K su WineHQ. Ovviamente, a voi interessa solo cambiare il parametro
, il resto delle impostazioni riguardano rendering 3d e non.ServerAddr
Per decodificare:
$ cd [Cartella dell'archivio scompattato con l'eseguibile l2encdec
]
$ ./l2encdec -d [l2.ini da decodificare]
Per decodificare il file l2.ini originale:
$ cd [Cartella dell'archivio scompattato con l'eseguibile l2encdec
]
$ ./l2encdec -l [l2.ini originale da decodificare]
Per codificare un file l2.ini:
$ cd [Cartella dell'archivio scompattato con l'eseguibile l2encdec
]
$ ./l2encdec -e [metodo] [l2.ini da codificare]
In quest’ultimo caso, l’applicazione ci offre alcuni metodi di codifica: 111, 120, 121, 211, 212, 411, 412, 413. Personalmente ho sempre utilizzato l’ultimo, il 413, e Lineage 2 (C5) lo ha letto correttamente senza riportare errori.
Per maggiori informazioni sulle possibilità di l2encdec, lanciare il comando col flag
.--help
Gli errori
Come ho già detto, la presenza o no di errori dipende dalla cartella "system/" di Lineage. Questo è dovuto al fatto che la cartella ospita il sistema di prevenzione GameGuard ed è quella che più spesso subisce modifiche in seguito a patch non ufficiali: insomma, sostanzialmente si occupa di avviare il client, effettuando vari controlli sulle librerie DirectX e su eventuali tentativi di hacking. Un bel problema.
Dopo alcuni tentativi ho teorizzato la suddivisione degli errori in quattro fasi. Non scambiate per oro ciò che vi dico, consideratela piuttosto un’analisi "empiristica" di un’eventuale - tragica - situazione in cui il gioco si chiude con un misterioso messaggio di errore.
Fase 1
Nella prima fase, è possibile che avviando "l2.exe" semplicemente non accada nulla. In questo caso, ho notato che spesso il problema deriva dal file "Engine.dll", che probabilmente non è adatto alla configurazione già esistente in "system/". Provate a lanciare l’upgrade ufficiale per sovrascrivere il file, o prelevatelo da una preesistente cartella "system/" (io mi tengo sempre una copia di Lineage 2 con i files originali, dopodichè la duplico e metto le varie patch non ufficiali).
Fase 2
Nella seconda fase, il messaggio di errore appare pochi secondi dopo la splash image del gioco. Questo può essere causato dalle librerie "Engine.dll" e/o "NWindow.dll". Considerate valida la soluzione proposta per la prima fase.
Fase 3
Nella terza fase, il messaggio di errore appare alcuni secondi dopo la splash image del gioco (dopo, cioè, che la schermata diventa nera). In questo caso le motivazioni valide sono tante (alcune volte le indicazioni dei crash si rivelano utili per comprendere la fonte del problema):
- Driver: I driver della nostra scheda video potrebbero realmente non essere aggiornati e/o rilevati correttamente dal gioco. Se possibile, aggiornateli alla versione più recente.
- DirectX: Il gioco non riconosce le librerie DirectX installate e non si avvia, chiedendo di aggiornare l’engine all’ultima versione (in questo caso la 9.x).
- l2.ini: Wine e/o Cedega spesso non interpretano correttamente le impostazioni video in questo file. Provate col file l2.ini modificato da A2K (sopra ho spiegato come fare).
- Librerie
.dll: Come al solito, potrebbe trattarsi anche delle librerie in "system/": ad esempio "Engine.dll" e/o "NWindow.dll", ma non escludete le altre. Provate ad aggiornare dal server ufficiale, e osservate se il gioco vi dà lo stesso errore. Se disponete di cartelle "system/" ottimizzate per altri shard, provate a sostituire file per file, annotandovi le rispettive "reazioni" del client (messaggi di errore relativi alle varie fasi e non).
Fase 4
In quest’ultima fase il gioco si avvia, lasciandovi sperare ciò che non è. Appare la schermata di login, ma sopra ai campi di testo "ID" e "PWD" compare un messaggio di errore riferito a GG (strano eh?), con relativo codice di errore. Personalmente, io mi sono fermato a questa fase, ottenendo i codici di errore 124 e 610. Su internet c’è qualche riferimento utile (come ad esempio un topic sul forum ufficiale, e qualche articolo scritto nelle comunità di appassionati), anche se generalmente per noi linuxiani le possibilità sono limitate. Comunque, possiamo:
- Cancellare la cartella "GameGuard/" in "system/", e sperare che - dopo aver lanciato il client - il gioco ricrei correttamente tutti i files necessari.
- Cancellare il contenuto della cartella "GameGuard" in "system/".
- Effettuare sostituzioni di "GameGuard/" e "GameGuard.des" con versioni provenienti dalla cartella "system/" originale, o da quelle patchate per i server non ufficiali.
Extra
Su WineHQ esistono le cosiddette No-GG Patch
, che teoricamente dovrebbero occuparsi di eludere il controllo GG effettuato dal client. Sostanzialmente sono versioni modificate delle librerie .dll - già citate più volte - contenute in "system/". A qualcuno funzionano, ai restanti purtroppo no: anche in questo caso dipende da una serie di fattori che bene o male coincidono con quelli già elencati all’inizio dell’articolo.
Se nessuna di queste operazioni va a buon fine, allora mettetevi l’anima in pace e tornate a giocare a Frozen-Bubble.
Conclusioni
Purtroppo Wine ed i suoi fratellini non riescono ad emulare tutto ciò che gira nativamente per Windows, e per queste operazioni così delicate la pazienza non è mai troppa. Giochi come World of Warcraft girano tranquillamente alla gran parte dei videogiocatori linuxiani, e su internet si trovano veramente tonnellate di informazioni a riguardo.
Lineage è un gioco che a mio parere merita molto. Tanti utenti chiedono come farlo funzionare, ma pochi rispondono. In questi giorni mi sono documentato e ho cercato di capire dove fosse il problema. La mia intenzione era quella di creare un riferimento utile per tutti coloro che, come me, volevano cimentarsi nell’impresa di emulare questo MMORPG (Massive Multiplayer Online Role Playing Game). Spero, con questa guida, di avervi fornito informazioni e strumenti utili affinchè voi riusciate là dove io ho fallito. :-)
Approfondimenti
L'articolo è stato di tuo gradimento? Puoi controllare che vi sia altro di tuo interesse nelle categorie Linux e Open Source e Fuori tema, oppure iscriverti al notiziario RSS e seguirmi su Twitter per restare sempre aggiornato sulle ultime pubblicazioni.
![[Immagine] Seguono le informazioni sull'autore.](http://a3.twimg.com/profile_images/1008732727/4588c01f4640392d496f4a566db3ba188a9844fb.png)
chtr aggiunge:
Qui ti comunico il mio interesse ed i miei più sentiti complimenti.
L’ articolo, per quella che è la mia opinione, è scritto in maniera ottimale; dunque, si lascia seguire e si presenta comprensibile.
L’ argomento, poi, è senza alcun dubbio un arricchimento e, se vogliamo, un incoraggiamento per tutti quei “linuxiani” che, come noi, si trovano ad affrontar “dilemmi” quali il corretto funzionamento dell’ apprezzatissimo Lineage. Passo per passo, infatti, la tua guida informa e conduce al ragionamento.
Spero di poterne usufruire al meglio.
Saluti. =P
pietro aggiunge:
grazie mille ! ctrl+D
giovanni aggiunge:
voglio scaricare il gioco
Sigurrino aggiunge:
La tua guida e' perfetta e molto esplicativa, ma purtroppo il problema della GG e' insuperabile anche su altri giochi on-line (vedi MapleStory), l'unico modo che rende possibile giocare a giochi nativi per windows su linux e' la VM (Virtual Machine)... provala per me e' stata una salvezza non indifferente, l'unica pecca e' che richiede molto hardware e molto "smanettamento"... cmq io credo che un giorno riusciremo a giocare a qualcosa di diverso da FrozenBubble
eKoeS aggiunge:
Ciao Sigurrino, io non sono mai riuscito ad avviare la Virtual Machine con l'accelerazione 3D, nonostante in giro ci siano buone guide. :D
Credo anch'io che prima o poi riusciremo a giocare tranquilli persino in un ambiente emulato, gli strumenti ci sono e la volontà pure. :)
Sanzo aggiunge:
salve...ho provato il tuo metodo solo ke quando carica la prima skermata "no quella d login quella ankora prima" mi da' critical error... se puoi aiutarmi a risolvere questo problema t lascio il mio msn sanzohosci@hotmail.it
Sanzo aggiunge:
ora ho provato a reinstallare il game mi da' questo errore
plz help me
Sanzo aggiunge:
http://img45.imageshack.us/my.php?image=schermata1yc7.png scusate ma nn lo ha messo nell'altro post
eKoeS aggiunge:
Ciao Sanzo, come ho già detto molti degli errori che si presentano potrebbero dipendere da miliardi di fattori, ma detto questo ti consiglio sempre di:
Io in genere seguo sempre questi tre punti, non dico di riuscire sempre nell'intento, ma non è raro che leggendo l'errore preciso da terminale si possa in qualche modo capire come risolvere. :)
Sanzo aggiunge:
thx ora provo poi t dico come va' :D
Furay aggiunge:
Aaaaaa a me si riavvia il pc help
Lineage 2 server aggiunge:
For a l2 server you could try lineage2server.org