Both sides previous revisionPrevious revisionNext revision | Previous revision |
games:wine:diablo_2 [2024/03/06 22:45] – Sean Rhone | games:wine:diablo_2 [2024/08/13 16:06] (current) – removed Sean Rhone |
---|
====== Information ====== | |
| |
* Diablo II ((http://us.blizzard.com/en-us/games/d2/)) | |
* Diablo II: Lord of Destruction | |
* GLIDE3-to-OpenGL-Wrapper ((http://www.svenswrapper.de/english/index.html)) | |
| |
===== Prerequisites ===== | |
| |
* [[distros:fedora_workstation_gnome|Fedora Workstation (GNOME)]] | |
* [[notes:wine|Wine]] | |
| |
===== Notes ===== | |
| |
* **Lord of Destruction** is not standalone and requires **Diablo II** | |
* This is the original client with CD keys and TCP/IP multiplayer; see [[games:wine:diablo_2_resurrected|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 -> 4096x4096 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 ((ideally should allow gamma adjustments (click and drag on color bars) and maintain 60+ fps)) | |
* 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 ((or at the very least, doesn't outright cause a crash)) but querying OpenGL info causes the extension to not be available. If enabled, it presents a ''X11DRV_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' | |
| |
<code> | |
[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</code> | |
| |
===== Save Data Back-up Script ===== | |
| |
nano ~/'.wine/Diablo II/save-backup.sh' && chmod +x ~/'.wine/Diablo II/save-backup.sh' | |
| |
<code> | |
#!/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</code> | |
| |
====== 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 ==== | |
| |
**** | |
| |
<code>-3dfx</code> | |
| |
==== 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 | |
| |