да, часто тоже так хочется )тут или stellar mode или делать широкие пиксели 8х4.
  • avatar PheeL
  • 0
Хотя нет. Написал, а потом уже подумал. Не получится, т.к. у нас по-горизонтали только два возможных цвета. Этот трюк работает только в пределах целого знакоместа. Жаль.
  • avatar PheeL
  • 0
Наверняка уже кто-то предложил, потому что вещь совершенно очевидная, но что если битовую область экранов 0 и 1 замостить «шахматкой». Т.о. можно повысить цветовое разрешение картинки добавив цветовых полутонов. А если бы экраны переключались каждый кадр, то на экран можно 1 поместить такую же «шахматку», но инвертированную и получить, фактически, не сильно моргающий гигаскрин.
Да, в этот раз сначала движок, потом уже стиль под него. Хотя я примерно знаю свои возможности как игрового художника.

Игра расчитана под любой размер монитора/тв, чем больше размер тем дальше отодвигаться надо )
  • avatar TmK
  • 2
Вот это вы сейчас не по правилам сыграли, этож сколько тактов освобождается! Не зря говорят что все гениальное просто :)
Спасибо, всегда интересно почитать статьи из серии how it works и history of making.

Получается ты сначала пробовал накодить движок и уже потом прикидывал стиль игры, графику, геймплей?
Под какой размер монитора/тв расчитана игра?
Проверил, работает )

Вообще я думал про конвертор (всё равно 255 для прозрачности требует в него лезть). Но да, нопы тоже можно пустить в дело, прикольно! :)
Поступило ещё одно шикарное предложение от 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
И смотрится классно в темноте :)