games: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
- 2023/12: With the Glide wrapper this runs into a 50 FPS limit on GNOME on Wayland on Intel UHD; use Xorg or attempt to force Zink
- See diablo_2_resurrected for the modern Resurrected version
Uninstall
rm -Rf ~/'.wine/Diablo II' ~/'.local/share/applications/wine/Programs/Diablo II/Diablo II: Lord of Destruction.desktop' ~/'.local/share/icons/hicolor/'*'/apps/CFF8_Diablo II.0.png' && sync
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
- The following command expects
gl32ogl14e.zip
to exist at http://www.svenswrapper.de/gl32ogl14e.zip - Check http://www.svenswrapper.de/english/downloads.html for new versions
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
- 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 3)
- 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'
Reset Settings
WINEPREFIX=~/'.wine/Diablo II' wine reg DELETE 'HKCU\Software\GLIDE3toOpenGL' /f
Notes
- If
EXAVSync
is enabled on the radeon Xorg DDX driver, the Test starts out at 60 FPS and then drops to 30 FPS after a few seconds; I don't believe the FPS drop happens in-game however, but it'd be better to leaveEXAVSync
disabled (default) unless it's required WGL_ARB_render_texture
seems to work4) 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
- When using Intel UHD 630 graphics, using Iris/Gallum driver and disabling Vsync provides the highest and most-consistent FPS above 144
- Some GL Extensions act oddly during the Test when ran through Zink (GL-to-VK) and needs trial-and-error regardless of what is selected after the GL Query
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)'-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.'
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
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
- Will replace existing tarballs if this is done more than once on the same day
tar -cvzf ~/'Downloads/'$(date +%Y-%m-%d)'-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
/var/www/wiki/data/attic/games/wine/diablo_2.1704199131.txt.gz · Last modified: 2024/01/02 07:38 by Sean Rhone