Поиск по блогу :

    23 декабря 2007 г.

    Wine + DirectX 9

    Я человек хоть и взрослый, но сам, как ребенок, иногда люблю поиграть в какие-нить игры.
    Под Linux существует множество довольно интересных игр, но что делать, если хочется поиграть во что-нить новенькое, 3D-ое, которое обычно выпускается только под ЗлоОС :(



    Есть несколько вариантов выйти из положения:

    1) Использовать нативные версии игр, выпущенные специально под Linux. К таким играм относятся, например, игры компании idSoftware (все помнят Quake4, Doom3, Enemy Territory: Quake Wars), за что им отдельное спасибо.
    2) Использовать эмуляторы Wine или Cedega. Wine поддерживает множество виндовых программ и игр, но к сожалению не поддерживает DirectX 9, а ведь именно эту библиотеку используют многие современные игры. Cedega в этом плане немного опередила Wine - добавив у себя поддержку DirectX 9, но в плане юзабилити Cedega очень и очень придирчива к тому, что она запускает (реально запустить под Cedega у вас получится всего пару игр).

    Ну что же, будем исправлять положение, установим поддержку DirectX 9 для Wine.

    Устанавливаем последнюю версию wine. Для этого добавим себе официальный репозиторий Wine HQ для Ubuntu
    $

    $


    wget -q http://wine.budgetdedicated.com/apt/387EE263.gpg -O- | sudo apt-key add -
    sudo wget http://wine.budgetdedicated.com/apt/sources.list.d/.list -O /etc/apt/sources.list.d/winehq.list

    и устанавливаем wine
    $ $
    sudo apt-get update
    sudo apt-get install wine

    Если у вас уже установлен wine, то для чистоты эксперимента, удалите папку с настройками wine (или перенесите ее в другое место):
    $
    rm -dr ~/.wine

    1. Для создания папки с настройками, в первый раз, запускаем конфигуратор wine:
    $
    winecfg

    2. Теперь ищем в интернете или ,если у вас установлен на компе ЗлоХП, копируем из папки windows\system32\ файлы mscoree.dll и streamci.dll в папку ~/.wine/drive_c/windows/system32/
    3. Удаляем wine'ские файлы d3d:
    $ $

    cd ~/.wine/drive_c/windows/system32/
    rm d3d8.dll d3d9.dll ddraw.dll dsound.dll dsound.vxd quartz.dll dxdiagn.dll

    4. Редактируем файл user.reg:
    $
    gedit ~/.wine/user.reg

    в конец файла вставляем:
    [Software\\Wine\\DllOverrides] 1196330736
    "d3d8"="native"
    "d3d9"="native"
    "d3dim"="native"
    "d3dx8"="native"
    "d3dxof"="native"
    "dciman32"="native"
    "ddrawex"="native"
    "devenum"="native"
    "dinput"="native"
    "dinput8"="native"
    "dmband"="native"
    "dmcompos"="native"
    "dmime"="native"
    "dmloader"="native"
    "dmscript"="native"
    "dmstyle"="native"
    "dmsynth"="native"
    "dmusic"="native"
    "dplay"="native"
    "dplayx"="native"
    "dpnaddr"="native"
    "dpnet"="native"
    "dpnhpast"="native"
    "dswave"="native"
    "dxdiagn"="native"
    "mscoree"="native"
    "quartz"="native"
    "streamci"="native"
    5. Распаковываем последнюю версию DirectX (скачать последнюю версию можно отсюда):
    $
    wine directx_nov2007_redist.exe

    6. Выбираем папку куда распакуются файлы, после распаковки переходим в эту папку и запускаем установку:
    $
    wine DXSETUP.EXE

    6.1. В последней версии DirectX 9.0c может возникнуть ошибка по поводу .NET Framework - просто игнорируем ее.
    7. Снова запускаем конфигуратор wine:
    $
    winecfg

    7.1. Переходим на вкладку 'Библиотеки', выбираем из ниже приведенного списка названия библиотек, нажимаем редактировать и выбираем пункт 'Встроенная (Wine)'
    d3d8, d3d9, ddrawex, dinput, dinput8

    Теперь у вас в wine есть поддержка DirectX 9, с чем я вас и поздравляю!!! Теперь запускайте ваши любимые игры и наслаждайтесь игрой, но учтите, даже с поддержкой dx9, многие игры до сих пор еще не работают в wine.

    P.S. Различные нюансы по запуску нужной вам игры или программы, вы можете посмотреть в базе приложений Wine HQ или на блоге wine-review.blogspot.com.