Использование Proton напрямую для запуска программ.
Для понимания материала крайне желательно освоить основы по использованию 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.
- Создать текстовый файл ja.reg в корне префикса игры: /home/$USER/.steam/steam/steamapps/compatdata/215930/pfx/drive_c/ja.reg
- Добавить в него следующие строки:
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 - Сохранить изменения.
- Запустить утилиту 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
- В открывшемся редакторе реестра импортировать ранее созданный ja.reg.
- Теперь игра не будет требовать ключ при запуске.