#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
* 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",
{ "1", NULL },
{ "2", NULL },
{ "3", NULL },
- { NULL, NULL},
+ { NULL, NULL },
},
"0",
},
"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",
},
{
{ "auto", "auto" },
{ "NTSC", "ntsc" },
- { "PAL", "pal" },
- { NULL, NULL},
+ { "PAL", "pal" },
+ { NULL, NULL },
},
"auto",
},
{
"pcsx_rearmed_memcard2",
"Enable Second Memory Card (Shared)",
- "Enabled the memory card slot 2. This memory card is shared amongs all games.",
+ "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",
{
- { "standard", NULL },
- { "analog", NULL },
+ { "standard", NULL },
+ { "analog", NULL },
{ "dualshock", NULL },
- { "negcon", NULL },
- { "none", NULL },
- { NULL, NULL},
+ { "negcon", NULL },
+ { "none", NULL },
+ { NULL, NULL },
},
"standard",
},
"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",
},
"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",
},
"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",
},
"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",
},{
"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",
},{
"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",
},{
"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",
},
"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",
},
{
"pcsx_rearmed_multitap2",
"Multitap 2",
- "Enables/Disables multitap on port 2, allowing upto 8 players in games that permit it. Multitap 1 has to be enabled for this to work.",
+ "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",
},
{ "20", NULL },
{ "25", NULL },
{ "30", NULL },
- { NULL, NULL},
+ { NULL, NULL },
},
"0",
},
"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",
},
{
{ "disabled", NULL },
{ "enabled", NULL },
- { NULL, NULL},
+ { NULL, NULL },
},
"enabled",
},
{
{ "disabled", NULL },
{ "enabled", NULL },
- { NULL, NULL},
+ { NULL, NULL },
},
"enabled",
},
{
"pcsx_rearmed_drc",
"Dynamic Recompiler",
- "Enables core to use dynamic recompiler or interpreter (slower) cpu instructions.",
+ "Enables core to use dynamic recompiler or interpreter (slower) CPU instructions.",
{
{ "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 */
{
{ "disabled", NULL },
{ "enabled", NULL },
- { NULL, NULL},
+ { NULL, NULL },
},
"disabled",
},
{
"pcsx_rearmed_neon_enhancement_enable",
"Enhanced Resolution (Slow)",
- "Renders in double resolution at the cost of lower performance",
+ "Renders in double resolution at the cost of lower performance.",
{
{ "disabled", NULL },
{ "enabled", NULL },
- { NULL, NULL},
+ { NULL, NULL },
},
"disabled",
},
{
{ "disabled", NULL },
{ "enabled", NULL },
- { NULL, NULL},
+ { NULL, NULL },
},
"disabled",
},
{
{ "disabled", NULL },
{ "enabled", NULL },
- { NULL, NULL},
+ { NULL, NULL },
},
"enabled",
},
{
{ "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",
+ "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 Dark Forces",
+ "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_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 },
+ { NULL, NULL},
+ },
+ "disabled",
+ },
+ {
+ "pcsx_rearmed_gpu_unai_blending",
+ "(GPU) Enable Blending",
+ NULL,
+ {
+ { "disabled", NULL },
+ { "enabled", NULL },
+ { NULL, NULL},
+ },
+ "enabled",
+ },
+ {
+ "pcsx_rearmed_gpu_unai_lighting",
+ "(GPU) Enable Lighting",
+ NULL,
+ {
+ { "disabled", NULL },
+ { "enabled", NULL },
+ { NULL, NULL},
+ },
+ "enabled",
+ },
+ {
+ "pcsx_rearmed_gpu_unai_fast_lighting",
+ "(GPU) Enable Fast Lighting",
+ NULL,
+ {
+ { "disabled", NULL },
+ { "enabled", NULL },
+ { NULL, NULL},
+ },
+ "enabled",
+ },
+ {
+ "pcsx_rearmed_gpu_unai_ilace_force",
+ "(GPU) Enable Forced Interlace",
+ NULL,
+ {
+ { "disabled", NULL },
+ { "enabled", NULL },
+ { NULL, NULL},
+ },
+ "disabled",
+ },
+ {
+ "pcsx_rearmed_gpu_unai_pixel_skip",
+ "(GPU) Enable Pixel Skip",
+ NULL,
+ {
+ { "disabled", NULL },
+ { "enabled", NULL },
+ { NULL, NULL},
+ },
+ "disabled",
+ },
+#endif /* GPU UNAI Advanced Settings */
+
{
"pcsx_rearmed_show_bios_bootlogo",
"Show Bios Bootlogo",
- "When enabled, shows the playstation logo when starting or resetting. (Breaks some games).",
+ "When enabled, shows the PlayStation logo when starting or resetting. (Breaks some games).",
{
{ "disabled", NULL },
{ "enabled", NULL },
- { NULL, NULL},
+ { NULL, NULL },
},
"disabled",
},
{
{ "disabled", NULL },
{ "enabled", NULL },
- { NULL, NULL},
+ { NULL, NULL },
},
"enabled",
},
"Sound Interpolation",
NULL,
{
- { "simple", NULL },
- { "gaussian", NULL },
- { "cubic", NULL },
- { "off", NULL },
- { NULL, NULL},
+ { "simple", "Simple" },
+ { "gaussian", "Gaussian" },
+ { "cubic", "Cubic" },
+ { "off", "disabled" },
+ { NULL, NULL },
},
"simple",
},
{
{ "disabled", NULL },
{ "enabled", NULL },
- { NULL, NULL},
+ { NULL, NULL },
},
"disabled",
},
{
{ "disabled", NULL },
{ "enabled", NULL },
- { NULL, NULL},
+ { NULL, NULL },
},
"disabled",
},
{
{ "disabled", NULL },
{ "enabled", NULL },
- { NULL, NULL},
+ { NULL, NULL },
},
"disabled",
},
{
{ "disabled", NULL },
{ "enabled", NULL },
- { NULL, NULL},
+ { NULL, NULL },
},
"enabled",
},
{
{ "disabled", NULL },
{ "enabled", NULL },
- { NULL, NULL},
+ { NULL, NULL },
},
"enabled",
},
{
{ "disabled", NULL },
{ "enabled", NULL },
- { NULL, NULL},
+ { NULL, NULL },
},
"disabled",
},
{
{ "disabled", NULL },
{ "enabled", NULL },
- { NULL, NULL},
+ { NULL, NULL },
},
"disabled",
},
{
{ "disabled", NULL },
{ "enabled", NULL },
- { NULL, NULL},
+ { NULL, NULL },
},
"disabled",
},
#endif /* DRC_DISABLE */
- { NULL, NULL, NULL, { NULL, NULL }, NULL },
+ { 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 */
-
/*
********************************
* 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 */
NULL, /* RETRO_LANGUAGE_VIETNAMESE */
NULL, /* RETRO_LANGUAGE_ARABIC */
NULL, /* RETRO_LANGUAGE_GREEK */
- NULL, /* RETRO_LANGUAGE_TURKISH */
+ option_defs_tr, /* RETRO_LANGUAGE_TURKISH */
};
+#endif
/*
********************************
*/
/* 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)
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;
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
{
}
/* Build values string */
- if (num_values > 1)
+ if (num_values > 0)
{
size_t j;