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, держите логи. Тогда обновление одной игры не ломает другую, а диагностика занимает минуты, а не вечер.