1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-07-06 01:28:57 +00:00

Takes a stab at attached sprites.

This commit is contained in:
Thomas Harte 2021-11-19 14:19:47 -05:00
parent bcc959d938
commit a94b4f62fd

View File

@ -282,20 +282,32 @@ template <int cycle> void Chipset::output() {
if(!data) continue; if(!data) continue;
const int base = (c << 2) + 16; const int base = (c << 2) + 16;
// TODO: can do a better job of selection here — if(sprites_[(c << 1) + 1].attached) {
// treat each 4-bit quantity as a single colour // Left pixel.
// selection, much like dual playfield mode. if(data >> 4) {
if(data >> 6) { pixels_[0] = pixels_[1] = palette_[16 + (data >> 4)];
pixels_[0] = pixels_[1] = palette_[base + (data >> 6)]; }
}
if((data >> 4) & 3) { // Right pixel.
pixels_[0] = pixels_[1] = palette_[base + ((data >> 4)&3)]; if(data & 15) {
} pixels_[2] = pixels_[3] = palette_[16 + (data & 15)];
if((data >> 2) & 3) { }
pixels_[2] = pixels_[3] = palette_[base + ((data >> 2)&3)]; } else {
} // Left pixel.
if(data & 3) { if(data >> 6) {
pixels_[2] = pixels_[3] = palette_[base + (data & 3)]; pixels_[0] = pixels_[1] = palette_[base + (data >> 6)];
}
if((data >> 4) & 3) {
pixels_[0] = pixels_[1] = palette_[base + ((data >> 4)&3)];
}
// Right pixel.
if((data >> 2) & 3) {
pixels_[2] = pixels_[3] = palette_[base + ((data >> 2)&3)];
}
if(data & 3) {
pixels_[2] = pixels_[3] = palette_[base + (data & 3)];
}
} }
} }