Зачем 3 буфера? экран тоже буфер....
Если экран не успевает сформироваться то сканер пикселей тупо отображает ещё раз тот же самый экран который в буфере.
А вообще я сути не понимаю, у тебя рабочая область получается с раздельным цветом на КАЖДЫЙ ПИКСЕЛЬ, какую ещё маску ты собираешься накладывать? если в маске 0 то ты пиксель не записываешь да и цвет paper ты куда будешь записывать? его в спрайте не должно быть ибо это задний фон.
- - - Добавлено - - -
Рисуешь новые спрайты в 64 цветах R+R+G+G+B+B, подклеиваешь к игре, в части вывода на экран удаляешь всё что после вычисления координат СПРАЙТА, вставляешь кусок вывода спрайта при помощи плис.....игра готова, никакого клешинга, все цвета с точностью до пикселя, в R-TYPE фон двигается попиксельно и в 64 цветах, всё красиво, все радуются, аплодисменты, занавес.
Ах да, вывод на экран ускорится раз в 20, z80 успеет и за треть кадра нарисовать вместе с фоном.
256 спрайтов 8x8 с 64-256 цветов на точку занимает всего 16 кб, я думаю даже в R-TYPE их там значительно меньше, по крайней мере на уровень за глаза хватит, а может и на все.
А в Exolon их явно меньше, как тебя Exolon в 256 цветах НА ПИКСЕЛЬ и минимум переделки? а маска спрайта в самом пикселе и указывается ибо градаций черного не бывает.
Биты:
0-1 -- 4 яркости Blue
2-3 -- 4 яркости Red
4-5 -- 4 яркости Green
6-7 -- 4 яркости общие
нууу по факту 3 а не 4
То есть - b00 000000 это чёрный цвет а b11 000000 это маска, прозрачный, пиксель не записывается в память.
Тогда можно сделать ещё и если b00 а первые 6 бит не ноль тогда это номер регистра палитры, 63 штуки, ставишь b00 000001 и меняешь только регистр №1, всё что им окрашено на экране будет меняться, как в Contra на денди, там на фоне всякие переливающиеся страшилки.
В R-TYPE на большом корабле легко сделать огонь из двигателей.
Не понимаю что ты к битам прицепился, байтами надо работать, байтами