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

Wild demo — дичайший из демосценерских конкурсов

"Совершенно бесполезное, отвлекающее умного человека от продуктивной работы и, вероятно, сжигающее множество часов ценного времени... Это искусство в чистом виде".
/ из комментариев к demo Freespin /

Продолжая цикл статей [N1 [1],N2 [2],N3 [3]] о демосцене и демосценерских конкурсах, в преддверии Chaos Constructions'2025 [4] хочу рассказать о конкурсе с самыми, пожалуй, свободными правилами - Wild demo. Возможно, узнав о таком конкурсе, кто-то захочет в нём поучаствовать.

Изначально демо писались почти исключительно под популярные компьютеры, поскольку это позволяло работам широко распространяться и быть увиденными максимальным количеством людей. Однако, с ростом доступности сетей этот критерий стал менее значим. Особенно этому поспособствовала возможность распространять видео - ведь работу, созданную даже для очень экзотического устройства, таким образом может увидеть множество людей, это устройство даже не имеющих.

Описанные изменения привели к тому, что стали появляться демо буквально "для всего" - от редких компьютеров до калькуляторов и даже принтеров. Постепенно стало общепринятым, что на конкурс Wild demo выставляются работы, которые не проходят по правилам на другие конкурсы.

Взависимости от конкретной demo party в эту короткую формулировку добавляют те или иные уточнения. В целом есть два подхода - в одном считается, что работа, тем не менее, обязательно должна иметь исполняемый код (как в нашем случае [5]), в другом - что это может быть вообще что угодно (вплоть до видео на произвольную тему).

Среди уже существующих работ можно условно выделить несколько направлений:

Во-первых, это работы для редких, но всё же стандартных, выпускавшихся серийно, компьютеров.

Например, существовал такой игровой автомат Entex Adventure Vision [6] (1982 год).

Entex Adventure Vision

Этот игровой автомат в качестве процессора использует микроконтроллер Intel 8048 с тактовой частотой 0.7MHz, имеет 1кб ОЗУ, картриджи с ПЗУ и простенький звук [7]. Однако главное, что его выделяет - дисплей. Изображение получается при помощи линейки из 40 красных светодиодов и вращающегося зеркала, что даёт весьма аутентичную картинку разрешением 150 x 40 точек.

И вот работа CODE RED [8] для этого агрегата. Написана группой авторов из Museum of Electronic Games & Art. Представлена на Revision Easter Party 2013. Занимает 4кб (стандартный размер картриджа):

CODE RED

Автор пишет, что используется режим 50x40 с двумя уровнями яркости. Насколько я понимаю, упомянутые 1кб ОЗУ - это VRAM. А собственно ОЗУ для данных - 64 байта, встроенные в микроконтроллер.

Или вот работа Meet The SuperGrafx by Punkfloyd [9] для SuperGrafx представленная на Demodays'2012:

Meet The SuperGrafx by Punkfloyd

SuperGrafx [10] - довольно редкая игровая приставка фирмы NEC (1989 год) с процессором 6502, 32 + 128 кб ОЗУ, цифровым wavetable звуком и вполне неплохой графикой со спрайтами.

SuperGrafx

А вот на нашем Chaos Constructions в 2017-м году была представлена работа для микрокалькулятора Casio fx-9860g - Search by ErrorSoft [11]:

Search by ErrorSoft

Процессор: SuperH3 29 MHz, ОЗУ: 512кб, Разрешение 128x64
Звука в устройстве нет, музыка наложена отдельно.

Casio fx-9860g

Casio fx-9860g

Далее - работа 37 bytes of RAM [12] для Interton VC4000 [13]:

37 bytes of RAM

Interton VC4000 - игровая приставка 1978 года с процессором Signetics 2650A [14] 1.2 МГц, 188 x 268, 37 байт ОЗУ (что отражено в названии работы). В чём-то похожа на известную Atari VCS, только послабее.

Interton VC4000

Interton VC4000

Работа Cruisin 5 by Abyss [15] с Revision'2023 - для игрового автомата Arkanoid TAITO (1986 год):

Cruisin 5 by Abyss

Сам автомат сделан на процессоре z80, звук многим известен по Спектруму - это AY8910. Ну и видео на куче логики.

Arkanoid TAITO (Romstar)

Arkanoid TAITO (Romstar)

Бывают совсем странные извращения. К примеру, работа Signal Carnival by Reflex [16] представленная на недавно прошедшем Revision'2025 предназначена для популярного Commodore 64, но дикость заключается в том, что автор использовал видеовыход для звука, а звуковой выход - для видео!

Signal Carnival by Reflex

Есть подробные пояснения [17] автора.

Если генерация звука ещё понятна - видеочип C64 (VIC) позволяет изменять значения регистров с частотой 246 КГц, чего хватает с лихвой, то с генерацией видео звуковым чипом (SID) сложнее. Автор использует регистр управления громкостью, что позволяет достичь частоты около 16 КГц. Разрешение получается невыосокое (а о цвете и говорить не приходится), но со звуком результат смотрится очень даже неплохо.

Поскольку на demo party всё чаще в рамках одного конкурса допускают различные платформы со схожими возможностями (например, стал обычным конкурс Oldskool demo вместо отдельных конкурсов C64 demo или Atari demo), то нередко у автора есть выбор - подавать работу именно в Wild или в другой конкурс. Ну или оставлять решение на усмотрение организаторов demo party.
К примеру, логичнее подавать 256 bytes intro для TI/99 в Oldskool 256 bytes intro, а не в Wild demo. Просто потому, что 256-байтные интро для разных платформ более сопоставимы в рамках соревнования, чем скажем 256 байт intro с многомегабайтным demo.

Возвращаясь к работам, можно выделить ещё одну категорию - demo для серийно выпускавшихся электронных устройств, не являющихся компьютерами в традиционном понимании (но содержащими микропроцессор):

Работа Freespin by Reflex [18] представленная на Gubbdata 2021 - кажется пока единственное demo для дисковода.
Речь о дисководе Commodore 1541 [19], который обладает важной особенностью - у него есть собственный микропроцессор 6502 1МГц, 2Кб ОЗУ, 16Кб ПЗУ и последовательный интерфейс, через который он подсоединяется к компьютеру (обычно к Commodore 64).

Данная особенность используется в практических целях - для реализации скоростных загрузчиков и схем защиты от копирования (программно меняется протокол обмена данными между дисководом и компьютером на более эффективный или подходящий) и даже для математических вычислений, в качестве сопроцессора.

В данном же случае автор загружает [20] код demo в дисковод, после чего компьютер полностью отключается, а последовательная шина (clock и data) используется как композитный видеовыход. Конечно, изображение чёрно-белое, да и разрешение так себе. Но тем не менее!

Да, что касается музыки и звуков, то их издаёт шаговый двигатель, перемещающий головку.

Freespin by Reflex

Commodore 1541

Работа Cellulose by Tapir [21] представленная на Dreamhack 2002:

Создана для плоттера Brother BP-30, причём это именно плоттер (одно из трёх разноцветных перьев водит по бумаге), хотя с первого взгляда похож на матричный принтер.

Cellulose by Tapir

Работа AONDEMO by Shiru [22] представленная на Chaos Constructions 2018.

Написана для АОН [23] (Автоматический Определитель Номера) - довольно популярного в 1990-е устройства. Данный конкретный экземпляр сделан на процессоре z80, имеет 2кб ОЗУ, 8-64кб ПЗУ. Звук через таймер ВИ53. Автор рассказывал [24] о своей работе на Хабре.

AONDEMO by Shiru

( Кстати, пользуясь случаем скажу, что в этом году у нас [4] проведёт семинар один из авторов АОНов "Русь" и чипа R100-XP - Павел Суходольский ).

Есть и более специфические Wild demo - для микроконтроллеров (с минимальной обвязкой типа резисторов или конденсаторов). В этом отношении с большим отрывом от всех лидирует такой человек как lft [25].

К примеру, вот его работы для ATmega88:

Craft by lft [26] представленная на Breakpoint 2008.

ATmega88 20 МГц. Видео и звук формируются программно. VGA видеосигнал выводится через R-2R ЦАП на резисторах.
Звук - 4 канала, каждый со своей формой сигнала (треугольник, меандр, прямоугольник, белый шум).

Детальное описание [27] от автора.

Craft by lft

ATmega88

ATmega88

Phasor by lft [28] представленная на Breakpoint 2010.

ATmega88 17 МГц. В отличии от предыдущей работы здесь формируется не VGA сигнал, а композитный (PAL). Это добавляет сложности но, видимо, человеку было интересно разобраться.

Детальное описание [29] от автора.

Phasor by lft

ATmega88

ATmega88

Работа Turbulence by lft [30] представленная на Breakpoint 2009. Работает на Propeller.

Parallax Propeller P8X32A [31] - это такой странный восьмиядерный микроконтроллер с тактовой частотой 80 МГц. Видео (VGA) и звук формируются программно, как и в предыдущих работах.

Детальное описание [32] от автора.

Работа Turbulence by lft

Работа Turbulence by lft [30]
Parallax Propeller P8X32A

Работа Kaleidoscopico by lft [33] представленная на недавно прошедшем Revision'2025.

Raspberry Pi Pico 2 (RISC V), 130 МГц, 520 кб ОЗУ.
Видео (VGA 512 x 384) и звук (12 каналов, 4 оператора, фильтры) формируются программно, как и в предыдущих работах. Интересно, что для музыки автор написал собственный трэкер. Это напомнило мне Enlight'95 [34], где Андрей Заболотный для своей демки Show3D [35] тоже написал свой трэкер и 3D редактор.

Kaleidoscopico by lft

Raspberry Pi Pico 2

Raspberry Pi Pico 2

Детальное описание [36] от автора.

А вот работа другого автора - Jupiter & Beyond by St. Vincent And The Grenadines & Tristar & Red Sector Inc. [37] представленная на Revision 2013.
STM32F4, 168 МГц, 192 kB RAM.

Видео (VGA) и звук [38] формируются программно, как и в предыдущих работах.

Jupiter & Beyond by St. Vincent And The Grenadines & Tristar & Red Sector Inc.

STM32F4

STM32F4

Отдельно стоит упомянуть Wild demo для дисплеев. Это работы, где важно не столько то, что является источником данных, сколько то, на чём отображается результат:

Типичный пример - работа Pharmageddon by The Paramedics [39] представленная на TRSAC 2022. Дисплей - крестообразная вывеска аптеки.

Pharmageddon by The Paramedics

Вообще, дисплеи необычной формы позволяют [40] интересно обыграть всякие скроллинги и эффекты.

И, конечно, серия работ "для осциллографов"...
Почему я поставил это слово в кавычки: ни одна из этих работ не запускается на осциллографе - все они лишь изображают, через звуковую карту, данные из заранее подготовленного разными способами файла. Но, согласитесь, всё равно впечатляет.

Youscope by TVT [41] представленная на Assembly 2007.

Youscope by TVT

Beams of Light by Tristar & Red Sector Inc. [42] представленная на @party 2014. С пояснениями [43] автора.

Beams of Light by Tristar & Red Sector Inc.

Если в двух вышеупомянутых работах музыка добавляется отдельно, то в следующих двух она формирует само изображение! Т.е. то, что вы видите, получается подачей на входы X и Y осциллографа звукового файла, который вы слышите в левом и правом канале соответственно:

Oscillofun by Atom Delta [44]

Oscillofun by Atom Delta

Primer by BUS ERROR Collective [45] с Revision'2025.

Primer by BUS ERROR Collective

И вот ещё - не совсем осциллограф, но принцип тот же. Лазерный проектор, управляется с Commodore 64 (т.е. в данном случае это полноценная demo с исполняемым кодом):

LSR 64 by Viti [46] представлена на Function 2014.

LSR 64 by Viti

Бывают ещё работы для обычных компьютеров, но выполняющиеся в нетрадиционной для demo виртуальной среде:

Doomonstration by Nasty Bugs [47] представлена на PixelShow 2005 - demo для Doom.

Doomonstration by Nasty Bugs

Excelence by BraadWorsten Brigade [48] представлена на Breakpoint 2009 - demo для Microsoft Excel:

Excelence by BraadWorsten Brigade

Короче говоря, Wild demo бывают для очень разных устройств - банкоматов, паяльников, различных самоделок...

Особняком стоят работы не только не имеющие кода, но и не использующие электронные устройства. Не на всех demo party такие работы считаются Wild demo (иногда это классифицируется как Animation/Video). Тем не менее, трудно не согласиться что, например, вот эта работа вполне себе demo:

OHP MEGA DEMO 9000 by Desire [49] представлена на @party 2012.
Здесь используется эпидиаскоп - простое устройство, позволяющее проецировать на экран изображение нарисованное на прозрачной плёнке:

OHP MEGA DEMO 9000 by Desire

эпидиаскоп

эпидиаскоп

А вот это работа так и вовсе представляет собой песню:

Автор: frog

Источник [50]


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

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

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

[1] N1: https://habr.com/ru/articles/573926/

[2] N2: https://habr.com/ru/articles/828550/

[3] N3: https://habr.com/ru/articles/842328/

[4] Chaos Constructions'2025: https://chaosconstructions.ru

[5] нашем случае: https://chaosconstructions.ru/compos.html#wd

[6] Entex Adventure Vision: https://en.wikipedia.org/wiki/Entex_Adventure_Vision

[7] простенький звук: https://www.m-e-g-a.org/adventurevision-apu/

[8] CODE RED: https://www.pouet.net/prod.php?which=61201

[9] Meet The SuperGrafx by Punkfloyd: https://www.pouet.net/prod.php?which=59919

[10] SuperGrafx: https://en.wikipedia.org/wiki/PC_Engine_SuperGrafx

[11] Search by ErrorSoft: https://www.pouet.net/prod.php?which=71637

[12] 37 bytes of RAM: https://www.pouet.net/prod.php?which=85434

[13] VC4000: https://en.wikipedia.org/wiki/Interton_Video_Computer_4000

[14] Signetics 2650A: https://en.wikipedia.org/wiki/Signetics_2650

[15] Cruisin 5 by Abyss: https://www.pouet.net/prod.php?which=94113

[16] Signal Carnival by Reflex: https://www.pouet.net/prod.php?which=103953

[17] пояснения: https://www.quiss.org/signal_carnival/

[18] Freespin by Reflex: https://www.pouet.net/prod.php?which=89362

[19] Commodore 1541: https://en.wikipedia.org/wiki/Commodore_1541

[20] загружает: https://www.quiss.org/freespin/

[21] Cellulose by Tapir: https://www.pouet.net/prod.php?which=8193

[22] AONDEMO by Shiru: https://www.pouet.net/prod.php?which=77769

[23] АОН: https://ru.wikipedia.org/wiki/%D0%90%D0%9E%D0%9D

[24] рассказывал: https://habr.com/ru/articles/421961/

[25] lft: https://www.linusakesson.net/

[26] Craft by lft: https://www.pouet.net/prod.php?which=50141

[27] описание: https://www.linusakesson.net/scene/craft/

[28] Phasor by lft: https://www.pouet.net/prod.php?which=54558

[29] описание: https://www.linusakesson.net/scene/phasor/

[30] Turbulence by lft: https://www.pouet.net/prod.php?which=53003

[31] Parallax Propeller P8X32A: https://en.wikipedia.org/wiki/Parallax_Propeller

[32] описание : https://www.linusakesson.net/scene/turbulence/

[33] Kaleidoscopico by lft: https://www.pouet.net/prod.php?which=104053

[34] Enlight'95: https://enlight.ru/enlight/

[35] Show3D: https://www.pouet.net/prod.php?which=5540

[36] описание: https://www.linusakesson.net/scene/kaleidoscopico/

[37] Jupiter & Beyond by St. Vincent And The Grenadines & Tristar & Red Sector Inc.: https://www.pouet.net/prod.php?which=61197

[38] звук: http://coda.s3m.us/2013/03/31/programming-the-music-to-jupiter-and-beyond

[39] Pharmageddon by The Paramedics: https://www.pouet.net/prod.php?which=92575

[40] позволяют: https://www.youtube.com/watch?v=bje3F9adZiU

[41] Youscope by TVT: https://www.pouet.net/prod.php?which=31592

[42] Beams of Light by Tristar & Red Sector Inc.: https://www.pouet.net/prod.php?which=63587

[43] пояснениями: https://luis.net/portfolio/beams-of-light/

[44] Oscillofun by Atom Delta: https://www.pouet.net/prod.php?which=58317

[45] Primer by BUS ERROR Collective: https://www.pouet.net/prod.php?which=103998

[46] LSR 64 by Viti: https://www.pouet.net/prod.php?which=64191

[47] Doomonstration by Nasty Bugs: https://www.pouet.net/prod.php?which=16859

[48] Excelence by BraadWorsten Brigade: https://www.pouet.net/prod.php?which=53021

[49] OHP MEGA DEMO 9000 by Desire: https://www.pouet.net/prod.php?which=59384

[50] Источник: https://habr.com/ru/articles/913026/?utm_campaign=913026&utm_source=habrahabr&utm_medium=rss