From 531f0c7528968e99e8335ee6e08f2f4e99778c78 Mon Sep 17 00:00:00 2001 From: IanSB Date: Sat, 28 Dec 2019 16:35:12 +0000 Subject: [PATCH] Add colour genie palettes --- src/osd.c | 175 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/osd.h | 3 + 2 files changed, 178 insertions(+) diff --git a/src/osd.c b/src/osd.c index 519f492b..955c49d0 100644 --- a/src/osd.c +++ b/src/osd.c @@ -95,6 +95,9 @@ static const char *palette_names[] = { "Mono (6 level)", "TI-99/4a 14 Col", "Spectrum 48K 8 Col", + "Colour Genie S24", + "Colour Genie S25", + "Colour Genie N25", "Just Red", "Just Green", "Just Blue", @@ -1949,7 +1952,179 @@ void osd_update_palette() { break; */ + case PALETTE_CGS24: + if ((i & 0x30) == 0x30) { + int fix = i; + + switch (fix & 0x0f) { + case 12 : + r=234;g=234;b=234; + break; + case 10 : + r=31;g=157;b=0; + break; + case 13 : + r=188;g=64;b=0; + break; + case 11 : + r=238;g=195;b=14; + break; + case 9 : + r=235;g=111;b=43; + break; + case 7 : + r=94;g=129;b=255; + break; + case 14 : + r=125;g=255;b=251; + break; + case 1 : + r=255;g=172;b=255; + break; + case 6 : + r=171;g=255;b=74; + break; + case 15 : + r=94;g=94;b=94; + break; + case 8 : + r=234;g=234;b=234; + break; + case 4 : + r=78;g=239;b=204; + break; + case 3 : + r=152;g=32;b=255; + break; + case 2 : + r=47;g=83;b=255; + break; + case 5 : + r=255;g=242;b=61; + break; + case 0 : + r=37;g=37;b=37; + break; + } + } else { + r=0;g=0;b=0; + } + break; + case PALETTE_CGS25: + if ((i & 0x30) == 0x30) { + switch (i & 0x0f) { + case 12 : + r=234;g=234;b=234; + break; + case 10 : + r=31;g=157;b=0; + break; + case 13 : + r=188;g=64;b=0; + break; + case 11 : + r=238;g=195;b=14; + break; + case 9 : + r=235;g=111;b=43; + break; + case 7 : + r=94;g=129;b=255; + break; + case 14 : + r=125;g=255;b=251; + break; + case 1 : + r=255;g=172;b=255; + break; + case 6 : + r=47;g=83;b=255; + break; + case 15 : + r=234;g=234;b=234; + break; + case 8 : + r=255;g=242;b=61; + break; + case 4 : + r=78;g=239;b=204; + break; + case 3 : + r=171;g=255;b=74; + break; + case 2 : + r=94;g=94;b=94; + break; + case 5 : + r=152;g=32;b=255; + break; + case 0 : + r=37;g=37;b=37; + break; + } + } else { + r=0;g=0;b=0; + } + break; + case PALETTE_CGN25: + if ((i & 0x30) == 0x30) { + switch (i & 0x0f) { + case 12 : + r=234;g=234;b=234; + break; + case 10 : + r=171;g=255;b=74; + break; + case 13 : + r=203;g=38;b=94; + break; + case 11 : + r=255;g=242;b=61; + break; + case 9 : + r=235;g=111;b=43; + break; + case 7 : + r=47;g=83;b=255; + break; + case 14 : + r=124;g=255;b=234; + break; + case 1 : + r=152;g=32;b=255; + break; + case 6 : + r=188;g=223;b=255; + break; + case 15 : + r=94;g=94;b=94; + break; + case 8 : + r=234;g=255;b=39; + break; + case 4 : + r=138;g=103;b=255; + break; + case 3 : + r=140;g=140;b=140; + break; + case 2 : + r=31;g=196;b=140; + break; + case 5 : + r=199;g=78;b=255; + break; + case 0 : + r=255;g=255;b=255; + break; + } + + } else { + r=0;g=0;b=0; + } + break; + case PALETTE_RED: m = (i & 7) * 255 / 7; r = m; g = 0; b = 0; diff --git a/src/osd.h b/src/osd.h index 76b83585..8a0179c3 100644 --- a/src/osd.h +++ b/src/osd.h @@ -42,6 +42,9 @@ enum { PALETTE_MONO2, PALETTE_TI, PALETTE_SPECTRUM48K, + PALETTE_CGS24, + PALETTE_CGS25, + PALETTE_CGN25, PALETTE_RED, PALETTE_GREEN, PALETTE_BLUE,