Skip to main content

Блог инженера

Блог о минимализме, инжинерии и программировании.



Эмулятор ZX Spectrum на Pocket C.H.I.P.

  | #Speccy#emulation

Одна из первых программ, которую я опробовал на Pocket C.H.I.P. - это эмулятор ZX Spectrum - fuse. Установить его просто:

sudo apt-get install fuse-emulator-sdl spectrum-roms

Запускать лучше эмулятор с графической оболочкой SDL, команда fuse-sdl. Использовать в качестве геймпада клавиатуру Pocket C.H.I.P. совершенно невозможно, это худшая компактная клавиатура. В качестве кнопок использованы какие-то клавиши особой конструкции с жёстким ходом. Любая компактная мембранная клавиатура будет лучше для постоянного применения. Но конкретно fuse я решил настроить на геймпад SNES30. С подключением по USB проблем не возникло совсем. Клавиша A вызывает меню fuse, клавиша B - как кнопка “огонь” на кэмпстон-джойстике. По меню можно перемещаться при помощи геймпада. В меню настраивается тип джойстика, полноэкранный режим работы и делаются другие нужные настройки.

В играх для ZX Spectrum не обойтись без клавиатуры, но чтобы начать игру и сделать настройки клавиатуры Pocket C.H.I.P. вполне достаточно. Всё работает отлично

Treasure island Dizzy

Также я попробовал настроить работу с геймпадом 8bitdo Zero. Он подключается только по блютусу. Установить соединение достаточно несложно, на Pocket C.H.I.P. это делается утилитой bluetoothctrl. Запускаем её, включаем блютуз, запускаем поиск устройств, спариваем Pocket C.H.I.P. и геймпад, подключаем его и включаем в список доверенных устройств. Сканирование устройств занимает некоторое время. Так что до команды “scan on” нужно перевести геймпад в режим обнаружения, а после команды нужно подождать, пока устройство будет найдено. Ниже эти шаги описаны.

bluetoothctl

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

power on
agent on
scan on
pair <адрес геймпада, например 16:07:04:58:55:23>
# тут может потребоваться ввести PIN устройства, но у меня его не запрашивали
connect <адрес геймпада>
trust <адрес геймпада>
exit

Теперь устройство “спарено” и должно подключаться автоматически. Проблема с 8bitdo Zero в том, что у него кнопка A меню не вызывает. Альтернативный способ вызвать меню - клавиша F1, но со встроенной в Pocket C.H.I.P. клавиатуры эта кнопка не работает, работает только с любой внешней. Как повесить вызов меню на геймпад или встроенную клавиатуру по-прежнему непонянтно. А без этого ни выйти из эмулятора, ни загрузить другую игру. Только перезагрузить устройство можно.

About Mikhail Kiselev

Photo of Mikhail Kiselev

Приветствую в моём блоге! 😄 Меня зовут Михаил. Я инженер и программист. Живу в Сибири, работаю на Сахалине, путешествую где придётся. Я предпочитаю пост в блог посту в твиттер. Описание полезной технологии или гаджета предпочитаю описанию заката или посиделок в кафе.