Превращаем малиновый микрокомпьютер в универсальную ретро-консоль.

До выхода некстген-консолей остался месяц с лишним, и весь мир готовится к новым Battlefield’ам и FIFA’м. Если тебя все это не возбуждает, у тебя есть возможность прямо сейчас приобщиться к вечным ценностям. Давай посмотрим, как твой Raspberry Pi поможет тебе в этом деле.

Почему именно Raspberry Pi? Разумеется, ты можешь запустить эмулятор почти на любом устройстве. В большинстве случаев ты даже сможешь вывести картинку на большой экран и воспользоваться любым джойстиком. Но хочется получить все удобства работы с приставкой. Это значит: никаких клавиатур и мышей, возможность выполнять все, что нужно, с джойстика и высокая скорость загрузки. Низкое энергопотребление и бесшумность позволяют держать Raspberry Pi всегда включенным, так что последний пункт вычеркиваем. Мощности «малинки» хватит для всего, кроме разве что PS1 (но, уверен, это скоро изменится благодаря проектам вроде PSX ReARMed). А со всем остальным нам на помощь придет проект RetroArch и его графическая надстройка Emulation Station!

 

Что нам понадобится

Во многом придется повториться: очень желателен корпус (они сейчас доступны по 300–400 рублей), а подходящий зарядник у тебя почти наверняка уже есть. Наконец, понадобится SD-карта. Чем выше класс — тем лучше, тем более что 32-гиговые карты 10-го класса стоят довольно мало. Также желателен Wi-Fi-адаптер. Я пользуюсь TP-LINK TL-WN725N. В отличие от медиацентра, для игровой системы качество канала не критично, но само подключение необходимо (зачем — мы поговорим чуть позже).

 

Weapon of choice

Самому важному железному компоненту я решил отвести отдельную главу. Конечно же, речь пойдет о геймпаде. Какой лучше выбрать?

За последние 10–15 лет консоли заметно изменились, и это отразилось на их контроллерах. В первую очередь речь идет о крестовине, которая сейчас остается важной только в очень специфичных жанрах. В старых играх же крестовина была главным элементом. Взять хотя бы диагональные движения: стрельба «вверх-вправо» в Contra нужна очень часто, и тут важно четкое срабатывание. Кроме того, Nintendo до последнего удавалось удерживать патент на классическую крестовину. Microsoft, Sony и прочим приходилось изгаляться по-всякому. Насколько я понимаю, фанатам Sony в этом смысле повезло больше — у них, в отличие от Microsoft, крестовина разделена и поэтому работает четко. Короче говоря, покупка USB-клона ретроконтроллера на Amazon’е в этом контексте не кажется блажью.

Но с другой стороны, клон NES-контроллера точно не подойдет для SNES или Sega Megadrive — у него банально не хватит кнопок. Забегая вперед, скажу, что нам понадобятся дополнительные клавиши на джойстике, если мы не хотим использовать клавиатуру для выхода из эмулятора и других дополнительных функций. В этом смысле прелесть контроллера от PS3 или Xbox 360 в том, что клавиш точно хватит.

Опять-таки если у тебя уже есть игровая приставка, то наверняка есть и геймпад. Завести контроллер Xbox 360 или PS3 относительно просто.

У фанатов Sony в данном случае есть большой плюс — их джойстик универсален и может подключаться как по стандартному Bluetooth, так и по USB. С другой стороны, драйвер для DualShock придется качать и собирать своими руками, а драйвер для Xbox доступен в родном репозитории.

Другой плюс контроллера от Xbox в том, что если потом захочется поиграть на PC, то у него поддержка в играх намного лучше, чем у DualShock’а. Жирный минус в том, что контроллер от Xbox 360 работает по проприетарному беспроводному протоколу и разъем у него отличается от USB.

По себе знаю, что выбор джойстика — почти религиозный вопрос. Поэтому хотя с практической точки зрения удачнее DualShock, но, если ты привык к Microsoft-овскому контроллеру, ты все равно сделаешь все, чтобы пользоваться им. Тут есть три варианта:

  1. Купить специальный и довольно редкий беспроводной USB-адаптер Wireless Gaming Receiver for Windows PC, стоит около 1300 рублей.
  2. Купить специальный и менее редкий USB-провод для зарядки беспроводного джойстика Play & Charge Kit. Продается в комплекте с аккумулятором, стоит около 700 рублей. Длина кабеля — 2,7 м.
  3. Купить проводной джойстик (около 1500 рублей). Длина кабеля — все те же 2,7 м.

В общем, если у тебя не очень большая гостиная, логичнее всего купить Play & Charge Kit. Все-таки в быту аккумулятор намного полезнее, чем все остальное. Ну а у меня уже был проводной контроллер Xbox, поэтому говорить буду о нем.

 

Разворачиваем систему

Все, о чем дальше пойдет речь, стало возможным благодаря проекту RetroArch. Это фреймворк, объединяющий кучу эмуляторов для различных систем, от NES до PSX и DOS. Благодаря ему нам не придется, например, отдельно настраивать управление в каждом эмуляторе. Raspberry Pi активно поддерживается, и существует специальный скрипт, позволяющий довольно просто установить его на официальный дистрибутив Raspbian. Все действительно просто, но довольно долго. Мы пойдем более простым путем и возьмем специальный образ. По сути это и есть стандартный Raspbian, только с уже установленными эмуляторами.

Скачай образ любым удобным способом и залей его на SD-карту. Под Windows ты можешь использовать Win32 Disk Imager, а под Linux и OS X воспользуйся стандартным dd:

dd if=RetroPieImage* of=/dev/sdX bs=1M # Для Linux
dd if=RetroPieImage* of=/dev/rdiskN bs=1M # Для OS X

Обрати внимание, что заливать нужно не в раздел, а в корень диска (то есть /dev/sdc, а не /dev/sdc1). Макинтошникам стоит обратить внимание на приставку r (rdisk вместо disk) — этот режим значительно ускоряет запись данных.

При загрузке ты увидишь вот такой сплешскрин
При загрузке ты увидишь вот такой сплешскрин

Итак, записали диск, вставили в Raspberry. Подключаем зарядку, сетевой кабель и HDMI. Войдем в систему по SSH:

ssh pi@192.168.1.209 # Указывай свой IP, пароль — raspberry

Воткни Wi-Fi-адаптер и контроллер. Теперь настроим Wi-Fi самым простым способом.

sudo nano /etc/network/interfaces

auto lo

iface lo inet loopback
iface eth0 inet dhcp

allow-hotplug wlan0
auto wlan0

iface wlan0 inet dhcp
 wpa-ssid "ssid" # Имя твоей сети
 wpa-psk "password" # Пароль к сети

А теперь займемся настройкой геймпада Xbox:

sudo apt-get update
sudo apt-get install xboxdrv
sudo nano /etc/rc.local
xboxdrv --trigger-as-button --id 0 --led 2 --deadzone 4000 --silent & sleep 1
xboxdrv --trigger-as-button --id 1 --led 3 --deadzone 4000 --silent & sleep 1
xboxdrv --trigger-as-button --id 2 --led 4 --deadzone 4000 --silent & sleep 1
xboxdrv --trigger-as-button --id 3 --led 5 --deadzone 4000 --silent & sleep 1

Обрати внимание на опцию —id. Для беспроводного джойстика нужно использовать —wid.

Можно использовать до четырех джойстиков, но тогда придется задействовать USB-хаб с внешним питанием.

Теперь зайдем в настройки самой Raspberry:

sudo raspi-config

По умолчанию системе недоступно все дисковое пространство. Для того чтобы это изменить, выбери пункт Expand Filesystem. Во-вторых, можно поиграться с настройками производительности. Тут стоит поэкспериментировать, единого варианта нет. Я не трогал частоту процессора (пункт Overclock), но менял распределение памяти между оперативной и графической (Advanced -> Memory Split) на 256/256. После того как ты закончишь с настройками, система предложит тебе перезагрузиться. Согласись. При перезагрузке можешь выдернуть сетевой кабель — подхватится Wi-Fi.

 

Warning

Выставлять очень высокие значения частоты процессора не рекомендуется — это может привести к нарушению целостности данных на карте. Кроме того, в Emulation Station могут быть лаги.

Если все пошло как надо, то после загрузки на твоем геймпаде кружок вокруг X перестанет мигать и засветится первый сегмент. Это значит, что джойстик определился как первый в системе. При первом запуске Emulation Station предложит тебе настроить управление на джойстике, тут все довольно прозрачно.

Итак, ты в главном меню. Переключение между эмуляторами происходит по нажатию стрелок вправо-влево. Сначала ты можешь прийти в ступор — почему доступен только Doom, Duke Nukem, DOS, Apple II и Sega? Дело в том, что большинство эмуляторов будут доступны только тогда, когда в их папках появятся файлы ромов. И вот сейчас ты поймешь, зачем был нужен Wi-Fi!

На своей основной системе подключись к FTP-серверу с IP-адресом твоей «малинки» (на всякий случай: после перехода на Wi-Fi он точно будет другой). Здесь ты увидишь аккуратную структуру папок с именами систем. Учти, что каждый эмулятор поддерживает вполне конкретный набор форматов. Привожу табличку для основных эмуляторов, а полный список ты найдешь в файле /home/pi/.emulationstation/es_systems.cfg. В общем, главный момент — не нужно заливать ромсеты с ZIP-файлами. Потратишь кучу времени, а потом еще будешь сильно удивлен.

Форматы, поддерживаемые эмуляторами RetroPie
Форматы, поддерживаемые эмуляторами RetroPie

После того как ты залил нужный ROM, нужно обновить Emulation Station. Для этого на геймпаде (при стандартной конфигурации) нужно нажать Start и выбрать Reload. Вуаля — соответствующий эмулятор активировался и ему видны твои ромы.

Но не спеши загружаться. По умолчанию Emulation Station не позволяет выходить из эмулятора в основное меню с геймпада. И тут начинается самый интересный момент — ручная настройка кнопок джойстика. Подключайся по SSH, набирай

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

Добавь в конец файла

input_exit_emulator_axis = -5

Это позволит тебе выходить из эмулятора при нажатии «вверх» на крестовине. Но на этом дело не заканчивается!

savefile_directory = /home/pi/RetroPie/savestate
savestate_directory = /home/pi/RetroPie/savestate
screenshot_directory = /home/pi/RetroPie/screenshots
autosave_interval = 300
input_exit_emulator_axis = -5
input_save_state_axis = +4
input_load_state_axis = -4
input_screenshot_axis = +5

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

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

input_enable_hotkey_btn = 10

Теперь для каждого действия нужно будет зажать большой Х. Учти, что любое назначение после этой строчки будет считаться как клавишесочетание Х + кнопка. На всякий случай я приложил схему кнопок с точки зрения конфига. Каждый элемент имеет суффикс (btn или axis) и номер (5, 10 или +4 для стрелок/джойстиков).

joystik

Чтобы сохранения и скриншоты заработали, не забудь создать нужные папки:

sudo mkdir /home/RetroPie/{savestate,screenshots}

После того как ты закончил все это править, не забудь снова перегрузить эмулятор. На самом деле настроек намного больше: как минимум есть еще ускоренный режим (inputtogglefastforward или inputholdfastforward). В интернете можно ознакомиться с полным списком опций.

 

Наводим красоту

Итак, остались мелочи. Во-первых, можно отключить ненужные эмуляторы. Для этого закомментируй их в /home/pi/.emulationstation/es_systems.cfg. Заодно можешь закомментить и Input Control — все равно для любой задачи тебе придется лезть в конфиг.

У RetroPie есть свой отдельный конфигуратор

cd ~/RetroPie-Setup/
sudo ./retropie_setup.sh

Отсюда ты можешь обновить эмуляторы и поковыряться в различных опциях.

Во-вторых, в поставке RetroPie есть скрипт, который автоматически ищет обложки к играм. Для этого запусти:

sudo python ~/RetroPie/supplementary/ES-scraper/scraper.py -crc

Опция crc позволит искать не по названиям, а по сигнатурам файлов. Понятно, что это более длинный процесс, но зато это проще, чем вручную называть файлы так, чтобы понял скрипт. Вот, пожалуй, и все.

Сайт авторов. - https://xakep.ru

| 15.07.2017 Просмотров: 1570
| Теги: Raspberry Pi, RetroPie, RetroArch