И целого байта мало… (Часть #1)

в 2:06, , рубрики: demoscene, x86, ассемблер (x86), Демосцена

Дамы, господа, сегодня отличный день!

Скорее всего вы помните, что существует такая форма компьютерного искусства как «демосцена», но если слышите это слово впервые — просто прочитайте тематический хаб и теги на Хабре, а так же пару популярных статей по этому вопросу.

image

Одной из форм соревнования на демосцене является sizecoding — программирование визуальных эффектов в крайне ограниченном объеме машинного кода. Прежде чем мы перейдем к достижениям сегодняшнего дня (а они есть и более чем масштабные), давайте очень быстро пробежимся по наследию дедов. Все приведенные ниже работы сделаны в разные годы, объединяет их требование к платформе — PC, x86, DOS (никакого GPU, обычная видеокарта). В идеале вам стоит поставить DosBox и запускать каждую работу самостоятельно, благо авторы не особенно озадачиваются созданием видео и загрузкой его на YouTube. Мы постарались выбрать по одной показательной работе в каждой номинации.

Для начала посмотрим на «крупные» релизы, те, которые занимают килобайты. Здесь золотым стандартом является 64 килобайта. Категория 40 килобайт популярна на компьютере Commodore Amiga, а в случае с PC здесь обычно лежат работы, которые авторы не захотели дописывать до 64k. Говоря про 32k и 16k — это чаще всего cracktro и bbs intro, которые формально тоже можно отнести к демосцене.

64k introheaven seven by Exceed

40k introAlien Incident Cracktro by Hybrid & Superior Art Creations

32k introQuake 3 Cracktro (RZR #07) by Razor 1911 & Superior Art Creations

16k introBlastersound BBS (2) by Iguana

А вот отсюда начинается настоящая демосцена, здоровенная, демосцена моей мечты!

8k intromars by Tim Clarke

4k introOmniscent by Sanction

1k intropaleozoa by fsqrt

512b introAFLAtoxin

256b introPuls by Rrrola

128b introcross by Queue Members Group

64b introinto a new era by Desire

32b introProjektbeschreibung by Desire

На этом официальны градации на Pouet заканчиваются, но не заканчивается погоня за эффектами в минимальном объеме кода. Вот в качестве примера всем знакомый «дождь из символов в Матрице» размеров всего восемь (8) байт:

8b introm8trix 8b

Вопрос дня: может ли быть интро размером в 4 байта? А в 2 байта?
Ответ: ДА.

Вот машинный код для процессора x86:

#EB #80

А вот результат на экране:

Заинтригованы? Во второй части мы детально расскажем как такое возможно! Уж такой сегодня
день…

Продолжение статьи можно и не ждать, если вы умеете держать ассемблер в руках и язык вероятного противника вам знаком. Вот ссылка на ответ: www.pouet.net/prod.php?which=85118

Пишите в комментариях что поняли, что не поняли и что хотели бы понять из прочитанного выше. Ассемблер вовсе не черная магия! Просто НОРМАЛЬНЫЙ мужской язык программирования, а не это все «для девочек», на чем вы обычно каждый день пишите.

Архив выпусков нашей научно-популярной передачи:

И целого байта мало… (Часть #0)
И целого байта мало… (Часть #-1, пилот)

Автор: Максим Мучкаев

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js