Эмулятор приставки NES FCE Ultra можно установить в Raspberry Pi OS с помощью команды:

# apt install fceu
FCEU: Error opening a sound device.

FCEU — это достаточно простой в использовании эмулятор, который в отличии от Nestopia, позволяет в стандартной поставке от Raspberry Pi OS воспроизводить картинку в консоле без использования X-сервера c высоким FPS. Кроме того, опять же, в отличии от Nestopia, можно не использовать OpenGL для вывода графики через драйвер X11 от libsdl и картинка отображается с хорошим FPS и вне консоли.

В итоге, к графике претензий никаких нет, что в framebuffer’е, что в X-сервере (если не использовать OpenGL):

$ fceu -opengl 0 -fs 1 rom_name.nes

А вот звук при старте эмулятора не работает, в терминал выводится сообщение об ошибке:

Initializing sound...Error opening a sound device.

Как-то повлиять на ситуацию и попробовать использоваться другой аудио-драйвер для libsdl не получилось. Создалось ощущение, что переменная окружение SDL_AUDIODRIVER никак не влияет на работу.

Пришлось смотреть исходный код FCE Ultra и действительно: для воспроизведения звука вместо SDL_OpenAudioDevice используются устройства /dev/dsp*, которых в папке /dev/ нет, и, соответственно, звука нет, а ошибка есть. Получается, что включить звук FCEU в Raspberry Pi OS можно подрузкой модуля ядра для OSS:

# modprobe snd-pcm-oss

После этого все нужные устройства появляются. Кроме того, можно загружать этот модуль при старте системы:

# echo "snd-pcm-oss" > /etc/modules-load.d/snd_oss.conf

После этого эмулятор работает отлично: и графика отображается, и звук в FCEU работает.

Навигация по записям