Хотя нет. Написал, а потом уже подумал. Не получится, т.к. у нас по-горизонтали только два возможных цвета. Этот трюк работает только в пределах целого знакоместа. Жаль.
Наверняка уже кто-то предложил, потому что вещь совершенно очевидная, но что если битовую область экранов 0 и 1 замостить «шахматкой». Т.о. можно повысить цветовое разрешение картинки добавив цветовых полутонов. А если бы экраны переключались каждый кадр, то на экран можно 1 поместить такую же «шахматку», но инвертированную и получить, фактически, не сильно моргающий гигаскрин.
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
Если бы я хотел докопаться, зачем бы я стал себя опровергать, публикуя эту вторую ссылку здесь? :) Ну не суть — будем считать, что мне показалось. Главное, что в итоге всё хорошо звучит и показывает.
Теперь я абсолютно уверен, что это было просто желание докопаться. Потому что это видео от точно того же автора, снятое на том же самом компьютере, с тем же звуком. В чём можно убедиться, промотав его до середины.
А вот здесь с реальной машины тоже, но звук совершенно нормальный (т.е. похож на то, что с эмулятора): www.youtube.com/watch?v=cznyKsOl3po
И смотрится классно в темноте :)
Игра расчитана под любой размер монитора/тв, чем больше размер тем дальше отодвигаться надо )
Получается ты сначала пробовал накодить движок и уже потом прикидывал стиль игры, графику, геймплей?
Под какой размер монитора/тв расчитана игра?
О, уже 1 :)
В общем, Денис, спасибо! По существу пока сказать нечего, надо ещё раз перечитать)
Но я почти всё понял с первого раза! А это редко быавет)
И смотрится классно в темноте :)