Решил запостить, если кому интересно. Поиском не нашёл этого на LOR. Это репост моего же мануала отсюда.
Введение
В Wine не работает динамическое освещение объектов - оно стало запускаться, но независимо от мощности компьютера игра притормаживает, и кое-что выглядит неправильно - например небо. Также не работает сетевая игра.
Первая часть игры
Для того, чтобы запустить первую версию игры, необходимо установить noCD: программа Wine не умеет запускать драйвер защиты от копирования дисков StarForce. Затем игру можно запустить ЛИБО с ключом -dsound (например, отредактировав ярлык запуска игры), ЛИБО заменив файлы openal32.dll и wrap_oal.dll в каталоге с игрой на версии файлов с сайта компании Creative. Дело в том, что они там испорченные и не работают даже в Windows - вместо них работает библиотека, установленная в системные каталоги. Можно играть!
Дополнение: начиная с версии Wine 1.1.30 ключа -dsound или замены файлов больше не надо: Wine научился использовать библиотеку OpenAL из системы. Чтобы узнать подробнее о поддержке OpenAL в Wine см. приложение.
Вторая часть игры
Во второй части убрана поддержка вывода звука через DirectSound, если версия Wine меньше чем 1.1.30 необходимо заменить библиотеки OpenAL. По-прежнему нужен noCD.
Две новые проблемы. Первая: необходимо установить DirectX. Оказалось, первая версия игры работает сразу только потому, что библиотеки d3dx9_номер.dll лежат в каталоге с игрой! У программы Wine есть эквиваленты этих библиотек, которые в данный момент в разработке и не способны запустить игру. Поэтому необходимо либо установить DirectX (см. примечание), либо скопировать файлы d3dx9_31.dll, d3dx9_36.dll, d3dx9_37.dll в каталог с игрой (bin).
Вторая: начиная со второй версии игры в Wine не работает мышь: немного сдвинувшись, она снова оказывается в центре экрана. Для того, чтобы исправить проблему, есть патч, который нужно наложить на исходный код Wine (bugs.winehq.org/attachment.cgi?id=15638), или взять уже пропатченный файл dinput.dll (http://appdb.winehq.org/objectManager.php?sClass=version&iId=14790). Если уже пропатченный файл после обновления Wine работает неправильно (отзываются о том, что игра встаёт на паузу, стоит пошевелить мышь), значит файл слишком старый и нужно пропатчить текущую версию Wine тем же самым патчем. Кстати, в версии Wine 1.0 сбоя вообще не было.
Во второй части игры есть новое освещение - «улучшенное». С улучшенным графическим освещением исчезает сбой, из-за которого не работало небо с динамическим - но лучше его всё же не включать из-за того, что в логе запуска программы пишется много ошибок (как в первой части) и игра притормаживает как с мощным, так и со слабым компьютером.
Если запускать игру не ярлыком, а из консоли, то начиная со второй части её нельзя запустить прямо из каталога bin. Есть два способа. Зайти в каталог ниже:
$ cd ..
$ wine bin/xrEngine.exe
Или выполнить из bin вот такой командой:
$ wine xrEngine.exe -fsltx ../fsgame.ltx
Ну и ещё один совет. Если не устанавливать игру с диска, а запускать уже установленную игру (например, из раздела диска с Windows), то не будет работать клавиатура. Этот сбой касается и Windows, для его решения надо зайти в настройки игры мышью, зайти во вкладку назначения клавиш управления игрой, и нажать на кнопку «По-умолчанию».
Третья часть игры
Запуск ничем не отличается от запуска второй части игры: необходим патч для мыши, файлы из DirectX от Windows, файлы openal32.dll и wrap_oal.dll (если версия Wine меньше 1.1.30), и noCD.
В остальном игра работает отлично, неисправности те же, что и в Windows.
Полезные команды:
winecfg - программа для настройки Wine. В ней можно, например, выбрать оконный режим работы программ для Windows. Создаётся небольшой виртуальный рабочий стол (размеры указываются в winecfg), в котором работают программы. Очень многим моим знакомым нравится эта возможность! Вот только в Сталкера 2 и 3 с ней не поиграешь - из-за корявого патча для мыши в оконном режиме работы игры разворачиваться можно только на 180°. Ещё полезна вкладка Аудио. До версии Wine 1.1.6 для того, чтобы в любой игре работал звук, там надо выбрать в выпадающем списке слово Эмуляция. Начиная с версии 1.1.6 этого делать не надо - но очень многие люди этого не знают и продолжают это делать по привычке!
wineserver -killall - мгновенное выключение программ в Wine. Очень полезна, если что-нибудь зависло и выключаться не хочет. Команду можно набрать, например, в окне «Открыть с помощью...», вызываемой сочетанием клавиш Alt+F2. Есть ещё крайний случай - голая консоль, вызываемая сочетанием клавиш Ctrl-Alt-F1. Возвращаться оттуда - (Ctrl-)Alt-F7. Жаль только, что выборочно программы не закрываются этой командой, и если был запущен uTorrent или QIP, то он закроется тоже.
wine eject - вы видели в Windows окно с ошибкой из-за того, что вытащен компакт-диск, с которого запущена программа? Я - да. Linux не позволяет вытащить диск в этом случае - пока программа не выключится. Что делать, если программа установки игры просит «Вставить следующий диск»? Раньше помогала только эта команда, теперь ошибка исправлена (например в установщике DooM III). Но есть такие недобросовестные пиратские программы установки, с которыми полно проблем даже в Windows. Вытаскиваешь диск - и видишь ошибку. Чтобы в Linux можно было установить и пиратскую игру, выпущенную недобросовестными пиратами, помогает только эта команда.