| ... | ... |
@@ -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 |
} |