Использование Redmi 7a в качестве портативной пристаки

May 21, 2023

Как-то раз другу на день рождения подарили Anbernic RG280V - портативную консоль на Linux, которая может запускать ретро-игры через встроенные эмуляторы или любые другие игры, портированные под Misp. Я загорелся этой идеей и начал искать похожие приставки в РФ. Оказалось, что даже базовая версия, которая запускает всё, вплоть до PS1, стоит около 5000 рублей, что совсем не дёшево для такого класса устройств. Долго промучавшись с выбором и обходив все магазины, ниже 4-5К рублей я так и не нашёл. А приставки, которые эмулируют что-то лучше PS1, например, PSP, стоят как хороший смартфон, около 15К рублей.

Разузнав у друга ещё немного, я понял, что вариантов заполучить заветную пристаку у меня не много. Либо явно переплачивать за устройство из 2008 года, либо переплачивать за PinePhone - телефон на Linux, с открытым исходным кодом, и совершенно конским ценником в 350-600$, то есть по цене Steam Deck, при этом железо явно слабее.

Другим вариантом было покупка телескопического геймпада для смартфона. Но найти такой в РФ тоже оказалось затруднительно. Те, что были на рынке продавались за баснословные 4.5-5 тысыч рублей, что равно хорошему геймпаду Xbox Series X. Поэтому оставалось уповать на китайцев, и я всё-таки нашёл, что искал.

Хардварная часть

Смартфон Xiaomi Redmi 7a, 16GB 2GB RAM, Qualcomm SDM439 Snapdragon 439, Octa-core (4x1.95 GHz Cortex-A53 & 4x1.45 GHz Cortex A53), Adreno 505. Был куплен в 2020 году за 7500 рублей.

В качестве телескопического геймпада выбор пал на China Brands bsp-d3 (хотя на Озоне пишет розовый, я взял белый, чёрного не было), не потому, что он мне понравился, но потому что выбора особого не было. Остальные телескопические геймпады были с каким-то своими проблемами, а этот на Reddit даже хвалили. Геймпад подкупил подключением по Bluetooth, так как Redmi 7a не имеет USB TypeC порта. Стоил мне 1270 рублей, в принципе по текущим меркам не дорого. До этого я использовал Artplay AND-A003BT, отличный геймпад за свою цену, но, к сожалению, не для смартфона. Даже при наличии крепления, смартфон его перевешивает, и играть таким образом неудобно. К тому же его не возьмёшь с собой, так как места он занимает прилично.

Карта памяти Samsung EVO на 64Гб была куплена ещё до эпопеи с эмуляторами за 1200 рублей, на замену Kingstone, которая залочилась на запись. У друга была похожая проблема с Samsung, на другой модели Redmi, но там всё решилось формитированием, мне не повезло. Карта очень важна для скорости эмуляции, потому что с неё будут напрямую читаться ромы.

Итого стоимость всего железа вышла 7500 + 1270 + 1200 = 9970. Для сравнения, Retroid Pocket 3+ с поддержкой PSP игр, стоит 15000 рублей, это отдельное громоздкое устройство на том же Android. Anbernic RG353P за ту же стоимость на Linux дополнительно может эмулировать DreamCast, при этом обладает меньшим, почти квадратным, экраном. При этом у большенства других Anbernic за меньшую стоимость отсутсвует возможность нормальной эмуляции PSP игр и, часто, отсутсвует модуль Wi-Fi.

UPD 1.07.2023: Не заказываете у продавца Panda Fu, лучше поискать другого. Прождал геймпад месяц, в результате заказ отменили. Пришлось заказывать у другого продавца на 100 рублей дороже. Итого получилось 7500 + 1356 + 1200 = 10056. Всё ещё дешевле Anbernic или Retroid. Отдельно был куплен чехол для Nintendo Switch (большая версия) - Artplays в DNS за 799 рублей. К сожалению, геймпад не подошёл по высоте, но чехол всё ещё можно закрыть.

Для подключения геймпада к смартфону, вопреки инструкции, нужно нажать Power On + B (красная кнопка). Геймпад определится как Wireless Gamepad, и будет работать со всеми эмуляторами нативно.

Установка софтверной части

С момента покупки Redmi 7a я сразу же вырезал GAPPS и другой мусор, что дало неплохой прирост к скорости работы телефона. Телефон был дополнительно переведён в регион Великобритании, по словам некоторых блоггеров это отключает всю телеметрию, и я могу с уверенностью сказать, что это правда, вся телеметрия автоматически отключилось и ещё куча мусора была удалена. Единственная проблема, что для использования приложения “Безопасность”, которое так же запускает приложение “Ускорение игр” всё-равно придётся пожертвовать приватностью и согласиться с политикой приватности Xiaomi.

Операционная система телефона используется MIUI 11, версия Android 10, версия ядра 4.9.193-pref-gada4d09a. В принципе, можно поставить Lineage OS вполне официально, но я пока что не стал этого делать.

К сожалению, хоть процессор и поддерживает ARM64, система всё ещё ARM (32 бита), поэтому некоторую скорость мы потеряем. И ещё одна ремарка: телефон у меня с 2Гб RAM, вполне возможно, что этого недостаточно для нормальной эмуляции некоторых игр.

Эмуляторами были выбраны:

Дополнительный софт:

Дополнительные игры ставим сами, но я не тестировал ничего, кроме Risk of Rain, который идёт отлично, но не поддерживает геймпад. Скачать можно из моего приватного репозитория. Там есть и другие игры, не требующие геймпада.

Настройка RetroArch

Фронтенд для libretro, требует ручной настройки.

  1. Заходим в настройки (шестерёнка), “Интерфейс пользователя”, устанавливаем флаг “Расширенные настройки” в положение вкл. Нажимаем на домик “Закрыть RetroArch”.
  2. Настройки->Видео->Вывод->Ориентация экрана, ставим 90 deg, нажимаем на домик, обязательно “Закрыть RetroArch”, иначе настройки не сохранятся!
  3. Снова на домашнем экране выбираем “Загрузить ядро”->“Скачать ядро”, скачиваем интересующие ядра.
  4. (Опционально) По-умолчанию у мобильного RetroArch установлен ужастный интерфейс, ИМХО, XCB работает куда лучше. Заходим в Настройки->Драйверы->Меню. Снова на домашний экран, “Закрыть RetroArch”. Открываем RetroArch уже с новым, удобным интерфейсом.

В отличии от Lemuroid, RetroArch позволяет настроить пути для сохранений и прочих конфигов. Но требует биосы для многих систем.

Для некоторых игр, чтобы они появились в плейлисте, придётся пересканировать в ручную, с ручным указанием ядер и расширений фалов. Игры Dreamcast часто сжимают в CDI формат, который RetroArch запускает, но при сканировании не видит. Игры Genesis часто идут в формате bin, который так же не видится плейлистом.

Наименование игры Ядро Комментарий
Sonic Adventure Flycast Идёт в 30 или 60 fps, просадок нет.
Dark Stone PCSX ReARMed Не могу сказать точный FPS, возможно игра залочена на 30.
M.D.K. PCSX ReARMed Скорость нормальная.
Kao the Kangooru Flycast Вылет на запуске.
Worms 2 in 1 Flycast Armaggeddon не запускается, World Party вешает намертво эмулятор.
Legacy of Kain: Soul Reaver Flycast Запускается и работает отлично.
Orcs & Elves DeSmuME Запускается и работает, но только если польностью отключить звук в эмуляторе. Со звуком тормозит, греет смартфон и может вылететь.
Commander Keen in Aliens Ate My Baby Sitter! (EGA) DosBox-Core Запускается и работает отлично, но нужно настраивать досбокс на правильные клавишы и комбинации.
Mega Man - The Wily Wars PicoDrive (MAME) Работает отлично.

Достать большинство ромов можно тут.

Настройка Lemuroid

Наиболее простой фронтенд libretro. Переходим в настройки (шестерёнка), выбираем каталог с ромами и нажимаем просканировать. Он сам найдёт необходимые ядра и установит их.

Из минусов: нет настроек ядер; cканирование довольно долгое. Lemuroid устанавливает ядра во внутреннюю память, занимая место, это надо иметь в виду обладателям 16Гб внутренней памяти.

Я не рекомендую играть в PSP игры через Lemuroid! Как раз из-за отсутсвия любых настроек ядер. PSP игры часто требуют настройки, чтобы нормально играть даже на флагманских устройствах.

Единственная игра, в которую я не смог поиграть на этом эмуляторе - DarkStone.

Достать большинство ромов можно тут.

Наименование игры Комментарий
Dark Stone Не запускается.
M.D.K. По ощущениям работает лучше, чем на RetroArch, но какое ядро используется не очень понятно.

Настройка PPSSPP

Тут всё сложнее. В зависимости от игры настройки будут отличаться, но эмулятор позволяет настраивать отдельно каждую игру. В следующей таблице я буду описывать все игры, что я пробовал и способы их настройки для Redmi 7a. Прошу заметить, что я не проходил большенство этих игр, честно сказать, многие были скачены для проверки, другие не зашли лично мне.

Наименование игры Производительность Настройки для комфортной игры Комментарий
Castelvania: The Dracula X Chronicles 30 fps, 99%
Dante’s Inferno 20-30 fps, 40-98% Включить вершинный кэш; Включить ленивое кэшеирование; Включить рендеринг дублирующихся кадров Звук хрипит. На эффектах сильные тормоза.
Dracula 60 fps, 99%
FlatOut: Head On 30 fps, 98-110% Настройки стандартные, но надо отключить музыку в настройках игры, иначе игра заикается. Музыка не работает из-за лицензии на кодек.
God of War 15-30 fps, 50-100% Включить пропускать чтение ГП; Включить вершинный кэш; Включить ленивое кэшеирование; Включить рендеринг дублирующихся кадров; Включить автопропуск кадров. Звук хрипит, в замесах лаги. Очень требовательная игра, но с вышеописанными настроками относительно играбельно.
GTA: Vice City Stories 30 fps, 100% Настройки стандартные, вроде идёт нормально, графика хуже, чем на нативном порте, но зато и производительность выше.
Lego Star Wars 2 30-60 fps, 50-100% Включить вершинный кэш; Включить ленивое кэшеирование текстур; Включить пропуск кадров, но НЕ включать автопропуск. Местами игра откровенно тормозит, причём в закрытых локациях, где ничего не происходит. В открытых обычно лучше. С вышеописаными настройками почти стабильные 30 FPS. На больших эффектах (двигатели звёздного разрушителя) бывают просадки до 5 fps.
Metal Slug XX 30 fps, 100%
Metal Gear Solid: Classic Collection 60 fps, 100% Фанатский порт.
Micro Machines v4 30 fps, 100%
Ratchet & Clang: Size Matters 30 fps, 100%
Need for Speed: Carbon 25-30 fps, 0-100% Настройки стандартные, твики не помогают, переодически заикается.
Zenonia 15 fps, 100% Стандартные, скорость на реальном железе соотвествует. К сожалению, выше 15 fps никто ещё сделать не смог, игра залочена на них.
The Elder Scrolls: Oblivion 30-45 fps, 30-70% Включить вершинный кэш; Включить ленивое кэшеирование текстур. Неизвестно, как игра шла на реальном железе, так как она никогда не вышла, но на смартфоне она идёт когда как. Есть значительные просадки, звук хрипит.
Star Wars: The Force Unleashed 15-30 fps, 30-75% Разрешение рендеринга поставить 1x; Включить автопропуск кадров; Включить вершинный кэш; Включить ленивое кэшеирование текстур. Игра работает на стандартных настройках, но все движения как будто замедленны. С вышеперечисленными настройками можно играть со скрипом, комфортным это назвать язык не поворачивается.
Asphalt: Urban GT2 33 fps, 85-103% Включить вершинный кэш; Включить ленивое кэшеирование текстур; Другая скорость 200%; Другая скорость 2 Отключено; Рендеринг дублирующихся кадров включить. Без настроек тоже идёт, но чувсвтуется какое-то странное подфризивание.
Dexter 30 fps, 100%
Star Wars Lethal Alliance 33 fps, 75% Включить автопропуск кадров; Включить вершинный кэш; Включить ленивое кэшеирование текстур. Всё-равно чувствуются заикания, звук хрипит.
OutRun 2006 30 fps, 100% Включить вершинный кэш; Включить ленивое кэшеирование текстур. Работает, но с фреймрейтом происходит что-то странное.
The 3rd Birthday 30 fps, 100% Работает на стандартных настройках без просадок.

Достать PSP ромы можно тут.

Настройка Freedoom

В настройках необходимо выставить путь до файлов. Помните, что нужна папка config, в её корень кидаются IWAD (главные вады). В папку wads кидать любые модификации. Всё остальное сильно зависит от вада, по крайней мере Freedoom 1-2 и DOOM 1-2 идут идеально. Hedon не смог запустить, возможно из-за древнего GZDoom.

Рекомендую мой форк Freedoom, пересобранный без Freedoom 1-2, SIGIL и 10 sectors. Размер APK всего 9Мб, занятое место 23Мб.

ОБН: Всё-таки не все вады даже запускаются. DOOM, DOOM 2, Freedoom, Freedoom 2 работают хорошо. Ниже таблица того, что я пробовал.

Наименование вада Настройки Комментарий
Shadow of the Wool Ball (ShadowOfTheWoolBall.wad) Возможно, стоит увеличить размер шрифта для чтения текстов. Запускается и работает без проблем.
Rise of the Wool Ball (ROTWB.wad) Возможно, стоит увеличить размер шрифта для чтения текстов. Запускается и работает без проблем.
Hedon (Hedon.pk3) Чёрный экран без вылета.
CJs Netronian Chaos (CJs_Netronian_Chaos.pk3) Чёрный экран, видимо несовместимость.
CJs Rebel Rumble (CJs_Rebel_Rumble.pk3) Оружие, монстры работают.
Reelism 2 (reelism2_v1.23.pk3) Чёрный экран и вылет.

Достать официальные и неофициальные WADы и PK3 можно:

Настройка Moonlight

Следуйте инструкции на сайте, чтобы настроить Moonlight на ПК.

В настройках на Android, так как у Redmi 7a нет поддержки 5GHz Wi-Fi, стоит выставить разрешение 720p, частота кадров 30 fps, битрейт видео 1.0Мбит\с. Другие настройки, кроме управления, не трогаем.

Телефон так же не “тянет” если включён звук через ПК на телефон и одновременно подключены Bluetooth наушники, видео начинает прерываться или рассыпаться пикселами. В обычных наушниках проблем нет. С чем связано - непонятно.

Заряд батареи

Реально я замерял заряд только на PPSSPP. За час активной игры (без геймпада) уходит около 15-20% батареи. Учитывая, что смартфон был куплен летом 2020, думаю, это неплохой показатель. Путём нехитрых подсчётов получаем 3.5-4 часа игры в игры до 2008 года.

Судя по статистике батерии в MIUI, больше всего (51%) использовал экран, что неудивительно. Эмуляторы потребляют, в лучшем случае, 20-30% CPU, судя по статистике “Ускорения игр”.

Заключение

Если не хочется переплачивать за Anbernic, за который китайцы заломили какую-то нереальную цену в РФ, и хочется поиграть в относительно новые игры, до 2009 года, то это решение может стать для вас спасительным. Смартфон всегда в кармане, телескопический геймпад много места не занимает. К тому же смартфон начального уровня эмулирует сложные 3D игры вполне достойно. Redmi 7a покупался за 7500 рублей в 2020 году.

Ещё один плюс устройства на Android в том, что это полноценный компьютер, на котором не только можно играть, но и звонить, создавать заметки, использовать календарь, управлять сервером через ssh, читать книги… Anbernic это игровое устройство, которое “заточено” для запуска игр.

У Anbernic часто нет Wi-Fi модуля, что делает невозможным его использование в качестве стриминговой платформы “больших” игр с ПК.

Минусом может стать необходимость настройки каждой отдельной игры, и заряд аккумулятора.