Использование Proton напрямую для запуска программ.

10. декабря 2023 Linux, Wine 0

Для понимания материала крайне желательно освоить основы по использованию Wine: https://www.altlinux.org/WINE

Порой для тех или иных игр, запускаемых через Proton (SteamPlay), возникает потребность установить дополнительные патчи, русификатор, моды и прочее. Если подобное пытаться установить с использованием штатного Wine, то это может привести к полной неработоспособности Proton-префикса. Это связано с тем, что между Wine и Proton есть значительные расхождения (в основном из-за свежести версии Wine — используемая в Proton отстаёт). К счастью, в Proton реализован прямой механизм запуска любых программ, размещённых в Proton-префиксе, без задействования клиента Steam.

Пример установки русификатора для Hellslave в Proton-префикс.

Расположение префикса игры по умолчанию:

/home/$USER/.local/share/Steam/steamapps/compatdata/1608450/

Разместить установочный файл русификатора (Hellslave.exe) в корне префикса:

/home/$USER/.local/share/Steam/steamapps/compatdata/1608450/pfx/drive_c/Hellslave.exe

Команда на запуск файла русификатора:

STEAM_COMPAT_CLIENT_INSTALL_PATH=/home/$USER/.local/share/Steam/ STEAM_COMPAT_DATA_PATH=/home/$USER/.steam/steam/steamapps/compatdata/1608450/ /home/$USER/.local/share/Steam/steamapps/common/Proton\ 8.0/proton run /home/$USER/.local/share/Steam/steamapps/compatdata/1608450/pfx/drive_c/Hellslave.exe

Выглядит очень громоздко, но на деле всё просто. Разбор команды:

  • STEAM_COMPAT_CLIENT_INSTALL_PATH — передать этой переменной окружения путь до корневого каталога клиента Steam. В данном случае это /home/$USER/.local/share/Steam/
  • STEAM_COMPAT_DATA_PATH — передать путь до Proton-префикса, который создаётся при первом запуске игры. То есть необходимо хотя бы раз запустить игру. Путь из примера: /home/$USER/.steam/steam/steamapps/compatdata/1608450/, где имя каталога с префиксом соответствует ID игры в Steam.
  • /home/$USER/.local/share/Steam/steamapps/common/Proton 8.0/proton — путь до python-скрипта proton, с помощью которого производится задействование Proton. Путь будет отличаться в зависимости от установленной версии Proton.
  • run /home/$USER/.local/share/Steam/steamapps/compatdata/1608450/pfx/drive_c/Hellslave.exe — команда на запуск указанного исполняемого файла с помощью Proton.

Результат:

Относительно русификаторов стоит отметить, что они ожидают обнаружить установку игры в границах префикса. Пример:

C:\Program Files (x86)\Steam\steamapps\common\Название_игры

При этом файлы игры находятся в /home/$USER/.local/share/Steam/steamapps/common/Название_игры. Тем самым в Proton файлы игры и префикс отделены друг от друга, из-за чего установщик не будет видеть файлы игры. Это решается созданием символической ссылки в префиксе игры. Пример расположения точки входа: C:\Program Files (x86)\Steam\steamapps\common\Символическая_ссылка_на_каталог_игры. Символическая ссылка должна указывать на каталог с файлами игры.

Использование стандартных утилит Wine в proton-префиксе.

В Proton-префиксе присутствует полный набор утилит из стандартного wine-префикса. Их можно задействовать по аналогии с запуском прочих программ. Пример запуска winecfg:

STEAM_COMPAT_CLIENT_INSTALL_PATH=/home/$USER/.local/share/Steam/ STEAM_COMPAT_DATA_PATH=/home/$USER/.steam/steam/steamapps/compatdata/1608450/ /home/$USER/.local/share/Steam/steamapps/common/Proton\ 8.0/proton run winecfg

Пример запуска «Установка/удаление программ» (uninstaller):

STEAM_COMPAT_CLIENT_INSTALL_PATH=/home/$USER/.local/share/Steam/ STEAM_COMPAT_DATA_PATH=/home/$USER/.steam/steam/steamapps/compatdata/1608450/ /home/$USER/.local/share/Steam/steamapps/common/Proton\ 8.0/proton run uninstaller

Пример запуска редактора реестра (regedit):

STEAM_COMPAT_CLIENT_INSTALL_PATH=/home/$USER/.local/share/Steam/ STEAM_COMPAT_DATA_PATH=/home/$USER/.steam/steam/steamapps/compatdata/1608450/ /home/$USER/.local/share/Steam/steamapps/common/Proton\ 8.0/proton run regedit

Бонус.

Пример импорта записи в реестр префикса для исправления проблемы с требованием ключа при запуске Jagged Alliance 2 Wildfire.

  1. Создать текстовый файл ja.reg в корне префикса игры: /home/$USER/.steam/steam/steamapps/compatdata/215930/pfx/drive_c/ja.reg
  2. Добавить в него следующие строки:
    Windows Registry Editor Version 5.00

    [HKEY_CURRENT_USER\Software\iDeal-Games\JA2 Wildfire]
    "Registration"=hex:3c,2f,6f,22,a3,a0,50,22,58,8f,60,22,1e,2d,ad,20
  3. Сохранить изменения.
  4. Запустить утилиту regedit:
    STEAM_COMPAT_CLIENT_INSTALL_PATH=/home/$USER/.local/share/Steam/ STEAM_COMPAT_DATA_PATH=/home/$USER/.steam/steam/steamapps/compatdata/215930 /home/$USER/.local/share/Steam/steamapps/common/Proton\ 8.0/proton run regedit
  5. В открывшемся редакторе реестра импортировать ранее созданный ja.reg.
  6. Теперь игра не будет требовать ключ при запуске.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *