Both sides previous revisionPrevious revisionNext revision | Previous revision |
games:wine:diablo_2 [2018/12/15 09:20] – Sean Rhone | games:wine:diablo_2 [2024/03/06 22:45] (current) – 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 |
| |