Update 'libretro_core_options.h' to v1.3 format
authorjdgleaver <james@leaver.myzen.co.uk>
Wed, 14 Aug 2019 13:10:51 +0000 (14:10 +0100)
committerjdgleaver <james@leaver.myzen.co.uk>
Wed, 14 Aug 2019 13:10:51 +0000 (14:10 +0100)
frontend/libretro_core_options.h
frontend/libretro_core_options_intl.h [new file with mode: 0644]
libretro-common/include/libretro.h

index 5d50e50..6ea31e0 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,12 @@ 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 },
+         { "none",      NULL },
+         { NULL, NULL },
       },
       "standard",
    },
@@ -102,12 +116,12 @@ 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 },
+         { "none",      NULL },
+         { NULL, NULL },
       },
       "standard",
    },
@@ -116,12 +130,12 @@ 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 },
+         { "none",      NULL },
+         { NULL, NULL },
       },
       "none",
    },
@@ -130,12 +144,12 @@ 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 },
+         { "none",      NULL },
+         { NULL, NULL },
       },
       "none",
    },
@@ -144,12 +158,12 @@ 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 },
+         { "none",      NULL },
+         { NULL, NULL },
       },
       "none",
    },{
@@ -157,12 +171,12 @@ 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 },
+         { "none",      NULL },
+         { NULL, NULL },
       },
       "none",
    },{
@@ -170,12 +184,12 @@ 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 },
+         { "none",      NULL },
+         { NULL, NULL },
       },
       "none",
    },{
@@ -183,12 +197,12 @@ 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 },
+         { "none",      NULL },
+         { NULL, NULL },
       },
       "none",
    },
@@ -197,10 +211,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 +223,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 +242,7 @@ struct retro_core_option_definition option_defs_us[] = {
          { "20", NULL },
          { "25", NULL },
          { "30", NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "0",
    },
@@ -237,10 +251,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,7 +265,7 @@ struct retro_core_option_definition option_defs_us[] = {
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "enabled",
    },
@@ -262,7 +276,7 @@ struct retro_core_option_definition option_defs_us[] = {
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "enabled",
    },
@@ -275,89 +289,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 +391,7 @@ struct retro_core_option_definition option_defs_us[] = {
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "disabled",
    },
@@ -380,7 +402,7 @@ struct retro_core_option_definition option_defs_us[] = {
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "disabled",
    },
@@ -391,7 +413,7 @@ struct retro_core_option_definition option_defs_us[] = {
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "disabled",
    },
@@ -404,7 +426,7 @@ struct retro_core_option_definition option_defs_us[] = {
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "enabled",
    },
@@ -415,7 +437,7 @@ struct retro_core_option_definition option_defs_us[] = {
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "disabled",
    },
@@ -429,7 +451,7 @@ struct retro_core_option_definition option_defs_us[] = {
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "disabled",
    },
@@ -440,7 +462,7 @@ struct retro_core_option_definition option_defs_us[] = {
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "disabled",
    },
@@ -451,7 +473,7 @@ struct retro_core_option_definition option_defs_us[] = {
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "disabled",
    },
@@ -462,7 +484,7 @@ struct retro_core_option_definition option_defs_us[] = {
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "disabled",
    },
@@ -473,7 +495,7 @@ struct retro_core_option_definition option_defs_us[] = {
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "disabled",
    },
@@ -484,7 +506,7 @@ struct retro_core_option_definition option_defs_us[] = {
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "disabled",
    },
@@ -495,7 +517,7 @@ struct retro_core_option_definition option_defs_us[] = {
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "enabled",
    },
@@ -506,7 +528,7 @@ struct retro_core_option_definition option_defs_us[] = {
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "disabled",
    },
@@ -517,7 +539,7 @@ struct retro_core_option_definition option_defs_us[] = {
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "disabled",
    },
@@ -528,7 +550,7 @@ struct retro_core_option_definition option_defs_us[] = {
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "disabled",
    },
@@ -541,7 +563,7 @@ struct retro_core_option_definition option_defs_us[] = {
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "disabled",
    },
@@ -552,7 +574,7 @@ struct retro_core_option_definition option_defs_us[] = {
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "enabled",
    },
@@ -561,11 +583,11 @@ struct retro_core_option_definition option_defs_us[] = {
       "Sound Interpolation",
       NULL,
       {
-         { "simple", NULL },
-         { "gaussian", NULL },
-         { "cubic", NULL },
-         { "off", NULL },
-         { NULL, NULL},
+         { "simple",   "Simple" },
+         { "gaussian", "Gaussian" },
+         { "cubic",    "Cubic" },
+         { "off",      "disabled" },
+         { NULL, NULL },
       },
       "simple",
    },
@@ -576,7 +598,7 @@ struct retro_core_option_definition option_defs_us[] = {
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "disabled",
    },
@@ -587,7 +609,7 @@ struct retro_core_option_definition option_defs_us[] = {
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "disabled",
    },
@@ -598,7 +620,7 @@ struct retro_core_option_definition option_defs_us[] = {
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "disabled",
    },
@@ -611,7 +633,7 @@ struct retro_core_option_definition option_defs_us[] = {
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "enabled",
    },
@@ -622,7 +644,7 @@ struct retro_core_option_definition option_defs_us[] = {
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "enabled",
    },
@@ -635,7 +657,7 @@ struct retro_core_option_definition option_defs_us[] = {
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "disabled",
    },
@@ -646,7 +668,7 @@ struct retro_core_option_definition option_defs_us[] = {
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
+         { NULL, NULL },
       },
       "disabled",
    },
@@ -657,542 +679,22 @@ struct retro_core_option_definition option_defs_us[] = {
       {
          { "disabled", NULL },
          { "enabled",  NULL },
-         { NULL, NULL},
-      },
-      "disabled",
-   },
-#endif /* DRC_DISABLE */
-
-   { NULL, NULL, NULL, { {0} }, 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",
-   },
-   {
-      "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.",
-      {
-         { "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_odd_even_bit",
-      "(GPU) Odd/Even Bit Hack",
-      "Chrono Cross için gerekli.",
-      {
-         { NULL, NULL },
-      },
-      NULL
-   },
-   {
-      "pcsx_rearmed_gpu_peops_expand_screen_width",
-      "(GPU) Ekran Genişliğini Genişlet",
-      "Capcom dövüş oyunları",
-      {
-         { NULL, NULL },
-      },
-      NULL
-   },
-   {
-      "pcsx_rearmed_gpu_peops_ignore_brightness",
-      "(GPU) Parlaklık Rengini Yoksay",
-      "Lunar Silver Star Story oyunlarında siyah ekran",
-      {
-         { NULL, NULL },
-      },
-      NULL
-   },
-   {
-      "pcsx_rearmed_gpu_peops_disable_coord_check",
-      "(GPU) Koordinat Kontrolünü Devre Dışı Bırak",
-      "Uyumluluk modu",
-      {
-         { NULL, NULL },
-      },
-      NULL
-   },
-   {
-      "pcsx_rearmed_gpu_peops_lazy_screen_update",
-      "(GPU) Tembel Ekran Güncellemesi",
-      "Pandemonium 2",
-      {
-         { NULL, NULL },
-      },
-      NULL
-   },
-   {
-      "pcsx_rearmed_gpu_peops_old_frame_skip",
-      "(GPU) Eski Çerçeve Atlama",
-      "Her ikinci kareyi atla",
-      {
          { NULL, NULL },
       },
-      NULL
-   },
-   {
-      "pcsx_rearmed_gpu_peops_repeated_triangles",
-      "(GPU) Tekrarlanan Düz Doku Üçgenleri",
-      "Star Wars: Dark Forces için gerekli",
-      {
-         { NULL, NULL },
-      },
-      NULL
-   },
-   {
-      "pcsx_rearmed_gpu_peops_quads_with_triangles",
-      "(GPU) Üçgenler ile Dörtlü Çiz",
-      "Daha iyi g renkler, daha kötü dokular",
-      {
-         { NULL, NULL },
-      },
-      NULL
-   },
-   {
-      "pcsx_rearmed_gpu_peops_fake_busy_state",
-      "(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
-   },
-   {
-      "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
-   },
-   {
-      "pcsx_rearmed_idiablofix",
-      "Diablo Müzik Düzeltmesi",
-      NULL,
-      {
-         { NULL, NULL },
-      },
-      NULL
-   },
-   {
-      "pcsx_rearmed_pe2_fix",
-      "Parasite Eve 2/Vandal Hearts 1/2 Düzeltmleri",
-      NULL,
-      {
-         { NULL, NULL },
-      },
-      NULL
-   },
-   {
-      "pcsx_rearmed_inuyasha_fix",
-      "InuYasha Sengoku Battle Düzeltmesi",
-      NULL,
-      {
-         { NULL, NULL },
-      },
-      NULL
-   },
-
-   /* ADVANCED OPTIONS */
-   {
-      "pcsx_rearmed_noxadecoding",
-      "XA Kod Çözme",
-      NULL,
-      {
-         { NULL, NULL },
-      },
-      NULL
-   },
-   {
-      "pcsx_rearmed_nocdaudio",
-      "CD Ses",
-      NULL,
-      {
-         { NULL, NULL },
-      },
-      NULL
-   },
-
-#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.",
-      {
-         { NULL, NULL },
-      },
-      NULL
-   },
-   {
-      "pcsx_rearmed_gteregsunneeded",
-      "(Speed Hack) GTE'nin Gereksiz Olduğunu Varsayın",
-      "Grafiksel bozukluklara neden olabilir.",
-      {
-         { NULL, NULL },
-      },
-      NULL
-   },
-   {
-      "pcsx_rearmed_nogteflags",
-      "(Speed Hack) GTE Bayraklarını Devredışı Bırakın",
-      "Grafiksel bozukluklara neden olur.",
-      {
-         { 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 +714,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 +725,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 +739,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 +753,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 +825,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;
 
diff --git a/frontend/libretro_core_options_intl.h b/frontend/libretro_core_options_intl.h
new file mode 100644 (file)
index 0000000..16c40a0
--- /dev/null
@@ -0,0 +1,568 @@
+#ifndef LIBRETRO_CORE_OPTIONS_INTL_H__
+#define LIBRETRO_CORE_OPTIONS_INTL_H__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1500 && _MSC_VER < 1900)
+/* https://support.microsoft.com/en-us/kb/980263 */
+#pragma execution_character_set("utf-8")
+#pragma warning(disable:4566)
+#endif
+
+#include <libretro.h>
+
+/*
+ ********************************
+ * 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
+
+/*
+ ********************************
+ * Core Option Definitions
+ ********************************
+*/
+
+/* 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",
+   },
+   {
+      "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.",
+      {
+         { "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ı",
+#ifdef HAVE_PRE_ARMV7
+      "Overclock or underclock the PSX clock. Default is 50",
+#else
+      "Overclock or underclock the PSX clock. Default is 57",
+#endif
+      {
+         { 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_odd_even_bit",
+      "(GPU) Odd/Even Bit Hack",
+      "Chrono Cross için gerekli.",
+      {
+         { NULL, NULL },
+      },
+      NULL
+   },
+   {
+      "pcsx_rearmed_gpu_peops_expand_screen_width",
+      "(GPU) Ekran Genişliğini Genişlet",
+      "Capcom dövüş oyunları",
+      {
+         { NULL, NULL },
+      },
+      NULL
+   },
+   {
+      "pcsx_rearmed_gpu_peops_ignore_brightness",
+      "(GPU) Parlaklık Rengini Yoksay",
+      "Lunar Silver Star Story oyunlarında siyah ekran",
+      {
+         { NULL, NULL },
+      },
+      NULL
+   },
+   {
+      "pcsx_rearmed_gpu_peops_disable_coord_check",
+      "(GPU) Koordinat Kontrolünü Devre Dışı Bırak",
+      "Uyumluluk modu",
+      {
+         { NULL, NULL },
+      },
+      NULL
+   },
+   {
+      "pcsx_rearmed_gpu_peops_lazy_screen_update",
+      "(GPU) Tembel Ekran Güncellemesi",
+      "Pandemonium 2",
+      {
+         { NULL, NULL },
+      },
+      NULL
+   },
+   {
+      "pcsx_rearmed_gpu_peops_old_frame_skip",
+      "(GPU) Eski Çerçeve Atlama",
+      "Her ikinci kareyi atla",
+      {
+         { NULL, NULL },
+      },
+      NULL
+   },
+   {
+      "pcsx_rearmed_gpu_peops_repeated_triangles",
+      "(GPU) Tekrarlanan Düz Doku Üçgenleri",
+      "Star Wars: Dark Forces için gerekli",
+      {
+         { NULL, NULL },
+      },
+      NULL
+   },
+   {
+      "pcsx_rearmed_gpu_peops_quads_with_triangles",
+      "(GPU) Üçgenler ile Dörtlü Çiz",
+      "Daha iyi g renkler, daha kötü dokular",
+      {
+         { NULL, NULL },
+      },
+      NULL
+   },
+   {
+      "pcsx_rearmed_gpu_peops_fake_busy_state",
+      "(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
+   },
+   {
+      "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
+   },
+   {
+      "pcsx_rearmed_idiablofix",
+      "Diablo Müzik Düzeltmesi",
+      NULL,
+      {
+         { NULL, NULL },
+      },
+      NULL
+   },
+   {
+      "pcsx_rearmed_pe2_fix",
+      "Parasite Eve 2/Vandal Hearts 1/2 Düzeltmleri",
+      NULL,
+      {
+         { NULL, NULL },
+      },
+      NULL
+   },
+   {
+      "pcsx_rearmed_inuyasha_fix",
+      "InuYasha Sengoku Battle Düzeltmesi",
+      NULL,
+      {
+         { NULL, NULL },
+      },
+      NULL
+   },
+
+   /* ADVANCED OPTIONS */
+   {
+      "pcsx_rearmed_noxadecoding",
+      "XA Kod Çözme",
+      NULL,
+      {
+         { NULL, NULL },
+      },
+      NULL
+   },
+   {
+      "pcsx_rearmed_nocdaudio",
+      "CD Ses",
+      NULL,
+      {
+         { NULL, NULL },
+      },
+      NULL
+   },
+
+#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.",
+      {
+         { NULL, NULL },
+      },
+      NULL
+   },
+   {
+      "pcsx_rearmed_gteregsunneeded",
+      "(Speed Hack) GTE'nin Gereksiz Olduğunu Varsayın",
+      "Grafiksel bozukluklara neden olabilir.",
+      {
+         { NULL, NULL },
+      },
+      NULL
+   },
+   {
+      "pcsx_rearmed_nogteflags",
+      "(Speed Hack) GTE Bayraklarını Devredışı Bırakın",
+      "Grafiksel bozukluklara neden olur.",
+      {
+         { NULL, NULL },
+      },
+      NULL
+   },
+#endif /* DRC_DISABLE */
+
+   { NULL, NULL, NULL, {{0}}, NULL },
+};
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
index 1fd2f5b..d0f1042 100644 (file)
@@ -1117,7 +1117,7 @@ enum retro_mod
                                             * This may be still be done regardless of the core options
                                             * interface version.
                                             *
-                                            * If version is 1 however, core options may instead be set by
+                                            * If version is >= 1 however, core options may instead be set by
                                             * passing an array of retro_core_option_definition structs to
                                             * RETRO_ENVIRONMENT_SET_CORE_OPTIONS, or a 2D array of
                                             * retro_core_option_definition structs to RETRO_ENVIRONMENT_SET_CORE_OPTIONS_INTL.
@@ -1132,8 +1132,8 @@ enum retro_mod
                                             * GET_VARIABLE.
                                             * This allows the frontend to present these variables to
                                             * a user dynamically.
-                                            * This should only be called if RETRO_ENVIRONMENT_GET_ENHANCED_CORE_OPTIONS
-                                            * returns an API version of 1.
+                                            * This should only be called if RETRO_ENVIRONMENT_GET_CORE_OPTIONS_VERSION
+                                            * returns an API version of >= 1.
                                             * This should be called instead of RETRO_ENVIRONMENT_SET_VARIABLES.
                                             * This should be called the first time as early as
                                             * possible (ideally in retro_set_environment).
@@ -1169,8 +1169,6 @@ enum retro_mod
                                             * i.e. it should be feasible to cycle through options
                                             * without a keyboard.
                                             *
-                                            * First entry should be treated as a default.
-                                            *
                                             * Example entry:
                                             * {
                                             *     "foo_option",
@@ -1196,8 +1194,8 @@ enum retro_mod
                                             * GET_VARIABLE.
                                             * This allows the frontend to present these variables to
                                             * a user dynamically.
-                                            * This should only be called if RETRO_ENVIRONMENT_GET_ENHANCED_CORE_OPTIONS
-                                            * returns an API version of 1.
+                                            * This should only be called if RETRO_ENVIRONMENT_GET_CORE_OPTIONS_VERSION
+                                            * returns an API version of >= 1.
                                             * This should be called instead of RETRO_ENVIRONMENT_SET_VARIABLES.
                                             * This should be called the first time as early as
                                             * possible (ideally in retro_set_environment).
@@ -2504,8 +2502,20 @@ struct retro_core_option_display
 };
 
 /* Maximum number of values permitted for a core option
- * NOTE: This may be increased on a core-by-core basis
- * if required (doing so has no effect on the frontend) */
+ * > Note: We have to set a maximum value due the limitations
+ *   of the C language - i.e. it is not possible to create an
+ *   array of structs each containing a variable sized array,
+ *   so the retro_core_option_definition values array must
+ *   have a fixed size. The size limit of 128 is a balancing
+ *   act - it needs to be large enough to support all 'sane'
+ *   core options, but setting it too large may impact low memory
+ *   platforms. In practise, if a core option has more than
+ *   128 values then the implementation is likely flawed.
+ *   To quote the above API reference:
+ *      "The number of possible options should be very limited
+ *       i.e. it should be feasible to cycle through options
+ *       without a keyboard."
+ */
 #define RETRO_NUM_CORE_OPTION_VALUES_MAX 128
 
 struct retro_core_option_value