Doom запустили на зеркалке Canon EOS 550D: как это стало возможным

Энтузиаст запустил культовый шутер Doom на 16-летней зеркальной камере Canon EOS 550D. Для этого потребовалась прошивка Magic Lantern и несколько ухищрений — рассказываем, как и зачем это сделали.

Doom запустили на зеркалке Canon EOS 550D: как это стало возможным

Doom — это игра, которую запускали почти на всём, что имеет экран и кнопки: от калькуляторов и банкоматов до тестов на беременность. Теперь в этот список попала зеркальная камера Canon EOS 550D, вышедшая в 2010 году. Разработчик под псевдонимом lauris-nl опубликовал видео и исходный код, демонстрирующие играбельную версию классического шутера на этой камере. Это не просто технический курьёз, а пример того, на что способно открытое программное обеспечение в руках увлечённых инженеров.

Doom на Canon EOS 550D: как это работает

Canon EOS 550D — это любительская зеркальная камера с 18-мегапиксельной матрицей и процессором DIGIC 4. Изначально она предназначена для фотосъёмки, но благодаря прошивке Magic Lantern, которая базируется на открытом коде, энтузиасты получили доступ к низкоуровневым функциям устройства. Именно эту прошивку использовал lauris-nl, чтобы запустить Doom. Он адаптировал игру под специфику камеры: управление осуществляется сенсорным экраном и кнопками, а вывод изображения происходит на встроенный дисплей.

Для запуска потребовалось портировать код Doom, который изначально был написан для IBM PC в 1993 году. Поскольку процессор DIGIC 4 работает на архитектуре ARM, потребовалась кросс-компиляция и адаптация графической подсистемы. Камера не имеет выделенного графического ускорителя, поэтому рендеринг происходит программно, что ограничивает производительность. Тем не менее, игра работает — пусть и с низкой частотой кадров, но вполне играбельно.

Предыстория и контекст

Canon EOS 550D — не первая камера, на которой запустили Doom. Ранее энтузиасты запускали игру на калькуляторах TI-83 Plus, на банкоматах, на умных колонках и даже на тесте на беременность. Однако камеры — это особая категория: они имеют довольно мощное «железо» для встраиваемой техники, но закрытую прошивку. Magic Lantern, проект с открытым исходным кодом, существует с 2009 года и позволяет расширять функциональность камер Canon, добавляя такие возможности, как покадровая съёмка, улучшенный аудиоконтроль и даже скрипты на Lua. Именно эта прошивка открыла дверь для подобных экспериментов.

Интересно, что Doom — это не просто игра, а культурный феномен. Её исходный код был открыт в 1997 году, что позволило портировать её на бесчисленное множество платформ. Это делает её идеальным кандидатом для демонстрации возможностей любого устройства. Каждый новый порт — это не только дань уважения классике, но и проверка инженерной смекалки.

Чем отличается от предыдущих запусков?

В отличие от многих других портов, которые используют эмуляцию или виртуальные машины, lauris-nl скомпилировал Doom нативно для процессора DIGIC 4. Это означает, что игра использует аппаратные ресурсы камеры напрямую, без прослоек. Однако из-за отсутствия оптимизации под графические возможности камеры производительность ограничена: разрешение и частота кадров ниже, чем на оригинальном ПК. Тем не менее, это полноценный запуск, а не эмуляция.

Технические подробности

Процессор DIGIC 4, установленный в Canon EOS 550D, работает на частоте около 400 МГц и имеет всего 256 МБ оперативной памяти. Для сравнения, оригинальный Doom требовал процессор 386 с частотой 33 МГц и 4 МБ ОЗУ. Казалось бы, ресурсов достаточно, но проблема в том, что DIGIC 4 не имеет блока с плавающей запятой, а графический вывод требует обработки изображения в реальном времени. Разработчик использовал программный рендеринг, аналогичный оригинальному, но без аппаратного ускорения. Это привело к тому, что игра работает на пониженном разрешении и с ограниченной частотой кадров.

Управление в игре осуществляется через сенсорный экран камеры: виртуальные кнопки для перемещения и стрельбы. Также можно использовать физические кнопки, такие как спуск затвора, для выстрела. Звук выведен через динамик камеры, хотя он и не отличается качеством. Несмотря на ограничения, lauris-nl удалось добиться стабильной работы игры, что подтверждается видеороликом на YouTube.

Кого затронет и как

Этот запуск интересен прежде всего сообществу энтузиастов, которые занимаются портированием игр на нестандартные устройства. Для них это ещё одно доказательство того, что открытый исходный код и энтузиазм могут преодолеть ограничения проприетарного ПО. Также это может вдохновить разработчиков Magic Lantern на дальнейшее расширение функциональности камер. Для обычных пользователей это скорее курьёз, но он показывает, насколько гибким может быть «железо», если получить к нему доступ.

В России и СНГ сообщество любителей Doom и ретро-игр активно, и подобные новости часто вызывают живой интерес. Возможно, кто-то из местных энтузиастов захочет повторить эксперимент или даже улучшить его. Исходный код доступен на GitHub, так что любой желающий может попробовать запустить Doom на своей камере Canon с Magic Lantern.

Что будет дальше

Сам lauris-nl не сообщает о планах по развитию проекта, но можно ожидать, что другие разработчики подхватят идею и попробуют оптимизировать производительность. Возможно, появятся порты других классических игр, таких как Wolfenstein 3D или Quake. Также не исключено, что Magic Lantern получит новые функции, связанные с запуском стороннего ПО. Однако стоит отметить, что подобные эксперименты остаются нишевыми и вряд ли приведут к массовому использованию камер в качестве игровых консолей.

Итог

Запуск Doom на Canon EOS 550D — это яркий пример того, как открытый код и инженерная смекалка могут оживить старое оборудование. Это не только дань уважения культовой игре, но и демонстрация возможностей прошивки Magic Lantern. Для энтузиастов ретро-гейминга это очередное подтверждение того, что Doom можно запустить где угодно. Следите за новостями — возможно, вскоре появятся порты на другие модели камер.