- PVSM.RU - https://www.pvsm.ru -

Space Invaders: теперь и в 512 байт (Assembler x86)

image

Казалось бы, ещё совсем недавно Space Invaders умещали в 1 килобайт [1], а теперь смогли уместить в один загрузочный сектор (512 байт). Автор программы — Оскар Толедо, пятикратный победитель IOCCC (International Obfuscated C Code Contest [2]) и регулярный участник JS1K, также известный как создатель шахмат, которые занимают всего 392 байта [3].

Исходный код игры можно посмотреть в репозитории на Github: github.com/nanochess/Invaders [4]

Для запуска вам потребуется nasm (Netwide Assembler), который можно скачать на официальном сайте [5]. Игру можно собрать, выполнив команду:

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.

Демонстрацию работы игры можно посмотреть на видео.

Автор: HotWaterMusic

Источник [6]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/nenormal-noe-programmirovanie/319898

Ссылки в тексте:

[1] умещали в 1 килобайт: https://habr.com/ru/post/446984/

[2] International Obfuscated C Code Contest: http://www.ioccc.org

[3] шахмат, которые занимают всего 392 байта: http://nanochess.org/chess6.html

[4] github.com/nanochess/Invaders: https://github.com/nanochess/Invaders

[5] на официальном сайте: http://www.nasm.us

[6] Источник: https://habr.com/ru/post/454872/?utm_campaign=454872