Linux Mint    Ubuntu    openSUSE    Asterisk    FreeBSD    Android    Nokia N900    Игры в Linux
 Linux Mint    Ubuntu     openSUSE     Asterisk     FreeBSD     Android     N900     Games

Не совсем Linux но все же: FreeBSD AMD64 играем в Windows-игры в Wine

Всем привет! Хочу поделиться моим способом поиграть в современные игры под FreeBSD AMD64. Для того чтоб поиграть, а не просто запустить современные игры понадобится хороший компьютер, чем лучше компьютер тем меньше тормозов. Поскольку DirectX под фряхой нет, то Wine транслирует вызовы DX в вызовы OpenGL и поэтому очень сильно нагружается процессор.

Так же данный гайд не гарантирует 100% запуска игр. Но если игра написана изначально с поддержкой OpenGL, к примеру игры от Кармак & ID, то потери производительности будут и не такими уж большими. Так же следует принять во внимание, что поиграть в современные игры на фряхе получится только на NVIDIA картах, начиная от 8800 и выше. К примеру, все это я тестировал на:

  • E2140 1.6 ГГц;
  • 5 ГБ ОЗУ;
  • NVIDIA GT 640 2 ГБ;
  • Система: FreeBSD 9.0 AMD64, Wine 1.5.9

На такой конфигурации игры 2012 года тормозили из-за очень слабого процессора. Так как я не игроман, то я не покупал лицензии, а качал так называемые репаки и запускал их. Хоть это и не по нашему, но новичкам советую поначалу тоже пользоваться репаками (в целях ознакомления), так как вайн не поддерживает всех защит используемых в лицензиях. Хотя как мне известно Steam тоже неплохо работает под вайном, поэтому можете попробовать его, но я не проверял. В частности я запустил и смог поиграть в такие игры как:

  • DOOM 3;
  • CIV 5;
  • Ведьмак 2;
  • Rage;
  • DOOM 3 BFG Edition (eng);
  • Mass Effect 3;
  • NFS Carbon;

Stalker SOC хотя в последнем пришлось править экзешник хекс редактором, это поделие из самостийной не хотело запускаться, ругалось что у меня подкачка менее 2 ГБ.

Для установки и настройки вайна неоходимо подключение к интернету (поначалу, потом если вы разберетесь, то сможете собрать все необходимые файлы на локальном диске как это сделал я).

Переходим к установке Wine

В случае с 32х битной фряхой - это несложно, но вот вайна для FreeBSD AMD64 не существует в природе. Но, один хакер написал патчик позволяющий всетаки установить вайн на 64 битке. Это достаточно долгий процесс поэтому мы не будем его рассматривать (гугл в помощь для пытливых), а поступим проще, воспользуемся готовым решением. Вначале делаем все под рутом. Качаем свежие драйвера с сайта www.nvidia.com. На момент написания это были 304.60, и устанавливаем их командой

tar xzf NVIDIA-FreeBSD-x86_64-304.60.tar.gz && cd NVIDIA-FreeBSD-x86_64-304.60 && make install

Перезагружаем комп

Далее идем на http://www.mediafire.com/wine_fbsd64 забираем нужную вам сборку, для меня это была 1.5.9 и устанавливаем ее командой:

pkg_add wine-fbsd64-1.5.9,1.txz

или:

pkg_add wine-fbsd64-1.5.9,1.tbz

зависит от расширения пакета.

Далее нужно скачать патчик http://people.freebsd.org/~ivoras/wine/patch-wine-nvidia.sh который нужно поправить под версию ваших драйверов. Для того чтоб было более понятно что нужно сделать, выкладываю исправленный патч под 304.60 драйвера тут:

set -e

PORTSDIR=${PORTSDIR:-/usr/ports}
PREFIX=${PREFIX:-/usr/local}

if [ -d $PORTSDIR/distfiles ]
then
cd $PORTSDIR/distfiles
NO_REMOVE_NVIDIA="yes"
else
cd /tmp/
fi

terminate() {

echo "!!! $2 !!!"
echo "Terminating..."
exit $1

}

[ `whoami` = root ] \
|| terminate 254 "This script should be run as root"

echo "===> Patching wine-fbsd64 to work with x11/nvidia-driver:"

WINE=`pkg_info -E wine-fbsd64'*' | cut -f 3 -d -` \
|| terminate 255 "Unable to detect wine-fbsd64, please install first"
echo "=> Detected wine-fbsd64: ${WINE}"

NV=`pkg_info -E nvidia-driver-'*' | cut -f 3 -d -` \
|| terminate 1 "Unable to detect nvidia-driver, please install first"
echo "=> Detected nvidia-driver: ${NV}"

NVIDIA=${NV}
NV=`echo ${NV} | cut -f 1 -d _ | cut -f 1 -d ,`

if [ ! -f NVIDIA-FreeBSD-x86-304.60.tar.gz ]
then
echo "=> Downloading NVIDIA-FreeBSD-x86-304.60.tar.gz from ftp://download.nvidia.com..."
fetch -pRr ftp://download.nvidia.com/XFree86/FreeBSD-x86/304.60/NVIDIA-FreeBSD-x86-304.60.tar.gz \
|| terminate 2 "Failed to download NVIDIA-FreeBSD-x86-304.60.tar.gz"
fi

echo "=> Extracting NVIDIA-FreeBSD-x86-304.60.tar.gz to $PREFIX/lib32..."
EXTRACT_LIST="libGL.so.1"
case $NV in
195*|173*|96*|71*)
EXTRACT_LIST="$EXTRACT_LIST libGLcore.so.1 libnvidia-tls.so.1"
;;
*)
EXTRACT_LIST="$EXTRACT_LIST libnvidia-glcore.so.1 libnvidia-tls.so.1"
;;
esac

EXTRACT_ARGS="--strip-components 2 -C $PREFIX/lib32"
for i in $EXTRACT_LIST
do
EXTRACT_ARGS="$EXTRACT_ARGS --include NVIDIA-FreeBSD-x86-304.60/obj/$i"
done
tar $EXTRACT_ARGS -xvf NVIDIA-FreeBSD-x86-304.60.tar.gz \
|| terminate 3 "Failed to extract NVIDIA-FreeBSD-x86-304.60.tar.gz"

echo "=> Cleaning up..."
[ -n "$NO_REMOVE_NVIDIA" ] || rm -vf NVIDIA-FreeBSD-x86-304.60.tar.gz \
|| terminate 6 "Failed to remove files"

echo "===> wine-fbsd64-${WINE} successfully patched for nvidia-driver-${NVIDIA}"

Вы можете взять этот патч, сохранить его под именем patch-wine-nvidia.sh, выставить ему права исполняемого файла или поправить оригинальный патч для своей версии драйверов. Вообщем зависит от вас. Итак патч поправили, сделали его исполняемым, теперь отдаем команду на его установку.

Если все сделано правильно, то ошибок быть не должно быть. Так же нам потребуется поставить zenity для winetricks, который мы установим позже:

pkg_add -r zenity

Перезагружаем компьютер, заходим под обычным пользователем (не рутом), загружаемся в иксы и запускаем winecfg, начнется настройка wine и скачка  mono и gecko.

Далее необходимо скачать в свою домашнюю папку скрипт winetricks из http://winetricks.org/winetricks

Когда скрипт скачается, присваиваем ему право выполнения и в консоли начинаем по порядку написанному ниже ставить все компоненты:

./winetricks vcrun2005
./winetricks vcrun2008
vcrun2010
vcrun6
vcrun6sp6
d3dx9
dotnet20

Перезагрузка компа. Далее из папки Windows/Microsoft.NET/Framework удалите папку v3.0 (если она там есть)

Далее продолжаем устанавливку компонентов для Wine:

./winetricks vb5run
vb6run
vcrun2003
dotnet30

Перезагрузка компа.

Далее:

./winetricks d3dxof
devenum
dinрut8
directmusic
directplay
directx9
dxdiagn
dxdiag
d3dx11_43
mfs40
wsh56vb
wsh57
gdiplus
physx
gfw

Для некоторых игр (Rage, DOOM 3 BFG Edition) нужны xaudio2 компоненты. Скачиваем с интернета с баз dll-ок и добавляем библиотеку XAudio2_7.dll в папку system32 и в консоли прописываем:

wine- regsvr32 XAudio2_0.dll
...
XAudio2_7.dll

Запускаем ./winetricks далее "Select the default wineprefix" затем "Change settings" перед нами откроется окно для правки реестра. Ставим галочки напротив: 

ddr=opengll
multisampling= enabled
orm=fbo
psm=enabled
rtlm=auto
glsl=enabled
vsm=hardware
videomemorysize=2048 (выбирете значение ОЗУ вашей видеокарты)
mwo=enabled

Перезагружаем комп.

Все, вайн готов к работе (если конечно у вас не было ошибок). Можно приступить к настройке и установке torrent-edition игр ;)

Более подробно о настройке той или иной игры вы можете прочитать в интернете, по мере тестирования я буду дополнять этот гайд и обновлять его если будет выясняться что-то новенькое по настройкам вайна. Небольшой апдейт. Если ваша мышь в игре дергается на одном месте или вообще ведет себя странно, то попробуйте в winecfg в закладке библиотеки, поиграться с значением библиотеки dinput8 внешняя или встроенная или поменяйте там же порядок загрузки.Как правило это помогает.

P.S Мы поставили dxdiag и поэтому вы можете в консоли попробовать его запустить командой wine dxdiag в консоли, и посмотреть на вращающийся кубик DX.

P.P.S Данная статья распространяется как есть, бесплатно и во имя распространения BSD систем. Вы можете копировать полностью и частями все что тут расписано даже без моего авторства или за авторством других лиц.

Linux_man аватар

зачет! подробнее о winetreicks писал я в этой статье: http://www.linuxcenter.kz/page/dopolnyaem-wine-vsem-neobkhodimym-ili-obzor-i-ustanovka-winetricks

Linux_man аватар

у нас тут на сайте есть раздел с нативными играми для Linux: https://linuxcenter.kz/content/igry-dlya-linux

rob96 аватар

ну так то да, попробую под pcbsd, но для игр проще держать винду

Linux_man аватар

или Mac ;)

tymnet аватар

Почему PCBSD?. Помойму лучше взять оригинальную фряху и настроить все самому. Тем более что это не так сложно, как кажется. Если бы тут был раздел для FreeBSD, я бы выложил бы все свои методики и наработки по настраиваю этой системы с 0 и по ключ под разное железо и для разных целей.

Linux_man аватар

будет инфа - будет раздел ;)

rob96 аватар

кстати, как в маке это реализовано?

Linux_man аватар

много игр, которые под Win, есть и под Mac, без каких либо эмуляторов :) я например на досуге играю в Serious Sam 3 и Skyrim :)

rob96 аватар

как и микрософт

Linux_man аватар

это точно :) и вот результат, много игр мирового масштаба, как для окон так и для mac :)

Linux_man аватар

+1 :))

tymnet аватар

win-> mac это все равно что win->win. только деньги перетекут из кармана мелкомягких в карманы огрызков да еще и с большой переплатой за "Эксклюзивное железо ;d". Причина по которой был осуществлен переход с Win на FreeBSD, это полный и тотальный контроль над своей системой. Достаточно сказать что я весь свой софт полностью пересобираю из исходников включая ядро, мир и все программы с учетом моего железа, даже указываю компилятору какой у меня процессор. Профит с этого лично для меня огромный. Но в последнее время я увлекся компьютерными играми, да так увлекся, что стал игроманом ( хотя в FAQ написано что это не так, FAQ писался 7 мес назад а выложен был только сейчас ;/). Консоли для меня лично неприемлимы.Windows у меня нет ни на одном компьютере ни дома ни на работе даже в виртуалке. Выход только один: ставить вайн и копатся выясняя что нехватает той или иной игре, разруливать ошибки. С одной стороны это лишние проблемы, а с другой я работаю сисадмином и программистом по совместительству в одной фирме, в которой я перевел весь компьютерный парк на FreeBSD, включая терминальный сервер 1С. Все что я настроил уже работает 2й год без сбоев. Я только обновляю софт время от времени. Так что времени у меня много и скажем так возня с вайном, и играми стала моим хобби. С момента написания этого FAQ до момента как я решил выбросить его в инет прошло 7 месяцев, я только подправил кое что под более новую версию вайна и дров, да дописал DOOM 3 BFG Edition который только вышел и то только пока на англ.яз. За это время мои эксперименты с вайном продвинулись дальше. На данный момент я настраиваю на тестовой машине вайн так что на нем идут 70% игр и 90% остального софта винды без шаманства и вайнпрефиксов. В дальнейшем планирую выложить более подробную статью по тонкой настройке вайна в том числе методики пропатчивания сторонних виндосовских dll-ок, что дает большую стабильность и запускаемость по сравнению с настроенным вайном по этому FAQ.

jekson аватар

заслуживает уважения ) было бы интересно почитать еще!

Linux_man аватар

"win-> mac это все равно что win->win"

тут можно поспорить, потому что это не так ;)

jekson аватар

не хотелось бы превратить тему в флуд, но все же почему не так??

Linux_man аватар

потому что Mac OS сделана на основе Darwin, семейство Unix, а Darwin в свою очередь POSIX система, которая включает и наработки от FreeBSD. Также Mac OS частично открыта: http://opensource.apple.com

Подробнее о Darwin: http://ru.wikipedia.org/wiki/Darwin

Также можно и X11 прикрутить к Mac OS: http://support.apple.com/kb/HT5293

Также советую (англ): https://developer.apple.com/library/mac/#documentation/MacOSX/Conceptual/OSX_Technology_Overview/SystemTechnology/SystemTechnology.html

Но стоит признать, что Linux открытее чем Mac, это факт.

tymnet аватар

ядро дарвин всего лишь ядро. Я бы не стал столь восторженно относиться к продуктам эйпл поскольку они проприетарные и особо ничем не отличаются от продуктов майкрософт в этом плане. К сожалению проприетарные продукты деградируют всю компьютерную отрасль, ограничевая кругозор не только простых пользователей, но и тех кто пишет софт. Как пример гляньте чему учат в наших универах и какого уровня подготовки выходят выпускники. Да и за примером далеко ходить ненужно достаточно глянуть какого качества выходят современные продукты особенно игры. Достаточно вспомнить что почти все современные игры доделываются десятками патчей, исправляющих баги и плодящих новые.В случае со свободным ПО по крайне мере любой нормальный кодер сможет пофиксить баги или запилить свой патч а вот в случае с проприетарным придется ждать патч. Вот в этом и нет отличия никакого между виндой и макосью. К тому же в макоси и дарвине от фряхи не так уж и много, поскольку основана она на ядре Mach которое в свою очередь пришло в мак ос из NextStep и которое основано было на сильно переписаном коде фряхи. В итоге получается что мак ос х это скорее внук фряхи ;d а то и внучатый племянник. Короче седьмая вода на киселе.

jekson аватар

возможно она "частично открыта", потому что взяла все лучшее из OpenSource? а исходя из GPL* лицензий не может скрывать код?

Linux_man аватар

по ссылке http://opensource.apple.com/ можешь посмотреть какие компоненты открыты... так и есть, как ты думаешь :)

tymnet аватар

Ах да "уникс" прежде всего это ядро а не свисто перделки и дружелюбные дистрибутивы аля бубунта ;). К примеру я бы с удовольствием бы работал и с соляркой благо под ней есть все нужные драйвера, но к сожалению она тоже проприетарная и в исходных кодах не поставляется ( опенсолярис это не в счет). А еще бы я наверно с удовольствием бы поработал с OpenVMS, которая хоть и не юникс, но тоже посикс система. Кстати Windows NT изначально написали теже люди с DEC что и OpenVMS. Но к сожалению порт под x86 так и не доделали. А приобрести Itanium нет возможности, как и альфа станцию. Хотя система хороша (предался в воспоминания о первом знакомстве с OpenVMS много лет назад на альфа сервере ;d)

tymnet аватар

вообщем что пацаны я хочу сказать. хотите понтов и гламура то винда макось бубунта ваше все :), а если хотите быть реальным спецом в области юникс то вам лучше изучать более серьезные unix системы.

Linux_man аватар

не пойми меня не правельно, я не говорю, что Win, Mac и Ubuntu само то, нет. Просто Mac все же более открыта и unix like нежели Win. Это я хотел сказать... вообще я пользуюсь дома openSUSE, а на работе администрирую Mac OS series, RHEL и AS/400.

tymnet аватар

Парадокс в том что не смотря на открытость макоси, она является самой закрытой системой. В этом легко убедиться. Макось без хака не поставиш на не мак. А ведь железно маки это обычные IBM-PC совместимые компьютеры.:) Тоесть получается винду я могу куда угодно поставить в том числе и на мак а макос легально можно поставить только на мак. Лично мне не нравится ни эйпл с ее макосью, ни мелкомягкие с их виндой по причине того что они ограничивают меня. Да и их вечные сутяжничества по поводу патентов уже честно говоря дошли до маразма что все больше отталкивает меня от их продукции.

Linux_man аватар

только если Хакинтош: http://www.linuxcenter.kz/page/osx86-установка-hackintosh-106-mac-os-x-106-snow-leopard :)

tymnet аватар

хакинтош=Windows Torrent Edition это не вариант

Linux_man аватар

почему?

tymnet аватар

Потому что хакинтош нарушает лицензионное соглашение эйпла

Linux_man аватар

ну это понятно

tymnet аватар

Допилить не проблема если знаеш как, у меня на полный допил уходит 2 часа . А то что пилится 1 ос, а не зоопарк это и к лучшему.

rob96 аватар

фигасе полемика ))) смотрел фряху и был немного не приятно удивлен, все таки они не пилят сразу много осей, а лишь одну, а для себя ее надо доделывать как дебиан (