Нюансы запуска S.T.A.L.K.E.R. на Linux.
Основы по использованию Wine: https://noostyche.ru/blog/2020/04/30/ispolzovanie-wine-dlya-zapuska-windows-programm-v-linux/
В заметке описано решение проблемы потерянных конфигурационных файлов: system.ltx, user.ltx и прочих. Проблема особенно актуальна при запуске модов для S.T.A.L.K.E.R. на Linux посредством Wine.
Пример запуска S.T.A.L.K.E.R. Lost Alpha:
Проблема связана с особенностью запуска Windows-программ. Необходимые для запуска компоненты сначала рекурсивно ищутся, начиная с того же каталога, откуда был запущен исполняемый файл, а затем, если найдены не все необходимые файлы, поиск продолжается в C:\windows.
В случае S.T.A.L.K.E.R. проблема проявляется при попытке прямого запуска исполняемого файла ./S.T.A.L.K.E.R. — Lost Alpha DC/bins/XR_3DA.exe. Файл находится в подкаталоге bins, когда ресурсы игры и конфигурационные файлы в gamedata.
Тем самым при запуске XR_3DA.exe обнаруживаются только те файлы, которые расположены в каталоге bins, и игра не может запуститься, сообщая об ошибке.
В среде Wine это решается указанием рабочего каталога (working directory).
Пример запуска Lost Alpha с указанием рабочего каталога:
WINEPREFIX='/home/$USER/.wine64lostalpha' wine start /d 'C:/Program Files (x86)/S.T.A.L.K.E.R. - Lost Alpha DC/' './bins/XR_3DA.exe'
Примечание: В среде Wine допустимо использовать в путях обычную косую черту (/), вместо обратной косой черты (\), характерной для msdos и Windows.
start /d — опция /d определяет рабочий каталог по указанному пути, который станет отправной точкой в рекурсивном поиске всех файлов, требуемых для запуска игры через XR_3DA.exe.
В виду того, что исходной точкой указан корневой каталог игры, можно использовать относительный путь до исполняемого файла: ./bins/XR_3DA.exe. Относительный пусть указан через пробел.
Теперь запуск будет успешным.
Кстати, есть такой проект как openxray . там поддержка многопотока есть… или по крайней мере реализовывалась. и 64х архитектура.
Есть такое, но «классика» всё ещё очень востребована.