Выдержанные тона

Здесь уже не раз и не два писали о том, что в основе любой демки лежи… Кхем, простите, в основе любой ХОРОШЕЙ демки, которую не стыдно будет потом пересматривать по три раза в день, лежит прежде всего идея. Опс, и снова простите! Я хотел сказать «в основе любой ХОРОШЕЙ демки вышедшей в ТРЕТЬЕМ тысячелетии.»

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

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

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

ZX AY music compo | Oyster Telecom

Продолжим веселье! Пати не состоялась, потому что прислали всего 2 трека, но, учитывая, что сроки приема работ совпали с подготовкой к некоторым текущим демопати — организаторы продлили дату приема — до 1-го апреля!

Итак, еще раз об условиях.

1. композиция должна быть циклична;
2. композиция должна быть «дерзкая»;
3. композиция должна запоминаться с первого раза/въедаться в мозг;
4. композиция должна быть уникальна;
5. композиция должна навевать воспоминания о старых добрых олдскул играх;
6. примеры: ренегаде, саботер 2, арканоид, сакобан;
7. Ay и covoх, но предпочтение будет у Аy.

Работы присылайте сюда — a.mihailovsky@oyster-telecom.ru в любом читабельном формате с пометкой «oymusic».

Победитель получит памятный подарок от компании Oyster Telecom и денежное вознаграждение — 5000 руб.



Пара уточнений: ремиксы и TurboSound — не допускаются.

Ссылка на источник.

Autosiril rereleased! (+src)

Продолжаем в терапевтических целях срывать покровы.

Рад, наконец, представить вам инструмент для удобного и эффективного конвертирования MIDI-файлов в текстовый формат VortexTrackerImproved (с последующей возможностью конвертирования в PT3):

Autosiril +(src).

autosiril windows.

Инструмент кроссплатформенный, и отлично работает как на MacOSX/Linux так и на Windows.

С результатами работы Autosiril'а вы, возможно, уже знакомы. Теперь у вас есть возможность исправить и улучшить работу конвертора, так как доступны исходные коды инструмента.

О том как пользоваться автосирилом, можно прочитать в инструкции или посмотрев соответствующий screencast:


Тут я скажу пару слов о том, что вам понадобится чтобы запустить тестовые примеры (в каталоге ./test):


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

VS Code: Запуск Unreal по F5

Хотелка


Хочется компилить и отлаживать в Unreal Spectrum проекты для Спектрума в Visual Studio Code тем же хоткеем, который я использую для других языков.

Проблема


Я давно освоил Visual Studio Code и использую ее, например, для проектов на Python. При этом все мои проекты для Спектрума жили в Sublime Text с расширением Z80Asm от Breeze, и я решил смигрировать их в более привычный VS Code.

В VS Code есть понятие Build Task, позволяющее запустить только компиляцию workspace (и, вообще говоря, выполнить любую команду shell) и отдельно debugger'ы, свои для каждого типа workspace. Если для языка установлено отладочное расширение, то по F5 (у меня клавиатурная тема от MSVS) workspace компилится при наличии изменений, и сборка запускается в отладчике. А запускать вместо отладчика команду shell (и Unreal Spectrum) нельзя, нужно отладочное расширение. Итого: для Python использую F5, для Z80 — Shift+Ctrl+B, и постоянно путаю их.

Чуть подробнее

Для разработки на Z80 есть расширение Z80 Macro-Assembler, которое понимает синтаксис Z80 и имеет еще всяческие фишки (подробнее про это писал камрад sq в статье Как быстро настроить среду разработки на ZX: Visual Studio Code + Z80MacroAsm boilerplate). Однако расширения, позволяющего запускать Unreal Spectrum в качестве отладчика нет.
Переопределить шоткат F5 для проекта невозможно, глобально переопределить его на Build Task — тоже не выход, потому что оно тогда будет так работать и для всех остальных языков.
Надо сделать как-то так, чтобы для workspace Z80 F5 вызывал Build Task, в котором можно выполнить команду shell и запустить что хочется, а для других проектов поведение оставалось прежним: компиляция (если есть) и запуск отладчика из расширение.

На просторах Интернета накопал способ переопределить шоткат для проекта, которым на всякий случай делюсь. Суть способа такая:
  • пользовательские шоткаты переопределяют системные, при этом, если условие when для пользовательского шотката не выполнено, то работает штатный шоткат из клавиатурной схемы;
  • условие вычисляемое, в нем можно использовать настройки, в том числе, и уровня проекта;
  • суть решения: добавляем в проект некоторую кастомную настройку, наличие которой является условием пользовательского шотката на запуск Build Task, а при ее отсутствии работает штатный шоткат VS Code для запуска дебаггера.


Инструкция


  1. Нажать Shift+Crtl+B (или ваш шоткат для билда) чтобы появилось предложение создать tasks.json. Если дефолтные таски в конфигах самой VS Code уже есть, то, по Вашему вкусу, можно либо добавлять новые таски туда, либо создать в проекте файл .vscode/tasks.json.
  2. Вставить в tasks.json пример сборочных тасков из справки extension'а Z80 Macro-Assembler и настроить его на свой вкус. Для настройки шотката интересен только параметр label. Назовем его, например, Compile and run. В параметр command пишется shell-команда, которую хотим прикрутить к шоткату
  3. Нажать Shift+Ctrl+P (или ваш шоткат для поиска команд) и выполнить Preferences: Open workspace settings (JSON). Добавить в него параметр
  4. "runTaskInsteadOfDebug": true
  5. Нажать Shift+Ctrl+P (или ваш шоткат для поиска команд) и выполнить Preferences: Open Keyboard Shortcuts (JSON). Добавить в него:
    
            {
                "key": "f5",
                "command": "workbench.action.tasks.runTask",
                "when": "config.runTaskInsteadOfDebug && taskCommandsRegistered",
                "args": "Compile and run"
            }
        

  6. Собственно, все. Теперь в проектах, в которых есть .vscode/settings.json с параметром «runTaskInsteadOfDebug»: true, по кнопке F5 будет вызываться таск с именем Compile and run, а в проектах без этой опции — отладчик по умолчанию для workspace.Например, я себе в проектах Saboteur сделал по F5 сборку и запуск отладочной версии, по Ctrl+F5 — релизной, а по Shift+F5 — только компиляцию без запуска.

Музей Яндекса продолжает серию вебинаров о творчестве на ретрокомпьютерах (выпуск 4)

На прошлой неделе мы познакомили наших гостей с архитектурой, основными средствами разработки и системой команд компьютера ZX-Spectrum. Запись вебинара можно посмотреть здесь.

Четвёртый вебинар также будет посвящен программированию: мы разберём алгоритм одного из самых известных визуальных эффектов, запрограммируем его и научимся основам оптимизации. Вебинар проведёт Олег Сенин (bfox ) — программист, художник, музыкант на различных ретроплатформах.

Ждём всех 7 мая в 19:00 по московскому времени. Участие бесплатное, но количество мест ограничено, пожалуйста, зарегистрируйтесь заранее по ссылке. Трансляцию вебинара также можно будет посмотреть на youtube.

Практика

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

Программирование для Famicom/NES/Денди в Nesicide+ca65: задний фон с прокруткой (4)

Итак, после создания модуля neslib который нам еще пригодится в будущем мы можем приступать к формированию основной программы — модуля main.s. Откроем его, удалим всё старое содержимое и начнём наполнять новым кодом:

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

Подводные камни скроллинга на Famicom/NES/Денди

Как игровая консоль денди конечно же должна была поддерживать аппаратный скроллинг и делала это.
Но с этим связано несколько подводных камней которые мне показались достаточно забавными чтобы написать о них тут отдельно.

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