From aac30c72d3cf01cc495053a1101aa00ec266e454 Mon Sep 17 00:00:00 2001 From: retro-wertz Date: Thu, 18 Jul 2019 18:07:00 +0800 Subject: [PATCH] Add GB Color Correction core option --- src/libretro/libretro.cpp | 14 ++++++++++++++ src/libretro/libretro_core_options.h | 11 +++++++++++ 2 files changed, 25 insertions(+) diff --git a/src/libretro/libretro.cpp b/src/libretro/libretro.cpp index 3bd1f343..8cccc5a8 100644 --- a/src/libretro/libretro.cpp +++ b/src/libretro/libretro.cpp @@ -187,6 +187,11 @@ static void set_gbPalette(void) gbPalette[i] = pal[i]; } +static void set_gbColorCorrection(int value) +{ + gbColorOption = value; +} + extern int gbRomType; // gets type from header 0x147 extern int gbBattery; // enabled when gbRamSize != 0 @@ -1194,6 +1199,15 @@ static void update_variables(bool startup) if (lastpal != current_gbPalette) set_gbPalette(); } + + var.key = "vbam_gbcoloroption"; + var.value = NULL; + + if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value) + { + int val = (!strcmp(var.value, "enabled")) ? 1 : 0; + set_gbColorCorrection(val); + } } // System analog stick range is -0x7fff to 0x7fff diff --git a/src/libretro/libretro_core_options.h b/src/libretro/libretro_core_options.h index a522bcef..9fdd90c3 100644 --- a/src/libretro/libretro_core_options.h +++ b/src/libretro/libretro_core_options.h @@ -145,6 +145,17 @@ struct retro_core_option_definition option_defs_us[] = { }, "disabled" }, + { + "vbam_gbcoloroption", + "(GB) Color Correction", + "Applies color correction which fixes colors in some games games.", + { + { "disabled", NULL }, + { "enabled", NULL }, + { NULL, NULL }, + }, + "disabled" + }, { "vbam_turboenable", "Enable Turbo Buttons",