games:linux:wine:diablo_2
This is an old revision of the document!
Table of Contents
Information
Prerequisites
Notes
- Lord of Destruction is not standalone and requires Diablo II
- This is the original client with CD keys and TCP/IP multiplayer; see Diablo II: Resurrected for the modern version
Install
Diablo II
mkdir -p ~/'.wine' && WINEPREFIX=~/'.wine/Diablo II' WINEARCH='win32' winetricks 'winxp' && sync && PULSE_LATENCY_MSEC='400' WINEDEBUG='' WINEPREFIX=~/'.wine/Diablo II' wine ~/'Downloads/Diablo II/D2-1.14b-Installer-enUS/Installer.exe'
Lord of Destruction
sync && PULSE_LATENCY_MSEC='400' WINEDEBUG='' WINEPREFIX=~/'.wine/Diablo II' wine ~/'Downloads/Diablo II/D2LOD-1.14b-Installer-enUS/Installer.exe'
Patch
- 1.14d
sync && PULSE_LATENCY_MSEC='400' MESA_SHADER_CACHE_DIR=~/'.wine/Diablo II' WINEDEBUG='' WINEPREFIX=~/'.wine/Diablo II' wine ~/'Downloads/Diablo II/LODPatch_114d.exe'
Glide Wrapper
- TODO: Local file commands like above
Online
- The following command expects
gl32ogl14e.zip
(1.4e) to exist at http://www.svenswrapper.de/gl32ogl14e.zip
wget -O '/tmp/gl32ogl14e.zip' 'http://www.svenswrapper.de/gl32ogl14e.zip' && unzip '/tmp/gl32ogl14e.zip' 'glide3x.dll' 'glide-init.exe' -d ~/'.wine/Diablo II/drive_c/Program Files/Diablo II' && rm -f '/tmp/gl32ogl14e.zip' && sync
Clean Up
rm -R ~/'Downloads/Diablo II' ~/'Desktop/Diablo II - Lord of Destruction.desktop' && sync
Glide Wrapper
- 2024/01/02: Intel UHD 630 with Zink required
WGL_EXT_swap_control
unchecked to avoid a blackscreen during the test
- Hauptmenu → Deutsch/English
- OpenGL-infos → Query OpenGL-infos
- settings → [x] captured mouse
- settings → [x] desktopresolution
- renderer → 108 MB texture-memory
- renderer → 4096×4096 buffer-texture-size
- renderer → [x] 32 bit rendering
- renderer → [x] bilinear filtering
- renderer → [x] keep desktop composition
- Extensions → [x] WGL_ARB_render_texture
- renderer → [x] supersampling
- Test 4)
- Quit
cd ~/'.wine/Diablo II/drive_c/Program Files/Diablo II' && MESA_SHADER_CACHE_DIR=~/'.wine/Diablo II' WINEPREFIX=~/'.wine/Diablo II' wine ~/'.wine/Diablo II/drive_c/Program Files/Diablo II/glide-init.exe'
Zink
cd ~/'.wine/Diablo II/drive_c/Program Files/Diablo II' && MESA_SHADER_CACHE_DIR=~/'.wine/Diablo II' WINEPREFIX=~/'.wine/Diablo II' MESA_LOADER_DRIVER_OVERRIDE='zink' MESA_VK_WSI_PRESENT_MODE='immediate' wine ~/'.wine/Diablo II/drive_c/Program Files/Diablo II/glide-init.exe'
Reset Settings
WINEPREFIX=~/'.wine/Diablo II' wine reg DELETE 'HKCU\Software\GLIDE3toOpenGL' /f
Notes
WGL_ARB_render_texture
seems to work 5) but querying OpenGL info causes the extension to not be available. If enabled, it presents aX11DRV_wglBindTexImageARB
partial stub fixme in Terminal, but other than that, it seems to work fine and allows supersampling to be enabled under renderer settings which does make D2 look a little bit sharper- captured mouse enabled is required to prevent the cursor from “going offscreen” on the right-side of the D2 window
- keep desktop composition prevents dwmapi-related stub/fixme errors from appearing; I don't believe it has any actual visible effect either way
Desktop Launcher
Initial
rm -Rf ~/'.local/share/applications/wine/Programs/Diablo II' ~/'.local/share/applications/wine/Programs/Diablo II' && mkdir -p ~/'.local/share/applications/wine/Programs/Diablo II'
Lord of Destruction
nano ~/'.local/share/applications/wine/Programs/Diablo II/Diablo II: Lord of Destruction.desktop'
[Desktop Entry] Name=Diablo II: Lord of Destruction Categories=Game;AdventureGame;RolePlaying Exec='/bin/bash' -c "cd ~/'.wine/Diablo II/drive_c/Program Files/Diablo II' && PULSE_LATENCY_MSEC='400' MESA_SHADER_CACHE_DIR=~/'.wine/Diablo II' WINEPREFIX=~/'.wine/Diablo II' wine ~/'.wine/Diablo II/drive_c/Program Files/Diablo II/Diablo II.exe' -3dfx" Type=Application StartupNotify=true Icon=0913_Diablo II.0 StartupWMClass=game.exe Actions=Kill;Glide;Saves;Notes; [Desktop Action Kill] Exec='/bin/bash' -c "WINEPREFIX=~/'.wine/Diablo II' wineserver --kill" Exec='/bin/killall' -9 'Game.exe' Name=Force-close Diablo II [Desktop Action Glide] Exec='/bin/bash' -c "MESA_SHADER_CACHE_DIR=~/'.wine/Diablo II' WINEPREFIX=~/'.wine/Diablo II' wine ~/'.wine/Diablo II/drive_c/Program Files/Diablo II/glide-init.exe'" Name=Glide Wrapper Configuration [Desktop Action Saves] StartupNotify=false Exec='/bin/bash' -c "~/'.wine/Diablo II/save-backup.sh'" Name=Save Data Back-up [Desktop Action Notes] StartupNotify=false Exec=gio open 'https://wiki.realmofespionage.xyz/games:wine:diablo_2' Name=Installation Notes # End
Save Data Back-up Script
nano ~/'.wine/Diablo II/save-backup.sh' && chmod +x ~/'.wine/Diablo II/save-backup.sh'
#!/bin/sh ls ~/'.wine/Diablo II/drive_c/users/'$USER'/Saved Games/Diablo II' tar -cvzf ~/'Downloads/'$(date +%Y-%m-%d-%s)'-manual-D2-Saves.tar.gz' -C ~/'.wine/Diablo II/drive_c/users/'$USER'/Saved Games' 'Diablo II' sync notify-send 'Diablo II save data has been successfully archived and placed in the Downloads folder.' # End
Quick Commands
Winecfg
WINEPREFIX=~/'.wine/Diablo II' winecfg
Winetricks
WINEPREFIX=~/'.wine/Diablo II' winetricks
Registry Editor
WINEPREFIX=~/'.wine/Diablo II' regedit
Kill
WINEPREFIX=~/'.wine/Diablo II' wineserver --kill && killall -9 'Game.exe'
Execute
Command-line Arguments
-3dfx
Lord of Destruction
cd ~/'.wine/Diablo II/drive_c/Program Files/Diablo II' && PULSE_LATENCY_MSEC='400' MESA_SHADER_CACHE_DIR=~/'.wine/Diablo II' WINEDEBUG='' WINEPREFIX=~/'.wine/Diablo II' wine ~/'.wine/Diablo II/drive_c/Program Files/Diablo II/Diablo II.exe' -3dfx
Zink
cd ~/'.wine/Diablo II/drive_c/Program Files/Diablo II' && PULSE_LATENCY_MSEC='400' MESA_SHADER_CACHE_DIR=~/'.wine/Diablo II' MESA_LOADER_DRIVER_OVERRIDE='zink' MESA_VK_WSI_PRESENT_MODE='immediate' WINEDEBUG='' WINEPREFIX=~/'.wine/Diablo II' wine ~/'.wine/Diablo II/drive_c/Program Files/Diablo II/Diablo II.exe' -3dfx
File Manager
Root
gio open ~/'.wine/Diablo II/drive_c/Program Files/Diablo II'
Saved Games
gio open ~/'.wine/Diablo II/drive_c/users/'$USER/'Saved Games/Diablo II'
Saved Games Data
Backup
- Creates
{DATE}-manual-D2-Saves.tar.gz
in~/Downloads
tar -cvzf ~/'Downloads/'$(date +%Y-%m-%d-%s)'-manual-D2-Saves.tar.gz' -C ~/'.wine/Diablo II/drive_c/users/'$USER'/Saved Games' 'Diablo II' && ls ~/'Downloads/'*'-manual-D2-Saves.tar.gz'
Restore
- Expects
*-manual-D2-Saves.tar.gz
in~/Downloads
If that tarball exists, this series of commands will irreversibly, without warning or prompt, delete the existing
Saved Games
folder and replace it with whatever is in that tarball
ls ~/'Downloads/'*'-manual-D2-Saves.tar.gz' && rm -Rf ~/'.wine/Diablo II/drive_c/users/'$USER'/Saved Games' && mkdir -p ~/'.wine/Diablo II/drive_c/users/'$USER'/Saved Games' && tar -xvzf ~/'Downloads/'*'-manual-D2-Saves.tar.gz' -C ~/'.wine/Diablo II/drive_c/users/'$USER'/Saved Games' 'Diablo II' && sync
/srv/www/wiki/data/attic/games/linux/wine/diablo_2.1725601012.txt.gz · Last modified: by Sean Rhone