
Сообщение от
reddie
То есть в каждой банке памяти (16кб) лежит кусок-экран 78х160?
Если скролла карты вверх-вниз нет (только вбок и все), получается 12кб из 16 занято в банке.
Да, кусок карты нарисованный. Скрол только вбок.
Могу предложить переделать формат карты, тогда картинка всегда будет выводиться в одном цикле (без право-лево).
Выигрываем кое-какое время на убийстве пересчета строк одного цикла, примерно 8 тысяч тактов. Вполне ощутимо.
Возможно, несколько возрастет занимаемая картой память, но с учетом 2мб это не проблема, полагаю.
Это может оказаться не просто. У меня сейчас используется родная процедура отрисовки карты. Расчёт координат, потом заполнение буфера шириной 1 байт высотой 160 и переброска буфера на экран. Так рисуется по одному все столбики перед началом игры. Но правда ещё вызывается два раза, потому что в одном байте два виртуальных пикселя.
Код:
ld a,(scroll_step)
inc a
ld (scroll_step),a
call ProcessMapPointer
call Fill_Buffer
ld hl,(paint_addr)
inc hl
ld (paint_addr),hl
call Copy_Buffer
P.S. Предложения по карте посмотреть интересно