Решился я наконец написать серию статей о программировании для апогея. Упор в них будет делаться на его архитектуру, вниманию, собственно, программированию будет уделяться меньше, так как подразумевается что вы знакомы с программированием и знаете z80. Итак, начнём!
Ну, пока в соседнем топике разбирается многопоточность, посмотрим на такую гораздо более простую вещь, как систему управления событиями в трекмо.
В этом топике я опубликую двиг, разработанный для «Unhinged», и использованный позже как обслуживающий в «Марио».
Зачем это? Дело в том, что пресловутое flow требует от дизайн-мейкера постоянно вводить как новые эффекты, так и их развитие в процессе своего течения.
Соответственно, код демо должен быть настраиваемым — предоставьте себе контролы, которые позволят вам менять внешний вид того же эффекта, который уже на экране. И применяйте их в течении демо именно в тот момент, когда они будут иметь максимальное воздействие на зрителя.
ДАО ГОВОРИТ :) Главная цель движка трекмо — это Контроль выполнения демо.
Контроль должен быть реализован изменением состояния кода демо в процессе её выполнения (показа), путём изменения значений памяти в её подпрограммах в нужный нам момент, либо изменением вызываемой процедуры (что может быть переходом в следующую часть).
Я давно мечтал написать полноценное демо на бейсике.
Еще в середине 90-х, экспериментируя на своем «Ленинграде», я делал пиксельный вертикальный скроллинг спрайта 8х3 знакомест с использованием кастомного шрифта и системной переменной CHARS.
В конце 90-х это вылилось в попытку организовать некое соревнование по бейсик-демо между пермскими спектрумистами из 4D и LFG. Кажется, даже пара демок была выпущена тогда, но свою работу я так и не закончил. После чего все исходники были утеряны.
Представленный на демопати DiHalt 2024 электронный журнал для ZX Spectrum «**/?\**» и доступный для прочтения только на реальных компьютерах и эмуляторах теперь доступен в печатном виде. Если вы всё ещё не удосужились загрузить журнал на своём любимом ZX Spectrum и почитать от души, то возможно, в электронном виде печатного издания вам это будет сделать удобнее.
В публичный доступ журнал вышел 9 января 2024 года и вот, 20 января 2024 я представляю вам его «печатную» версию.
Это всего лишь моя интерпретация «печатного» издания, в том виде в котором лично я его вижу. Буду рад, если такой вид журнала кому-то тоже будет полезен.
После некоторого перерыва, решил вернуться к Vectrex. Аналоговость и ламповость (в буквальном смысле) манит. Поскольку Dihalt, на который планировалась работа, назначен на начало января, хотелось сделать что-то новогоднее. Снег, особенно много — не лучший выбор для векторных устройств, так что ёлка мне показалось лучшим вариантом. Рисовать её прямыми векторами не очень интересно, решил кривыми, тем более технология была более-менее отработана в предыдущих работах (Electric Force, Springs ). В данном случае, однако, трудность была в том, что кривые должны быть не какие-нибудь случайные, а вполне конкретные, причём разные.
В первых наладонных электронных играх Nintendo — Game & Watch (которые в СССР клонировали в виде «Волк ловит яйца» и т.п.) в качестве процессора использовались 4–битные микроконтроллеры Sharp серии SM–5xx
Например в популярных версиях про Микки–Мауса, морячка Попайя или Donkey Kong–а трудился чип SM–510.
Счётчик команд в этом чипе был сегментированным и в пределах сегмента адрес команды был 6–битным (значения от 0 до 63).
Традиционно счётчик команд при переходе к следующей инкрементируется, т.е. увеличивается на единицу и многие сочли бы это одним из самых простых арифметических действий для такой задачи, однако создатели Sharp SM–510 посчитали инкремент 6–битного счётчика слишком долгой операцией и упростили её.
В интернете существует немало информации о таких знаменитых ретроигровых системах типа NES, ZX Spectrum, Sega и так далее. Все их схемы, примеры программного кода существуют в открытом доступе и найти их при должном желании не составит труда.
Однако, существует ещё одна игровая система, которая в странах СНГ не уступала по популярности вышеперечисленным (а то даже и превосходила их), но об её устройстве практически ничего не известно. Это Brick Game (более известный как просто Тетрис).
Мои попытки найти хоть какую-то информацию о процессоре этого замечательного устройства долгое время не были успешными. Однако, я наткнулся на тему форума nesdev.com — Brick Game, где поднималась эта тема.
Оттуда я понял, что в качестве процессора в таких устройствах, выступал 4-битный микроконтроллер HT1130 от китайской компании Holtek. Или его аналоги. На картинке ниже, под каплей компаунда находится кристалл HT1130.
Поискав информацию об этом микроконтроллере, я наткнулся на его даташит — Datashet HT1130
Из даташита и официального сайта Holtek — holtek.com, я понял, что этот микроконтроллер использовался в основном для настольных часов. Для него есть программатор, он имеет 32 вывода для управления ЖК дисплеем, порты ввода (очевидно, что для кнопок) и вывода, отдельные выводы для звуковой пищалки, тактовую частоту до 1 МГц, прошивка пишется на ассемблере в собственной IDE от компании Holtek. Но самого микроконтроллера в продаже не имеется. Не мог найти даже на Aliexpress.
Более подробный обзор (только в теории ибо для практики я не мог его найти) вы можете посмотреть в видео ниже. Обзор архитектуры и
даташита начинается со времени 5:40. Заранее извиняюсь за сумбурное изложение в видео. Моё первое всё-таки =)
На прошлой неделе мы познакомили наших гостей с основами написания chiptune-музыки, запись первого вебинара можно посмотреть здесь.
Второй вебинар будет посвящен созданию пиксельной графики, его проведут Олег Сенин (bfox ) — программист, художник, музыкант на различных ретроплатформах, и Руслан Гроховецкий (ruguevara ) — программист и pixelart-художник на платформе ZX Spectrum, вернувшийся на неё не так давно.
Ждём всех 23 апреля в 19:00 по московскому времени. Участие бесплатное, но количество мест ограничено, пожалуйста, зарегистрируйтесь заранее по ссылке. Трансляцию вебинара также можно будет посмотреть на youtube.
Напоминаем, что всего вебинаров будет пять, на них вы познакомитесь с основами создания chiptune-музыки и пиксельной графики, научитесь настраивать эмуляторы и средства разработки, узнаете как программировать различные эффекты в демо и интро.
Практика
А чтобы материал не остался теорией, мы приглашаем проверить свои силы, приняв участие в конкурсной программе фестиваля «Демодуляция 2020», который состоится осенью. Мы понимаем, что для создания чего-то впечатляющего нужно время, поэтому приём работ уже открыт. Более подробно о правилах конкурсов можно прочитать на нашем сайте.