День добрый, пикабу. Сегодня мы собираем ретро-комбаин для игры в вашего любимого Mario и не только.
Нам понадобится:
* Raspberry Pi 3b (или 3b+)
* Карта памяти micro SD (желательно class 10, не меньше 8Гб)
* Корпус NESPi (можно и более дешевый и вообще без него)
* От одного до четырех геймпадов. «Ретроподобные» из дешевых, включая те, что на скрине, лучше не брать — им свойственно иметь не играбельную крестовину (лучше раскошелиться на что-то вроде 8bitdo)
Закупаемся:
В сумме ~5000р. Немногим выше стоимости NES mini, но куда более круто. Получаем посылки, собираем:
Теперь надо установить ПО.
Есть несколько вариантов:
* RetroPie — самый «навороченный», с наибольшим количеством настроек, поддерживаемых тем, систем и портов. Так же на RetroPie можно накатить Attract-Mode (вместо EmulationStation)
* Recalbox — проще, чем RetroPie. Установил, закинул ROMы, играешь. С недавних пор поддерживает русский язык оболочки.
* Lakka — Использует RetroArch фронтенд без изменений (RetroPie и Recalbox используют EmulationStation, а оболочку RetroArch можно увидеть в меню из игры). Самый простой вариант без лишних надстроек (по умолчанию включен драйвер меню PlayStation 3 XrossMediaBar — XMB).
Мы будем устанавливать RetroPie (как обещал в одном из предидущих постов базовые настройки будем делать вообще без использования дополнительно клавиатуры и терминала).
Скачиваем RetroPie, распаковываем архив (должен получиться .img файл). Вставляем microSD в ПК и устанавливаем на нее с помощью Win32 Disk Imager
После установки в системе появится два диска (отказываемся от форматирования).
На доступный из под Windows кидаем файл wifikeyfile.txt со следующим содержанием:
ssid="NETWORK_NAME"
psk="NETWORK_PASSWORD"
Это настройки вашего WiFi (ssid — название сети, psk — пароль).
Открываем файл config.txt и убираем # перед текстом в 10 строке. Должно получиться так:
disable_overscan=1
Эта настройка убирает черную рамку в интерфейсе EmulationStation.
С локальными установками все. microSD вставляем в приставку, включаем. При первой же загрузке будет предложено настроить джойстик.
Настраиваем, сразу же подключаемся к WiFi:
CONFIG > WIFI
Import wifi credentials from /boot/wifikeyfile.txt
Перезагружаемся. Уже можно сменить оформление на что-то более вменяемое.
CONFIGS > ES THEMES
Выбираем понравившуюся тему (у меня snes-mini)
Выходим на главный экран, жмем Start
[MAIN MENU] UI SETTINGS > THEME SET > Theme
Отлично. Осталось настроить RetroArch (далее скрины с ПК, но на малине все идентично):
CONFIG > RETROARCH
Ставим PlayStation 3 XrossMediaBar меню:
[RETROARCH] SETTINGS > DRIVER
Menu Driver > xmb
Можно сразу сохранить настройки ([RETROARCH] CONFIGURATION > Save Current Configuration) и перезайти в настройки RetroArch
Далее все по аналогии:
Настраиваем графику для всех платформ:
[RETROARCH] SETTINGS > VIDEO
Aspect Ratio - 4:3 («растягиваем экран» для всех эмуляторов до 4:3)
Bilinear Filtering - Off (превращаем мутную дичь в кошерные квадратные пиксели)
Настраиваем горячии клавиши для сохранения\загрузки игры, перемотки, ускорения\замедления и т.д.
[RETROARCH] SETTINGS > INPUT
Input Hotkey Binds
Чтобы можно было отматывать назад игровой процесс — надо включить Rewind Enable:
[RETROARCH] SETTINGS > Frame Trottle > Rewind
Rewind Enable - On
Если ваш монитор\телевизор 16:9 и вас смущают черные рамки - их можно перекрыть оверлеем:
[RETROARCH] SETTINGS > Onscreen Display > Onscreen Overlay > Overlay Preset (выбираем понравившийся, или рисуем свой)
Overlay Opacity - 1.00 (убираем прозрачность оверлея)
Onscreen Notification > Notification X Position - 0.200 (смещаем вправо, чтобы оповещения не перекрывались рамкой)
И мое любимое. Включаем ачивки:
Регистрируемся на сайте Retroachievements и вводим логин\пароль в меню
[RETROARCH] SETTINGS > Achivements
Enable Achivements - On
Hardcore Mode - On (если включено - не будут работать перемотки, сохранения и пр., но к ачивкам будет добавлена метка хардкорной)
Полученные ачивки можно посмотреть в меню игры, или на сайте (+ ознакомиться со списком поддерживаемых платформ и игр)
Основные настройки сделаны, сохраняем, выходим:
[RETROARCH] CONFIGURATION > Save Current Configuration
Готово.
Игры можно закидывать с любой флешки, или напрямую по сети WiFi. Для этого включаем SSH и перезагружаем малину:
CONFIG > RASPI-CONFIG
(5) Interfacing options > SSH > Enable
Садимся за ПК, качаем WinSCP, запускаем и подключаемся к raspberry:
Host name: retropie (можно подключаться по IP)
User name: pi (по умолчанию)
Password: raspberry (по умолчанию)
Сейчас нас интересуют две директории:
home/pi/RetroPie/roms — сюда кидаем ROMы (поддерживаются папки, большинством эмуляторов поддерживаются архивы)
opt/RetroPie/configs — здесь хранятся все настройки
Например, все настройки выше можно было сделаать правками в файле:
/opt/retropie/configs/all/retroarch.cfg (Либо через CONFIGURATION EDITOR :)
А игры для "dendy" нужно кидать в папку:
home/pi/RetroPie/roms/nes
Закидываем игры в соответствующую папку, перезагружаем raspberry.
Еще можно подгрузить обложки и описания игр. Жмем Start в основном меню:
[MAIN MENU] SCRAPER > SCRAPE NOW (выставляем нужные настройки сканирования) > START
Ждем окончания сканирования, наслаждаемся игрой!
Для тех, кому и этого мало, мы сделаем еще пару настроек:
Отключаем runcommand меню (плашка настроек при запуске игры). Находим файл:
/opt/retropie/configs/all/runcommand.cfg
Исправляем пункт disable_menu на:
disable_menu = "1"
Поставим бодрое видео на загрузку приставки. Для этого кидаем .mp4 по пути:
/home/pi/RetroPie/splashscreens
Выбираем его:
CONFIG > 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
Теперь загрузка EmulationStation начнется только после того, как наше видео закончится.
Загрузим пару скринсейверов на простой приставки.
Создаем папку и кидаем в нее .mp4 видео:
/home/pi/RetroPie/screensavers
Открываем файл:
/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:
[MAIN MENU] UI SETTINGS > SCREENSAVER SETTINGS > SCREENSAVER BEHAVIOR - RANDOM VIDEO
В зависимости от версии RetroPie правка файла gamelist.xml в папке retropie может не сработать — тогда добавьте пути в геймлист любого из эмуляторов.
По умолчанию проигрываются видео-превью игр, потому приходится так «изголяться» (на превью всех игр никакой памяти не хватит).
Для следующих настроек нужен терминал. Получаем root.
Жмем Ctrl+P в окне WinSCP (либо просто открываем Pitty). Он коннектится и запрашивает пароль:
Набираем raspberry (набора не видно), жмем Enter (Enter нажимаем после каждой команды).
Набираем:
sudo nano /etc/ssh/sshd_config
Листаем стрелками до строки:
PermitRootLogin without-password
Вторая часть может отличаться, а строка вообще быть закомментирована.
Меняем на:
PermitRootLogin yes
Нажимаем Ctrl+x, подтверждаем сохранение (жмем Y и Enter)
Набираем:
sudo passwd root
И дважды вводим пароль для root доступа.
После ввода всех команд окно будет выглядеть примерно так:
Перезагружаем малину.
Ура, теперь мы можем отключить непонятные надписи при загрузке приставки:
Заходим под root доступом через WinSCP:
/boot/cmdline.txt
Меняем console=tty1 на console=tty3 (перенаправляем сообщения). Добавляем loglevel=3 (скрываем не критические). В конец добавляем logo.nologo, чтобы скрыть логотип Raspberry Pi.
Содержимое файла:
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty3 root=PARTUUID=f2d3cb4f-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait loglevel=3 consoleblank=0 plymouth.enable=0 logo.nologo
Еще можно скрыть пункт CONFIG в меню. Комментируем блок retropie в файле:
/etc/emulationstation/es_systems.cfg
Раз уж на то пошло, не забудьте включить UI MODE - Kiosk в основном меню)
Снятый на шакала видос прилагается:
Ну и напоследок:
* Залил на DropBox несколько оверлеев и шаблонов (чтобы можно было отрисовать свои)
* Ультимативный гайд по RetroPie на английском. Там же лежат конфиги на большинство известных геймпадов.
* Сначала берутся настройки из папок по пути /opt/retropie/configs/all потом из /opt/retropie/configs (т.е. если настройки джойстика на конкретной платформе не устраивают — кидаем файл с новыми по второму пути)
* BIOSы для ознакомления там же на DropBox (загружаем сюда: /home/pi/RetroPie/BIOS) — не все игры идут с универсальными.
* Вместо того, чтобы собирать кучу ROMов с разных сайтов, как делал я — проще скачать готовый образ сами знаете откуда и вытянуть оттуда ROMы (вместе с геймлистами и обложками) через Linux Reader (или вообще залить готовый образ — обновиться можно через меню CONFIG)
* Аркадные игры желательно качать под определенную версию оболочки. Если эмулировать будем с помощью lr-mame 3003 — игры качаем под MAME 0.78
На этом можно и закончить (данного гайда достаточно для понимания «что где лежит» и «что за что отвечает»). В следующий раз мы разберемся с XBOXDRV и установим Street Of Rage Remake на вашу приставку. Спасибо за ваше время.