Browse code

ppu_palette: rewrite for more readability

Sigrid Solveig Haflínudóttir authored on 25/12/2021 21:42:34
Showing 1 changed files
... ...
@@ -40,13 +40,14 @@ static Uint8 font[][8] = {
40 40
 void
41 41
 ppu_palette(Ppu *p, Uint8 *addr)
42 42
 {
43
-	int i;
44
-	for(i = 0; i < 4; ++i) {
43
+	int i, shift;
44
+	for(i = 0, shift = 4; i < 4; ++i, shift ^= 4) {
45 45
 		Uint8
46
-			r = (*(addr + i / 2) >> (!(i % 2) << 2)) & 0x0f,
47
-			g = (*(addr + 2 + i / 2) >> (!(i % 2) << 2)) & 0x0f,
48
-			b = (*(addr + 4 + i / 2) >> (!(i % 2) << 2)) & 0x0f;
49
-		p->palette[i] = 0xff000000 | (r << 20) | (r << 16) | (g << 12) | (g << 8) | (b << 4) | b;
46
+			r = (addr[0 + i / 2] >> shift) & 0x0f,
47
+			g = (addr[2 + i / 2] >> shift) & 0x0f,
48
+			b = (addr[4 + i / 2] >> shift) & 0x0f;
49
+		p->palette[i] = 0x0f000000 | r << 16 | g << 8 | b;
50
+		p->palette[i] |= p->palette[i] << 4;
50 51
 	}
51 52
 	p->fg.changed = p->bg.changed = 1;
52 53
 }