Merge pull request #631 from neonloop/autoframeskip
[pcsx_rearmed.git] / frontend / libretro_core_options.h
index 06d4844..d8b37df 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,27 +49,63 @@ 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",
+      "pcsx_rearmed_frameskip_type",
       "Frameskip",
-      "Choose how much frames should be skipped to improve performance at the expense of visual smoothness.",
+      "Skip frames to avoid audio buffer under-run (crackling). Improves performance at the expense of visual smoothness. 'Auto' skips frames when advised by the frontend. 'Auto (Threshold)' utilises the 'Frameskip Threshold (%)' setting. 'Fixed Interval' utilises the 'Frameskip Interval' setting.",
       {
-         { "0", NULL },
-         { "1", NULL },
-         { "2", NULL },
-         { "3", NULL },
-         { NULL, NULL},
+         { "disabled",       NULL },
+         { "auto",           "Auto" },
+         { "auto_threshold", "Auto (Threshold)" },
+         { "fixed_interval", "Fixed Interval" },
+         { NULL, NULL },
       },
-      "0",
+      "disabled"
+   },
+   {
+      "pcsx_rearmed_frameskip_threshold",
+      "Frameskip Threshold (%)",
+      "When 'Frameskip' is set to 'Auto (Threshold)', specifies the audio buffer occupancy threshold (percentage) below which frames will be skipped. Higher values reduce the risk of crackling by causing frames to be dropped more frequently.",
+      {
+         { "15", NULL },
+         { "18", NULL },
+         { "21", NULL },
+         { "24", NULL },
+         { "27", NULL },
+         { "30", NULL },
+         { "33", NULL },
+         { "36", NULL },
+         { "39", NULL },
+         { "42", NULL },
+         { "45", NULL },
+         { "48", NULL },
+         { "51", NULL },
+         { "54", NULL },
+         { "57", NULL },
+         { "60", NULL },
+         { NULL, NULL },
+      },
+      "33"
+   },
+   {
+      "pcsx_rearmed_frameskip",
+      "Frameskip Interval",
+      "Specifies the maximum number of frames that can be skipped before a new frame is rendered.",
+      {
+         { "1",  NULL },
+         { "2",  NULL },
+         { "3",  NULL },
+         { "4",  NULL },
+         { "5",  NULL },
+         { "6",  NULL },
+         { "7",  NULL },
+         { "8",  NULL },
+         { "9",  NULL },
+         { "10", NULL },
+         { NULL, NULL },
+      },
+      "1"
    },
    {
       "pcsx_rearmed_bios",
@@ -55,8 +113,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 +125,8 @@ struct retro_core_option_definition option_defs_us[] = {
       {
          { "auto", "auto" },
          { "NTSC", "ntsc" },
-         { "PAL", "pal" },
-         { NULL, NULL},
+         { "PAL",  "pal" },
+         { NULL, NULL },
       },
       "auto",
    },
@@ -77,183 +135,377 @@ 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.",
       {
-         { "disable",  NULL },
+         { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
-      "disable",
+      "disabled",
    },
    {
-      "pcsx_rearmed_pad1type",
-      "Pad 1 Type",
-      "Pad type for player 1",
+      "pcsx_rearmed_show_other_input_settings",
+      "Show other input settings",
+      "Shows or hides other inputs settings like multitaps, player 3-8 ports, analog fine-tunings, etc.",
       {
-         { "standard", NULL },
-         { "analog", NULL },
-         { "dualshock", NULL },
-         { "negcon", NULL },
-         { "none", NULL },
-         { NULL, NULL},
+         { "disabled", NULL },
+         { "enabled",  NULL },
+         { NULL, NULL },
       },
-      "standard",
+      "disabled",
    },
    {
-      "pcsx_rearmed_pad2type",
-      "Pad 2 Type",
-      "Pad type for player 2",
-      {
-         { "standard", NULL },
-         { "analog", NULL },
-         { "dualshock", NULL },
-         { "negcon", NULL },
-         { "none", NULL },
-         { NULL, NULL},
+      "pcsx_rearmed_input_sensitivity",
+      "Emulated Mouse Sensitivity",
+      "Adjust responsiveness when using mouse controller (Default 1.0).",
+      {
+         { "0.05", NULL },
+         { "0.10", NULL },
+         { "0.15", NULL },
+         { "0.20", NULL },
+         { "0.25", NULL },
+         { "0.30", NULL },
+         { "0.35", NULL },
+         { "0.40", NULL },
+         { "0.45", NULL },
+         { "0.50", NULL },
+         { "0.55", NULL },
+         { "0.60", NULL },
+         { "0.65", NULL },
+         { "0.70", NULL },
+         { "0.75", NULL },
+         { "0.80", NULL },
+         { "0.85", NULL },
+         { "0.90", NULL },
+         { "0.95", NULL },
+         { "1.00", NULL },
+         { "1.05", NULL },
+         { "1.10", NULL },
+         { "1.15", NULL },
+         { "1.20", NULL },
+         { "1.25", NULL },
+         { "1.30", NULL },
+         { "1.35", NULL },
+         { "1.40", NULL },
+         { "1.45", NULL },
+         { "1.50", NULL },
+         { "1.55", NULL },
+         { "1.60", NULL },
+         { "1.65", NULL },
+         { "1.70", NULL },
+         { "1.75", NULL },
+         { "1.80", NULL },
+         { "1.85", NULL },
+         { "1.90", NULL },
+         { "1.95", NULL },
+         { "2.00", NULL },
+      },
+      "1.00",
+   },
+   {
+      "pcsx_rearmed_multitap",
+      "Multitap Mode (Restart)",
+      "Sets the playstation multitap peripheral to either controller port 1 or controller port 2 to support of upto 5 players simultaneously, or on both for upto 8 players simultaneously. Option depends on games that has support for multitap feature. Leave option on disabled if not such compatible games to avoid any input-related problems.",
+      {
+         { "disabled",      NULL },
+         { "port 1",        NULL },
+         { "port 2",        NULL },
+         { "ports 1 and 2", NULL },
+         { NULL, NULL },
       },
-      "standard",
+      "disabled",
    },
    {
-      "pcsx_rearmed_pad3type",
-      "Pad 3 Type",
-      "Pad type for player 3",
+      "pcsx_rearmed_negcon_deadzone",
+      "NegCon Twist Deadzone (Percent)",
+      "Sets the deadzone of the RetroPad left analog stick when simulating the 'twist' action of emulated neGcon Controllers. Used to eliminate drift/unwanted input.",
       {
-         { "standard", NULL },
-         { "analog", NULL },
-         { "dualshock", NULL },
-         { "negcon", NULL },
-         { "none", NULL },
-         { NULL, NULL},
+         { "0",  NULL },
+         { "5",  NULL },
+         { "10", NULL },
+         { "15", NULL },
+         { "20", NULL },
+         { "25", NULL },
+         { "30", NULL },
+         { NULL, NULL },
       },
-      "none",
+      "0",
    },
    {
-      "pcsx_rearmed_pad4type",
-      "Pad 4 Type",
-      "Pad type for player 4",
+      "pcsx_rearmed_negcon_response",
+      "NegCon Twist Response",
+      "Specifies the analog response when using a RetroPad left analog stick to simulate the 'twist' action of emulated neGcon Controllers.",
       {
-         { "standard", NULL },
-         { "analog", NULL },
-         { "dualshock", NULL },
-         { "negcon", NULL },
-         { "none", NULL },
-         { NULL, NULL},
+         { "linear",    NULL },
+         { "quadratic", NULL },
+         { "cubic",     NULL },
+         { NULL, NULL },
       },
-      "none",
+      "linear",
    },
    {
-      "pcsx_rearmed_pad5type",
-      "Pad 5 Type",
-      "Pad type for player 5",
-      {
-         { "standard", NULL },
-         { "analog",  NULL },
-         { "dualshock", NULL },
-         { "negcon", NULL },
-         { "none", NULL },
-         { NULL, NULL},
-      },
-      "none",
-   },{
-      "pcsx_rearmed_pad6type",
-      "Pad 6 Type",
-      "Pad type for player 6",
-      {
-         { "standard", NULL },
-         { "analog",  NULL },
-         { "dualshock", NULL },
-         { "negcon", NULL },
-         { "none", NULL },
-         { NULL, NULL},
-      },
-      "none",
-   },{
-      "pcsx_rearmed_pad7type",
-      "Pad 7 Type",
-      "Pad type for player 7",
-      {
-         { "standard", NULL },
-         { "analog",  NULL },
-         { "dualshock", NULL },
-         { "negcon", NULL },
-         { "none", NULL },
-         { NULL, NULL},
-      },
-      "none",
-   },{
-      "pcsx_rearmed_pad8type",
-      "Pad 8 Type",
-      "Pad type for player 8",
+      "pcsx_rearmed_analog_axis_modifier",
+      "Analog axis bounds.",
+      "Range bounds for analog axis. Square bounds help controllers with highly circular ranges that are unable to fully saturate the x and y axis at 45degree deflections.",
       {
-         { "standard", NULL },
-         { "analog",  NULL },
-         { "dualshock", NULL },
-         { "negcon", NULL },
-         { "none", NULL },
-         { NULL, NULL},
+         { "circle", NULL },
+         { "square", NULL },
+         { NULL, NULL },
       },
-      "none",
+      "circle",
    },
    {
-      "pcsx_rearmed_multitap1",
-      "Multitap 1",
-      "Enables/Disables multitap on port 1, allowing upto 5 players in games that permit it.",
+      "pcsx_rearmed_vibration",
+      "Enable Vibration",
+      "Enables vibration feedback for controllers that supports vibration features.",
       {
-         { "auto", NULL },
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
-      "auto",
+      "enabled",
    },
    {
-      "pcsx_rearmed_multitap2",
-      "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.",
+      "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.",
       {
-         { "auto", NULL },
-         { "disabled",  NULL },
-         { "enabled",   NULL },
-         { NULL, NULL},
+         { "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 },
       },
-      "auto",
+      "0",
    },
    {
-      "pcsx_rearmed_negcon_deadzone",
-      "NegCon Twist Deadzone (Percent)",
-      "Sets the deadzone of the RetroPad left analog stick when simulating the 'twist' action of emulated neGcon Controllers. Used to eliminate drift/unwanted input.",
+      "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 },
-         { "5",  NULL },
+         { "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 },
-         { "30", NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "0",
    },
    {
-      "pcsx_rearmed_negcon_response",
-      "NegCon Twist Response",
-      "Specifies the analog response when using a RetroPad left analog stick to simulate the 'twist' action of emulated neGcon Controllers.",
+      "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.",
       {
-         { "linear", NULL },
-         { "quadratic", NULL },
-         { "cubic", NULL },
-         { NULL, NULL},
+         { "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 },
       },
-      "linear",
+      "1",
    },
    {
-      "pcsx_rearmed_vibration",
-      "Enable Vibration",
-      "Enables vibration feedback for controllers that supports vibration features.",
+      "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.",
       {
-         { "disabled", NULL },
-         { "enabled",  NULL },
-         { NULL, NULL},
+         { "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 },
       },
-      "enabled",
+      "1",
    },
    {
       "pcsx_rearmed_dithering",
@@ -262,9 +514,13 @@ struct retro_core_option_definition option_defs_us[] = {
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
+#if defined HAVE_LIBNX || defined _3DS
+         "disabled",
+#else
       "enabled",
+#endif
    },
 
 #ifndef DRC_DISABLE
@@ -275,93 +531,104 @@ struct retro_core_option_definition option_defs_us[] = {
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "enabled",
    },
+#endif
+
+#if !defined(DRC_DISABLE) && !defined(LIGHTREC)
    {
       "pcsx_rearmed_psxclock",
       "PSX CPU Clock",
-      PSX_CLOCK_LABEL,
+#if defined(HAVE_PRE_ARMV7) && !defined(_3DS)
+      "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,
+#if defined(HAVE_PRE_ARMV7) && !defined(_3DS)
+      "50",
+#else
+      "57",
+#endif
    },
-#endif /* DRC_DISABLE */
+#endif /* !DRC_DISABLE && !LIGHTREC */
 
-#ifdef __ARM_NEON__
+#ifdef GPU_NEON
    {
       "pcsx_rearmed_neon_interlace_enable",
       "Enable Interlacing Mode",
@@ -369,7 +636,7 @@ struct retro_core_option_definition option_defs_us[] = {
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "disabled",
    },
@@ -380,7 +647,7 @@ struct retro_core_option_definition option_defs_us[] = {
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "disabled",
    },
@@ -391,11 +658,11 @@ struct retro_core_option_definition option_defs_us[] = {
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "disabled",
    },
-#endif /* __ARM_NEON__ */
+#endif /* GPU_NEON */
 
    {
       "pcsx_rearmed_duping_enable",
@@ -404,7 +671,7 @@ struct retro_core_option_definition option_defs_us[] = {
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "enabled",
    },
@@ -415,129 +682,131 @@ struct retro_core_option_definition option_defs_us[] = {
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "disabled",
    },
 
    /* GPU PEOPS OPTIONS */
-#ifdef DRC_DISABLE
+#ifdef GPU_PEOPS
    {
       "pcsx_rearmed_show_gpu_peops_settings",
-      "Show Advance GPU Settings",
-      "Enable or disable various GPU fixes. A core restart might be needed for settings to take effect. NOTE: Quick Menu must be toggled for this setting to take effect.",
+      "Advanced GPU P.E.Op.S. Settings",
+      "Shows or hides advanced GPU plugin settings. NOTE: Quick Menu must be toggled for this setting to take effect.",
       {
          { "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,9 +815,9 @@ struct retro_core_option_definition option_defs_us[] = {
       "disabled",
    },
    {
-      "pcsx_rearmed_spu_reverb",
-      "Sound Reverb",
-      "Enables or disables audio reverb effect.",
+      "pcsx_rearmed_gpu_unai_blending",
+      "(GPU) Enable Blending",
+      NULL,
       {
          { "disabled", NULL },
          { "enabled",  NULL },
@@ -557,21 +826,19 @@ struct retro_core_option_definition option_defs_us[] = {
       "enabled",
    },
    {
-      "pcsx_rearmed_spu_interpolation",
-      "Sound Interpolation",
+      "pcsx_rearmed_gpu_unai_lighting",
+      "(GPU) Enable Lighting",
       NULL,
       {
-         { "simple", NULL },
-         { "gaussian", NULL },
-         { "cubic", NULL },
-         { "off", NULL },
+         { "disabled", NULL },
+         { "enabled",  NULL },
          { NULL, NULL},
       },
-      "simple",
+      "enabled",
    },
    {
-      "pcsx_rearmed_idiablofix",
-      "Diablo Music Fix",
+      "pcsx_rearmed_gpu_unai_fast_lighting",
+      "(GPU) Enable Fast Lighting",
       NULL,
       {
          { "disabled", NULL },
@@ -581,8 +848,8 @@ struct retro_core_option_definition option_defs_us[] = {
       "disabled",
    },
    {
-      "pcsx_rearmed_pe2_fix",
-      "Parasite Eve 2/Vandal Hearts 1/2 Fix",
+      "pcsx_rearmed_gpu_unai_ilace_force",
+      "(GPU) Enable Forced Interlace",
       NULL,
       {
          { "disabled", NULL },
@@ -592,8 +859,8 @@ struct retro_core_option_definition option_defs_us[] = {
       "disabled",
    },
    {
-      "pcsx_rearmed_inuyasha_fix",
-      "InuYasha Sengoku Battle Fix",
+      "pcsx_rearmed_gpu_unai_pixel_skip",
+      "(GPU) Enable Pixel Skip",
       NULL,
       {
          { "disabled", NULL },
@@ -602,597 +869,230 @@ struct retro_core_option_definition option_defs_us[] = {
       },
       "disabled",
    },
-
-   /* ADVANCED OPTIONS */
    {
-      "pcsx_rearmed_noxadecoding",
-      "XA Decoding",
-      NULL,
+      "pcsx_rearmed_gpu_unai_scale_hires",
+      "(GPU) Enable Hi-Res Downscaling",
+      "When enabled, will scale hi-res modes to 320x240, skipping unrendered pixels.",
       {
          { "disabled", NULL },
          { "enabled",  NULL },
          { NULL, NULL},
       },
+#ifdef _MIYOO
       "enabled",
+#else
+      "disabled",
+#endif
    },
+#endif /* GPU UNAI Advanced Settings */
+#ifdef THREAD_RENDERING
    {
-      "pcsx_rearmed_nocdaudio",
-      "CD Audio",
-      NULL,
+      "pcsx_rearmed_gpu_thread_rendering",
+      "Threaded Rendering",
+      "When enabled, runs GPU commands in a thread. Sync waits for drawing to finish before vsync. Async will not wait unless there's another frame behind it.",
       {
          { "disabled", NULL },
-         { "enabled",  NULL },
+         { "sync",  NULL },
+         { "async",  NULL },
          { NULL, NULL},
       },
-      "enabled",
+      "disabled",
    },
+#endif
 
-#ifndef DRC_DISABLE
    {
-      "pcsx_rearmed_nosmccheck",
-      "(Speed Hack) Disable SMC Checks",
-      "Will cause crashes when loading, break memcards.",
+      "pcsx_rearmed_show_bios_bootlogo",
+      "Show Bios Bootlogo",
+      "When enabled, shows the PlayStation logo when starting or resetting. (Breaks some games).",
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "disabled",
    },
    {
-      "pcsx_rearmed_gteregsunneeded",
-      "(Speed Hack) Assume GTE Regs Unneeded",
-      "May cause graphical glitches.",
+      "pcsx_rearmed_spu_reverb",
+      "Sound Reverb",
+      "Enables or disables audio reverb effect.",
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
+#ifdef HAVE_PRE_ARMV7
       "disabled",
+#else
+      "enabled",
+#endif
    },
    {
-      "pcsx_rearmed_nogteflags",
-      "(Speed Hack) Disable GTE Flags",
-      "Will cause graphical glitches.",
+      "pcsx_rearmed_spu_interpolation",
+      "Sound Interpolation",
+      NULL,
       {
-         { "disabled", NULL },
-         { "enabled",  NULL },
-         { NULL, NULL},
+         { "simple",   "Simple" },
+         { "gaussian", "Gaussian" },
+         { "cubic",    "Cubic" },
+         { "off",      "disabled" },
+         { NULL, NULL },
       },
-      "disabled",
-   },
-#endif /* DRC_DISABLE */
-
-   { NULL, NULL, NULL, { NULL, NULL }, NULL },
-};
-
-/* RETRO_LANGUAGE_JAPANESE */
-
-/* RETRO_LANGUAGE_FRENCH */
-
-/* RETRO_LANGUAGE_SPANISH */
-
-/* RETRO_LANGUAGE_GERMAN */
-
-/* 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",
+#ifdef HAVE_PRE_ARMV7
+      "off",
+#else
+      "simple",
+#endif
    },
    {
-      "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_pe2_fix",
+      "Parasite Eve 2/Vandal Hearts 1/2 Fix",
+      NULL,
       {
-         { "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
+      "disabled",
    },
    {
-      "pcsx_rearmed_gpu_peops_fix_8",
-      "(GPU) Tekrarlanan Düz Doku Üçgenleri",
-      "Star Wars: Dark Forces için gerekli",
+      "pcsx_rearmed_icache_emulation",
+      "Instruction Cache emulation",
+      "Enables or disables instruction cache emulation. Slower, but more accurate. Fails to run Spyro 2 PAL. This allows you to run F1 2001, Formula One Arcade, F1 99 and other games that may need instruction cache emulation. Interpreter only and partial on lightrec, does nothing on the ARMv7 backend.",
       {
+         { "disabled", NULL },
+         { "enabled",  NULL },
          { NULL, NULL },
       },
-      NULL
+      "disabled",
    },
    {
-      "pcsx_rearmed_gpu_peops_fix_9",
-      "(GPU) Üçgenler ile Dörtlü Çiz",
-      "Daha iyi g renkler, daha kötü dokular",
+      "pcsx_rearmed_inuyasha_fix",
+      "InuYasha Sengoku Battle Fix",
+      NULL,
       {
+         { "disabled", NULL },
+         { "enabled",  NULL },
          { NULL, NULL },
       },
-      NULL
+      "disabled",
    },
+#ifndef _WIN32
    {
-      "pcsx_rearmed_gpu_peops_fix_10",
-      "(GPU) Sahte 'Gpu Meşgul' Konumları",
-      "Çizimden sonra meşgul bayraklarını değiştir",
+      "pcsx_rearmed_async_cd",
+      "CD Access Method (Restart)",
+      "Select method used to read data from content disk images. 'Synchronous' mimics original hardware. 'Asynchronous' can reduce stuttering on devices with slow storage. 'Precache' loads disk image into memory for faster access (CHD only).",
       {
-         { NULL, NULL },
+         { "sync",     "Synchronous" },
+         { "async",    "Asynchronous" },
+         { "precache", "Precache" },
+         { NULL, NULL},
       },
-      NULL
+      "sync",
    },
 #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
-   },
-   {
-      "pcsx_rearmed_spu_reverb",
-      "Ses Yankısı",
-      "Ses yankı efektini etkinleştirir veya devre dışı bırakır.",
-      {
-         { NULL, NULL },
-      },
-      NULL
-   },
-   {
-      "pcsx_rearmed_spu_interpolation",
-      "Ses Enterpolasyonu",
-      NULL,
-      {
-         { NULL, NULL },
-      },
-      NULL
-   },
+   /* ADVANCED OPTIONS */
    {
-      "pcsx_rearmed_idiablofix",
-      "Diablo Müzik Düzeltmesi",
+      "pcsx_rearmed_noxadecoding",
+      "XA Decoding",
       NULL,
       {
+         { "disabled", NULL },
+         { "enabled",  NULL },
          { NULL, NULL },
       },
-      NULL
+      "enabled",
    },
    {
-      "pcsx_rearmed_pe2_fix",
-      "Parasite Eve 2/Vandal Hearts 1/2 Düzeltmleri",
+      "pcsx_rearmed_nocdaudio",
+      "CD Audio",
       NULL,
       {
+         { "disabled", NULL },
+         { "enabled",  NULL },
          { NULL, NULL },
       },
-      NULL
+      "enabled",
    },
    {
-      "pcsx_rearmed_inuyasha_fix",
-      "InuYasha Sengoku Battle Düzeltmesi",
-      NULL,
+      "pcsx_rearmed_spuirq",
+      "SPU IRQ Always Enabled",
+      "Compatibility tweak, should be left to off in most cases.",
       {
+         { "disabled", NULL },
+         { "enabled",  NULL },
          { NULL, NULL },
       },
-      NULL
+      "disabled",
    },
 
-   /* ADVANCED OPTIONS */
+#if !defined(DRC_DISABLE) && !defined(LIGHTREC)
    {
-      "pcsx_rearmed_noxadecoding",
-      "XA Kod Çözme",
-      NULL,
+      "pcsx_rearmed_nosmccheck",
+      "(Speed Hack) Disable SMC Checks",
+      "Will cause crashes when loading, break memcards.",
       {
+         { "disabled", NULL },
+         { "enabled",  NULL },
          { NULL, NULL },
       },
-      NULL
+      "disabled",
    },
    {
-      "pcsx_rearmed_nocdaudio",
-      "CD Ses",
-      NULL,
+      "pcsx_rearmed_gteregsunneeded",
+      "(Speed Hack) Assume GTE Regs Unneeded",
+      "May cause graphical glitches.",
       {
+         { "disabled", NULL },
+         { "enabled",  NULL },
          { NULL, NULL },
       },
-      NULL
+      "disabled",
    },
-
-#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.",
+      "pcsx_rearmed_nogteflags",
+      "(Speed Hack) Disable GTE Flags",
+      "Will cause graphical glitches.",
       {
+         { "disabled", NULL },
+         { "enabled",  NULL },
          { NULL, NULL },
       },
-      NULL
+      "disabled",
    },
    {
-      "pcsx_rearmed_gteregsunneeded",
-      "(Speed Hack) GTE'nin Gereksiz Olduğunu Varsayın",
-      "Grafiksel bozukluklara neden olabilir.",
+      "pcsx_rearmed_nostalls",
+      "Disable CPU/GTE stalls",
+      "Will cause some games to run too fast.",
       {
+         { "disabled", NULL },
+         { "enabled",  NULL },
          { NULL, NULL },
       },
-      NULL
+      "disabled",
    },
    {
-      "pcsx_rearmed_nogteflags",
-      "(Speed Hack) GTE Bayraklarını Devredışı Bırakın",
-      "Grafiksel bozukluklara neden olur.",
+      "pcsx_rearmed_nocompathacks",
+      "Disable compat hacks",
+      "Disables game-specific compatibility hacks.",
       {
+         { "disabled", NULL },
+         { "enabled",  NULL },
          { NULL, NULL },
       },
-      NULL
+      "disabled",
    },
-#endif /* DRC_DISABLE */
+#endif /* !DRC_DISABLE && !LIGHTREC */
 
-   { NULL, NULL, NULL, { NULL, NULL }, 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 +1112,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 +1123,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 +1137,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 +1151,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 +1223,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;