Статья о сборке аркадного автомата на основе Raspberry Pi на примере ARCADIY Mini.
Мы уже писали о сборке игровой ретро-консоли на pikabu. Так как на pikabu нельзя редактировать посты - было решено написать актуальный гайд, который будет постоянно дополняться.
Для сборки игровой ретро-приставки нам понадобится:
В зависимости от конфигурации набор комплектующих обойдется вам от 5000р. до 15000р. Далее будет описан оптимальный вариант сборки по комплектующему и софту. Стоимость набора ~ 10000р.
Оптимальным выбором будет покупка Raspberry Pi 3 model B+. На данный момент Raspberry Pi 4 поддерживается с ограничениями и для нее пока нет качественных корпусов. Розничная цена на Raspberry Pi 3 model B+, за которую можно купить плату в России, около 3500р.
Сейчас существует всего 2 фирмы, производящие качественные дополнения к Raspberry Pi для ретро-гейминга:
В соотношении цена-качество значительно выигрывает продукция компании Retroflag. Посмотрим на набор корпусов:
И геймпадов:
Цены взяты с официального сайта
Далее нам нужен хороший блок питания от 2A и подходящую карту Micro SD class 10. Я бы порекомендовал к покупке блок питания набором Duracell DMAC19-RU или Duracell DMAC19W-RU на 2.4А и любую карту Samsung class 10 в местном магазине из-за гарантии.
Наш комплект, общей стоимостью 9850р.:
Наиболее распространены следующие прошивки:
RetroPie позволяет превратить ваш Raspberry Pi, ODroid C1/C2 или PС в ретро-игровой автомат. Он построен на основе Raspbian, EmulationStation, RetroArch и многих других проектов, чтобы вы могли играть в свои любимые аркадные игры, домашние консоли и классические компьютерные игры. Поддерживается огромное количество систем. Здесь будет установка из под Windows с описанием самых необходимых функций.
Скачиваем образ для вашей Raspberry Pi, распаковываем архив. Должен получиться файл с .img расширением. С помощью Etcher или Win32DiskImager устанавливаем образ на MicroSD карту.
На примере Etcher:
После установки в системе появится диск с названием 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
Полную информацию по разгону вашей платы можно получить на странице официальной документации
# For more options and information see
# http://rpf.io/configtxt
# Some settings may impact device functionality. See link above for details
# uncomment if you get no picture on HDMI for a default "safe" mode
#hdmi_safe=1
# uncomment this if your display has a black border of unused pixels visible
# and your display can output without overscan
disable_overscan=1
# uncomment the following to adjust overscan. Use positive numbers if console
# goes off screen, and negative if there is too much border
#overscan_left=16
#overscan_right=16
#overscan_top=16
#overscan_bottom=16
# uncomment to force a console size. By default it will be display's size minus
# overscan.
#framebuffer_width=1280
#framebuffer_height=720
# uncomment if hdmi display is not detected and composite is being output
#hdmi_force_hotplug=1
# uncomment to force a specific HDMI mode (this will force VGA)
#hdmi_group=1
#hdmi_mode=1
# uncomment to force a HDMI mode rather than DVI. This can make audio work in
# DMT (computer monitor) modes
#hdmi_drive=2
# uncomment to increase signal to HDMI, if you have interference, blanking, or
# no display
#config_hdmi_boost=4
# uncomment for composite PAL
#sdtv_mode=2
#uncomment to overclock the arm. 700 MHz is the default.
arm_freq=1300
# Uncomment some or all of these to enable the optional hardware interfaces
#dtparam=i2c_arm=on
#dtparam=i2s=on
#dtparam=spi=on
# Uncomment this to enable the lirc-rpi module
#dtoverlay=lirc-rpi
# Additional overlays and parameters are documented /boot/overlays/README
# Enable audio (loads snd_bcm2835)
dtparam=audio=on
gpu_mem_256=128
gpu_mem_512=256
gpu_mem_1024=256
overscan_scale=1
# Overclocking
total_mem=1024
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 на геймпаде.
Комбинация | Действие |
---|---|
Hotkey + Start | Выйти из игры |
Hotkey + Right Shoulder | Сохраниться |
Hotkey + Left Shoulder | Загрузиться |
Hotkey + Right | Следующий слот для сохранения |
Hotkey + Left | Предидущий слот для сохранения |
Hotkey + X | RGUI меню |
Hotkey + B | Сброс |
Сразу же подключаемся к WiFi. Находим в меню пункт:
Configuration WiFi
Import wifi credentials from /boot/wifikeyfile.txt
Существует три основных способа загрузки игр в консоль:
Для загрузки ромов через SFTP нужно получить SSH доступ. Читайте об этом ниже, в разделе системные настройки.
После получения SSH игры можно скидывать с вашего компьютера по домашней сети WiFi. Для этого нужно подключиться к приставке через PuTTY. Нас интересуют две папки:
Например, игры от Sega нужно кидать в папку home/pi/RetroPie/roms/megadrive
Samba это программный комплекс, который позволяет получить доступ к файловым системам по сети. Естественно, что и ваш PC, и Raspberry Pi должны быть подключены к одной и той же сети через Ethernet или WiFi, чтобы успешно передавать ваши файлы.
Просто введите \\RETROPIE
в адресной строке проводника Windows. Так же в качестве адреса можно использовать IP адрес вашей Raspberry Pi.
Так же существуют способы играть в игры с USB-накопителя, или в игры, расшаренные по сети.
Чтобы загрузить обложки и описания игр, выберите в Start меню:
Scraper Scrape now Start
Включаем 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 доступ, он понадобится позже. В окне 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 и вписываем нужные опции:
Убедитесь, что все параметры находятся в одной строке, иначе они нарушат последовательность загрузки. Вы можете добавить любой из них в конец файла cmdline.txt
Я использую такие настройки:
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty3 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet loglevel=3 consoleblank=0 plymouth.enable=0 logo.nologo vt.global_cursor_default=0
/boot/config.txt
Скрываем пункт 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
Заходим в оболочку [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 архитектурах.