Pac-Man в загрузочном секторе: мексиканский разработчик создал игру Pillman размером 512 Кбайт
Мексиканский разработчик Оскар Толедо Гутьеррес (Óscar Toledo Gutiérrez), использующий псевдоним Nanochess, имеет необычное увлечение: он создает крохотные игры на C, Java, Javascript и в машинном коде x86. Благодаря своим работам, в том числе самым маленьким в мире шахматным видеоиграм на этих языках, он стал призером нескольких конкурсов. На его счету пять наград престижного IOCCC (International Obfuscated C Code Contest), участники которого соревнуются в написании запутанного кода на языке Си. Недавно программист представил свое новое творение - аналог Pac-Man под названием Pillman, занимающий 512 Кбайт и умещающийся в главную загрузочную запись. При желании его можно запустить на оригинальном компьютере IBM PC 1981 года.
Pillman очень похожа на культовую игру Namco, но в описании поедающий точки Пакман заменен на безымянного "желтого человечка", поглощающего "пилюли". Управление предельно простое - используются лишь клавиши со стрелками. Скачать ее, а также исходный код предлагается на GitHub. Аркаду можно запустить как COM-файл или поместить в загрузочный сектор дискеты. Для ассемблирования потребуется Netwide Assembler, который можно скачать с официального сайта. Собрать игру позволят следующие команды:
nasm -f bin pillman.asm -Dcom_file=1 -o pillman.com
nasm -f bin pillman.asm -Dcom_file=0 -o pillman.img
Толедо тестировал Pillman на эмуляторах VirtualBox и DOSBox, но предполагает, что она также будет работать на QEMU. Приложение совместимо с 16-битным процессором Intel 8088, на базе которого работал оригинальный IBM PC, но стоит учесть, что для запуска на старом "железе" придется найти видеокарту с разъемом VGA и поддержкой восьмибитного цвета.
Так выглядит игра, запущенная на эмуляторе (видео опубликовал сам автор):
В июне Толедо выложил в открытый доступ аналогичный 512-килобайтный клон еще одной легендарной аркады - Space Invaders (он называется просто Invaders). В 2017 году мексиканец выпустил столь же компактную игру, основанную на Flappy Bird. Некоторые релизы программиста предназначены для консолей семидесятых-восьмидесятых (например, Atari 2600 и Intellivision). Энтузиаст не только "клонирует" классику, но и делает оригинальные проекты - к таким относятся Princess Quest и Mecha Eight для MSX. Оценить многообразие его игр можно на GitHub и личном сайте.
Толедо также создал эмулятор Intel 8080 (за него он получил один из своих призов IOCCC) и написал несколько обучающих книг, в том числе "Toledo Nanochess: The commented source code", посвященную его знаменитой шахматной видеоигре, код которой состоит из 1 257 символов (не считая пробелов), и "Programming Games for Intellivision". В его копилке также множество призов конкурсов JS1K и MSXdev. Мексиканец дает интервью прессе, консультирует игровых программистов и дизайнеров и читает лекции в университетах своей страны.