FreeBSD AMD64 играем в игры в вайне

Автор tymnet, 20 Октября 2012, 01:22

« предыдущая тема - следующая тема »

0 Пользователей и 1 Гость просматривают эту тему.

tymnet

Всем привет. Хочу поделиться моим способом поиграть в современные игры под FreeBSD AMD64. Для того чтоб поиграть, а не просто запустить современные игры понадобится хороший компьютер, чем лучше компьютер тем меньше тормозов. Поскольку DirectX под фряхой нет, то вайн транслирует вызовы DX в вызовы OpenGL и поэтому очень сильно нагружается процессор. Так же данный гайд не гарантирует 100% запуска игр. Но если игра написана изначально с поддержкой OpenGL, к примеру игры от Кармак&ID, то потери производительности будут и не такими уж большими. Так же следует принять во внимание, что поиграть в современные игры на фряхе получится только на nVidia картах, начиная от 8800 и выше. К примеру все это я тестировал на E2140 1.6Ghz, 5 Gb озу, видео nvGT640 2gb, FreeBSD 9.0 AMD64, Wine 1.5.9.(на такой конфигурации игры 2012 года тормозили из-за очень слабого процессора Так как я не игроман, то я не покупал лицензии, а качал так называемые репаки и запускал их. Хоть это и не по нашему, но новичкам советую поначалу тоже пользоваться репаками (в целях ознакомления),так как вайн не поддерживает всех защит используемых в лицензиях. Хотя как мне известно стим тоже неплохо работает под вайном, поэтому можете попробовать его, но я не проверял. В частности я запустил и смог поиграть в такие игры как DOOM 3, CIV 5, Ведьмак 2, Rage, DOOM 3 BFG Edition (eng), Mass Effect 3,NFS Carbon, Stalker SOC хотя в последнем пришлось править экзешник хекс редактором, это поделие из самостийной не хотело запускаться, ругалось что у меня подкачка менее 2 gb.Для установки и настройки вайна неоходимо подключение к интернету(поначалу, потом если вы разберетесь, то сможете собрать все необходимые файлы на локальном диске как это сделал я)
 Переходим к установке вайна. В случае с 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 или 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 и скачка gecko. Далее необходимо скачать в свою домашнюю папку скрипт winetricks из http://winetricks.org/winetricks . Когда скрипт скачается, присваиваем ему право выполнения и в консоли начинаем по порядку написанному ниже ставить все компоненты.
 
./winetricks vcrun2005
./winetricks vcrun2008
 vcrun2010
 vcrun6
 vcrun6sp6
 d3dx9
 dotnet20
перезагрузка компа
Из папки Windows/Microsoft.NET/Framework удалите папку v3.0 (если она там есть)
./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 систем. Вы можете копировать полностью и частями все что тут расписано даже без моего авторства или за авторством других лиц.