LINUX.ORG.RU

Новости FPDoom: поддержка монохромных экранов

 , , , ,

Новости FPDoom: поддержка монохромных экранов

2

2

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

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

Главная особенность нового релиза – это поддержка монохромных экранов низкого разрешения (128x64, 96x68). Казалось бы, такими ужасными экранами только людей пугать, но сейчас как раз подходящее время года. Эти экраны используют 1 бит на пиксель, но при быстром мигании пикселями можно получить оттенки серого. Метод называется temporal dithering, это цифровой аналог ШИМ (PWM). Обновление экрана сделано по таймеру через прерывания, чтобы обеспечить равномерность и постоянность обновления пикселей. Если обновлять по таймеру игры (например, у Doom внутреннее ограничение на 35 кадров в секунду), то изображение очень сильно шумит.

Автору встретилось 3 варианта экранов:

  • 128x64 ST7567A: Самый лучший вариант драйвера, он поддерживает увеличение частоты обновления до 300 кадров в секунду, при такой частоте шум едва виден глазом, камера смартфона шум не замечает. Экраны с разрешением 128x64 имеют физическое отношение сторон не 2:1, а примерно 7:5, пиксели вытянутые по вертикали.
  • 96x68 HX1230: Это дешевая имитация экранов использующихся в старых Nokia. Драйвером экрана поддерживаются только самые базовые команды, напряжение настроить нельзя, и оно завышенное, из-за чего экран чернит, нужно задирать гамму в играх. Экран этот подключен к чипу через GPIO, который нужно дергать процессором, что приводит к большой нагрузке на процессор. Частота обновления около 75 кадров, заметный шум.
  • 128x64 ST7565R: Не поддерживает изменение частоты обновления, стандартная около 77. Если точно попадаешь в частоту, то по экрану медленно проходит чёрная линия. Если не точно, то по экрану постоянно пробегает лёгкий шум (выбран такой вариант).

У всех экранов очень большое время отклика, что приводит к эффекту motion-blur. Тем не менее, что-то различить на экране можно (видео).

Также в этом релизе:

  • Уже протестировано на 50 моделях телефонов.
  • Написан драйвер для встроенного в чип LZMA-декомпрессора, теперь при загрузке сканируется и сжатая часть прошивки. Ранее для 40% телефонов приходилось вручную доставать из прошивки раскладку клавиш и указывать в аргументах запускаемой игры.
  • Для портов Doom и Wolf3D добавлена возможность активировать читы на неуязвимость и все предметы.

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



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

Ответ на: комментарий от devl547

На таком даже Blood в SVGA режиме подтормаживал бы.

Не уверен. :) А вот тут: https://www.youtube.com/watch?v=WLyav93POmQ запускали гта3 на Pentium-II 450, и вообще как родной идёт! На первом пне - увы, не удалось найти. Наверное, таки не взлетает. :)

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

Я просто помню свой старый комп с P166MMX, 32 метрами памяти и 2-метровой S3.
И даже со всякими fastvid и прочим было не очень комфортно играть в 640х480

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

Но ведь блуд - это, по-моему, ДОСовская игра? А у вас тут максимально возможная конфигурация для ДОСовских игр. Всё, что требовало больше - было уже под винду. Можно было установить Риву ТНТ вместо С3, но под ДОС это уже нифига не давало, нужен был директХ.

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

Она досовская.
Там есть разные видеорежимы. В стандартном 320x200 (или 240, не помню) она бегает шикарно.
А еще есть svga режимы с большим разрешением. И вот 480p работал уже плохо.

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

А между тем, я таки нашёл Дум на вольфовском движке. KlooNI называется. Полноценный дум

В нём нет оригинальных уровней, значит это не Doom. По плоским уровням сразу видно что это мод Wolf3D. И они и близко не похожи на оригинальные, кроме как теми же текстурами. Разница между геометрией уровней в Doom и Wolf3D это просто небо и земля. Это не просто лестницы и разные высоты, в Вульфе уровни вырыты в плоской квадратной сетке, как в Dungeon Keeper.

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

А еще есть svga режимы с большим разрешением. И вот 480p работал уже плохо.

А на чём конкретно он должен был хорошо работать? Я просто не представляю, как вашу конфигурацию можно было под ДОСом улучшить. Ну разве что вудушку поставить, так как дургие видюхи только под директХ аппаратное ускорение давали.

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

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

Ну вы эстет. :) Я даже не заметил разницы.

Разница между геометрией уровней в Doom и Wolf3D это просто небо и земля.

Ну ок, верю вам, как эстету в этих делах, что системные требования думовского движка - оправданы. Да и тень сомнения на Кармака кидать - такое себе занятие. Но всё таки я не видел портов Дума, хотя бы уровня Клуни, на всякие старые платформы. Все говорят, «можно, но будет как вольф». Ну вот Клуни - это как раз оно и есть. А там - там совсем не как вольф. Там как кусок говна, если честно. :)

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

Кстати, кто хочет поиграть в Dungeon Keeper - я нашел опенсорсный проект посредством реверс-инжиниринга воссоздающий оригинальную игру.

https://github.com/dkfans/keeperfx

У них в новостях висит, что уже скомпилировали под Линукс, но для Линукса еще допиливают.

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