Эмулятор ретро-игр на базе Raspberry Pi 3 B: пошаговая инструкция

Всем привет. В этом пошаговом гайде я постараюсь рассказать как с нуля заспавнить у себя дома бюджетный эмулятор на базе одноплатного компьютера семейства Raspberry Pi 3 B. Гайд основан на собственном опыте.

Немного предыстории. Детство моё прошло в 90е, начале 00х. Пределом мечтаний для любого ребёнка тогда была собственная консоль. Так получилось, что мечта эта у меня в детстве так и не исполнилась и с тех пор этот незакрытый гештальт преследует меня в виде постоянного желания купить какую-нибудь приставку (ретро или нет, не так уж и важно).

Эмулятор на базе Raspberry Pi Zero W ( автор: <a href="https://api.dtf.ru/v2.8/redirect?to=https%3A%2F%2Fwww.reddit.com%2Fuser%2Frmw156&postId=23187" rel="nofollow noopener" target="_blank">u/rmw156</a> )
Эмулятор на базе Raspberry Pi Zero W ( автор: u/rmw156 )

И вот однажды, просматривая бездонные закрома Ютуба, я наткнулся на видео, в котором человек показывал собственноручно сделанную портативную консоль в корпусе от GBA. Самая интересная часть была именно в том, что воспроизводить она могла игры и c других платформ. Ну, а как это водится на Ютубе, где одно видео, там и второе. Например, видео о создании настольного аркадного автомата на базе Raspberry Pi. Или миниатюрного карманного эмулятора в коробочке из-под мятных конфет.

Настольный аркадный автомат на базе Raspberry Pi 3 и RetroPie (автор Ryan Bates)
Настольный аркадный автомат на базе Raspberry Pi 3 и RetroPie (автор Ryan Bates)

В общем, идея заиметь эмулятор для ретро-игр меня захватила, и я кинулся в гугл, а потом и на ebay в поисках деталей. Очень скоро осознав, что денег у меня свободных на это особо нет, я решил, что меня устроит и бюджетный вариант. А именно плата + сборный корпус из оргстекла (с остальными комплектующими, конечно).

Небольшое отступление. Кроме Raspberry Pi, для постройки подобных систем так же используют платы на Android (которые, зачастую, бывают мощнее чем RPi, но и гораздо дороже). Есть так же бюджетный вариант – Orange Pi. Это китайский аналог, он послабее, но и стоит меньше. Пытаясь по частям подобрать стартовый набор для Orange Pi (Update: я искал kit с дисплеем под конкретную плату) я с удивлением обнаружил, что он выйдет дороже или близко к Raspberry. В итоге, я окончательно остановил свой выбор на платах Raspberry Pi.

Собсна, сабж. Плата Raspberry Pi 3 B ( https://www.raspberrypi.org/products/raspberry-pi-3-model-b/)
Собсна, сабж. Плата Raspberry Pi 3 B ( https://www.raspberrypi.org/products/raspberry-pi-3-model-b/)

Платы так же существуют двух видов. Одни из них собраны в Великобритании, другие в Китае. Cчитается, что китайские немного лучше в плане производительности, поэтому британская может стоить чуть дешевле. Если вам интересна эта тема, можете почитать тут: https://amperkot.ru/blog/raspberry-pi-china-vs-uk-comparsion/ или просто погуглить “element14 and RS Components Raspberry Pi 3 comparison”.

Итак. Для стартового набора нужны:

  • Сама плата (motherboard)
  • Небольшой бокс для неё (на ebay или ali можно искать как Raspberry Pi 3 box или case)
  • Набор миниатюрных радиаторов для платы (heatsinks)
  • Блок питания, не менеее 2.5A (power supply)
  • HDMI кабель
  • MicroSD (на ней будет лежать система, поэтому чем выше класс карточки, тем шустрее будет работать эмулятор)
  • По желанию: миниатюрный кулер (примерно 30х30 мм) для установки в бокс
  • Так же придётся раздобыть устройство для подключения MicroSD к ПК

По началу я хотел сделать систему с маленьким экраном, но не учёл герцовку дисплея (привет, невнимательность), который заказал. Дисплей оказался непригодным для игр (хоть и рабочим). Поэтому я решил, что подключу к “малине” свой старый 19” монитор.

Такой вот "Starter Kit" я приобрёл. Цена вопроса - 56$.
Такой вот "Starter Kit" я приобрёл. Цена вопроса - 56$.

Если вам не хочется искать все детали по отдельности, вы всегда можете ввести в строке поиска на ebay или aliexpress что-то вроде “Raspberry Pi 3 Starter Kit” или просто “Raspberry Pi 3 Kit”. Часто в эти наборы пихают ненужные вещи, но иногда попадаются вполне приличные предложения. Я довольно долго пытался собрать всё по частям, считая что так выйдет дешевле, но в итоге приобрёл вот такой набор (56$). После, я приобрел HDMI-VGA адаптер (5$), чтобы подключить плату к своему монитору. Пара геймпадов-реплик для SNES обошлась мне в еще 5$ и дешёвый геймпад-реплика под dualshock в ещё одни 5$.

Допустим, все комплектующие прибыли к вам в целости и сохранности. Что делать дальше?

Важно: я использую плату версии Raspberry Pi 3 B в паре с VGA монитором.

Шаг 1: Собрать шайтан-коробку. Тут ничего сложного. Бокс их оргстекла легко собирается, к плате клеятся радиаторы, затем плата ставится в бокс и фиксируется винтиками (идут в комплекте). Если есть кулер, не забудьте прикрутить и его, прежде чем закрывать бокс. Далее подключаются провода: HDMI кабель, адаптер, наушники и геймпад. HDMI кабель подключаете по своему вкусу. Как я уже писал выше, я через адаптер подключил его к 19” монитору. Всё. Пока питание не включаете.

Так выглядит моя "коробочка" в собранном виде
Так выглядит моя "коробочка" в собранном виде

Шаг 2: Скачиваете отсюда https://retropie.org.uk/download/ (правая кнопка) образ. Извлеките полученный файл с помощью программы 7-Zip в любую удобную для вас папку. Должен появиться файл образа с расширением ”.img”.

Шаг 3: Подключите вашу MicroSD карточку к ПК c помощью кард ридера. Скачиваете вот эту программу: https://sourceforge.net/projects/win32diskimager/ и устанавливаете.

Шаг 4: В программе вы просто выбираете устройство, на которое хотите записать образ (в нашем случае, это будет MicroSD карточка) и путь до файла образа. Жмите “Write” и дождитесь завершения процесса.

Важно: если вы прежде использовали карточку в подобных целях, следует отформатировать её перед записью нового образа. Для этого может подойти программа SDFormatter. Она бесплатная и простая в использовании.

Шаг 5: Чтобы использовать VGA монитор, придётся сделать следующее. На самой карточке вам нужно найти файл “config.txt” (для нормального редактирования лучше использовать Notepad++). Найдите строку “ #hdmi_force_hotplug=1” и удалите значок “#”. Далее, найдите строку “ #hdmi_group=1”. Удалите “#” и поменяйте 1 на 2. В следующей строке “ #hdmi_mode=1” так же удалите “#” и поменяйте 1 на 9 (разные цифры соответствуют разным разрешениям, я использую разрешение 800x600). После этого найдите строку “ #hdmi_drive=2” и удалите “#”. Щёлкните на иконку дискеты и закройте программу. Готово.

Шаг 6: Аккуратно извлеките карточку из ПК (лучше через действие в контекстном меню Проводника или через иконку в трее) и установите её на ваш Raspberry Pi 3 (на тыльной стороне находится небольшой разъём). Теперь корпус можно закрыть и смело включать ваш новый эмулятор. Сначала произойдёт первая установка, а потом RetroPie предложит вам настроить ваш контроллер. Просто следуйте инструкциям на экране.

Основной экран <b>RetroPie</b>
Основной экран RetroPie

Ну вот, с установкой вроде бы разобрались. Но как быть с играми? Я не буду постить здесь ссылки на ресурсы с ROMами, по понятным причинам. Но, допустим, у вас есть ROM файл для PSX (PS One). Как же его запустить? Как перенести ROM на эмулятор?

Способ 1: через WiFi

Вам понадобится любая клавиатура (Bluetooth или USB). Подключите её к вашему Raspberry Pi перед запуском. На начальном экране эмулятора выбираем RetroPie. Выбираем WiFi -> Connect to WiFi network -> выбираете вашу сеть и вводите пароль. Далее возвращаетесь в меню RetroPie и жмёте на Show IP. Запишите куда-нибудь показываемый ip адрес.

Далее – открываете Проводник на вашем ПК, который подключён к той же WiFi сети. Щёлкаете на Quick Access (Быстрый доступ). В верхнем поле пишете: \\RETROPIE и жмёте Enter. Вместо этого можно так же написать IP, который вы записали ранее.

Вас интересует папка “roms”. Открыв её, вы увидите папки, в которых хранятся ROMы для разных консолей. Раз мы решили запустить игру для PSX, то вам нужна папка именно с этим именем. Кидайте туда все содержимое архива с ROMом игры. Важный момент. Если бы это был SNES или GBA ROM, на этом можно было бы закончить, но, чтобы запустить игру для PlayStation One, нужна еще одна вещь. Файл SCPH1001.BIN. Это файл BIOSа первой PlayStation, найти его можно через гугл. Он так же закидывается на MicroSD карточку в папку bios (тем же путём, что и ROMы). Закройте Проводник, перезапустите RetroPie, нажав кнопку Start в меню и выбрав Shutdown -> Restart. Готово.

+ Эмулятор так же можно подключить через обычный интернет кабель, благо разъём для него есть на плате.

Способ 2: через USB флешку

В меню RetroPie выбираете RetroPie Setup -> Configuration Tools -> USB ROM Service -> Enable USB ROM Service. Перезагружаете RetroPie чтобы изменения вступили в силу.

Дальше вам нужна чистая, отформатированная флешка (FAT32). После форматирования зайдите на флешку и создайте пустую папку под именем “retropie-mount”. Затем вставляете флешку в Raspberry Pi, и перезагружаете его. Это скопирует все системные папки с карточки на флешку. Далее вставляете флешку в ПК, получаете доступ к тому же набору папок, что и через WiFi и проделываете всё тоже самое. Единственный минус данного способа, это то, что просто так удалить файлы с карточки не получится. Чтобы почистить её, всё равно придётся искать интернет. Так что данный способ сгодится на время, когда у вас нет доступа к сети (например, в командировке или на даче).

Ну вот собственно и всё. Игру можно запускать и радоваться :)

Пара интересных моментов. В RetroPie есть способ сделать превью и описание для игр. Для этого он должен быть подключён к сети. В основном меню жмёте на Start и выбираете Scraper -> Scrape Now -> Start. Обложки и описание игр по умолчанию скачиваются с ресурса TheGamesDB. Не все игры могут быть найдены там, поэтому кое-какие обложки могут не появиться.

Мой бюджетный сетап :)
Мой бюджетный сетап :)

Так же можно кастомизировать загрузочный экран и уйму других штук, если есть желание покопаться в настройках RetroPie и на гугле. Вообще, RetroPie это довольно гибкая система и эмуляция не ограничивается предустановленным набором. Всё зависит от производительности системы, на который эмулятор установлен. К примеру, Raspberry Pi 3 B спокойно тянет игры для PSX, но всё что выше запустить на нём довольно трудно. Сказывается недостаток мощности. Гайды по добавлению дополнительных систем есть в интернете, в большом количестве.

Ниже приведу несколько полезных ссылок:

https://retropie.org.uk – официальный сайт разработчиков эмулятора

https://www.raspberrypi.org – официальный сайт производителя плат

https://www.youtube.com/channel/UC_0CVCfC_3iuHqmyClu59Uw - супер полезный канал, на котором я подчерпнул большую часть информации. Очень советую посмотреть.

Ну, вроде всё. Спасибо за внимание и удачной игры!

6868
60 комментариев

Малинка+retroarch - гениальное изобретение. Собрал себе вот такую штуку: оказалось, что это лучший способ играть в metal slug, хотя опыта с аркадным стиком имел крайне мало. Жанры Run'n'Gun и Shoot'em Up - вот оно прям создано под стик. Минусы тоже есть - платформеры совсем тяжело даются, приходится подключать геймпад, и эта дура, в добавок, слаботранспортабельна.

6
Ответить

Ого, и сколько времени заняла сборка?

Ответить

Купил недавно SNES Mini за 2499 в днс. Поставил Retroarch, загрузил игр (теперь можно и с флешки игры запускать). Учитывая стоимость, компактность и отличный внешний вид приставки (в комплекте, кстати, HDMI кабель идёт) — отличная альтернатива для тех, кто не хочет возиться с DIY-штуками. Из плюсов ещё — очень симпатичное меню от Nintendo, которое после прошивки поддерживает и сторонние игры с описанием и обложками.
Из минусов — довольно слабая начинка. Игры от PS1 тянет, но не все.

15
Ответить

Интересно. Ну да, я всё же, наверное, этим сам увлёкся из за DIY аспекта.

1
Ответить

А я вот жду миниатюрный кубик:)

1
Ответить

Однозначно в избранное, спасибо

9
Ответить

Рад, что понравилось)

2
Ответить