Installation et mise à jour des jeux Loki sur les distributions actuelles.
Loki entertainment software est un éditeur de jeux créé en 1998, sa spécialité était le portage de jeux Windows sous Linux. La société a fermé ses portes en 2001 après l’édition d’une vingtaine de titres qui sont toujours disponibles dans le commerce chez des revendeurs comme Tuxgames.
Aujourd’hui malheureusement, ces logiciels ne fonctionnent pas toujours sur les distributions Linux récentes. L’évolution du matériel, du noyau Linux et des bibliothèques de développement a rendu ces jeux partiellement incompatibles avec nos systèmes actuels. Nous allons voir pas à pas comment résoudre certains problèmes et ainsi faire fonctionner entre autres Heroes of Might & Magic 3, Kohan : immortal sovereigns ou Alpha Centauri.
Installer des bibliothèques d’époque
La première chose à faire est d’installer les bibliothèques utilisées par les jeux, plus précisément les versions de bibliothèques de développement utilisées en 2000. Alan Swanson a regroupé la plupart de ces bibliothèques dans une archive appelée loki_compat_libs.
Nous allons donc télécharger cette archive et l’installer dans un répertoire de bibliothèques (/usr/lib/games/loki_libs me semble un très bon choix) :
$ tar -xjvf loki_compat_libs-1.0.tar.bz2
$ su
Password :
# mv Loki_Compat /usr/lib/games/loki_libs
Faire fonctionner les mises à jour
Il existe des mises à jour pour presque tous les jeux Loki ; généralement ce sont des corrections de bugs et parfois des fonctionnalités supplémentaires. On peut les trouver sur des sites miroirs du ftp de Loki. Les mises à jours se présentent sous forme de correctifs exécutables au format .run. Il est normalement nécessaire d’effectuer chaque mise à jour dans l’ordre en faisant passer par exemple un jeu de la version 1.0 à 1.1, puis de 1.1 à 1.2, etc. Pour simplifier les choses, Loki a créé des patches appelés « unified » qui permettent de passer directement de la version d’origine à la dernière version existante.
Il y a trois situations possibles avec les patches :
# ./loki_patch-fix /home/MonRepertoire/Patches/rt2-1.54c-unified-x86.run
Le format .run
Il est courant sous GNU/Linux de trouver des fichiers portant l’extension .run. C’est le cas des installateurs automatiques, des logiciels fournis au format binaire et... des patches Loki.
Le format .run n’a rien de mystérieux. Il s’agit en fait d’une archive zippée (tar.gz) à laquelle on a rajouté un script en entête. Au lancement, le script copie la partie archive du fichier, la décompresse puis lance l’exécutable qu’elle contient. Ainsi, dans le cas d’un patch Loki qui refuse de se lancer, il suffit de l’ouvrir avec un éditeur de texte, de supprimer les premières lignes jusqu’à la phrase indiquant la fin du script d’entête (généralement « END_OF_STUB » seul sur une ligne) puis de sauvegarder le tout avec une extension tar.gz. Ensuite, on décompresse l’archive et on lance l’exécutable (update.sh pour les patches de Loki). L’erreur à la fin de la décompression est due au fait que nous avons modifié le fichier ; ne vous en préoccupez pas.
Nous allons voir maintenant en détail l’installation, la mise à jour et la « francisation » du jeu Heroes of Might & Magic 3 (homm3). La méthode est sensiblement la même pour les autres jeux avec toutefois quelques variantes que nous verrons plus loin.
Une fois le CD-ROM monté, il suffit de lancer le script d’installation :
# sh /répertoire_Du_CDrom/setup.sh
Une boite de dialogue apparaît permettant de choisir le répertoire et les options de l’installation.
Après cette étape, le jeu est installé en version 1.2 mais on constate deux problèmes : le mode plein écran ne fonctionne pas et sur certains systèmes, le jeu plante si on tente de lancer une partie en réseau. Nous allons donc passer à la version 1.3.1a en téléchargeant le patch nommé heroes3-1.3.1a-unified-x86.run sur un site miroir du FTP de lokigames (dans le répertoire updates/heroes3).
Puisque le patch ne s’exécute pas (erreur de segmentation), il faut le lancer via loki_patch-fix
$ cd répertoireOuSeTrouveLokiPatchFix/
$ ./loki_patch-fix répertoireOuSeTrouveLePatch/heroes3-1.3.1a-unified-x86.run
Une fois patché, le jeu se lance en plein écran et de nombreux bogues ont été corrigés. Toutefois, le réseau ne fonctionne pas encore. Il reste à lancer le jeu en utilisant les anciennes bibliothèques que nous avons installées. Cela se fait en initialisant la variable LD_LIBRARY_PATH juste avant de lancer le jeu :
$ LD_LIBRARY_PATH=/usr/lib/games/loki_libs heroes3
Et histoire de bien faire les choses, nous allons créer un script qui effectuera cette opération à chaque lancement du jeu. Ce script peut être placé dans /usr/games et porter le nom du jeu à lancer.
#! /bin/bash
EXECUTABLE=heroes3
CHEMIN=/usr/local/games/Heroes3
cd $CHEMIN
LD_LIBRARY_PATH=/usr/lib/games/loki_libs ./$EXECUTABLE
cd -
Ce script pourra être adapté aux autres jeux en modifiant les variables des lignes 2 et 3.
Franciser la version Linux de Homm3 à partir d’une version Windows installée est un jeu d’enfant. Il suffit de remplacer le contenu des répertoires /usr/local/games/Heroes3/data et /usr/local/games/Heroes3/maps par leur équivalent de l’installation Windows. Attention toutefois, contrairement à Linux Windows n’est pas sensible à la casse des noms de fichiers. Sous Linux, tous les noms de fichiers de Homm3 sont en minuscules.
Maintenant que nous sommes rodés, nous allons survoler les particularités d’installation des principaux jeux. La méthode est toujours la même : lancez le script d’installation, mettre à jour le jeu avec le dernier patch « unified » puis trouvez-le moyen de lancer le jeu.
Type de jeu : stratégie en temps réel médiéval fantastique
Myth 2 fonctionne sans bibliothèque particulière. Il est possible d’installer un patch portant le jeu à la version 1.3e ainsi qu’une extension nommée Chimera qui comprend une campagne supplémentaire. Fear et Loathing sont des éditeurs de cartes et de ressources (unités, objets, décors) fournis avec le jeu.
La seule difficulté avec Myth 2 est un plantage à la lecture des vidéos. Rien ne vous empêche de les visionner avec un lecteur classique comme Totem, Xine ou Mplayer, mais pour faire fonctionner le jeu correctement il sera nécessaire de supprimer ou renommer le répertoire contenant les vidéos du jeu.
# mv /usr/local/games/myth2/cutscenes /usr/local/games/myth2/videos
Attention : si le jeu n’est pas installé en « full install », il faudra monter le CD pour jouer, le programme trouvera alors les vidéos sur le CD, les lira et plantera après la première lecture.
Si comme moi vous êtes l’heureux possesseur de la version Linux et de la version Windows de Myth 2, vous pouvez jouer en français en remplaçant le répertoire tags de la version Linux par celui de la version Windows.
Type de jeu : stratégie médiéval fantastique
Kohan immortal sovereigns ne pose pas de problème particulier. Comme avec Homm3, il faut utiliser le préfixe LD_LIBRARY_PATH.
Il n’existe pas de correctif « unified » pour Kohan, aussi faut-il installer le patch 1.2 puis le 1.3.1 sans lancer le jeu entre les deux versions.
Il est possible de franciser le jeu en copiant les fichiers Kohan.tgw, Local_fr.tgw et Voice_fr.tgw de la version Windows et en les renommant réciproquement Kohan.TGW, local_fr.TGW et Voice.TGW.
Type de jeu : gestion d’une ville
Il existe un patch portant le jeu en version 2.0a. Pour lancer le jeu, il faudra utiliser le préfixe LD_ASSUME_KERNEL=2.2.4 afin de faire croire à l’exécutable qu’il fonctionne sous le bon noyau. Le principe est le même qu’avec LD_LIBRARY_PATH.
Le jeu est disponible nativement en français.
Civilization Call to Power et Sid Meier’s Alpha Centaury
Type de jeu : conquête et gestion au tour par tour
L’installation, la mise à jour et le lancement de ces deux jeux ne posent aucune difficulté. Les bibliothèques du répertoire loki_libs ne sont pas nécessaires.
Type de jeu : simulation de combat et gestion spatiale
Terminus nécessite le fichier libstdc++.so.2.8 mais on peut tromper le programme par un simple lien
# ln -s /usr/lib/games/loki_libs/libstdc++-3-libc6.2-2-2.10.0.so /usr/lib/games/loki_libs/libstdc++.so.2.8
Il faut ensuite lancer le jeu avec le double préfix :
LD_LIBRARY_PATH=/usr/lib/games/loki_libs/ /usr/lib/games/loki_libs/ld-linux.so.2 /usr/local/games/Terminus/terminus
À noter qu’il existe une version améliorée de Terminus appelée Terminus Point. Celle-ci corrige de nombreux bogues et améliore la stabilité du programme. Il suffit de télécharger l’exécutable TPE-MDK8-V0.04, de le copier dans le dossier d’installation de Terminus et de le lancer à la place du programme terminus.
Que ce soit avec l’exécutable d’origine ou avec Terminus Point, un bogue bloque le jeu au démarrage. Pour éviter ce problème, il faut lancer une commande :
dd if=/dev/dsp of=/dev/dsp &
Avant de lancer le jeu. Là encore, tout cela peut être automatisé dans un script.
Type de jeu : gestion de compagnie ferroviaire
Le patch unified permet de porter le jeu à la version 1.54c. Cela corrige notamment un bogue réservant le mode plein écran au compte root. L’installation et la mise à jour de ce jeu ne présentent aucune difficulté.
Type de jeu : combat de robots en 3D
Etrangement c’est la version 0.99 que l’on trouve sur le CD-Rom. Pour passer à la version 1.0b il faudra installer le patch. Un bug maladroit de l’exécutable interdit de lancer le jeu si l’on ne se trouve pas dans le répertoire du jeu. On peut contourner le problème avec un simple script :
#! /bin/bash
cd /usr/local/games/hg2
./hg2
cd -
Type de jeu : aventure/action en 3D
Fait exceptionnel, il n’y a aucun patch pour Rune. Le jeu s’installe et fonctionne sans problème. À noter qu’il est possible de télécharger le module Rune-coop afin de jouer à plusieurs. Le module se trouve sur le site d’Icculus.
Type de jeu : action en vue subjective en 3D
Soldier of fortune ne pose aucun problème particulier. La langue française est disponible dans les préférences du jeu. Comme pour Heavy Gear 2, un bug oblige à lancer le jeu depuis le répertoire d’installation ou en passant par un script :
#! /bin/bash
cd /usr/local/games/sof
./sof
cd -