Библиотека сайта rus-linux.net
1. Введение 1. Введение Проект WineX был основан фирмой TransGaming Technologies на проекте WINE, в отличие от WINE этот проект полностью ориентирован на возмозность работы самых популярных игр написанных для Microsoft Windows и соответственно больше уделяет внимание совместимости с последними версиями DirectX. Существуют 2-е версии этого проекта, одна, коммерческая без исходного кода и распространяется только в бинарном виде по подписке, первоначальная стоимость подписки равняется 5$, более подробно об этом можно узнать на http://www.transgaming.com/create_accnt.php, вторая, в исходных кодах из 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_) Все эти действия описаны на http://sourceforge.net/projects/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, то нужно сделать
следущее: amesa.h gl.h glu_mangle.h mesa_wgl.h uglglutshapes.h xmesa.h d) Если у вас стоит XFree86 версии 4.2.0, то лучше, на всякий случай,
сделать линк с /usr/X11R6/include/GL на /usr/include/GL, это касается не
только обладатей карт от NVidia, а вообще всех тех, у кого стоит XFree86
версии 4.2.0... 2.3 Сборка WineX Прежде всего рекомендую взять мой WineX_BuildTools, этот архив распространяется свободно и лежит на http://mcmcc.netfirms.com/files/WineX_BuildTools-18032002.tar.bz2 Содержимое архива нужно распаковать в директорию, куда вы загрузили исходники 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, я решил, что целесобразно ввести утилиту для записи
в реестр WineX, так как многие программы могут быть предварительно
установленны только в Microsoft Windows, по причине не возможности установить
их в WineX, к примеру инсталятором InstallShield v.6, то такая утилита будет
очень полезна, что бы загрузить выгруженный регфайл из Microsoft Windows в реестр
WineX командой:
Пример регфайла из Microsoft Windows: REGEDIT4 [HKEY_LOCAL_MACHINE\Software\Westwood] [HKEY_LOCAL_MACHINE\Software\Westwood\Tiberian Sun] [HKEY_LOCAL_MACHINE\Software\Westwood\WOLAPI] А теперь, как он должен выглядить для подгрузки через regwx [HKEY_LOCAL_MACHINE\Software\Westwood] [HKEY_LOCAL_MACHINE\Software\Westwood\Tiberian Sun] [HKEY_LOCAL_MACHINE\Software\Westwood\WOLAPI] Как видно, разница не большая, отсутствует заголовок REGEDIT4 и заменены двойные "\\" на одинарный "\", почему так надо делать, это нужно смотреть описание программы regapi, которая входит в состав WINE и WineX... 3. Игры. Список работающих игр в WineX можно посмотреть на: http://www.transgaming.com/dogamesearch.php?order=working&showall=1. Правда это не полный список, все игры учесть не возможно, я могу лишь только рассказать, как мне удалось поставить WarCraft-III Beta. Для это понадобиться ISO или CD диск, найти можно практически на любом варезном сайте. На диске есть DirectX8.1 и сама игра, в начале я установил DirectX8.1 и потер 4-е файла в директории windows\system - d3d8d.dll d3d8.dll dinput8d.dll dinput8.dll, остальное не трогал, затем запустил winex install.exe и установил игру, далее сходил на сайт http://www.starcraft.ru и нашел описания где взять новые патчи и как подружить WarCraft-III Beta с bnetd. WarCraft-III Beta использует 2-а движка - OpenGL и D3D, в случае установки на Линукс, он все же использует OpenGL, для обладателей карт от NVidia могут быть проблемы с D3D, так как используемый libGLU от MESA немного не стыкуется с NVidiaвскими драйверами, зато на таких картак как Matrox G-400 и Voodoo3/4/5 таких проблем не будет, так как они полностью используют API MesaGL. Однако в случае с WarCraft-III Beta и Nvideaвскими картами, игра использует OpenGL, причем, скорость игры получается такая же, как и в Microsoft Windows, что не может не радовать:-). 4. Заключение. Хотелось бы послушать товарищей, которые используют FreeBSD, у них просто появился шанс, после начала порта DRI под FreeBSD, что у них тоже все в ажуре и работает 3D как надо... Также в заключении, хотелось бы вынести благодарности людям из #rusunix, таким как BaT и другим, которые вынудили написать весь этот выше изложенный бред с кучей грамматических ошибок, но как говорится "Чукча не читатель, чукча писатель", особую благодарность хочу выразить Tima, за предоставленный в свое время бинарик WineX, с которого я взял за основу структуру и регфайлы при создании своего WineX_BuildTools. |