Я прошу прощения у уважаемых манимейкеров, а также тех, кто зашел почитать мой блог для души. Сейчас будет много умных слов, поэтому если Вам лично ничего не говорят слова Linux, Wine, Cedega, неинтересно слушать умные поучения - просто перейдите на другую статью.
А тем, кому интересно - читаем дальше. А интересно это тем, кто ежедневно заходит на блог по поисковым запросам: "stalker в линуксе", "stalker под wine", "wine stalker". И попадает на статью OpenSource: опыт перехода на бесплатный софт. Действительно, Сталкер - тень Чернобыля - одна из самых современных и зрелищных игр, очень хочется поиграть в нее даже чтобы просто посмотреть на достижения компьютерной графики. Отдельной версии под Линукс нет, но покупать ОС Windows из-за одной игрушки нецелесообразно. На мой взгляд. К сожалению, это не поможет тем, кто ищет "webmoney keeper под linux" - я сам так и научился запускать его. Но интересно им может быть будет.
Итак, для запуска мы берем систему Gentoo, установленную на AMD Athlon 64 X2 Dual Core 4400, 2GB DDR2, Nvidia Ge-force 7900 GT. Несмотря на то, что системы двухядерная и 64 разрядная, я не стал заморачиваться с архитектурой amd64 и оставил x86. Прирост производительности при использовании amd64 незначителен, но проблемы с совместимостью меня пугают.
Кстати, для владельцев менее производительных машин. Когда я первый раз пробовал запускать Сталкера, у меня был Athlon XP 1700+, 1Гб ДДР2 и видеокарта GF FX5200. Так вот под Линуксом он бегал шустрее, чем под виндой. Хотя, конечно в низком разрешении и с тормозами. Что делать, за хорошую графику приходится платить.
Текущая верси wine 0.9.49. Для запуска мы будем использовать именно ее. Хотя S.T.A.L.K.E.R. прекрасно запускался и работал на моей машине начиная с версии 0.9.46. На wine hq описана установка на wine 0.9.40, так что проблем возникнуть не должно.
Для установки я взял самого первого Сталкера, образ формата .mdf. Вы, наверное, уже знаете, что образы формата алкоголя в большинстве случаев можно смонтировать как обычный iso (если при копировании образа не обходилась специфическая защита). Так мы и поступим в нашем случае:
nicolay@localhost ~ $
sudo mount -o loop /mnt/nt_D/CD_IMG/
/games/stalker/STALKER.mdf /mnt/loop
nicolay@localhost ~ $ mount
/dev/sda7 on / type ext3 (rw,noatime)
...
/mnt/nt_D/CD_IMG/games/stalker/STALKER.mdf
on /mnt/loop type iso9660 (rw,loop=/dev/loop0)
nicolay@localhost ~ $
Образ смонтирован, запускаем установку.
nicolay@localhost ~ $ cd /mnt/loop
nicolay@localhost /mnt/loop $ wine setup.exe
Программа установки проверила конфигурацию моего компьютера. Наверное, она сильно удивилась, тем не менее, посчитала, что работать на моей тачке будет. Да и действительно, почему бы и нет.
Обращаю внимание, что при первом запуске Сталкера у меня возникла проблема, которую мне благополучно помогли (косвенно) решить на winehq.org. При установке игры на ntfs раздел она прекрасно ставится, запускается и работает. Но! Не работают патчи до новых версий. Я долго ломал голову, запостил баг на багзиллу, и только после ответа менеджера проекта, догадался установить Сталкера на ext3 раздел.
Ну что же. Пусть оно ставится, а я пока (может быть), успею забодяжить себе чашечку кофе.
Вот скажите, что мешает мне варить натуральный? Ничего! Тем не менее, я упорно покупаю этот дерьмовый Нескафе и бодяжу его в красной кружке. Как же мешает обычному человеку лень
И после нажатия очередного "далее" мы попали на ввод серийного номера и пароля. Ну я введу свои, Вы вводите свои
Потом, понятное дело, снимаем галку "регистрировать игру" (я никогда не регистрирую даже лицензионные игры, потому что лень - двигатель прогресса :)).
Итак, установка завершена. Чисто ради интереса попробуем оставить включенной галку "запустить игру"...
И благополучно обламаемся. Копирайтеры не дремлют. Сраный СтарФорс не даст запустить игру с абсолютно легального, лицензионного диска. Тем более, с алкоголевского образа. Придется ломать абсолютно законно купленную софтину. Да, блин, мы живем именно в этой дерьмовой стране - копии игр на английском языке обычно делают без СтарФорса - видимо неоднократно получали за такую защиту "по чайнику". Еще раз обращаю внимание - сначала надо установить патч до последней версии (который есть у Вас, и в которую Вы будете дальше играть), а потом снять защиту, причем nocd должен быть именно для этой версии. Кстати, файл XR3DA лучше сохранять перед снятием защиты, иначе при выходе следующего патча придется переустанавливать игру.
nicolay@localhost /mnt/loop $
wine /home/media/Soft/stk-sfk-r-patch-any-1.0003.exe
Запускать игру второй раз, чтобы посмотреть на картинку Старфорса мы не будем. И так понятно, что защита не даст запустить игру в режиме эмуляции, сразу скопирум nocd-патч в директорию с установленным Сталкером:
cp /mnt/nt_D/CD_IMG/games/stalker/
/STALKER_1.0003_No-DVD_RUS/XR_3DA.exe
~/.wine/drive_c/
/Program\ Files/S.T.A.L.K.E.R/bin/
Вообще, меня поражает наглость производителей игр, которые позволяют себе использовать защиту StarForce. Дело в том, что эта защита использует ВСЕ недокументированные аппаратные возможности приводов CD-ROM (DVD-ROM), которые только можно. Даже на компьютере, с установленной ОС Windows и драйвером СтарФорса, с некоторыми моделями CD-ROM игры просто не запускаются. Не говоря уже про Вайн и Линукс. Почему я, обладая ЛИЦЕНЗИОННОЙ копией игры, должен копировать ее в образ *.mdf, затем искать к ней патч, чтобы запускать ее на своем компьютере? Я что за это платил деньги? Нет! Если у вас, уважаемые производители, проблемы с нарушением авторских прав, будьте любезны, решайте свои проблемы НЕ за счет тех, кто эти права не нарушает.
Итак, запускаем игру:
nicolay@localhost /mnt/loop $
cd ~/.wine/drive_c/Program\ Files/S.T.A.L.K.E.R/bin/
nicolay@localhost ~/.wine/drive_c/
/Program Files/S.T.A.L.K.E.R/bin $
wine ./XR_3DA.exe
Урра... Игра запущена? Черный экран и бегущая по консоли строка:
err:ntdll:RtlpWaitForCriticalSection section 0xb84390 "?" wait timed out in thread 0009, blocked by 001b, retrying (60 sec)
Ахах, какая досада. Но у нас же установлен Линукс, может ну его нахрен? Пошли в винду? Нет, комсомольцы не ищут легких путей. Тем более, винда у меня давно не запускается, как я и писал раньше - не нравится она мне. Поэтому, мы лезем сюда:
http://appdb.winehq.org/appview.php?iVersionId=7377
И первое, что видим, сталкер работает только через директ саунд. Надеюсь, вайн уже настроен, чтобы выводить звук через OSS? Если нет, сделаем это сейчас:
nicolay@localhost ~/.wine/drive_c/
/Program Files/S.T.A.L.K.E.R/bin $ winecfg
Вы заметили? В настройках драйвера ОБЯЗАТЕЛЬНО стоит эмуляция. Иначе игра не заработает.
Эти настройки же настройки звука оптимальны для всех остальных игр. К сожалению (или к счастью), поддержка альсы в wine включена только недавно, поэтому с oss он работает гораздо корректнее. Поэтому в системе должны быть установлены драйвера ALSA с обязательной поддержкой OSS, wine скомпилирован с флагом OSS и в настройках выбран именно OSS.
Ну что же, запустим, наконец, игру:
nicolay@localhost ~/.wine/drive_c/
/Program Files/S.T.A.L.K.E.R/bin $ wine XR_3DA.exe
Вуаля! Все работает, тем не менее:
Обратите внимание на светящиеся шкафы. Это артефакты, возникающие вследствие того, что wine некорректно (пока некорректно) работает с библиотеками DirectX9. Кроме того, возникают эффекты типа перевернутых автоматов в руках персонажей, не отображается оружие в режиме прицеливания итд. Снова идем на winehq.org и внимательно читаем камменты. Не буду Вас заставлять это делать - подскажу пошагово. Включаем режим GLSL и режим рендеринга fbo:
nicolay@localhost ~/.wine/drive_c/
/Program Files/S.T.A.L.K.E.R/bin $ wine regedit
У меня все уже сделано - делаем так же. Выставляем ключи "UseGLSL" и "OffscreenRenderingMode" как на скрине:
Если кому-то интересно, что какие ключи означают, идем сюда: http://wiki.winehq.org/UsefulRegistryKeys и курим до просветления.
Запускаем Сталкера в режиме dx80 без вступления итд:
nicolay@localhost ~/.wine/drive_c/
/Program Files/S.T.A.L.K.E.R/bin $ wine XR_3DA.exe
-dsound -nointro -nodistort -dx80
Получаем:
Игра получается вполне играбельной, я так прошел ее до самого реактора. К сожелению, в режиме ДиректХ8 не работает динамическое освещение и смена дня и ночи, так и не посмотрел. Потом стало лениво и я ушел обратно в свой любимый Counter Strike.
Напоминаю еще раз, что, хотя у меня и описаны шаги по обходу защиты StarForce - копия игры лицензионная. Но запустить с работающей защитой на своей машине я игру не могу. Обращаю внимание производителей игр, особенно Буки и 1С. Не надо нам СтарФорса! Не работает нормально эта защита, она часто очень мешает законным обладателям игр. Пора бы начать прислушиваться к мнениям клиентов?
Итак, игра запущена, работает. Если будут возникать проблемы, не стесняйтесь, пишите. Чем смогу - помогу. До новых встреч, любители честного софта и правильных операционных систем
PS. На всех скринах у меня изображение рабочего пространства ДиректХ в углу экрана. С одной стороны, так мне удобнее делать скриншоты. С другой стороны, каюсь, после того, как я случайно удалил директорию /var/ мой gentoo так и не научился переключать режимы экрана. Надо пресобрать, а что - не знаю Поэтому пока играю так, в окошке. Но в Сталкера играл в нормальном полноэкранном режиме.