Нда, клэшинг неизбежен.
Сделал раскраску ландшафта. Цвета сдвигаются одновременно с ландшафтом.

Ну, допустим, мины я подвину подальше от краёв ландшафта, Но пушки-то всё равно будут переливаться!
Можно попробовать выводить цвета вместе со спрайтами, сохраняя атрибут фона под спрайтом, а потом восстанавливая его. Но от клэшинга это не спасет (будет тогда край ландшафта переливаться), а накладные расходы увеличатся существенно. Нужно ли?
Похвастаюсь процедурой вывода экрана
.
Код:
;печать видимой части ландшафта
;IN: LeftLandPtrs
PrnScreen ;{
di
ld (RestoreSPAndReturn+1),sp
ld sp,LeftLandPtrs ;sp - Указатель на указатели начал видимой части строк
jr _1PrnScreen
EndParseTileBuffer
ld sp,ix ;10 ;сохраненный sp
pop hl ;10
ld sp,hl ;6=26 ;загружаем адрес буфера спрайтов
ret ;разбор буфера спрайтов для этой строки
EndParseSpriteBuffer
pop hl ;10 ;в конце каждого буфера спрайтов хранится сохраненный sp
ld sp,hl ;6
_1PrnScreen
pop ix ;14 ;сохраненный sp. Запомним его в ix
pop hl ;10
ld sp,hl ;6=46 ;загружаем адрес буфера тайлов
ret ;разбираем буфер тайлов
;}
Так со стекпоинтом я еще никогда не развращался , спасибо Jerri, что научил.