Энтузиаст ретро-ПК изменил VBIOS винтажной видеокарты, чтобы встроить версию Snake — игры, в которую все играли на своих кнопочных телефонах. Эта крошечная порция «змеиного» веселья доступна при каждой загрузке системы, а после выхода игра позволяет ПК продолжить загрузку в обычном режиме. Bits und Bolts осуществил этот мод S3 ViRGE DX, взломав VBIOS и внедрив Snake 512 — бесплатную версию игры, сжатую всего до 512 байт и написанную на ассемблере x86.
Прежде чем внедрить Snake 512, Bits und Bolts решил модифицировать VBIOS S3 ViRGE, добавив динамический (текстовый) splash-экран для отображения фактической частоты ГП. Эта работа основана на предыдущих усилиях, когда техноблогер внедрил графический splash-экран, и задача занимает примерно первую половину видео.
С отметки 10 минут 43 секунд мы видим, как энтузиаст винтажных вычислений внедряет Snake 512 в BIOS видеокарты. Snake 512 была разработана так, чтобы поместиться в 512 байт сектора загрузки диска и работать в реальном режиме x86. Bits und Bolts посчитал, что этот ассемблерный код, независимый от ОС, идеально подходит для встраивания в VBIOS.
Смелый поклонник винтажных компьютеров не мог просто скопировать код с GitHub и вставить его в BIOS. Поэтому он обратился к Claude Code, чтобы подготовить закомментированный код с GitHub и преобразовать его в шестнадцатеричный код, пригодный для внедрения в VBIOS.
Когда код был готов к вставке, Bits und Bolts открыл S3 ViRGE VBIOS в Ghidra — фреймворке для обратной разработки, созданном Агентством национальной безопасности (NSA) США. Этот инструмент теперь бесплатен, с открытым исходным кодом и доступен на GitHub.
Затем было найдено пустое место в целевом файле, сразу после splash-экрана, и новый код был вставлен. Блок кода нуждался в ссылке/патчинге, чтобы он запускался после splash-экрана, а не игнорировался при загрузке. Затем потребовалось исправить контрольную сумму.
Реализация Snake 512 в VBIOS выглядела следующим образом:
Обратите внимание, что USB-клавиатуры не работают с этой реализацией Snake 512. Звука также нет. Однако, когда все заработало, как задумано, Bits und Bolts перешел к дальнейшей настройке — редактированию цветов игры Snake 512 (снова в Ghidra). Энтузиаст винтажных вычислений ранее заложил в закладки разделы кода, где были определены цвета для рамки, фона, головы змеи, тела змеи и других элементов. Теперь они были отредактированы на другие значения из палитры цветов VGA с использованием шестнадцатеричных значений для соответствующих строк/столбцов. В конце видео, когда все заработало и окрасилось, как задумано, техноблогер отпускает шутку: «Кто сказал, что ViRGE не умеет играть в игры?»
В последний раз мы писали о похождениях Bits und Bolts, когда они модифицировали VBIOS S3 ViRGE DX, чтобы отключить «биту пьедестала», из-за которой черные цвета S3 Graphics отображались как темно-серые. Мы также ранее сообщали о порте Doom, выпущенном в качестве полезной нагрузки Coreboot BIOS (конечно, он слишком велик, чтобы поместиться в сам BIOS).
Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.
Автор – Mark Tyson




