Suite : NearInfinity installé, fonctionnant très bien et permettant de gérer correctement le kit entropiste, je pourrais mettre maintenant ce fil en sujet résolu. Cependant, ce serait bien de faire un récapitulatif des opérations à suivre pour montrer comment on installe NearInfinity sous Linux et aussi voir comment naviguer dans les différents environnements de wine, en suivant la bonne idée de départ de Elzen.
(installation et tests réalisés sous Ubuntu 18.04 LTS 32 bits)
Bon, par contre, après avoir tout écrit - ou presque- c'est un peu long ...
1. Création d'un nouvel environnement de Wine
Comme déjà dit plus haut, cette étape est nécessaire pour installer NearInfinity sous Linux car ce logiciel ne permet pas de naviguer dans le répertoire de .wine.
Edit : Finalement ... c'est faux
Il y avait ce problème car la version de NearInfinity que j'avais téléchargée n'était pas patchée pour Linux.
En prenant le bon fichier .jar (cf lien plus bas partie 4.), en le plaçant dans le répertoire du jeu dans l'environnement .wine, puis en le lançant soit par la console, soit par un lanceur, NearInfinity se lance sans problème et on peut ensuite naviguer dans .wine (cf 4. et 5. d. pour les détails).
a. Il faudra installer par la suite une seconde fois le jeu voulu, il faut donc s'assurer d'avoir suffisamment d'espace sur le disque dur avant de passer à la suite (grosso modo, au moins 10 Go si c'est pour installer BG1+Ext, BG2+Ext et BGT+mods divers).
Une autre idée, simple et rapide, est de copier l'intégralité du contenu de .wine comme je l'avais fait plus haut par commodité, mais cela demandera plus d'espace disque.
b. Choisir un nom sans point devant pour votre nouvel environnement (personnellement, j'ai pris "bgt").
Ouvrir la console (rester dans le répertoire
"/home/[user]/", ne pas aller ailleurs) puis taper :
Puis
L'ordinateur va alors créer le nouvel environnement wine dans
/home/[user]/bgt/
Fermer la nouvelle fenêtre de winecfg, on pourra y revenir ultérieurement.
Remarques :
- Il est possible que des erreurs soient affichées (et c'est mon cas) mais d'après ce que j'ai compris, il semble qu'elles ne soient pas préoccupantes (wine n'est pas parfait, des anciennes versions peuvent mieux marcher que les nouvelles, etc.), mais c'est à voir.
- Dans le navigateur graphique des fichiers, vérifier que le nouvel répertoire
home/[user]/bgt/ est bien présent et que wine a été installé à l'intérieur (avec le sous-répertoire
"drive_c" notamment)
- Si on a une architecture 64 bits et que l'on souhaite que le nouvel environnement fonctionne en 32 bits, il faudrait taper à la place (si j'ai bien compris) :
- Pour effacer le nouvel environnement, il faut simplement mettre le dossier
/home/[user]/bgt à la corbeille (puis de vider cette dernière pour libérer de l'espace).
- On peut créer, si on le désire, d'autres environnements de la même façon, avec des noms différents, un par jeu par exemple. Mais rien de pressé pour le moment.
2. Installation d'un jeu dans le nouvel environnement
C'est là qu'une difficulté commence, et de taille : Comme il y a maintenant deux -voire plus de 2- environnements wine, avec celle régulièrement mis à jour par Ubuntu dans .wine, le fait de double-cliquer sur une application .exe lancera le wine de .wine et non le .wine du nouvel environnement (i.e. "bgt") ...
Pour lancer une application .exe dans le nouvel environnement, et de même pour installer les nouveaux jeux à l'intérieur,
il faudra dorénavant le faire dans la console en précisant le préfix avant, comme ceci :
Pour installer par exemple BG1 :
- Mettre le CD n°1 ou le DVD du jeu dans le lecteur.
- A l'aide des instructions de la console
"cd .." (pour reculer dans le répertoire parent),
"cd [répertoire]", et de
"dir" (pour savoir si on est bien là où il faut être), naviguer vers le répertoire /media/[user]/[nom du media] où se trouve le contenu du CD ou du DVD.
- Installer le jeu en tapant :
- Pour la suite de l'install - qui n'est pas le but principal de ce mini-tutoriel - , se référer à ces pages :
https://www.baldursgateworld.fr/lacouronne/la-taverne-de-chateau-suif-baldur-s-gate-1/19855-guide-installation-de-baldur-s-gate-et-tales-sword-coast.html et
https://doc.ubuntu-fr.org/baldurs_gate
Une fois BG1 installé dans le nouvel environnement, il faut aller dans le dossier du jeu (bon à savoir : la commande seule "cd" permet d'aller directement dans
/home/[user]/ ) :
/home/[user]/bgt/wine_c/Program Files/Black Isle/Baldur's Gate/
(note : Pour saisir des noms comme
Program Files, il faut taper à la place
Program\ Files ou écrire le nom entre guillemets
"Program Files")
Puis pour lancer le jeu :
Pour être sûr que tout a marché : lancer une partie, faire une sauvegarde puis quitter. La partie sauvegardée doit être normalement dans
/home/[user]/bgt/wine_c/Program Files/Black Isle/Baldur's Gate/Save/ (et non dans le répertoire
.wine)
Pour la suite, on suppose que l'extension de BG1, BG2, l'extension de BG2 et BGT sont aussi installés dans ce même environnement.
3. Installation d'un mod avec WeiDU
Si on a opté pour une installation de WeiDU comme dans Windows en utilisant wine, il faudra aussi naviguer à chaque fois dans la console vers le répertoire du jeu et préciser le préfix avant :
4. Installation/Lancement de NearInfinity sous Linux
a. Aller ici pour télécharger la version patchée de NearInfinity pour Linux :
https://github.com/Argent77/NearInfinity/releases
b. Si le fichier est un .zip, on peut le dézipper et obtenir un fichier d'extension .jar (
ne pas extraire les fichiers de ce dernier, le voir comme un simple fichier et non comme un paquet).
c. Vérifier que la version de Java sous Linux est récente (version 16 pour ma part).
d. Ouvrir la console et naviguer vers le répertoire du jeu (et dans lequel le fichier .jar y a été mis).
e. Taper la commande suivante :
(si le nom du fichier
NearInfinity.jar n'est pas le même par un changement de version, remplacer ce nom par le vrai dans la commande)
NearInfinity doit alors s'ouvrir normalement, en ayant récupéré le fichier
CHITIN.KEY qui est dans le répertoire du jeu.
5. Comment éviter -le plus possible- la console
On peut désormais exécuter n'importe quel exécutable dans le nouvel environnement, mais c'est évidemment moins pratique qu'avant car il n'y avait qu'à double-cliquer sur le fichier .exe
Je me suis renseigné pour voir s'il n'y aurait pas moyen d'ouvrir un programme .exe par un script qu'il suffirait de sélectionner avec
Ouvrir avec une autre application. Et c'est possible en créant un lanceur.
a. Création du script shell
Si le nouvel environnement créé est "bgt", ouvrir un document texte vide puis écrire ceci :
#!/bin/bash
cd
cd bgt/drive_c/Program\ Files/Black\ Isle/BGII\ -\ SoA
WINEPREFIX=~/bgt wine "$1"
Ce script demandera à aller vers
/home/[user]/ par la commande seule
cd, puis vers le répertoire du jeu, puis exécutera le fichier retourné par $1 par wine avec le prefix "bgt".
Sinon, si j'ai rédigé ce script de façon à aller dans le répertoire du jeu avant d'exécuter le fichier exécutable, c'est parce-que les installations des mods l'exigent, après plusieurs tests. Mais il y a peut-être moyen de faire mieux.
Enregistrer le fichier texte, dans le répertoire
/home/[user]/ (*) avec l'extension .sh, avec un nom incluant l'environnement, par exemple : batchbgt.sh
Cliquer du droit sur ce nouveau fichier puis sélectionner "Propriétés" puis aller dans l'onglet "Permissions" et cocher la case "Autoriser l'exécution du fichier comme un programme". Si besoin est, modifier les droits d'utilisateurs (ou ne rien faire pour le moment et modifier ultérieurement s'il y a un problème du aux accès)
(*) si vous le mettez ailleurs, penser à adapter la suite en conséquence
Edit : Ce script est trop basique. Je viens d'en composer un autre plus élaboré qui permet de se placer dans le répertoire où se trouve le fichier, de reconnaître l'extension .exe et de reconnaître le prefix à utiliser selon l'emplacement du fichier .exe dans tel ou tel environnement. Prefix ~/.wine si le fichier est en dehors des nouveaux environnements.
Les nouveaux prefix seraient alors à mettre dans un fichier texte à part : prefix-wine.txt
Ce script serait à mettre dans le dossier utilisateur /home/[user]/ et ce fichier texte serait à mettre dans un nouveau dossier dans .wine : ~/.wine/prefix/
Le nouveau script que j'ai enregistré sous le nom run-wineprefix.sh :
► Afficher le texte
Code : Tout sélectionner
#!/bin/bash
#Script permettant de lancer une application .exe dans un environnement wine (prefix). Cet environnement est détecté par ce script
# et le bon prefix est appliqué suivant les cas (.wine si le programme n'est pas l'un des environnements prefixés).
#Le prefix est détecté que si ce dernier est présent dans le fichier ~/.wine/prefix/prefix-wine.txt
#
#Exécuté par le lanceur associé run-wineprefix (avec l'option terminal), certains programmes graphiques peuvent mal fonctionner ou pas du tout.
#(utiliser run-wineprefix-sans-terminal si le cas se présente)
chemin="$1"
fichier=`basename "$chemin"` #fichier : nom du fichier + extension
repertoire=`dirname "$chemin"` #repertoire : chemin du repertoire de ce fichier
prefix=`echo $chemin | cut -d '/' -f 4` #prefix : nom du prefix récupéré
if [ "$prefix" = "" ] #prefix=.wine si le chemin du fichier est trop court
then
prefix=".wine"
fi
n=0
buff="/"
prefix_trouve=0
cd
cd .wine/prefix
while [ "$buff" != "" ] #recherche du prefix dans le fichier prefix-wine.txt
do #prefix_trouve=1 s'il est dans la liste et 0 sinon
((n=n+1))
buff=`cut -d ';' -f $n prefix-wine.txt`
if [ "$prefix" = "$buff" ]
then
prefix_trouve=1
fi
done
if [ $prefix_trouve = 0 ] #extension du prefix en un chemin absolu jusqu'à lui
then #prefix mis à .wine s'il n'avait pas été trouvé dans prefix-wine.txt
cd
prefix="~/.wine"
else
prefix=`echo $chemin | cut -d '/' -f 1-4`
fi
if [ `echo $fichier | cut -d '.' -f 2` = 'exe' ] #Vérifie si l'extension du fichier est .exe
then #et n'exécute pas ce fichier si ce n'est pas le cas
cd "$repertoire"
WINEPREFIX="$prefix" wine "$fichier"
else
echo "Erreur : Ce fichier n'est pas un programme exécutable d'extension .exe"
read
fi
Pour le fichier texte ~/.wine/prefix/prefix-wine.txt à créer et à rédiger, il suffit d'y mettre le prefix .wine et les nouveaux (sans '~/' devant) séparés par un ';' . Par exemple :
.wine;bgt;iwd1
(par contre, en faisant comme cela, le cas où un prefix ne serait pas du type ~/prefix mais ~/.../prefix n'est pas prévu) [/color]
b. Création du lanceur
Il existe un petit logiciel disponible dans les packages d'Ubuntu et qu'il suffit d'installer :
menulibre
Il est sans doute aussi possible de créer le lanceur manuellement.
Ouvrir
menulibre puis cliquer sur le + en haut à gauche pour créer un nouveau lanceur.
Dans le panel de droite :
- Changer éventuellement l'icône.
- Donner un nom (comme c'est ce nom qui sera affiché à chaque fois qu'un programme sera exécuté, le mieux est d'écrire le prefix ou de le mentionner dans le nom comme par exemple "batchbgt", surtout si vous créez plusieurs environnements).
- Ecrire une description.
- Dans le champ commande, écrire :
./batchbgt.sh %f (si le nom du script fait dans
a. est batchbgt)
- Dans le champ répertoire de travail : Indiquer le chemin du script :
/home/[user]/
- Activer l'option "Exécuter dans un terminal"
- Eventuellement, ajouter une catégorie en bas à droite .
- Enregistrer le lanceur par une petite icône en haut à gauche.
Edit : Il y a un problème si on active l'option "Exécuter dans un terminal" avec les programmes exécutables plutôt graphiques et qui n'ont pas besoin d'un terminal. Mais si on ne l'active pas, les programmes exécutables qui en ont besoin ne fonctionneront pas ...
Le mieux serait de faire deux lanceurs :
- Un lanceur nommé run-wineprefix avec l'option "Exécuter dans un terminal" activée.
- Un lanceur nommé run-wineprefix-sans-terminal avec cette option désactivée.
On pourra ainsi choisir l'un ou l'autre suivant le cas (si le premier ne marche pas, on choisit le second). Et s'il arrivait qu'aucun des deux ne marche, il restera l'option de l'exécution de l'application par la console.
Ces deux lanceurs peuvent utiliser le même script que j'ai rédigé dans le précédent 'Edit' du paragraphe a.. Dans le champ commande, il faudra alors écrire ./run-wineprefix.sh %f et dans le champs répertoire de travail : /home/[user]/
c. Vérification
Hors de la console, naviguer dans les fichiers, aller dans le répertoire du jeu dans votre nouvel environnement puis cliquer du droit sur un fichier .exe, par exemple une installation d'un mod simple ou un logiciel de modding. Dans le turbo-menu, choisir "ouvrir avec une autre application" puis on doit voir le nom de votre lanceur avec son icône. Si tout se passe bien, le fichier exécutable s'exécute comme si on le faisait avec la console.
(hormis peut-être le lancement du jeu baldur.exe dans BGII/BGT. Pour ma part, le jeu se lance puis plus rien si on sélectionne "jouer", mais pour les lancement d'install de mod il n'y a aucun soucis)
Edit : Avec les deux nouveaux lanceurs précédemment décrits dans la partie précédente b., il suffit de choisir entre run-wineprefix et run-wineprefix-sans-terminal suivant l'application à lancer (les installations de mod par WeiDU avec le premier et baldur.exe de BG2/BGT avec le second, par exemple).
J'ai aussi oublié de dire que l'on ne voit pas forcément le nom du lanceur dans le turbo-menu après "Ouvrir avec une autre application" mais qu'il est disponible après avoir cliqué sur "Afficher toutes les applications".
d. Création d'un lanceur pour NearInfinity
Même chose que dans
a. et
b. La différence sera dans le script (et aussi dans les noms) :
#!/bin/bash
cd
cd bgt/drive_c/Program\ Files/Black\ Isle/BGII\ -\ SoA
java -jar "$1"
Edit : Il y a mieux. De façon étendue, pour n'importe quel fichier .jar dans n'importe quel répertoire, voilà un nouveau script :
► Afficher le texte
Code : Tout sélectionner
#!/bin/bash
#lance un fichier .jar avec l'application java installée dans linux.
chemin="$1"
fichier=`basename "$chemin"` #fichier : nom du fichier + extension
repertoire=`dirname "$chemin"` #repertoire : chemin du repertoire de ce fichier
if [ `echo $fichier | cut -d '.' -f 2` = 'jar' ] #Vérifie si l'extension du fichier est .jar
then #et ne lance pas ce fichier avec java si ce n'est pas le cas
cd "$repertoire"
java -jar "$fichier"
else
echo "Erreur : Ce n'est pas un fichier dont l'extension est .jar"
read
fi
Enregistrer ce script sous n'importe quel nom avec .sh comme extension (j'ai choisi "java16.sh") dans le répertoire utilisateur /home/[user]/.
Pour le lanceur :
- Champs Commande : ./Java16.sh %f
(le même nom que celui du script)
- Champ Repertoire de travail : /home/[user]/
(le répertoire où se situe le script)
- Option "Exécuter dans un terminal" activée (ça marche pour NearInfinity, désactiver cette option ou créer un autre lanceur si il y a ultérieurement un problème) [/color]
Pour lancer NearInfinity, il suffira simplement de cliquer du droit sur le fichier
NearInfinity.jar puis de sélectionner ce nouveau lanceur.
e. Améliorations possibles
La création des lanceurs ainsi faits ne fait cependant pas tout car si on a plusieurs environnements créés, il y a le risque de mélanger les lanceurs entre-eux. L'idéal serait de faire un seul script en améliorant celui fait dans
a. , mais de façon qu'il puisse reconnaître l'environnement où le fichier .exe se situe puis qui applique le prefix adéquat. A voir à travers les nombreuses instructions de l'environnement shell de Linux.
Edit : Améliorations effectuées bien qu'en n'ayant pas réussi à tout faire en un seul lanceur (cf les précédents Edit en couleur saumon)
Notes : - Je m'en veux vraiment d'avoir sous-estimer NearInfinity, bien qu'au moment d'une fatigue passagère, c'est un très bon utilitaire.
- Il est possible qu'il y ait des erreurs ou des manques dans tout ce que j'ai écrit. Comme je vais prochainement créer un nouvel environnement pour installer Icewind Dale 1, je vérifierai par cette occasion et rectifierai ce message si besoin est.
Edit : Modifications des édits faits dans la journée.
Je me suis rendu compte que les lanceurs ne fonctionnaient pas si on met les scripts ailleurs que dans le répertoire utilisateur (mes précédents tests marchaient car je n'avais pas supprimé les anciens scripts dans /home/[user]/ et c'est lorsque je les ai supprimés qu'il y a eu un problème). Je n'ai pas trouvé d'autres solutions que de les rapatrier dans le dossier utilisateur /home/[user]/ (et il ne reste donc plus que le fichier texte prefix-wine.txt dans le dossier créé /home/[user]/.wine/prefix/ )
Bon, au moins, tout marche désormais.