Ретро-консоль на Raspberry Pi

Статья о сборке аркадного автомата на основе Raspberry Pi на примере ARCADIY Mini.

Мы уже писали о сборке игровой ретро-консоли на pikabu. Так как на pikabu нельзя редактировать посты - было решено написать актуальный гайд, который будет постоянно дополняться.

  1. Информация
  2. Выбор комплектующих
  3. Установка программного обеспечения

Информация

Для сборки игровой ретро-приставки нам понадобится:

  1. Raspberry Pi 2 и выше.
  2. Карта памяти MicroSD class 10 не меньше 8Гб.
  3. Блок питания 2А и выше.
  4. Кабель micro USB - USB если не идет в комплекте с блоком питания.
  5. Кабель HDMI для подключения консоли к телевизору.
  6. От одного до четырех геймпадов.
  7. Корпус для Raspberry Pi при необходимости.

В зависимости от конфигурации набор комплектующих обойдется вам от 5000р. до 15000р. Далее будет описан оптимальный вариант сборки по комплектующему и софту. Стоимость набора ~ 10000р.

Выбор комплектующих

Оптимальным выбором будет покупка Raspberry Pi 3 model B+. На данный момент Raspberry Pi 4 поддерживается с ограничениями и для нее пока нет качественных корпусов. Розничная цена на Raspberry Pi 3 model B+, за которую можно купить плату в России, около 3500р.

Сейчас существует всего 2 фирмы, производящие качественные дополнения к Raspberry Pi для ретро-гейминга:

  1. Retroflag - производство аутентичных корпусов для Raspberry Pi и качественных USB-геймпадов.
  2. 8BitDo - производство беспроводных геймпадов высокого качества.

В соотношении цена-качество значительно выигрывает продукция компании Retroflag. Посмотрим на набор корпусов:

  • NESPi CASE PLUS

    Безопасное выключение и сброс
    Функциональные POWER и RESET кнопки
    $22.93

  • SUPERPi CASE-U

    Безопасное выключение и сброс
    Функциональные POWER и RESET кнопки
    $19.99

  • SUPERPi CASE-J

    Безопасное выключение и сброс
    Функциональные POWER и RESET кнопки
    $14.99

  • MEGAPi CASE-M

    Безопасное выключение и сброс
    Функциональные POWER и RESET кнопки
    $20.37

И геймпадов:

  • Classic USB Controller-U

    Поддержка Turbo функций
    Совместимость с Raspberry Pi, Windows, Switch
    $13.59

  • Classic USB Controller-J

    Поддержка Turbo функций
    Совместимость с Raspberry Pi, Windows, Switch
    $14.99

  • Classic USB Controller-M

    Поддержка Turbo функций
    Совместимость с Raspberry Pi, Windows, Switch
    $14.95

Цены взяты с официального сайта

Далее нам нужен хороший блок питания от 2A и подходящую карту Micro SD class 10. Я бы порекомендовал к покупке блок питания набором Duracell DMAC19-RU или Duracell DMAC19W-RU на 2.4А и любую карту Samsung class 10 в местном магазине из-за гарантии.

Наш комплект, общей стоимостью 9850р.:

  1. Raspberry Pi 3 model B+ 3500р. на Aliexpress
  2. Корпус MEGAPi CASE-M 2000р. на Aliexpress
  3. Два геймпада Classic USB Controller-M по 1200р. на Aliexpress
  4. Кабель Ugreen HDMI Cable 4K 350р. на Aliexpress
  5. Блок питания Duracell DMAC19-RU 1050р. в DNS
  6. Карта памяти Samsung EVO microSDHC 32 ГБ 550р. в DNS

Утановка программного обеспечения

Наиболее распространены следующие прошивки:

  1. RetroPie - одновременно самая навороченная, но и сложная в настройке прошивка. Поддерживает наибольшее количество тем и портов. Например, только на RetroPie можно поставить Street Of Rage Remake. Кроме того, прошивка поддерживает оболочку Attract-Mode.
  2. Recalbox - более удобная, но менее функциональная оболочка. Recalbox удобнее обновлять, есть поддержка русского языка в меню.
  3. Lakka - Использует оболочку RetroArch с драйвером XMB в меню практически без изменений. RetroPie и Recalbox по умолчанию используют EmulationStation. На данный момент единственная оболочка, которая полностью поддерживает Raspberry Pi 4.

Установка RetroPie

RetroPie позволяет превратить ваш Raspberry Pi, ODroid C1/C2 или в ретро-игровой автомат. Он построен на основе Raspbian, EmulationStation, RetroArch и многих других проектов, чтобы вы могли играть в свои любимые аркадные игры, домашние консоли и классические компьютерные игры. Поддерживается огромное количество систем. Здесь будет установка из под Windows с описанием самых необходимых функций.

Установка

Скачиваем образ для вашей Raspberry Pi, распаковываем архив. Должен получиться файл с .img расширением. С помощью Etcher или Win32DiskImager устанавливаем образ на MicroSD карту.

На примере Etcher:

  1. Нажать на Select image. Выбрать .img файл из архива.
  2. Нажать на Select target. Выбрать карту памяти из списка.
  3. Нажать на Flash!. Дождаться окончания установки.

После установки в системе появится диск с названием boot:

Базовые настройки

Теперь мы можем сделать кое-какие настройки. Создаем файл с названием wifikeyfile.txt в корне диска boot со следующим содержанием:

ssid="NETWORK_NAME"
psk="NETWORK_PASSWORD"

Где ssid - название вашей сети WiFi, а psk - пароль от нее. Теперь при включении консоли можно будет подключиться к WiFi без использования дополнительной клавиатуры клавиатуры.

Далее в корне диска boot находим файл с названием config.txt и меняем настройки.

Удаляем знак # в десятой строке, чтобы убрать черные полосы в интерфейсе. Должно получиться так:

disable_overscan=1

В конце можно дописывать настройки для разгона. Это значения для Raspberry Pi 3, с которых относительно безопасно начинать:

total_mem=1024
arm_freq=1300
gpu_freq=500
core_freq=500
sdram_freq=500
sdram_schmoo=0x02000020
over_voltage=2
over_voltage_sdram=2

Полную информацию по разгону вашей платы можно получить на странице официальной документации

Сохраняем. Достаем карту MicroSD и вставляем в консоль & MicroSD слот Raspberry Pi. Включаем.

Настройка геймпадов

Сразу после загрузки система предложит настроить геймпады. Делаем это.

Полную информацию о настройке геймпадов можно получить на странице официальной документации

Кнопка Hotkey с одновременным нажатием других кнопок активирует дополнительные функции, такие как сохранение, загрузка и выход из игры. В качестве Hotkey предлагается выбрать кнопку Select на геймпаде.

WiFi

Сразу же подключаемся к WiFi. Находим в меню пункт:

Configuration WiFi
Import wifi credentials from /boot/wifikeyfile.txt

Устанавливаем игры

Существует три основных способа загрузки игр в консоль:

USB-накопитель
  1. Отформатируйте USB-накопитель в FAT32 или exFAT
  2. Создайте папку с названием retropie на вашем USB-накопителе
  3. Подключите его к системе RetroPie и дождитесь окончания мигания курсора
  4. Вытащите флешку и подключите ее к компьютеру
  5. В папке retropie/roms выберите соответствующую платформу и загрузите игры
  6. Подключите флешку обратно к системе RetroPie
  7. Дождитесь окончания мигания курсора
  8. Теперь можно достать флешку
  9. Перезагрузите EmulationStation, выбрав Restart EmulationStation или Restart System в меню Start, чтобы обновить список игр.
SFTP

Для загрузки ромов через SFTP нужно получить SSH доступ. Читайте об этом ниже, в разделе системные настройки.

После получения SSH игры можно скидывать с вашего компьютера по домашней сети WiFi. Для этого нужно подключиться к приставке через PuTTY. Нас интересуют две папки:

  • home/pi/RetroPie/roms Сюда кидаем ROMы. Оболочка видит папки. Большинство эмуляторов поддерживает архивы.
  • opt/RetroPie/configs Здесь хранятся все настройки.

Например, игры от Sega нужно кидать в папку home/pi/RetroPie/roms/megadrive

Samba-Shares

Samba это программный комплекс, который позволяет получить доступ к файловым системам по сети. Естественно, что и ваш PC, и Raspberry Pi должны быть подключены к одной и той же сети через Ethernet или WiFi, чтобы успешно передавать ваши файлы.

Просто введите \\RETROPIE в адресной строке проводника Windows. Так же в качестве адреса можно использовать IP адрес вашей Raspberry Pi.

Системные настройки

Получаем доступ по SSH

Включаем SSH, чтобы можно было подключиться к консоли с домашнего компьютера.

Configuration Raspi-Config
[5] Intergacing Options SSH Enable

Перезагружаем приставку.

Уже можно выбрать тему оформления посимпатичнее: Configuration ES Themes Устанавливаем понравившуюся тему. У меня это nes-mini

Теперь ее нужно включить. Выходим на главный экран, жмем Start [MAIN MENU] UI SETTINGS THEME SET Theme

Теперь подключимся к консоли с домашнего компьютера. Качаем WinSCP, запускаем и подключаемся.

Hostname: retropie
Username: pi
Password: raspberry

Получаем root-доступ

Сразу же получим root доступ, он понадобится позже. В окне WinSCP нажимаем Ctrl+P [Commands - Open in PuTTY]

В открывшемся окне пишем raspberry (набора не видно), жмем Enter.

Пишем команду sudo nano /etc/ssh/sshd_config

Листаем до строки [текст справа может отличаться]:

#PermitRootLogin without-password

И меняем ее содержимое на:

PermitRootLogin yes

Нажимаем Ctrl+X, подтверждаем сохранение: нажимаем Y и Enter.

Набираем sudo passwd root и дважды вводим новый пароль для root доступа. Доступ получен, окно будет выглядеть примерно так:

Пишем sudo reboot и ждем перезагрузки приставки

Настраиваем

Подключаемся под SSH в обычном режиме.

Отключаем runcommand меню. Это меню появляется перед запуском игры и позволяет сделать некоторые дополнительные настройки, вроде запуска с другим ядром. Находим файл /opt/retropie/configs/all/runcommand.cfg

Меняем пункт disable_menu на:

disable_menu = "1"

Вместо runcommand меню можно показывать изображения. Лично мне нравится этот набор.

Ставим видео на загрузку приставки. Для этого кидаем файл в формате .mp4 по пути /home/pi/RetroPie/splashscreens

Выбираем его через интерфейс EmulationStation:

Configuration Splash screens
(1) Choose splashscreen (2) Own/Extra splashscreens (from /home/pi/RetroPie/splashscreens)

Чтобы загрузка приставки началась только по окончанию видео, правим файл /opt/retropie/configs/all/autostart.sh так:

while pgrep omxplayer >/dev/null; do sleep 1; done
emulationstation #auto

Загружаем видеоролики на простой приставки. Создаем папку /home/pi/RetroPie/screensavers и кидаем в нее .mp4 файл.

Открываем файл /opt/retropie/configs/all/emulationstation/gamelists/retropie/gamelist.xml и сразу после тега <gameList> Добавляем:

<game>
<path />
<video>/home/pi/RetroPie/screensavers/screensaver_1.mp4</video>
<path />
<video>/home/pi/RetroPie/screensavers/screensaver_2.mp4</video>
</game>

Чтобы включить заставку с перебором видео, в Start меню выставляем:

UI settings Screensaver settings Screensaver behavior Random-video

В зависимости от версии RetroPie правка gamelist.xml может не сработать. Тогда просто добавьте пути к видеофайлам в геймлист любого из эмуляторов. По умолчанию эта функция для проигрывания видео-превью игр на заставке.

Отключаем сообшения при загрузке приставки. Открываем файл /boot/cmdline.txt и вписываем нужные опции:

  • logo.nologo: Отключает изображение малины при загрузке
  • quiet: Скрывает сообщения
  • console=tty3: Перенаправляет сообщения загрузки в третью консоль
  • loglevel=3: Отключает не критические сообщения журнала ядра
  • vt.global_cursor_default=0: скрывает мигающий курсор
  • plymouth.enable=0: отключает текст загрузки plymouth

Убедитесь, что все параметры находятся в одной строке, иначе они нарушат последовательность загрузки. Вы можете добавить любой из них в конец файла cmdline.txt

Я использую такие настройки:

/boot/config.txt

  • disable_splash=1: Скрыть rainbow screen при загрузке
  • avoid_warnings=1: Отключает оповещения о перегреве, или андервальтаже. Не рекомендуется

Скрываем пункт Configuration в меню, если боимся в будущем что-то сломать. Перед этим желательно настроить RetroArch. Для этого нужно закомментировать блок retropie в файле /etc/emulationstation/es_systems.cfg так:

<!--
<system>
    <name>retropie</name>
    <fullname>RetroPie</fullname>
    <path>/home/pi/retropie/retropiemenu</path>
    <extension>.rp .Sh</extension>
    <platform />
    <theme>retropie</theme>
</system>
-->

Отключаем дополнительные настройки в основном меню [MAIN MENU] UI Mode Kiosk ON

Настраиваем RetroArch

Заходим в оболочку [MAIN MENU] Configuration RetroArch

Сразу выбираем другой драйвер меню xmb, или ozone.

Settings Drivers Menu ozone

Сразу же сохраняем настройки Main Menu Configuration File Save Current Configuration и перезагружаем RetroArch, чтобы увидеть новое меню.

Сделаем одинаковый размер экрана для всех платформ
Settings Video Scaling Aspect Ratio 4:3

И отключим размытие
Settings Video Bilinear Filtering OFF

В дополнение к основным настраиваем дополнительные горячие клавиши
Settings Input Hotkey Binds

Чтобы можно было отматывать назад игровой процесс, включите Rewind
Settings Frame Trottle Rewind ON

Если у вас широкоформатный монитор - можно закрыть черные полосы по краям экрана оверлеем
Settings Onscreen Display Onscreen Overlay Overlay Preset

Дополнительно убираем прозрачность оверлея Overlay Opacity 1.00 и сдвигаем позицию оповещений, чтобы они не перекрывались оверлеем Onscreen Notification Notification X Position 0.200

Включаем ачивки Settings Achievments ON

В настройках необходимо ввести логин и пароль с сайта retroachievements.org

Так же можно добавить шейдеры к изображению. Наиболее качественную картинку, при хорошей производительности, дает ZFAST CRT

Скачиваем из темы на официальном форме RetroPie и копируем в папку шейдеров RetroArch. Во время игры вызываем меню RetroArch и выбираем понравившийся шейдер в настройках из списка. Проверьте, чтобы стоял видеодрайвер gl, так как vulkan и некоторые другие не поддерживают .glsl шейдеры. Но лично мне больше нравится чистое пиксельное изображение без фильтров)

Сохраните настройки и наслаждайтесь игрой!

Вы можете не только собрать аркадный игровой автомат своими руками, но и купить готовое решение у нас. Мы занимаемся сборкой и продажей аркадных автоматов на Raspberry Pi, Pandora Box и PC архитектурах.

Также читайте

    Дмитрий Якушев

    Дизайн аркадных кабинетов и UX

    Blog Comments powered by Disqus.