Mercurial > repos > blastem
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 } |