RetroArch — универсальный фронтенд для эмуляции ретро-консолей: одна программа, единый интерфейс и десятки «ядер» (cores), каждое из которых отвечает за свою платформу. На Linux он работает и на десктопе, и в режиме медиацентра, и на слабых машинах. Разберём установку, настройку ядер, геймпадов и сохранений.
Что важно знать до начала
RetroArch не содержит игр и не поставляет ROM-файлы. Использовать можно только собственные копии игр, которые вы приобрели, либо свободные игры и домашние разработки. Скачивание ROM с посторонних сайтов — нарушение авторских прав, поэтому в этой статье рассматривается только легальный сценарий.
# проверьте, что образы игр у вас уже есть легально
ls -lh ~/Games/roms/nes 2>/dev/null | head
# и место под них
df -h ~
Установка
В репозиториях большинства дистрибутивов есть готовая сборка, но версия может отставать. Flatpak даёт более свежий интерфейс и изоляцию.
# Debian/Ubuntu
sudo apt install retroarch
# Fedora
sudo dnf install retroarch
# Flatpak (свежая версия)
flatpak install flathub org.libretro.RetroArch
flatpak run org.libretro.RetroArch
# проверить версию
retroarch --version 2>/dev/null | head -3
Если интерфейс выглядит мелким, включите масштабирование в настройках видео или запустите с флагом масштаба.
Ядра: что скачивать
Ядро — это и есть эмулятор. Не устанавливайте всё подряд: каждое ядро добавляет зависимости и путаницу. Начните с одной платформы.
# каталог ядер в системной установке
ls /usr/lib/libretro/ 2>/dev/null | head -20
# в Flatpak ядра лежат внутри песочницы — посмотрите сведения о пакете
flatpak info org.libretro.RetroArch 2>/dev/null | head -10
В интерфейсе откройте «Online Updater → Core Downloader» и выберите нужное. Для NES это Mesen или Nestopia, для SNES — Snes9x, для Sega Mega Drive — Genesis Plus GX. Точные названия могут отличаться между версиями.
Каталоги и настройки путей
RetroArch хранит конфигурацию, ядра, сохранения и скриншоты в отдельных каталогах. Задайте их один раз, чтобы потом не искать файлы по всей системе.
# конфигурация
ls ~/.config/retroarch/ 2>/dev/null
# сохранения и состояния
ls ~/.config/retroarch/saves ~/.config/retroarch/states 2>/dev/null
# каталог с образами игр
mkdir -p ~/Games/roms
# при необходимости — симлинк на внешний диск
ln -s /mnt/backup/roms ~/Games/roms/archive
В настройках укажите: папку ROM, папку сохранений, папку скриншотов и каталог ядер. После изменений сохраните конфигурацию — иначе параметры сбросятся при выходе.
Геймпады
Современные контроллеры определяются автоматически, но не всегда с правильной раскладкой. Проверьте устройство и создайте профиль, если кнопки перепутаны.
# какие устройства ввода видит система
ls /dev/input/js* 2>/dev/null
cat /proc/bus/input/devices | grep -A4 -i "gamepad\|joystick" | head -20
# тест из терминала
jstest /dev/input/js0 2>/dev/null
В меню «Settings → Input → RetroPad Binds» назначьте кнопки. Для разных игр удобно держать разные профили и переключать их горячей клавишей.
Видео, шейдеры и производительность
RetroArch умеет выводить изображение через Vulkan, OpenGL и DRM/KMS. На слабых машинах DRM-режим даёт минимальные задержки, на десктопе проще OpenGL.
# проверить поддержку Vulkan
vulkaninfo --summary 2>/dev/null | head
# посмотреть драйвер
glxinfo -B 2>/dev/null | grep -E "OpenGL renderer|version"
# запуск в отдельном окне
retroarch --menu
Шейдеры CRT имитируют старые экраны и заметно улучшают картинку на современных мониторах. Начните с простых (crt-easymode), тяжёлые шейдеры могут снизить частоту кадров.
# каталог шейдеров
ls /usr/share/libretro/shaders 2>/dev/null | head
ls ~/.config/retroarch/shaders 2>/dev/null | head
Сохранения и состояния
Обычные сохранения пишутся в файл игры, «состояния» (save states) — мгновенный снимок памяти. Второе удобно, но не заменяет первое: состояния привязаны к версии ядра.
# где лежат файлы
find ~/.config/retroarch -maxdepth 2 -name "*.srm" -o -name "*.state" | head
# резервная копия сохранений
tar -czf ~/retroarch-saves-$(date +%F).tar.gz ~/.config/retroarch/saves ~/.config/retroarch/states
Перед обновлением ядер сделайте копию: несовместимое ядро иногда не читает старые состояния.
Горячие клавиши
# типовые действия (настраиваются в Settings -> Input -> Hotkeys)
# F1 — меню
# F2 — сохранить состояние
# F4 — загрузить состояние
# F8 — сделать скриншот
# Пробел — ускорение (fast forward)
На геймпаде назначьте отдельную комбинацию для выхода в меню, иначе придётся тянуться к клавиатуре.
Типичные проблемы
- Игра не запускается — выбрано неверное ядро или повреждён образ.
- Нет звука — проверьте вывод в настройках аудио и системный микшер.
- Тормозит — отключите тяжёлые шейдеры и проверьте, не включено ли программное масштабирование.
- Не работают кнопки — переназначьте раскладку или обновите autoconfig.
- Пропали сохранения — проверьте путь в настройках и права на каталог.
# диагностика запуска из терминала
retroarch --verbose 2>&1 | tail -40
# проверить права
ls -ld ~/.config/retroarch ~/.config/retroarch/saves
Сетевая игра и медиацентр
RetroArch умеет запускать совместную игру по сети (netplay), но качество зависит от задержки. Для двух игроков в одной сети это работает хорошо, через интернет — требует стабильного канала.
# включить netplay в интерфейсе: Settings -> Netplay
# проверить задержку до партнёра
ping -c 5 partner.example
# убедиться, что версии ядер совпадают
ls /usr/lib/libretro/ | grep -i snes
Для телевизора удобен режим Big Screen или запуск из медиацентра Kodi. Один и тот же компьютер может быть и приставкой, и медиаплеером.
# запуск без рабочего стола (минимальные задержки)
retroarch --menu 2>/dev/null
# проверить, что геймпад виден без X11
ls /dev/input/ | grep event
Если геймпад не определяется в KMS-режиме, проверьте права на устройства ввода и группу пользователя.
Итог
RetroArch даёт единый интерфейс для ретро-игр: установите его, скачайте одно-два ядра, задайте каталоги, настройте геймпад и сделайте резервную копию сохранений. Используйте только собственные копии игр — это законно и избавляет от проблем. Начните с одной платформы, чтобы не утонуть в настройках.