Обновить
16K+

Демосцена *

Киберкультура

23,52
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

wake up: демо в 16 байтах

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели11K

В детстве я учился программированию на старом IBM PC с монохромным зелёным монитором, поэтому давно хотел создать программу для этой системы. За последние пятнадцать лет я написал более чем сотню небольших интро. В последнее время я был не так активен, но потрясающее интро «Rainbow Surf» автора Plex размером всего 16 байт мотивировало меня снова вернуться к старым наброскам и взяться за работу.

Создание этой программы сопровождалось привычными экспериментами. Я развлекался с клеточными автоматами в графике и звуке, а также исследовал трюки sizecoding. В частности: а) полиморфные ассемблерные команды (наподобие add [bx+si],al, имеющую машинный код 0x0000) б) переход в середины команд для экономии байт и многократного использования опкодов. Из сотен мелких экспериментов мне приглянулся один, интересный одним только своим названием.

Когда я дополнял всё это и избавился от лишнего, мне трудно было понять, что же происходит. Я чесал в затылке, глядя на простую формулу, оставшуюся после удаления код‑гольфингом кучи байт. Я и сам не ожидал, что объяснение этих считанных байт окажется настолько глубоким.

В моём интро «M8trix» 2014 года по экрану уже бегали псевдослучайные буквы (в 8 байтах, а потом и в 7), но мне всегда было интересно, как добавить к ним красивый звук. Но хронологически в разработке «wakeup» я сначала занимался звуком. Хорошим подзаголовком к статье мог бы быть «16 байт, превращающие звук треугольника Серпинского в дождь символов из „Матрицы“».

Примечание: на каждом такте времени новая строка треугольника Серпинского а) воспроизводится через динамик б) отрисовывается на экране с шагом 56. Можно ощутить движение, но не увидеть его, потому что оно имеет «ширину» 8192 пикселей, но одна строка символов состоит всего из 80 байт. Если бы экран был гораздо больше, то можно было бы увидеть треугольник. Или если не пропускать пиксели и рисовать и все одновременно, он тоже был бы виден.

Читать далее

Новости

В лабиринтах «Коммодора»

Уровень сложностиПростой
Время на прочтение14 мин
Охват и читатели17K

Возможно, кто-то из читателей вспомнит свои самые первые шаги в программировании, в которых фигурировала книжечка по Бейсику с примитивными примерами, которые нужно было самостоятельно набирать, запускать, и через это постепенно понимать, как они работают. Когда-то именно так начинал «вкатываться в IT» и я.

Подобные брошюры издревле прилагались к домашним компьютерам, оснащённым встроенным интерпретатором Бейсика. В начале 1980-х годов в одной из них, входившей в комплект компьютера Commodore, была опубликована небольшая программка, рисующая на экране случайный лабиринт, составленный из диагональных чёрточек-слешей.

Пройдут десятилетия, и эта простая строчка кода превратится в настоящее культурное явление. Что это за строка, как работает, чем интересна, почему не забыта? Нет времени объяснять, срочно лезем в лабиринт разбираться!

Читать далее

Как звучал 1990-й: разбираем AdLib и синтезатор OPL2 – от одной ноты до виртуальной машины музыки

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели13K

В прошлой статье я разобрал Fire & Forget II – гонку 1990 года – и пересобрал её на C. Но у игры, кроме пикселей, есть звук, и с ним получилась отдельная история: звуковой драйвер тоже переехал в порт целиком, вместе со всеми своими данными. А когда в руках живой музыкальный движок 1990 года – грех не заставить его объяснить, как вообще звучала та эпоха.

Под катом – 28 минут саундтрека игры в настоящем Winamp с окном живых регистров чипа, разбор синтезатора OPL2 по этим регистрам на пяти коротких видео – от одной ноты до взрывов и вертолётов – и виртуальная машина музыки: байткод, интерпретатор и пьеса, которую композитор вырезал из игры.

Читать далее

Я разобрал игру своего детства: многозадачность из 1990-го, потерянный язык уровней, виртуальные машины и тайм-капсула

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели8.6K

В 1990-м Titus выпустила Fire & Forget II: гонку, где спорткар с пулемётом умеет взлетать. Я гонял её ребёнком с одной дискеты, а недавно полез внутрь её бинарника, просто посмотреть, как она устроена. Внутри оказалось неожиданно много: кооперативная многозадачность на голом 8086, собственный скриптовый язык с французскими мнемониками, две виртуальные машины, исполняющие один и тот же байткод, и полминуты игры самого разработчика, спрятанные в демо-записи. Их не видел никто и никогда. По дороге игра пересобралась на C11 и теперь живёт в браузере: не трогайте клавиатуру в меню, и увидите то самое демо. Но статья не про порт:

Под катом много пиксель-арта, игра «найди отличия», где каждое найденное отличие оказывается уроком об устройстве оригинала, и подробный разбор того, как один враг рождается в перетягивании каната между двумя виртуальными машинами.

Читать далее

Remoded: разбираем демо-эффекты (часть 2)

Уровень сложностиСредний
Время на прочтение21 мин
Охват и читатели10K

И снова приветствую всех любителей олдскула, демосцены и олдскульной демосцены. Это вторая часть разбора DOS-демки "Remoded" и соответственно эффектов, основанных на аппаратных особенностях видеоадаптера VGA. Сегодня мы продолжим разбираться с аппаратным скроллингом, узнаем, что такое "xorfill" и как его правильно готовить, как эмулировать 12 тысяч цветов в 256-цветном режиме, а также познакомимся с другими технологиями прошлого столетия.

MOV AX, 13h; INT 10h

Забытый мультиколор (часть 4)

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели7.6K

Полное руководство по аппаратному мультиколору для тех, кто не знает, что это такое и зачем он нужен.

Преимущества и недостатки, прототип игры, перспективы

Читать далее

Забытый мультиколор (часть 3)

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели7.1K

Полное руководство по аппаратному мультиколору для тех, кто не знает, что это такое и зачем он нужен.

Совместимость, алгоритмы, эффекты и градиенты

Читать далее

Настоящий андеграунд: современные BBS

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели12K

За окном ночь и огни большого города, в кружке горячий кофе, а на экране монитора медленно грузится стильная ASCII-заставка. Наконец появляется приглашение: Welcome to Vortex BBS. Press a key.

Нет, это не очередная история времен бурной молодости автора и на дворе все также 2026 год, а не начало 90-х. Но даже в 21 веке с ИИ, роботами и Илоном Маском в сети еще остались удивительные места, где время остановилось.

Читать далее

Забытый мультиколор (часть 2)

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели7.4K

Полное руководство по аппаратному мультиколору для тех, кто не знает, что это такое и зачем он нужен.

Создание графики, форматы, вывод на экран

Читать далее

Забытый мультиколор (часть 1)

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели8.2K

Полное руководство по аппаратному мультиколору для тех, кто не знает, что это такое и зачем он нужен.

История, порты, включение режима

Читать далее

Золото демосцены

Уровень сложностиСредний
Время на прочтение16 мин
Охват и читатели21K

То лето далекого 1997 года в маленьком сибирском городке выдалось очень жарким. Шла самая его середина, когда весь азарт длинных школьных каникул успел сойти — бегать по стройкам и купаться в речке надоело, но до нового учебного года было еще далеко.

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

Потому что в то жаркое лето я познакомился с демосценой.

Читать далее

Remoded: разбираем демо-эффекты (часть 1)

Уровень сложностиСредний
Время на прочтение19 мин
Охват и читатели13K

Приветствую всех ценителей больших пикселей и выпуклых мониторов. Мы продолжаем разбираться с технологиями демосцены 90-х. В этой статье: недокументированные режимы VGA, аппаратный скролл, fake mode, палитровая анимация, и многое другое, о чем бесполезно спрашивать у ChatGPT.

BEGIN

Трекеры и чиптюн на AdLib

Уровень сложностиПростой
Время на прочтение22 мин
Охват и читатели19K

Обычно, когда говорят про чиптюн, вспоминают звуковой чип SID на Commodore 64, или же Амигу и её MOD-файлы. Если речь про ПК, это будет тот же MOD и его наследники в лице форматов XM и IT. Но в истории программ для MS-DOS был один краткий музыкальный период совершенно другого рода. Он одновременно родственен и самому ПК, и чиптюну на 8-битках, и компьютерам практически с другой планеты, многочисленным японским ПК — небольшая, малоизвестная, замкнутая на саму себя и параллельная всему и вся вселенная.

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

Читать далее

Ближайшие события

Графика демосцены и отношение к копирайту

Время на прочтение10 мин
Охват и читатели7.8K

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

Первый пиксель-арт сцены почти всегда копировался (или, если точнее, плагиатился) из других источников. В частности, достаточно широко заимствовались иллюстрации, связанные с фэнтези- и научно-фантастической литературой. Любимцами были фэнтези-художники Борис Вальехо и Фрэнк Фразетта, а также любитель хромированных распутных роботов Хадзимэ Сораяма.

Смысл пиксель-арта заключался не столько в оригинальности, сколько в труде. Сканеры и дигитайзеры были слишком дорогими для подростков, а изображения, создаваемые первыми потребительскими моделями, оказывались грубыми и малодетализированными. Для создания изображения, выделяющейся подробностями и чёткостью, требовалась ручная пикселизация, а это очень изощрённый процесс. Сначала нужно было вручную скопировать контур оригинала при помощи мыши (или джойстика на C64), затем как-то передать детали в условиях низкого разрешения (обычно примерно 320x256 пикселей), выбрать ограниченную индексированную палитру (обычно 16 или 32 цветов), вручную добавить дизеринг и антиалиасинг. Это был кропотливый труд.

Читать далее

Способы достижения технологической независимости в области ЭВМ

Уровень сложностиСредний
Время на прочтение34 мин
Охват и читатели11K

Типичный настольный компьютер конца 90-х имел 8-16 мегабайт ОЗУ, работал на частоте 100-300 МГц и потреблял порядка 150 Вт, из которых половина приходилась на монитор. Типичная операционная система тех лет (Windows 98) официально требовала для своей работы 16 мегабайт ОЗУ. Это считалось несколько расточительным по сравнению с Windows 95, которая требовала 4 мегабайта ОЗУ вместе с браузером (и даже глянцевые журналы верстались на компьютерах с 4 мегабайтами ОЗУ, в среде PageMaker 5.0). В те же времена ещё оставались многочисленные пользователи ретро-машин, которые решали все свои задачи, имея от 128 килобайт до 1 мегабайта ОЗУ (математические и бухгалтерские расчёты, работа с текстовыми и графическими документами, переписка в Fido, чаты в BBS, компиляция ПО, трассировка печатных плат, написание курсовых и дипломных работ и разнообразные компьютерные игры).

Современный настольный компьютер имеет 8 и более гигабайт ОЗУ, работает на частоте 3 и более ГГц (4 и более ядер) и потребляет 300 Вт. Современная операционная система Ubuntu 26 официально требует не менее 6 гигабайт ОЗУ и 2 ядер по 2 ГГц [1]. При этом пользовательский функционал практически не расширился. Также известно, что на 2-3 порядка увеличились размеры отдельных программ (например, Microsoft Word, Adobe Photoshop, Adobe Reader, ACDSee, Opera, Nero, Skype и их аналоги) и окружений (Java, .NET, DirectX, OpenGL, причём речь не про видеопамять).

Читать далее

Плохое яблоко на русской Ардуине

Уровень сложностиСредний
Время на прочтение17 мин
Охват и читатели29K

Некоторое время назад я поделился первыми впечатлениями от знакомства с Ардуино-совместимой платой ELBEAR ACE-UNO на базе отечественного микроконтроллера MIK32 «Амур». Материал нашёл хороший отклик среди читателей, и это подогрело моё желание развить тему. Правда, подогрев слегка перешёл в фазу медленного бурления, и достиг точки закипания только сейчас. Но лучше поздно, чем никогда.

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

Читать далее

Видеорежимы в восьмибитных компьютерах. Coolsystem — Часть 2

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели10K

В данной статье кратко рассмотрены видеоконтроллеры для следующих ретро-компьютеров: ZX Spectrum, Вектор 06Ц, Commodore 64, Commodore PET, Микроша, Радио-86РК, БК-0010, Агат (модели 7 и 9) и Апогей БК-01Ц.

Поскольку мой будущий самодельный компьютер их косвенно поддерживает, необходимо собрать информацию в одном месте.

Читать далее

Как я подключил свой телеграмм-канал к РСЯ и какие результаты получил

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели7.4K

У меня небольшой телеграм-канал - около 2 200 подписчиков. Без ботов, без гивов, живая аудитория по профессиональной теме диджитал-маркетинга и аналитики, в которой я варюсь уже около 14 лет. Канал рос органически, и долгое время я относился к нему как к блогу, а не как к активу. Рекламу напрямую я никогда не продавал. Не потому что «я выше этого», а потому что банально не хотелось превращать хобби в отдел продаж. Все откладывал в режим «когда-нибудь займусь». Максимум оказывал платные консультации по маркетингу. Классическая прокрастинация владельца небольшого канала: вроде бы аудитория уже есть, но до монетизации руки не доходят.

Триггером стал рост интереса к рекламе в Telegram в целом. Площадка давно перестала быть просто мессенджером. Плюс в очередном поиске информации для канала набрел на возможность подключать каналы к Рекламной сети Яндекса.

Мне стало интересно проверить гипотезу: можно ли масштабировать доход без ручных договоренностей, менеджеров и бесконечных «а можно скидочку?».

Читать далее

Ротозумер: разбор классического демо-эффекта

Уровень сложностиСредний
Время на прочтение33 мин
Охват и читатели12K

Разбираемся с классическим демо-эффектом из начала 90-х. Когда и в каких демо он появился? Как работает? Почему всё не так просто, как может показаться на первый взгляд? Как написать самый быстрый ротозумер и зачем это нужно в 2026 году? На эти и другие вопросы современности я попробую ответить в этой статье.

Никаких ИИ при создании данного материала не использовалось! Продукт ассемблеро-содержащий, с натуральными картинками и витаминами!

Читать дальше

С Новым 2026-ым как в 1992-ом

Уровень сложностиПростой
Время на прочтение14 мин
Охват и читатели20K

Очередной Новый Год на носу, а значит, срочно нужно придумать очередной новогодний проектик и написать про него статью. И я придумал сделать интро-поздравление для ZX Spectrum. Да не современное, поражающее невообразимыми эффектами, а напротив, в максимально классическом стиле очень ранней демосцены. Заодно это повод рассказать про особенности национальных хакерских традиций в зимний и иные периоды. Сведём же новогодние олдскулы зарядом концентрированной ностальгии!

Читать далее
1
23 ...