Запуск DirectX 9.0c на Linux при помощи Wine

Microsoft DirectX - это набор библиотек с API для обработки задач, связанных с мультимедиа, игр и программ для обработки видео на платформах Microsoft. Изначально все имена этих библиотек начинались с Direct. Например: Direct3D, DirectDraw, DirectMusic, DirectPlay, DirectSound и так далее. За прошедшее время некоторые библиотеки были переименованы, некоторые вообще удалены, так что теперь это название скорее дань традиции. На данный момент буква X в названии пришла на смену Direct и новые библиотеки теперь используют в названиях букву X: XAct, XInput и так далее.
Direct3D (3DGraphic API в DirectX API) широко используется при разработке компьютерных игр для Microsoft Windows, Microsoft Xbox и Microsoft Xbox 360. Direct3D используется также в прикладных программных пакетах для визуализации или обработки графики. В первую очередь его используют CAD/CAM-программы из-за быстрой отрисовки высококачественных 3D-графиков с использованием Direct3D-совместимых видеокарт. Direct3D - это самая популярная библиотека из набора DirectX, так что нередко можно увидеть как название Direct3D используется как синоним DirectX.

Конфигурация Wine
Сначала сбросим все настройки и активируем виртуальный работчий стол с разрешением 1024X768 при помощи:

$ winecfg

Утилита очистит (или создаст, если он не существует) каталог $HOME/.wine
Cоздайте c ее помощью виртуальный рабочий стол и выберите свой аудио-драйвер на вкладе Audio

Затем установите нативные библиотеки Windows (mscoree.dll и streamci.dll) в директорию /system32 из дистрибутива Windows. Затем перейдите в каталог ~/.wine/drive_c/windows/system32 и измените расширение файлов d3d8.dll, d3d9.dll, ddraw.dll, dsound.dll, dsound.vxd, quartz.dll на *.bak
Для корректной работы необходимо установить в native еще несколько dll-файлов - вот их полный список:

“d3d8″=”native”
“d3d9″=”native”
“d3dim”=”native”
“d3drm”=”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”

Загрузите DirectX9.0c November отсюда: http://filehippo.com/download_directx/
Запустите установщик directx_nov2007_redist.exe и укажите ему необходимый путь для распаковки

tom@tuxonfire ~ $ wine directx_nov2007_redist.exe
fixme:advapi:DecryptFileA “z:\\home\\tom\\directx-9\\” 00000000
fixme:midi:OSS_MidiInit Synthesizer supports MIDI in. Not yet supported.
tom@tuxonfire ~ $

Теперь перейдите в директорию с распакованным DirectX и запустите файл DXSETUP.EXE

tom@tuxonfire ~ $ cd /home/tom/directx-9
tom@tuxonfire ~/directx-9 $ wine DXSETUP.EXE
fixme:midi:OSS_MidiInit Synthesizer supports MIDI in. Not yet supported.

Снова запустите winecfg и активируйте там библиотеки d3d8, d3d9, ddrawex, dinut и dinput8. Затем запускаем dxdiag.exe

tom@tuxonfire ~/directx-9 $ cd /home/tom/.wine/drive_c/windows/system32
tom@tuxonfire ~/.wine/drive_c/windows/system32 $ wine dxdiag.exe
fixme:ole:CoInitializeSecurity ((nil),-1,(nil),(nil),1,3,(nil),0,(nil)) - stub!

Также проверим ddraw, ddraw 3D, D3D8 и D3D9:

И Direct Sound:

Теперь установите dm.dlls для проверки Direct Music, положите их в ~/.wine/drive_c/windows/system32/drivers

Проверка DirectPlay:

В system32 вы можете увидеть, что файл d3dx9_24.dll обновлен до d3dx9_36.dll. Это реально помогает в работе игр, которые используют эту библиотеку.
Теперь вы можете запускать библиотеки в native- или builtin-режиме. Например, если какая-нибудь из ваших игр не работает с библиотекой quartz.dll от wine, то вы можете попробовать запустить ее с “родной” библиотекой - возможно это спаест положение.

Помните, что d3d8, d3d9, ddraw будут работать только в builtin-режиме и, в большинстве случаев, вы будте вынуждены использовать встроенные dsound и dinput. В большинстве случаев не получалось использовать dsound и dinput в native-режиме, потому что этим dll необходим прямой доступ к аппаратной части вашего компьютера.
Напротив, DirectMusic и DirectPlay вплне могут использоваться в native.

Оригинал: http://wine-review.blogspot.com/2007/11/directx-90c-on-linux-with-wine.html


 

Comments: 9

  1. Alex Filth December 14th, 2007 at 1:53 am

    Пытался установить - в процессе сетупа директХ вылазит баг. В логах написано
    ——————–
    [12/13/07 23:52:38] module: dsetup32(Jan 24 2007), file: setup.cpp, line: 545, function: IsWow64

    Unable to initialize CKernel32.

    и никак….

  2. seva January 4th, 2008 at 1:38 pm

    Теперь установите dm.dlls для проверки Direct Music, положите их в ~/.wine/drive_c/windows/system32/drivers

    Замените dm.dlls на gm.dls

  3. light January 30th, 2008 at 9:01 am

    при установке директХ ругается -

    light@99:~/C:/temp$ wine DXSETUP.exe
    fixme:advapi:RegisterEventSourceW ((null),L”.NET Runtime”): stub
    fixme:advapi:ReportEventW (0xcafe4242,0×0001,0×0000,0×00000000,(nil),0×0001,0×00000000,0×7e447f0c,(nil)): stub
    err:eventlog:ReportEventW L”.NET Runtime version : 2.0.50727.42 - ErrorA fatal error occurred. However, mscorees.dll could not be loaded to display the appropriate error message.\n\nPlease reinstall the .NET Framework.”
    fixme:advapi:DeregisterEventSource (0xcafe4242) stub

    mscoree.dll выдрал с winXP SP2, фрамеворк пытался ставить там же - не ставится

  4. kox March 9th, 2008 at 9:09 pm

    если dx ругаеться на .NET Framework то значит старая mscorees.dll нужно свежую с нета качнуть……

  5. euroos March 31st, 2008 at 8:52 am

    Много уважаемые Гаспода.
    При установке и эксплотации вазникли 3 глюка.

    1. Работает толька direct9 (b,c не пашут)
    2. При задании библиатекам встроеная или родная directa вообще нет.
    3. Отсутствует dxdiagnostic.

    P.S. Огромная просьба если не влом скиньте свая папку windows на мыло.

  6. euroos March 31st, 2008 at 8:53 am

    legion_reg@tut.by

  7. Yorik April 18th, 2008 at 12:53 am

    Скиньте и мне пожалуйста папку виндовс на мыло:
    Yorikworld@gmail.com
    Спасибо зарание :)

  8. Incinerator July 3rd, 2008 at 3:01 pm

    Может телеграммой?

  9. Ад September 22nd, 2008 at 9:36 am

    А почему бы так не подключить и еще виндовские дрова видеокарты (или точнее их библиотеки, там дополнительные инструкции к DX должны быть) Может также добавить производительности системы, и поводов переехать на пингвина =).

Add a Comment

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>