!DgVoodoo и как его использовать вместе с DXVK для старых игр (ручной способ)
2023-03-04T17:14:24+05:00
linux-gamingКак это происходит?
Старая игра на DirectD3D 1-8 преобразовывается DgVoodoo в более современный DirectD3D 9/10/11 и DXVK в свою очередь переводит данные api в Vulkan
Как узнать на какой версии DirectX игра?
Плюсы использования связки DgVoodoo+DXVK:
- Стабильно играть в старые игры
- Можно использовать разные переменные DXVK (такие как DXVK_FRAME_RATE и т.д)
- Никаких вылетов, даже используя Alt+Tab
- Mangohud появляется, и не пропадает (необходим lib32-mangohud)
- Запись и захват игры с помощью Obs происходит без каких-либо проблем
- В WM (Оконных менеджерах) нету никаких проблем, особенно с использованием композитора picom и переключении рабочих столов (тестировалось на i3wm)
- Отлично работает в Wayland сессии
Работает на стандартном wine-staging
sudo pacman -Sy wine-staging
Тестировалось на примере игры Freedom Fighters
Прописываем путь до своего префикса (слепок windows) и устанавливаем игру прописывая путь к setup.exe
В процессе установки не забываем устанавливать игру в Z:\home\username\Games
WINEPREFIX="$HOME/.local/share/wineprefixes/FF" wine путь_к_setup.exe
Накатываем dxvk в префикс wine
Способ 1 - при помощи AUR пакета dxvk-bin
WINEPREFIX="$HOME/.local/share/wineprefixes/FF" setup_dxvk install
Способ 2 - используя winetricks
WINEPREFIX="$HOME/.local/share/wineprefixes/FF" winetricks -q dxvk
Затем накатываем dgVoodoo
Для этого копируем 4 dll'ки внутри из скачанного dgvoodoo /dgVoodoo2_79_3/MS/x86/ в папку с игрой
Пояснение по данным dll файлам:
- ddraw - Содержит все реализации DirectDraw до версии 7
- d3dimm.dll - Содержит все реализации Direct3D до версии 7.
- d3d8.dll - Содержит реализацию Direct3D 8.1.
- d3d9.dll - Содержит реализацию Direct3D 9.0c.
(Опционально) Также можно править вручную параметры в конфиге dgVoodoo2.conf. Или можно (используя default префикс) открыв через wine (не указывая префикс) файл dgVoodooCpl.exe и изменять там нужные для вас параметры и потом после сделанных изменений (нажав Apply) копируете модифицируемый dgVoodoo2.conf в папку игры
Перед запуском игры необходимо дать указание wine использовать нативные dll'ки (т.е которые используются от dgvoodoo внутри игры) указав данную переменную.
WINEDLLOVERRIDES="d3d8,d3d9,d3dimm,ddraw=n,b"
Полный запуск с терминала:
DXVK_HUD=compiler DXVK_FRAME_RATE=60 obs-gamecapture mangohud gamemoderun WINEDLLOVERRIDES="d3d8,d3d9,d3dimm,ddraw=n,b" WINEPREFIX="$HOME/.local/share/wineprefixes/FF" wine $HOME/.local/share/wineprefixes/FF/drive_c/users/Public/Desktop/Freedom\ Fighters.lnk
Для созданного .desktop ярлыка:
....
Exec=env DXVK_HUD=compiler DXVK_FRAME_RATE=60 obs-gamecapture mangohud gamemoderun WINEDLLOVERRIDES="d3d8,d3d9,d3dimm,ddraw=n,b" WINEPREFIX="/home/anix/.local/share/wineprefixes/FF" wine C:\\\\users\\\\Public\\\\Desktop\\\\Freedom\\ Fighters.lnk
.....
ГОТОВО!