Разработчик «вшил» первый уровень оригинального Doom в FPGA-микросхему

Основной код занял 666 строчек.

Сильван Лефебвр (Sylvain Lefebvre), создатель программы IceSL, рассказал в своём твиттере, как ему удалось запустить Doom 1993 года — точнее, первый уровень шутера от id Software — на аппаратном уровне.

Алгоритм «вшит» напрямую в программируемую логическую схему FPGA. Он постоянно запускает карту E1M1 и автоматически проходит её, а работает всё при помощи микросхемы Altera Cyclone V и платы памяти SDRAM, без центрального процессора. Картинка отображается в разрешении 320х200 с частотой обновления в 60 Гц.

Everything is described in a language I am working on: SDRAM controller, divider, BSP traversal, texture unit, etc.
Main renderer (w/o data) is 666 lines of code (!).
A great test case, made quite a few improvements, fixed some issues, learned a lot on CycloneV + Quartus.
(2/n) https://t.co/2VFUfaut3r
Разработчик «вшил» первый уровень оригинального Doom в FPGA-микросхему
Всё описано на языке, над которым я сейчас работаю: контроллер SDRAM, разделитель, обход дерева BSP, текстуры и т.д. Основной код рендерера без самих данных занял 666 строчек кода. Отличный тестовый случай, я уже кое-что улучшил и многому научился в работе с Cyclone V и Quartus.

Алгоритм Лефебвра использует данные из самих WAD-файлов игры — нужную информацию извлекает препроцессор прямо во время компиляции кода. Разработчик признал, что ему нужно ещё многое усовершенствовать и исправить ошибки — например, неверно отображающиеся текстуры — но своей работой он доволен.

Doom was released as I was learning how to code graphics. It was, and remains, an immense inspiration and motivation boost. I spent countless hours making levels, hacking the game and hex dumps of doom.exe / doom.wad. This was a good opportunity to dive back into it!
(9/n)
Doom вышел, когда я только учился, как писать код для графики. Он как был, так и остаётся для меня большим источником вдохновения и мотивации. Я потратил несчётное количество часов на создание уровней, взлом игры и hex-дампов doom.exe и doom.wad. Рад был снова к этому вернуться!
9.9K9.9K открытий
38 комментариев

Комментарий недоступен

Ответить

666 строк - печать Зверя!

Ответить

Если в ходе чипирования будут вшивать Дум 1 и 2, то я первый готов встать в очередь. Иногда вот так нечего делать и хочется чего-то неведомого. А тут закрыл глаза и сразу демонов пошёл кромсать.

Ответить

Даже на микросхемах 60 фпс, консолота как всегда соснула

Ответить

Ииии, в чем гешефт? 

Ответить

Комментарий недоступен

Ответить

Тут можно сделать несколько выводов:
- Doom была и есть гениальная игра, созданная гениальными программистами
- Это новый уровень, тут человек показал миру, что есть еще ресурсы и не все
решается размером видеопамяти и количеством ядер.
- Майнерам будет во что поиграть после того как их FPGA превратятся в хлам
- Сатана скорее всего гик

Снимаю шляпу!

Ответить