Где заставили работать doom
20 ноября канадский видеоблогер выложил видео, как он играет в оригинальный Doom на тачпанели нового Macbook Pro. Редакция DTF вспомнила ещё 7 необычных способов, к которым прибегали изобретатели, чтобы запустить классический шутер студии id Software.
В сентябре 2015 года сотрудники компании «Фейсбук» запустили Doom на устройствах от Apple — часах и ТВ-приставке. Лиор Туби и Мехди Мулани участвовали в 10 часовом хакатоне, который проходил в Тель-Авиве, и за это время перенесли легендарный шутер сначала на Apple Watch, а затем на Apple TV.
Авторы воспользовались исходным кодом проекта, который был выложен в открытый доступ в 1997 году. По их словам, они просто развлекались, поэтому не станут выпускать никаких официальных приложений для этих устройств.
Австралийские энтузиасты выложили ролик, в котором подробно рассказали о том, как поиграть в Doom на стандартном банкомате. Они вывели изображение на стационарный монитор, подключили i-Pac контроллер, чтобы управлять боковыми кнопками, а также подсоединили трекпад.
Тогда же, в июле 2014 года, другие разработчики запустили шутер на рекламной панели трейлера. Авторы рассказали, что им пришлось переписать код и использовать драйвера от системы Linux, чтобы игра выводилась на крупный светодиодный экран.
Мода на запуск Doom на любых устройствах появилась ещё в 2011 году. Разработчики с профессионального форума omnimaga запустили игру на классическом калькуляторе TI-Nspire с черно-белым экраном. Они переписали код и в результате даже сумели пройти несколько уровней.
Год спустя другие энтузиасты переделали шутер под новую версию калькулятора TI-Nspire с цветным экраном. В итоге, игра выглядит как неплохая мобильная адаптация.
В 2014 году специалисты по безопасности компании Context Information Security воспользовались лазейкой офисного принтера. Они взломали Canon Pixma, потому что устройство не требует идентификации пользователя, и запустили Doom на мини-экране.
Самое быстрое портирование шутера 90-х годов вышло у изобретателя под ником Sos Sosowski. За 24 часа он перенёс Doom в пианино: встроил в деревянную панель компьютера, а клавиатуру переоборудовал в клавиши от инструмента.
Известный Youtube-блогер и изобретатель Джордж Мерлокко вмонтировал миниатюрную систему Raspberry Pi Zero в игрушечную бензопилу и запустил на ней вторую часть Doom.
В ролике он играет и на клавиатуре, и на геймпаде от Xbox 360. Таким образом Мерлокко выразил уважение к классическим шутерам своего детства.
Дальше всех зашёл автор The Zombie Killer, который в 2015 году выпустил мод Classic Arcade для игры 1993 года. С помощью него можно поиграть в некоторые уровни Doom на аркадном автомате внутри шутера.
Единственное, это не традиционная, а портированная версия ZDoom, которая поддерживает более широкое редактирования и высокое разрешение.
3. Кассовый аппарат
Молодой человек по имени Райан Эдгар смог убедить сотрудников Макдоналдс отдать ему на эксперименты старый кассовый аппарат. Не долго думая, взломав основные системы защиты терминала, он смог запустить легендарный шутер.
1. Фотоаппарат
Да не просто фотоаппарат, а устройство аж 90-ых годов выпуска! Сами понимаете, недостижимая игрушка тех лет Kodak DC260 имела при себе вполне себе живой компьютер, что и позволило запустить на ней игру, адаптировав управление на встроенные кнопки управления, а также на затвор, изменение резкости и других управляющих устройств фотоаппарата
5. Терминал оплаты
Ну тут совсем все просто, но тем не менее забавно. Российская компания Qiwi решила провести небольшой эксперимент со своими терминалами, сделав скрытую возможность запустить флэш версию Дума и поиграть в неё прямо с терминала. Для доступа, необходимо было вбить в строку поиска IDDQD (код на бессмертие в оригинальной игре)
DOOM: На чём его только не запускали.
DOOM легендарная игра. Уже прошло более 20 лет, но она до сих пор в тренде. И тренд этот основан на энтузиастах, которые пытаются запускать Doom на всём что имеет экран.
Давайте посмотрим на что способен мозг человека.
Начнём с лёгкого
Умные часы
DOOM смогли запустить на Apple Watch и играется он там довольно таки не плохо, хоть и экран маленький.
Калькулятор
Смех смехом, но калькулятор как будто был создан для DOOM ! Чувак забиндил дофига клавиш на разные действия и играет как с джойстика.
Doom 2 в Doom Eternal
Парень решил пройти дум в дум пока играл в дум.
Doom на "Волшебном экране"
Не детская забава демонов стрелять. Хотя подождите.
Doom на банкомате Qiwi
Заплатил за интернет и заодно побегал по Аду
Doom на принтере
Doom на фортепиано
Крыша у людей едет конкретно. Но чтоб запустить Doom на фортепиано и забиндить клавиши на управление.
Недавно на моём Youtube канале появилось два видео. Они будут снизу. Прошу оценить.
Запуск DOOM
Переходим к самой интересной части — к запуску DOOM на калькуляторе. Как вы понимаете, я не зря вначале расписал обо всех проблемах. Можно запустить DOOM при загрузке на NAND-флеш, там можно поставить карты всех видов, все возможные версии DOOM и вообще всего что душа пожелает. Но при запуске в ОЗУ, мы ограничены размером образа rootfs примерно в 15 МБ (практика показала, что 16 ещё прокатывает). В связи с этим, пришлось подбирать версию DOOM и делать правильную сборку, а также научиться с ней работать.
Оказалось, что всё хорошее давно придумано за нас, и DOOM можно собрать прямо в buildroot не вставая с дивана. Это я узнал, когда гуглил все возможные варианты DOOM для встраиваемых систем и пытался их собрать. Как оказалось, достаточно запустить:
И выбрать DOOM. Это делается в " Target packages ---> Games ---> "
В нашем распоряжении две версии DOOM: chocolate-doom и prboom. После нескольких экспериментов, я понял что chocolate-doom ну никак не хочет влезать в initramfs. Разве, если вообще убрать wad-файлы. Пытался найти обрезанные wad-файлы, которые бы влезали вместе с шоколадным думом. Но она с ними на отрез отказалась работать. В результате, я попробовал шоколадную версию установить на nand (вместе с prboom), и пробовал там. Подбирал параметры и т.д. Результатом экспериментом стала следующий способ запуска:
Итог меня сильно разочаровал: эта версия doom некорректно (или может, наоборот, корректно) растягивает экран, оставляя широкие полосы по краям экрана, что мне очень не понравилось.
Шоколадная версия DOOM. Видна чёрная полоса снизу.
При запуске, мне шоколадный дум говорит о том, что делает изменение размера окна:
Поэтому, я остановился на prboom. Сделал образ вместе с шароварными WAD-файлами и самим prboom, всё лишнее убрал. Но, всё равно очень долго не мог заставить его работать. Читал всевозможные мануалы, искал как сконфигурировать, чтобы всё корректно работало. Изображение выводит, на кнопки реагирует, но экран коряво растягивает и выводит кривые цвета. Пока на каком-то форуме не нашёл идеальные параметры запуска.
В общем, для нашего калькулятора запуск prboom такой: отключаем мышку, и далее запускаем prboom со следующими параметрами:
Ключевой параметр здесь: "-vidmode 32bit" .
Долго искал подходящие параметры, и только с этим всё завелось. Для удобства всё записал в скрипт d.sh. Наконец всё работает, можно даже играть!
Специально для вас, я подготовил обновлённую сборку flash_utility с DOOM, который вы можете запустить на своём калькуляторе даже без перепрошивки, и показать друзьям, мол вот, DOOM у меня в калькуляторе работает. Достаточно разобрать калькулятор, замкнуть контакты, описанные в первой части и запустить
В конце всех действий, вы получите калькулятор, с linux и DOOM. Чтобы запустить DOOM, надо будет залогиниться и на калькуляторе выполнить:
Резюмируя
DOOM работает! Можно ли в него играть? Ну локально, загружая с компьютера — можно. Это выглядит круто и красиво, но на деле, не совсем то что хочется получить. В действительности будет круто, когда ты едешь в метро, взять и достать из широких штанин калькулятор, включить его (на данный момент режим энергосбережения не работает), и запустить DOOM. Вот это реально круто, играть в метро на калькуляторе в DOOM, Duke Nukem 3D, Quake I, II, III и т.д. Но факт остаётся фактом — DOOM на этой железке запущен. Но ещё очень много работы.
В целом, не хватает хотя бы небольшого сообщества вокруг этого калькулятора (хотя бы больше меня одного), чтобы были тестировщики проблем, было с кем поговорить и поделиться, услышать совет. Первоначальный автор явно остыл к данному проекту, хотя и проделал титаническую работу. Я его хорошо понимаю, и никак не могу укорять за то, что он не хочет помогать даже советом по данному проекту. Ну так, небольшие рекомендации давал, но ему явно уже не до него. Поэтому если у вас есть идеи, калькулятор, желание помочь, хотя бы советом, пишите тут или в телегу, буду рад!
8. Осциллограф
На самом деле тут больше ухищрения в установке виндовс 95 на осциллограф, нежели заставить запуститься там Дум. Тем не менее, на настоящем осциллографе тоже можно попробовать, ведь в свое время такое проворачивали с Quake
10. Doom внутри Doom
Ну и венцом оригинальности, где можно поиграть в Дум является… сам Дум. Моддер модифицировал файлы игры таким образом, что добавил в игру игровой автомат, в который можно поиграть в Дум. Оригинально, ничего не скажешь
P.S. Зачем я этим занимаюсь?
Очень часто спрашивают меня «нафига»? Умом понимаю, что на данный вопрос отвечать глупо, но тем не менее отвечу.
Зачем художник рисует картину или автор пишет книгу? Будем честны, 90% книг, картин да и других произведений могут вообще не увидеть свет, а из тех кто увидят, доли процента станут известными и обретут широкий круг читателей. Проще говоря, большинство творцов делают «бесполезный» труд. Более того, множество произведений даже никогда не находят своего читателя, но что же им этого не делать? Что движет этими людьми? Всё достаточно банально. Ими движет простое чувство:
Проще говоря, этим занимаешься, потому что это круто и это прёт. И, как это ни странно, в будущем приносит большую пользу, хоть и не такую явную как кажется.
Doom на вашем калькуляторе! На чем запускали легендарную игру.
На носу Doom Eternal, продолжение успешного ремейка оригинальной Doom. В честь скорого выпуска, давайте окунемся в прош… подождите, никакого прошлого! Doom и сейчас актуален, но не с точки зрения графических решений, а с точки зрения того, что в него можно поиграть на чем угодно! Самые неадекватные устройства мы сегодня и рассмотрим.
9. Принтер
А вот тут уже серьезный подход. Хакеры взломали Canon Pixima и на имеющихся мощностях принтера запустили Дум. И это был именно взлом. Хакеры наглядно продемонстрировали, что даже принтер, через взлом прошивки, может стать серьезной угрозе предприятию. Но речь не об этом.
4. Банкомат
Хотели деньги? Получили Дум, компьютер внутри системы банкомата тоже может запустить Дум, управлять придется с помощью цифровых клавиш, но играть вполне себе возможно.
Запускаем DOOM на калькуляторе HP Prime G2
Тем, кому интересно как же я запустил DOOM, могут пропустить эту главу и перейти сразу к следующей. Тут просто представлен текущий статус проекта.
Как вы помните в прошлых частях (часть 1 и часть 2), я занимался тем что ставил Linux на калькулятор, пересобирал u-boot, kernel, rootfs. С тех пор достаточно плотно занимался калькулятором и даже основательно разобрался с тем, что же было сделано в u-boot, kernel и device tree. Надо понимать, что это моё хобби, в свободное от основной работы и семьи время, поэтому не всё идёт быстро, и порой несколько алогично, просто потому что сегодня есть настроение делать так, а не иначе.
Главная новость состоялась, благодаря пользователю Alx2000y, который пригласил меня в чатик в телеге, где на аналогичном процессоре народ пилит свою прошивку для Xiaomi Gateway. Даже есть статья на хабре по теме. Народ уже сильно продвинулся в данной теме, невероятно расширив функционал устройства. И мне очень сильно помогли победить проблему nand. Как вы помните, в самом начале я свой образ nand затёр по глупости. В результате, у меня получилось достаточно большое количество «виртуальных» битых секторов, самое неприятное что битые сектора находились в самом начале и не давали записать туда u-boot. Ниже привожу список битых секторов, большинство из них виртуальные.
Ленар, из вышеупомянутого чатика, очень сильно мне помог, проблема решилась буквально двумя командами в u-boot:
После чего, проверяем количество битых секторов, и, о чудо, их стало значительно меньше!
В результате, я теперь могу загрузить u-boot в нулевой сектор и произвести загрузку. На данный момент, калькулятор может быть загружен просто подав питание и будет полностью загружен linux, с работающим дисплеем и возможностью запуска программ по UART. Там даже корректно работает DOOM. «Но, есть нюанс» (С). Видимо драйвер клавиатуры как-то пересекается с драйвером ubifs, и в результате, если нажать любую клавишу на клавиатуре, то происходит мгновенное зависание калькулятора. Мне разок даже прилетел kernel panic, но я не сообразил его сохранить, чтобы хотя бы найти место этого пересечения. Так что на данный момент, всё однозначно работает в initramfs. Видео с демонстрацией работы загрузки nand, запуска DOOM и зависания постил в своём телеграмм канале.
Из других хороших новостей, попробовал поставить ubuntu на nand, тоже корректно работает. Пакеты, конечно, ставить нельзя, но в целом можно работать и использовать её, что тоже удобно. Но без работающий клавиатуры, эти игры пока лишены практического смысла.
В последней части я жаловался, что u-boot имеет разное поведение, при работе на nand и из ОЗУ. Я потратил два дня, ковыряния в исходных кодах u-boot, чтобы понять в чём же дело. А всё оказалось банально (даже стыдно). Утилита uuu, при запуске u-boot из памяти, передаёт туда свои переменные окружения. А точнее вызывает mfgtool_args и в результате строка переменной окружения загрузки выглядит таким образом:
Разумеется, если загрузиться с nand, то с такими параметрами ubifs в четвёртом разделе виден не будет. Поэтому после загрузки u-boot в ОЗУ, я принудительно задаю ему следующие переменные окружения:
И всё отлично работает.
Поясню, зачем это нужно: если прошить загрузчик в нулевой сектор, пропадает возможность работы через mfgtool (утилита uuu). А на данном этапе, состоящем из разработки и отладки — это основной инструмент. Поэтому проще оставить возможность работы утилиты uuu, и загружать каждый раз u-boot вручную.
2. Клавиша на клавиатуре
Еще одно странное устройство, выпущенные студией Артемия Лебедева в 2008 году под названием Optimus Maximus. По факту, это клавиатура, имеющая на каждой клавиша мини дисплей. Ну нам и этого достаточно! Воспроизведя игру на компьютере и настроив быструю передачу скриншотов на клавишу удалось добиться более менее адекватной картинки, позволивший поиграть в Дум на клавиатуре. Задача была, конечно, не из легких.
6. Калькулятор
И тут его тоже смогли запустить. Причем с начала в черно-белом варианте, использовав модель TI-Nspire, воссоздав его полностью на мощностях калькулятора, а затем еще в цветном виде TI-Nspire CX.
7. Бензопила
Ничего принципиально важного, по большому счету, это игрушечная бензопила, к которой прикрутили монитор и компьютер на Rapsberry PI, зато сколько брутальности оно добавляет.
Читайте также: