Три цветных буфера используется. Синий зеленый красный собственно. Тройная прорисовка в буфера получается (очень накладно увы).
Размерами 256х224 то-есть 32х28 знакомест или 16х14 тайлов по 16х16.
Когда прохожусь по таблице спрайтов которые надо вывести на экран - я модифицирую биты в тайловой табличке исходя из координат спрайта. Мол сюда рисовался спрайт на этом кадре (это может быть и один тайл и два и четыре).
Ну и так все спрайты прорисовываются в буфер и модифицируется битовая таблица тех тайлов буфера которые были затронуты прорисовкой спрайтов.
Затем прохожусь по битовой табличке этой тайловой и если вижу бит что сюда мол спрайт пририсовался (первый бит установлен), то вывожу на экран этот кусок 16х16 из всех буферов разумеется, затем восстанавливаю этот кусок тем тайлом который там указан для бекграунда.
Зачем нужен второй бит (рисовали сюда на прошлом кадре) - нууу

чтобы "куски предыдущих спрайтов" не маячили на экране, там если попробуешь так делать то сразу поймешь.
Еще самый простой способ чтобы спрайт "заходил за экран" это сделать эти буфера побольше отображаемой области на экране. А на экран выводить без внешних кусков.