Запуск directx игр под wine

Исправлено 20.01.2010
Неактуально для Fedora 13, т.к. поддержка directx включена в wine.

В общих словах:

  1. Устанавливаем и проверяем драйверы видеокарт, поддерживающие 3D
  2. Устанавливаем и настраиваем wine
  3. Устанавливаем и проверяем directx9
  4. Делаем копию ~/.wine
  5. Устанавливаем и проверяем игру
  6. Копируем (переносим) ~/.wine с установленной игрой в папку, где будут находиться игры
  7. Запускаем игру с префиксом "env WINEPREFIX"
  8. Удаляем содержимое ~/.wine и копируем туда сохранённую ранее конфигурацию wine с установленным directx (см. п/п 4)
  9. Устанавливаем следующую игру

Установка игр (да и других программ) под wine вышеуказанным способом позволяет иметь различные конфигурации и не сваливать всё в одну кучу.

Подробнее:

  • Установку драйверов видеокарт здесь не рассматриваю. Эта тема уже не актуальна, по крайней мере для NVIDIA.
  • Устанавливаем wine из репозиториев. На x86_64 надо устанавливать 32-х разрядный wine. Если wine уже установлен, удаляем папку ~/.wine
  • Запускаем winecfg
  • Устанавливаем параметры:
Приложения
Графика
Звук

Эмуляция рабочего стола желательна при начальной настройке, впоследствии её можно отключить.

  • Скачиваем маленькую утилиту winetricks с http://wiki.winehq.org/winetricks. Она поможет установить directx9
  • Запускаем winetricks и выбираем directx9 (вместо directx9 можно установить d3dx9). После чего начинается закачка последней рекомендуемой версии directx9.
    Всё скачанное winetricks сохраняет в папку кэша - ~/.winetrickscache.
    По окончании закачки запускается стандартный установщик directx.
    Возможно, что directx можно установить и без winetricks…
  • Проверяем корректность работы directx - "wine dxdiag.exe" в папке ~/.wine/drive_c/windows/system32 (у меня наблюдалось не плавное вращение куба, а какое-то хаотичное, но это никак не влияло на работу игр).
  • Если directx работает, делаем копию папки ~/.wine где нибудь в сторонке, что-бы, в случае чего, не повторять вышеуказанное.
    Также эта копия будет заготовкой для других игр.
  • Теперь можно установить какую-либо игру. Как правило, все игры ставлю в "c:\game" для упрощения запуска.
  • Если игра установилась и заработала, запускаем winecfg и отключаем эмуляцию рабочего стола и ещё раз проверяем работоспособность игры.
  • Копируем (переносим) содержимое ~/.wine в папку с играми, например, в /media/storage/games/wine/game1.
  • Для запуска можно сделать скрипт и положить его в папку с игрой:
#!/bin/bash

MAINPATH="/media/storage/Games/wine/"                    # Папка со всеми играми
GAMEFOLDER="serious-sam"                                 # Папка с игрой
EXECUTEFILE="C:\\game\\Bin\\SeriousSam.exe"              # Запускаемый файл
env WINEPREFIX=$MAINPATH$GAMEFOLDER wine $EXECUTEFILE

или

!/bin/bash

xrandr -s 1024x768
cd /media/storage/Games/wine/humans/drive_c/Program\ Files/Deep\ Silver/The\ Humans
env WINEPREFIX="/media/storage/Games/wine/humans" wine "C:\Program Files\Deep Silver\The Humans\Humans.exe"
xrandr -s 1280x1024

Некоторые вопросы, возникшие в процессе:

  • Владелец папки ~/.wine или её копии должен быть именно пользователь, от имени которого запускается игра. Таким образом, возможны трудности с запуском на NTFS или FAT.
  • Некоторые игры пытаются переключить разрешение экрана, вследствие чего, рабочее пространство располагается в центре, а по краям - толстый чёрный бордюр:
    Перед "env WINEPREFIX=$MAINPATH$GAMEFOLDER wine $EXECUTEFILE" запускаем "xrandr -s 800x600", а после "xrandr -s 1280x1024", чтобы установить и потом вернуть назад необходимое разрешение экрана.
  • Для некоторых игр (ZUMA) пришлось устанавливать gecko через winetricks, для некоторых (Лунтик) xvid.
  • Пока не удалось заставить нормально работать игры, использующие OpenAL.

Игры, запустившиеся вышеуказанным методом:

Из серии Смешариков:

Мульт-мастерская, Праздники со Смешариками, В поисках Биби, Олимпиада, Круглая компания, Букварик, Параллельные миры, Собери страну Смешариков, Компьютер Ёжика, Правила дорожного движения, Калейдоскоп игр 1,2,3,4, Смешарики идут в поход.

Из серии Лунтика:

Лунтик учит буквы, Лунтик учит цифры, Математика, Русский язык, Задания - подготовка к школе ,Лунтик учится рисовать, Лунтик познаёт мир (для этих двух необходимо поставить wmp9 (Windows Media Player 9) из winetricks).

Другие:

Заработало!, Построй-ка, Собери грузовик, Euro Truck Simulator, Prey, Serious Sam, Zuma, Pain Killer, War Craft III, The Humans, Попугай Кеша: Вы не были на Таити?, Пчела Майя: Сюрприз ко дню рождения, 102 далматинца. Пятнистые спасатели, Элька. Мы спасем Антарктиду!, Рыбка Фредди 3, Снежная Королева, Normal Tanks, В гостях у Розовой Зебры, 18 стальных колёс, Chaser.

Наверх