Поступило ещё одно шикарное предложение от Monster^Sage, пока ещё не пробовал закодить т.к. по времени плотно, но обязательно попробую и доложусь )

зачем переключать экраны каждые 4 строки? ведь можно это делать каждые 8 строк, по «середине» атрибута ?

MACRO SPRITE_LINE_FAST
pop de : ld a,(hl)
inc e : jp nz,1f
jr 2f
1:
dec e : and b : or e
2:

;17+14+12=43t

inc d : jp nz,1f
jr 2f
1:
dec d : and c : or d
2:
ld (hl),a
;14+12+7=33t
ENDM
; overall: 76t
Круто, спасибо! Правда получается что значение в регистре меняется. Но тут даже два решения, либо в конвертере уменьшить на единичку, либо просто nop ниже заменить на dec!
Можно ещё хранить байты спрайтов -1 вместо как сейчас. Тогда прозрачный пиксел будет 255, и каждую пару inc d: dec d можно заменить на просто inc d, это ещё -8 тактов.
класс! спасибо
про тайлы это я просто не всё рассказал видимо или не так подробно, там я когда делал голова болела уже, а как описывать стал опять заболела ) я попробую расписать, но не обещаю, потому что смотрю в конвертер и туплю )
К сожалению, твой вывод тайла я не понимаю. Если врублюсь, попробую немного подумать о нём тоже…
Денис, очень интересный пост и прикольные задачки. Немного переписал макрос для вывода пикселей спрайта, надеюсь что не напортачил на сонную голову:

MACRO SPRITE_LINE_FAST
pop de : ld a,(hl)
inc e : dec e : jp nz,1f
jr 2f
1:
and b : or e : nop
2:
; 17+18+12=47t

inc d : dec d : jp nz,1f
jr 2f
1:
and c : or d : nop
2:
ld (hl),a
; 18+12+7=37t
ENDM
; overall: 84t
  • avatar sq
  • 1
Почему у этой статьи всё ещё 0 комментариев?
О, уже 1 :)

В общем, Денис, спасибо! По существу пока сказать нечего, надо ещё раз перечитать)
Но я почти всё понял с первого раза! А это редко быавет)
  • avatar frog
  • 0
Если бы я хотел докопаться, зачем бы я стал себя опровергать, публикуя эту вторую ссылку здесь? :) Ну не суть — будем считать, что мне показалось. Главное, что в итоге всё хорошо звучит и показывает.
  • avatar Shiru
  • 0
Теперь я абсолютно уверен, что это было просто желание докопаться. Потому что это видео от точно того же автора, снятое на том же самом компьютере, с тем же звуком. В чём можно убедиться, промотав его до середины.
  • avatar frog
  • 1
А вот здесь с реальной машины тоже, но звук совершенно нормальный (т.е. похож на то, что с эмулятора): www.youtube.com/watch?v=cznyKsOl3po
И смотрится классно в темноте :)
  • avatar Shiru
  • 1
Спасибо!
Ширу как всегда! Мне кажется я слышал звон падающих на пол челюстей при показе :)
Умеешь-можешь!
И спасибо, что зарелизился на CAFePARTY. Жаль, что не смог приехать лично.
  • avatar frog
  • 0
На мой взгляд, там части звуков, которые отчётливо слышны на эмуляторе, в видео с PET просто не слышно совсем. Может конечно там плохой динамик или микрофон (если он записывал с микрофона), но как по мне — разница очень большая.
  • avatar Shiru
  • 0
Звучание от наличия или отсутствия синхронизации никаким образом не меняется. Как автор, сто раз слышавший трек, я ни малейшей разницы в мелодии не слышу (взяться ей неоткуда), и никак не могу сказать, что музыка звучит хуже, да ещё значительно — именно так и должна звучать квадратная волна на любом реальном железе, а не в эмуляторе: чуть глуше, т.к. эмулятор выдаёт идеальный квадрат, а в любом железе в цепочке всегда есть ФНЧ.
  • avatar frog
  • 0
Посмотрел. Визуально почти идентично, но музыка на настоящей железке звучит значительно хуже. Не только из-за рассинхронизации — местами там как будто вообще другая мелодия…
  • avatar frog
  • 1
Это просто следствие того факта, что программисты всегда оценивают сроки разработки меньше фактических (чаще всего в полтора раза). Когда они работают не на себя, то руководители проектов умножают названный срок на полтора за них. А когда программист работает сам на себя, то получается вот как раз твоя ситуация.
  • avatar Shiru
  • 2
Звук не синхронизирован, но полная длительность на 4016 с 32 килобайтами: www.youtube.com/watch?v=XVMzaITzXPM
Также есть сообщения о запуске на 2001 N32K, и кусочек видео на FB — однако, демо идёт там без снега, который я ожидал увидеть.
Да, именно так и работает :) мозг не обманешь :) а если билеты взял уже и приезал то патикодинг выходит!