суббота, 20 февраля 2010 г.

Как установить DirectX 9.0c на Linux с помощью Wine

Хотите ли вы играть в последние и лучшие Windows игры на Linux? Конечно. Проблема в том, как это сделать. Linux использует OpenGL, в то время как большинство игр для Windows зависят от DirectX. Нет проблем. Для этого есть Wine.
Что подвигло меня на установку одной из тяжелых игр для Windows, так это системные требования. Игра, о которой идет речь - это прекрасная Tropico 3 с прекрасными системными требованиями: не менее 2 Гб оперативной памяти и видеокарта не хуже Nvidia 7600GT с 256 Мб памяти. Оба моих Атлона с Windows, оснащенные видеокартами Nvidia 6600GT и 7600GT, эту игру не тянули. Но недавно я купил себе новенький ноутбук с мощной видеокартой Nvidia 9600GS с 512 Мб памяти. так что я решил попробовать.
Я установил DirectX на Linux, используя Wine, а затем установил Tropico 3. Все установилось и прекрасно работает. Я могу играть с высокой детализацией без всяких проблем и глюков, все работает как надо, даже качество звука выше похвал.


В этой статье я покажу, как установить DirectX, используя Wine. Это не просто, но и не очень сложно.

Инсталляция Wine

Это просто. Откройте свой менеджер пакетов и установите программу.

Настройка библиотек DirectX

Это самый сложный этап. Но не бойтесь, я опишу его подробно, шаг за шагом.
Запустите конфигуратор Wine. В меню "Приложения" вашего дистрибутива запустите Wine > Configure Wine или наберите winecfg в командной строке. Выберите вкладку Libraries.

Эта вкладка позволяет задать поведение различных библиотек DLL и перезаписать настройки по умолчанию. Чтобы DirectX заработал, необходим длинный список DLL. Первый шаг - щелкните на выпадающем списке New override, и найдите d3d8 DLL, после чего кликните Add.
Библиотека будет добавлена в список Existing overrides что будет выглядеть примерно так: d3d8 (builtin,native).
Но это еще не все что нам нужно. Необходимо выбрать DLL в списке и кликнуть Edit. В появившемся диалоговом окне измените конфигурацию на builtin.
Так как требуемых библиотек очень много, их ручная настройка не слишком приятное занятие. К счастью, можно хакнуть реестр Wine и добавить все требуемые записи как список.
Для редактирования реестра откройте в вашем любимом текстовом редакторе (например gedit) файл ~/.wine/user.reg:

~/.wine/user.reg


В этом файле найдите раздел, помеченный как DllOverrides:



В этот раздел вы можете вставить список требуемых библиотек, который можно взять из  этой прекрасной статьи. После вставки сохраните файл и закройте редактор. Далее снова запустите конфигуратор Wine. Вы должны увидеть примерно вот это: 



Первый шаг выполнен. Теперь нам необходимо несколько файлов.


Установка библиотек

Эти файлы могут понадобиться, а может и нет, в любом случае вреда их установка не нанесет. Два файла, о которых идет речь, это mscoree.dll и streamci.dll. Первый - это модуль, содержащий функции .NET Framework, второй - библиотека, необходимая для установки потоковых устройств.
Вы можете скопировать эти файлы из инсталляции Windows, если она у вас есть, либо скачать в сети. Хороший источник, в котором они имеются, это DLL-files.com.
Кстати, после скачивания неплохо бы проверить файлы на наличие вирусов, например с помощью одного из онлайновых сканеров.
После скачивания скопируйте файлы в папку Wine system32:

cp mscoree.dll ~/.wine/drive_c/windows/system32/
cp streamci.dll ~/.wine/drive_c/windows/system32/

Далее необходимо загрузить DirectX 9.0c.

Загрузка DirectX 9.0c

Необходимо загрузить полный установочный пакет,так как при работе с онлайновым инсталлятором могут возникнуть проблемы. После загрузки запустите скачанный файл с помощью Wine:

wine directx_9c_redist.exe

Запустится мастер, который попросит вас согласиться с условиями лицензии и указать папку для извлечения установочных файлов. Выберите любую папку и распакуйте файлы.



Установка DirectX 9.0c

Перейдите в папку, куда вы распаковали файлы, и запустите инсталлятор.

wine dxsetup.exe



После успешного окончания установки меня попросили перезагрузиться, но необходимости в этом нет.

Проверка DirectX 9.0c

Проверим работоспособность DirectX 9.0c. Перейдите в папку system32 (внутри директории .wine) и запустите dxdiag.exe.

wine ~/.wine/drive_c/windows/system32/dxdiag.exe

Если все прошло нормально, вы должны увидеть, что DirectX установлен и работает. Вы можете игнорировать информацию о большинстве устройств и драйверов, так как позже мы этим займемся.



Настройка звука

Если вы хотите получить полную поддержку звуковых эффектов, необходим другой драйвер. Файл, котором идет речь, называется gm.dls. Его можно скачать здесь. Скопируйте файл в папку system32/drivers.

cp gm.dls ~/.wine/drive_c/windows/system32/drivers/

После этого перазапустите dxdiag и проверьте вкладку Music.

Установка дополнительных файлов

Ваша игра может потребовать дополнительных DLL, но узнать это можно только после ее установки. Если же вам удалось найти информацию по этому вопросу о вашей игре, можно заранее скачать требуемые файлы из сети.
Например, Tropico 3 требует d3dx9_41.dll, без которой игра запускаться не хочет. Список, с которым мы ранее работали, содержит только d3dx9_24.dll and d3dx9_36.dll. Этого не надо бояться, просто зайдите на DLL-files.com, найдите и скачайте недостающую библиотеку.

Инсталляция и запуск игр

Настало время попробовать игру. В моем случае это Tropico 3, которая установилась без проблем. Как я уже говорил, игра отказалась запускаться, поскольку требовала библиотеку d3dx9_41.dll. После того, как я скачал ее и скопировал в папку system32, все заработало. Тормозов не наблюдалось даже при максимальных настройках качества, звук работал прекрасно. Все получилось!




Ускорение Wine

Wine выводит в консоль много отладочной информации, что несколько замедляет работу. Можно повысить производительность, вставив в командной строке  отладочную переменную окружения wine.
Запустите свою игру с переменной окружения:

WINEDEBUG=-all wine <game-executable>

Для Tropico 3 это выглядит следующим образом:

WINEDEBUG=-all wine Tropico3.exe

Перевод. Оригинал на dedoimedo.com

1 комментарий:

  1. вроде все правильно сделал, но при проверке окно директа не появилось(( если кто может помочь пишите krapiva-85@list.ru

    ОтветитьУдалить