1. Введение 1.1 Особенности. 1.2
Лицензия. 2. WineX - сделай сам! 2.1 Загрузка
исходников WineX из CVS репозитория 2.2
Подготовительный процесс перед сборкой WineX 2.3
Сборка и установка WineX 2.4 Запуск WineX и
реестр 3. Игры. 4. Заключение.
1. Введение
Проект WineX был основан WINE. Но, в отличие от
WINE, этот проект полностью ориентирован на возможность
работы самых популярных игр, написанных для Microsoft
Windows, и, соответственно, больше уделяет внимание
совместимости с последними версиями DirectX. Существуют
2-е версии этого проекта, одна, коммерческая без
исходного кода и распространяется только в бинарном виде
по подписке, первоначальная стоимость подписки равняется
5$,
вторая, в исходных кодах из CVS, разница между этими
версиями заключается в том, что коммерческая версия
позволяет устанавливать игры с защищенных CD и с них же
играть, а так же есть поддержка работы InstallShield
v.6, чего, собственно, нет в свободной версии из CVS, во
всем остальном эти версии практически ничем не
отличаются. Для нас с вами, живущим в странах СНГ,
большенство игр, которые продаются на рынках, уже
отломаны от различных CD защит, поэтому коммерческая
версия будет интересна обладателям лицензионых дисков
или тем, кто хочет материально поддержать этот проект и
получить различную поддержку от TransGaming. Другое
большенство, которое предпочетает все делать самому и
возится в исходниках, тоже могут поддержать этот проект
своим участием при его тестировании, выявлении и
устранении различных багов, высылкой патчей авторам
проекта, или добавлении новых фич...
1.1 Особенности
WINE и WineX многие считают эмулятором Microsoft
Windows, но это не совсем так, так как эти проекты не
нуждаются в установке каких либо Microsoft Windows и
имеют нативно встроенные основные компоненты Windows,
основаных на доступных общественности исходниках от
самой фирмы Microsoft, и без
которых не смогут работать программы написанные под
Windows, т.е., это в полне самостоятельные программы и
предназначены для работы исполняемых файлов EXE&DLL
непосредственно в среде Unix систем. Для ОС Linux эти
проекты имеют дополнительные возможности - поддержка
аппаратной 3D графики основаной на OpenGL для
большенства видеокарт входящих в поддержку DRI - Direct Rendering
Infrastructure для XFree86 на платформе x86. В
данное время идет портирование
DRI для системы FreeBSD, но это еще только на
начальном этапе и пока не совсем стабильно. К сожалению,
фирма Nvidia идет
своим путем написания драйверов поддерживающих OpenGL на
аппаратном уровне, и не дает нормальный SDK для
корректного написания приложений, т.е. хедеры, которые
идут с драйверами, почти не совместимы c API MesaGL. Чем
это плохо? Плохо это тем, что открытые драйвера с
поддержкой аппаратного 3D в XFree86 ориентированы на API
MesaGL, MESA в свою очередь является открытым проектом и
поддерживается фирмой SGI, хотя Nvidia тоже
использует API OpenGL от SGI, но в их реализации много
своего, вот поэтому есть некоторые не совместимости при
сборке WineX и WINE, как это обойти, я расскажу ниже...
Хочу добавить еще пару слов по Nvidia, для пользователей
OC FreeBSD Nvidia не делает драйверов, как в прочем нет
варианта коммерческого WineX, который существует только
под ОС Linux, но, есть врапер под FreeBSD 4.x написанный
David Rufino's, который позволяет запускать Линуксовые
нвидевские драйвера под Xfree86 4.xx.
Хотя я немного отошел от темы, но эти особенности очень
важны при сборке и работе WineX или WINE.
1.2 Лицензия
С недавних пор, проект WINE перешел под новую
лицензию GNU LGPL, WineX же придерживается лицензии
Aladdin Free Public License, вернее та часть проекта
WineX, которая является поддержкой DirectX для WINE. В
дальнейшем это не должно противоречить GNU LGPL и
поэтому AFPL легко уживется с этой лицензией.
2. WineX - сделай сам!
Итак, пришло время перейти к действиям, для этого
необходимо набраться немного терпения и следовать схеме,
которую я попытался описать ниже.
2.1 Загрузка исходников WineX из CVS
репозитория
Начнем с того, что нужно загрузить исходники из CVS
репозитория, для этого мы создаем каталог на локальном
диске, куда будут закачены исходники, к примеру
/usr/local/src/WineX, заходим в этот каталог и даем
команду:
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_)
После того, как произойдет полная закачка исходников из
CVS на ваш локальный диск, следует сделать архив этих
исходников:
tar cvpjf winex-[дата]-cvs.tar.bz2 wine
это понадобиться вам для того, чтобы в следущий раз
cvs -z3 ... не скачивал все снова, а сделал
синхронизацию, что вполне займет меньше времени.
2.2 Подготовительный процесс перед сборкой
WineX
Это довольно ответсвенный момент, как говорится "Как
яхту назовете, так она и поплывет", тут важно учесть
версии MESA и XFree86 которые установленны в вашей
системе, если вы хотите иметь поддержку запуска игр в
режиме аппаратного 3D. Нужно убедится, что у вас
установлена версия MESA не ниже 3.5 и что ваша
видеокарта поддерживается в XFree86 не ниже версии
4.0.2, как аппаратный 3D ускоритель. Я бы посоветовал
сделать проще и более правильнее - это перейти на
XFree86 версии 4.2.0, там и MESA какая нужная и
исправлений ошибок имеются, ну и как не как поновее
будет... В случае, если вы являетесь обладателем карт от
NVidia, то нужно сделать следущее:
а) Сделать
установку драйверов по описанию, как это предлагает
NVidia. b) Проверить, не осталось ли хвостов в
директориях /usr/lib и /usr/X11R6/lib в виде лишних
libGL.so.* c) Проверить, что libGLU.so.* лежат в
/usr/lib или /usr/X11R6/lib, если у вас их вообще
небыло, то советую собрать Mesa
v.4.0.1, взять после сборки все libGLU.*.* и
положить в /usr/lib или /usr/X11R6/lib, так же положить
в /usr/include/GL хедеры из этой MESA, должны быть
следущие файлы:
amesa.h gl.h glu_mangle.h mesa_wgl.h uglglutshapes.h
xmesa.h dosmesa.h gl_mangle.h glx.h mglmesa.h
uglmesa.h xmesa_x.h fxmesa.h glext.h glx_mangle.h
osmesa.h vms_x_fix.h xmesa_xf86.h ggimesa.h glu.h
glxext.h svgamesa.h wmesa.h
d) Если у вас стоит XFree86 версии 4.2.0, то лучше,
на всякий случай, сделать линк с /usr/X11R6/include/GL
на /usr/include/GL, это касается не только обладатей
карт от NVidia, а вообще всех тех, у кого стоит XFree86
версии 4.2.0... Я не могу сказать за все существующие
дистрибутивы Linux, но все что я описываю, делалось на
RedHat 7.x и Mandrake 8.x.
2.3 Сборка WineX
Прежде всего рекомендую взять мой WineX_BuildTools,
этот архив распространяется свободно и лежит здесь
Содержимое архива нужно распаковать в директорию, куда
вы загрузили исходники WineX, к примеру
/usr/local/src/WineX/wine, и запустить ./build. Этот
пакет содержит все необходимое для сборки WineX в tgz
или rpm, а так же регфайлы. Собраный пакет WineX будет
соответствовать такой же структуре, как и коммерческий
WineX, но только с небольшими изменениями подогнаные под
пакет WINE который идет в дистрибутиве RedHat 7.x, т.е.
WineX не пересекается с WINE, имеет свой скрипт запуска
/usr/bin/winex и утилиту для записи в регфайлы
/usr/bin/regwx, а так же совмесно с WINE использует
/usr/share/wine-c как диск "C:". После удачной сборки, в
директории, где вы запустили ./build, вы должны будите
увидеть собранный пакет WineX-[дата]-1.tgz или
WineX-[дата]-1.i386.rpm, который будет полностью готов,
что бы его установили...
2.4 Запуск WineX и реестр
Запуск WineX осуществляется командой: winex
<имя программы> вообщем, так же, как это
делается в wine.
В данный пакет WineX, я решил, что целесобразно
ввести утилиту для записи в реестр WineX, так как многие
программы могут быть предварительно установленны только
в Microsoft Windows, по причине не возможности
установить их в WineX, к примеру инсталятором
InstallShield v.6, то такая утилита будет очень полезна,
что бы загрузить выгруженный регфайл из Microsoft
Windows в реестр WineX командой: regwx
<регфайл> Однако нужно учесть, что регфайл из
Microsoft Windows немного не соответствует нужному
формату подгружаемому регфайлу для WineX, но это легко
можно подправить.
Пример регфайла из Microsoft Windows:
REGEDIT4
[HKEY_LOCAL_MACHINESoftwareWestwood]
[HKEY_LOCAL_MACHINESoftwareWestwoodTiberian
Sun] "InstallFromPath"="." "InstallPath"=".SUN.EXE" "Name"="Command
and Conquer Tiberian
Sun" "SKU"=dword:00001203 "Version"=dword:00020000 "Expansions"=dword:00000001
[HKEY_LOCAL_MACHINESoftwareWestwoodWOLAPI] "InstallFromPath"=".Internet" "InstallPath"=".InternetWOLAPI.DLL" "Name"="Westwood
Internet
Play" "SKU"=dword:00007f00 "Version"=dword:00010006
А теперь, как он должен выглядить для подгрузки через
regwx
[HKEY_LOCAL_MACHINESoftwareWestwood]
[HKEY_LOCAL_MACHINESoftwareWestwoodTiberian
Sun] "InstallFromPath"="." "InstallPath"=".SUN.EXE" "Name"="Command
and Conquer Tiberian
Sun" "SKU"=dword:00001203 "Version"=dword:00020000 "Expansions"=dword:00000001
[HKEY_LOCAL_MACHINESoftwareWestwoodWOLAPI] "InstallFromPath"=".Internet" "InstallPath"=".InternetWOLAPI.DLL" "Name"="Westwood
Internet
Play" "SKU"=dword:00007f00 "Version"=dword:00010006
Как видно, разница не большая, отсутствует заголовок
REGEDIT4 и заменены двойные "" на одинарный "", почему
так надо делать, это нужно смотреть описание программы
regapi, которая входит в состав WINE и WineX...
3. Игры.
4. Заключение.
Хотелось бы послушать товарищей, которые используют
FreeBSD, у них просто появился шанс, после начала порта
DRI под FreeBSD, что у них тоже все в ажуре и работает
3D как надо...
Также в заключении, хотелось бы вынести благодарности
людям из #rusunix, таким как BaT и другим, которые
вынудили написать весь этот выше изложенный бред с кучей
грамматических ошибок, но как говорится "Чукча не
читатель, чукча писатель", особую благодарность хочу
выразить Tima, за предоставленный в свое время бинарик
WineX, с которого я взял за основу структуру и регфайлы
при создании своего
WineX_BuildTools.
Автор: McMCC |