GrabDuck

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

:

Получив заветную коробочку 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. Если есть какие то замечания по стилистике изложения или орфографии, сообщите, пожалуйста, об этом в ЛС.