Multiple Revisions

Changes:
 - Double check against TheWolfBunny & nensondubois
 - improved commenting
 - nensondubois' revised Alley Way SGB palette
 - nensondubois' revised Tetris Attack SGB palette
 - Collection of SaGa palette
 - Donkey Kong '94 ending palette
 - SGB Super Mario Land palette for Arne's Unnamed Graphics Hack rather than 1-A
 - Wide-Boy palette option
 - Donkey Kong Land DMGesque menu palette option
 - Game & Watch palette option
 - Demo Vision palette option
 - remove unused palette additions (Superball, Squidlit)
 - update Dream Land GB with TheWolfBunny's version
This commit is contained in:
TRIFORCE89
2021-07-16 12:01:05 -04:00
parent 00e8ac983c
commit b5a97f1d55
2 changed files with 151 additions and 104 deletions
+19 -12
View File
@@ -351,20 +351,25 @@ const int GBMap[] = {gambatte::InputGetter::UP, gambatte::InputGetter::DOWN, gam
Option(@"Game Boy Light", @"palette"),
SeparatorItem(),
Label(@"Monochrome Palettes"),
Option(@"SGB Greenscale", @"palette"),
Option(@"SGB Grayscale", @"palette"),
Option(@"SGB Greenscale", @"palette"),
Option(@"GBC Grayscale", @"palette"),
SeparatorItem(),
Label(@"Virtual Console"),
Option(@"VC Greenscale", @"palette"),
Option(@"VC Grayscale", @"palette"),
SeparatorItem(),
Label(@"Lateral Thinking"),
Option(@"Game & Watch", @"palette"),
Option(@"Virtual Boy", @"palette"),
Option(@"WonderSwan", @"palette"),
SeparatorItem(),
Label(@"Extra Palettes"),
Option(@"Analogue", @"palette"),
Option(@"GB Studio", @"palette"),
Option(@"Demo Vision", @"palette"),
Option(@"Wide-Boy", @"palette"),
Option(@"Portable Power", @"palette"),
Option(@"Pocket Tales", @"palette"),
Option(@"VirtualBoy", @"palette"),
Option(@"WonderSwan", @"palette")
Option(@"GB Studio", @"palette")
];
// Deep mutable copy
@@ -535,17 +540,19 @@ const int GBMap[] = {gambatte::InputGetter::UP, gambatte::InputGetter::DOWN, gam
@"Dot Matrix" : @"GB - DMG",
@"Game Boy Pocket" : @"GB - MGB",
@"Game Boy Light" : @"GB - Light",
@"SGB Greenscale" : @"SGB - 4H",
@"SGB Grayscale" : @"SGB - 2H",
@"GBC Grayscale" : @"GBC - Grayscale",
@"VirtualBoy" : @"VirtualBoy",
@"SGB Greenscale" : @"SGB - 4H",
@"GBC Grayscale" : @"GBC - Gray",
@"VC Greenscale" : @"VC - Green",
@"VC Grayscale" : @"VC - Gray",
@"Analogue" : @"Analogue",
@"GB Studio" : @"GB Studio",
@"Game & Watch" : @"GW Classic LCD",
@"Virtual Boy" : @"Virtual Boy",
@"WonderSwan" : @"WonderSwan",
@"Demo Vision" : @"Demo Vision",
@"Wide-Boy" : @"Wide-Boy",
@"Portable Power" : @"Portable Power",
@"Pocket Tales" : @"Pocket Tales",
@"VirtualBoy" : @"VirtualBoy",
@"WonderSwan" : @"WonderSwan"
@"GB Studio" : @"GB Studio"
};
palette = paletteNames[palette];
+132 -92
View File
@@ -59,7 +59,7 @@ static const unsigned short p006[] = {
PACK15_4(0xFFFFFF, 0xFF9C00, 0xFF0000, 0x000000)
};
static const unsigned short p007[] = { // Orange | A + Down
static const unsigned short p007[] = { // Orange | Down + A
PACK15_4(0xFFFFFF, 0xFFFF00, 0xFF0000, 0x000000),
PACK15_4(0xFFFFFF, 0xFFFF00, 0xFF0000, 0x000000),
PACK15_4(0xFFFFFF, 0xFFFF00, 0xFF0000, 0x000000)
@@ -77,13 +77,13 @@ static const unsigned short p012[] = { // Brown | Up
PACK15_4(0xFFFFFF, 0xFFAD63, 0x843100, 0x000000)
};
static const unsigned short p013[] = { // Inverted | B + Right
static const unsigned short p013[] = { // Reverse | Right + B
PACK15_4(0x000000, 0x008484, 0xFFDE00, 0xFFFFFF),
PACK15_4(0x000000, 0x008484, 0xFFDE00, 0xFFFFFF),
PACK15_4(0x000000, 0x008484, 0xFFDE00, 0xFFFFFF)
};
static const unsigned short p016[] = { // Grayscale | B + Left
static const unsigned short p016[] = { // Gray | Left + B
PACK15_4(0xFFFFFF, 0xA5A5A5, 0x525252, 0x000000),
PACK15_4(0xFFFFFF, 0xA5A5A5, 0x525252, 0x000000),
PACK15_4(0xFFFFFF, 0xA5A5A5, 0x525252, 0x000000)
@@ -209,13 +209,13 @@ static const unsigned short p312[] = {
PACK15_4(0xFFFFFF, 0x7BFF31, 0x008400, 0x000000)
};
static const unsigned short p319[] = { // Dark Brown | B + Up
static const unsigned short p319[] = { // Dark Brown | Up + B
PACK15_4(0xFFE6C5, 0xCE9C84, 0x846B29, 0x5A3108),
PACK15_4(0xFFFFFF, 0xFFAD63, 0x843100, 0x000000),
PACK15_4(0xFFFFFF, 0xFFAD63, 0x843100, 0x000000)
};
static const unsigned short p31C[] = { // Dark Green (GBC Default) | A + Right
static const unsigned short p31C[] = { // Dark Green (GBC Default) | Right + A
PACK15_4(0xFFFFFF, 0x7BFF31, 0x0063C5, 0x000000),
PACK15_4(0xFFFFFF, 0xFF8484, 0x943A3A, 0x000000),
PACK15_4(0xFFFFFF, 0xFF8484, 0x943A3A, 0x000000)
@@ -287,7 +287,7 @@ static const unsigned short p50C[] = {
PACK15_4(0xFFFFFF, 0x5ABDFF, 0xFF0000, 0x0000FF)
};
static const unsigned short p50D[] = { // Dark Blue | A + Left
static const unsigned short p50D[] = { // Dark Blue | Left + A
PACK15_4(0xFFFFFF, 0x8C8CDE, 0x52528C, 0x000000),
PACK15_4(0xFFFFFF, 0xFF8484, 0x943A3A, 0x000000),
PACK15_4(0xFFFFFF, 0xFFAD63, 0x843100, 0x000000)
@@ -305,7 +305,7 @@ static const unsigned short p50F[] = {
PACK15_4(0xFFFFFF, 0x7BFF31, 0x008400, 0x000000)
};
static const unsigned short p510[] = { // Red | A + Up
static const unsigned short p510[] = { // Red | Up + A
PACK15_4(0xFFFFFF, 0xFF8484, 0x943A3A, 0x000000),
PACK15_4(0xFFFFFF, 0x7BFF31, 0x008400, 0x000000),
PACK15_4(0xFFFFFF, 0x63A5FF, 0x0000FF, 0x000000)
@@ -341,7 +341,7 @@ static const unsigned short p518[] = { // Blue | Left
PACK15_4(0xFFFFFF, 0x7BFF31, 0x008400, 0x000000)
};
static const unsigned short p51A[] = { // Yellow | B + Down
static const unsigned short p51A[] = { // Yellow | Down + B
PACK15_4(0xFFFFFF, 0xFFFF00, 0x7B4A00, 0x000000),
PACK15_4(0xFFFFFF, 0x63A5FF, 0x0000FF, 0x000000),
PACK15_4(0xFFFFFF, 0x7BFF31, 0x008400, 0x000000)
@@ -354,249 +354,261 @@ static const unsigned short p51C[] = {
};
// Super Game Boy Palettes
static const unsigned short sgb1A[] = { // 1-A (SGB Default)
static const unsigned short sgb1A[] = { // 1-A (SGB Default | 7047-0470-4704)
PACK15_4(0xF8E8C8, 0xD89048, 0xA82820, 0x301850),
PACK15_4(0xF8E8C8, 0xD89048, 0xA82820, 0x301850),
PACK15_4(0xF8E8C8, 0xD89048, 0xA82820, 0x301850)
};
static const unsigned short sgb1B[] = {
static const unsigned short sgb1B[] = { // 7057-0570-5705
PACK15_4(0xD8D8C0, 0xC8B070, 0xB05010, 0x000000),
PACK15_4(0xD8D8C0, 0xC8B070, 0xB05010, 0x000000),
PACK15_4(0xD8D8C0, 0xC8B070, 0xB05010, 0x000000)
};
static const unsigned short sgb1C[] = {
static const unsigned short sgb1C[] = { // 7067-0670-6706
PACK15_4(0xF8C0F8, 0xE89850, 0x983860, 0x383898),
PACK15_4(0xF8C0F8, 0xE89850, 0x983860, 0x383898),
PACK15_4(0xF8C0F8, 0xE89850, 0x983860, 0x383898)
};
static const unsigned short sgb1D[] = {
static const unsigned short sgb1D[] = { // 7077-0770-7707
PACK15_4(0xF8F8A8, 0xC08048, 0xF80000, 0x501800),
PACK15_4(0xF8F8A8, 0xC08048, 0xF80000, 0x501800),
PACK15_4(0xF8F8A8, 0xC08048, 0xF80000, 0x501800)
};
static const unsigned short sgb1E[] = {
static const unsigned short sgb1E[] = { // 7087-0870-8708
PACK15_4(0xF8D8B0, 0x78C078, 0x688840, 0x583820),
PACK15_4(0xF8D8B0, 0x78C078, 0x688840, 0x583820),
PACK15_4(0xF8D8B0, 0x78C078, 0x688840, 0x583820)
};
static const unsigned short sgb1F[] = {
static const unsigned short sgb1F[] = { // 7097-0970-9709
PACK15_4(0xD8E8F8, 0xE08850, 0xA80000, 0x004010),
PACK15_4(0xD8E8F8, 0xE08850, 0xA80000, 0x004010),
PACK15_4(0xD8E8F8, 0xE08850, 0xA80000, 0x004010)
};
static const unsigned short sgb1G[] = {
static const unsigned short sgb1G[] = { // 7107-1071-0710
PACK15_4(0x000050, 0x00A0E8, 0x787800, 0xF8F858),
PACK15_4(0x000050, 0x00A0E8, 0x787800, 0xF8F858),
PACK15_4(0x000050, 0x00A0E8, 0x787800, 0xF8F858)
};
static const unsigned short sgb1H[] = { // 1-H (SGB Brownscale)
static const unsigned short sgb1H[] = { // 7117-1171-1711
PACK15_4(0xF8E8E0, 0xF8B888, 0x804000, 0x301800),
PACK15_4(0xF8E8E0, 0xF8B888, 0x804000, 0x301800),
PACK15_4(0xF8E8E0, 0xF8B888, 0x804000, 0x301800)
};
static const unsigned short sgb2A[] = {
static const unsigned short sgb2A[] = { // 7127-1271-2712
PACK15_4(0xF0C8A0, 0xC08848, 0x287800, 0x000000),
PACK15_4(0xF0C8A0, 0xC08848, 0x287800, 0x000000),
PACK15_4(0xF0C8A0, 0xC08848, 0x287800, 0x000000)
};
static const unsigned short sgb2B[] = {
static const unsigned short sgb2B[] = { // 7137-1371-3713
PACK15_4(0xF8F8F8, 0xF8E850, 0xF83000, 0x500058),
PACK15_4(0xF8F8F8, 0xF8E850, 0xF83000, 0x500058),
PACK15_4(0xF8F8F8, 0xF8E850, 0xF83000, 0x500058)
};
static const unsigned short sgb2C[] = {
static const unsigned short sgb2C[] = { // 7147-1471-4714
PACK15_4(0xF8C0F8, 0xE88888, 0x7830E8, 0x282898),
PACK15_4(0xF8C0F8, 0xE88888, 0x7830E8, 0x282898),
PACK15_4(0xF8C0F8, 0xE88888, 0x7830E8, 0x282898)
};
static const unsigned short sgb2D[] = {
static const unsigned short sgb2D[] = { // 7157-1571-5715
PACK15_4(0xF8F8A0, 0x00F800, 0xF83000, 0x000050),
PACK15_4(0xF8F8A0, 0x00F800, 0xF83000, 0x000050),
PACK15_4(0xF8F8A0, 0x00F800, 0xF83000, 0x000050)
};
static const unsigned short sgb2E[] = {
static const unsigned short sgb2E[] = { // 7167-1671-6716
PACK15_4(0xF8C880, 0x90B0E0, 0x281060, 0x100810),
PACK15_4(0xF8C880, 0x90B0E0, 0x281060, 0x100810),
PACK15_4(0xF8C880, 0x90B0E0, 0x281060, 0x100810)
};
static const unsigned short sgb2F[] = {
static const unsigned short sgb2F[] = { // 7177-1771-7717
PACK15_4(0xD0F8F8, 0xF89050, 0xA00000, 0x180000),
PACK15_4(0xD0F8F8, 0xF89050, 0xA00000, 0x180000),
PACK15_4(0xD0F8F8, 0xF89050, 0xA00000, 0x180000)
};
static const unsigned short sgb2G[] = {
static const unsigned short sgb2G[] = { // 7187-1871-8718
PACK15_4(0x68B838, 0xE05040, 0xE0B880, 0x001800),
PACK15_4(0x68B838, 0xE05040, 0xE0B880, 0x001800),
PACK15_4(0x68B838, 0xE05040, 0xE0B880, 0x001800)
};
static const unsigned short sgb2H[] = { // 2-H (SGB Grayscale)
static const unsigned short sgb2H[] = { // 2-H (SGB Grayscale | 7197-1971-9719)
PACK15_4(0xF8F8F8, 0xB8B8B8, 0x707070, 0x000000),
PACK15_4(0xF8F8F8, 0xB8B8B8, 0x707070, 0x000000),
PACK15_4(0xF8F8F8, 0xB8B8B8, 0x707070, 0x000000)
};
static const unsigned short sgb3A[] = {
static const unsigned short sgb3A[] = { // 7207-2072-0720
PACK15_4(0xF8D098, 0x70C0C0, 0xF86028, 0x304860),
PACK15_4(0xF8D098, 0x70C0C0, 0xF86028, 0x304860),
PACK15_4(0xF8D098, 0x70C0C0, 0xF86028, 0x304860)
};
static const unsigned short sgb3B[] = {
static const unsigned short sgb3B[] = { // 7217-2172-1721
PACK15_4(0xD8D8C0, 0xE08020, 0x005000, 0x001010),
PACK15_4(0xD8D8C0, 0xE08020, 0x005000, 0x001010),
PACK15_4(0xD8D8C0, 0xE08020, 0x005000, 0x001010)
};
static const unsigned short sgb3C[] = {
static const unsigned short sgb3C[] = { // 7227-2272-2722
PACK15_4(0xE0A8C8, 0xF8F878, 0x00B8F8, 0x202058),
PACK15_4(0xE0A8C8, 0xF8F878, 0x00B8F8, 0x202058),
PACK15_4(0xE0A8C8, 0xF8F878, 0x00B8F8, 0x202058)
};
static const unsigned short sgb3D[] = {
static const unsigned short sgb3D[] = { // 7237-2372-3723
PACK15_4(0xF0F8B8, 0xE0A878, 0x08C800, 0x000000),
PACK15_4(0xF0F8B8, 0xE0A878, 0x08C800, 0x000000),
PACK15_4(0xF0F8B8, 0xE0A878, 0x08C800, 0x000000)
};
static const unsigned short sgb3E[] = {
static const unsigned short sgb3E[] = { // 7247-2472-4724
PACK15_4(0xF8F8C0, 0xE0B068, 0xB07820, 0x504870),
PACK15_4(0xF8F8C0, 0xE0B068, 0xB07820, 0x504870),
PACK15_4(0xF8F8C0, 0xE0B068, 0xB07820, 0x504870)
};
static const unsigned short sgb3F[] = {
static const unsigned short sgb3F[] = { // 7257-2572-5725
PACK15_4(0x7878C8, 0xF868F8, 0xF8D000, 0x404040),
PACK15_4(0x7878C8, 0xF868F8, 0xF8D000, 0x404040),
PACK15_4(0x7878C8, 0xF868F8, 0xF8D000, 0x404040)
};
static const unsigned short sgb3G[] = {
static const unsigned short sgb3G[] = { // 7267-2672-6726
PACK15_4(0x60D850, 0xF8F8F8, 0xC83038, 0x380000),
PACK15_4(0x60D850, 0xF8F8F8, 0xC83038, 0x380000),
PACK15_4(0x60D850, 0xF8F8F8, 0xC83038, 0x380000)
};
static const unsigned short sgb3H[] = { // 3-H (SGB Vivid Greenscale)
static const unsigned short sgb3H[] = { // 7277-2772-7727
PACK15_4(0xE0F8A0, 0x78C838, 0x488818, 0x081800),
PACK15_4(0xE0F8A0, 0x78C838, 0x488818, 0x081800),
PACK15_4(0xE0F8A0, 0x78C838, 0x488818, 0x081800)
};
static const unsigned short sgb4A[] = {
static const unsigned short sgb4A[] = { // 7287-2872-8728
PACK15_4(0xF0A868, 0x78A8F8, 0xD000D0, 0x000078),
PACK15_4(0xF0A868, 0x78A8F8, 0xD000D0, 0x000078),
PACK15_4(0xF0A868, 0x78A8F8, 0xD000D0, 0x000078)
};
static const unsigned short sgb4B[] = {
static const unsigned short sgb4B[] = { // 7297-2972-9729
PACK15_4(0xF0E8F0, 0xE8A060, 0x407838, 0x180808),
PACK15_4(0xF0E8F0, 0xE8A060, 0x407838, 0x180808),
PACK15_4(0xF0E8F0, 0xE8A060, 0x407838, 0x180808)
};
static const unsigned short sgb4C[] = {
static const unsigned short sgb4C[] = { // 7307-3073-0730
PACK15_4(0xF8E0E0, 0xD8A0D0, 0x98A0E0, 0x080000),
PACK15_4(0xF8E0E0, 0xD8A0D0, 0x98A0E0, 0x080000),
PACK15_4(0xF8E0E0, 0xD8A0D0, 0x98A0E0, 0x080000)
};
static const unsigned short sgb4D[] = {
static const unsigned short sgb4D[] = { // 7317-3173-1731
PACK15_4(0xF8F8B8, 0x90C8C8, 0x486878, 0x082048),
PACK15_4(0xF8F8B8, 0x90C8C8, 0x486878, 0x082048),
PACK15_4(0xF8F8B8, 0x90C8C8, 0x486878, 0x082048)
};
static const unsigned short sgb4E[] = {
static const unsigned short sgb4E[] = { // 7327-3273-2732
PACK15_4(0xF8D8A8, 0xE0A878, 0x785888, 0x002030),
PACK15_4(0xF8D8A8, 0xE0A878, 0x785888, 0x002030),
PACK15_4(0xF8D8A8, 0xE0A878, 0x785888, 0x002030)
};
static const unsigned short sgb4F[] = {
static const unsigned short sgb4F[] = { // 7337-3373-3733
PACK15_4(0xB8D0D0, 0xD880D8, 0x8000A0, 0x380000),
PACK15_4(0xB8D0D0, 0xD880D8, 0x8000A0, 0x380000),
PACK15_4(0xB8D0D0, 0xD880D8, 0x8000A0, 0x380000)
};
static const unsigned short sgb4G[] = {
static const unsigned short sgb4G[] = { // 7347-3473-4734
PACK15_4(0xB0E018, 0xB82058, 0x281000, 0x008060),
PACK15_4(0xB0E018, 0xB82058, 0x281000, 0x008060),
PACK15_4(0xB0E018, 0xB82058, 0x281000, 0x008060)
};
static const unsigned short sgb4H[] = { // 4-H (SGB DMG-esque)
static const unsigned short sgb4H[] = { // 4-H (SGB Greenscale | RGB208 | 7357-3573-5735)
PACK15_4(0xF8F8C8, 0xB8C058, 0x808840, 0x405028),
PACK15_4(0xF8F8C8, 0xB8C058, 0x808840, 0x405028),
PACK15_4(0xF8F8C8, 0xB8C058, 0x808840, 0x405028)
};
// Virtual Console
static const unsigned short vcGreen[] = {
static const unsigned short vcGreen[] = { // DMG_COLOR
PACK15_4(0xBDFF21, 0x9CEF29, 0x5A8C42, 0x4A4A4A),
PACK15_4(0xBDFF21, 0x9CEF29, 0x5A8C42, 0x4A4A4A),
PACK15_4(0xBDFF21, 0x9CEF29, 0x5A8C42, 0x4A4A4A)
};
static const unsigned short vcGreenAlt[] = { // inspired by Dream Land GB (Super Smash Bros. Ultimate)
PACK15_4(0xFBFB7C, 0xE0F03E, 0x99B41F, 0x5D5D1F),
PACK15_4(0xFBFB7C, 0xE0F03E, 0x99B41F, 0x5D5D1F),
PACK15_4(0xFBFB7C, 0xE0F03E, 0x99B41F, 0x5D5D1F)
PACK15_4(0xF6FF70, 0xB9D03A, 0x788B1D, 0x48530E),
PACK15_4(0xF6FF70, 0xB9D03A, 0x788B1D, 0x48530E),
PACK15_4(0xF6FF70, 0xB9D03A, 0x788B1D, 0x48530E)
};
static const unsigned short vcGray[] = {
static const unsigned short vcGray[] = { // DMG_COLOR_GRAY
PACK15_4(0xCECEAD, 0xA5A58C, 0x6B6B52, 0x292919),
PACK15_4(0xCECEAD, 0xA5A58C, 0x6B6B52, 0x292919),
PACK15_4(0xCECEAD, 0xA5A58C, 0x6B6B52, 0x292919)
};
static const unsigned short vcGrayAlt[] = { // Kirby's Dream Collection
static const unsigned short vcGrayAlt[] = { // DMG_COLOR_COLOR (Kirby's Dream Collection)
PACK15_4(0xBDBD9C, 0x8C8C73, 0x5A5A4A, 0x313119),
PACK15_4(0xBDBD9C, 0x8C8C73, 0x5A5A4A, 0x313119),
PACK15_4(0xBDBD9C, 0x8C8C73, 0x5A5A4A, 0x313119)
};
// Special Palettes <https://www.deviantart.com/thewolfbunny/gallery/69987002/game-boy-palettes>
static const unsigned short twb799510[] = { // Squidlit
PACK15_4(0x9CBE0C, 0x6E870A, 0x2C6234, 0x0C360C),
PACK15_4(0x9CBE0C, 0x6E870A, 0x2C6234, 0x0C360C),
PACK15_4(0x9CBE0C, 0x6E870A, 0x2C6234, 0x0C360C)
static const unsigned short vcSaGa[] = { // Collection of SaGa: Final Fantasy Legend
PACK15_4(0xB2C0A8, 0x769A67, 0x345D51, 0x041820),
PACK15_4(0xB2C0A8, 0x769A67, 0x345D51, 0x041820),
PACK15_4(0xB2C0A8, 0x769A67, 0x345D51, 0x041820)
};
static const unsigned short twbAMA[] = { // Superball Ivory (Super Mario Maker 2)
PACK15_4(0xEEF0BC, 0xBCBC8A, 0x828250, 0x646432),
PACK15_4(0xEEF0BC, 0xBCBC8A, 0x828250, 0x646432),
PACK15_4(0xEEF0BC, 0xBCBC8A, 0x828250, 0x646432)
// Gunpei Yokoi Palettes
static const unsigned short pDemoVision[] = { // Demo Vision
PACK15_4(0xD9E09C, 0xA7BE03, 0x5C7114, 0x0F4B0E),
PACK15_4(0xD9E09C, 0xA7BE03, 0x5C7114, 0x0F4B0E),
PACK15_4(0xD9E09C, 0xA7BE03, 0x5C7114, 0x0F4B0E)
};
static const unsigned short twbSWJ[] = { // WonderSwan Monochrome (because Gunpei Yokoi)
static const unsigned short twbGW[] = { // Game & Watch Classic LCD
PACK15_4(0xC6CBAD, 0x979B84, 0x545F51, 0x22231E),
PACK15_4(0xC6CBAD, 0x979B84, 0x545F51, 0x22231E),
PACK15_4(0xC6CBAD, 0x979B84, 0x545F51, 0x22231E)
};
static const unsigned short twbSWJ[] = { // WonderSwan Monochrome
PACK15_4(0xFEFEFE, 0xC2C2C2, 0x686868, 0x1D1D1D),
PACK15_4(0xFEFEFE, 0xC2C2C2, 0x686868, 0x1D1D1D),
PACK15_4(0xFEFEFE, 0xC2C2C2, 0x686868, 0x1D1D1D)
};
static const unsigned short twbVUE[] = { // VirtualBoy
static const unsigned short twbVUE[] = { // Virtual Boy
PACK15_4(0xFF0000, 0xAA0000, 0x550000, 0x000000),
PACK15_4(0xFF0000, 0xAA0000, 0x550000, 0x000000),
PACK15_4(0xFF0000, 0xAA0000, 0x550000, 0x000000)
};
static const unsigned short twbWB[] = { // Giga Kiwi DMG (Wide-Boy / Kiosk)
PACK15_4(0xD0E040, 0xA0A830, 0x607028, 0x384828),
PACK15_4(0xD0E040, 0xA0A830, 0x607028, 0x384828),
PACK15_4(0xD0E040, 0xA0A830, 0x607028, 0x384828)
};
// Additional Super Game Boy Enhanced Palettes
static const unsigned short sgbACR[] = { // Conker's Pocket Tales (TheWolfBunny)
PACK15_4(0xD0D860, 0x88A000, 0x385000, 0x000000),
PACK15_4(0xD0D860, 0x88A000, 0x385000, 0x000000),
@@ -615,7 +627,25 @@ static const unsigned short sgbAPS[] = { // Pokémon Yellow <https://github.com/
PACK15_4(0xFFFFF7, 0xFFF7B5, 0xDE8484, 0x313131)
};
static const unsigned short sgbQP[] = { // Cool Spot (Nintendo Power #63)
static const unsigned short sgbAW[] = { // Alleyway (nensondubois improvement | 2997-1273-2810)
PACK15_4(0x4F604F, 0xC0884F, 0x785888, 0x301850),
PACK15_4(0x4F604F, 0xC0884F, 0x785888, 0x301850),
PACK15_4(0x4F604F, 0xC0884F, 0x785888, 0x301850)
};
static const unsigned short sgbAYL[] = { // Tetris Attack (nensondubois improvement)
PACK15_4(0xFFFFE5, 0x3AF701, 0xAD04EE, 0x850632),
PACK15_4(0xFFFFE5, 0x3AF701, 0xAD04EE, 0x850632),
PACK15_4(0xFFFFE5, 0x3AF701, 0xAD04EE, 0x850632)
};
static const unsigned short sgbQD[] = { // Donkey Kong '94 (TheWolfBunny)
PACK15_4(0xC0F0F8, 0xD89078, 0x805850, 0x204008),
PACK15_4(0xC0F0F8, 0xD89078, 0x805850, 0x204008),
PACK15_4(0xC0F0F8, 0xD89078, 0x805850, 0x204008)
};
static const unsigned short sgbQP[] = { // Cool Spot (Nintendo Power #63 | 2421-9219-9243)
PACK15_4(0xFFF8FF, 0xFF0000, 0x009800, 0x000000),
PACK15_4(0xFFF8FF, 0xFF0000, 0x009800, 0x000000),
PACK15_4(0xFFF8FF, 0xFF0000, 0x009800, 0x000000)
@@ -627,6 +657,12 @@ static const unsigned short sgbWM[] = { // Mega Man World V (TheWolfBunny)
PACK15_4(0xD0D0D0, 0x70A0E0, 0x406890, 0x082030)
};
static const unsigned short sgbYT[] = { // Donkey Kong Land
PACK15_4(0x9AAD00, 0x5E7B00, 0x315500, 0x0F2A00),
PACK15_4(0x9AAD00, 0x5E7B00, 0x315500, 0x0F2A00),
PACK15_4(0x9AAD00, 0x5E7B00, 0x315500, 0x0F2A00)
};
static const unsigned short sgbZL[] = { // Link's Awakening DX (TheWolfBunny)
PACK15_4(0xF8F8B0, 0x78C078, 0x688840, 0x583820),
PACK15_4(0xF8F8B0, 0x78C078, 0x688840, 0x583820),
@@ -652,13 +688,7 @@ static const unsigned short pExt3[] = {
PACK15_4(0xF8F8F8, 0xD7543C, 0x7D3023, 0x000000)
};
static const unsigned short pAnalogue[] = {
PACK15_4(0xE0F8CF, 0x86C06C, 0x306850, 0x071821),
PACK15_4(0xE0F8CF, 0x86C06C, 0x306850, 0x071821),
PACK15_4(0xE0F8CF, 0x86C06C, 0x306850, 0x071821)
};
static const unsigned short pGBStudio[] = { // GBC
static const unsigned short pGBStudio[] = { // GB Studio
PACK15_4(0xE8F8E0, 0xB0F088, 0x509878, 0x202850),
PACK15_4(0xE8F8E0, 0xB0F088, 0x509878, 0x202850),
PACK15_4(0xE8F8E0, 0xB0F088, 0x509878, 0x202850)
@@ -670,7 +700,7 @@ static const unsigned short pSML2013[] = { // Arne's Unnamed Graphics Hack (Supe
PACK15_4(0x000000, 0xE0C048, 0xB05030, 0x283018)
};
// Goomba Color & BGB
// GBC Special, from Goomba Color & BGB
static const unsigned short bgbT3[] = { // Adventure Island
PACK15_4(0xFFFFFF, 0x9CB5FF, 0x319400, 0x000000),
PACK15_4(0xFFFFDE, 0xEFC673, 0xFF6352, 0x000029),
@@ -709,26 +739,29 @@ static const unsigned short bgbCV[] = { // The Castlevania Adventure
struct GbcPaletteEntry { const char *title; const unsigned short *p; };
static const GbcPaletteEntry gbcDirPalettes[] = {
{ "Analogue", pAnalogue }, // Analogue Pocket
{ "Demo Vision", pDemoVision },
{ "GB - DMG", gbdmg }, // GB Pea Soup Green
{ "GB - Light", gblit }, // GB Light Aquamarine
{ "GB - MGB", gbpoc }, // GB Pocket Newsprint
{ "GB Studio", pGBStudio }, // GB Studio
{ "GBC - Dark Green", p31C }, // A + Right (default GBC)
{ "GBC - Grayscale", p016 }, // B + Left
{ "GB Studio", pGBStudio },
{ "GBC - Dark Green", p31C }, // Right + A (default GBC)
{ "GBC - Gray", p016 }, // Left + B
{ "GW Classic LCD", twbGW },
{ "Pocket Tales", sgbACR }, // Conker's Pocket Tales
{ "Portable Power", sgbYT }, // Donkey Kong Land
{ "SGB - 1A", sgb1A }, // 1-A (default SGB)
{ "SGB - 2H", sgb2H }, // SGB Grayscale
{ "SGB - 4H", sgb4H }, // SGB Greenscale
{ "VC - Gray", vcGrayAlt }, // Virtual Console Grayscale
{ "VC - Gray", vcGrayAlt }, // Virtual Console Grayscale (Kirby's Dream Collection)
{ "VC - Green", vcGreen }, // Virtual Console Greenscale
{ "VirtualBoy", twbVUE }, // VirtualBoy
{ "Virtual Boy", twbVUE },
{ "Wide-Boy", twbWB }, // Giga Kiwi DMG
{ "WonderSwan", twbSWJ }
};
static const GbcPaletteEntry gbcTitlePalettes[] = {
{ "ADVENTURE ISLAND", bgbT3 }, // unofficial
{ "ADVENTUREISLAND2", bgbGQ }, // unofficial
{ "ADVENTURE ISLAND", bgbT3 }, // unofficial (BGB)
{ "ADVENTUREISLAND2", bgbGQ }, // unofficial (BGB)
{ "ALLEY WAY", p008 },
{ "ARNE'SMARIOLAND", pSML2013 }, // homebrew (Arne's Unnamed Graphics Hack)
{ "ASTEROIDS", p30E }, // unofficial ("ASTEROIDS/MISCMD" alt.)
@@ -737,18 +770,18 @@ static const GbcPaletteEntry gbcTitlePalettes[] = {
{ "BA.TOSHINDEN", p50F },
{ "BALLOON KID", p006 },
{ "BASEBALL", p503 },
{ "BATMAN", bgbBA }, // unofficial
{ "BATMAN ROJ", bgbB5 }, // unofficial
{ "BATMAN", bgbBA }, // unofficial (BGB)
{ "BATMAN ROJ", bgbB5 }, // unofficial (BGB)
{ "BATTLETOADS", p312 }, // unofficial
{ "BIONIC-COMMANDO", bgbB0 }, // unofficial
{ "BIONIC-COMMANDO", bgbB0 }, // unofficial (BGB)
{ "BOMBER BOY", p30F }, // unofficial ("DYNABLASTER" alt.)
{ "BOMBERMAN GB", p31C }, // unofficial ("WARIO BLAST" alt.)
{ "BOUKENJIMA2", bgbT3 }, // unofficial ("ADVENTURE ISLAND" alt.)
{ "BOUKENJIMA3", bgbGQ }, // unofficial ("ADVENTUREISLAND2" alt.)
{ "BOUKENJIMA2", bgbT3 }, // unofficial (BGB - "ADVENTURE ISLAND" alt.)
{ "BOUKENJIMA3", bgbGQ }, // unofficial (BGB - "ADVENTUREISLAND2" alt.)
{ "BOY AND BLOB GB1", p512 },
{ "BOY AND BLOB GB2", p512 },
{ "BT2RAGNAROKWORLD", p312 },
{ "CASTLEVANIA ADVE", bgbCV }, // unofficial
{ "CASTLEVANIA ADVE", bgbCV }, // unofficial (BGB)
{ "CENTIPEDE", p31C }, // unofficial ("MILLI/CENTI/PEDE" alt.)
{ "DEFENDER/JOUST", p50F },
{ "DMG FOOTBALL", p30E },
@@ -757,7 +790,7 @@ static const GbcPaletteEntry gbcTitlePalettes[] = {
{ "DONKEYKONGLAND 2", p50C },
{ "DONKEYKONGLAND 3", p50C },
{ "DONKEYKONGLAND95", p501 },
{ "DORAKYURADENSE", bgbCV }, // unofficial ("CASTLEVANIA ADVE" alt.)
{ "DORAKYURADENSE", bgbCV }, // unofficial (BGB - "CASTLEVANIA ADVE" alt.)
{ "DR.MARIO", p20B },
{ "DYNABLASTER", p30F },
{ "ELITE SOCCER", p502 }, // unofficial ("SOCCER" alt.)
@@ -871,18 +904,20 @@ static const GbcPaletteEntry gbcTitlePalettes[] = {
};
static const GbcPaletteEntry sgbTitlePalettes[] = {
{ "ALLEY WAY", sgb3F },
{ "BALLOON KID", sgb1A }, // unofficial ("BALLôôN KID" alt.)
{ "ALLEY WAY", sgbAW }, // unofficial improvement by nensondubois, really sgb3F
{ "ARNE'SMARIOLAND", sgb1F }, // homebrew (Arne's Unnamed Graphics Hack)
{ "BALLôôN KID", sgb1A },
{ "BALLOON KID", sgb1A }, // unofficial ("BALLôôN KID" alt.)
{ "BASEBALL", sgb2G },
{ "CASINO FUNPAK", sgb1A }, // unofficial (Nintendo Power Issue #67)
{ "COOL SPOT", sgbQP }, // unofficial (Nintendo Power Issue #63)
{ "CONTRA ALIEN WAR", sgb1F }, // unofficial (Nintendo Power Issue #66)
{ "CONTRA SPIRITS", sgb1F }, // unofficial ("CONTRA ALIEN WAR" alt.)
{ "COOL SPOT", sgbQP }, // unofficial (Nintendo Power Issue #63)
{ "CUTTHROAT ISLAND", sgb3E }, // unofficial (Nintendo Power Issue #82)
{ "DMG FOOTBALL", sgb4B }, // unofficial (nensondubois)
{ "DONKEY KONG", sgbQD }, // unofficial (TheWolfBunny - Donkey Kong '94')
{ "DR.MARIO", sgb3B },
{ "F1RACE", sgb4B }, // unofficial improvement, really sgb4F
{ "F1RACE", sgb4B }, // unofficial improvement by nensondubois, really sgb4F
{ "FRANK THOMAS BB", sgb1B }, // unofficial (Nintendo Power Issue #80)
{ "GBWARS", sgb3E },
{ "GBWARST", sgb3E }, // unofficial ("GBWARS" alt.)
@@ -900,11 +935,11 @@ static const GbcPaletteEntry sgbTitlePalettes[] = {
{ "LUNAR CHASE", sgb4D }, // unofficial ("X" alt.)
{ "MARIO & YOSHI", sgb2D },
{ "MARIOLAND2", sgb3D },
{ "MEGA MAN 2", sgbWM }, // unofficial (SGB)
{ "MEGA MAN 2", sgbWM }, // unofficial (SGB)
{ "MEGAMAN", sgbWM }, // unofficial (SGB)
{ "MEGAMAN3", sgbWM }, // unofficial (SGB)
{ "MEGAMAN3", sgbWM }, // unofficial (SGB)
{ "MEGAMAN4", sgbWM }, // unofficial (SGB)
{ "MEGAMAN5", sgbWM }, // Super Game Boy
{ "MEGAMAN5", sgbWM }, // unofficial (TheWolfBunny - Mega Man World V)
{ "METROID2", sgb4G },
{ "MORTAL KOMBAT", sgb4D }, // unofficial ("MORTAL KOMBAT II" alt.)
{ "MORTAL KOMBAT 3", sgb1B }, // unofficial (Nintendo Power Issue #79)
@@ -926,8 +961,11 @@ static const GbcPaletteEntry sgbTitlePalettes[] = {
{ "ROCKMAN WORLD2", sgbWM }, // unofficial (SGB)
{ "ROCKMANWORLD3", sgbWM }, // unofficial (SGB)
{ "ROCKMANWORLD4", sgbWM }, // unofficial (SGB)
{ "ROCKMANWORLD5", sgbWM }, // Super Game Boy
{ "RVT", sgb4B }, // unofficial (Nintendo Power Issue #63)
{ "ROCKMANWORLD5", sgbWM }, // unofficial (TheWolfBunny - Rockman World V)
{ "RVT", sgb4B }, // unofficial (Nintendo Power Issue #63 - Robocop Versus The Terminator)
{ "SAGA", vcSaGa }, // unofficial (Collection of SaGa: Final Fantasy Legend)
{ "SAGA2", vcSaGa }, // unofficial (Collection of SaGa: Final Fantasy Legend)
{ "SAGA3", vcSaGa }, // unofficial (Collection of SaGa: Final Fantasy Legend)
{ "SOLARSTRIKER", sgb1G },
{ "SPACE INVADERS", sgb4D }, // unofficial (Nintendo Power Issue #62)
{ "SUPER MARIOLAND", sgb1F },
@@ -937,6 +975,7 @@ static const GbcPaletteEntry sgbTitlePalettes[] = {
{ "TEEN JEOPARDY!", sgb2F }, // unofficial ("JEOPARDY SPORTS" alt.)
{ "TENNIS", sgb3G },
{ "TETRIS", sgb3A },
{ "TETRIS ATTACK", sgbAYL }, // unofficial (nensondubois)
{ "TETRIS FLASH", sgb2B }, // unofficial ("TETRIS2" alt.)
{ "TETRIS2", sgb2B }, // unofficial (nensondubois)
{ "THE GETAWAY", sgb1B }, // unofficial (Nintendo Power Issue #80)
@@ -949,8 +988,9 @@ static const GbcPaletteEntry sgbTitlePalettes[] = {
{ "YOGIS GOLDRUSH", sgb3B }, // unofficial (Nintendo Power Issue #65)
{ "YOSHI'S COOKIE", sgb1D },
{ "YOSSY NO COOKIE", sgb1D },
{ "YOSSY NO PANEPON", sgbAYL }, // unofficial "Tetris Attack" alt. (nensondubois)
{ "YOSSY NO TAMAGO", sgb2D },
{ "ZELDA", sgbZL } // unofficial (DX alt.)
{ "ZELDA", sgbZL } // unofficial (TheWolfBunny - The Legend of Zelda: Link's Awakening DX)
};
static inline std::size_t gbcDirPalettesSize() { return (sizeof gbcDirPalettes) / (sizeof gbcDirPalettes[0]); }