comparison jag_video.c @ 1099:9c62edafcf74

Fix CRY color mapping
author Michael Pavone <pavone@retrodev.com>
date Sat, 05 Nov 2016 21:19:18 -0700
parents 4a726e339d6f
children 653558f6fa7a
comparison
equal deleted inserted replaced
1098:4a726e339d6f 1099:9c62edafcf74
60 60
61 static uint32_t cry_to_rgb(uint16_t cry) 61 static uint32_t cry_to_rgb(uint16_t cry)
62 { 62 {
63 uint32_t y = cry & 0xFF; 63 uint32_t y = cry & 0xFF;
64 if (y) { 64 if (y) {
65 uint8_t c = cry >> 12; 65 uint8_t c = cry >> 8 & 0xF;
66 uint8_t r = cry >> 8 & 0xF; 66 uint8_t r = cry >> 12;
67 67
68 uint32_t red = cry_red[c < 7 ? 0 : c - 7][r]; 68 uint32_t red = cry_red[c < 7 ? 0 : c - 7][r];
69 uint32_t green = cry_green[c][r < 8 ? r : 15 - r]; 69 uint32_t green = cry_green[c][r < 8 ? r : 15 - r];
70 uint32_t blue = cry_red[c < 7 ? 0 : c - 7][15-r]; 70 uint32_t blue = cry_red[c < 7 ? 0 : c - 7][15-r];
71 red = red * 255 / y; 71 red = red * y / 255;
72 blue = blue * 255 / y; 72 blue = blue * y / 255;
73 green = green * 255 / y; 73 green = green * y / 255;
74 return render_map_color(red, green, blue); 74 return render_map_color(red, green, blue);
75 } else { 75 } else {
76 return render_map_color(0, 0, 0); 76 return render_map_color(0, 0, 0);
77 } 77 }
78 } 78 }