Quelques cas concrets
Faire cohabiter Shadows of Amn et Throne of Bhaal
L’installation de Throne of Bhaal ne propose pas de choisir le répertoire d’installation pour la bonne et simple raison qu’elle le lit dans la base de registre. Dès lors, pour conserver une installation de SoA seul, il faut la considérer comme une installation recopiée, de façon à laisser l’emplacement mémorisé dans la base de registres pour ToB. Il faut évidemment veiller à faire cette copie avant d’installer Throne of Bhaal.
- Installez Baldur’s Gate II dans le répertoire de votre choix, disons C:\BGII pour notre exemple, en procédant à une installation complète
- Installez le patch officiel pour Shadows of Amn:idee: Vous pouvez consulter ce sujet du forum pour plus de détails sur la façon d’installer le jeu selon la version dont vous disposez.
- Lancez le jeu au moins une fois et configurez le jeu tel qu’il vous plait (taille écran, performances, …) : ceci vous évitera d’avoir à recommencer dans la deuxième installation
- Ensuite, créez un nouveau répertoire pour héberger votre installation de SoA seul, disons pour l’exemple C:\BGII – SoA-seul
- Copiez le contenu de C:\BGII, à l’exception des répertoires CD2, CD3 et CD4, dans le nouveau répertoire C:\BGII – SoA-seul : attention à bien copier et non déplacer !
- Dans le nouveau répertoire C:\BGII – SoA-seul, modifiez le fichier Baldur.ini (par exemple avec le bloc-notes) comme indiqué dans la procédure générale, en prenant évidemment bien soin d’indiquer C:\BGII – SoA-seul sur la ligne HD0:=Pour lancer SoA, vous devez vous créer un raccourci sur le programme BGMain.exe du répertoire C:\BGII – SoA-seul.:!: Il est très important d’installer le patch avant de faire la copie, car il irait s’installer dans C:\BGII et vous n’en bénéficieriez pas dans la copie !Ensuite, vous pouvez poursuivre l’installation de Throne of Bhaal et de son patch, qui iront automatiquement dans C:\BGII.
Copier une installation avec un certain nombre de mods
BG2 Fixpack est considéré comme un mod indispensable à BG II et ToB. On peut donc être tenté de recopier une installation où il serait déjà installé.
Pour que ça fonctionne, sans perdre les facultés de désinstallation et réinstallation qu’offrent les mods basés sur WeiDU, il est très important de copier un ensemble de fichiers et répertoires depuis le répertoire C:\BGII. Ce sont :
- le fichier WeiDU.log
- pour chaque mod :
- le répertoire NomDuMod : par exemple, bg2fixpack, bgt, … bref celui qui porte le nom ou l’acronyme du mod
- le fichier setup-NomDuMod.exe
- le fichier setup-NomDuMod.tp2 ou NomDuMod.tp2 : celui-ci ne se trouve pas toujours dans le répertoire du jeu car il est fréquemment placé dans le sous-répertoire NomDuMod.
Si vous avez suivi à la lettre la procédure, qui stipule de tout copier sauf les répertoires CD1, etc., vous n’aurez aucun problème, étant donné que vous aurez aussi copié.
Si au contraire, vous avez cherché à supprimer des copies pas vraiment indispensables (cache, temp, tempsave, les programmes multijoueurs, …), attention à bien respecter les indications ci-dessus.
Automatisation de la copie : cas de Baldur’s Gate II, avec ou sans Throne of Bhaal
Comme je fais fréquemment ce genre de copie, je me suis préparé un fichier bat qui effectue la copie. Voici donc CopieBGII.bat :
:: Note : toute ligne commençant par :: est un commentaire
:: Script permettant de copier une installation de Baldur’s Gate II suivant le principe des installations multiples
:: http://encyclopedies.baldursgateworld.fr/lacouronne/le-bazar-de-laventurier/10872-guide-installation-de-plusieurs-baldur-s-gate.html
::
:: Utilisation :
:: – créez un répertoire pour héberger votre copie de l’installation de BG II
:: – placez le fichier CopieBGII.bat dans ce nouveau répertoire
:: – double-cliquez sur CopieBGII.bat
:: avec Windows XP et plus, c’est prêt
:: sinon modifiez la ligne HD0: du fichier Baldur.ini de ce nouveau répertoire afin qu’elle indique ce même répertoire
@echo off
:: Utilisation de l’évaluation retardée des variables, nécessaires pour traiter des éléments dans des boucles ou de if
:: Dans ce mode, le caractère ! remplace le % habituel pour désigner les variables
:: Nécessaire pour la modification de Baldur.ini
SETLOCAL ENABLEDELAYEDEXPANSION
:: Variable contenant le répertoire de l’installation de base de Baldur’s Gate II
:: Ce peut être aussi un chemin complet, « C:JeuxBGII – SoA », ou un chemin relatif
:: Pour ma part, je recopie toujours dans un répertoire au même niveau, donc je mets du relatif
set BG2BASEREP= »..BGII – SoA »
@echo Copie des repertoires de donnees…
:: /E pour copier l’arborescence des répertoires, y compris les répertoires vides
:: /I pour que la destination soit considérée comme un répertoire s’il y a plusieurs fichiers copiés
xcopy /E /I %BG2BASEREP% »characters » characters
xcopy /E /I %BG2BASEREP% »data » data
xcopy /E /I %BG2BASEREP% »music » music
xcopy /E /I %BG2BASEREP% »portraits » portraits
xcopy /E /I %BG2BASEREP% »script compiler » « script compiler »
xcopy /E /I %BG2BASEREP% »scripts » scripts
xcopy /E /I %BG2BASEREP% »sounds » sounds
@echo Copie du repertoire Override
xcopy /E /I %BG2BASEREP% »Override » Override
copy %BG2BASEREP% »Chitin.key » .
copy %BG2BASEREP% »dialog.tlk » .
copy %BG2BASEREP% »dialogF.tlk » .
@echo Copie des fichiers executables et de configuration
:: Copie d’une sélection de fichiers, notamment pas tout ce qui concerne le multijoueur via serveur
:: On peut même réduire encore davantage cette liste, mais le gain n’est pas significatif
:: ~nx sert à indiquer qu’on ne veut que le nom du fichier (n) avec extension (x) et pas le chemin complet
:: http://technet.microsoft.com/en-us/library/cc755694%28WS.10%29.aspx
for %%i in (BGMain.exe
bggltest.exe
CharView.exe
bgdxtest.exe
BGConfig.exe
bgate2.mpi
Keymap.ini
language.txt
Lasnil32.dll
license.txt
Llload.bmp
BG2-ToBPatchReadMe.txt
« Power Users.txt »
nomouse.com
nomouse.pif
nomouse.sp
baldur.ini
readme.txt
baldur.ico
baldur.exe
Baldur.err
Autorun.ini) do copy %BG2BASEREP% »%%~nxi » « %%~nxi »
@echo Creation de repertoires temporaires
:: Création des répertoires utiles au jeu
mkdir cache
mkdir cachedata
mkdir Save
mkdir temp
mkdir tempsave
:PatchIni
:: patch de Baldur.ini
:: Il faut avoir ssed dans le répertoire courant, il est téléchargeable ici :
:: http://sed.sourceforge.net/grabbag/ssed/
:: Téléchargez le fichier « Binary Win32 executable, zipped » et mettez ssed.exe
:: dans le même répertoire que CopieBGII.bat
:: Récupération du répertoire courant
FOR /F « tokens=* » %%A IN (‘cd’) DO SET COPIEREP=%%A
:: Vérification des versions de Windows pour déterminer si c’est au moins XP, pour le patch de Baldur.ini
:: Code emprunté à BGT
VER | find « XP » > nul
IF %errorlevel% EQU 0 GOTO versionXPouPlus
VER | find « Version 5.2 » > nul
IF %errorlevel% EQU 0 GOTO versionXPouPlus
VER | find /i « Version 6.0 » > nul
IF %errorlevel% EQU 0 GOTO versionXPouPlus
VER | find /i « Version 6.1 » > nul
IF %errorlevel% EQU 0 GOTO versionXPouPlus
VER |find /i « Windows 95 » > NUL
IF NOT ERRORLEVEL 1 GOTO NiXPniSED
VER |find /i « Windows 98 » > NUL
IF NOT ERRORLEVEL 1 GOTO NiXPniSED
VER |find /i « Windows Millennium » > NUL
IF NOT ERRORLEVEL 1 GOTO NiXPniSED
:: Vérification de la présence de ssed, soit localement, soit dans le PATH
where ssed >nul 2>nul
:: A priori ce test ne fonctionnera que sous NT 4, 2000, et plus
::if NOT ERRORLEVEL 0 goto NiXPniSED
if %errorlevel% NEQ 0 goto NiXPniSED
:versionssed
:: Doublement des caractères dans le chemin stocké dans la variable,
:: car c’est un caractère spécial pour ssed et il faut le doubler pour lui dire
:: qu’on veut vraiment un caractère dans le texte
set COPIEREP=%COPIEREP:=\%
@echo Patch de Baldur.ini pour mettre a jour le repertoire principal
copy %BG2BASEREP% »Baldur.ini » Baldur.ini
:: Si ssed est présent, on modifie le fichier Baldur.ini, ligne HD0:=, pour qu’il
:: pointe bien sur le nouveau répertoire
ssed -e « /HD0:=/s/HD0:=.*/HD0:=%COPIEREP%\/ » Baldur.ini > Baldurnew.ini
move Baldurnew.ini Baldur.ini
goto end
:versionXPouPlus
::
:: http://technet.microsoft.com/en-us/library/cc755694%28WS.10%29.aspx
@echo Patch DOS de Baldur.ini pour mettre a jour le repertoire principal
copy %BG2BASEREP% »Baldur.ini » Baldur.ini
if exist Baldurnew.ini del /F Baldurnew.ini
:: echo. (echo suivi d’un point accolé) sert à insérer une ligne vide. Comme la boucle ne permet pas de récupérer
:: lignes vides et donc de les recopier, j’introduits arbitrairement une ligne vide avant chaque section [xxx]
for /F « tokens=1-2 delims== » %%a in (Baldur.ini) do (
if « %%b » EQU « » (
set prem=%%a
set car=!prem:~0,1!
if « !car! » == « [ » (
echo.
echo %%a
) else (
echo %%a=
)
) else (
if « %%a » NEQ « HD0: » (
echo %%a=%%b
) else (
echo %%a=%COPIEREP%
)
)
) >> Baldurnew.ini
move Baldurnew.ini Baldur.ini
goto end
:: Version de Windows trop ancienne pour patcher sans sed, et il n’est pas présent
:NiXPniSED
echo N’oubliez pas de modifier le fichier Baldur.ini pour indiquer en HD0 le nouveau répertoire
:end
:: Permet de garder la fenêtre « DOS » ouverte, et donc de consulter les éventuelles erreurs signalées
pause
Pour obtenir le fichier, créez un nouveau document texte, puis ouvrez le en double-cliquant sur son icône. Recopiez le contenu de la citation dans le fichier puis enregistrez-le.
Enfin, renommez le fichier texte sous le nom « CopieBGII.bat » (sans les guillemets).
Pour l’utiliser, il suffit de le placer dans le répertoire « C:\BGII – Mod1 », puis de double-cliquer dessus.
Si vous avez Windows XP ou Windows 7, le fichier Baldur.ini sera également automatiquement modifié. Cela devrait aussi marcher avec Vista, mais je n’ai pas pu vérifier. Pour les autres, il vous faudra bien penser à modifier la ligne HD0 du fichier comme indiqué dans la procédure.
Automatisation de la copie : cas avec des mods, BG2 Fixpack et BGT
Le principe est le même que ci-dessus, sauf qu’il faut aussi copier le fichier WeiDU.log et tous les fichiers des mods :
:: Toute ligne commençant par :: est un commentaire
:: Utilisation de l’évaluation retardée des variables, nécessaires pour traiter des éléments dans des boucles ou de if
:: Dans ce mode, le caractère ! remplace le % habituel pour désigner les variables
:: Nécessaire pour la modification de Baldur.ini
SETLOCAL ENABLEDELAYEDEXPANSION
:: Variable contenant le répertoire de l’installation de base de Baldur’s Gate II
:: Ce peut être aussi un chemin complet, « C:JeuxBGII – SoA », ou un chemin relatif
:: Pour ma part, je recopie toujours dans un répertoire au même niveau, donc je mets du relatif
set BGTBASEREP= »..BGII – BGT »
:: /E pour copier l’arborescence des répertoires, y compris les répertoires vides
:: /I pour que la destination soit considérée comme un répertoire s’il y a plusieurs fichiers copiés
xcopy /E /I %BGTBASEREP% »characters » characters
xcopy /E /I %BGTBASEREP% »data » data
xcopy /E /I %BGTBASEREP% »music » music
xcopy /E /I %BGTBASEREP% »portraits » portraits
xcopy /E /I %BGTBASEREP% »script compiler » « script compiler »
xcopy /E /I %BGTBASEREP% »scripts » scripts
xcopy /E /I %BGTBASEREP% »sounds » sounds
xcopy /E /I %BGTBASEREP% »Override » Override
copy %BGTBASEREP% »Chitin.key » .
copy %BGTBASEREP% »dialog.tlk » .
copy %BGTBASEREP% »dialogF.tlk » .
for %%i in (BGMain.exe
bggltest.exe
CharView.exe
bgdxtest.exe
BGConfig.exe
bgate2.mpi
Keymap.ini
language.txt
Lasnil32.dll
license.txt
Llload.bmp
BG2-ToBPatchReadMe.txt
« Power Users.txt »
nomouse.com
nomouse.pif
nomouse.sp
baldur.ini
readme.txt
baldur.ico
baldur.exe
Baldur.err
Autorun.ini) do copy %BG2BASEREP% »%%~nxi » « %%~nxi »
mkdir cache
mkdir cachedata
mkdir Save
mkdir temp
mkdir tempsave
:: On n’oublie surtout pas WeiDU.log
copy %BGTBASEREP% »WeiDU.log » .
:: BG2 Fixpack
xcopy /E /I %BGTBASEREP% »bg2fixpack » bg2fixpack
copy %BGTBASEREP% »setup-bg2fixpack.exe » .
:: BGT
xcopy %BGTBASEREP% »BGT » BGT
xcopy %BGTBASEREP% »GUI_Mod » GUI_Mod
xcopy %BGTBASEREP% »Worldmap » Worldmap
copy %BGTBASEREP% »Setup-BGT.exe » .
copy %BGTBASEREP% »Setup-BGT.tp2″ .
copy %BGTBASEREP% »Setup-BGTMusic.exe » .
copy %BGTBASEREP% »Setup-BGTMusic.tp2″ .
copy %BGTBASEREP% »Setup-GUI.exe » .
copy %BGTBASEREP% »Setup-GUI.tp2″ .
pause
Je n’ai pas repris ici tout le code permettant de modifier automatiquement le fichier Baldur.ini. Si vous y tenez, recopiez toute la partie de l’autre script débutant à :PatchIni et recopiez-là à la place du pause final.