Comments 21
Прочитав заголовок и текст до хабраката ждал большего =( Тема сисек игр для UEFI не раскрыта.
+1
UFO just landed and posted this here
Хотелось бы в топкие прочитать про процесс написания тетриса. Инструменты, подходы, подводные камни и т.п.
+2
Хороший вопрос! Нужно подумать, как его осветить.
0
До реализации UEFI-варианта тетриса, была написана и отлажена макетная 16-битная версия под DOS, с использованием TASM 3.0 и Turbo Debugger 2.51. Затем работы были продолжены на FASM 1.69.50, который поддерживает генерацию 64-битных UEFI-приложений, ассемблирование инструкций MMX, SSE-SSE5, AVX и всех современных функциональных расширений.
Для отладки использовались собственные процедуры, обеспечивающие точку останова в программе и визуализацию дампа регистров процессора и памяти. Основные работы проведены на плате ASUS Z87-K, использовался внешний модуль UEFI Shell.
Для отладки использовались собственные процедуры, обеспечивающие точку останова в программе и визуализацию дампа регистров процессора и памяти. Основные работы проведены на плате ASUS Z87-K, использовался внешний модуль UEFI Shell.
+1
На сайте утверждается что Tetris64 — первая и единственная игра, запускаемая в среде UEFI.
Ну… в 64-битной — возможно, но вообще она не первая, далеко не первая и далеко не единственная. Некоторые производители по какой-то абсолютно не понятной мне причине тоже решили этим позаниматься.
Ну… в 64-битной — возможно, но вообще она не первая, далеко не первая и далеко не единственная. Некоторые производители по какой-то абсолютно не понятной мне причине тоже решили этим позаниматься.
+3
Скорее всего, это тоже 64-битная реализация. 32-битная реализация UEFI на сегодня большая редкость (она обнаружена, например, в ноутбуке ASUS T100T).
Не лавры первопроходцев интересуют в этом вопросе, а свободный доступ к файлам UEFI-приложений. Если окажется, что на сайте MSI можно получить исполняемый код в виде файла с расширением efi (или даже, если его можно извлечь из тела UEFI BIOS), то придется признать, что да, Tetris64 – не первая и не единственная.
P.S. Полезно было бы указать, на какой платформе MSI обнаружена означенная игра.
Не лавры первопроходцев интересуют в этом вопросе, а свободный доступ к файлам UEFI-приложений. Если окажется, что на сайте MSI можно получить исполняемый код в виде файла с расширением efi (или даже, если его можно извлечь из тела UEFI BIOS), то придется признать, что да, Tetris64 – не первая и не единственная.
P.S. Полезно было бы указать, на какой платформе MSI обнаружена означенная игра.
+1
Да подходит вроде бы любая материнка с этим самым click bios. Конкретно на картинке вроде бы MSI P45 Platinum, для которой этот click bios вышел позже в виде бесплатного обновления. Игры, кстати, если я не ошибаюсь запускаются (ну раньше по крайней мере) с некоего MSI Extras CD так что если хотите их выдернуть то никто вам не мешает это сделать при наличии диска.
+1
Кстати, ClickBIOS предполагает встраивание во FlashROM кода игрового приложения (сервисные службы MSI безмерно рады, они так прямо об этом и говорят: Q:I failed in the process of re-flash the BIOS, what can I do next? Please contact the MSI office and send the board back to the repair center. :).
Tetris64 – это полноценное UEFI-приложение, которое может быть встроено во FlashROM по усмотрению разработчиков платформы (в чем мы, лично, глубоко сомневаемся), а может быть выполнено с любого подходящего внешнего запоминающего устройства: USB-флешка, жесткий диск, флопик, абак, счеты, узелки на память ))
Tetris64 – это полноценное UEFI-приложение, которое может быть встроено во FlashROM по усмотрению разработчиков платформы (в чем мы, лично, глубоко сомневаемся), а может быть выполнено с любого подходящего внешнего запоминающего устройства: USB-флешка, жесткий диск, флопик, абак, счеты, узелки на память ))
0
ClickBIOS предполагает встраивание во FlashROM кода игрового приложения
К сожалению подтвердить или опровергнуть это не могу так как сам не сталкивался, но опять же повторюсь — если судить по статьям то при выборе игры оно предлагает вставить в дисковод msi extras cd чтобы загрузить выбранную игру оттуда, тобишь сами исполняемые файлы не встроенны.
0
UFO just landed and posted this here
Хотелось бы расставить акценты в опубликованной статье, заметив, что это не блог разработчиков тетриса и не обзор примеров программирования, а анализ потенциальных графических возможностей UEFI:
Одним из своих достижений мы считаем разработку технологии, позволяющей существенно ускорить запись в видео память, выполняемую центральным процессором без применения видео акселератора. Метод основан на программировании регистров MTRR (Memory Type and Range Registers) и переопределении статуса диапазона доступа к видеопамяти на Write Combining (WC). Атрибут WC позволяет группировать результаты нескольких шинных циклов записи в пакеты размером до 4 килобайт для отправки по шине PCI Express. Заметим, что подавляющее большинство реализаций Legacy BIOS и UEFI firmware устанавливает для видео памяти статус Uncacheable (UC), запрещающий оптимизировать порядок выполнения шинных циклов.
Таким образом, существует компромисс между производительностью и совместимостью, которого в большинстве случаев достаточно для 2D-графики и недостаточно для 3D-графики. Всем, кому это интересно, могут ознакомится с исходным кодом ряда наших программных продуктов.
- Как уже сказано, использовать аппаратную акселерацию графики под UEFI невозможно, так как это потребует device-specific поддержки для каждой модели видео адаптера, а драйверной инфраструктуры, унифицирующей протокол доступа к акселератору под UEFI нет.
- С другой стороны, есть старый, простой и универсальный метод, основанный на записи центральным процессором информации в видео память, но он не обеспечивает производительность, необходимую для динамических игр.
Одним из своих достижений мы считаем разработку технологии, позволяющей существенно ускорить запись в видео память, выполняемую центральным процессором без применения видео акселератора. Метод основан на программировании регистров MTRR (Memory Type and Range Registers) и переопределении статуса диапазона доступа к видеопамяти на Write Combining (WC). Атрибут WC позволяет группировать результаты нескольких шинных циклов записи в пакеты размером до 4 килобайт для отправки по шине PCI Express. Заметим, что подавляющее большинство реализаций Legacy BIOS и UEFI firmware устанавливает для видео памяти статус Uncacheable (UC), запрещающий оптимизировать порядок выполнения шинных циклов.
Таким образом, существует компромисс между производительностью и совместимостью, которого в большинстве случаев достаточно для 2D-графики и недостаточно для 3D-графики. Всем, кому это интересно, могут ознакомится с исходным кодом ряда наших программных продуктов.
0
подобный доступ через MTRR специально создавался для подобного/быстрого использования,
отлично что помогло.
используется так же на Linux и Windows, как минимум для графических драйверов
отлично что разбираетесь с UEFI!
отлично что помогло.
используется так же на Linux и Windows, как минимум для графических драйверов
отлично что разбираетесь с UEFI!
0
Кстати, а почему бы вам не положить исходники на github? Авось и патчи присылать активнее будут :)
0
Нам подсказывают, что уже была попытка написать Тетрис под UEFI.
Вот только он не компилируется по причине отсутствия файла #include «piece.h». После внесения исправлений программа при запуске виснет (в двумерных массивах перепутаны X и Y).
Вот только он не компилируется по причине отсутствия файла #include «piece.h». После внесения исправлений программа при запуске виснет (в двумерных массивах перепутаны X и Y).
0
Sign up to leave a comment.
Игры с UEFI