Ретро-игровой центр на Raspberry Pi
сегодня в 18:41
Ну вот и наступили майские праздники, в которые можно расслабиться и отвлечься от дел.Кто-то поехал на природу, жарить шашлыки, кто-то — копать картошку, а кто-то, как я, решил остаться дома и релаксировать. Но как сделать это с пользой? Не прибегая к загрузке мозга очередными мануалами? И тут мне на глаза попалась моя неприкаянная Raspberry Pi. А вкупе с ностальгическим и тёплым ламповым настроением у меня родилась идея:, а можно ли из RPI сделать игровую систему? Вбив в Google, нашлось простое и очень доступное решение, с которым я и хочу с вами поделиться. Кому интересно — прошу под кат.
Как оказалось, это тема не новая, и уже промелькивала на Хабре. Тем не менее за время её публикации прогресс шагнул вперёд, и следует чуть поподробнее рассказать об этом.
Вся система базируется на порте RetroArch, основанной на библиотеке libretro, позволяющей использовать эмуляторы различных приставок (NES, SNES, Sega Genesis, PlayStation, а так же SCUMMVM, zxspectrum) через общий API. За интерфейс и удобство пользования отвечает GUI — EmulationStation. Сегодня, чтобы получить полностью работающую систему достаточно использовать готовый образ RetroPie.
Скачиваем RetroPie Project SD card Image Записываем на SD-карту с помощью dd для Linux, Wind32DiskImager для Windows или RPi SD card builder для MacOS. Подключаем видео, аудио кабели, сетевой кабель, клавиатуру и контроллеры (геймпады), вставляем SD-карту и включаем (вставляем mini-usb штекер питания).
Обратите внимание на совместимость джойстиков — некоторые из них требуют дополнительного питания, и тогда необходимо будет использовать USB-хаб с питанием. Так же, вполне вероятно, что-то придётся допиливать ручками. В моём случае я использовал фирменные джойстики от Microsoft Xbox 360, которые завелись без проблем.
Дожидаемся загрузки системы, и после того, как она загрузится, выходим в консоль (F4) Заходим в утилиту конфигурации: sudo raspi-config
Выбираем «Expand Filesystem», нажимаем OK
Идём в Advanced → memory split, выставляем для модели «B» 256 Возвращаемся, идём в Internationalization Options, там выбираем локаль, раскладку клавиатуры и временную зону (в моём случае это пара US и RU в UTF8).
После настройки нажимаем «Finish», перезагружаемся. После загрузки системы снова идём в консоль (F4) настраивать джойстики. Устанавливаем драйверы: sudo apt-get install xboxdrv
Правим настройки: sudo nano /etc/rc.local
Добавляем в конце (перед fi) строчку: xboxdrv --trigger-as-button --id 0 --led 2 --deadzone 4000 --silent & sleep 1
В случае, если у нас джойстиков больше одного, то увеличиваем на единицу id и led (для второго — 1 и 3 соответственно). Если джойстик беспроводной, то вместо id будет wid.Не забываем сохранить (нас спросят о сохранении при выходе: ctrl+x, отвечаем Y). Перегружаем систему: sudo reboot
После загрузки соглашаемся настроить джойстики, нажимая, что просит система. После завершения настройки опять идём в консоль (F4). Переходим: cd RetroPie/emulators/RetroArch/installdir/bin
Настраиваем джойстики: ./retroarch-joyconfig -o p1.cfg -p 1 -j 0
Убеждаемся, что под j 0 у нас действительно xbox джойстик, в противном случае обрываем (ctrl+c) и увеличиваем цифру на единицу. Если это наш джойстик, то нажимаем те кнопки, что спрашивает конфигуратор. Для второго и последующих джойстиков увеличиваем цифры в вызове на 1 до того момента, пока всё не будет введено. Копируем наши настройки в систему: sudo cat p*.cfg >> ~/RetroPie/configs/all/retroarch.cfg В том случае, если где-то накосячили при настройке джойстиков, то удалите конфиги: rm /home/pi/.emulationstation/es_input.cfgrm ~/RetroPie/configs/all/retroarch.cfg
Чтобы не поломать SD-карту при перезагрузке из-за зависания эмулятора, и чтобы это сделать с джойстика нужно сделать следующее: sudo nano rm ~/RetroPie/configs/all/retroarch.cfg
Добавить строки: input_enable_hotkey_btn = «X«input_exit_emulator_btn = «Y»
Где X и Y — соответствующие кнопки (это обычно кнопки в центре геймпада). Теперь, чтобы скопировать ROMы на Raspberry лучше использовать передачу через сетку.Cмотрим ifconfig«ом IP-адрес нашей RPI. Подключаемся через сетку с компьютера (например через winscp для Windows) используя логин pi и пароль raspberry.Копируем файлы на Raspberry в соответствующие папки /home/pi/RetroPie/roms. Чтобы всё работало и выглядело красиво, доставляем и запускаем: cd RetroPie/supplementarygit clone github.com/elpendor/ES-scrapercdcd RetroPie-Setupsudo ./retropie_setup.sh
Выбираем: SETUP → Run «ES-scraper →(Re-)scape of the ROMs directoryВ результате это действие просканирует наши ромы и скачает картинки и описание игр.Однако это при добавлении новых ROMов нужно будет каждый раз. Перезагружаем Raspberry Pi (можно заодно выключить клавиатуру и, если надо, сетку) (sudo reboot / sudo shutdown –h now) и после загрузки наш RPI полностью будет готов к работе.
Что можно сделать ещё? Достать оригинальные джойстики и подключить их через GPIO () Добавить hardware-ные кнопки, так и сделать игровой автомат на raspberry Сделать консоль портативной. Но я не фанат такого хардкора, как тот же Pixel_Devil (который, кстати и вдохновил меня на этот эксперимент), поэтому остановился на достигнутом результатом. Теперь буду и сам предаваться ностальгии и с друзьями играть :)
Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.