Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision |
games:wine:diablo_2_resurrected [2023/09/14 05:02] – [vkd3d-proton] Sean Rhone | games:wine:diablo_2_resurrected [2024/01/23 02:20] – Sean Rhone |
---|
* Diablo II: Resurrected ((https://diablo2.blizzard.com)) | * Diablo II: Resurrected ((https://diablo2.blizzard.com)) |
* 64-bit | * 64-bit |
| * [[https://www.youtube.com/watch?v=07pNpFbNlEg|Gameplay Video]] |
| |
===== Prerequisites ===== | ===== Prerequisites ===== |
===== Notes ===== | ===== Notes ===== |
| |
* 2022: Resurrected mode is unplayable performance-wise on Intel UHD Graphics 630, but it works fine in Legacy mode | * This is the modern client that has enhanced graphics and requires the Battle.net client; see [[games:wine:diablo_2|Diablo II]] for the original version |
| * 2023/09/14: Resurrected graphics has too-low of FPS on Intel UHD 630; switch to Legacy graphics in-game ((actual in-game and not main menu)) by pressing ''G'' |
| * :!: Using a game controller requires the hardware specs to run Resurrected graphics at reasonable framerates, even if switched to Legacy graphics ((presumably Resurrected assets need to be running for the controller mappings and UI being done by the game engine)) |
| * [[games:wine:diablo_2_resurrected?rev=1688917348#nvidia_libs|See this notes section from an older revision]] for ''nvidia-libs'' and DLSS ((until the notes are re-added to this main page, assume the commands may need refactored in 2024+)) |
| * :!: When directly-launching ''D2R.exe'' with ''-username'' and ''-password'', if the Battle.net account or the system flags you for captchas, log-in isn't possible |
| |
====== Install ====== | ====== Install ====== |
* Install to default directory when prompted ((C:/Program Files (x86)/Battle.net)) | * Install to default directory when prompted ((C:/Program Files (x86)/Battle.net)) |
* Log-in | * Log-in |
* :!: Change Battle.net App settings | * Change Battle.net App settings ((don't auto-start, exit on game launch)) |
* Close | * Close |
| |
mkdir -p ~/'.wine' && wget 'https://us.battle.net/download/getInstaller?os=win&installer=Battle.net-Setup.exe&id=undefined' -O ~/'Downloads/Battle.net-Setup.exe' && WINEPREFIX=~/'.wine/Diablo II Resurrected' WINEARCH='win64' wine ~/'Downloads/Battle.net-Setup.exe' | mkdir -p ~/'.wine' && wget 'https://us.battle.net/download/getInstaller?os=win&installer=Battle.net-Setup.exe&id=undefined' -O ~/'Downloads/Battle.net-Setup.exe' && WINEPREFIX=~/'.wine/Diablo II Resurrected' WINEARCH='win64' wine ~/'Downloads/Battle.net-Setup.exe' |
| |
==== Qt Fix ==== | |
| |
**** | |
| |
setfattr --remove='user.DOSATTRIB' ~/'.wine/Diablo II Resurrected/drive_c/Program Files (x86)/Battle.net/Battle.net.'*'/platforms/qwindows.dll' | |
| |
===== Restore Data ===== | ===== Restore Data ===== |
===== Diablo II Resurrected ===== | ===== Diablo II Resurrected ===== |
| |
* Install Diablo II Resurrected ((Locate the game does not work; the install process will detect the existing data files, fail, and install with the Update process)) | * Install Diablo II Resurrected ((Locate the game may not work; the install process will detect the existing data files, fail, and install with the Update process)) |
| * TODO: Test if Locate game works; this seems to have been improved on Windows |
| |
cd ~/'.wine/Diablo II Resurrected/drive_c/Program Files (x86)/Battle.net' && WINEPREFIX=~/'.wine/Diablo II Resurrected' wine ~/'.wine/Diablo II Resurrected/drive_c/Program Files (x86)/Battle.net/Battle.net Launcher.exe' | cd ~/'.wine/Diablo II Resurrected/drive_c/Program Files (x86)/Battle.net' && WINEPREFIX=~/'.wine/Diablo II Resurrected' wine ~/'.wine/Diablo II Resurrected/drive_c/Program Files (x86)/Battle.net/Battle.net Launcher.exe' |
| |
* https://github.com/doitsujin/dxvk/actions ((need to be signed into GitHub, and select the latest ''master'' artifacts package)) | * https://github.com/doitsujin/dxvk/actions ((need to be signed into GitHub, and select the latest ''master'' artifacts package)) |
* Provides DXGI for vkd3d-proton | * Provides DXGI for ''vkd3d-proton'' |
* Since D2R can only use D3D12 and thus ''vkd3d-proton'', there's no need for DXVK's cache folder ((if adapting for other games, get this syntax from somewhere else)) | * Since D2R can only use D3D12 and thus ''vkd3d-proton'', <del>there's no need for DXVK's cache folder</del> |
| * TODO: Add DXVK's cache folder as the Battle.net client probably uses it anyway |
| |
ls ~/'Downloads/dxvk-master-'*'.zip' && rm -Rf '/tmp/dxvk-master' && mkdir -p '/tmp/dxvk-master' && unzip ~/'Downloads/dxvk-master-'*'.zip' -d '/tmp/dxvk-master/' && cp --backup '/tmp/dxvk-master/x64/'*'.dll' ~/'.wine/Diablo II Resurrected/drive_c/windows/system32/' && cp --backup '/tmp/dxvk-master/x32/'*'.dll' ~/'.wine/Diablo II Resurrected/drive_c/windows/syswow64/' && WINEPREFIX=~/'.wine/Diablo II Resurrected' winetricks 'd3d9=native' 'd3d10core=native' 'd3d11=native' 'dxgi=native' && sync | ls ~/'Downloads/dxvk-master-'*'.zip' && rm -Rf '/tmp/dxvk-master' && mkdir -p '/tmp/dxvk-master' && unzip ~/'Downloads/dxvk-master-'*'.zip' -d '/tmp/dxvk-master/' && cp --backup '/tmp/dxvk-master/x64/'*'.dll' ~/'.wine/Diablo II Resurrected/drive_c/windows/system32/' && cp --backup '/tmp/dxvk-master/x32/'*'.dll' ~/'.wine/Diablo II Resurrected/drive_c/windows/syswow64/' && WINEPREFIX=~/'.wine/Diablo II Resurrected' winetricks 'd3d9=native' 'd3d10core=native' 'd3d11=native' 'dxgi=native' && sync |
* D3D12 to Vulkan | * D3D12 to Vulkan |
| |
ls ~/'Downloads/vkd3d-proton-master-'*'.zip' && rm -Rf '/tmp/vkd3d-proton-master' && mkdir -p '/tmp/vkd3d-proton-master' && unzip ~/'Downloads/vkd3d-proton-master-'*'.zip' -d '/tmp/vkd3d-proton-master/' && cp --backup '/tmp/vkd3d-proton-master/x64/'*'.dll' ~/'.wine/Diablo II Resurrected/drive_c/windows/system32/' && cp --backup '/tmp/vkd3d-proton-master/x86/'*'.dll' ~/'.wine/Diablo II Resurrected/drive_c/windows/syswow64/' && WINEPREFIX=~/'.wine/Diablo II Resurrected' winetricks 'd3d12=native' 'd3d12core=native' && sync | ls ~/'Downloads/vkd3d-proton-master-'*'.zip' && rm -Rf '/tmp/vkd3d-proton-master' && mkdir -p '/tmp/vkd3d-proton-master' && unzip ~/'Downloads/vkd3d-proton-master-'*'.zip' -d '/tmp/vkd3d-proton-master/' && cp --backup '/tmp/vkd3d-proton-master/x64/'*'.dll' ~/'.wine/Diablo II Resurrected/drive_c/windows/system32/' && cp --backup '/tmp/vkd3d-proton-master/x86/'*'.dll' ~/'.wine/Diablo II Resurrected/drive_c/windows/syswow64/' && WINEPREFIX=~/'.wine/Diablo II Resurrected' winetricks 'd3d12=native' 'd3d12core=native' && mkdir -p ~/'.wine/Diablo II Resurrected/vkd3d_shader_cache' && sync |
| |
====== Desktop Launcher ====== | ====== Desktop Launcher ====== |
| |
===== Diablo II Resurrected (Battle.net App) ===== | ===== Diablo II Resurrected (Battle.net App) ===== |
| |
| * :!: The direct-launch option requires modifying and specifying a Battle.net account email and password |
| * TODO: Check for offline flag(s) and add separate direct launch option ([[https://d2mods.info/forum/viewtopic.php?f=217&t=67329&p=503731#p503731|source 1]], [[https://old.reddit.com/r/Diablo/comments/qb6ife/psa_you_can_enable_infinite_respecs_in_offline/hhd1g38/|source 2]]) |
| |
nano ~/'.local/share/applications/wine/Programs/Diablo II Resurrected/Diablo II Resurrected.desktop' | nano ~/'.local/share/applications/wine/Programs/Diablo II Resurrected/Diablo II Resurrected.desktop' |
[Desktop Entry] | [Desktop Entry] |
Name=Diablo II: Resurrected | Name=Diablo II: Resurrected |
Comment=Pursue the mysterious Dark Wanderer and fight the denizens of hell as you uncover the fate of the Prime Evils Diablo, Mephisto, and Baal. | Categories=Game;AdventureGame;RolePlaying |
Categories=Game | Exec='/bin/bash' -c "cd ~/'.wine/Diablo II Resurrected/drive_c/Program Files (x86)/Diablo II Resurrected' && PULSE_LATENCY_MSEC='400' MESA_SHADER_CACHE_DIR=~/'.wine/Diablo II Resurrected' VKD3D_SHADER_CACHE_PATH=~/'.wine/Diablo II Resurrected/vkd3d_shader_cache' WINEPREFIX=~/'.wine/Diablo II Resurrected' wine ~/'.wine/Diablo II Resurrected/drive_c/Program Files (x86)/Diablo II Resurrected/Diablo II Resurrected Launcher.exe'" |
Exec=env MESA_SHADER_CACHE_DIR='/home/CHANGEME/.wine/Diablo II Resurrected' VKD3D_SHADER_CACHE_PATH='/home/CHANGEME/.wine/Diablo II Resurrected' __GL_SHADER_DISK_CACHE_PATH='/home/CHANGEME/.wine/Diablo II Resurrected' WINEPREFIX='/home/CHANGEME/.wine/Diablo II Resurrected' wine '/home/CHANGEME/.wine/Diablo II Resurrected/drive_c/Program Files (x86)/Diablo II Resurrected/Diablo II Resurrected Launcher.exe' | |
Type=Application | Type=Application |
StartupNotify=true | StartupNotify=true |
Path=/home/CHANGEME/.wine/Diablo II Resurrected/drive_c/Program Files (x86)/Diablo II Resurrected | |
Icon=B271_Diablo II Resurrected Launcher.0 | Icon=B271_Diablo II Resurrected Launcher.0 |
Actions=Kill;Cache; | StartupWMClass=d2r.exe |
| Actions=Cache;Kill;Notes;Direct; |
| |
| [Desktop Action Cache] |
| Exec='/bin/bash' -c "rm -Rf ~/'.wine/Diablo II Resurrected/mesa_shader_cache/'* ~/'.wine/Diablo II Resurrected/vkd3d_shader_cache/'* && sync && notify-send 'The Diablo II Resurrected cache has been cleaned.'" |
| Name=Cache Cleanup |
| |
[Desktop Action Kill] | [Desktop Action Kill] |
Exec=env WINEPREFIX='/home/CHANGEME/.wine/Diablo II Resurrected' wineserver -k | Exec='/bin/bash' -c "WINEPREFIX=~/'.wine/Diablo II Resurrected' wineserver --kill" |
Name=Force-close | Name=Force-close |
| |
[Desktop Action Cache] | [Desktop Action Notes] |
Exec=bash -c "rm -Rf ~/'.wine/Diablo II Resurrected/mesa_shader_cache' ~/'.wine/Diablo II Resurrected/vkd3d-proton.cache' ~/'.wine/Diablo II Resurrected/GLCache' ~/'.wine/Diablo II Resurrected/drive_c/windows/temp/'* ~/'.wine/Diablo II Resurrected/drive_c/users/'$USER'/Temp/'* && sync" | StartupNotify=false |
Name=Cache Clean-up</code> | Exec='/bin/bash' -c "gio open 'https://wiki.realmofespionage.xyz/games:wine:diablo_2_resurrected'" |
| Name=Installation Notes |
| |
sed -i 's/'CHANGEME'/'$USER'/g' ~/'.local/share/applications/wine/Programs/Diablo II Resurrected/Diablo II Resurrected.desktop' | [Desktop Action Direct] |
| StartupNotify=false |
| Exec='/bin/bash' -c "cd ~/'.wine/Diablo II Resurrected/drive_c/Program Files (x86)/Diablo II Resurrected' && PULSE_LATENCY_MSEC='400' MESA_SHADER_CACHE_DIR=~/'.wine/Diablo II Resurrected' VKD3D_SHADER_CACHE_PATH=~/'.wine/Diablo II Resurrected/vkd3d_shader_cache' WINEPREFIX=~/'.wine/Diablo II Resurrected' wine ~/'.wine/Diablo II Resurrected/drive_c/Program Files (x86)/Diablo II Resurrected/D2R.exe' -username espionage724@x -password x" |
| Name=Launch D2R without Battle.net |
| |
| # End</code> |
| |
====== Quick Commands ====== | ====== Quick Commands ====== |
**** | **** |
| |
WINEPREFIX=~/'.wine/Diablo II Resurrected' wineserver --kill && killall 'Agent.exe' 'winedevice.exe' 'Diablo II Resur' 'start.exe' -signal 'SIGKILL' --wait | WINEPREFIX=~/'.wine/Diablo II Resurrected' wineserver --kill |
| |
===== Execute ===== | ===== Execute ===== |
==== Battle.net App ==== | ==== Battle.net App ==== |
| |
**** | * ''Battle.net Launcher.exe'' |
| |
cd ~/'.wine/Diablo II Resurrected/drive_c/Program Files (x86)/Battle.net' && WINEPREFIX=~/'.wine/Diablo II Resurrected' WINEDEBUG='' wine ~/'.wine/Diablo II Resurrected/drive_c/Program Files (x86)/Battle.net/Battle.net Launcher.exe' | cd ~/'.wine/Diablo II Resurrected/drive_c/Program Files (x86)/Battle.net' && PULSE_LATENCY_MSEC='400' MESA_SHADER_CACHE_DIR=~/'.wine/Diablo II Resurrected' VKD3D_SHADER_CACHE_PATH=~/'.wine/Diablo II Resurrected/vkd3d_shader_cache' WINEPREFIX=~/'.wine/Diablo II Resurrected' WINEDEBUG='' wine ~/'.wine/Diablo II Resurrected/drive_c/Program Files (x86)/Battle.net/Battle.net Launcher.exe' |
| |
==== Diablo II Resurrected (Battle.net App) ==== | ==== Diablo II Resurrected (Battle.net App) ==== |
| |
**** | * ''Diablo II Resurrected Launcher.exe'' |
| |
cd ~/'.wine/Diablo II Resurrected/drive_c/Program Files (x86)/Diablo II Resurrected' && WINEPREFIX=~/'.wine/Diablo II Resurrected' WINEDEBUG='' wine ~/'.wine/Diablo II Resurrected/drive_c/Program Files (x86)/Diablo II Resurrected/Diablo II Resurrected Launcher.exe' | cd ~/'.wine/Diablo II Resurrected/drive_c/Program Files (x86)/Diablo II Resurrected' && PULSE_LATENCY_MSEC='400' MESA_SHADER_CACHE_DIR=~/'.wine/Diablo II Resurrected' VKD3D_SHADER_CACHE_PATH=~/'.wine/Diablo II Resurrected/vkd3d_shader_cache' WINEPREFIX=~/'.wine/Diablo II Resurrected' WINEDEBUG='' wine ~/'.wine/Diablo II Resurrected/drive_c/Program Files (x86)/Diablo II Resurrected/Diablo II Resurrected Launcher.exe' |
| |
==== Diablo II Resurrected ==== | ==== Diablo II Resurrected ==== |
| |
| * ''D2R.exe'' |
* Useful for quick graphical testing as this bypasses Battle.net launcher and boots D2R directly | * Useful for quick graphical testing as this bypasses Battle.net launcher and boots D2R directly |
* :!: Occasionally this will fail to load online characters | * :!: This may fail to load online characters occasionally |
| * TODO: ''-username'', ''-password'', and other options ([[https://d2mods.info/forum/viewtopic.php?f=217&t=67329&p=503731#p503731|source 1]], [[https://old.reddit.com/r/Diablo/comments/qb6ife/psa_you_can_enable_infinite_respecs_in_offline/hhd1g38/|source 2]]) |
| |
cd ~/'.wine/Diablo II Resurrected/drive_c/Program Files (x86)/Diablo II Resurrected' && WINEPREFIX=~/'.wine/Diablo II Resurrected' WINEDEBUG='' wine ~/'.wine/Diablo II Resurrected/drive_c/Program Files (x86)/Diablo II Resurrected/D2R.exe' | cd ~/'.wine/Diablo II Resurrected/drive_c/Program Files (x86)/Diablo II Resurrected' && PULSE_LATENCY_MSEC='400' MESA_SHADER_CACHE_DIR=~/'.wine/Diablo II Resurrected' VKD3D_SHADER_CACHE_PATH=~/'.wine/Diablo II Resurrected/vkd3d_shader_cache' WINEPREFIX=~/'.wine/Diablo II Resurrected' WINEDEBUG='' wine ~/'.wine/Diablo II Resurrected/drive_c/Program Files (x86)/Diablo II Resurrected/D2R.exe' |
| |
===== File Manager ===== | ===== File Manager ===== |