В этой статье я расскажу, чем может быть полезен RetroArch даже при эмуляции одной единственной системы. Далее будут рассмотрены особенности работы в Windows, Linux и Android — на смартфоне, планшете и ТВ-приставке.
Зачем нужен RetroArch
Допустим, вас интересует исключительно Sega Mega Drive (Genesis), и вы годами использовали для эмуляции какой-нибудь Gens и десяток ромов, скачанных ещё со старого доброго pristavka.kulichki.net. Запустив в первый раз RetroArch вы увидите огромную простыню настроек, испугаетесь, закроете его, чтобы запустить старый добрый простой эмулятор.
RetroArch — это не совсем эмулятор, а комбайн, единый интерфейс для запуска эмуляторов различных систем. Сами эмуляторы доступны в виде так называемых ядер. В сочетании с поддержкой множества платформ это дает очень большое преимущество в виде унификации:
- Бесшовный геймплей: можно переносить сохранённые игры между устройствами. Например, играть дома на ТВ-боксе и в дороге на смартфоне.
- Единый интерфейс на всех платформах. Это удобно даже в рамках одной платформы. Что если вы захотите расширить свой кругозор и запустить игры для других систем. С RetroArch нужно будет лишь добавить нужное ядро, скачать образы игр — интерфейс останется привычным.
- Экономия. RetroArch можно поставить практически куда угодно, превратив устройство в удобную ретроконсоль. Не нужно держать зоопарк из стационарных и мобильных консолей. Например, вместо портативной консоли можно использовать смартфон с геймпадом, и этот же геймпад задействовать для стационарного эмулятора.
«Множество платформ» в данном случае — не просто слова:
- Windows. Поддерживаются все версии аж с 98SE.
- Linux. Я пробовал на Manjaro, Arch и Ubuntu — никаких проблем.
- Haiku. Это реинкарнация BeOS.
- Apple macOS/OSX. Поддерживаются Intel и ARM. PowerPC в связи с неактуальностью забросили, готовых сборок больше нет, но можно скомпилировать самому.
- Apple iOS и Apple TV.
- Android. Можно ставить из Google Play или вручную. Работает на Android 5.0 и новее. Подтвердить работоспособность на старых версиях не могу, я пробовал только с 9.0.
- Консоли. Список достаточно большой: XBox One, Sony PS Vita, PSP, PS2 (обещают PS3 и PS4), Nintendo Wii, Switch, GameCube (!), Steam Deck.
- Консоли для эмуляции: RetroMini RS90, Sega Genesis Mini, консоли совместимые с OpenDingux.
Установка и первый запуск
Скриншоты сделаны в версиях для Windows и Android, но интерфейс (с поправкой на выбор удобного с учетом размера экрана драйвера меню) везде одинаковый. Также тут будет рассмотрен только один эмулятор (ядро) — Genesis Plus GX с поддержкой 8- и 16-битных консолей Sega: SG-1000, Master System, Game Gear, Mega Drive и Mega CD.
В случае Linux/Windows/macOS — скачиваем с официального сайта, в случае Android — ищем на Google Play. В Google Play будут две версии — просто RetroArch и RetroArch Plus. Если у вас Android 8.0 и новее, то выбирайте Plus. Также для Android нужен будет любой файл-менеджер, позволяющий копировать файлы и каталоги. Если такового нет, то рекомендую FX File Explorer.
Образы BIOS
Это ещё не всё. Для простых консолей достаточно только ядер и ромов, а для продвинутых (в рамках нашей статьи — Mega CD) нужны ещё образы BIOS. Один хороший человек собрал все необходимые образы под большое количество платформ: RetroArch BIOS Pack. Внутри архива будет каталог system, его нужно скопировать туда, где установлен RetroArch (в Windows это по умолчанию C:\RetroArch-Win64, в Android — /RetroArch на основном носителе).
Можно сэкономить дисковое пространство и скачать BIOS'ы только для нужных систем с archive.org. Для Mega CD и ядра Genesis Plus GX нужный архив — Sega - MS-GG-MD-CD (Genesis Plus GX).zip. Распакуйте содержимое в system.
Образы игр (ROM'ы)
Небольшой совет. Не старайтесь скачать и попробовать сразу всё. Почитайте или посмотрите несколько обзоров, выпишите десяток понравившихся игры и начните с них. Слепой перебор огромной библиотеки отнимет кучу времени и отобьёт всякое желание играть (конечно, если вы не исследователь в поисках скрытых шедевров).
Можно взять большую раздачу со всем известного ресурса с торрентами и скачать оттуда только нужные файлы. Я выбрал вот эти раздачи (убрал информацию о версиях, так как они могут обновляться) для Sega MD, Mega CD, MS:
- [SEGA MDG] - Sega Mega Drive Genesis GoodGen
- Sega - Mega CD & Sega CD
- [NonGoodSMS]
Создаём в каталоге RetroArch каталог roms, с каталогами под каждую систему (в моём примере это megadrive, megacd, sms и snes). Образы хранятся в архивах, куда упакованы несколько образов одной и той же игры: разные региональные версии, неофициальные переводы, хаки и т.п. Варианты обозначены аббревиатурами в квадратных скобках. Например, Mutant League Hockey (UE) [!].bin — это немодифицированный образ игры Mutant League Hockey для США и Европы.
Образы дисков для Mega CD будут представлены файлом .cue и одним или несколькими файлами .bin. Для ручного запуска нужно будет использовать файл cue, но лучше создать плейлист (об этом ниже).
Интерфейс
Запускаем RetroArch. В случае ТВ-приставки на Android и Bluetooth-геймпада нужно заранее его подключить. Дело в том, что интерфейс RetroArch для Android рассчитан на управление при помощи тачскрина (а на ТВ-приставке его нет) или геймпада. Пульт для навигации по меню использовать можно, но сначала его нужно будет настроить, для чего всё равно понадобится геймпад.
Что, разбегаются глаза? Не бойтесь, сейчас всё настроим. Осталось выполнить всего несколько пунктов:
- Изменить оформление меню с учетом размеров экрана
- Установить необходимые эмуляторы (ядра)
- Настроить геймпад
- Настроить плейлисты — списки игр с красивыми картинками обложек
Перемещаться по меню на десктопных платформах можно при помощи мыши или с клавиатуры, за выбор пункта и возврат отвечают Enter и Backspace. На Android — тачскрин или геймпад. Выбор пункта и возврат на 6-кнопочном геймпаде (после его настройки) — B и C, соответственно.
Сначала поменяем тему оформления. В RetroArch это называется драйвером меню. Настройки → Драйверы → Меню.
То, что вы увидите по умолчанию на десктопных платформах (и на скриншоте выше) называется ozone. Для смартфонов и небольших планшетов больше подходит дефолтный для них glui. На ТВ-боксах органично смотрится xmb — интерфейс, напоминающий Play Station 3.
Ядра
Заходим на Главная → Онлайн-обновления → Скачать ядра
Поставьте Genesis Plus GX и Genesis Plus GX Wide (последний умеет отображать некоторые игры в широкоэкранном режиме — подробнее напишу в отдельной статье). Под некоторые системы существует несколько ядер. Единственно правильного нет, у разных ядер есть свои особенности и проблемы с совместимостью.
Геймпад
Я использую замечательный геймпад 8bitDo M30, о котором упоминал в первой статье. Он очень точно копирует дизайн оригинальных 6-кнопочных геймпадов для Sega MD, поддерживает проводное и bluetooth подключение, и снабжен дополнительными кнопками на торцах. В большинстве сеговских игр достаточно трёх кнопок (а где-то и вовсе одной), но мне всё же хочется играть в тот же Comix Zone с комфортом, а там верхний ряд используется для активации предметов.
RetroArch использует слой абстракции под названием Retropad, у которого 4 основных кнопки (X, Y, A, B) и несколько пар торцевых L и R. В зависимости от ядра эмуляции они привязываются на различные кнопки, соответствующие родным геймпадам.
Профиль под него уже есть в репозиториях RetroArch (кстати, вы можете помочь разработчикам с созданием новых профилей: GitHub). Если выбрать Главная → Онлайн-обновления → Обновить профили контроллеров, то все нужные кнопки будут на своих местах. Если у вас какой-то другой 6-кнопочный геймпад, то можно настроить его вручную. Заходим в Настройки → Ввод → Порт 1 привязки. Выбираем в меню нужные кнопки виртуального геймпада и зажимаем на несколько секунд соответствующие кнопки на геймпаде. Должно получиться вот так:
Не забудьте настроить сочетание кнопок для выхода в меню, иначе на той же ТВ-приставке выйти из игры не получится и придется принудительно останавливать приложение. Выбрать его можно в Настройки → Ввод → Горячие клавиши → Комбинации клавиш для вызова меню. Для 8bitDo M30 мне удобно использовать торцевые кнопки, которые в RetroArch соответствуют L2 и R2.
Плейлисты
Заходим в Импорт контента → Сканировать каталог. Выбираем путь, выбираем Сканировать каталог, и через несколько секунд в корневом разделе меню будет сформирован плейлист. RetroArch по идее сам может определить принадлежность rom'ов, но лучше ему помочь. В Настройки → Плейлисты → Управление плейлистами можно назначить ядро для каждого плейлиста.
С плейлистом для Mega CD всё несколько сложнее. Автоматическое сканирование тут не работает. Выбираем Импорт контента → Ручное сканирование, выбираем путь, указываем ядро и жмём Начать сканирование. Плейлист появится, но с кучей дубликатов — RetroArch создаст пункт не только для файла .cue, но и для каждого .bin. Придётся подправить файл плейлиста вручную. Все плейлисты по умолчанию хранятся в playlists, открываем Sega - Mega-CD - Sega CD.lpl (по синтаксису — это JSON) и удаляем все пункты с .bin.
Далее остаётся навести красоту. Запускаем Главная → Онлайн-обновления → Обновление эскизов плейлистов. Выбираем каждый из плейлистов, RetroArch умеет искать частичные совпадения по именам rom'ов и скачает нужные картинки трёх видов: сканы обложек, скриншоты заставки и самой игры. Перезапускаем RetroArch, заходим в плейлист:
Сохранения
Запускаем и играем. Для выхода в меню нажимаем F1 или выбранное сочетание на геймпаде.
На смартфонах и планшетах по умолчанию будет включено отображение оверлея с виртуальным геймпадом и кнопкой выхода в меню. Оверлей можно дополнительно настроить или вовсе отключить.
В меню будет доступен хорошо знакомый по другим эмуляторам процесс выбора слота сохранения и собственно сохранения и загрузки. Если ошиблись и сохранились, забыв переключить слот, по последнее сохранение можно отменить.
Перенос сохранений предельно прост. Информация о слотах и сами сохранения лежат в каталогах states и saves соответственно. Копируем на другую платформу и запускаем. Разумеется, там должен присутствовать точно такой же образ игры, запущенный через то же ядро.
При наличии постоянного доступа к сети процесс можно автоматизировать. Вот такой скрипт позволяет автоматически выгружать сохранения в облако (Dropbox) при сохранении и скачивать их при запуске игры на другой платформе.
Подводные камни
Конечно, на самом деле всё не так гладко, как я описал. Больше всего проблем доставляет управление в сочетании с ТВ-приставкой:
- Геймпад 8bitDo при подключении через bluetooth через некоторое время бездействия (минут 10, кажется) уходит в спящий режим). После пробуждения RetroArch считает, что это какой-то другой геймпад, который надо привязать к порту второго игрока. На ТВ-приставке приходится выходить из RetroArch и заново подключать геймпад.
- Умные пульты, подключающиеся через USB-донгл, могут быть автоматически задействованы RetroArch'ом. Вроде бы всё в порядке, можно перемещаться по меню, но для игры нужно поменять привязку, назначив на Порт 1 геймпад, но если это будет ненастроенный геймпад (под который нет готового профиля), мы потеряем управление. В общем, проблема курицы и яйца, для решения которой придется править конфигурационные файлы.
- Многие ТВ-приставки используют слабое и/или кривое железо. С 2D-эмуляторами, т.е. с теми же 8- и 16-битными системами, никаких проблем не возникает, но, например, мой H96 Max на RK3318 не тянет эмуляцию PS1, что-то там не так с поддержкой 3D-ускорения.
#segamegadrive #retroarch #эмуляторы #megacd