Pull to refresh

Эмуляция NES/Sega/etc в кармане: Обзор/настройка EXEQ Ray 2 (JXD S5110b) — прошивка, софт, управление

Reading time 8 min
Views 48K
imageВ этой статье я расскажу о своем опыте в эксплуатации и настройке игровой консоли на android "EXEQ Ray 2" (близнец JXD S5110b). При чем рассказывать я буду не о том, как она работает в качестве андроид-девайса, а исключительно в качестве эмулятора старых игровых консолей — Sega, NES (денди), SNES, DS, и т.п. Ведь именно в качестве портативного эмулятора я ее и покупал.

Быстро пробежимся по скучным техническим характеристикам:
  • Габариты: 195х87х17 мм, 232 г
  • Android 4.1.1 с root-правами «из коробки»
  • Экран 5'', глянцевый, TN, 800x480, эмкостной тач на 5 касаний
  • 8 Gb памяти + microSD
  • 2-ядерный 1.5 GHz CPU
  • Wi-Fi, mini-HDMI, акселерометр, камера 0.3 MPx
  • Два аналоговых стика, два бампера (шифта), D-Pad, 4 кнопки, start, select
  • Аккумулятор: Li-Ion 2200 mAh (3 часа игры)
  • Стоимость: ~4200 руб.

В видеоролике ниже я покрутил приставку в руках, немного рассказал о ней и показал, как она работает:



Для всех, кто заинтересовался, далее я расскажу о всех проблемах, с которыми я столкнулся и расскажу, как их решал.

Выбор, и общие впечатления.


Если кто-то следит за моими статьями, то он знает, что я неравнодушен к старым играм. И вот, у меня появилось непреодолимое желание поиграть в те же дендивские или сеговские хиты на чем-то осязаемом и железном. Надо, кстати, сказать, что в детстве у меня был только ZX Spectrum и в приставки я играл только немного, у друзей. Так что заодно захотелось наверстать упущенное.

Я, конечно, восторгаюсь коллекцией картриджей и консолей у Pixel Devil'a, но пораскинув мозгами понял, что этот вариант мне не подходит по многим причинам. Все эти приставки просто так не подключить к монитору, картриджи надо где-то доставать (или же возиться с hardware-эмуляторами картриджей). В общем, я не готов на эту возню.

Именно по этому я и решил посмотреть на рынок портативных эмуляторов и в частности на линейку EXEQ. Моделей у них довольно много, но долго над выбором я не думал. Отталкивался от экрана. Решил, что 7'' — это уже многовато (приставка уже становится не такой портативной) и выбрал модель с 5'' экраном, на всякий случай с 2-ядерным CPU (почему бы не взять, если стоит столько же, сколько 1-ядерный) и без 3G, т.к. мне оно не нужно.

Еще раз отмечу — я рассматриваю данный девайс исключительно как платформу для эмуляторов. Немного более навороченный и гибкий аналог Dingoo A320. Да, на девайсе есть Android Play Market и можно поставить андроид-игрушки. И даже есть встроенный маппер, позволяющий назначить хардварные кнопки на касание экрана. Но лично мне это не интересно.

Да, можно было взять близнеца из Китая JXD S5110b за $100 или даже меньше. Но ждать месяц доставки и рисковать с «украдут на почте» ради экономии в 1000 рублей я не стал.

Итак, давайте, наконец, о первых впечатлениях.

Экран.

Сразу скажу: экран плохой. Разрешение низкое, цветопередача отдает дешевой синевой, на улице все сразу становится слаборазличимым. Но с другой стороны, что вы хотели от приставки за 4000 руб?

Фото для сравнения цветопередачи экрана iPad 2 и EXEQ Ray 2:



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

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

Выход HDMI не тестировал, т.к. дома не нашлось переходника mini-HDMI -> HDMI. Но судя по отзывам, все работает отлично и до 1080p.

Органы управления.

Здесь мне все понравилось. Да, кнопки немного гремят, но это не страшно. Нажатие четкое. Крестовина D-Pad выполнена единым элементом, а не отдельными 4-мя кнопками и управляется очень четко, без ложных нажатий (ни в какое сравнение с крестовиной геймпада XBOX 360, например).

Кнопок под правую руку — 4. (Почему-то по дефолту перепутаны A/B и X/Y, но это фиксится, см. ниже). Жаль, кстати, что не 6. В результате, в некоторых играх для Sega Mega Drive приходится изгаляться биндя две кнопки на верхние бамперы.

Два аналоговых стика. Особо не пользовался, но работают.

Кнопки Start / Select — отлично. Сверху есть кнопка «reset», которую можно нажать ногтем (что в случае с Андроидом может быть полезно). Что жалко — это что не нашлось места под хардварные кнопки «домой» и «назад» и в результате приходится иногда вызывать нижнюю панель андроида.

Корпус, звук, аккумулятор.

Корпус немного «погремушный», но в целом — ок. Не вызывает отвращения и даже рамочка под металл смотрится неплохо. Правда, очень сильно греется. Особенно когда заряжается одновременно с работой (кстати, в таком режиме у меня все равно тратилось немного больше, чем заражалось по USB).

Аккумулятор садится довольно быстро. Его хватит на около 3 часов игры.

Звук… Он есть. Кстати, несмотря на то, что сзади 2 группы отверстий, внутри — один динамик (справа). Да, и зачем-то у консоли 2 выхода под наушники.

В общем, звезд с неба не хватает, но и отвращения не вызывает. Все хорошо.

Софт.


Давайте, наконец, поговорим о софте.

Приставка поставляется с прошивкой от EXEQ и с пачкой предустановленных эмуляторов и игр. Все они собраны в едином приложении «Game Center X», которое выглядит вот так (сорри за качество картинки, фото не мое):



Сама идея — удобная. У тебя есть единый центр, где собраны все ROMы, которые ты запускаешь из 1 места. А дальше эмулятор уже сам подхватывает выбранный образ и запускает игру.

Проблема только в том, что предустановленные эмуляторы крайне ограниченны в настройках. Они все растягивают картинку на full screen при этом безбожно ее сплюскивая (я никогда не понимал людей, которые растягивают сигнал 4:3 на свой широкоформатный телек и потом любуются на приплюснутые рожи). С настройкой органов управления тоже не фонтан…

В общем, захотелось мне повторить тот же опыт, но на более качественных и настраиваемых эмуляторах.

Сначала попробовал мульти-платформенный эмулятор RetroArch. Сам эмулятор все хвалят, да и настроек там навалом… Но мне не понравилось.

Во-первых, оформление библиотеки ромов не слишком удобно. Даже с поставленным VektorGUI, призванным как раз структуризовать это дело, оно выглядит примерно так:
image


Да и с самим эмулятором у меня были проблемы. То отваливалось управление, то эмулятор стартовал не выбранный РОМ, а ту игру, которая была в памяти до этого… В общем, пошел я искать варианты дальше.

Второй вариант, который я нашел (и на котором пока остановился) — это Gamesome Frontend (кстати, вот только сейчас, постя ссылку на него на Хабр, обратил внимание на слово «vektor» в названии бандла! оказывается, это — тот же автор)

image


Сами эмуляторы в него не входят, но можно подключить и настроить внешние. Все так же отсортировано по платформам, все настраивается. Кстати, у меня с этим фронтендом была проблема. После старта у меня был чистый экран и не хотели отображаться платформы. Ставил я его 2 раза (второй раз после перепрошивки) и оба раза была такая ерунда. Как побороть — не знаю. Я просто включал-отключал платформы, подключал эмуляторы, настраивал пути, перезапускал приложение… И в очередной раз оно отобразило список платформ и заработало.

И вот здесь мы подходим к тому, почему я перепрошил консоль…

Перепрошивка.


Моим единственным желанием было чтобы оно просто работало. Но ведь вы понимаете, что с андроидом все так просто не бывает? :)

Как я уже упоминал выше, изначально клавиши A/B и X/Y перепутаны местами. Самый просто вариант — это перебиндить их в эмуляторе как надо. Но это не решает некоторых проблем. Например, в системе «B» работает как «назад». И эта «B» на месте «A» во всех эмуляторах. Т.е. сделав привычную нижнюю кнопку кнопкой подтверждения (А) в эмуляторе, она все равно останется кнопкой «назад» в системе. Это разрывает мозг.

Но это — не было причиной перепрошивки (да и для фикса этого поведения перепрошивка не нужна, ниже расскажу, как).

А причиной явилось вот что. У нас на консоли есть правый аналоговый стик. Который не используется в играх. И чтобы он не «пропадал», мне захотелось на него повесить такие функции, как выход в меню эмулятора или перемотку времени, например. А если вы хотите играть с сохранениями, то можете захотеть повесить на него, например, quick save/load. И тут я столкнулся с главной проблемой. В оригинальной прошивке от EXEQ (даже самой последней), всеми сторонними приложениями (эмуляторами) правый стик воспринимается как аналог крестовины (D-Pad). И ничего с этим не сделать.

И именно по этому я решил перешиться.

Сначала я попробовал кастомную прошивку Skelrom. Но поставив ее сверху на родную EXEQ, обрел кучу проблем. Сразу отвалилась почти вся внутренняя память и андроиду стало не хватать места даже чтобы запустить часы. Возможно, это как-то можно было бы решить, но я решил попробовать поставить прошивку от китайского близнеца JXD. Да и отзывы о Skelrom на 4pda были не лучшими. У людей что-то постоянно глючило.

Прошивка от JXD s5110b встала как родная! (Сам процесс перепрошивки предельно простой — скачиваете архив, распаковываете его на microSD и включаете приставку удерживая кнопку увеличения громкости. Дальше все само).

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

Решение проблем.


Теперь я перечислю те проблемы, которые остались, и как я их решал.

Перепутанные кнопки A-B и X-Y

Эта проблема осталась и в прошивке от JXD. Решается довольно просто. Вам нужно отредактировать один системный файл /system/usr/keylayout/Generic.kl. Я не слишком силен в Андроиде и вариантах решения этой задачи, но лично я для этого поставил бесплатный SHH-сервер Rooted SSH/SFTP Daemon и подключился к своему андроиду с ПК по SFTP, где уже мог скачивать / заливать файлы на девайс.

Итак, в этом файле нас будут интересовать бинды клавиш BUTTON_A, BUTTON_B, BUTTON_X и BUTTON_Y. Каждой из них сопоставлены цифровые скан-коды 304...308. Если вам интересно узнать, какие коды посылают клавиши, вы можете воспользоваться бесплатным приложением KeyEvent Display, либо же моей картинкой:



Если же вам нужно готовое решение, то вот оно:

key 304   BUTTON_B
key 305   BUTTON_A
key 306   BUTTON_C
key 307   BUTTON_Y
key 308   BUTTON_X
key 309   BUTTON_Z


Правите соответствующий кусок файла, заливаете его назад (кстати, у меня почему-то не работала переливка через SFTP и пришлось стереть и залить файл заново. если будете делать так, не забудьте потом выставить ему права на read).

Кнопки «START», «A» и «B» работает в системе как «домой».

Очевидно, это неправильно.

Хочется, чтобы в самой системе вы тоже могли управляться с помощью хардварных кнопок, а не тыкать в тач.

Для этого служит другой системный файлик, /system/usr/keychars/Generic.kcm. В нем вы можете настроить действия железных кнопок как хотите. Я сделал так:

key BUTTON_A {
    base:                               fallback ENTER
}

key BUTTON_B {
    base:                               fallback BACK
}

....

key BUTTON_START {
    base:                               fallback ENTER
}

key BUTTON_SELECT {
    base:                               fallback MENU
}


Кнопки «A» и «SELECT» работают как подтверждение, а кнопка «B» как «назад». Теперь в том же Gamesome можно ползать туда-сюда между категориями не прикасаясь к экрану.

Расход аккумулятора в режиме сна.

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

На форумах советуют CPU Adjuster, где необходимо создать профиль на событие «экран выключен» и выставить в нем все по-минимуму. Мне он не понравился — как-то он кривой и неудобный. Да и несмотря на профили, с ним у меня начали тормозить эмуляторы. Так что я поставил CPU Tuner. Также советую настраивая подобные программы, не давать им понижать скорость процессора если он занят хотя бы на 20%. По моему опыту, эмулятор Сеги жрет около 25% CPU. Но если «умный» тюнер будет пытаться дропать частоту, то велика вероятность нарваться на неприятные микро-фризы.

...

На этом пока с проблемами (надеюсь) все…

Summary рецептов.


Итак, купив приставку, я советую сделать следующее:
  1. Скачать последнюю прошивку от JXD S5110b (именно «b»!) и прошиться (распаковать ее на microSD, запустить девайс с зажатой «VOL+»).
  2. UPD: Установить поверх него SkelROM
  3. Исправить путаницу с кнопками A/B и X/Y, а также системный биндинг кнопок «B» и «Start» (см. выше).
  4. Поставить CPU Tuner (или SetCPU) и настроить профиль для выключенного экрана для предотвращения утечки батарейки в режиме сна, а также настроить performance профиль для работы.
  5. Поставить Gamesome Frontend
  6. Поставить эмуляторы. Мой выбор: NES.EMU, Snes9xEX+, GBA.EMU, MD.EMU
  7. Для launcher'а я остановился на Apex Launcher


Резюме.


У консоли два основных минуса:
1. Дешевый экран. Хотелось бы побольше разрешение, получше цветопередачу и поярче.
2. Аккумулятор на 3 часа игр. Энтузиасты, кстати, уже перепаивают на более емкие варианты.
(3). Мелочь — отсутствие хардварных кнопок «назад» и «домой»

При этом много плюсов:
1. Хорошая цена (4000 руб за официальную EXEQ и 3000 руб за JXD)
2. Удобный форм-фактор
3. Хорошие кнопки, два стика
4. Быстродействия почти хватает на плавную игру в NES/SNES/Sega/GBA. К сожалению, все равно время от времени бывыют подтормаживания даже на Сеговском эмуле (на Super Nintendo — тем более). Не критично, но немного обидно. Немного притормаживает на Nintendo DS, но я особо не гонял этот вариант.

UPDATE


Все-таки я поставил Skelrom 1.5 поверх прошивки от JXD. Он встал хорошо. И быстродействие значительно улучшилось, на Sega/SNES перестало подтормаживать местами. Видимо, причиной тому плохой авто-подстройщик частоты CPU, который был изначально. И который не удавалось перенастроить никакими CPU Tuner'ами, т.к. настройки постоянно сбрасывались в дефолтные.
Tags:
Hubs:
+42
Comments 29
Comments Comments 29

Articles