К вопросу "отсутствия" игр в Linux...или доводим Wine до ума (на примере archlinux).

123 full reads
190 story viewsUnique page visitors
123 read the story to the endThat's 65% of the total page views
2 minutes — average reading time
К вопросу "отсутствия" игр в Linux...или доводим Wine до ума (на примере archlinux).

Не секрет, что Valve с релизом своего протона сделали серьезный шаг в сторону популяризации Linux как игровой платформы. Но это steam и всё это имеет больше коммерческий интерес, чем просто помощь ближнему, который из идейных соображений вдруг решил отказаться от форточек и перейти на свободное ПО.
А вот, как быть, если ты, по - старинке, решил скачать с торрента репак какой - нибудь игры начала 2000х годов (или старше), которая в актуальной версии форточек не работает даже в режиме совместимости.

Итак, что имеем:
- Подопытный - старенький ноутбук HP AMD Phenom II Dual-Core Mobile N660
6 Gb оперативки
Mobility Radeon HD 4225/4250 + Radeon HD 6400M/7400M Series (это важно!)
ОС - archlinux + plasma
- кривые руки пользователя.
Задача: Запускать виндовые игры просто с ярлыка на рабочем столе и без лишних заморочек.

Поехали.
1. Устанавливаем Wine. Тут надо оговориться, что в данном случае нам нужна не стабильная версия, а патченная - Wine staging. И не просто Staging, а Wine Gallium-Nine, т.е с нативной поддержкой direct3D на свободных драйверах mesa.
Для начала надо открыть Multilib - репозиторий, который содержит пакеты с 32-битными версиями библиотек, необходимых для запуска 32-битных программ. Открываем терминал, заходим под суперюзером и набираем nano /etc/pacman.conf
Находим вот это: #[multilib]
#Include = /etc/pacman.d/mirrorlist.
Значок # надо убрать и сохранить изменения.
Обновляем информацию о репозиториях:
pacman -Sy
Вот теперь сама установка Wine-staging-nine:
pacman -S wine-staging-nine
2. Настраиваем.
- создаем отдельный префикс (в режиме обычного пользователя!): WINEPREFIX="/home/test/.test/" winecfg (вместо .test поставьте, что хотите) Опять же оговорюсь, что делать этого не обязательно - по умолчанию будет создан префикс .wine, можно делать всё в нем.
Рекомендуют для каждой устанавливаемой игры/программы делать свой отдельный префикс. Мысль хорошая, но мне так просто не удобно - пусть всё будет в одном месте, настроил и забыл.
Во вкладке staging отмечаем пункты:
Enable CSMT и Enable Gallium nine
- устанавливаем winetricks: pacman -S winetricks
Запуск winetricks (от обычного пользователя) в нашем тестовом префиксе будет выглядеть примерно так:
WINEPREFIX="/home/test/.test/" winetricks
Запустив winetricks сразу жмем ok, выбираем "Установить шрифт" и жмем ок. Установим сразу все шрифты на всякий случай
- allfonts
Далее идем в пункт "Установить библиотеку dll или компонент windows". Надо установить (по крайней мере я ставил):
d3dx10
d3dx9
dotnet35sp1
dxvk
mfc42
msxml3
msxml4
physx
vcrun2003
vcrun2005
vcrun2008
vcrun6
vulcansdk

3. Установка игр. Это, конечно, дело вкуса, но я предпочитаю не захламлять домашнюю директорию и устанавливать все на отдельный раздел.
Если вы скачали с торрента не iso, а просто установочные файлы, то рекомендую папку с этими файлами переименовать во что - нибудь простое: типа 123 или 321 - wine плохо понимает длинные имена папок.
У меня это выглядит примерно так: WINEPREFIX="/home/test/.test/" wine /run/media/test/files/games/123/setup.exe
files - это метка тома, куда происходит установка, games - папка, где лежит установочный файл.
Далее создаем отдельную папку под игру и производим установку. Установочник потом можно удалить, если он не нужен.
4. Запуск игр. Подходим к самому интересному. Запуск установленной игры может производиться как с ярлыка на рабочем столе, так и из терминала с указанием префикса и пути к исполняемому файлу игры (например:WINEPREFIX="/home/test/.test/" wine /run/media/test/files/games/SS2/Serious Sam 2/Bin/Sam2.exe)
Нюанс может быть такой, что при запуске из терминала игра может просто показать черный экран и всё. При запуске с ярлыка ничего такого замечено не было.
Как я уже говорил в ноуте стоит 2 видеокарты:

- Mobility Radeon HD 4225/4250

- Radeon HD 6400M/7400M Series
Откровенно говоря, я долго не мог понять, почему игры 2005 - 2006 (и новее, конечно) года приемлемо работают только в 800х600 при убитых в ноль настройках. Оказалось, что вторая карта не задействована. Гугл подсказал, что это решается очень просто: заходим в свойства ярлыка, открываем вкладку "приложение" и в строке "команда" перед словом WINEPREFIX пишем env DRI_PRIME=1
Вот, собственно, и всё. Данный гайд в основном полезен тем, у кого видеокарты от AMD/ATI. На встройке от интел не было возможности потестить - возможно там есть варианты. Ну а с Nvidia так вообще никаких заморочек нет (ну хорошо, почти нет) - у них свои проприетарные дрова есть.