LINUX.ORG.RU

Новости FPDoom: поддержка 4G телефонов на чипе UMS9117

 , , , ,

Новости FPDoom: поддержка 4G телефонов на чипе UMS9117

1

2

FPDoom – проект, позволяющий запустить классический Doom, его дополнения и другие портированные игры на очень распространённом на дешевых кнопочных телефонах чипе Spreadtrum SC6531 и его модификациях. Проект содержит порты ванильного Doom, а также Duke3D, Shadow Warrior, Blood, Wolfenstein 3D и порт InfoNES.

Порты выполнены в виде приложений bare-metal, запускаемых через свой загрузчик (добавляется в прошивку, загружает игры с SD-карты). Устанавливается на современные кнопочные телефоны с чипами Spreadtrum SC6530/SC6531, что составляет более половины предложений на российском рынке. Список протестированных моделей и ссылка на описание загрузки приведены в Readme.

В обновлении 1.20251101 добавлена поддержка нового чипа Unisoc UMS9117, который является развитием Spreadtrum SC6531 (компания Unisoc ранее называлась Spreadtrum). Характеристики нового чипа: поддержка 4G, поддержка NAND flash, одно ядро ARMv7-a на 1ГГц и 64МБ ОЗУ. Приглашаются желающие запустить на нём Linux.

Протестировано на 10 моделях телефонов на чипе UMS9117. Есть загрузка с SD-карты. Все порты игр и эмуляторов уже работают на новом чипе (с эмуляторами есть мелкие недоработки). Нет драйвера NAND (пока в зачаточной стадии чтения ID чипа), поэтому таблицы настройки контактов чипа и раскладку клавиш нужно извлекать из самостоятельно сдампленной прошивки (для протестированных моделей телефонов эти файлы есть в релизах на гитхабе).

Другие обновления со времён прошлой новости:

  • 1.20241116: портирован Snes9x - эмулятор SNES. За счёт использования виртуальной памяти можно загружать игры, чей ROM больше памяти телефона (реализовано как маппинг памяти в операционных системах).
  • 1.20250615: портирован Chocolate Doom (в который входят игры на том же движке: Heretic, Hexen и Strife, но Strife пока не работает).
  • 1.20250728: портирован gnuboy - эмулятор GameBoy/GameBoy Color (также сделан маппинг памяти).

>>> Исходный код



Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 1)

Как у UMS9117 с энергосбережением, по сравнению с более старыми процессорами? У него всё-таки DDR, которая потребляет заметно больше SRAM в микроконтроллере, пусть даже LP.

ValdikSS ★★★★★
()

портирован Snes9x

Это заслуживает быть в заголовке новости

Дум — это хорошо, но тысячи игр с Нинтендо как-то лучше

Zombieff ★★
()
Последнее исправление: Zombieff (всего исправлений: 1)
Ответ на: комментарий от ValdikSS

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

Надо включить пару телефонов на разных чипах, без батарейки и нулевой яркостью экрана.

В отзывах про 4G телефоны не раз видел жалобы что работают меньше, но возможно это из-за 4G связи. При том что аккумулятор ставят больше чем в старые.

jpegqs
() автор топика

Сколько бы инженеры не старались, на кофеварке запустить дум не выйдет… хотя… ладно, на модифицированной кофеварке может и пойдет, но его точно не запустить на… ээ… мм… короче ладно, дум можно запустить на всём, сдаюсь

daniyal
()
Последнее исправление: daniyal (всего исправлений: 1)
Ответ на: комментарий от jpegqs

Точность измерений 0.02w, хоть и три цифры показывает после запятой:

Nokia TA-1543 (UMS9117): 0.179-0.199w
Texet TM-213 (SC6531E): 0.159-0.179w

jpegqs
() автор топика
Последнее исправление: jpegqs (всего исправлений: 1)

«Безумству храбрых поём мы…» Падажжите! А чего вы всё Дум? Вы Кваку уже запускайте! Вчера смотрел как на ESP32 запускали Кваку. Вот это уже дело.

PcheloBiaka
()

Doom, его дополнения и другие портированные игры на очень распространённом на дешевых кнопочных телефонах

ну дум и дюк3д я играл лет 20 назад на кнопочном телефоне, то ли sagem, то ли alcatel. А вот как в снес играть на таких кнопках я не представляю.

TPPPbIHDELj
()

ЖУТЬ! ЗАЧЕМ ЭТО!
Пиписьками померяться?
Кто запустит что то подлиннее на коротеньком телефоне?

n0mad ★★★
()
Ответ на: комментарий от router

вполне поверю, но вот телефонов с трекпоинтом не встречал.

xfilx ★★
()
Ответ на: комментарий от PcheloBiaka

А чего вы всё Дум? Вы Кваку уже запускайте! Вчера смотрел как на ESP32 запускали Кваку. Вот это уже дело.

Для новых чипов я бы хотел попробовать портировать Carmageddon, Quake и Quake 2. Должны потянуть.

На старых чипах нет аппаратных инструкций с плавающей точкой, не говоря уже о том что ОЗУ слишком мало (4МБ, изредка 8МБ).

jpegqs
() автор топика
Ответ на: комментарий от router

В названии doom, а на скрине явно первый уровень heretic :)

Heretic использует движок Doom. Меня на ютубе проcили портировать, я сделал, спустя 1-2 года после просьбы.

jpegqs
() автор топика
Ответ на: комментарий от mittorn

ЕМНИП, в SC6530/SC6531 не то чтобы хватит на Quake, не говоря уже о халфе.

UMS9117 уже больше похож на то, с чем мы уже работали.

a1ba ★★★
()

У меня один вопрос - зачем?

basilic ★★★
()

Спасибо за проект!

Слежу давно и с интересом; своя железка на t107 тоже лежит и ждёт своего часа.

jpegqs:

Характеристики нового чипа: поддержка 4G, поддержка NAND flash, одно ядро ARMv7-a на 1ГГц и 64МБ ОЗУ

Стоит отметить, что в подавляющем большинстве телефонов на платформе(?) UMS9117 стоит более поздняя, удешевлённая разновидность этого процессора — t107, отличающаяся отсутствием поддержки Wi-Fi и 48МБ ОЗУ вместо 64. Также, несколько лет тому назад появилась разновидность t127 с 64МБ, но тут подробностей не знаю, вживую таких пока не попадалось.

Пользуясь случаем, спрошу — не сохранилось ли у вас локальной копии репозитариев github.com/Jakes-Fu/SRC_ZW206_ZT217, github.com/Jakes-Fu/8910L_Z695C_WDL_Z59ZL и github.com/Jakes-Fu/ZW217_W19_V4.1_yisai?

Такое впечатление, что Unisoc либо кто–то из их лицензиатов начали активно пылесосить гитхаб на предмет вычистки сорцов, выложенных в открытый доступ. Оказались порезаны даже репозитории, ранее выложенные самими же Unisoc, в рамках попыток продвинуть UWP5661 в качестве решения для IoT.

Quote
()
Последнее исправление: Quote (всего исправлений: 1)
Ответ на: комментарий от Zombieff

Экраны мелковаты. Дум ещё как то приемлимо если на лёгком уровне и в режиме размазывания паштета.

kirill_rrr ★★★★★
()
Ответ на: комментарий от xfilx

Да ладно, какая разница с мышкой или без неё тебя будут разносить найтмэар-боты?

kirill_rrr ★★★★★
()
Последнее исправление: kirill_rrr (всего исправлений: 1)
Ответ на: комментарий от Quote

t107, отличающаяся отсутствием поддержки Wi-Fi и 48МБ ОЗУ вместо 64

Я не нашел никакого способа идентифицировать чип (отличить T107 от T117 или даже от T127), и почему-то телефоны с заявленными 48МБ ОЗУ, имеют все 64МБ. ROM чипа везде одинаковый. Телефона с T127 у меня вроде бы нет. Все эти вариации, это UMS9117 с добавлением буковки: T107 = UMS9117N/UMS9117L, T127 = UMS9117S.

Пользуясь случаем, спрошу — не сохранилось ли у вас локальной копии репозитариев github.com/Jakes-Fu/SRC_ZW206_ZT217, github.com/Jakes-Fu/8910L_Z695C_WDL_Z59ZL и github.com/Jakes-Fu/ZW217_W19_V4.1_yisai?

Два из них остались, но у других пользователей, вот и вот. Сохраняйте.

jpegqs
() автор топика
Ответ на: комментарий от Zombieff

Дум, к слову, это тоже куча других вадников в т.ч

mittorn ★★★★★
()
Ответ на: комментарий от mittorn

На 64мб халфа и большинство модов должны быть играбельны

Проблема в том чтобы найти исходники без OpenGL, которые сами делают софтверный рендеринг. Видеокарты тут нет.

jpegqs
() автор топика
Ответ на: комментарий от jpegqs

Я писал софтрендер на основе квакового и он есть сейчас в ксаше, даже работает у меня на плеере (в котором линукс и из 32мб доступно только 26)
К тому же я уже знаю примерно, как оригинальный халфовый софтрендер работает и могу попытаться воспроизвести его (он немного красивее выглядит и, возможно, будет быстрее работать)

mittorn ★★★★★
()
Последнее исправление: mittorn (всего исправлений: 1)
Ответ на: комментарий от mittorn

Но чтобы в 1 потоке и софтренедер, и халву с её физикой? Не переписывая движка с нуля чтобы радикально там всё упростить? Да и видеопамять ляжет на те же 64М оперативки, которых и так впритык.

kirill_rrr ★★★★★
()
Ответ на: комментарий от kirill_rrr

Халфа всегда была однопоточной и ей не надо больше 64мб памяти. Повторюсь, у меня на 26мб всё работает даже

mittorn ★★★★★
()
Ответ на: комментарий от jpegqs

Есть библиотеки с программной эмуляцией операций над числами с плавающей точкой. Как сторонние так и идущие вместе с компилятором. Небыстрые, да.

zanac1
()
Ответ на: комментарий от zanac1

Я не нашел хорошей эмуляции на ассемблере. Самому было лень писать. Находил эмуляцию на Си, но это будет очень медленно.

Но на такие игры ОЗУ не хватило бы всё равно.

jpegqs
() автор топика
Ответ на: комментарий от mittorn

Мне казалось процесс hl1 занимает что то порядка 40-50М памяти, ну да ладно...

Как интегрировать эмляцию графического api в тот же самый поток не переписывая движка?

Но ладно, допустим ты смог. Как заставить 1 ядро arm7a выполнить работу минимум 8 ядер cortex-a53? Или придётся играть в шутер в 320х240@0,5фпс?

kirill_rrr ★★★★★
()
Ответ на: комментарий от kirill_rrr

Мне казалось процесс hl1 занимает что то порядка 40-50М памяти, ну да ладно

обычно так и есть, потому никакой проблемы не должно быть. Для систем где меньше 64 собирается специальная версия с урезанными до минимумами лимитами

Как интегрировать эмляцию графического api в тот же самый поток не переписывая движка?

А зачем эмуляция графического API?

Как заставить 1 ядро arm7a выполнить работу минимум 8 ядер cortex-a53?

Никак, но какое это имеет отношение к халфе?

Или придётся играть в шутер в 320х240@0,5фпс?

На кнопочных телефонах разрешение порой ещё меньше.
На armv5 устройстве с частотой в 416мгц без fpu/vfp с 320x240 fps держится около десяти.
На гигагерцовом armv7a я ожидаю минимальный fps около 20, но в среднем больше. Если оптимизировать софтрендер с учётом того, что я узнал о рендере халфы после 2020 года, да ещё и с оптимизациями, сделанными в движке с тех пор скорее всего получится сделать не менее 30. Если ещё применить тайлинг (но здесь и правда весь рендер придётся переписывать) - то ещё выше.
А с учётом того, что на этих кнопочных телефонах разрешение меньше 320x240 - то есть все шансы получить 60fps даже ничего не переделывая

mittorn ★★★★★
()

что составляет более половины предложений на российском рынке

А кто и как подсчитывал? Или «от балды» написано?.. ;)

Somebody ★★★
()
Ответ на: комментарий от Somebody

Покупал телефоны почти наугад, чипов Spreadtrum большинство. Есть еще RDA (купленный Spreadtrum) и MediaTek. Скорее всего чипы Spreadtrum дешевле.

За исключением маленьких телефончиков размером с зажигалку. Их мало кто выпускает. Больше всего такой продукции от китайского бренда что работает только с чипами MediaTek.

jpegqs
() автор топика
Ответ на: комментарий от mittorn

А с учётом того, что на этих кнопочных телефонах разрешение меньше 320x240

128x160 на самых дешевых, 240x320 стандарт.

Есть 320x480 среди телефонов подороже, и таких много.

240x400, 176x220, 128x128, 240x240 - единичные случаи.

jpegqs
() автор топика
Ответ на: комментарий от Somebody

Можно у @ValdikSS спросить, какое у него впечатление о распространённости чипов.

Я не могу каждую модель скупить на рынке. У конкретных брендов бывают свои предпочтения к чипам. Тем не менее, если я сначала думал что Spreadtrum и Mediatek почти равны и есть немного RDA, то теперь думаю что большинство Spreadtrum, а Mediatek с RDA небольшую оставшуюся часть делят.

jpegqs
() автор топика
Ответ на: комментарий от mittorn

Никак, но какое это имеет отношение к халфе?

Примерно столько дури цпу нужно малине чтобы софтвенно эмулировать что то вроде майнкрафта, ассалт куба, Q3 или хотя бы glxgears в 60 фпс на полный экран.

На armv5 устройстве с частотой в 416мгц без fpu/vfp с 320x240 fps держится около десяти.

В смысле он не только существует, но и раз в 100-1000 более эффективен чем любой другой софтовый рендер? Потому что если бы это было правдой, Вальв мог бы просто включить его вместо портирования hl1 на линукс и любой коре2 нормально тянул бы без видеокарты.

kirill_rrr ★★★★★
()
Ответ на: комментарий от jpegqs

спросить, какое у него впечатление

Нет, спасибо, я не люблю «в гадание»... :))

Тем более, что чьи-либо впечатления для меня сильно отличаются от достоверных источников. ;))

Я не могу каждую модель скупить на рынке

Так никто ведь и не предлагает! :)

Собственно, и вопрос-то возник по прочтении вашего категоричного утверждения о месте «на рыночке» определённых чипов... ;)

Somebody ★★★
()
Ответ на: комментарий от kirill_rrr

OpenGL имеет синхронный API. Старые видеокарты буквально рисовали примитивы в момент вызова glVertex3f/glEnd.

Современные драйвера умеют собирать команды в пачки и рисовать асинхронно во имя производительности (и потому что современные видеокарты иначе устроены), но это тщательно скрывается от программы (например, если функция OpenGL принимает указатель на данные, эти данные копируются в буфер драйвера, чтобы приложение могло освободить буфер как если бы данные ушли в видеокарту в момент вызова функции, команды же чувствителеные к результатам предыдущих команд типа glGetPixels ждут пока выполнится вся предыдущая очередь команд и могут выполняться гораздо дольше, чем обычное обращение к видеопамяти). И ничто не мешает в софтовой реализации делать всякие glDrawArrays блокирующими и непосредственно рисовать треугольники в том же потоке.

KivApple ★★★★★
()
Последнее исправление: KivApple (всего исправлений: 1)
Ответ на: комментарий от kirill_rrr

Во-первых, разрешение экрана влияет на площадь квадратично. Рисовать в 320х240 можно быстрее, чем в 640х480 не в 2, а в 4 раза, например. Doom/Quake/HL запускают на телефонах в том числе потому что там крохотные экранчики.

Во-вторых, эмулировать старый OpenGL без GLSL проще, потому что фиксированный пайплайн можно вручную оптимизировать на ассемблере и он почти ничего не умеет (по сути это параметрическая заливалка треугольников). А с GLSL тебе надо компилировать тьюринг полные шейдеры, содержащие гораздо больше логики.

Так что надо смотреть какое разрешение экрана и какая версия OpenGL.

KivApple ★★★★★
()
Последнее исправление: KivApple (всего исправлений: 2)
Ответ на: комментарий от kirill_rrr

Примерно столько дури цпу нужно малине чтобы софтвенно эмулировать что то вроде майнкрафта, ассалт куба, Q3 или хотя бы glxgears в 60 фпс на полный экран.

но какое это имеет отношение к халфе?

но и раз в 100-1000 более эффективен чем любой другой софтовый рендер?

Нет, по эффективности он примерно как софтрендер quake1, но с поправкой на 16битный цвет (чуть медленней)
Для сранвенния, в quake1 я играл на 300мегагерцовом armv4 с 320x240 с windows mobile и там было 15-30fps
Оригинальный софтрендер hl1 пока что быстрее и речь всё-таки идёт о гигагерцовом процессоре

mittorn ★★★★★
()
Ответ на: комментарий от KivApple

Опять тут эмуляцию opengl обсуждают. Когда quake делался, он делался без opengl, с cpu рендером. Потом уже opengl рендер прикрутили, причём весьма убогий

mittorn ★★★★★
()
Ответ на: комментарий от mittorn

Если игра имеет софт рендер, то это, очевидно, упрощает порт на девайс без видеокарты, но даже если игра использует OpenGL (а об этом было исходное сообщение, на которое я отвечал, мне самому было странно писать Doom и OpenGL в одном предложении), то в случае с immediate mode реализация софт рендера достаточно тривиальна, так как по сути нужно реализовать функции вида буквально «залей треугольник с такими координатами вершин (превращаются в экранные координаты одним умножением матрицы) таким-то цветом». И уж точно там не нужна никакая многоядерность и многопоточность (ну то есть, конечно, она бы могла дать выигрыш по производительности, но реализация очереди команд, чтобы один поток крутил игру, а другой отрисовку усложнит задачу портирования, а не упростит).

Я о том, что многопоточность нужна там где сам движок игры многопоточный или достаточно новый, чтобы использовать всякие Vulkan (впрочем, у большинства движков всё равно есть режим совместимости с OpenGL, а у кого нет, там уже графон никакой калькулятор не потянет всё равно).

KivApple ★★★★★
()
Последнее исправление: KivApple (всего исправлений: 2)
Ответ на: комментарий от KivApple

Рисовать в 320х240 можно быстрее, чем в 640х480 не в 2, а в 4 раза, например

Это так не работало даже в Дум2 потому что операция трассирования каждого пикселя это не всё что нужно сделать при отрисовке. Где то там спрятан перерассчёт положения полигонов и их текстурирование и это не должно зависеть от разрешения а только от числа полигонов на сцене. С текстурами наверное можно сильно пооптимизировать, но точно не до квадратичной зависимости.

Собственно в дошейдерную эпоху dx7/8/9 производительность игры плавала +/-50% при изменении разрешения в 4-6 раз.

kirill_rrr ★★★★★
()
Ответ на: комментарий от mittorn

А физика, анимации и хренова туча полигонов куда делись? Что то мне кажется даже простой импорт модели вортигонта в quake1 уронит фпс с 15-30 до 5-10.

речь всё-таки идёт о гигагерцовом процессоре

Примерно соответствующем 200Мгц пеньтиум3 если не использовать инструкции neon.

kirill_rrr ★★★★★
()
Последнее исправление: kirill_rrr (всего исправлений: 1)
Ответ на: комментарий от mittorn

В кваку да. В халву - нет. Даже не видел сборок где это можно включить. Но что то мне подсказывает, что математика, физика, логика и полигоны никуда не исчезают.

kirill_rrr ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.