О, спасибо за детали. Сэмплы не только ты не услышал, их почти никто за пределами пати-плейса не услышал. В финалке мы их сознательно сделало помясистее, вроде чётче заметно сейчас. Про подачу мультиколорного регулятора громкости — напишу отдельно. Растр и в Chaos Zoomer, и в туннеле генерируется компьютером; вот ты сейчас задал вопрос и я даже не отвечу с полной уверенностью — почему. Нужно пробовать иначе. Могу только сказать, что в финалке этот фон поменялся по сравнению с пати-версией; мне кажется, что к лучшему.
Не тебе одному, кстати, я поэтому и думал, что интересно обсудить.
Ясно, что технически там всё очень благополучно, но у меня такое ощущение, что народ не только из-за технологий восторгается.
Слушай, а здорово что ты это тут выложил. Как ты относишься к Thunderdome? В моём понимании, это просто какой-то кромешный дикий ад, который не то что пересматривать не хочется, досмотреть лично мне реально сложно. Это тупо, это пошло, это затянуто безобразно.
Как я лично понимаю этот спор, разговор тут даже не совсем о запиляторе, а о некоторых кодеров, которые любой нематан тоже считают в некотором роде анимацией. Здесь эта тенденция просто доведена до абсурда — раз внешний вид эффекта такому условному кодеру менее важен чем его сложность, давайте забьём на внешний вид окончательно.
Т.е. критика, как это не абсурдно, пойдёт скорее не по линии, оригинально-неоригинально, а по линии: (а) MD5 — это недостаточно сложно и (б) картинка размещена в центре экрана, в то время как настоящие преданные своему делу кодеры обязательно должны строить кадр асимметрично.
Там не убраны паттерны, я просто чуть покрутил код для более оптимального обсчёта строки. Изменения скорее косметические. Короче, не парься, я погляжу на твой исходник для старого Октода и скорее всего сделаю порт без особых проблем. Больше времени уйдёт сборку настроить. Но скорее всего я сделаю это осенью, сейчас нужно закрыть пару других проектов.
in a,(#1f)
and #1f
ld a,OP_NOP
jr nz,$+4
ld a,OP_ORC
ld (soundLoop.checkKempston),a
а собственно проверка — такая:
.checkKey
in a,(#1f)
and #1f
ld c,a
in a,(#fe)
cpl
.checkKempston=$
or c
and #1f
jp z,readNotes
Главная проблема с этим такая: на машине без кемпстона in a,(#1f): and #1f, как правило, не ноль, так что 5 из 8 линий клавиатуры исключаются из опроса. Что особенно противно, in a,(#1f) может ещё и читать атрибуты/пикселы с плавующей шины и разрешать опрос нужной клавиши, так что опрос часто всё ещё работает, но очень плохо предсказуемо. Наконец, на машине с плавающей шиной in a,(#1f): and #1f может запросто выдать Z (допустим на чистом экране залитом чёрным по чёрному с шины читается довольно много нулей). При таком неудачливом раскладе движок вообще будет считать что клавиатура нажата почти всё время (т.е. всё время, когда in a,(#1f) сбрасывает нужные нам биты).
В Phaser2 основная проблема устранена ( in a,(#1f): ld c,a: xor a ), но тест кемпстона всё ещё не вполне надёжен. В Octode XL я сделал вот так:
ei
halt ; must ensure that test is done during the border
in a,(#1f)
inc a
jr nz,haveKempston
ld (maskKempston),a
haveKempston:
и собственно опрос
in a,(#1f)
and #1f
maskKempston: EQU $-1
ld c,a
in a,(#fe)
cpl
or c
and #1f
Проблем вроде пока не видел. Ещё в QChan была какая-то похожая проблема (столкнулся, когда собирал Dat Fuzz вместе с utz), но, емнип, там вообще опрос был немного редковат, так что там я просто развёл опрос клавиатуры и джойстика.
Я был бы очень рад если бы Octode XL появился в 1tracker. К сожалению, я слегка поправил там формат музыки (основное соображение было ничтожно ускорить переход от строки к строке и добавить ещё одну низкую ноту), так что совсем прямолинейная замена не получится. Но модификации очень простые, я даже сознательно не стал менять расчёт высоты нот, т.к. это убило бы старые октодовские треки, настроенные детьюном.
Быстрый вопрос: а почему было принято решение так жёстко связаться с конкретным движком? из-за числа каналов? Мне просто кажется, что некий промежуточный формат мог бы быть полезен, чтобы добавить возможность подбора ещё и движка, который бы давал наиболее подходящий звук.
Очень хорошая новость — я давно выцеливался сделать одну маленькую вещь в Phaser, но мне не хватало второго голоса в Phaser1, чтобы взять аккорд, и не хватало яиц, чтобы осилить Phaser2 в голом виде.
Вопрос по касательной — раз обновилась версия 1tracker, нет ли желания обновить движки немного? Дело в том, что тесты клавиатуры в нескольких движках (Phaser2, Octode) могут работать ненадёжно на машинах с плавающей шиной. Я могу сделать поправки в коде, там всё довольно тривиально в общем, просто чтобы потом не фиксить индивидуальные треки.
Ясно, что технически там всё очень благополучно, но у меня такое ощущение, что народ не только из-за технологий восторгается.
Т.е. критика, как это не абсурдно, пойдёт скорее не по линии, оригинально-неоригинально, а по линии: (а) MD5 — это недостаточно сложно и (б) картинка размещена в центре экрана, в то время как настоящие преданные своему делу кодеры обязательно должны строить кадр асимметрично.
Это почти не шутка!
Готов приготовить свою пиксельную версию «Чёрного квадрата», возможно автору она приглянётся.
Исходник модифицированного конвертора xm2octodexl.cpp лежит там в папке «other».
а собственно проверка — такая:
Главная проблема с этим такая: на машине без кемпстона in a,(#1f): and #1f, как правило, не ноль, так что 5 из 8 линий клавиатуры исключаются из опроса. Что особенно противно, in a,(#1f) может ещё и читать атрибуты/пикселы с плавующей шины и разрешать опрос нужной клавиши, так что опрос часто всё ещё работает, но очень плохо предсказуемо. Наконец, на машине с плавающей шиной in a,(#1f): and #1f может запросто выдать Z (допустим на чистом экране залитом чёрным по чёрному с шины читается довольно много нулей). При таком неудачливом раскладе движок вообще будет считать что клавиатура нажата почти всё время (т.е. всё время, когда in a,(#1f) сбрасывает нужные нам биты).
В Phaser2 основная проблема устранена ( in a,(#1f): ld c,a: xor a ), но тест кемпстона всё ещё не вполне надёжен. В Octode XL я сделал вот так:
и собственно опрос
Проблем вроде пока не видел. Ещё в QChan была какая-то похожая проблема (столкнулся, когда собирал Dat Fuzz вместе с utz), но, емнип, там вообще опрос был немного редковат, так что там я просто развёл опрос клавиатуры и джойстика.
Я был бы очень рад если бы Octode XL появился в 1tracker. К сожалению, я слегка поправил там формат музыки (основное соображение было ничтожно ускорить переход от строки к строке и добавить ещё одну низкую ноту), так что совсем прямолинейная замена не получится. Но модификации очень простые, я даже сознательно не стал менять расчёт высоты нот, т.к. это убило бы старые октодовские треки, настроенные детьюном.
Вопрос по касательной — раз обновилась версия 1tracker, нет ли желания обновить движки немного? Дело в том, что тесты клавиатуры в нескольких движках (Phaser2, Octode) могут работать ненадёжно на машинах с плавающей шиной. Я могу сделать поправки в коде, там всё довольно тривиально в общем, просто чтобы потом не фиксить индивидуальные треки.