Пользователь
0,0
рейтинг
20 августа 2012 в 21:55

Администрирование → Превращаем Raspberry Pi в игровую ретро консоль

*nix*
Получив заветную коробочку c «Малиновым пирогом», каждый играется с ней по своему, моей первой мыслью было поиграть в нее по настоящему, а именно устроить на ее базе эдакий универсальный эмулятор старых игр. Большинство из нас играло в Денди, многие в Сегу или СуперНинтендо, и даже не смотря на наличие новых консолей текущего поколения, память о них живет, для таких вот «тронутых» ностальгией предназначается эта статья.


Для Raspberry существует порт RetroArch, если коротко, то RetroArch благодаря библиотеке libretro позволяет использовать эмуляторы через общий API, то есть что-то вроде фронтенда для различных эмуляторов. Также существует GUI для RetroArch — EmulationStation, ну и не стоит забыть о самих эмуляторах от различных разработчиков. Таким образом, мы имеем 3 уровня, сами эмуляторы, wrapper от RetroArch и графический интерфейс EmulationStation. К счастью хороший человек petrockblog написал скрипт который автоматизируют установку этих программ. Скажу сразу тестировал я это только на Raspbian (Debian Wheezy), в других системах кое-что будет отличатся, но суть должна остаться прежней.
В актульной версии включены эмуляторы для следующих приставок: Atari 2600, NES (Dendy), SNES, Sega Mega Drive/Genesis, MAME (аркадные автоматы), Gameboy Advanced и великий и ужасный Doom.

Итак, сначала установим зависимости.

sudo apt-get install git dialog


Затем скачаем сам скрипт с гитхаба.

mkdir ~/git_dir
cd ~/git_dir
git clone github.com/petrockblog/RetroPie-Setup.git


И наконец запустим скрипт с правами sudo.

sudo ./retropie_setup.sh


В процессе запуска, скрипт спросит про тип установки, «binary» — то есть, уже скомпилированные файлы, или «source» — установка из исходников, последнее предполагает самые актуальные версии программ, но и длится 2-3 часа, решать вам.

После установки, вы обнаружите в своем домашнем каталоге папку RetroPie, а в ней еще несколько

pi@raspberrypi ~/RetroPie $ ls
EmulationStation emulatorcores RetroArch-Rpi roms SNESDev-Rpi


emulatorcore -> собственно сами эмуляторы
RetroArch-Rpi -> Наш RetroArch, файл настроек расположен в /etc/retroarch.cfg.
EmulationStation -> GUI для RetroArch, файлы настроек расположены в ~/.emulationstation
roms -> как следует из названия сюда нужно скопировать соответствующие РОМы.
SNESDev-Rpi > утилиты для подключения джойстика от SNES, подробнее тут

Чтобы запустить все это дело, вводим в консоли «emulationstation»
pi@raspberrypi ~$ emulationstation


Чтобы выйти из emulationstation нажимаем F4.

Для удобства запуска, создадим ярлык. Для этого создаем файл любимым текстовым редактором (в примере vim) со следующим содержанием.

vim ~/Desktop/emustation.desktop


[Desktop Entry]
Version=1.0
Type=Application
Name=EmuStation
Comment=EmulateStation, GUI for Retro Game Emulators
Categories=Game
Exec=/usr/bin/emulationstation
Icon=/home/pi/.joypad.svg
Terminal=false
StartupNotify=false

Разумеется параметр «Icon» следует заменить на собственный.

Следующим делом подключаем геймпад, т.к. с клавиатуры играть не комильфо (да и не работает она у меня в RetroArch). Я использовал обычный китайский клон PlayStation контроллера, который продается за 10€ за пару на ebay, собственно проблем с определением в системе тут быть не должно. После подключения вводим следующую команду в консоли

sudo ~/RetroPie/RetroArch-Rpi/tools/retroarch-joyconfig | sudo tee -a /etc/retroarch.cfg


На экране появятся названия различных положений кнопок (вверх, вниз, вправо и т.д.) которые следует соответственно нажимать на геймпаде, эти значения автоматически будут добавлены в конфигурационный файл RetroArch. Но это еще не все, чтобы выходить из RetroArch c помощью геймпада, нужно добавить туда еще одну строчку, для этого откройте "/etc/retroarch.cfg" и добавьте в конец следующую строку,

input_exit_emulator_btn = “11″


где «11» это значения для вашей кнопки на геймпаде, например у меня «11» соответствует R3 (правый стик).

Запускаем еmulationstation снова, программа должна опознать что мы используем геймпад, и так же попросить ввести положения различных кнопок. Собственно все, с этого момента уже можно играть, но напоследок несколько советов.

Если вы не видите своих игр, хотя и скопировали их а папку roms, проверьте совпадает ли их расширение с указанным в файле конфигурации, регистр ВАЖЕН!

less ~/.emulationstation/es_systems.cfg


Например для Сеги по умолчанию это ".smd", то есть ROM c названием Sonic.SMD (В отличии от Sonic.smd) не определится!

Ну и главное, эмуляторы все еще развиваются, многие из них работают еще не в полную силу, почти у всех есть проблемы со звуком, но для начала я считаю, что и это уже не плохо.

P.S. Если есть какие то замечания по стилистике изложения или орфографии, сообщите, пожалуйста, об этом в ЛС.
Станислав @xtavras
карма
13,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Спецпроект

Самое читаемое Администрирование

Комментарии (28)

  • +4
    Ради этого весь этот прогресс?
    • +11
      Какой прогресс?
    • 0
      Если я не ошибаюсь, имеется в виду то, что выходит куча новомодных приставок, а тут идёт речь об эмуляции nes'а :)
      • +1
        Всю жизнь играл в Sonic, и до сих пор другие игры как-то не особо интересуют :)
  • 0
    дорого получается…
    • 0
      Вот подешевле nesbox.com

      А на первом этаже здания, где я работаю, есть замечательный магазинчик, никак не вспомню название ((, где можно за копейки (1200р.) купить оригинальную Sega Mega Drive II в коробочке )
  • +1
    Следующим шагом может стать создание аппаратной среды для TAS-инга :)
    Если, конечно, в эмуляторах реализовать соответствующий функционал.
  • 0
    Интересно, а возможно ли из Ардуино сделать Денди, причем не эмуляцию? Распотрошить какой-нибудь эмулятор и реализовать на базе него прошивку для Ардуино. Надо будет заняться как-нибудь изучением вопроса, если появится свободное время.
    • 0
      Нельзя. Ибо прошивка = эмуляция. Да если даже и плис зашить, все равно — в конечном счете это эмуляция. Не эмуляция — это 6502 со всеми делами, которые были в денди, и картриджи.
      • 0
        Ну для картриджей можно было бы сделать переходник: картридж, который подключается по USB к PC, на флешку заливаются ромы и далее он уже как обычный картридж себя ведет.
  • +3
    К черту прогресс и дороговизну, запускай баттл тоадс, дружище!!! Мама, ну еще полчасика!!!
    • 0
      А мама отбирает джойстик, гонит делать уроки, а сама в танчики режится :(
      • +1
        Меня предки прогоняли на огород (свой дом был) огурцы пропалывать (ну или прочую зелень) и резались ага, именно в танчики
        • +3
          Вот… Много нас таких вот :)
    • 0
      Принц Персии… эх, сколько же времени он забрал…
  • 0
    Немного не в тему. Никто случаем не знает адекватный эмулятор PS и/или PS2 под Linux?
    • 0
      epsxe и pcsx2, Playstation и Playstation2 соответственно
      • 0
        Сыроваты они. В Tekken поиграть не удалось ни в одну версию. На том же компьютере но под Windows работает без тормозов.
        • 0
          их просто надо уметь готовить :) Там действительно страшное колдунство с настройками видео-плагинов
          • 0
            Да у меня еще в придачу AMD E-350 с его Radeon 6310
            • 0
              У меня на убунте отлично пс1 игралась. Хотя у меня убогий AMD M100 + HD4200 видео
  • +1
    Думал, что под катом будет описание подключения старых оригинальных геймпадов, а электроника будет упакована в корпус неработающей приставки с выводом под флешку, с которой и можно запускать игры через удобное меню.
  • 0
    После запуска " еmulationstation" неправильно ввел конфигурацию кнопок. С надеждой на то, что при перезапуске программа выведет запрос снова перезагрузил. Ан нет. Не вывела.
    Как заново настроить джойст теперь?
    • 0
      В домашней директории ~/.emulationstation/ был файлик, который отвечает за конфиг кнопок, его нужно удалить и запустить emulationstation еще раз. К сожалению как точно называется не помню, мой RPi давно умер.
      • 0
        Охох. А что случилось, если не секрет?
        • 0
          Просто не включается больше, сильно не разбирался из за нехватки времени.
  • 0
    Будьте добры, объясните дураку, как запустить, например, NES-игру? )
  • 0
    А кто-нибудь знает как настроить клавиатуру для управления вторым игроком? а то я конфиг поправил и теперь клава управляет обоими игроками(

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