...

четверг, 1 мая 2014 г.

Ретро-игровой центр на Raspberry Pi


сегодня в 18:41


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

Кто-то поехал на природу, жарить шашлыки, кто-то — копать картошку, а кто-то, как я, решил остаться дома и релаксировать. Но как сделать это с пользой? Не прибегая к загрузке мозга очередными мануалами? И тут мне на глаза попалась моя неприкаянная Raspberry Pi. А вкупе с ностальгическим и тёплым ламповым настроением у меня родилась идея: а можно ли из RPI сделать игровую систему? Вбив в Google, нашлось простое и очень доступное решение, с которым я и хочу с вами поделиться. Кому интересно – прошу под кат.


Как оказалось, это тема не новая, и уже промелькивала на Хабре. Тем не менее за время её публикации прогресс шагнул вперёд, и следует чуть поподробнее рассказать об этом.


Вся система базируется на порте RetroArch, основанной на библиотеке libretro, позволяющей использовать эмуляторы различных приставок (NES, SNES, Sega Genesis, PlayStation, а так же SCUMMVM, zxspectrum) через общий API. За интерфейс и удобство пользования отвечает GUI — EmulationStation. Сегодня, чтобы получить полностью работающую систему достаточно использовать готовый образ RetroPie.



  1. Скачиваем RetroPie Project SD card Image

  2. Записываем на SD-карту с помощью dd для Linux, Wind32DiskImager для Windows или RPi SD card builder для MacOS.

  3. Подключаем видео, аудио кабели, сетевой кабель, клавиатуру и контроллеры (геймпады), вставляем SD-карту и включаем (вставляем mini-usb штекер питания).


    Обратите внимание на совместимость джойстиков – некоторые из них требуют дополнительного питания, и тогда необходимо будет использовать USB-хаб с питанием. Так же, вполне вероятно, что-то придётся допиливать ручками. В моём случае я использовал фирменные джойстики от Microsoft Xbox 360, которые завелись без проблем.





  4. Дожидаемся загрузки системы, и после того, как она загрузится, выходим в консоль (F4)

  5. Заходим в утилиту конфигурации:

    sudo raspi-config




  6. Выбираем “Expand Filesystem”, нажимаем OK



  7. Идём в Advanced -> memory split, выставляем для модели “B” 256

  8. Возвращаемся, идём в Internationalization Options, там выбираем локаль, раскладку клавиатуры и временную зону (в моём случае это пара US и RU в UTF8).



  9. После настройки нажимаем "Finish", перезагружаемся.

  10. После загрузки системы снова идём в консоль (F4) настраивать джойстики.

  11. Устанавливаем драйверы:

    sudo apt-get install xboxdrv




  12. Правим настройки:

    sudo nano /etc/rc.local




  13. Добавляем в конце (перед fi) строчку:

    xboxdrv --trigger-as-button --id 0 --led 2 --deadzone 4000 --silent & sleep 1



    В случае, если у нас джойстиков больше одного, то увеличиваем на единицу id и led (для второго – 1 и 3 соответственно). Если джойстик беспроводной, то вместо id будет wid.

    Не забываем сохранить (нас спросят о сохранении при выходе: ctrl+x, отвечаем Y).

  14. Перегружаем систему:

    sudo reboot





  15. После загрузки соглашаемся настроить джойстики, нажимая, что просит система. После завершения настройки опять идём в консоль (F4).

  16. Переходим:


    cd RetroPie/emulators/RetroArch/installdir/bin




  17. Настраиваем джойстики:

    ./retroarch-joyconfig -o p1.cfg -p 1 -j 0



    Убеждаемся, что под j 0 у нас действительно xbox джойстик, в противном случае обрываем (ctrl+c) и увеличиваем цифру на единицу. Если это наш джойстик, то нажимаем те кнопки, что спрашивает конфигуратор. Для второго и последующих джойстиков увеличиваем цифры в вызове на 1 до того момента, пока всё не будет введено.

  18. Копируем наши настройки в систему:


    sudo cat p*.cfg >> ~/RetroPie/configs/all/retroarch.cfg

    В том случае, если где-то накосячили при настройке джойстиков, то удалите конфиги:


    rm /home/pi/.emulationstation/es_input.cfg

    rm ~/RetroPie/configs/all/retroarch.cfg





  19. Чтобы не поломать SD-карту при перезагрузке из-за зависания эмулятора, и чтобы это сделать с джойстика нужно сделать следующее:


    sudo nano rm ~/RetroPie/configs/all/retroarch.cfg



    Добавить строки:

    input_enable_hotkey_btn = «X»

    input_exit_emulator_btn = «Y»



    Где X и Y – соответствующие кнопки (это обычно кнопки в центре геймпада).

  20. Теперь, чтобы скопировать ROMы на Raspberry лучше использовать передачу через сетку.

    Cмотрим ifconfig’ом IP-адрес нашей RPI. Подключаемся через сетку с компьютера (например через winscp для Windows) используя логин pi и пароль raspberry.Копируем файлы на Raspberry в соответствующие папки /home/pi/RetroPie/roms.

  21. Чтобы всё работало и выглядело красиво, доставляем и запускаем:


    cd RetroPie/supplementary

    git clone http://ift.tt/1kmGZij

    cd

    cd RetroPie-Setup

    sudo ./retropie_setup.sh



    Выбираем: SETUP -> Run ‘ES-scraper ->(Re-)scape of the ROMs directory

    В результате это действие просканирует наши ромы и скачает картинки и описание игр.

    Однако это при добавлении новых ROMов нужно будет каждый раз.

  22. Перезагружаем Raspberry Pi (можно заодно выключить клавиатуру и, если надо, сетку) (sudo reboot / sudo shutdown –h now) и после загрузки наш RPI полностью будет готов к работе.



Что можно сделать ещё?




  • Достать оригинальные джойстики и подключить их через GPIO ()

  • Добавить hardware-ные кнопки, так и сделать игровой автомат на raspberry

  • Сделать консоль портативной.


Но я не фанат такого хардкора, как тот же Pixel_Devil (который, кстати и вдохновил меня на этот эксперимент), поэтому остановился на достигнутом результатом. Теперь буду и сам предаваться ностальгии и с друзьями играть :)




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


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


Комментариев нет:

Отправить комментарий