Ретро консоль на Raspberry Pi
Привет, пикабу) Зачесалось в одном месте сделать себе ретро консоль для игр nes, snes, sega etc., а заодно и пощупать raspberry pi(тоже очень давно хотелось). Заказал все что надо, три недели ожидания и наконец то все пришло:
1. Два геймпада GameSir G4s
2. Raspberry Pi 3 b+ Kit, который включает в себя:
-сам компьютер
-простой акриловый корпус
-3 радиатора охлаждения
-кулер 5v
-карта micro sd на 32 гига
-usb кардридер
-hdmi кабель
-блок питания 5v 3A
Сборка.
Ничего сложного из себя не представляет. Собирается легко как конструктор.
Клеим радиаторы. На них что то вроде двухстороннего скотча. Прикручиваем плату к днищу, кулер к крышке и собираем весь корпус. Подключаем вентилятор охлаждения к 4 пину(+5v) и к 6 пину(Ground). На правой нижней фотографии видно как он подключен.
На всякий случай вот выводы GPIO:
Установка ОС и Запуск.
Для начала нужно установить на микро сд карту OS. Сначала я выбрал RecalBox. Но при запуске на мониторе был темный экран и значок молнии в правом верхнем углу. При этом на самой плате мигал индикатор питания(pwr), а индикатор обращения к сд карте(act) не подавал никаких признаков. Сперва грешил на комплектный блок питания, но попробовав другие все было тоже самое. После некоторых поисков в интернете на каком то форуме нашел причину: recalbox банально не поддерживает пока что pi 3 model b+. Поэтому решил ставить RetroPie
Устанавливал через balenaEtcher. Все просто, вставляем карту памяти в кардридер, запускаем программу, выбираем наш образ(предварительно распакованный), нашу карту и жмем Flash!. Далее ждем. После завершения процесса карта будет не доступна в системе, вытаскиваем ее и вставляем обратно. Теперь доступна. Т.к. retropie основан на rasbian(а это линукс) и файловая система ext4(вроде бы), то в винде не будет видна основная часть нашей карты. В корень карты нужно закинуть файл wifikeyfile.txt с таким вот содержанием:
ssid="имя вашей WiFi сети"
psk="пароль от нее"
Это что бы сразу подключиться к WiFi сети без клавиатуры и подключится к "малинке" по SSH.
Извлекаем карту памяти из ПК и вставляем ее в Pi. Карта памяти вставляется без щелчка, просто до упора. Никаких защелок там нет. Вытаскивается так же. Подключаем hdmi кабель(у меня монитор vga 19", поэтому я использую переходник hdmi-vga), 3,5 мм аудио джек, контроллеры и питание. Если все сделано правильно, то индикатор pwr на плате должен гореть непрерывно, а индикатор act мигать пока загружается система.
Сперва система предложит настроить наши геймпады. Настраиваем их. Последний пункт "Hotkey Enable" это клавиша, которая будет использоваться для различных комбинаций типа сохранение/загрузка игры и тд. На моих геймпадах есть кнопка Home. Ее я и использую. Вот сами хоткеи:
Hotkey+Start Выход из игры (в EmulationStation)
Hotkey+Left Shoulder Загрузить
Hotkey+Right Shoulder Сохранить
Hotkey+→ Input State Slot Increase
Hotkey+← Input State Slot Decrease
Hotkey+X Вызов меню RetroArch (RGUI Menu)
Hotkey+B Перезапуск игры (Reset)
После этого жмем ОК и попадаем в главное меню со всеми консолями. Но их там нет) Только один пункт с настройками retropie. Это потому что в системе нет еще игр.
Подключаемся к сети. Заходим Retropie - WiFi. Система попросит выбрать страну. Соглашаемся.
Так же эти настройки доступны в RetroPie - Localisation Options
После выбора страны у вас должно открыться такое окно(если нет, то зайдите снова в Retropie - WiFi). Здесь выбираем вариант номер 3 и ждем. В случае успеха у вас появится ip адрес и ssid вашей сети.
Подключились.
Теперь надо включить SSH
CONFIG > RASPI-CONFIG Interfacing options > SSH > Enable
Далее устанавливаем WinSCP. Сразу можно установить терминал Putty. Запускаем WinSCP и вводим
Имя хоста: тут ip адрес вашей малинки. Его можно посмотреть в пункте меню Show Ip.
Имя пользователя: pi
Пароль: raspberry
Можно уже закинуть игры в директорию:
home/pi/RetroPie/roms
Для каждой приставки своя папка. Для денди - nes, для сеги - megadrive итд. После загрузки нужно перезапустить EmulationStation. Жмем Start, затем Quit-Restart EmulationStation и подтверждаем перезагрузку. После этого игры будут доступны. Но продолжим настраивать дальше..
Нужен root. Получаем root.
Жмем Ctrl+P в окне WinSCP. Он коннектится и запрашивает пароль. При наборе пароля не видно никаких символов.
Вводим эту строку:
sudo nano /etc/ssh/sshd_config
Далее ищем вот эту строку:
PermitRootLogin without-password - yes
И приводим ее к такому виду:
PermitRootLogin yes
Далее жмем Ctrl+X. Затем Y и нажимаем Enter.
Устанавливаем пароль:
sudo passwd root
И дважды вводим пароль для root доступа. Если все правильно, то появится строка
passwd: password updated successfully
Теперь зайдем через WinSCP под root доступом.
Начинаем Новое соединение. Так же вводим ip адрес, имя и пароль. Но нажимаем на кнопку "Еще", слева выбираем из списка "SFTP" и справа в "Параметры протокола - Сервер SFTP" пишем это:
sudo /usr/lib/sftp-server
Нажимаем Ok в этом окне. И Сохранить в окне настроек соединения. Все. Вошли под рутом.
Теперь можно отключить лог загрузки приставки:
Открываем этот файл
/boot/cmdline.txt
Меняем console=tty1 на console=tty3. Добавляем loglevel=3 если этого нет (скрываем не критические). В конец добавляем logo.nologo, чтобы скрыть логотип Raspberry Pi.
Скрыть пункт CONFIG в меню.
Комментируем блок retropie в файле:
/etc/emulationstation/es_systems.cfg
Отключаем runcommand меню.
Это вот такая плашка при запуске игры. Для каких то настроек. Честно, даже не смотрел.
Находим файл:
/opt/retropie/configs/all/runcommand.cfg
Меняем disable_menu = "0" на disable_menu = "1"
Настройки отображения и шейдеры.
Configuration Editor - Configure basic libreto emulator options-Configure default options for all libreto emulators
Video Smoothing false. Сглаживание. Я отключил. С ним не понравилось
Aspect Ratio 16:9
Render Resolution 800x600 Среднее разрешение поставил. Меньше нагрузки. Тем более использую шейдер, а картинка все равно растягивается на весь экран.
Video Shader Enable true. Включить/выключить шейдер.
Video Shader File. Если в предыдущем пункте включили шейдеры, то здесь надо выбрать из списка какой шейдер использовать.
Overlay Enable. Включить/выключить оверлей. Это что бы закрыть черные полосы вокруг изображения.
Overlay File. Соответственно файл оверлея.
Настройки оверлея пока не трогал. Не сильно то и мешают эти полоски)
Некоторые шейдеры:
Темы.
Что бы сменить тему нужно зайти в пункт ES Themes, затем выбрать из списка тему и скачать ее. Вернуться стартовое окно, затем Start - UI Setting - Theme Set. Можно либо листать вправо/влево, либо открыть список доступных тем(ранее скачанных)
По умолчанию системе недоступно все дисковое пространство. Для того чтобы это изменить, нужно "развернуть" всю доступную память нашей карты. Raspi-Config - Advanced Options - Expand Filesystem. После нужно перезагрузить всю систему.
Загрузка обложек.
Встроенный в EmulationStation Scraper почему то не заработал. Пытался найти ответ - не нашел. Но зато нашел альтернативу ему. scraper by steven selph
Retropie Setup - Manage packages - Manage optional packages - scraper - Install from source
Далее нужно закрыть EmulationStation, иначе настройка не запустится. Закрываем его Start - Quit - Quit EmulationStation. В терминале пишем
sudo ~/RetroPie-Setup/retropie_setup.sh
Далее Configuration/Tools - Scraper
Можно настроить откуда он будет тянуть обложки, указать для каких систем он это будет делать. А можно видео-превью скачать.(В среднем на одну игру 5-7мб). После того как поставили нужные вам настройки, выбираем первый пункт и ждем. Если игр много - долго ждем.
Жмем ок. В следующих окнах жмем Cancel/Back пока не попадем обратно в терминал. В нем пишем emulationstation для ее запуска. Затем, как она запустится, перезагружаем всю систему. А иначе, при закрытии терминала, закроется и emulationstation)
Если вы скачивали видео-превью, то нужно включить поддержку видео в темах
Start - Ui Setting - Gamelist View Style - Video
Start - Other Setting - Use Omx Player - On
Можно подключить как сетевой диск.
Мой компьютер - подключить сетевой диск
адрес
\\retropie\roms
так еще удобнее закидывать игры
Ну, думаю, хватит на этом. Хотя можно было еще написать про видео заставку при загрузке и видео при простое приставки. Но я пока с этим не разбирался
Я тоже уже какой месяц пытаюсь собрать себе портативный терминал на линуксе с ретро играми.
По типу "Пиры". Но в форме моноблока.
Практически все готова, но зараза, всего лишь нужна связка = Плоский аккум + модуль заряда + повышающий модуль до 5 вольт и трех ампер.
Малинка вещь прикольная, я из неё сделал медиа проигрыватель с Коди,амберлайтом, торрентокачалкой и oled экраном, звук по оптике передаётся в ресивер, поддерживается dd и dts.
Тоже собирал сыну нечто похожее, только до конца так и не довёл идею. Да и сын больше на компьютере играет, нежели против меня в какой-нибудь Mortal Kombat сеговский.
Покупал к телевизору, но жене не понравилось то что иногда что то идет не так, купил андроид тв, теперь малина лежит пыль собирает, пожалуй закажу геймпады и тоже настрою. Что то прям ностальжи напала.
Слышал старые игры с пк ретропи умеет, так ли это?
В качестве геймпадов лучше взять что-то от 8bitdo, очень качественные. Взял себе sf30 pro, все замечательно, даже в игры с плойки комфортно играть. И аналоги есть и курки и вибра. И форма как у SNES. Вариант без аналогов дешевле, если чисто в 8бит/16бит играть.