Wine позволяет запускать Windows-программы в Linux без виртуальной машины, но новички часто сваливают в один префикс всё подряд, а потом удивляются конфликтам библиотек. Правильная организация — отдельное окружение на игру или группу задач, аккуратные winetricks и понятная диагностика. Ниже — практическая настройка под игры: только легальные копии из Steam, GOG и собственных установщиков.

Что такое префикс Wine

Префикс — каталог, который Wine считает диском C:. Внутри лежат drive_c, dosdevices, файлы реестра и настройки. По умолчанию используется ~/.wine, но переменная WINEPREFIX позволяет держать десятки независимых окружений. Архитектура задаётся WINEARCH: win64 создаёт 64-битный префикс с поддержкой 32-битных приложений через WoW64.

Современный Wine умеет запускать 32-битные программы в 64-битном префиксе, но часть установщиков и старых игр всё ещё требует 32-битных библиотек в системе. Проверить версию можно командой wine —version, а архитектуру префикса — через wine cmd /c echo %PROCESSOR_ARCHITECTURE%.

Создание отдельного префикса

Для игр не используйте стандартный ~/.wine: одна неудачная установка испортит окружение. Задайте отдельный каталог и создайте его командой wineboot.

export WINEPREFIX="$HOME/.wine-games"
WINEARCH=win64 wineboot -u
winecfg
wine --version

Ключ -u обновляет компоненты уже существующего префикса. В winecfg выберите версию Windows: для старых игр подходит Windows 7, для современных — Windows 10. Не ставьте самую новую версию автоматически, если игра её не требует.

winetricks: минимум компонентов

winetricks — набор скриптов, который устанавливает недостающие библиотеки: шрифты, Visual C++ Runtime, .NET, звуковые движки. Запускайте его с тем же WINEPREFIX, иначе рецепты уйдут в чужое окружение. Полный список доступных рецептов выводит winetricks list-all.

WINEPREFIX="$HOME/.wine-games" winetricks -q corefonts vcrun2022
WINEPREFIX="$HOME/.wine-games" winetricks list-all | less
WINEPREFIX="$HOME/.wine-games" winetricks -q d3dx9 d3dcompiler_47

Не устанавливайте всё подряд: каждый рецепт меняет реестр и может сломать другое приложение. Рецепт dotnet48 тяжёлый и конфликтует с частью установщиков, поэтому нужен только при реальной необходимости. После установки проверьте размер префикса: гигабайты лишних компонентов замедляют запуск.

Vulkan, DXVK и VKD3D

DXVK переводит Direct3D 9, 10 и 11 в Vulkan, VKD3D-Proton отвечает за Direct3D 12. В связке с Mesa RADV или драйвером NVIDIA это даёт производительность, близкую к нативной. Сначала убедитесь, что Vulkan работает, затем ставьте транслятор в префикс.

vulkaninfo --summary
WINEPREFIX="$HOME/.wine-games" winetricks -q dxvk
WINEPREFIX="$HOME/.wine-games" wine reg query "HKCU\\Software\\Wine\\Direct3D"

Иногда DXVK уже встроен в Proton или Lutris, и повторная установка ломает версию. Проверяйте, какая DLL подхватывается: WINEDEBUG=+loaddll показывает полный путь. Для старых игр с Glide или OpenGL транслятор не нужен и может только навредить.

Проверка системы до установки

Перед первым запуском убедитесь, что драйвер видеокарты поддерживает Vulkan, а в системе есть 32-битные библиотеки. На NVIDIA нужен актуальный проприетарный драйвер или nouveau с NVK, на Intel и AMD достаточно свежей Mesa. Проверка занимает минуту и избавляет от половины проблем.

  • vulkaninfo —summary завершается без ошибок;
  • установлены libgl1-mesa-dri:i386 и libvulkan1:i386;
  • свободного места хватает на несколько префиксов;
  • PipeWire или PulseAudio работают в обычных приложениях.

Один префикс с DXVK, шрифтами и runtime легко занимает несколько гигабайт, поэтому держите образы и сохранения вне каталога префикса и делайте резервные копии перед экспериментами.

Steam, Proton и сторонние лаунчеры

В Steam включите Steam Play для всех игр в настройках совместимости. Proton — форк Wine с патчами, DXVK и VKD3D. Для не-Steam игр используйте Lutris, Bottles или umu-launcher: они создают отдельные префиксы и подбирают версию Proton. Совместимость проверяйте на ProtonDB.

Часть игр с античит-защитой принципиально не работает в Wine. Обходить такие защиты не следует: это нарушает правила сервисов и может привести к блокировке аккаунта. Если игра критична, держите рядом Windows или облачный сервис, но не пытайтесь ломать защиту.

Настройка под конкретную игру

Для каждой игры удобно держать отдельный префикс и скрипт запуска. Переопределения DLL задаются переменной WINEDLLOVERRIDES: запись d3d11=n,b означает «сначала встроенная, затем нативная библиотека». Виртуальный рабочий стол помогает при проблемах с фокусом, мышью и разрешением.

WINEPREFIX="$HOME/.wine-game1" WINEDLLOVERRIDES="d3d11=n,b" wine game.exe
WINEPREFIX="$HOME/.wine-game1" wine explorer /desktop=game,1920x1080 game.exe
WINEPREFIX="$HOME/.wine-game1" wine reg add "HKCU\\Software\\Wine\\Direct3D" /v VideoMemorySize /t REG_SZ /d 8192

Не копируйте чужие наборы DLL из интернета: неизвестные библиотеки небезопасны и плохо сочетаются с версией Wine. Используйте только winetricks и официальные установщики.

Звук, геймпады и ввод

Звук в Wine идёт через PipeWire или PulseAudio. Если игра молчит, проверьте, что в winecfg выбрано устройство по умолчанию, а в системе нет монопольного захвата. Геймпады обычно определяются как evdev-устройства; для Xbox-контроллеров помогает xpadneo, для DualSense — встроенный драйвер ядра.

Для производительности включите gamemode и mangohud, проверьте fsync или esync. fsync работает через futex и требует свежего ядра, на старых системах остаётся esync. Ограничение FPS и gamescope помогают на ноутбуках с высокой частотой экрана. Не включайте все оптимизации сразу: при проблемах со звуком или вводом их отключают по одной, чтобы найти виновника.

Диагностика проблем

Если игра не запускается, не гадайте. Включите подробный лог, сохраните его в файл и ищите строки err: и failed. Переменная WINEDEBUG=-all отключает лишние сообщения и немного ускоряет запуск.

WINEDEBUG=+loaddll,+dll WINEPREFIX="$HOME/.wine-games" wine game.exe 2> wine.log
grep -iE "err:|failed|not found" wine.log | head -40
WINEPREFIX="$HOME/.wine-games" winedbg --help

Если префикс сломался, его проще пересоздать, чем лечить: сохраните настройки и удалите каталог. Перед удалением убедитесь, что внутри нет нужных файлов сохранений.

Чек-лист

  • отдельный префикс на игру или группу задач;
  • WINEPREFIX и WINEARCH заданы в скрипте запуска;
  • winetricks ставит только необходимые рецепты;
  • Vulkan и DXVK проверены до первого запуска;
  • лог сохраняется при каждом изменении настроек;
  • версия Proton зафиксирована, а не обновляется вслепую.

Итог

Wine — рабочая среда для большинства игр без античита, если не смешивать всё в одном префиксе. Разделяйте окружения, ставьте минимум компонентов, проверяйте Vulkan и DXVK, держите логи. Тогда обновление одной игры не ломает другую, а диагностика занимает минуты, а не вечер.

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 0 / 5. Количество оценок: 0

Оценок пока нет. Поставьте оценку первым.

Поделиться: Telegram ВКонтакте