Лучшее  🚀
15.06.2021 в 10:11 Evernews

Doom запустили на умной лампочке из IKEA

Исходники есть на GitHub, при желании эксперимент можно повторить.

Кстати, на сайте читать удобнее

Команде next-hack удалось запустить первую часть Doom на умной лампочке из IKEA. Речь идет о лампочке Trådfri GU10 345 RGB, оснащенной микропроцессором: его мощности оказалось достаточно для запуска игры.

В лампочке используется процессор Cortex M33, работающей на частоте 88 МГц, но ее пришлось дополнить периферией. Хотя микропроцессор мог запустить Doom, у лампочки не было ни экрана для вывода картинки, ни контроллеров.

Все это было добавлено с помощью платы MGM210L RF, подключенной к лампочке. Кроме того, пришлось решить проблему с памятью: у лампочки исходно только 108 КБ оперативной памяти и 1 МБ флэш-памяти.

Для Doom этого маловато: оперативки и накопителя не хватит даже для того, чтобы хранить данные самого первого уровня. Для запуска игры исследователям пришлось:

  1. Портировать Doom на процессоры Cortex (сперва на мощный Cortex M7, а затем, по мере оптимизации, на M33).
  2. Оптимизировать игру, максимально уменьшив нагрузку на память.
  3. Переделать работу с памятью и добавить поддержку внешнего накопителя: на нем хранились основные данные, а флэш-память лампочки выступала в роли кэша.
  4. Добавить вывод звука и поддержку управления.

Лампочку подключили к экрану с разрешением 160х96 пикселей. В результате всех оптимизаций Doom работал на умной лампочке с более-менее нормальной частотой кадров, почти всегда превышавшей 20 fps.

Основным бутылочным горлышком, рассказывают исследователи, была необходимость работы с медленным накопителем: при загрузке данных не из флэш-памяти частота кадров могла падать до 16 fps.

Все исходники своего проекта команда next-hack выложила на GitHub.

Читать далее