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

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.

19 коммент.:

CONSTantius комментирует...

С ходу возник вопрос - а что делать с играми, защищенными системами защиты, такими, как Starforce & SecuROM? Думаю, они будут сиильно ругаться...

Leolik комментирует...

За StarForce и тому подобные поделия вообще надо кому-то, что-то отрывать...
На самом деле копал много в эту сторону - решений пока не нашел ((

CONSTantius комментирует...

Понятно... Спасибо все равно. Только правда у меня и сам DX пока что вставать не хочет, но я уж с ним справлюсь как-нибудь

Marvin комментирует...

Следует отметить, что скорость работы текущих версий wine с DirectX 9 гораздо меньше чем с DirectX 8.

Marvin комментирует...

И ещё, все вышеописанные операции можно сделать "одним кликом" при помощи пакета wine-doors.

GQ комментирует...

Против старфорсов используйте nocd

CONSTantius комментирует...

Да, gq, было бы все так просто. Не на все ведь NoCD есть, да и с версиями проблемы

rddrn комментирует...

Ничего не получилось(
Fatal error occured. However, mscorees.dll could not be loaded to display the appropriate error message.
Please reinstall the .NET Framework

Leolik комментирует...

2 rddrn
Вся проблема в том, что вы пытаетесь ставить одну из последних версий DX (не ноябрьскую прошлого года), а они теперь для своей инсталляции хотят .NET Framework. Проблема в том, что .NET Framework не хочет ставиться под Wine. Ну ниче, думаю немного стоит покопаться и эту проблему можно будет решить.

Leolik комментирует...

только что пробовал ставить на новую машину - ставится на ура :) Просто когда вылетает окно с ошибкой, нажимаем ОК и установка продолжится далее! проверял dxdiag.exe - все работает.

Leolik комментирует...

thx twickline, but in your comment was wrong link, and I delete it. But I post link to wine-review.blogspot.com in my post.
Sorry for my english.

Тигрёнок комментирует...

А у меня после установки не появляется dxdiag.exe :(
Хотя вроде сам directX установливается - во всяком случае инсталятор нфс на это больше не ругается... :) посмотрим как запустится... :)

Develop7 комментирует...

winetricks пробовали? с ним вроде как и DX, и .NET с полпинка ставятся.

DarkAndrian комментирует...

Спасилбо)) помогло)

vyacheslav комментирует...

матерится о серьёзной ошибке в dxdllreg.exe
что это может быть?

Leolik комментирует...

2 vyacheslavа что за ошибка то? на что матерится?

vyacheslav комментирует...

просто пишет,что серьёзная проблема в dxdllreg.exe и он будет закрыт,бес его знает чего ему надо

vyacheslav комментирует...

это происходит при каждом запуске любой проги

Leolik комментирует...

2 vyacheslav странно, как не пробую не получается воспроизвести :(

Отправить комментарий