Энтузиаст написал «Змейку», работающую без BIOS, ОС или загрузчика
Новости
Инженер-энтузиаст разработал минималистичную версию «Змейки», способную запускаться напрямую, без BIOS, операционной системы и загрузчика. Проект занимает всего 114 Б и демонстрирует возможности работы с QEMU, включая решение проблем с графическими регистрами и параметрами эмуляции
244 открытий3К показов
Инженер-энтузиаст поделился впечатляющим проектом, в котором он написал версию знаменитой игры «Змейка», способную запускаться напрямую, без участия BIOS, операционной системы или загрузчика.
Эта минималистичная версия игры включает в себя весь код и даже процесс инициализации оборудования, занимая всего 114 Б.
Минимальный код и уникальная реализация
Ранее разработчик уже создавал «Змейку» объёмом в 58 Б. Однако тогда он столкнулся с критикой, мол подобное возможно лишь благодаря использованию BIOS и ОС.
В ответ на это он создал доказательство концепции (POC), которое работает абсолютно автономно — без использования BIOS, загрузчика или ОС.
Проект успешно запускается через эмулятор QEMU, демонстрируя возможность работы игры исключительно на аппаратной инициализации.
Проблемы с QEMU и icount
При создании этой версии игры энтузиаст столкнулся с проблемой, связанной с параметром icount
в QEMU, который регулирует скорость эмуляции.
Изначально он планировал использовать значение icount=20
, однако обнаружил, что текущая версия QEMU ограничивает его до 10.
Попытки изменить это значение привели к созданию PR для увеличения предела до 30, однако разработчики QEMU отметили, что icount
уже устарел и предложили использовать плагин ips
.
Решение проблемы с VGA
В процессе перехода на более новую версию QEMU (9.1.0) для использования плагина ips
, разработчик обнаружил, что его программа перестала выводить изображение на экран.
После долгого анализа изменений между версиями, он нашёл причину — изменение в обработке графических регистров. После корректировки кода, добавив вывод 0xFF08
на порт 0x3CE
, проблема была успешно решена и игра снова заработала.
Отметим, что данный проект является примером уникальной инженерной находчивости, а также показывает, как глубокое понимание работы низкоуровневого оборудования может приводить к созданию удивительных решений.
244 открытий3К показов