Запуск Diablo 2 Resurrected на Linux посредством Wine.
Страница на Wine AppDB: https://appdb.winehq.org/objectManager.php?sClass=version&iId=40193
Официальная страница: https://diablo2.blizzard.com/
Настройка префикса.
Сначала потребуется установить клиент Battle.net: https://noostyche.ru/blog/2021/09/29/zapusk-battle-net-na-linux-wine/ Будет использоваться тот же префикс: WINEPREFIX=’/home/$USER/.wineBattleNet‘
Примечание: Ниже представленная информация актуальна только для Wine 6.18 и vkd3d-proton 2.4. На более новых версиях всё работает без дополнительных манипуляций.
На момент написания статьи (2021.09.29) в Wine не была реализована трансляция функции DX12, которая используется именно Diablo 2 Resurrected. Без неё игра показывала чёрный экран.
Так же эта функция отсутствовала в стабильном выпуске vkd3d-proton (версия 2.4), но на тот момент её реализовали в ветке разработки. Чтобы не собирать библиотеки из исходного кода вручную, в готовом виде их можно было взять из Lutris: https://github.com/lutris/vkd3d/releases/tag/v2.4L-2 Далее пойдёт речь о том, как правильно добавить необходимые библиотеки в префикс.
Загрузить архив vkd3d-v2.4L-2.tar.xz:
Содержимое архива:
Переместить содержимое в префикс:
В каталоге vkd3d-v2.4L-2 находятся библиотеки и простой shell-скрипт, который автоматически скопирует их по нужным каталогам префикса, при этом переименовав оригинальные библиотеки. Запуск скрипта:
WINEPREFIX='/home/$USER/.wineBattleNet' '/home/$USER/.wineBattleNet/drive_c/vkd3d-v2.4L-2/setup_vkd3d_proton.sh' install
Пояснения:
- Необходимо передать переменной окружения WINEPREFIX путь до префикса, так как это значение используется в скрипте для поиска файла реестра. Цитата из скрипта:
$WINEPREFIX/system.reg
- Важно не забыть опцию
install
. - До файла скрипта необходимо указать абсолютный путь.
- Удаление новых библиотек с возвращением оригиналов осуществляется опцией
uninstall
.
Пример вывода после выполнения скрипта:
переименован '/home/$USER/.wineBattleNet/dosdevices/c:/windows/system32/d3d12.dll' -> '/home/$USER/.wineBattleNet/dosdevices/c:/windows/system32/d3d12.dll.old'
'/home/$USER/.wineBattleNet/drive_c/vkd3d-v2.4L-2/x64/d3d12.dll' -> '/home/$USER/.wineBattleNet/dosdevices/c:/windows/system32/d3d12.dll'
переименован '/home/$USER/.wineBattleNet/dosdevices/c:/windows/syswow64/d3d12.dll' -> '/home/$USER/.wineBattleNet/dosdevices/c:/windows/syswow64/d3d12.dll.old'
'/home/$USER/.wineBattleNet/drive_c/vkd3d-v2.4L-2/x86/d3d12.dll' -> '/home/$USER/.wineBattleNet/dosdevices/c:/windows/syswow64/d3d12.dll'
Запуск Diablo 2 Resurrected.
Можно запустить через клиент Battle.net (его запуск описан здесь) или напрямую:
WINEPREFIX='home/$USER/.wineBattleNet' wine start /unix 'C:\Program Files (x86)\Diablo II Resurrected\D2R.exe'
Более никаких манипуляций не требуется.