Рубрики
Linux Raspberry Pi Железо

Raspberry Pi — эмулятор ретро игр

8bit-marioСейчас, когда игры стали невероятно реалистичны, а компьютеры в разы мощнее, интерес к старым добрым игровым приставкам, типа Dendy и Sega не утихает у многих молодых людей, чьё детство проходило в 90-ые. Те времена, давно уже в истории, однако 8-битные и 16-битные игры воскресли и стали цениться даже больше, чем раньше.

Со временем, раритетные игровые кассеты были магическим образом превращены в rom-файлы, которые можно скачать в Интернете. А приставки теперь и вовсе не нужны, вместо них можно использовать программы-эмуляторы, которые так же в разнообразии есть в Интернете, для разных платформ.

В рамках этой статьи, мы воспользуемся нашей любимой Raspberry Pi, для эмуляции ретро приставок. Ценителям ретро игр посвящается…

RetroArchLogoДля реализации мультиплатформенного эмулятора мы воспользуемся популярным пакетом — RetroArch. Который, кстати, существует для нескольких платформ, например для Windows, Linux, в том числе и для Android.

Установить всё и сразу, через репозиторий deb-пакетом увы не получиться, но мир не без добрых людей. Мы воспользуемся специальным скриптом и соберём эмулятор прямо на месте.

Сперва установим дополнительные компоненты для разрешения зависимостей:

pi@raspberry:~$ sudo su
pi@raspberry:~# apt-get install git dialog

После этого подготавливаем место и скачиваем скрипт с git хаба:

pi@raspberrypi:~# mkdir /usr/src/git
pi@raspberrypi:~# cd /usr/src/git
pi@raspberrypi:~# git clone github.com/petrockblog/RetroPie-Setup.git

Запускаем:

pi@raspberrypi:~# ./retropie_setup.sh

После запуска вы увидите незамысловатое меню, в нём несколько пунктов.

retropie_setup_menu

  1. Установка бинарных (скомпилированных) файлов — быстро но, бестолково.
  2. Загрузка и сборка из исходных кодов — очень долго, но свежие версии.
  3. Установка повторная, если были ошибки при первой установке.
  4. Обновить скрипт установки
  5. Перезагрузка.

Рекомендую даже не задумываться о бинарной установке, причин несколько. Как вариант, могут не работать некоторые эмуляторы или настройки. Я выбирал установку из исходных кодов, так как после первой установки у меня не заработал эмулятор сеги и я не смог настроить геймпады. После второй установки, уже из исходников, дело продвинулось, но по прежнему не работал эмуль сеги, однако я нашёл причину и исправил (об этом чуть позже).

И так, выбираем второй пункт и в новом меню проверяем всё ли нам нужно? Например я не стал ставить «MAME», «ZX Spectrum» и «Apple II».

retropie_setup_submenu

После запуска, можете спокойно заниматься своими делами ещё часов 6. У меня весь процесс занял около 10 часов.

И когда наконец-то процесс загрузки, компиляции и установки закончиться, зайдём в домашний каталог /root/pi и увидим там новую папку «RetroPie». В неё находиться:

  • configs — настройки эмуляторов. В «All» общие, в остальных соответствующие.
  • emulatorcores — компоненты эмуляторов
  • emulators — сами эмуляторы в т.ч. оболочка
  • roms — каталог для игр, точнее rom-файлов
  • supplementary — дополнительные компоненты. (Например «SNESDev-Rpi» — утилита для подключения джойстика от SNES)

Теперь нужно поместить несколько rom-файлов игр, разных платформ, в соответствующие каталоги. Обратите внимание на расширение файлов, они должны совпадать с конфигурацией: /home/pi/.emulationstation/es_systems.cfg. В том же каталоге после первого запуска оболочки, появиться файл es_input.cfg с настройками клавиш управления, его можно удалять для сброса.

Если у вас есть джойстик, то пора заняться его настройкой.

pi@raspberrypi:~# cd /home/pi/RetroPie/emulators/RetroArch/tools
pi@raspberrypi:~# ls

Там должна находиться утилита retroarch-joyconfig — она изменяет конфигурационный файл retroarch.cfg.

Для общего удобства, я написал скрипт для работы с этой утилитой. Откроем редактор

pi@raspberrypi:~# nano

и вставим скрипт:

#!/bin/bash

echo "Configure script of game controllers."
echo "1. Please connect now your device!.."

echo -e "2. Please enter the number of the player (1 or 2):"
read GAMERNUMB

echo -e "3. Please enter the number of the gamepad (0 - ...):"
read JOYPADNUMB

echo "Ok! Thanks! You are the $GAMERNUMB player. The number of the device used - $JOYPADNUMB."
echo "During the configuration, you can wait 5 seconds to cancel the keys."

retroarch-joyconfig -p $GAMERNUMB -j $JOYPADNUMB -t 5 -i retroarch.cfg -o retroarch.cfg

echo "Done. If you need, repeat for other players... Thanks, good-bye!"

Сохраняем его в /home/pi/RetroPie/configs/all/joyconfig-shell.sh, копируем туда же, утилиту retroarch-joyconfig, устанавливаем права на выполнение и запускаем.

pi@raspberrypi:~# cp /home/pi/RetroPie/emulators/RetroArch/tools/retroarch-joyconfig /home/pi/RetroPie/configs/all/
pi@raspberrypi:~# cd /home/pi/RetroPie/configs/all/
pi@raspberrypi:~# chmod +x joyconfig-shell.sh
pi@raspberrypi:~# ./joyconfig-shell.sh

Настроить джойстики (вернее геймпады) получится наверно не сразу, не отчаивайтесь!

Ну теперь, наконец-то, можно запустить оболочку:

pi@raspberrypi:~$ emulationstation

Если всё в порядке, то вы увидите примерно такую картину:

Меню игр Nintendo
Меню игр Nintendo
Меню игр genesis
Меню игр genesis
Великий и ужасный DOOM
Великий и ужасный DOOM
Легендарный DUKE NUKEM
Легендарный DUKE NUKEM

Если при попытке запустить игры в эмуляторе Genesis (Sega) появляется ошибка, то вы столкнулись с такой же проблемой как у меня. Она лечиться довольно просто. Вернитесь в консоль, зайдите в каталог с исходными кодами gden:

pi@raspberry:~# cd /home/pi/RetroPie/emulators/dgen-sdl

И выполните последовательно, следующие команды:

pi@raspberrypi:~# ./configure --disable-opengl
pi@raspberrypi:~# make

Дело в том, что по каким-то причинам этот эмулятор вылетает с ошибкой при работе с OpenGL. После этого, снова запустите emulationstation, всё должно работать.

Всё, да не всё. Например Duke Nukem будет работать, а вот для Doom нужно добавить некоторые файлы.

P.S.: Да, можно купить рабочие приставки и даже кассеты найти. Или играть на компьютере… Но ничто вам не заменит оригинальности! Мы с друзьями испробовали и оценили на себе…

Я с другом шпилим в танчики
Я с другом шпилим в танчики
Я с другом шпилим в бомбермена
Я с другом шпилим в бомбермена
Друзья вспоминают детство с батлтоадс
Друзья вспоминают детство с батлтоадс

P.P.S: Ну мааам, ещё пять минуточек!?… 🙂

Автор: Илья Балдуев

Специалист ИТ, веб программист, фотограф, блоггер. Добрый, но злопамятный. Верный, но не Хатико. Честный, не всегда. Упрямый, но ленивый.

11 ответов к “Raspberry Pi — эмулятор ретро игр”

Я в линуксе совсем новичок. Делал все по инструкции, но видимо что-то где-то не срослось, потому что запустить retropie_setup не удалось. Буду очень благодарен, если укажете что было не так, и как исправить. Уж очень хочется опробовать малинку в качестве приставки.

Кажется понял в чем затупил. Все равно, после «git clone github.com/petrockblog/retropie-setup.git» пишет, что такой репозиторий не существует.

Возможно какие-то нововведения или при написании статьи допустил ошибку. Рад, что разобрался 🙂

Кажется понял в чем затупил. Все равно, после «git clone github.com/petrockblog/retropie-setup.git» пишет, что такой репозиторий не существует.

Все. Разобрался. Все же, после «git clone» надо было добавить «git://». И все заработало

Кто нибудь через putty пробовал это запустить?
Установил xmanager и в putty тоже X11 включил.
Пишет, что нет дисплея при запуске emulationstation, хотя python games запускается отлично.

Так же во время установки, попросил логин и пароль от github, но в статье не указано.

P.S. устанавливается реально долго.

Прошу обратить внимание на дату публикации статьи. С тех пор многое уже поменялось. Вопросы будут неактуальны.

В тоже время, не нашел более подробных статей по этой теме.
Спасибо.

Значит пришло ваше время, напишите свою статью, помогите сообществу 😉

Добавить комментарий для Armhf Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *