Repository navigation
Releases: mamaich/dArkOS_rg52mini
Release list
dArkOS RG52 Mini 1.3 (10252026)
Сборка dArkOS для AISLPC RG52 Mini (Rockchip RK3562): Debian Trixie, EmulationStation-fcamod, RetroArch и три десятка отдельных эмуляторов.
Это форк bmdhacks/dArkOS_rg52mini, а тот, в свою очередь, форк christianhaitian/dArkOS.
Как обновить с 1.2 или 1.1
Новая версия ставится по сети, без перезаписи карты. Пакеты есть и для 1.2, и сразу для 1.1.
- Подключите Wi-Fi и откройте Options → Update → Check for updates. Пакет с 1.2 весит 134 МиБ, с 1.1 — 144 МиБ.
- Подтвердите установку. После неё устройство перезагрузится.
Без сети: скачайте пакет для своей версии из этого релиза (dArkOS_rg52mini_ota_1.2_20261018052939-to-1.3_20261025224049.tar для 1.2, dArkOS_rg52mini_ota_1.1_20261014145009-to-1.3_20261025224049.tar для 1.1) и положите в папку update раздела с играми. На общей карте с GammaOS это ROMs/update во внутренней памяти Android. Options → Update предложит пакет с карты раньше, чем пойдёт в сеть.
Что важно знать:
- Ваши данные. Ваши изменения в настройках, пакеты, поставленные через
apt, и включённый Quick Mode обновление сохраняет. Если вы правили файл, который меняет обновление, ваш вариант остаётся, а новый ложится рядом как<имя>.ota-new. - Откат. Перед установкой система делает снимок раздела. Вернуться на прежнюю версию можно из того же меню.
- Первый запуск игр 3DS. Драйвер Mali обновлён, поэтому каждая игра 3DS при первом запуске после обновления заново компилирует шейдеры: загрузка дольше обычного или игра поначалу подтормаживает. Это бывает один раз.
- Общая карта с GammaOS. Разделы GammaOS и загрузчик обновление не трогает.
Как записать начисто
- Скачайте все тома архива и распакуйте первый.
- Получившийся
dArkOS_rg52mini_1.3.imgзапишите на карту любой программой вроде Rufus, balenaEtcher илиdd. Образ занимает 12 ГиБ, поэтому нужна карта от 16 ГБ. - PortMaster ставится сам при первом запуске порта, сеть для этого не нужна.
sha256 образа: 19c2ef907896b4365f87fe39b2a1b10280c6347956aeb6d3988312cf6954b5b0. Суммы томов и пакетов обновления лежат в SHA256SUMS.
Что нового по сравнению с 1.2
Nintendo 3DS.
- Новая система: эмулятор Azahar в RetroArch с изменениями azahar-nano от GammaOS и оптимизацией под профиль, снятый на этой консоли. Игры кладутся в папку
3ds; на общей карте с GammaOS ES видит и её папкуn3ds. - Super Mario 3D Land идёт с полной скоростью, 60 кадров в секунду.
- Castlevania: Lords of Shadow – Mirror of Fate — около 21 кадра вместо 9. Игра рисует оба глаза стереокартинки вперемешку, и для таких игр в настройках ядра (Quick Menu → Core Options → Graphics) есть два пункта: Interleaved Right Eye Skip и GPU Flush Lag. По умолчанию они стоят на Auto: включены только для проверенных игр (пока это одна Castlevania). Если другая 3DS-игра тормозит, их можно включить и сохранить для неё (Manage Core Options → Save Game Options). Если пропадут эффекты, появится мерцание или застынет верхний экран, их надо выключить.
- Realtime Audio (Core Options → Audio): если игра идёт медленнее полной скорости, звук играет в реальном темпе, а не рвётся. Включён по умолчанию.
- Читы. Quick Menu → Cheats показывает читы игры из базы GammaOS (коды CTRPF, 60FPS и Sharkive, 752 игры). Включите нужные и нажмите Apply Changes. Список с отметками хранится в
ROMs/cheats/3ds/azahar, свои читы кладите вcustom/рядом (формат описан в README.txt). На общей карте с GammaOS папка одна на обе системы. - Сохранения через RetroArch делаются за 1,4 секунды вместо примерно 27.
- Экраны меняются местами кнопкой Back. Раньше это делал L3, который нажимается сам при сильном нажатии на левый стик.
PlayStation 2.
- Вместо форка PCSX2 теперь ARMSX2. Jak and Daxter больше не зависает и рисуется без артефактов. Сборка оптимизирована под профиль, снятый на этой консоли: вступление Jak and Daxter — 34 кадра против 31 у той же версии без оптимизации.
- God of War быстрее: эмулятор читает буфер кадра прямо в тайле, без копирования (26,6 кадра вместо 25,2 на фиксированных частотах).
- Меню паузы (Select+X) больше не закрывает игру.
- У PS2 появились логотип и картинка в теме nes-box.
Скорость и нагрев.
- Когда игру ограничивает GPU, а консоль греется, процессор теперь отдаёт свою часть теплового запаса видеочипу. God of War на горячей консоли — 28 кадров вместо 25–27. Работает для всех игр в режимах performance и overclock.
- Игры без выбранного в ES режима частоты запускались с режимом ondemand вместо performance. Super Mario 3D Land — 26,7 кадра вместо 24.
- N64 (mupen64plus_next): графика рисуется в отдельном потоке. AeroGauge — 57 кадров вместо 54, заставка Zelda — 56–57 вместо 52–53.
- Saturn (Yaba Sanshiro) больше не падает в Resident Evil.
Vulkan.
- Второй драйвер Vulkan — malisx2. В EMULATOR SETTINGS у систем, которые рисуют через Vulkan, появился пункт VULKAN DRIVER: AUTO, MALI или MALISX2. malisx2 компилирует шейдеры в несколько раз быстрее штатного драйвера, поэтому первый запуск игры меньше подтормаживает. Зато рисует он медленнее: Castlevania примерно на четверть, God of War на 5%. У GameCube этого выбора нет: Dolphin на malisx2 не запускается. По умолчанию (AUTO) используется штатный драйвер. Выбор сохраняется при выходе из меню кнопкой B. Прежний пункт Tools «Vulkan Driver Toggle» убран.
- Драйвер Mali обновлён с g29p1-4 до g29p1-5.
Порты.
- Свой gl4es в системе. Порты PortMaster, которые рисуют через gl4es (OpenGL поверх GLES), обычно приносят его с собой в папке
gl4esилиgl4es.aarch64. В dArkOS теперь есть более новый gl4es с исправленными ошибками, например с исправлением шейдеров, из-за которого в Don't Starve не работали bloom и размытие. Если в таком порту картинка с артефактами, переименуйте его папкуgl4es(например, вgl4es.off), и порт возьмёт системную версию. Если станет хуже, верните прежнее имя. - PortMaster ставится сам перед первым портом. Раньше порт на карте без PortMaster запускался без управления.
- Порты, которые просят у SDL полноэкранный режим «как у рабочего стола» (например, GTA San Andreas), показывали увеличенную четверть экрана. Теперь они показывают весь экран.
Сон и питание.
- Глубокий сон. В сне консоль теперь тратит около 42 мА вместо 185: от полного заряда хватает примерно на четыре с половиной дня, а не на сутки.
- Через два часа сна на батарее консоль выключается. Игра, оставленная на паузе во сне, при этом теряется. На зарядке консоль просто спит дальше.
- Подключение и отключение зарядки больше не будит консоль.
- Заставка ES «black» только гасит экран. На батарее консоль теперь засыпает, если заставка проработала ещё столько же, сколько ES ждала до неё.
- После сна снова горят светодиоды питания, как их включил загрузчик.
- «Shut down» в меню ES иногда оставлял консоль включённой с тёмным экраном. Теперь выключение повторяется, пока не произойдёт.
- При выключении во время игры система ждёт закрытия эмулятора не больше 10 секунд. Раньше с N64 она ждала полторы минуты.
- Если ES перезапускалась при включённой заставке «black», экран оставался тёмным. Теперь яркость возвращается.
Кнопки.
- Home больше не включает и не выключает Bluetooth. Раньше это происходило при каждом вызове меню RetroArch (Home+X).
- Меню DraStic (NDS) открывается на Home+X вместо L3.
EmulationStation.
- Системы отсортированы по названиям консолей, как подписаны их логотипы. NES называется «Nintendo» и стоит перед Nintendo 3DS.
Обновление по сети. Если на разделе мало места, клиент сначала удаляет снимок прошлого обновления. Раньше следующее обновление могло отказаться ставиться из-за нехватки места.
Как проверено
- Обновление 1.2 → 1.3 с карты проверено на общей карте с GammaOS v1.14. Пакет из
ROMs/updateустановился, консоль перезагрузилась в 1.3, загрузка отмечена как успешная, снимок 1.2 для отката на месте. Система после обновления совпала со свежим образом 1.3 файл за файлом, кроме того, что относится к самой консоли и её владельцу: ключи SSH, Wi-Fi, включённые службы, настройки RetroArch и ES, папки общей карты. - После обновления отвечают оба драйвера Vulkan, Mali g29p1-5 и malisx2. Консоль проверена в работе, проблем не найдено.
- Путь с 1.1 проверялся на тестовой сборке 1.3 20 октября. Пакет 1.1 → 1.3 этого релиза собран тем же способом из опубликованного образа 1.1, но на консоли не ставился.
- Скорость в разделе «Что нового» измерена на этой консоли на тестовых сборках 1.3.
Что не работает
Вывод на HDMI. Подключение кабеля ничего не меняет. Разбор и план лежат в docs/KNOWN-ISSUES.md и docs/TODO.md.
Vulkan у 32-битных программ. 32-битный драйвер Mali от Rockchip не поддерживает Vulkan, поэтому у retroarch32 и других 32-битных программ Vulkan нет. 64-битный RetroArch с Vulkan работает.
MIDI-музыка в ScummVM. В играх с MIDI (например, Day of the Tentacle) ScummVM при запуске пишет, что устройство «fluidsynth» не найдено. После OK игра идёт с запасным устройством.
Подробности
Рабочие записи по порту лежат в docs/, на английском. Там прямо сказано, что измерено на устройстве, а что является выводом. Как устроено обновление по сети, описано в docs/OTA.md.
dArkOS RG52 Mini 1.2 (10182026)
Сборка dArkOS для AISLPC RG52 Mini (Rockchip RK3562): Debian Trixie, EmulationStation-fcamod, RetroArch и три десятка отдельных эмуляторов.
Это форк bmdhacks/dArkOS_rg52mini, а тот, в свою очередь, форк christianhaitian/dArkOS.
Как обновить с 1.1
Это первое обновление по сети. Новая версия ставится без перезаписи карты.
- Подключите Wi-Fi и откройте Options → Update → Check for updates. Пакет весит 46 МиБ.
- Подтвердите установку. Она занимает меньше минуты, после неё устройство перезагрузится.
Без сети: скачайте dArkOS_rg52mini_ota_1.1_20261014145009-to-1.2_20261018052939.tar из этого релиза и положите в папку update раздела с играми. На общей карте с GammaOS это ROMs/update во внутренней памяти Android. Options → Update предложит пакет с карты раньше, чем пойдёт в сеть.
Что важно знать:
- Ваши данные. Ваши изменения в настройках, пакеты, поставленные через
apt, и включённый Quick Mode обновление сохраняет. Если вы правили файл, который меняет обновление, ваш вариант остаётся, а новый ложится рядом как<имя>.ota-new. - Откат. Перед установкой система делает снимок раздела. Вернуться на 1.1 можно из того же меню: Roll back to dArkOS 1.1.
- SSH. После обновления карта создаст свои ключи SSH (см. «Безопасность»), и ssh-клиенты один раз предупредят, что ключ сервера сменился.
- Общая карта с GammaOS. Разделы GammaOS и загрузчик обновление не трогает. Это проверено побайтно на карте dual-boot 1.1.
Как записать начисто
- Скачайте все три тома архива и распакуйте первый.
- Получившийся
dArkOS_rg52mini_1.2.imgзапишите на карту любой программой вроде Rufus, balenaEtcher илиdd. Образ занимает 12 ГиБ, поэтому нужна карта от 16 ГБ. - Один раз установите PortMaster: Tools → Install.PortMaster, нужен Wi-Fi. Без него порты не запускаются.
sha256 образа: cf1bee1de4d2a4a93892b3f0942639172a486e998463bf7cf19b6acd12e63d7d. Суммы томов и пакета обновления лежат в SHA256SUMS.
Что нового по сравнению с 1.1
Что не работало в 1.1 и теперь работает:
- Игры в zip в RetroArch. Game Boy, GBA, NES, Game Gear, Neo Geo Pocket, SG-1000 и другие сразу возвращались в ES. Виноват был наш перенос исправления безопасности из апстрима: проверка ошибочно отвергала каждый сжатый файл архива. Теперь проверка такая же, как в апстриме.
- Dreamcast, Naomi и Atomiswave. Ядро flycast для RetroArch собрано под другой процессор (Cortex-A55 вместо A53 этой консоли) и падало через несколько секунд игры. Теперь у всех трёх систем по умолчанию отдельный flycast на Vulkan, он единственный держит 59–60 кадров в Crazy Taxi и Knights of Valour. Выбор эмулятора в ES по-прежнему работает.
- Ядра, собранные под чужой процессор. mupen64plus_next (N64), flycast, puzzlescript и same_cdi (CD-i), а также GameTank теперь собраны под Cortex-A53.
- retrorun. Он никогда не работал на RG52 Mini: не находил геймпад. Теперь работает, и картинка повёрнута правильно. 32-битному retrorun не хватало библиотеки libcurl.
- PC-98 (np2kai). Ядро не загружалось.
- Apple II (linapple). Не запускался: библиотека SDL_image в образе была ссылкой на саму себя.
- ECWolf (Wolfenstein 3D) снова собирается. Меню открывается кнопкой Select.
- Bluetooth на ревизии B. Служба включения Bluetooth при загрузке не дожидалась контроллера и завершалась с ошибкой.
Новое:
- Общая карта с GammaOS. ES видит игры в папках, названных по-ES-DE:
tg16,megacd,fbneo,pico8и ещё два десятка. Если игры есть и в папке dArkOS, и в папке GammaOS для той же машины, система показывается группой из двух папок. Иначе всё выглядит как раньше. - Приоритет эмуляторов. Эмуляторы теперь действительно запускаются с приоритетом nice -19. Раньше система молча оставляла 0.
- Синтезатор MIDI. Служба fluidsynth больше не висит в фоне. Она занимала 7–13 % ядра без звука, и ничего в образе ей не пользовалось.
Безопасность:
- Ключи SSH. Каждая карта создаёт свои ключи SSH при первой загрузке. Раньше у всех карт из одного образа были одни и те же ключи, а их закрытые части лежали в опубликованном образе.
- Библиотеки Mali.
aptиldconfigбольше не могут подменить библиотеки GL и Vulkan от Mali файлами Mesa и Debian при обновлении пакетов.
Как проверено
- Обновление 1.1 → 1.2 по сети проверено на общей карте с GammaOS. Разделы GammaOS, загрузчик и таблица разделов побайтно не изменились. Система после обновления совпала со свежим образом 1.2 файл за файлом, кроме того, что относится к самому устройству.
- Эмуляторы. На консоли запущено 44 игры в 42 системах через команды ES с эмуляторами по умолчанию. Каждая показала картинку, вылетов нет. Среди них PS2, Gamecube, PSP, Dreamcast, Atomiswave, N64, NDS, PSX, Sega CD, PC Engine CD, Apple II, ScummVM и порт Mina the Hollower на Vulkan.
Что не работает
Вывод на HDMI. Подключение кабеля ничего не меняет. Разбор и план лежат в docs/KNOWN-ISSUES.md и docs/TODO.md.
Vulkan у 32-битных программ. 32-битный драйвер Mali от Rockchip не поддерживает Vulkan, поэтому у retroarch32 и других 32-битных программ Vulkan нет. 64-битный RetroArch с Vulkan работает.
MIDI-музыка в ScummVM. В играх с MIDI (например, Day of the Tentacle) ScummVM при запуске пишет, что устройство «fluidsynth» не найдено. После OK игра идёт с запасным устройством. Так было и в 1.1.
Подробности
Рабочие записи по порту лежат в docs/, на английском. Там прямо сказано, что измерено на устройстве, а что является выводом. Как устроено обновление по сети, описано в docs/OTA.md.
dArkOS RG52 Mini 1.1 (10142026)
Сборка dArkOS для AISLPC RG52 Mini (Rockchip RK3562): Debian Trixie, EmulationStation-fcamod, RetroArch и три десятка отдельных эмуляторов.
Это форк bmdhacks/dArkOS_rg52mini, а тот, в свою очередь, форк christianhaitian/dArkOS.
Как записать
- Скачайте все три тома архива и распакуйте первый.
- Получившийся
dArkOS_rg52mini_1.1.imgзапишите на карту любой программой вроде Rufus, balenaEtcher илиdd. Образ занимает 12 ГиБ, поэтому нужна карта от 16 ГБ. - Один раз установите PortMaster: Tools → Install.PortMaster, нужен Wi-Fi. Без него порты не запускаются.
При первой загрузке раздел с играми (EASYROMS, exFAT) занимает всё место на карте после системного раздела. Образ самодостаточен: загрузчик, ядро и система пишутся одним файлом, а внутреннюю память устройства он не трогает.
sha256 образа: add3baef274e553b96db5f0bc126fec94828f0aeba8eac8a0a1127edcc242ebd. Суммы томов лежат в SHA256SUMS.
С 1.0 на 1.1 можно перейти только записью карты, потому что обновление по сети появилось именно в 1.1. Начиная с 1.2, новые версии будут приходить по сети.
Что нового по сравнению с 1.0
Обновление по сети: Options → Update. Новая версия ставится без перезаписи карты.
- Пакет несёт только изменившиеся файлы.
- Перед установкой система делает снимок раздела. Если что-то пойдёт не так, она откатывается на него, а позже откатиться можно и из того же меню.
- Ваши изменения в настройках, пакеты, поставленные через
apt, и включённый Quick Mode обновление сохраняет.
Первое такое обновление будет 1.1 → 1.2.
Кнопка питания и сон.
- Нажатие, пока устройство засыпает, теперь возвращает его, а не теряется.
- Нажатие сразу после пробуждения больше не теряется: устройство засыпает снова, как только пробуждение закончится.
- После сна дольше двух минут нажатие, которое будит устройство, больше не принимается за новое и не усыпляет его снова.
- Заставка «black» гасит экран, но устройство при этом не спит. Раньше нажатие кнопки питания зажигало экран, а через секунду устройство засыпало. Теперь первое нажатие только зажигает экран с прежней яркостью, а следующее усыпляет, как обычно. С другими заставками или без заставки кнопка работает как раньше.
Vulkan у эмуляторов. Слой поворота из 1.0 доработан, и картинка теперь стоит правильно у DuckStation, PCSX2, PPSSPP, Dolphin и flycast. Всё проверено на этом образе.
- flycast раньше показывал картинку вверх ногами и откатывался на GL, теперь он работает на Vulkan.
- Слой даёт программам и уменьшенные полноэкранные режимы: 960×540, 854×480, 800×600, 640×480 и 640×360.
- PPSSPP-2021 работает на GL: у этой версии нет Vulkan на нашем выводе.
Порты на gl4es. Например, в Don't Starve мир был чёрным. Текстуры, в которые порт рисует сам, больше не выходят чёрными.
Bluetooth и Wi-Fi.
- Переключатель Bluetooth теперь действительно выключает его, и после перезагрузки Bluetooth не включается сам. Bluetooth Manager показывает верное состояние.
- В Wifi Manager появился пункт включения и выключения Wi-Fi.
Безопасность.
- Пакеты Debian. Они обновлены до текущих исправлений безопасности: openssl, libpng, curl, xz, rsync, vlc и другие. Источники
trixie-securityиtrixie-updatesдобавлены вsources.list, так чтоapt upgradeна устройстве теперь получает такие исправления. - Wi-Fi в RetroArch. Имя сети больше не проходит через shell. Раньше сеть со специально подобранным именем могла выполнить команду на устройстве.
- Исправления RetroArch. Перенесены исправления безопасности и падений из апстрима после v1.22.2: распаковка zip, загрузчик ядер, netplay, достижения, менеджер читов.
- Сетевые команды RetroArch. Они включаются, например, в Quick Mode и теперь принимаются только с самого устройства.
- Корневой каталог
/. Он снова принадлежит root, а в 1.0 принадлежал пользователю ark. Из-за этого PPSSPP-2021 при каждом запуске оставлял в корне файл/ppsspp_N.ramсо своей памятью, то есть на SD-карте.
Номер версии теперь виден на экране загрузки: «dArkOS 1.1 (10142026)».
Что не работает
Вывод на HDMI. Подключение кабеля ничего не меняет. Разбор и план лежат в docs/KNOWN-ISSUES.md и docs/TODO.md.
Vulkan у 32-битных программ. 32-битный драйвер Mali от Rockchip не поддерживает Vulkan, поэтому у retroarch32 и других 32-битных программ Vulkan нет. 64-битный RetroArch с Vulkan работает.
ECWolf не собирается: его патч не ложится на изменившийся апстрим.
Подробности
Рабочие записи по порту лежат в docs/, на английском. Там прямо сказано, что измерено на устройстве, а что является выводом. Как устроено обновление по сети, описано в docs/OTA.md.
dArkOS RG52 Mini 1.0 (10082026)
Сборка dArkOS для AISLPC RG52 Mini (Rockchip RK3562). Debian Trixie, EmulationStation-fcamod, RetroArch и три десятка отдельных эмуляторов.
Форк bmdhacks/dArkOS_rg52mini, который, в свою очередь, форк christianhaitian/dArkOS.
Как записать
Распакуйте три тома архива (нужны все, распаковывается первый) и запишите .img на карту любой программой вроде Rufus, balenaEtcher или dd. Образ занимает 12 ГиБ, поэтому карта нужна от 16 ГБ. При первой загрузке раздел с играми (EASYROMS, exFAT) занимает всё место на карте после системного раздела.
Образ самодостаточен: загрузчик, ядро и система записываются одним файлом, внутреннюю память устройства он не трогает.
После записи один раз установите PortMaster: Tools → Install.PortMaster (нужен Wi-Fi). Без него порты не запускаются.
Что нового по сравнению с v10072026
Vulkan-программы больше не показывают картинку боком. Экран RG52 Mini портретный (720×1280) и стоит на боку. Программы на GL получали правильную картинку и раньше, а Vulkan-программы видели панель как есть и рисовали боком и растянуто. Это касалось RetroArch на драйвере Vulkan и портов PortMaster на Vulkan (например, Mina the Hollower). Так же ведёт себя и прошивка производителя. Теперь в системе стоит свой Vulkan-слой: программе он показывает альбомный экран 1280×720, а каждый кадр поворачивает на панель небольшим проходом на графическом процессоре. Проверено на RetroArch (Vulkan) и Mina the Hollower. Отключить слой можно переменной DARKOS_VK_ROTATE_DISABLE=1.
RetroArch пересобран со всеми нашими патчами. Из-за ошибки в кэше сборки прошлые образы несли RetroArch (64- и 32-битный) от 14 сентября, и патчи, добавленные позже, в них не попадали. Заодно исправлен драйвер вывода «oga»: он показывал картинку вверх ногами.
DSperate обновлён до свежей версии из апстрима — с исправлением GPU-растеризатора 3D.
Общая карта «dArkOS + GammaOS». dArkOS теперь умеет работать на одной карте с GammaOS Next (Android), с выбором системы в меню U-Boot. Такую карту собирает отдельный сборщик. На ней dArkOS не трогает разделы при первом запуске и берёт игры из хранилища Android (папка ROMs), а файлы, которые создаёт dArkOS, Android может читать и менять. Обычный образ dArkOS работает как раньше.
Пониженное разрешение для игр (из v10072026) теперь собирается в SDL штатно.
Всё, что вошло в v10072026, здесь тоже есть: режим разгона «overclock», возможность разгона памяти до 928 МГц (инструкция), запуск портов от других прошивок без правок, Halo из коробки, звук после выхода из PSP и PS2, своп в zram.
Что не работает
Вывод на HDMI. Кабель не вызывает никакой реакции. Разбор и план — в docs/KNOWN-ISSUES.md и docs/TODO.md.
Vulkan у 32-битных программ. 32-битный драйвер Mali от Rockchip Vulkan не поддерживает, поэтому у retroarch32 и других 32-битных программ Vulkan нет. 64-битный RetroArch с Vulkan работает.
Не собирается ECWolf: его патч не ложится на изменившийся апстрим.
Подробности
Рабочие записи по порту — в docs/, на английском. Что измерено на устройстве, сказано прямо; что вывод — тоже.
dArkOS RG52 Mini v10072026
Сборка dArkOS для AISLPC RG52 Mini (Rockchip RK3562). Debian Trixie, EmulationStation-fcamod, RetroArch и три десятка отдельных эмуляторов.
Форк bmdhacks/dArkOS_rg52mini, который, в свою очередь, форк christianhaitian/dArkOS.
Как записать
Распакуйте три тома архива (нужны все, распаковывается первый) и запишите .img на карту любой программой вроде Rufus, balenaEtcher или dd. Образ занимает 12 ГиБ, поэтому карта нужна от 16 ГБ. При первой загрузке раздел с играми (EASYROMS, exFAT) занимает всё место на карте после системного раздела.
Образ самодостаточен: загрузчик, ядро и система записываются одним файлом, внутреннюю память устройства он не трогает.
Что нового по сравнению с v10062026
Режим разгона «overclock». В EmulationStation в списке губернаторов для эмуляторов (для системы, для игры и по умолчанию) после performance появился overclock:
- процессор — на ступени 2208 МГц; реальная частота около 2135–2165 МГц, на 7 % быстрее
performance; - графика — на ступени 1000 МГц, реально около 960 МГц вместо 900;
- тепловые пороги на время игры подняты с 75/85 до 83/93 °C, троттлинг остаётся включённым.
Режим действует только во время игры: при выходе из неё и при загрузке всё возвращается к обычным частотам. Перенесён из GammaOS Next, где проверен как стабильный. Каждый экземпляр чипа разгоняется по-своему, поэтому, если игра в этом режиме ведёт себя странно, выберите performance. Заодно ступень 2016 МГц на чипах бина L3 теперь работает на 1,125 В вместо 1,100 В. На 1,100 В она реально давала около 1950 МГц, теперь даёт около 2007; это действует во всех режимах.
Разгон памяти до 928 МГц (по желанию, обе ревизии RG52 Mini). Штатно память LPDDR3 работает на 798 МГц. Её частоту задаёт загрузчик памяти во внутренней eMMC устройства, а не образ на карте, поэтому разгон ставится отдельно и один раз — скриптом install-ddr928.sh из порта GammaOS Next. После этого dArkOS сам использует 928 МГц: в /sys/class/devfreq/dmc/available_frequencies появляется 928000000. Скрипт сначала проверяет, что на eMMC стоит именно тот штатный загрузчик, из которого сделан разгон, сохраняет резервную копию и умеет вернуть штатные 798 МГц (--uninstall). Если после установки устройство не загрузится, восстановление потребует режима MaskROM — перед запуском прочитайте инструкцию. В dArkOS скрипт запускается так: sudo sh install-ddr928.sh (проверка без записи: --check).
Пониженное разрешение для игр, которые выставляют свой видеорежим. SDL теперь предлагает играм, кроме родного режима, ещё 960×540, 854×480, 800×600, 640×480 и 640×360. Игра рисует меньше пикселей, а аппаратный блок RGA растягивает кадр на весь экран — тем же проходом, которым и так поворачивает каждый кадр, со сглаживанием. Режимы 4:3 выводятся с чёрными полями по бокам. Doom 3 (dhewm3) с тенями в храме из Resurrection of Evil: 14 кадров в 1280×720, около 35 в 854×480, около 40 в 640×360. Приложения, работающие в разрешении рабочего стола (EmulationStation, RetroArch), этого не замечают. Отключить можно переменной SDL_KMSDRM_SCALED_MODES=0.
Порты, написанные для других прошивок, запускаются без правок. Скрипты из ports, которые не используют PortMaster (например, написанные для Knulli, ROCKNIX или muOS, где всё работает от root), теперь запускаются от root. Порты PortMaster запускаются от пользователя ark, как и раньше. Звуковой буфер теперь общий для всех пользователей, так что порт от root и EmulationStation звучат одновременно.
SDL больше не мешает программам, которые сами обрабатывают SIGSEGV. SDL ставил свой аварийный обработчик и перевыбрасывал сигнал, а программа, для которой такой сигнал часть обычной работы, принимала его за крах. Теперь SDL передаёт сигнал обработчику программы как есть. Так падал нативный порт Halo: Combat Evolved: теперь он запускается из коробки, без правки скрипта.
Звук больше не пропадает после выхода из PSP и PS2. Скрипты запуска PPSSPP и PCSX2 после выхода переключали кодек на выход для наушников, и динамик молчал до выключения устройства. Теперь они возвращают тот путь звука, что был до запуска. То же исправлено в пункте Fix Audio.
Своп в zram включается на каждой загрузке. Из-за циклической зависимости в порядке запуска служб zram-своп (1,5 ГиБ) на части загрузок не включался, и системе оставались только 256 МБ свопа во внутренней памяти.
Всё, что вошло в v10062026, здесь тоже есть: DSperate с 3D через Vulkan, загрузчик со стоковым OP-TEE v1.07, рабочие порты PortMaster.
Что не работает
Вывод на HDMI. Кабель не вызывает никакой реакции. Разбор и план — в docs/KNOWN-ISSUES.md и docs/TODO.md.
RetroArch на драйвере Vulkan показывает картинку боком. На этой портретной панели используйте GL, он стоит по умолчанию. Так же ведёт себя прошивка производителя. Подробности — в docs/KNOWN-ISSUES.md.
RetroArch на драйвере «oga» показывает картинку вверх ногами. Исправление уже в репозитории и войдёт в следующий образ.
Не собирается ECWolf: его патч не ложится на изменившийся апстрим.
Подробности
Рабочие записи по порту — в docs/, на английском. Что измерено на устройстве, сказано прямо; что вывод — тоже.
dArkOS RG52 Mini v10062026
Сборка dArkOS для AISLPC RG52 Mini (Rockchip RK3562). Debian Trixie, EmulationStation-fcamod, RetroArch и три десятка отдельных эмуляторов.
Форк bmdhacks/dArkOS_rg52mini, который, в свою очередь, форк christianhaitian/dArkOS.
Как записать
Распакуйте три тома архива (нужны все, распаковывается первый) и запишите .img на карту любой программой вроде Rufus, balenaEtcher или dd. Образ занимает 12 ГиБ, поэтому карта нужна от 16 ГБ. Раздел с играми расширяется на всю карту при первой загрузке.
Образ самодостаточен: загрузчик, ядро и система записываются одним файлом, внутреннюю память устройства он не трогает.
Что нового по сравнению с v10052026
Ревизия A: кнопка питания больше не перезагружает устройство. Загрузчик v10052026 несёт BL31 с таблицей частот разгона, в которой у графики нет ступени 200 МГц, а драйвер Mali перед каждым выключением графики просил именно её. Запрос отвергался, графика выключалась на рабочей частоте, и на ревизии A это давало перезагрузку по кнопке питания. Теперь ядро ставит 300 МГц — ступень, которая есть в любой таблице. На ревизии B ошибка была видна только в журнале ядра. Исправление найдено и подтверждено на ревизии A в порте GammaOS Next.
Новый эмулятор Nintendo DS — DSperate. В EmulationStation для NDS теперь можно выбрать эмулятор — для всей системы или для отдельной игры; по умолчанию остаётся DraStic. Проверено на устройстве: картинка повёрнута правильно, оба экрана DS один над другим, управление и звук работают, Start+Select выходит из игры. 3D рисуется на графическом процессоре через Vulkan (gpu3d = true; переключается в меню DSperate, если игра рисует неправильно). Для DSperate выставьте в EmulationStation губернатор CPU performance (для системы NDS или для игры): при ondemand процессор сбрасывает частоту, и игры идут на 41–48 кадрах со «икающим» звуком, при performance — 59–60 кадров и чистый звук (замерено на демо Pokémon Diamond & Pearl и Dragon Quest Monsters Joker 2). DraStic этого не требует.
Собираются GameTank и Hypseus Singe (Daphne/Singe) — раньше их патчи не ложились на апстрим. Из Hypseus также убран параметр, из-за которого часть игр не запускалась.
Обновлены Solarus (2.1.4) и ScummVM, в Dolphin исправлены горячие клавиши — из апстрима christianhaitian.
PPSSPP и PPSSPP-2021 больше не делят настройки. Раньше обе версии писали в один ppsspp.ini и портили его друг другу. Теперь у PPSSPP-2021 своя папка, /roms/psp/ppsspp-2021. Сохранения, сделанные в PPSSPP-2021 до этого, остались в /roms/psp/ppsspp — при необходимости перенесите их вручную.
Импорт Wi-Fi из файла. Файл wifikeyfile.txt в папке Tools подключается к сети при загрузке. Загрузку EmulationStation он не задерживает.
Ещё из апстрима: фоновая музыка EmulationStation берётся из правильной папки; добавлена картинка при выключении; исправлены две проверки состояния Bluetooth; добавлены прошивки для USB-донглов Realtek (firmware-realtek).
Для разработчиков: в репозитории появился tools/remote — живая картинка с экрана устройства, скриншоты и управление кнопками, клавиатурой и мышью с ПК по сети. На устройстве ничего ставить не нужно.
Всё, что вошло в v10052026, здесь тоже есть: порты PortMaster запускаются, работает резервная копия настроек из BaRT, загрузчик со стоковым OP-TEE v1.07.
Что не работает
Вывод на HDMI. Кабель не вызывает никакой реакции. Разбор и план — в docs/KNOWN-ISSUES.md и docs/TODO.md.
Не собирается ECWolf: его патч не ложится на изменившийся апстрим.
Порты, которые сами обрабатывают SIGSEGV. SDL2 при выводе через KMSDRM ставит свои аварийные обработчики фатальных сигналов и перевыбрасывает каждый SIGSEGV — программа, для которой такой сигнал часть обычной работы, считает его крахом. Так падал нативный порт Halo: Combat Evolved. Обход — переменная SDL_NO_SIGNAL_HANDLERS=1 в скрипте запуска порта; с ней Halo идёт до кампании. Подробности — в docs/KNOWN-ISSUES.md.
Подробности
Рабочие записи по порту — в docs/, на английском. Что измерено на устройстве, сказано прямо; что вывод — тоже.
dArkOS RG52 Mini v10052026
Сборка dArkOS для AISLPC RG52 Mini (Rockchip RK3562). Debian Trixie, EmulationStation-fcamod, RetroArch и три десятка отдельных эмуляторов.
Форк bmdhacks/dArkOS_rg52mini, который, в свою очередь, форк christianhaitian/dArkOS.
Как записать
Распакуйте три тома архива (нужны все, распаковывается первый) и запишите .img на карту любой программой вроде Rufus, balenaEtcher или dd. Образ занимает 12 ГиБ, поэтому карта нужна от 16 ГБ. Раздел с играми расширяется на всю карту при первой загрузке.
Образ самодостаточен: загрузчик, ядро и система записываются одним файлом, внутреннюю память устройства он не трогает.
Что нового по сравнению с v09292026
Порты PortMaster снова запускаются. Любая игра из PortMaster падала при запуске с ошибкой «Argument list too long». PortMaster определяет устройство по имени джойстика и джойстик RG52 Mini (play_joystick) не знает. Поэтому он кладёт в переменную окружения SDL_GAMECONTROLLERCONFIG всю базу геймпадов — около 470 КБ, — а ядро не пропускает переменную длиннее 128 КБ, и после этого порт не может запустить ни одной программы. В самом PortMaster уже есть защита от этого, но только для EmuELEC; образ теперь добавляет ту же защиту в файл PortMaster для dArkOS. PortMaster перезаписывает свои файлы при каждом обновлении, поэтому служба portmaster-e2big возвращает защиту при загрузке и сразу после любого обновления. Проверено на устройстве. Ограничение: порт со встроенной SDL старее 2.0.22 запустится, но может не получить раскладку встроенного геймпада.
Резервная копия настроек из BaRT. Пункты «Backup / Restore dArkOS Settings» в меню при загрузке (BaRT) вызывали скрипты под старыми именами … ArkOS Settings.sh и ничего не делали. Исправление из апстрима christianhaitian/dArkOS, которое для RG52 Mini не было перенесено.
Загрузчик со стоковым OP-TEE v1.07 вместо v1.02 (сборка next-dev-g6eeb07c058). Его OP-TEE резервирует под себя на 2 МБ больше. В BL31 этой сборки добавлены частоты разгона, но ядро образа их не запрашивает — таблица частот CPU по-прежнему кончается на 2016 МГц.
Чёрный экран на ревизии A исправлен в ядре — то же исправление, что и в обновлённом 4 октября образе v09292026: заводские паузы при выключении панели и минимальное время выключения канала DSI. Подтверждено владельцем устройства ревизии A.
Что не работает
Вывод на HDMI. Кабель не вызывает никакой реакции. Разбор и план — в docs/KNOWN-ISSUES.md и docs/TODO.md.
Не собираются три второстепенных эмулятора: ECWolf, GameTank и Hypseus Singe. Подробности — в docs/KNOWN-ISSUES.md.
Подробности
Рабочие записи по порту — в docs/, на английском. Что измерено на устройстве, сказано прямо; что вывод — тоже.
dArkOS RG52 Mini v09292026
Сборка dArkOS для AISLPC RG52 Mini (Rockchip RK3562). Debian Trixie, EmulationStation-fcamod, RetroArch и три десятка отдельных эмуляторов.
Форк bmdhacks/dArkOS_rg52mini, который, в свою очередь, форк christianhaitian/dArkOS.
Как записать
Распакуйте три тома архива (нужны все, распаковывается первый) и запишите .img на карту любой программой вроде Rufus, balenaEtcher или dd. Образ занимает 12 ГиБ, поэтому карта нужна от 16 ГБ. Раздел с играми расширяется на всю карту при первой загрузке.
Образ самодостаточен: загрузчик, ядро и система записываются одним файлом, внутреннюю память устройства он не трогает.
Что нового по сравнению с v09162026
Найден потерянный ключ оптимизации. flycast собирался с -O0, а fake-08 — с -g и без оптимизации вовсе. Причина оказалась в cmake: переменные CMAKE_C_FLAGS_RELEASE и CMAKE_CXX_FLAGS_RELEASE заменяют флаги типа сборки, а не дополняют их, поэтому -O3 из Release молча исчезал, и gcc собирал с умолчанием. Из 389 строк компиляции flycast ровно одна несла ключ оптимизации; горячий путь — обработчики памяти SH4 и трансляция MMU, то есть именно то, что определяет скорость Dreamcast. Исправлено, и заодно починен ключ кэша: раньше он не учитывал флаги сборки, и следующая сборка могла восстановить прежний артефакт, собранный без оптимизации.
Исправлено двойное освобождение памяти в Bluetooth. Драйвер aic8800 освобождал пакет, который hci_recv_frame() уже освободила сама. При выключении или перезагрузке с включённым Bluetooth это 150–200 двойных освобождений за раз: портится аллокатор, и ядро падает через мгновение в совершенно постороннем месте — в приёме netlink или при рассылке uevent. Заодно терялся запрошенный режим перезагрузки. Тот же код есть во всех найденных копиях этого вендорского драйвера на GitHub.
Ядро похудело на 6 МБ — Image 32,9 МБ против 39,2 МБ. Убраны два драйвера Mali, которые на этом железе не могут привязаться никогда: видеоядро объявлено как arm,mali-bifrost, а в ядро собирались ещё utgard (для Mali-400/450) и midgard — 551 символ мёртвого драйвера. Убрана и отладка, которую устройство не читает: трассировка функций стоила 59 172 точки и около 1,4 МБ оперативной памяти при загрузке.
OP-TEE выключен целиком, с обеих сторон. В ядре нет ни драйвера, ни CONFIG_TEE; загрузчик собран с BL32 v1.02 и возвращает системе 2 МБ окна общей памяти. На устройстве с двумя гигабайтами это заметно, а доверенная среда здесь не используется ничем.
Губернатор GPU наконец переключается. perfmax писал в узел от RK3566, которого на этом чипе нет, поэтому видеоядро всю игру работало в simple_ondemand вместо performance.
Bluetooth-геймпады стало видно в настройках. BlueZ по умолчанию отвергает HID от неспаренных устройств, а это большинство старых геймпадов: паринг проходил, а в списке контроллеров устройство не появлялось.
269 ядер libretro, восемь из них скачались только со второй попытки. GitHub отвечает 429 при частых запросах, а wget -t считает лишь сетевые сбои и принимает HTTP-ошибку за окончательный ответ — эти восемь ядер раньше молча отсутствовали в образе.
Исправлен чёрный экран на ревизии A. На устройствах с Wi-Fi RK915 после заставки загрузчика экран оставался чёрным при горящей подсветке, пока дважды не нажать кнопку питания. Причина найдена: если панель выключить и сразу включить снова, она остаётся чёрной. Во всех заводских деревьях устройства выключение панели идёт с паузами — «display off», 128 мс, «sleep in», 30 мс, — а в дереве, от которого произошла эта прошивка, паузы были нулевыми. В ядре возвращены заводские паузы и добавлено минимальное время выключения канала DSI, 500 мс (из порта GammaOS Next). Служба panel-kick оставлена как запасной обход: на ревизии A она до запуска интерфейса ещё раз выключает и включает экран; на ревизии B ничего не делает. Исправление проверено и подтверждено владельцем устройства ревизии A. Образ в этом релизе обновлён 4 октября: отличается от первоначального ядром с этим исправлением и службой panel-kick.
Что не работает
Вывод на HDMI. Кабель не вызывает никакой реакции. Ядро тут ни при чём: мост RK628, через который идёт HDMI, описан и собран точно так же, как в Android-образе для этой платы, где HDMI работает. Не хватает стороны dArkOS — скрипт определения ищет разъём под именем, которого на этой плате, судя по всему, нет, и запускается только при загрузке, а не при подключении кабеля. Разбор и план — в docs/KNOWN-ISSUES.md и docs/TODO.md.
Не собираются три второстепенных эмулятора: ECWolf, GameTank и Hypseus Singe. У них не накладываются патчи на изменившийся upstream, а у двух есть и вторая причина: в кэше сборки лежат пустые архивы под подходящими ключами, поэтому каждая сборка восстанавливает неудачу вместо повторной попытки. Подробности и что удалить перед следующей сборкой — в docs/KNOWN-ISSUES.md.
Подробности
Рабочие записи по порту — в docs/, на английском. Что измерено на устройстве, сказано прямо; что вывод — тоже.
dArkOS RG52 Mini v09162026
Сборка dArkOS для AISLPC RG52 Mini (Rockchip RK3562). Debian Trixie,
EmulationStation-fcamod, RetroArch и три десятка отдельных эмуляторов.
Форк bmdhacks/dArkOS_rg52mini,
который, в свою очередь, форк
christianhaitian/dArkOS.
Как записать
Распакуйте три тома архива (нужны все, распаковывается первый) и запишите
.img на карту любой программой вроде Rufus, balenaEtcher или dd. Образ
занимает 12 ГиБ, поэтому карта нужна от 16 ГБ. Раздел с играми расширяется
на всю карту при первой загрузке.
Образ самодостаточен: загрузчик, ядро и система записываются одним файлом,
внутреннюю память устройства он не трогает.
Что нового
Свой загрузчик. Вместо вендорского U-Boot 2017.09, который работал с
деревом отладочной платы rk3562-evb и потому не мог ничего вывести на
экран, — mamaich/u-boot-rk3562-rg52mini
rg52mini-20260918: выключение кнопкой, выход из режима зарядки, заставка,
анимация зарядки, светодиод сразу после подачи питания и консоль на uart0.
Заставка при загрузке — сперва от загрузчика, затем от ядра, вместо
чёрного экрана до запуска интерфейса.
Работает то, чего нет в исходном порте: Bluetooth (включая звук по
A2DP) и USB host. И то и другое — правки ядра и дерева устройств; описание в
docs/HARDWARE.md.
Звук сразу. По умолчанию выбран встроенный динамик, а не наушники, —
раньше свежий образ казался немым.
Старые Bluetooth-геймпады. BlueZ с некоторых пор не отдаёт HID устройствам,
которые парятся по старой схеме и не образуют «бонд»: такой джойстик
спаривался, числился подключённым — и не появлялся ни в списке контроллеров, ни
вообще среди устройств ввода. Единственным следом была одна строка в журнале
демона. Теперь работают, проверено на устройстве.
Kodi 21.3 Omega с 67 дополнениями.
Память. zram на 1.5 ГБ со сжатием lzo-rle плюс своп вторым уровнем на
разделе eMMC — при двух гигабайтах оперативной это заметно. Модули ядра
обрезаны со 100 МБ до 6.3.
Диагностика. Детекторы зависаний и pstore: после зависания или паники
/sys/fs/pstore сохранит лог прошлой загрузки, включая вывод загрузчика.
Собраны заново Yabasanshiro (Saturn) и freej2me-plus (J2ME) — до этого
они молча не попадали в образ.
Известное о скорости
Dreamcast в этом образе медленнее, чем должен быть. Уже после выпуска
обнаружилось, что flycast собран без оптимизации: рецепт сборки просил у cmake
режим Release и тут же затирал его флаги строкой -DNDEBUG, а штатное для
Release -O3 при этом терялось — компилятор брал своё умолчание, то есть -O0.
Под удар попали обработчики памяти SH4 и трансляция адресов, а это горячий путь
для всего требовательного. Тем же способом, без оптимизации, собран fake-08.
Исправлено в исходниках, но в этот образ не входит: пересобирать его ради
этого не стали, правки приедут со следующей сборкой. Если Dreamcast кажется
неожиданно тяжёлым — дело в этом, а не в устройстве.
Подробности и способ проверить любой другой компонент:
docs/PERFORMANCE.md.
Чего нет
Не собираются три эмулятора — ECWolf, GameTank, Hypseus Singe: у их патчей
разошлись контексты с апстримом, каждый требует отдельной починки. Семь
библиотек совместимости PortMaster недоступны по своим адресам, поэтому
порты, которым они нужны, не запустятся; на остальное это не влияет.
Подробности и состояние работ:
docs/KNOWN-ISSUES.md
и docs/TODO.md.
Собрать самому
git clone --recursive https://github.com/mamaich/dArkOS_rg52mini
cd dArkOS_rg52mini
make rg52mini BUILD_KODI=y
Занимает большую часть суток, с Kodi — заметно дольше, зато результат
кэшируется. Про сборку под WSL, которую апстрим считает невозможной, и про
грабли, каждая из которых стоила часов, —
docs/BUILDING.md.