И целого байта мало… (Часть #1)
Дамы, господа, сегодня отличный день!
Скорее всего вы помните, что существует такая форма компьютерного искусства как «демосцена», но если слышите это слово впервые — просто прочитайте тематический хаб и теги на Хабре, а так же пару популярных статей по этому вопросу.
Одной из форм соревнования на демосцене является sizecoding — программирование визуальных эффектов в крайне ограниченном объеме машинного кода. Прежде чем мы перейдем к достижениям сегодняшнего дня (а они есть и более чем масштабные), давайте очень быстро пробежимся по наследию дедов. Все приведенные ниже работы сделаны в разные годы, объединяет их требование к платформе — PC, x86, DOS (никакого GPU, обычная видеокарта). В идеале вам стоит поставить DosBox и запускать каждую работу самостоятельно, благо авторы не особенно озадачиваются созданием видео и загрузкой его на YouTube. Мы постарались выбрать по одной показательной работе в каждой номинации.
Для начала посмотрим на «крупные» релизы, те, которые занимают килобайты. Здесь золотым стандартом является 64 килобайта. Категория 40 килобайт популярна на компьютере Commodore Amiga, а в случае с PC здесь обычно лежат работы, которые авторы не захотели дописывать до 64k. Говоря про 32k и 16k — это чаще всего cracktro и bbs intro, которые формально тоже можно отнести к демосцене.
64k intro — heaven seven by Exceed
40k intro — Alien Incident Cracktro by Hybrid & Superior Art Creations
32k intro — Quake 3 Cracktro (RZR #07) by Razor 1911 & Superior Art Creations
16k intro — Blastersound BBS (2) by Iguana
А вот отсюда начинается настоящая демосцена, здоровенная, демосцена моей мечты!
8k intro — mars by Tim Clarke
4k intro — Omniscent by Sanction
1k intro — paleozoa by fsqrt
512b intro — AFLAtoxin
256b intro — Puls by Rrrola
128b intro — cross by Queue Members Group
64b intro — into a new era by Desire
32b intro — Projektbeschreibung by Desire
На этом официальны градации на Pouet заканчиваются, но не заканчивается погоня за эффектами в минимальном объеме кода. Вот в качестве примера эффект из Матрицы размеров всего восемь байт:
8b intro — m8trix 8b
Вопрос дня: может ли быть интро размером в 4 байта? А в 2 байта?
Ответ: ДА.
Вот машинный код для процессора x86:
#EB #80
А вот результат на экране:
Заинтригованы? Во второй части мы детально расскажем как такое возможно! Уж такой сегодня
день…
Вторую часть можно и не ждать, если вы умеете держать ассемблер в руках и язык вероятного противника вам знаком. Вот ссылка: www.pouet.net/prod.php? which=85118