Звук в Wine: как заставить работать старые игры на Linux
Погружаетесь в ностальгию по старым играм, но вместо битвы с монстрами сражаетесь с тишиной? Знакомая ситуация: «Герои 3» или «Knights and Merchants» запускаются, а звука нет. Это не ваша вина, а особенность работы старых SDL-библиотек, которые упрямо ищут устаревшую систему OSS, а не современные ALSA или PulseAudio.
Не спешите отчаиваться и искать древнее железо! Есть куда более элегантное решение, которое не потребует переустановки системы. Мы нашли рабочий способ заставить звук работать даже в самых капризных тайтлах.
В этом материале вы получите четкое и простое руководство. Мы разберем, как определить, какая звуковая подсистема у вас работает. Вы узнаете, какую волшебную команду нужно ввести для PulseAudio, а какую — для ALSA, чтобы звук наконец-то ожил.
Столкнулись с ошибками на 64-разрядных системах? И это не проблема! Мы подготовили отдельное решение для такой архитектуры. Вам не придется ломать голову — просто выполните несколько последовательных шагов по установке нужных библиотек и настройке эмулятора.
Этот метод проверен на практике и позволяет наслаждаться полноценным игровым процессом. Готовы услышать долгожданные саундтреки и звуковые эффекты? Тогда переходите к полной статье — там вас ждет детальная пошаговая инструкция, которая вернет звук в ваши игры!
Приветствую всех! Хотел бы рассказать о решении проблемы, с которой столкнулся сам. Я решил установить старые игры для Linux: Герои 3, Knights and Merchants. Эти игры используют SDL библиотеки для звука и видео. Но с видео все в порядке а звука нет. Это связано с тем что SDL рассчитывает на OSS, а не ALSA или PulseAudio. Для решения проблемы можно использовать несколько способов. Дальше рассмотрим как выполняется настройка звука wine для работы через oss.
Настройка звука в Wine
Есть несколько вариантов решения проблемы нет звука wine с помощью эмуляции OSS в linux:
- установить старую звуковую карту и старую версию системы;
- aoss — перехват обращений через alsa-oss;
- padsp — перехват обращений через pulseaudio;
Ставить старую звуковую карту и старую систему я не буду, а вот эмулировать звук очень даже подходит. Далее, я пошагово объясню как это сделать. Сначала надо узнать установлен ли Pulse Audio:
ps aux | grep pulseaudio
Если используется PulseAudio то вы увидите примерно такой вывод в терминале:
Если выдало ошибку, то у вас ALSA. Дальше нужно зайти в папку с игрой. У меня это ~/knights;
cd /knights
Для PulseAudio команда будет такой:
sudo padsp ./knights
А для Alsa:
sudo aoss ./knights
Все готово, настройка звука Wine завершена, теперь вы можете играть и радоваться звуку. Если у вас x64 разрядная и возникают ошибки, то делаем следующее(только Pulse audio):
sudo dpkg --add-architecture i386
$ sudo apt-get update
$ sudo apt-get install libpulse0:i386 libpulsedsp:i386
Копируем исполняемый файл. Я назвал копию padsp32.
sudo cp /usr/bin/padsp /usr/bin/padsp32
Запускаем текстовый редактор от root. Я буду использовать Nano, так как он есть у всех:
sudo nano /usr/bin/padsp32
Заменяем 2 строки в файле padsp32:
/usr/lib/x86_64-linux-gnu/pulseaudio/libpulsedsp.so
на:
/usr/lib/i386-linux-gnu/pulseaudio/libpulsedsp.so
Теперь чтобы запустить игру надо использовать эту команду:
padsp32 ./knights
Вместо ./ путь к файлу, а вместо knights название вашего файла.
Выводы
Вот таким способом можно решить эту проблему, но нужно учесть, что эмуляция эта работает стабильно только, если игра рассчитана на вашу архитектуру (например, x32, а у вас x64 - работать не будет) и в вашей системе есть звук! Спасибо за чтение до конца, это моя первая статья не судите строго! Оставляйте комментарии как работает, если возникли ошибки.