À moins que vous ne vouliez forcément jouer avec un vieux patch, il ne sera pas nécessaire de créer des images de vos CDs car les derniers patchs offciels proposent de se passer du CD.
Le plus simple est de récupérer les installeurs sans CD sur le nouveau battle.net. Si vous n'avez pas le jeu ou son extension vous pouvez encore les acheter.
Connectez-vous en tant qu'utilisateur administrateur du système. Si ce n'est pas déjà fait, créez un dossier pour les jeux puis téléchargez et sortez de son zip NirCmd. Enfin faites de même avec GNU grep pour Windows.
Installez Diablo II dans un dossier de votre dossier de jeux (tel que "D:\Jeux\Diablo2") puis Lord of Destruction. Si vous comptez utiliser des images CD pour jouer, installez depuis vos images CD. Si vous utilisez les installeurs sans CD de battle.net, vous aurez besoin des codes à 26 caractères fournis par battle.net.
Installez ensuite le patch qui vous intéresse, de préférence le dernier (lien pour le patch 1.16.1 Windows de Brood War) et de préférence sans passer par battle.net.
Côté base de registre, il n'y a rien à faire car le jeu stocke les options dans la clef globale "HKEY_CURRENT_USER".
Le jeu crée à la volée des DLLs temporaires pour se connecter à battle.net. La solution normale ne fonctionne donc pas, modifiez donc le dossier "Diablo2" comme si c'était un dossier de sauvegardes par fichiers nommés. Créez dans ce dossier principal le dossier "Save" que vous modifiez de même. Dans le dossier principal du jeu, donnez aux "Utilisateurs" le droit d'"Écrire" les fichiers "BnetLog.txt" et "bncache.dat" (créez ces fichiers vides s'ils n'existent pas).
Voici un exemple de fichier "Run-Diablo2.bat" : @echo OFF nircmdc setsysvolume %1 cd /d D:\Jeux\Diablo2 "Diablo II.exe" :boucler nircmdc wait 1000 tasklist | grep Game.exe > NUL if errorlevel 1 goto finir goto boucler :finir if exist D*.txt for %%i in (D*.txt) do icacls %%i /grant Utilisateurs:F if exist default.key icacls default.key /grant Utilisateurs:F Il faut lancer ce Batch avec un argument, par exemple : Run-Diablo2.bat 0x4000 Cette commande permet de jouer avec le volume sonore à 25% de son maximum.
Le raccourci peut être créé par chaque utilisateur, ou par un administrateur, à vous de voir quel est le plus logique.
Créez un raccourci vers "Run-Diablo2.bat". Vous pouvez modifier l'icône de ce raccourci pour mettre la même que celle de "Diablo II.exe". Modifiez le raccourci pour rajouter à la fin du champ de saisie "Cible" l'argument 0x4000 par exemple, l'argument étant séparé de ce qui précède par un espace.
Vous pouvez maintenant profiter tranquillement de votre jeu !
Si votre box est en mode routeur et si vous souhaitez pouvoir créer des parties sous battle.net, pour que les autres puissent vous rejoindre vous devez configurer votre routeur pour rediriger les ports TCP 4000 et 6112.
Les deux commandes les plus utilisées sont : /nopickup /players 8 Pour entrer une de ces commandes, faites comme si c'était un message à envoyer, appuyez sur "Entrée", entrez le texte et validez avec "Entrée" à nouveau. La première permet de ne plus ramasser d'objet sans passer par la touche "Alt". Réutilisez cette commande pour annuler. La seconde permet de modifier la force des monstres et donc l'xp qu'ils donnent comme si huit joueurs étaient présents. Pour d'autres commandes, allez voir ici
Vous pouvez très bien lancer deux fois le jeu en simultané pourvu que vous ouvrez deux sessions Windows simultanées sur votre PC. Cela peut être utile pour transférer des objets sur une mule. Dans ce cas le batch fonctionne mal puisque d'une part la fenêtre DOS ne se referme pas avant que les deux sessions soient refermées et d'autre part les fichiers "Dyyyymmdd.txt" et "default.key" sont créés en cours de jeu et non à la fin du jeu, il faut donc modifier leurs droits dès qu'il apparaissent. Le batch devient alors un peu plus complexe : @echo OFF nircmdc setsysvolume %1 cd /d D:\Jeux\Diablo2 tasklist | grep Game.exe > list1.txt "Diablo II.exe" tasklist | grep Game.exe > list2.txt for /F "tokens=2" %%i in ('fc list1.txt list2.txt') do set DIABLO_PID=%%i del list1.txt list2.txt :boucler nircmdc wait 1000 if exist D*.txt for %%i in (D*.txt) do icacls %%i /grant Utilisateurs:F > NUL if exist default.key icacls default.key /grant Utilisateurs:F > NUL tasklist /FI "PID eq %DIABLO_PID%" | grep Game.exe > NUL if errorlevel 1 goto finir goto boucler :finir if exist D*.txt for %%i in (D*.txt) do icacls %%i /grant Utilisateurs:F if exist default.key icacls default.key /grant Utilisateurs:F