Начнём с самого главного: под linux'ом можно запускать windows программы, игры в том числе. Сушествует большое количество инструментов для этого... VMWare - мощная система виртуальных машин: эмулируется сам компьютер, внутри которого и запускается другая ОС. Win4Lyn - это тоже эмулятор виртуального компьютера, но он создан и оптимизирован специально для запуска Windows в Linux. Уже не плохо, выше перечисленные программы используют для эмуляции саму Windows, так что нужноиметь устано вленную ось (да, чуть не забыл, в игры ни под VMWare, ни под Win4Lyn вы всё равно не поиграете...).
WINE - это не совсем эмулятор, так как не нужно никаких виндушных файлов и представляет из себя самостоятельную программу. А благодаря проекту WineX от TransGaming позволяет поиграть в DirectX игры !!!
Подготовка
Сначала нужно проверить работоспособность OpenGL:
$ glxinfo
Уделите особое внимание строчке: 'direct rendering: Yes', это аппаратное ускорение, соответственно, если 'Yes' оно включено, если 'No' то будет использовано только программный рендеринг в итоге 1 FPS в любой игре
Если используется аппаратное ускорение, то вы можете оставить как есть, т.к. всё работает, в другом случае, если рендеринг отключен или вы просто хотите поставить свежие дрова и новую версию реализации OpenGL для вашей видео карты, то об этом ниже.
Для счастливых обладателей XFree86 4.2.0 настоятельно рекомендую сделать символьный линк с /usr/X11R6/include/GL на /usr/include/GL для этого:
$ cd /usr/X11R6/include/GL
$ ln -s /usr/include/GL
Теперь проверьте, что в этой папке лежат glu_mangle.h, gl_mangle.h, glx.h, glext.h, glx_mangle.h, glu.h, glxext.h. Если ваша карточка от nVidia, то возьмите с www.nvidia.com последние драйвера: нужно скачать два пакета NVIGIA_kernel (модуль для ядра) и NVIDIA_GLX (openGL для вашей карточки), лучше скачивать исходники. Для сборки драйверов:
$ cd /usr/src/NVIDIA_kernel-1.0-3123
$ make && make install
$ cd /usr/src/NVIDIA_GLX-1.0-3123
$ make && make install
Каких либо проблем с установкой драйверов не наблюдается, правда при установке собранного модуля для ядра, он (модуль) будет прикручен к ядрышку, которое запушено на этот момент, а при загрузке другого ядра при старте иксов будет мигать экран (так ругается на отсутствие дров для карточки), нужно дождаться появления консоли и собрать дрова уже из под этого ядра.
Если ваша карточка от 3dfx, настоятельно рекомендую купить новую видюшку :), хотя во что-то вы ещё поиграете... Установите последнюю версию Glide с www.linux.3dfx.com. Для установки openGL нужно собрать Mesa - это свободная реализация openGL. На www.mesa3d.sourceforge.net скачивай последние версии исходников MesaLib и MesaDemos. Далее:
$ tar -xvzf MesaLib-5.0.tar
$ tar -xvzf MesaDemos-5.0.tar
$ cd Mesa-5.0
$ /configure --without-svga --without-ggi
$ make && make install
Для карточек других производителей смотрите www.dri.sourceforge.net. Теперь можно посмотреть сколько выдаёт FPS:
$ glxgears
Ну что, потресён результатами =) Вполне возможно придётся покопаться с файлом настройки иксов (/etc/X11/XF86config-4).
Собираем WINEX
WineX - библиотеки DirectX для WINE, а не самостоятельная программа, т.е. сейчас мы будем собирать обычный wine с библиотеками directx. Сначала нужно выкачать исходники из CVS репозитория:
$ cd /usr/src
$ su (если вы не root)
$ cvs -d:pserver:anonymous@cvs.winex.sourceforge.net:/cvsroot/winex
login
На запрос ввода пароля, жмем ENTER и далее набираем другую команду:
$ cvs -z3 -d:ext:developername@cvs.winex.sourceforge.net:/cvsroot/winex
co wine
(!!! WINE а не WINEX)
После загрузки исходников, при обновлении версии winex, вы с помощью CVS можете сделать синхронизацию и у вас новая версия без лишних проблем (подробнее о CVS можно прочитать в Х за 08.02 (44) статья 'Хакеры выбирают CVS'). Теперь в каталоге, где лежит последняя версия wine выполняем:
$ /configure --with-x --enable-opengl --without-trace --without-debug
Уделите внимание строкам:
checking GL/gl.h usability... yes
checking GL/gl.h presence... yes
checking for GL/gl.h... yes
checking GL/glx.h usability... yes
checking GL/glx.h presence... yes
checking for GL/glx.h... yes
checking for GL/glext.h... yes
Если всё хорошо, осталось только скомпилировать:
$ make depend && make
Поздравляю! Всё уже практически готово к работе, осталось только всё проинсталировать и настроить, для установки в каталоге wine наберите:
$ /tools/wineinstall
и ответьте на несложные вопросы, после чего уже сможете обнаружить в корневой директории папку 'c' - ваш псевдо диск с:\... Внутри и того смешнее: папки windows и Programs Files
Так же можно проверить работоспособность wine в процентах!!!
$ /tools/winecheck
Правда сильно доверять результату не надо, разве что поможет найти конфликты, например, у меня 72,25%, а все нижеописанные игры работают... В вашем домашнем каталоге есть скрытая папка '.wine' в которой лежит файл config, там содержаться настройки с которыми тоже придётся поработать...
Нужно проверить, что в секции [x11drv] установлен "DesktopDoubleBuffered" = "Y". Вполне возможно, все русские буквы будут отображать аброй-кадаброй, для исправления данного бага нужно 'default cyrillic bitmap X fonts' в том же файле конфигурации изменить, т.е:
"Default" = "-cronyx-helvetica-";
"DefaultFixed" = "fixed";
"DefaultSerif" = "-cronyx-times-";
"DefaultSansSerif" = "-cronyx-helvetica-";
Заменить на
"Default" = "-adobe-helvetica-";
"DefaultFixed" = "fixed";
"DefaultSerif" = "-adobe-times-";
"DefaultSansSerif" = "-adobe-helvetica-";
В дальнейшем программы с помощью wine придёться запускать не только от обычного пользователя, но и от root, примите во внимание, что в /root/.wine тоже лежит файл config, который тоже нужно изменить... В разделе support сайта www.winehq.org есть всё, что нужно при возникновении проблем.
У меня дистрибутив ASP Linux 7.3 'Восток' (основан на RedHat) в котором используется ядрышко 2.4.18-5asp на котором есть security patch, а wine с ними НЕ РАБОТАЕТ !!! Единственное возможность поиграть это пересобрать ядро, но это совсем другая история...
Играем в Half-Life и CS
Доступно только для пользователей
При возникновении проблем со звуком/картинкой/самим_wine рекомендую ознакомиться с howto на http://lhl.linuxgames.com. Старый добрый халф...
$ cd /mnt/cdrom
$ wine setup.exe
После установки на псевдо диск с:\
$ cd /c/Half-Life
$ wine hl.exe -- hl.exe -console -gl -gldrv Default -w 1024
А для старта CS:
$ wine hl.exe -- hl.exe -console -game cstrike -gl -gldrv Default -w 1024
Запускать халф нужно из-под root, а то будет вылетать при первой же надписи "Loading...", но можно играть и с правами обычного пользователя: для этого измените права на каталог Half-Life так, чтобы другие пользователи могли изменять список файлов и поставте галочку "применить изменения ко всем подкаталогам и их содержимому". Вполне возможно при старте игры вас могут попросить перейти в 16 битный цвет, для этого отредактируйте файлик /etc/X11/XF86config-4 и измените секцию screen в соответствии с нужными параметрами и перезагрузите иксы ++'<-' Очень забавный глюк можно наблюдать с меню: оно ужасно тормозит, т.е. между нажатием на 'New Game' и появлением самого меню с выбором уровня сложности пауза продолжительностью 3-5 секунд, но игра не тормозит, что не может ни радовать...
Играем в Max Payne
Доступно только для пользователей
На сайте TransGaming это единственная (надеюсь пока) игра, которая поддерживается на 5 баллов, это значит что всё работает без особых проблем
Здесь ничего нового...
$ cd /mnt/cdrom
$ wine setup.exe
$ cd /c/MAXPAYNE/
$ wine MaxPayne.exe
Запускать как и в халфе нужно с правами суперпользователя или изменить права на запись в каталог, иначе игра не будет сэйвиться (не может создать файл с сохранёнкой из-за отсутствия прав). При возникновении проблем, прежде чем мучить всевозможные форумы, установите последний патч к игре. Вполне возможно игра будет вылетать при загрузке уровня, для устранения этого нужно стартовать макса сл. образом:
$ wine MaxPayne.exe -- -disable3dpreloads
Всё работает.
Играем в WarCraft III
Доступно только для пользователей
$ cd /mnt/cdrom
$ wine -winver win98 install.exe
При инсталяции пропустите установку DirectX, после инсталяции в каталоге W3 переименуйте папку Movies в что нить:
$ mv Movies bak.Movies
Кстати, это обычный DivX, который замечательно просматривается mplayer'ом. Для запуска набираем:
$ wine War3.exe -- War3.exe -opengl