Казалось бы, ещё совсем недавно Space Invaders умещали в 1 килобайт, а теперь смогли уместить в один загрузочный сектор (512 байт). Автор программы — Оскар Толедо, пятикратный победитель IOCCC (International Obfuscated C Code Contest) и регулярный участник JS1K, также известный как создатель шахмат, которые занимают всего 392 байта.
Исходный код игры можно посмотреть в репозитории на Github: github.com/nanochess/Invaders
Для запуска вам потребуется nasm (Netwide Assembler), который можно скачать на официальном сайте. Игру можно собрать, выполнив команду:
nasm -f bin invaders.asm -Dcom_file=1 -o invaders.com
На самом деле, это всё ещё в 4 раза больше, чем весь размер оперативной памяти Atari 2600 — но уже с легкостью поместилось бы на её картридж, который предоставлял 2 килобайта памяти. Также, использование в коде программы инструкций ассемблера PUSHA/POPA
требует наличия процессора 80286 и выше.
Оригинальная Space Invaders вышла в 1980 году и стала одной из первых аркад, портированных на Atari 2600 с игровых автоматов и ставшая бестселлером, увеличившим продажи консоли в 4 раза. Оригинал игры, появившийся на аркадных автоматах в 1978 году, по словам её автора, был в свою очередь вдохновлен другой игрой Atari — Breakout.
Демонстрацию работы игры можно посмотреть на видео.
Источник