Merge pull request #351 from SindenLightgun/master
[pcsx_rearmed.git] / frontend / libretro_core_options.h
index f0bd902..0c0634f 100644 (file)
@@ -7,6 +7,28 @@
 #include <libretro.h>
 #include <retro_inline.h>
 
+#ifndef HAVE_NO_LANGEXTRA
+#include "libretro_core_options_intl.h"
+#endif
+
+/*
+ ********************************
+ * VERSION: 1.3
+ ********************************
+ *
+ * - 1.3: Move translations to libretro_core_options_intl.h
+ *        - libretro_core_options_intl.h includes BOM and utf-8
+ *          fix for MSVC 2010-2013
+ *        - Added HAVE_NO_LANGEXTRA flag to disable translations
+ *          on platforms/compilers without BOM support
+ * - 1.2: Use core options v1 interface when
+ *        RETRO_ENVIRONMENT_GET_CORE_OPTIONS_VERSION is >= 1
+ *        (previously required RETRO_ENVIRONMENT_GET_CORE_OPTIONS_VERSION == 1)
+ * - 1.1: Support generation of core options v0 retro_core_option_value
+ *        arrays containing options with a single value
+ * - 1.0: First commit
+*/
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -27,14 +49,6 @@ extern "C" {
  *   frontend language definition
  */
 
-#ifdef HAVE_PRE_ARMV7
-#define PSX_CLOCK_DEFAULT "50"
-#define PSX_CLOCK_LABEL "Overclock or underclock the PSX clock. Default is 50"
-#else
-#define PSX_CLOCK_DEFAULT "57"
-#define PSX_CLOCK_LABEL "Overclock or underclock the PSX clock. Default is 57"
-#endif
-
 struct retro_core_option_definition option_defs_us[] = {
    {
       "pcsx_rearmed_frameskip",
@@ -45,7 +59,7 @@ struct retro_core_option_definition option_defs_us[] = {
          { "1", NULL },
          { "2", NULL },
          { "3", NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "0",
    },
@@ -55,8 +69,8 @@ struct retro_core_option_definition option_defs_us[] = {
       "Allows you to use real bios file (if available) or emulated bios (HLE). Its recommended to use official bios file for better compatibility.",
       {
          { "auto", "auto" },
-         { "HLE", "hle" },
-         { NULL, NULL},
+         { "HLE",  "hle" },
+         { NULL, NULL },
       },
       "auto",
    },
@@ -67,8 +81,8 @@ struct retro_core_option_definition option_defs_us[] = {
       {
          { "auto", "auto" },
          { "NTSC", "ntsc" },
-         { "PAL", "pal" },
-         { NULL, NULL},
+         { "PAL",  "pal" },
+         { NULL, NULL },
       },
       "auto",
    },
@@ -77,9 +91,9 @@ struct retro_core_option_definition option_defs_us[] = {
       "Enable Second Memory Card (Shared)",
       "Enabled the memory card slot 2. This memory card is shared amongst all games.",
       {
-         { "disabled",  NULL },
+         { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "disabled",
    },
@@ -88,12 +102,13 @@ struct retro_core_option_definition option_defs_us[] = {
       "Pad 1 Type",
       "Pad type for player 1",
       {
-         { "standard", NULL },
-         { "analog", NULL },
+         { "standard",  NULL },
+         { "analog",    NULL },
          { "dualshock", NULL },
-         { "negcon", NULL },
-         { "none", NULL },
-         { NULL, NULL},
+         { "negcon",    NULL },
+         { "guncon",    NULL },
+         { "none",      NULL },
+         { NULL, NULL },
       },
       "standard",
    },
@@ -102,12 +117,13 @@ struct retro_core_option_definition option_defs_us[] = {
       "Pad 2 Type",
       "Pad type for player 2",
       {
-         { "standard", NULL },
-         { "analog", NULL },
+         { "standard",  NULL },
+         { "analog",    NULL },
          { "dualshock", NULL },
-         { "negcon", NULL },
-         { "none", NULL },
-         { NULL, NULL},
+         { "negcon",    NULL },
+         { "guncon",    NULL },
+         { "none",      NULL },
+         { NULL, NULL },
       },
       "standard",
    },
@@ -116,12 +132,13 @@ struct retro_core_option_definition option_defs_us[] = {
       "Pad 3 Type",
       "Pad type for player 3",
       {
-         { "standard", NULL },
-         { "analog", NULL },
+         { "standard",  NULL },
+         { "analog",    NULL },
          { "dualshock", NULL },
-         { "negcon", NULL },
-         { "none", NULL },
-         { NULL, NULL},
+         { "negcon",    NULL },
+         { "guncon",    NULL },
+         { "none",      NULL },
+         { NULL, NULL },
       },
       "none",
    },
@@ -130,12 +147,13 @@ struct retro_core_option_definition option_defs_us[] = {
       "Pad 4 Type",
       "Pad type for player 4",
       {
-         { "standard", NULL },
-         { "analog", NULL },
+         { "standard",  NULL },
+         { "analog",    NULL },
          { "dualshock", NULL },
-         { "negcon", NULL },
-         { "none", NULL },
-         { NULL, NULL},
+         { "negcon",    NULL },
+         { "guncon",    NULL },
+         { "none",      NULL },
+         { NULL, NULL },
       },
       "none",
    },
@@ -144,12 +162,13 @@ struct retro_core_option_definition option_defs_us[] = {
       "Pad 5 Type",
       "Pad type for player 5",
       {
-         { "standard", NULL },
-         { "analog",  NULL },
+         { "standard",  NULL },
+         { "analog",    NULL },
          { "dualshock", NULL },
-         { "negcon", NULL },
-         { "none", NULL },
-         { NULL, NULL},
+         { "negcon",    NULL },
+         { "guncon",    NULL },
+         { "none",      NULL },
+         { NULL, NULL },
       },
       "none",
    },{
@@ -157,12 +176,13 @@ struct retro_core_option_definition option_defs_us[] = {
       "Pad 6 Type",
       "Pad type for player 6",
       {
-         { "standard", NULL },
-         { "analog",  NULL },
+         { "standard",  NULL },
+         { "analog",    NULL },
          { "dualshock", NULL },
-         { "negcon", NULL },
-         { "none", NULL },
-         { NULL, NULL},
+         { "negcon",    NULL },
+         { "guncon",    NULL },
+         { "none",      NULL },
+         { NULL, NULL },
       },
       "none",
    },{
@@ -170,12 +190,13 @@ struct retro_core_option_definition option_defs_us[] = {
       "Pad 7 Type",
       "Pad type for player 7",
       {
-         { "standard", NULL },
-         { "analog",  NULL },
+         { "standard",  NULL },
+         { "analog",    NULL },
          { "dualshock", NULL },
-         { "negcon", NULL },
-         { "none", NULL },
-         { NULL, NULL},
+         { "negcon",    NULL },
+         { "guncon",    NULL },
+         { "none",      NULL },
+         { NULL, NULL },
       },
       "none",
    },{
@@ -183,12 +204,13 @@ struct retro_core_option_definition option_defs_us[] = {
       "Pad 8 Type",
       "Pad type for player 8",
       {
-         { "standard", NULL },
-         { "analog",  NULL },
+         { "standard",  NULL },
+         { "analog",    NULL },
          { "dualshock", NULL },
-         { "negcon", NULL },
-         { "none", NULL },
-         { NULL, NULL},
+         { "negcon",    NULL },
+         { "guncon",    NULL },
+         { "none",      NULL },
+         { NULL, NULL },
       },
       "none",
    },
@@ -197,10 +219,10 @@ struct retro_core_option_definition option_defs_us[] = {
       "Multitap 1",
       "Enables/Disables multitap on port 1, allowing upto 5 players in games that permit it.",
       {
-         { "auto", NULL },
+         { "auto",     NULL },
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "auto",
    },
@@ -209,10 +231,10 @@ struct retro_core_option_definition option_defs_us[] = {
       "Multitap 2",
       "Enables/Disables multitap on port 2, allowing up to 8 players in games that permit it. Multitap 1 has to be enabled for this to work.",
       {
-         { "auto", NULL },
-         { "disabled",  NULL },
-         { "enabled",   NULL },
-         { NULL, NULL},
+         { "auto",     NULL },
+         { "disabled", NULL },
+         { "enabled",  NULL },
+         { NULL, NULL },
       },
       "auto",
    },
@@ -228,7 +250,7 @@ struct retro_core_option_definition option_defs_us[] = {
          { "20", NULL },
          { "25", NULL },
          { "30", NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "0",
    },
@@ -237,10 +259,10 @@ struct retro_core_option_definition option_defs_us[] = {
       "NegCon Twist Response",
       "Specifies the analog response when using a RetroPad left analog stick to simulate the 'twist' action of emulated neGcon Controllers.",
       {
-         { "linear", NULL },
+         { "linear",    NULL },
          { "quadratic", NULL },
-         { "cubic", NULL },
-         { NULL, NULL},
+         { "cubic",     NULL },
+         { NULL, NULL },
       },
       "linear",
    },
@@ -251,10 +273,254 @@ struct retro_core_option_definition option_defs_us[] = {
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "enabled",
    },
+   {
+      "pcsx_rearmed_gunconadjustx",
+      "Guncon Adjust X",
+      "When using Guncon mode, you can override aim in emulator if shots misaligned, this applies an increment on the x axis.",
+      {
+         { "0", NULL },
+         { "-25", NULL },
+         { "-24", NULL },
+         { "-23", NULL },
+         { "-22", NULL },
+         { "-21", NULL },
+         { "-20", NULL },
+         { "-19", NULL },
+         { "-18", NULL },
+         { "-17", NULL },
+         { "-16", NULL },
+         { "-15", NULL },
+         { "-14", NULL },
+         { "-13", NULL },
+         { "-12", NULL },
+         { "-11", NULL },
+         { "-10", NULL },
+         { "-09", NULL },
+         { "-08", NULL },
+         { "-07", NULL },
+         { "-06", NULL },
+         { "-05", NULL },
+         { "-04", NULL },
+         { "-03", NULL },
+         { "-02", NULL },
+         { "-01", NULL },
+         { "00", NULL },
+         { "01", NULL },
+         { "02", NULL },
+         { "03", NULL },
+         { "04", NULL },
+         { "05", NULL },
+         { "06", NULL },
+         { "07", NULL },
+         { "08", NULL },
+         { "09", NULL },
+         { "10", NULL },
+         { "11", NULL },
+         { "12", NULL },
+         { "13", NULL },
+         { "14", NULL },
+         { "15", NULL },
+         { "16", NULL },
+         { "17", NULL },
+         { "18", NULL },
+         { "19", NULL },
+         { "20", NULL },
+         { "21", NULL },
+         { "22", NULL },
+         { "23", NULL },
+         { "24", NULL },
+         { "25", NULL },
+         { NULL, NULL },
+      },
+      "0",
+   },
+   {
+      "pcsx_rearmed_gunconadjusty",
+      "Guncon Adjust Y",
+      "When using Guncon mode, you can override aim in emulator if shots misaligned, this applies an increment on the y axis.",
+      {
+         { "0", NULL },
+         { "-25", NULL },
+         { "-24", NULL },
+         { "-23", NULL },
+         { "-22", NULL },
+         { "-21", NULL },
+         { "-20", NULL },
+         { "-19", NULL },
+         { "-18", NULL },
+         { "-17", NULL },
+         { "-16", NULL },
+         { "-15", NULL },
+         { "-14", NULL },
+         { "-13", NULL },
+         { "-12", NULL },
+         { "-11", NULL },
+         { "-10", NULL },
+         { "-09", NULL },
+         { "-08", NULL },
+         { "-07", NULL },
+         { "-06", NULL },
+         { "-05", NULL },
+         { "-04", NULL },
+         { "-03", NULL },
+         { "-02", NULL },
+         { "-01", NULL },
+         { "00", NULL },
+         { "01", NULL },
+         { "02", NULL },
+         { "03", NULL },
+         { "04", NULL },
+         { "05", NULL },
+         { "06", NULL },
+         { "07", NULL },
+         { "08", NULL },
+         { "09", NULL },
+         { "10", NULL },
+         { "11", NULL },
+         { "12", NULL },
+         { "13", NULL },
+         { "14", NULL },
+         { "15", NULL },
+         { "16", NULL },
+         { "17", NULL },
+         { "18", NULL },
+         { "19", NULL },
+         { "20", NULL },
+         { "21", NULL },
+         { "22", NULL },
+         { "23", NULL },
+         { "24", NULL },
+         { "25", NULL },
+         { NULL, NULL },
+      },
+      "0",
+   },
+   {
+      "pcsx_rearmed_gunconadjustratiox",
+      "Guncon Adjust Ratio X",
+      "When using Guncon mode, you can override aim in emulator if shots misaligned, this applies a ratio on the x axis.",
+      {
+         { "1", NULL },
+         { "0.75", NULL },
+         { "0.76", NULL },
+         { "0.77", NULL },
+         { "0.78", NULL },
+         { "0.79", NULL },
+         { "0.80", NULL },
+         { "0.81", NULL },
+         { "0.82", NULL },
+         { "0.83", NULL },
+         { "0.84", NULL },
+         { "0.85", NULL },
+         { "0.86", NULL },
+         { "0.87", NULL },
+         { "0.88", NULL },
+         { "0.89", NULL },
+         { "0.90", NULL },
+         { "0.91", NULL },
+         { "0.92", NULL },
+         { "0.93", NULL },
+         { "0.94", NULL },
+         { "0.95", NULL },
+         { "0.96", NULL },
+         { "0.97", NULL },
+         { "0.98", NULL },
+         { "0.99", NULL },
+         { "1.00", NULL },
+         { "1.01", NULL },
+         { "1.02", NULL },
+         { "1.03", NULL },
+         { "1.04", NULL },
+         { "1.05", NULL },
+         { "1.06", NULL },
+         { "1.07", NULL },
+         { "1.08", NULL },
+         { "1.09", NULL },
+         { "1.10", NULL },
+         { "1.11", NULL },
+         { "1.12", NULL },
+         { "1.13", NULL },
+         { "1.14", NULL },
+         { "1.15", NULL },
+         { "1.16", NULL },
+         { "1.17", NULL },
+         { "1.18", NULL },
+         { "1.19", NULL },
+         { "1.20", NULL },
+         { "1.21", NULL },
+         { "1.22", NULL },
+         { "1.23", NULL },
+         { "1.24", NULL },
+         { "1.25", NULL },
+         { NULL, NULL },
+      },
+      "1",
+   },
+   {
+      "pcsx_rearmed_gunconadjustratioy",
+      "Guncon Adjust Ratio Y",
+      "When using Guncon mode, you can override aim in emulator if shots misaligned, this applies a ratio on the y axis.",
+      {
+         { "1", NULL },
+         { "0.75", NULL },
+         { "0.76", NULL },
+         { "0.77", NULL },
+         { "0.78", NULL },
+         { "0.79", NULL },
+         { "0.80", NULL },
+         { "0.81", NULL },
+         { "0.82", NULL },
+         { "0.83", NULL },
+         { "0.84", NULL },
+         { "0.85", NULL },
+         { "0.86", NULL },
+         { "0.87", NULL },
+         { "0.88", NULL },
+         { "0.89", NULL },
+         { "0.90", NULL },
+         { "0.91", NULL },
+         { "0.92", NULL },
+         { "0.93", NULL },
+         { "0.94", NULL },
+         { "0.95", NULL },
+         { "0.96", NULL },
+         { "0.97", NULL },
+         { "0.98", NULL },
+         { "0.99", NULL },
+         { "1.00", NULL },
+         { "1.01", NULL },
+         { "1.02", NULL },
+         { "1.03", NULL },
+         { "1.04", NULL },
+         { "1.05", NULL },
+         { "1.06", NULL },
+         { "1.07", NULL },
+         { "1.08", NULL },
+         { "1.09", NULL },
+         { "1.10", NULL },
+         { "1.11", NULL },
+         { "1.12", NULL },
+         { "1.13", NULL },
+         { "1.14", NULL },
+         { "1.15", NULL },
+         { "1.16", NULL },
+         { "1.17", NULL },
+         { "1.18", NULL },
+         { "1.19", NULL },
+         { "1.20", NULL },
+         { "1.21", NULL },
+         { "1.22", NULL },
+         { "1.23", NULL },
+         { "1.24", NULL },
+         { "1.25", NULL },
+         { NULL, NULL },
+      },
+      "1",
+   },
    {
       "pcsx_rearmed_dithering",
       "Enable Dithering",
@@ -262,7 +528,7 @@ struct retro_core_option_definition option_defs_us[] = {
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "enabled",
    },
@@ -275,89 +541,97 @@ struct retro_core_option_definition option_defs_us[] = {
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "enabled",
    },
    {
       "pcsx_rearmed_psxclock",
       "PSX CPU Clock",
-      PSX_CLOCK_LABEL,
+#ifdef HAVE_PRE_ARMV7
+      "Overclock or underclock the PSX clock. Default is 50",
+#else
+      "Overclock or underclock the PSX clock. Default is 57",
+#endif
       {
-         { "30", NULL },
-         { "31", NULL },
-         { "32", NULL },
-         { "33", NULL },
-         { "34", NULL },
-         { "35", NULL },
-         { "36", NULL },
-         { "37", NULL },
-         { "38", NULL },
-         { "39", NULL },
-         { "40", NULL },
-         { "41", NULL },
-         { "42", NULL },
-         { "43", NULL },
-         { "44", NULL },
-         { "45", NULL },
-         { "46", NULL },
-         { "47", NULL },
-         { "48", NULL },
-         { "49", NULL },
-         { "50", NULL },
-         { "51", NULL },
-         { "52", NULL },
-         { "53", NULL },
-         { "54", NULL },
-         { "55", NULL },
-         { "56", NULL },
-         { "57", NULL },
-         { "58", NULL },
-         { "59", NULL },
-         { "60", NULL },
-         { "61", NULL },
-         { "62", NULL },
-         { "63", NULL },
-         { "64", NULL },
-         { "65", NULL },
-         { "66", NULL },
-         { "67", NULL },
-         { "68", NULL },
-         { "69", NULL },
-         { "70", NULL },
-         { "71", NULL },
-         { "72", NULL },
-         { "73", NULL },
-         { "74", NULL },
-         { "75", NULL },
-         { "76", NULL },
-         { "77", NULL },
-         { "78", NULL },
-         { "79", NULL },
-         { "80", NULL },
-         { "81", NULL },
-         { "82", NULL },
-         { "83", NULL },
-         { "84", NULL },
-         { "85", NULL },
-         { "86", NULL },
-         { "87", NULL },
-         { "88", NULL },
-         { "89", NULL },
-         { "90", NULL },
-         { "91", NULL },
-         { "92", NULL },
-         { "93", NULL },
-         { "94", NULL },
-         { "95", NULL },
-         { "96", NULL },
-         { "97", NULL },
-         { "98", NULL },
-         { "99", NULL },
+         { "30",  NULL },
+         { "31",  NULL },
+         { "32",  NULL },
+         { "33",  NULL },
+         { "34",  NULL },
+         { "35",  NULL },
+         { "36",  NULL },
+         { "37",  NULL },
+         { "38",  NULL },
+         { "39",  NULL },
+         { "40",  NULL },
+         { "41",  NULL },
+         { "42",  NULL },
+         { "43",  NULL },
+         { "44",  NULL },
+         { "45",  NULL },
+         { "46",  NULL },
+         { "47",  NULL },
+         { "48",  NULL },
+         { "49",  NULL },
+         { "50",  NULL },
+         { "51",  NULL },
+         { "52",  NULL },
+         { "53",  NULL },
+         { "54",  NULL },
+         { "55",  NULL },
+         { "56",  NULL },
+         { "57",  NULL },
+         { "58",  NULL },
+         { "59",  NULL },
+         { "60",  NULL },
+         { "61",  NULL },
+         { "62",  NULL },
+         { "63",  NULL },
+         { "64",  NULL },
+         { "65",  NULL },
+         { "66",  NULL },
+         { "67",  NULL },
+         { "68",  NULL },
+         { "69",  NULL },
+         { "70",  NULL },
+         { "71",  NULL },
+         { "72",  NULL },
+         { "73",  NULL },
+         { "74",  NULL },
+         { "75",  NULL },
+         { "76",  NULL },
+         { "77",  NULL },
+         { "78",  NULL },
+         { "79",  NULL },
+         { "80",  NULL },
+         { "81",  NULL },
+         { "82",  NULL },
+         { "83",  NULL },
+         { "84",  NULL },
+         { "85",  NULL },
+         { "86",  NULL },
+         { "87",  NULL },
+         { "88",  NULL },
+         { "89",  NULL },
+         { "90",  NULL },
+         { "91",  NULL },
+         { "92",  NULL },
+         { "93",  NULL },
+         { "94",  NULL },
+         { "95",  NULL },
+         { "96",  NULL },
+         { "97",  NULL },
+         { "98",  NULL },
+         { "99",  NULL },
          { "100", NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
-      PSX_CLOCK_DEFAULT,
+#ifdef HAVE_PRE_ARMV7
+      "50",
+#else
+      "57",
+#endif
    },
 #endif /* DRC_DISABLE */
 
@@ -369,7 +643,7 @@ struct retro_core_option_definition option_defs_us[] = {
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "disabled",
    },
@@ -380,7 +654,7 @@ struct retro_core_option_definition option_defs_us[] = {
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "disabled",
    },
@@ -391,7 +665,7 @@ struct retro_core_option_definition option_defs_us[] = {
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "disabled",
    },
@@ -404,7 +678,7 @@ struct retro_core_option_definition option_defs_us[] = {
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "enabled",
    },
@@ -415,7 +689,7 @@ struct retro_core_option_definition option_defs_us[] = {
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "disabled",
    },
@@ -429,115 +703,117 @@ struct retro_core_option_definition option_defs_us[] = {
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "disabled",
    },
    {
-      "pcsx_rearmed_gpu_peops_fix_0",
+      "pcsx_rearmed_gpu_peops_odd_even_bit",
       "(GPU) Odd/Even Bit Hack",
       "Needed for Chrono Cross.",
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "disabled",
    },
    {
-      "pcsx_rearmed_gpu_peops_fix_1",
+      "pcsx_rearmed_gpu_peops_expand_screen_width",
       "(GPU) Expand Screen Width",
       "Capcom fighting games",
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "disabled",
    },
    {
-      "pcsx_rearmed_gpu_peops_fix_2",
+      "pcsx_rearmed_gpu_peops_ignore_brightness",
       "(GPU) Ignore Brightness Color",
       "Black screens in Lunar Silver Star Story games",
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "disabled",
    },
    {
-      "pcsx_rearmed_gpu_peops_fix_3",
+      "pcsx_rearmed_gpu_peops_disable_coord_check",
       "(GPU) Disable Coordinate Check",
       "Compatibility mode",
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "disabled",
    },
    {
-      "pcsx_rearmed_gpu_peops_fix_6",
+      "pcsx_rearmed_gpu_peops_lazy_screen_update",
       "(GPU) Lazy Screen Update",
       "Pandemonium 2",
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "disabled",
    },
    {
-      "pcsx_rearmed_gpu_peops_fix_7",
+      "pcsx_rearmed_gpu_peops_old_frame_skip",
       "(GPU) Old Frame Skipping",
       "Skip every second frame",
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "enabled",
    },
    {
-      "pcsx_rearmed_gpu_peops_fix_8",
+      "pcsx_rearmed_gpu_peops_repeated_triangles",
       "(GPU) Repeated Flat Tex Triangles",
       "Needed by Star Wars: Dark Forces",
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "disabled",
    },
    {
-      "pcsx_rearmed_gpu_peops_fix_9",
+      "pcsx_rearmed_gpu_peops_quads_with_triangles",
       "(GPU) Draw Quads with Triangles",
       "Better g-colors, worse textures",
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "disabled",
    },
    {
-      "pcsx_rearmed_gpu_peops_fix_10",
+      "pcsx_rearmed_gpu_peops_fake_busy_state",
       "(GPU) Fake 'Gpu Busy' States",
       "Toggle busy flags after drawing",
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "disabled",
    },
 #endif
 
+    /* GPU UNAI Advanced Options */
+#ifdef GPU_UNAI
    {
-      "pcsx_rearmed_show_bios_bootlogo",
-      "Show Bios Bootlogo",
-      "When enabled, shows the PlayStation logo when starting or resetting. (Breaks some games).",
+      "pcsx_rearmed_show_gpu_unai_settings",
+      "Advance GPU UNAI/PCSX4All Settings",
+      "Shows or hides advanced gpu settings. A core restart might be needed for settings to take effect. NOTE: Quick Menu must be toggled for this setting to take effect.",
       {
          { "disabled", NULL },
          { "enabled",  NULL },
@@ -546,67 +822,19 @@ struct retro_core_option_definition option_defs_us[] = {
       "disabled",
    },
    {
-      "pcsx_rearmed_spu_reverb",
-      "Sound Reverb",
-      "Enables or disables audio reverb effect.",
-      {
-         { "disabled", NULL },
-         { "enabled",  NULL },
-         { NULL, NULL},
-      },
-      "enabled",
-   },
-   {
-      "pcsx_rearmed_spu_interpolation",
-      "Sound Interpolation",
-      NULL,
-      {
-         { "simple", NULL },
-         { "gaussian", NULL },
-         { "cubic", NULL },
-         { "off", NULL },
-         { NULL, NULL},
-      },
-      "simple",
-   },
-   {
-      "pcsx_rearmed_idiablofix",
-      "Diablo Music Fix",
-      NULL,
-      {
-         { "disabled", NULL },
-         { "enabled",  NULL },
-         { NULL, NULL},
-      },
-      "disabled",
-   },
-   {
-      "pcsx_rearmed_pe2_fix",
-      "Parasite Eve 2/Vandal Hearts 1/2 Fix",
-      NULL,
-      {
-         { "disabled", NULL },
-         { "enabled",  NULL },
-         { NULL, NULL},
-      },
-      "disabled",
-   },
-   {
-      "pcsx_rearmed_inuyasha_fix",
-      "InuYasha Sengoku Battle Fix",
+      "pcsx_rearmed_gpu_unai_blending",
+      "(GPU) Enable Blending",
       NULL,
       {
          { "disabled", NULL },
          { "enabled",  NULL },
          { NULL, NULL},
       },
-      "disabled",
+      "enabled",
    },
-
-   /* ADVANCED OPTIONS */
    {
-      "pcsx_rearmed_noxadecoding",
-      "XA Decoding",
+      "pcsx_rearmed_gpu_unai_lighting",
+      "(GPU) Enable Lighting",
       NULL,
       {
          { "disabled", NULL },
@@ -616,8 +844,8 @@ struct retro_core_option_definition option_defs_us[] = {
       "enabled",
    },
    {
-      "pcsx_rearmed_nocdaudio",
-      "CD Audio",
+      "pcsx_rearmed_gpu_unai_fast_lighting",
+      "(GPU) Enable Fast Lighting",
       NULL,
       {
          { "disabled", NULL },
@@ -626,23 +854,10 @@ struct retro_core_option_definition option_defs_us[] = {
       },
       "enabled",
    },
-
-#ifndef DRC_DISABLE
    {
-      "pcsx_rearmed_nosmccheck",
-      "(Speed Hack) Disable SMC Checks",
-      "Will cause crashes when loading, break memcards.",
-      {
-         { "disabled", NULL },
-         { "enabled",  NULL },
-         { NULL, NULL},
-      },
-      "disabled",
-   },
-   {
-      "pcsx_rearmed_gteregsunneeded",
-      "(Speed Hack) Assume GTE Regs Unneeded",
-      "May cause graphical glitches.",
+      "pcsx_rearmed_gpu_unai_ilace_force",
+      "(GPU) Enable Forced Interlace",
+      NULL,
       {
          { "disabled", NULL },
          { "enabled",  NULL },
@@ -651,9 +866,9 @@ struct retro_core_option_definition option_defs_us[] = {
       "disabled",
    },
    {
-      "pcsx_rearmed_nogteflags",
-      "(Speed Hack) Disable GTE Flags",
-      "Will cause graphical glitches.",
+      "pcsx_rearmed_gpu_unai_pixel_skip",
+      "(GPU) Enable Pixel Skip",
+      NULL,
       {
          { "disabled", NULL },
          { "enabled",  NULL },
@@ -661,538 +876,147 @@ struct retro_core_option_definition option_defs_us[] = {
       },
       "disabled",
    },
-#endif /* DRC_DISABLE */
-
-   { NULL, NULL, NULL, { {0} }, NULL },
-};
-
-/* RETRO_LANGUAGE_JAPANESE */
-
-/* RETRO_LANGUAGE_FRENCH */
-
-/* RETRO_LANGUAGE_SPANISH */
-
-/* RETRO_LANGUAGE_GERMAN */
+#endif /* GPU UNAI Advanced Settings */
 
-/* RETRO_LANGUAGE_ITALIAN */
-
-/* RETRO_LANGUAGE_DUTCH */
-
-/* RETRO_LANGUAGE_PORTUGUESE_BRAZIL */
-
-/* RETRO_LANGUAGE_PORTUGUESE_PORTUGAL */
-
-/* RETRO_LANGUAGE_RUSSIAN */
-
-/* RETRO_LANGUAGE_KOREAN */
-
-/* RETRO_LANGUAGE_CHINESE_TRADITIONAL */
-
-/* RETRO_LANGUAGE_CHINESE_SIMPLIFIED */
-
-/* RETRO_LANGUAGE_ESPERANTO */
-
-/* RETRO_LANGUAGE_POLISH */
-
-/* RETRO_LANGUAGE_VIETNAMESE */
-
-/* RETRO_LANGUAGE_ARABIC */
-
-/* RETRO_LANGUAGE_GREEK */
-
-/* RETRO_LANGUAGE_TURKISH */
-
-struct retro_core_option_definition option_defs_tr[] = {
    {
-      "pcsx_rearmed_frameskip",
-      "Kare Atlama",
-      "Görsel pürüzsüzlük pahasına performansı artırmak için ne kadar karenin atlanması gerektiğini seçin.",
-      {
-         { NULL, NULL },
-      },
-      NULL
-   },
-   {
-      "pcsx_rearmed_bios",
-      "BIOS Kullan",
-      "Gerçek bios dosyasını (varsa) veya öykünmüş bios'u (HLE) kullanmanızı sağlar. Daha iyi uyumluluk için resmi bios dosyasını kullanmanız önerilir.",
-      {
-         { "auto", "otomatik" },
-         { "HLE", "hle" },
-         { NULL, NULL},
-      },
-      "auto",
-   },
-   {
-      "pcsx_rearmed_region",
-      "Bölge",
-      "Sistemin hangi bölgeden olduğunu seçin. NTSC için 60 Hz, PAL için 50 Hz.",
-      {
-         { "auto", "otomatik" },
-         { "NTSC", "ntsc" },
-         { "PAL", "pal" },
-         { NULL, NULL},
-      },
-      "auto",
-   },
-   {
-      "pcsx_rearmed_memcard2",
-      "İkinci Bellek Kartını Etkinleştir (Paylaşılan)",
-      "2. Hafıza kartı yuvasını etkinleştirin. Bu hafıza kartı tüm oyunlar arasında paylaşılır.",
-      {
-         { NULL, NULL },
-      },
-      NULL
-   },
-   {
-      "pcsx_rearmed_pad1type",
-      "Kumanda 1 Tipi",
-      "1. Oyuncu için kontrolör tipi",
-      {
-         { "standard", NULL },
-         { "analog", NULL },
-         { "dualshock", NULL },
-         { "negcon", NULL },
-         { "none", "hiçbiri" },
-         { NULL, NULL},
-      },
-      "standard",
-   },
-   {
-      "pcsx_rearmed_pad2type",
-      "Kumanda 2 Tipi",
-      "2. Oyuncu için kontrolör tipi",
-      {
-         { "standard", NULL },
-         { "analog", NULL },
-         { "dualshock", NULL },
-         { "negcon", NULL },
-         { "none", "hiçbiri" },
-         { NULL, NULL},
-      },
-      "standard",
-   },
-   {
-      "pcsx_rearmed_pad3type",
-      "Kumanda 3 Tipi",
-      "3. Oyuncu için kontrolör tipi",
-      {
-         { "standard", NULL },
-         { "analog", NULL },
-         { "dualshock", NULL },
-         { "negcon", NULL },
-         { "none", "hiçbiri" },
-         { NULL, NULL},
-      },
-      "none",
-   },
-   {
-      "pcsx_rearmed_pad4type",
-      "Kumanda 4 Tipi",
-      "4. Oyuncu için kontrolör tipi",
-      {
-         { "standard", NULL },
-         { "analog", NULL },
-         { "dualshock", NULL },
-         { "negcon", NULL },
-         { "none", "hiçbiri" },
-         { NULL, NULL},
-      },
-      "none",
-   },
-   {
-      "pcsx_rearmed_pad5type",
-      "Kumanda 5 Tipi",
-      "5. Oyuncu için kontrolör tipi",
-      {
-         { "standard", NULL },
-         { "analog",  NULL },
-         { "dualshock", NULL },
-         { "negcon", NULL },
-         { "none", "hiçbiri" },
-         { NULL, NULL},
-      },
-      "none",
-   },{
-      "pcsx_rearmed_pad6type",
-      "Kumanda 6 Tipi",
-      "6. Oyuncu için kontrolör tipi",
-      {
-         { "standard", NULL },
-         { "analog",  NULL },
-         { "dualshock", NULL },
-         { "negcon", NULL },
-         { "none", "hiçbiri" },
-         { NULL, NULL},
-      },
-      "none",
-   },{
-      "pcsx_rearmed_pad7type",
-      "Kumanda 7 Tipi",
-      "7. Oyuncu için kontrolör tipi",
-      {
-         { "standard", NULL },
-         { "analog",  NULL },
-         { "dualshock", NULL },
-         { "negcon", NULL },
-         { "none", "hiçbiri" },
-         { NULL, NULL},
-      },
-      "none",
-   },{
-      "pcsx_rearmed_pad8type",
-      "Kumanda 8 Tipi",
-      "8. Oyuncu için kontrolör tipi",
-      {
-         { "standard", NULL },
-         { "analog",  NULL },
-         { "dualshock", NULL },
-         { "negcon", NULL },
-         { "none", "hiçbiri" },
-         { NULL, NULL},
-      },
-      "none",
-   },
-   {
-      "pcsx_rearmed_multitap1",
-      "Multitap 1",
-      "Bağlantı noktası 1'deki multitap'ı etkinleştirir / devre dışı bırakır ve izin veren oyunlarda 5 oyuncuya kadar izin verir.",
+      "pcsx_rearmed_show_bios_bootlogo",
+      "Show Bios Bootlogo",
+      "When enabled, shows the PlayStation logo when starting or resetting. (Breaks some games).",
       {
-         { "auto", "otomatik" },
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
-      },
-      "auto",
-   },
-   {
-      "pcsx_rearmed_multitap2",
-      "Multitap 2",
-      "Bağlantı noktası 2'deki multitap'ı etkinleştirir/devre dışı bırakır ve izin veren oyunlarda 8 oyuncuya kadar izin verir. Bunun çalışması için Multitap 1'in etkinleştirilmesi gerekir.",
-      {
-         { "auto", "otomatik" },
-         { "disabled",  NULL },
-         { "enabled",   NULL },
-         { NULL, NULL},
-      },
-      "auto",
-   },
-   {
-      "pcsx_rearmed_negcon_deadzone",
-      "NegCon Twist Deadzone (Yüzdelik)",
-      "Öykünülmüş neGcon kontrolörünün 'büküm' eylemini simüle ederken RetroPad sol analog çubuğunun ölü bölgesini ayarlar. Sürüklenme/istenmeyen girişi ortadan kaldırmak için kullanılır.",
-      {
-         { NULL, NULL },
-      },
-      NULL
-   },
-   {
-      "pcsx_rearmed_negcon_response",
-      "NegCon Twist Response",
-      "Öykünülmüş neGcon kontrolörünün 'bükümünü' simule etmek için bir RetroPad sol analog çubuğu kullanırken analog cevabını belirtir.",
-      {
-         { NULL, NULL },
-      },
-      NULL
-   },
-   {
-      "pcsx_rearmed_vibration",
-      "Titreşimi Etkinleştir",
-      "Titreşim özelliklerini destekleyen kontrolörler için titreşim geri bildirimini etkinleştirir.",
-      {
-         { NULL, NULL },
-      },
-      NULL
-   },
-   {
-      "pcsx_rearmed_dithering",
-      "Dithering Etkinleştir",
-      "Kapalı ise, PSX'in renk bantlarıyla mücadele etmek için uyguladığı renk taklidi düzenini devre dışı bırakır.",
-      {
-         { NULL, NULL },
-      },
-      NULL
-   },
-
-#ifndef DRC_DISABLE
-   {
-      "pcsx_rearmed_drc",
-      "Dinamik Yeniden Derleyici",
-      "Çekirdeğin dinamik yeniden derleyici veya tercüman(daha yavaş) CPU talimatlarını kullanmasını sağlar.",
-      {
-         { NULL, NULL },
-      },
-      NULL
-   },
-   {
-      "pcsx_rearmed_psxclock",
-      "PSX CPU Saat Hızı",
-      PSX_CLOCK_LABEL,
-      {
-         { NULL, NULL },
-      },
-      NULL
-   },
-#endif /* DRC_DISABLE */
-
-#ifdef __ARM_NEON__
-   {
-      "pcsx_rearmed_neon_interlace_enable",
-      "Interlacing Mode'u etkinleştir",
-      "Sahte tarama çizgileri efektini etkinleştirir.",
-      {
-         { NULL, NULL },
-      },
-      NULL
-   },
-   {
-      "pcsx_rearmed_neon_enhancement_enable",
-      "Geliştirilmiş Çözünürlük (Yavaş)",
-      "Düşük performans pahasına çift çözünürlükte işler.",
-      {
-         { NULL, NULL },
-      },
-      NULL
-   },
-   {
-      "pcsx_rearmed_neon_enhancement_no_main",
-      "Geliştirilmiş Çözünürlük (Speed Hack)",
-      "Geliştirilmiş çözünürlük seçeneği için hız aşırtma(bazı oyunlarda sorun çıkartabilir).",
-      {
-         { NULL, NULL },
-      },
-      NULL
-   },
-#endif /* __ARM_NEON__ */
-
-   {
-      "pcsx_rearmed_duping_enable",
-      "Frame Duping",
-      "Yeni bir veri yoksa, bir hızlandırma, son kareyi yeniden çizer/yeniden kullanır.",
-      {
-         { NULL, NULL },
-      },
-      NULL
-   },
-   {
-      "pcsx_rearmed_display_internal_fps",
-      "Dahili FPS'yi görüntüle",
-      "Etkinleştirildiğinde ekranda saniye başına kareyi gösterir.",
-      {
-         { NULL, NULL },
-      },
-      NULL
-   },
-
-   /* GPU PEOPS OPTIONS */
-#ifdef DRC_DISABLE
-   {
-      "pcsx_rearmed_show_gpu_peops_settings",
-      "Gelişmiş GPU Ayarlarını Göster",
-      "Çeşitli GPU düzeltmelerini etkinleştirin veya devre dışı bırakın. Ayarların etkili olması için core'un yeniden başlatılması gerekebilir. NOT: Bu ayarın etkili olabilmesi için Hızlı Menü’nün değiştirilmesi gerekir.",
-      {
-         { NULL, NULL },
-      },
-      NULL
-   },
-   {
-      "pcsx_rearmed_gpu_peops_fix_0",
-      "(GPU) Odd/Even Bit Hack",
-      "Chrono Cross için gerekli.",
-      {
-         { NULL, NULL },
-      },
-      NULL
-   },
-   {
-      "pcsx_rearmed_gpu_peops_fix_1",
-      "(GPU) Ekran Genişliğini Genişlet",
-      "Capcom dövüş oyunları",
-      {
-         { NULL, NULL },
-      },
-      NULL
-   },
-   {
-      "pcsx_rearmed_gpu_peops_fix_2",
-      "(GPU) Parlaklık Rengini Yoksay",
-      "Lunar Silver Star Story oyunlarında siyah ekran",
-      {
-         { NULL, NULL },
-      },
-      NULL
-   },
-   {
-      "pcsx_rearmed_gpu_peops_fix_3",
-      "(GPU) Koordinat Kontrolünü Devre Dışı Bırak",
-      "Uyumluluk modu",
-      {
-         { NULL, NULL },
-      },
-      NULL
-   },
-   {
-      "pcsx_rearmed_gpu_peops_fix_6",
-      "(GPU) Tembel Ekran Güncellemesi",
-      "Pandemonium 2",
-      {
-         { NULL, NULL },
-      },
-      NULL
-   },
-   {
-      "pcsx_rearmed_gpu_peops_fix_7",
-      "(GPU) Eski Çerçeve Atlama",
-      "Her ikinci kareyi atla",
-      {
-         { NULL, NULL },
-      },
-      NULL
-   },
-   {
-      "pcsx_rearmed_gpu_peops_fix_8",
-      "(GPU) Tekrarlanan Düz Doku Üçgenleri",
-      "Star Wars: Dark Forces için gerekli",
-      {
          { NULL, NULL },
       },
-      NULL
-   },
-   {
-      "pcsx_rearmed_gpu_peops_fix_9",
-      "(GPU) Üçgenler ile Dörtlü Çiz",
-      "Daha iyi g renkler, daha kötü dokular",
-      {
-         { NULL, NULL },
-      },
-      NULL
-   },
-   {
-      "pcsx_rearmed_gpu_peops_fix_10",
-      "(GPU) Sahte 'Gpu Meşgul' Konumları",
-      "Çizimden sonra meşgul bayraklarını değiştir",
-      {
-         { NULL, NULL },
-      },
-      NULL
-   },
-#endif
-
-   {
-      "pcsx_rearmed_show_bios_bootlogo",
-      "Bios Bootlogo'yu Göster",
-      "Etkinleştirildiğinde, başlatırken veya sıfırlarken PlayStation logosunu gösterir. (Bazı oyunları bozabilir).",
-      {
-         { NULL, NULL },
-      },
-      NULL
+      "disabled",
    },
    {
       "pcsx_rearmed_spu_reverb",
-      "Ses Yankısı",
-      "Ses yankı efektini etkinleştirir veya devre dışı bırakır.",
+      "Sound Reverb",
+      "Enables or disables audio reverb effect.",
       {
+         { "disabled", NULL },
+         { "enabled",  NULL },
          { NULL, NULL },
       },
-      NULL
+      "enabled",
    },
    {
       "pcsx_rearmed_spu_interpolation",
-      "Ses Enterpolasyonu",
+      "Sound Interpolation",
       NULL,
       {
+         { "simple",   "Simple" },
+         { "gaussian", "Gaussian" },
+         { "cubic",    "Cubic" },
+         { "off",      "disabled" },
          { NULL, NULL },
       },
-      NULL
+      "simple",
    },
    {
       "pcsx_rearmed_idiablofix",
-      "Diablo Müzik Düzeltmesi",
+      "Diablo Music Fix",
       NULL,
       {
+         { "disabled", NULL },
+         { "enabled",  NULL },
          { NULL, NULL },
       },
-      NULL
+      "disabled",
    },
    {
       "pcsx_rearmed_pe2_fix",
-      "Parasite Eve 2/Vandal Hearts 1/2 Düzeltmleri",
+      "Parasite Eve 2/Vandal Hearts 1/2 Fix",
       NULL,
       {
+         { "disabled", NULL },
+         { "enabled",  NULL },
          { NULL, NULL },
       },
-      NULL
+      "disabled",
    },
    {
       "pcsx_rearmed_inuyasha_fix",
-      "InuYasha Sengoku Battle Düzeltmesi",
+      "InuYasha Sengoku Battle Fix",
       NULL,
       {
+         { "disabled", NULL },
+         { "enabled",  NULL },
          { NULL, NULL },
       },
-      NULL
+      "disabled",
    },
 
    /* ADVANCED OPTIONS */
    {
       "pcsx_rearmed_noxadecoding",
-      "XA Kod Çözme",
+      "XA Decoding",
       NULL,
       {
+         { "disabled", NULL },
+         { "enabled",  NULL },
          { NULL, NULL },
       },
-      NULL
+      "enabled",
    },
    {
       "pcsx_rearmed_nocdaudio",
-      "CD Ses",
+      "CD Audio",
       NULL,
       {
+         { "disabled", NULL },
+         { "enabled",  NULL },
          { NULL, NULL },
       },
-      NULL
+      "enabled",
    },
 
 #ifndef DRC_DISABLE
    {
       "pcsx_rearmed_nosmccheck",
-      "(Speed Hack) SMC Kontrollerini Devre Dışı Bırak",
-      "Yükleme sırasında çökmelere neden olabilir, hafıza kartını bozabilir.",
+      "(Speed Hack) Disable SMC Checks",
+      "Will cause crashes when loading, break memcards.",
       {
+         { "disabled", NULL },
+         { "enabled",  NULL },
          { NULL, NULL },
       },
-      NULL
+      "disabled",
    },
    {
       "pcsx_rearmed_gteregsunneeded",
-      "(Speed Hack) GTE'nin Gereksiz Olduğunu Varsayın",
-      "Grafiksel bozukluklara neden olabilir.",
+      "(Speed Hack) Assume GTE Regs Unneeded",
+      "May cause graphical glitches.",
       {
+         { "disabled", NULL },
+         { "enabled",  NULL },
          { NULL, NULL },
       },
-      NULL
+      "disabled",
    },
    {
       "pcsx_rearmed_nogteflags",
-      "(Speed Hack) GTE Bayraklarını Devredışı Bırakın",
-      "Grafiksel bozukluklara neden olur.",
+      "(Speed Hack) Disable GTE Flags",
+      "Will cause graphical glitches.",
       {
+         { "disabled", NULL },
+         { "enabled",  NULL },
          { NULL, NULL },
       },
-      NULL
+      "disabled",
    },
 #endif /* DRC_DISABLE */
 
-   { NULL, NULL, NULL, { {0} }, NULL },
+   { NULL, NULL, NULL, {{0}}, NULL },
 };
 
-
 /*
  ********************************
  * Language Mapping
  ********************************
 */
 
+#ifndef HAVE_NO_LANGEXTRA
 struct retro_core_option_definition *option_defs_intl[RETRO_LANGUAGE_LAST] = {
    option_defs_us, /* RETRO_LANGUAGE_ENGLISH */
    NULL,           /* RETRO_LANGUAGE_JAPANESE */
@@ -1212,8 +1036,9 @@ struct retro_core_option_definition *option_defs_intl[RETRO_LANGUAGE_LAST] = {
    NULL,           /* RETRO_LANGUAGE_VIETNAMESE */
    NULL,           /* RETRO_LANGUAGE_ARABIC */
    NULL,           /* RETRO_LANGUAGE_GREEK */
-   option_defs_tr,  /* RETRO_LANGUAGE_TURKISH */
+   option_defs_tr, /* RETRO_LANGUAGE_TURKISH */
 };
+#endif
 
 /*
  ********************************
@@ -1222,7 +1047,8 @@ struct retro_core_option_definition *option_defs_intl[RETRO_LANGUAGE_LAST] = {
 */
 
 /* Handles configuration/setting of core options.
- * Should only be called inside retro_set_environment().
+ * Should be called as early as possible - ideally inside
+ * retro_set_environment(), and no later than retro_load_game()
  * > We place the function body in the header to avoid the
  *   necessity of adding more .c files (i.e. want this to
  *   be as painless as possible for core devs)
@@ -1235,8 +1061,9 @@ static INLINE void libretro_set_core_options(retro_environment_t environ_cb)
    if (!environ_cb)
       return;
 
-   if (environ_cb(RETRO_ENVIRONMENT_GET_CORE_OPTIONS_VERSION, &version) && (version == 1))
+   if (environ_cb(RETRO_ENVIRONMENT_GET_CORE_OPTIONS_VERSION, &version) && (version >= 1))
    {
+#ifndef HAVE_NO_LANGEXTRA
       struct retro_core_options_intl core_options_intl;
       unsigned language = 0;
 
@@ -1248,6 +1075,9 @@ static INLINE void libretro_set_core_options(retro_environment_t environ_cb)
          core_options_intl.local = option_defs_intl[language];
 
       environ_cb(RETRO_ENVIRONMENT_SET_CORE_OPTIONS_INTL, &core_options_intl);
+#else
+      environ_cb(RETRO_ENVIRONMENT_SET_CORE_OPTIONS, &option_defs_us);
+#endif
    }
    else
    {
@@ -1317,7 +1147,7 @@ static INLINE void libretro_set_core_options(retro_environment_t environ_cb)
             }
 
             /* Build values string */
-            if (num_values > 1)
+            if (num_values > 0)
             {
                size_t j;