From 89a997a02bb574120bfaa83c4e7b6dd2837dfeb8 Mon Sep 17 00:00:00 2001 From: jdgleaver Date: Wed, 14 Aug 2019 11:42:56 +0100 Subject: [PATCH] (Core Options) Fix UTF-8 compilation issues, update 'libretro_core_options.h' to v1.3 format --- libretro/libretro.h | 28 +- libretro/libretro_core_options.h | 731 ++----------------------- libretro/libretro_core_options_intl.h | 738 ++++++++++++++++++++++++++ 3 files changed, 790 insertions(+), 707 deletions(-) create mode 100644 libretro/libretro_core_options_intl.h diff --git a/libretro/libretro.h b/libretro/libretro.h index 1fd2f5b7..d0f1042c 100644 --- a/libretro/libretro.h +++ b/libretro/libretro.h @@ -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 diff --git a/libretro/libretro_core_options.h b/libretro/libretro_core_options.h index 01aeea5d..1e907992 100644 --- a/libretro/libretro_core_options.h +++ b/libretro/libretro_core_options.h @@ -7,6 +7,28 @@ #include #include +#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 @@ -685,706 +707,13 @@ struct retro_core_option_definition option_defs_us[] = { { 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[] = { - - /* These variable names and possible values constitute an ABI with ZMZ (ZSNES Libretro player). - * Changing "Show layer 1" is fine, but don't change "layer_1"/etc or the possible values ("Yes|No"). - * Adding more variables and rearranging them is safe. */ - { - "snes9x_region", - "Konsol Bölgesi (Core Yenilenir)", - "Sistemin hangi bölgeden olduğunu belirtir.. 'PAL' 50hz'dir, 'NTSC' ise 60hz. Yanlış bölge seçiliyse, oyunlar normalden daha hızlı veya daha yavaş çalışacaktır.", - { - { "auto", "Otomatik" }, - { "ntsc", "NTSC" }, - { "pal", "PAL" }, - { NULL, NULL}, - }, - "auto" - }, - { - "snes9x_aspect", - "Tercih Edilen En Boy Oranı", - "Tercih edilen içerik en boy oranını seçin. Bu, yalnızca RetroArch’ın en boy oranı Video ayarlarında 'Core tarafından' olarak ayarlandığında uygulanacaktır.", - { - { "4:3", NULL }, - { "uncorrected", "Düzeltilmemiş" }, - { "auto", "Otomatik" }, - { "ntsc", "NTSC" }, - { "pal", "PAL" }, - { NULL, NULL}, - }, - "4:3" - }, - { - "snes9x_overscan", - "Aşırı Taramayı Kırp", - "Ekranın üst ve alt kısmındaki ~8 piksel sınırlarını, tipik olarak standart çözünürlüklü bir televizyondakini kaldırır. 'Otomatik' ise geçerli içeriğe bağlı olarak aşırı taramayı algılamaya ve kırpmaya çalışacaktır.", - { - { "enabled", NULL }, - { "disabled", NULL }, - { "auto", "Otomatik" }, - { NULL, NULL}, - }, - "enabled" - }, - { - "snes9x_gfx_hires", - "Hi-Res Modunu Etkinleştir", - "Oyunların hi-res moduna (512x448) geçmesine izin verir veya tüm içeriği 256x224'te (ezilmiş piksellerle) çıkmaya zorlar.", - { - { "enabled", NULL }, - { "disabled", NULL }, - { NULL, NULL}, - }, - "enabled" - }, - { - "snes9x_hires_blend", - "Hi-Res Karışımı", - "Oyun hi-res moduna geçtiğinde pikselleri karıştırır (512x448). Şeffaflık efektleri üretmek için hi-res modunu kullanan bazı oyunlar için gereklidir (Kirby's Dream Land, Jurassic Park ...).", - { - { "disabled", NULL }, - { "merge", "Birlşetir" }, - { "blur", "Bulanıklaştır" }, - { NULL, NULL}, - }, - "disabled" - }, - { - "snes9x_blargg", - "Blargg NTSC Filtresi", - "Çeşitli NTSC TV sinyallerini taklit etmek için bir video filtresi uygular.", - { - { "disabled", NULL }, - { "monochrome", "Monochrome" }, - { "rf", "RF" }, - { "composite", "Composite" }, - { "s-video", "S-Video" }, - { "rgb", "RGB" }, - { NULL, NULL}, - }, - "disabled" - }, - { - "snes9x_audio_interpolation", - "Ses Enterpolasyonu", - "Belirtilen ses filtresini uygular. 'Gaussian', orijinal donanımın bas ağırlıklı sesini üretir. 'Cubic' ve 'Sinc' daha az doğrudur ve daha fazla aralığı korur.", - { - { "gaussian", "Gaussian" }, - { "cubic", "Cubic" }, - { "sinc", "Sinc" }, - { "none", "Hiçbiri" }, - { "linear", "Linear" }, - { NULL, NULL}, - }, - "gaussian" - }, - { - "snes9x_up_down_allowed", - "Karşı Yönlere İzin Ver", - "Bunu etkinleştirmek aynı anda hem sola hem de sağa (veya yukarı ve aşağı) yönlere basma / hızlı değiştirme / tutma imkanı sağlar. Bu harekete dayalı hatalara neden olabilir.", - { - { "disabled", NULL }, - { "enabled", NULL }, - { NULL, NULL }, - }, - "disabled" - }, - { - "snes9x_overclock_superfx", - "SuperFX Hız Aşırtma", - "SuperFX işlemcisi frekans çarpanıdır. Kare hızını artırabilir veya zamanlama hatalarına neden olabilir. % 100'ün altındaki değerler yavaş cihazlarda oyun performansını artırabilir.", - { - { "50%", NULL }, - { "60%", NULL }, - { "70%", NULL }, - { "80%", NULL }, - { "90%", NULL }, - { "100%", NULL }, - { "150%", NULL }, - { "200%", NULL }, - { "250%", NULL }, - { "300%", NULL }, - { "350%", NULL }, - { "400%", NULL }, - { "450%", NULL }, - { "500%", NULL }, - { NULL, NULL}, - }, - "100%" - }, - { - "snes9x_overclock_cycles", - "Yavaşlamayı Azalt (Hack, Güvensiz)", - "SNES İşlemcisi için hız aşırtmadır. Oyunların çökmesine neden olabilir! Daha kısa yükleme süreleri için 'Hafif'i, yavaşlama gösteren oyunların çoğunda' Uyumlu 've yalnızca kesinlikle gerekliyse' Maks 'kullanın (Gradius 3, Süper R tipi ...).", - { - { "disabled", NULL }, - { "light", "Hafif" }, - { "compatible", "Uyumlu" }, - { "max", "Maks" }, - { NULL, NULL}, - }, - "disabled" - }, - { - "snes9x_reduce_sprite_flicker", - "Kırılmayı Azalt (Hack, Güvensiz)", - "Ekranda aynı anda çizilebilen sprite sayısını arttırır.", - { - { "disabled", NULL }, - { "enabled", NULL }, - { NULL, NULL}, - }, - "disabled" - }, - { - "snes9x_randomize_memory", - "Belleği Rastgele Kıl (Güvensiz)", - "Başlatıldığında sistem RAM'ını rastgele ayarlar. 'Super Off Road' gibi bazı oyunlar, oyunu daha öngörülemeyen hale getirmek için öğe yerleştirme ve AI davranışı için rastgele sayı üreticisi olarak sistem RAM'ini kullanır.", - { - { "disabled", NULL }, - { "enabled", NULL }, - { NULL, NULL}, - }, - "disabled" - }, - { - "snes9x_block_invalid_vram_access", - "Geçersiz VRAM Erişimini Engelle", - "Bazı Homebrew/ROM'lar, doğru işlem için bu seçeneğin devre dışı bırakılmasını gerektirir.", - { - { "enabled", NULL }, - { "disabled", NULL }, - { NULL, NULL}, - }, - "enabled" - }, - { - "snes9x_echo_buffer_hack", - "Eko Tampon Hack (Güvenli değil, yalnızca eski addmusic için etkinleştirin)", - "Bazı Homebrew/ROM'lar, doğru işlem için bu seçeneğin devre dışı bırakılmasını gerektirir.", - { - { "disabled", NULL }, - { "enabled", NULL }, - { NULL, NULL}, - }, - "disabled" - }, - { - "snes9x_show_lightgun_settings", - "Light Gun Ayarlarını Göster", - "Super Scope / Justifier / M.A.C.S. için tüfek girişi yapılandırmasını etkinleştir. NOT: Bu ayarın etkili olabilmesi için Hızlı Menü’nün açılması gerekir.", - { - { "enabled", NULL }, - { "disabled", NULL }, - { NULL, NULL}, - }, - "disabled" - }, - { - "snes9x_lightgun_mode", - "Light Gun Modu", - "Fare kontrollü 'Light Gun' veya 'Dokunmatik Ekran' girişini kullanın.", - { - { "Lightgun", "Light Gun" }, - { "Touchscreen", "Dokunmatik Ekran" }, - { NULL, NULL}, - }, - "Lightgun" - }, - { - "snes9x_superscope_reverse_buttons", - "Super Scope Ters Tetik Düğmeleri", - "Süper Scope için 'Ateş' ve 'İmleç' butonlarının pozisyonlarını değiştir.", - { - { "disabled", NULL }, - { "enabled", NULL }, - { NULL, NULL}, - }, - "disabled" - }, - { - "snes9x_superscope_crosshair", - "Super Scope İmkeç", - "Ekrandaki imleç işaretini değiştirin.", - { - { "0", NULL }, - { "1", NULL }, - { "2", NULL }, - { "3", NULL }, - { "4", NULL }, - { "5", NULL }, - { "6", NULL }, - { "7", NULL }, - { "8", NULL }, - { "9", NULL }, - { "10", NULL }, - { "11", NULL }, - { "12", NULL }, - { "13", NULL }, - { "14", NULL }, - { "15", NULL }, - { "16", NULL }, - { NULL, NULL}, - }, - "2" - }, - { - "snes9x_superscope_color", - "Super Scope Rengi", - "Ekrandaki imleç işaretinin rengini değiştirin.", - { - { "White", NULL }, - { "White (blend)", NULL }, - { "Red", NULL }, - { "Red (blend)", NULL }, - { "Orange", NULL }, - { "Orange (blend)", NULL }, - { "Yellow", NULL }, - { "Yellow (blend)", NULL }, - { "Green", NULL }, - { "Green (blend)", NULL }, - { "Cyan", NULL }, - { "Cyan (blend)", NULL }, - { "Sky", NULL }, - { "Sky (blend)", NULL }, - { "Blue", NULL }, - { "Blue (blend)", NULL }, - { "Violet", NULL }, - { "Violet (blend)", NULL }, - { "Pink", NULL }, - { "Pink (blend)", NULL }, - { "Purple", NULL }, - { "Purple (blend)", NULL }, - { "Black", NULL }, - { "Black (blend)", NULL }, - { "25% Grey", NULL }, - { "25% Grey (blend)", NULL }, - { "50% Grey", NULL }, - { "50% Grey (blend)", NULL }, - { "75% Grey", NULL }, - { "75% Grey (blend)", NULL }, - { NULL, NULL}, - }, - "White" - }, - { - "snes9x_justifier1_crosshair", - "Justifier 1 İmleci", - "Ekrandaki imleç işaretinin boyutunu değiştirin.", - { - { "0", NULL }, - { "1", NULL }, - { "2", NULL }, - { "3", NULL }, - { "4", NULL }, - { "5", NULL }, - { "6", NULL }, - { "7", NULL }, - { "8", NULL }, - { "9", NULL }, - { "10", NULL }, - { "11", NULL }, - { "12", NULL }, - { "13", NULL }, - { "14", NULL }, - { "15", NULL }, - { "16", NULL }, - { NULL, NULL}, - }, - "4" - }, - { - "snes9x_justifier1_color", - "Justifier 1 Rengi", - "Ekrandaki imleç işaretinin rengini değiştirin.", - { - { "Blue", NULL }, - { "Blue (blend)", NULL }, - { "Violet", NULL }, - { "Violet (blend)", NULL }, - { "Pink", NULL }, - { "Pink (blend)", NULL }, - { "Purple", NULL }, - { "Purple (blend)", NULL }, - { "Black", NULL }, - { "Black (blend)", NULL }, - { "25% Grey", NULL }, - { "25% Grey (blend)", NULL }, - { "50% Grey", NULL }, - { "50% Grey (blend)", NULL }, - { "75% Grey", NULL }, - { "75% Grey (blend)", NULL }, - { "White", NULL }, - { "White (blend)", NULL }, - { "Red", NULL }, - { "Red (blend)", NULL }, - { "Orange", NULL }, - { "Orange (blend)", NULL }, - { "Yellow", NULL }, - { "Yellow (blend)", NULL }, - { "Green", NULL }, - { "Green (blend)", NULL }, - { "Cyan", NULL }, - { "Cyan (blend)", NULL }, - { "Sky", NULL }, - { "Sky (blend)", NULL }, - { NULL, NULL}, - }, - "Blue" - }, - { - "snes9x_justifier2_crosshair", - "Justifier 2 İmleci", - "Ekrandaki imleç işaretinin boyutunu değiştirin.", - { - { "0", NULL }, - { "1", NULL }, - { "2", NULL }, - { "3", NULL }, - { "4", NULL }, - { "5", NULL }, - { "6", NULL }, - { "7", NULL }, - { "8", NULL }, - { "9", NULL }, - { "10", NULL }, - { "11", NULL }, - { "12", NULL }, - { "13", NULL }, - { "14", NULL }, - { "15", NULL }, - { "16", NULL }, - { NULL, NULL}, - }, - "4" - }, - { - "snes9x_justifier2_color", - "Justifier 2 REngi", - "Ekrandaki imleç işaretinin rengini değiştirin.", - { - { "Pink", NULL }, - { "Pink (blend)", NULL }, - { "Purple", NULL }, - { "Purple (blend)", NULL }, - { "Black", NULL }, - { "Black (blend)", NULL }, - { "25% Grey", NULL }, - { "25% Grey (blend)", NULL }, - { "50% Grey", NULL }, - { "50% Grey (blend)", NULL }, - { "75% Grey", NULL }, - { "75% Grey (blend)", NULL }, - { "White", NULL }, - { "White (blend)", NULL }, - { "Red", NULL }, - { "Red (blend)", NULL }, - { "Orange", NULL }, - { "Orange (blend)", NULL }, - { "Yellow", NULL }, - { "Yellow (blend)", NULL }, - { "Green", NULL }, - { "Green (blend)", NULL }, - { "Cyan", NULL }, - { "Cyan (blend)", NULL }, - { "Sky", NULL }, - { "Sky (blend)", NULL }, - { "Blue", NULL }, - { "Blue (blend)", NULL }, - { "Violet", NULL }, - { "Violet (blend)", NULL }, - { NULL, NULL}, - }, - "Pink" - }, - { - "snes9x_rifle_crosshair", - "M.A.C.S. Tüfek ", - "Ekrandaki imleç işaretinin rengini değiştirin..", - { - { "0", NULL }, - { "1", NULL }, - { "2", NULL }, - { "3", NULL }, - { "4", NULL }, - { "5", NULL }, - { "6", NULL }, - { "7", NULL }, - { "8", NULL }, - { "9", NULL }, - { "10", NULL }, - { "11", NULL }, - { "12", NULL }, - { "13", NULL }, - { "14", NULL }, - { "15", NULL }, - { "16", NULL }, - { NULL, NULL}, - }, - "2" - }, - { - "snes9x_rifle_color", - "M.A.C.S. Tüfek Rengi", - "Ekrandaki imleç işaretinin rengini değiştirin.", - { - { "White", NULL }, - { "White (blend)", NULL }, - { "Red", NULL }, - { "Red (blend)", NULL }, - { "Orange", NULL }, - { "Orange (blend)", NULL }, - { "Yellow", NULL }, - { "Yellow (blend)", NULL }, - { "Green", NULL }, - { "Green (blend)", NULL }, - { "Cyan", NULL }, - { "Cyan (blend)", NULL }, - { "Sky", NULL }, - { "Sky (blend)", NULL }, - { "Blue", NULL }, - { "Blue (blend)", NULL }, - { "Violet", NULL }, - { "Violet (blend)", NULL }, - { "Pink", NULL }, - { "Pink (blend)", NULL }, - { "Purple", NULL }, - { "Purple (blend)", NULL }, - { "Black", NULL }, - { "Black (blend)", NULL }, - { "25% Grey", NULL }, - { "25% Grey (blend)", NULL }, - { "50% Grey", NULL }, - { "50% Grey (blend)", NULL }, - { "75% Grey", NULL }, - { "75% Grey (blend)", NULL }, - { NULL, NULL}, - }, - "White" - }, - { - "snes9x_show_advanced_av_settings", - "Gelişmiş Ses/Video Ayarlarını Göster", - "Düşük seviye video katmanı / GFX etkisi / ses kanalı parametrelerinin yapılandırılmasını etkinleştirir. NOT: Bu ayarın etkili olabilmesi için Hızlı Menü’nün açılması gerekir.", - { - { "enabled", NULL }, - { "disabled", NULL }, - { NULL, NULL}, - }, - "disabled" - }, - { - "snes9x_layer_1", - "1. Katmanı Göster", - NULL, - { - { "enabled", NULL }, - { "disabled", NULL }, - { NULL, NULL}, - }, - "enabled" - }, - { - "snes9x_layer_2", - "2. Katmanı Göster", - NULL, - { - { "enabled", NULL }, - { "disabled", NULL }, - { NULL, NULL}, - }, - "enabled" - }, - { - "snes9x_layer_3", - "3. Katmanı Göster", - NULL, - { - { "enabled", NULL }, - { "disabled", NULL }, - { NULL, NULL}, - }, - "enabled" - }, - { - "snes9x_layer_4", - "4. Katmanı Göster", - NULL, - { - { "enabled", NULL }, - { "disabled", NULL }, - { NULL, NULL}, - }, - "enabled" - }, - { - "snes9x_layer_5", - "Sprite Katmanını Göster", - NULL, - { - { "enabled", NULL }, - { "disabled", NULL }, - { NULL, NULL}, - }, - "enabled" - }, - { - "snes9x_gfx_clip", - "Grafik Klibi Pencerelerini Etkinleştir", - NULL, - { - { "enabled", NULL }, - { "disabled", NULL }, - { NULL, NULL}, - }, - "enabled" - }, - { - "snes9x_gfx_transp", - "Saydamlık Efektlerini Etkinleştir", - NULL, - { - { "enabled", NULL }, - { "disabled", NULL }, - { NULL, NULL}, - }, - "enabled" - }, - { - "snes9x_sndchan_1", - "Ses Kanalı 1'i etkinleştir", - NULL, - { - { "enabled", NULL }, - { "disabled", NULL }, - { NULL, NULL}, - }, - "enabled" - }, - { - "snes9x_sndchan_2", - "Ses Kanalı 2'yi etkinleştir", - NULL, - { - { "enabled", NULL }, - { "disabled", NULL }, - { NULL, NULL}, - }, - "enabled" - }, - { - "snes9x_sndchan_3", - "Ses Kanalı 3'ü etkinleştir", - NULL, - { - { "enabled", NULL }, - { "disabled", NULL }, - { NULL, NULL}, - }, - "enabled" - }, - { - "snes9x_sndchan_4", - "Ses Kanalı 4'ü etkinleştir", - NULL, - { - { "enabled", NULL }, - { "disabled", NULL }, - { NULL, NULL}, - }, - "enabled" - }, - { - "snes9x_sndchan_5", - "Ses Kanalı 5'i etkinleştir", - NULL, - { - { "enabled", NULL }, - { "disabled", NULL }, - { NULL, NULL}, - }, - "enabled" - }, - { - "snes9x_sndchan_6", - "Ses Kanalı 6'yı etkinleştir", - NULL, - { - { "enabled", NULL }, - { "disabled", NULL }, - { NULL, NULL}, - }, - "enabled" - }, - { - "snes9x_sndchan_7", - "Ses Kanalı 7'yi etkinleştir", - NULL, - { - { "enabled", NULL }, - { "disabled", NULL }, - { NULL, NULL}, - }, - "enabled" - }, - { - "snes9x_sndchan_8", - "Ses Kanalı 8'i etkinleştir", - NULL, - { - { "enabled", NULL }, - { "disabled", NULL }, - { NULL, NULL}, - }, - "enabled" - }, - { 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 */ @@ -1406,6 +735,7 @@ struct retro_core_option_definition *option_defs_intl[RETRO_LANGUAGE_LAST] = { NULL, /* RETRO_LANGUAGE_GREEK */ option_defs_tr, /* RETRO_LANGUAGE_TURKISH */ }; +#endif /* ******************************** @@ -1414,7 +744,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) @@ -1427,8 +758,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; @@ -1440,6 +772,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 { @@ -1510,7 +845,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; @@ -1543,7 +878,7 @@ static INLINE void libretro_set_core_options(retro_environment_t environ_cb) variables[option_index].value = values_buf[i]; option_index++; } - + /* Set variables */ environ_cb(RETRO_ENVIRONMENT_SET_VARIABLES, variables); diff --git a/libretro/libretro_core_options_intl.h b/libretro/libretro_core_options_intl.h new file mode 100644 index 00000000..68f4adc3 --- /dev/null +++ b/libretro/libretro_core_options_intl.h @@ -0,0 +1,738 @@ +#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 + +/* + ******************************** + * 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[] = { + + /* These variable names and possible values constitute an ABI with ZMZ (ZSNES Libretro player). + * Changing "Show layer 1" is fine, but don't change "layer_1"/etc or the possible values ("Yes|No"). + * Adding more variables and rearranging them is safe. */ + { + "snes9x_region", + "Konsol Bölgesi (Core Yenilenir)", + "Sistemin hangi bölgeden olduğunu belirtir.. 'PAL' 50hz'dir, 'NTSC' ise 60hz. Yanlış bölge seçiliyse, oyunlar normalden daha hızlı veya daha yavaş çalışacaktır.", + { + { "auto", "Otomatik" }, + { "ntsc", "NTSC" }, + { "pal", "PAL" }, + { NULL, NULL}, + }, + "auto" + }, + { + "snes9x_aspect", + "Tercih Edilen En Boy Oranı", + "Tercih edilen içerik en boy oranını seçin. Bu, yalnızca RetroArch’ın en boy oranı Video ayarlarında 'Core tarafından' olarak ayarlandığında uygulanacaktır.", + { + { "4:3", NULL }, + { "uncorrected", "Düzeltilmemiş" }, + { "auto", "Otomatik" }, + { "ntsc", "NTSC" }, + { "pal", "PAL" }, + { NULL, NULL}, + }, + "4:3" + }, + { + "snes9x_overscan", + "Aşırı Taramayı Kırp", + "Ekranın üst ve alt kısmındaki ~8 piksel sınırlarını, tipik olarak standart çözünürlüklü bir televizyondakini kaldırır. 'Otomatik' ise geçerli içeriğe bağlı olarak aşırı taramayı algılamaya ve kırpmaya çalışacaktır.", + { + { "enabled", NULL }, + { "disabled", NULL }, + { "auto", "Otomatik" }, + { NULL, NULL}, + }, + "enabled" + }, + { + "snes9x_gfx_hires", + "Hi-Res Modunu Etkinleştir", + "Oyunların hi-res moduna (512x448) geçmesine izin verir veya tüm içeriği 256x224'te (ezilmiş piksellerle) çıkmaya zorlar.", + { + { "enabled", NULL }, + { "disabled", NULL }, + { NULL, NULL}, + }, + "enabled" + }, + { + "snes9x_hires_blend", + "Hi-Res Karışımı", + "Oyun hi-res moduna geçtiğinde pikselleri karıştırır (512x448). Şeffaflık efektleri üretmek için hi-res modunu kullanan bazı oyunlar için gereklidir (Kirby's Dream Land, Jurassic Park ...).", + { + { "disabled", NULL }, + { "merge", "Birlşetir" }, + { "blur", "Bulanıklaştır" }, + { NULL, NULL}, + }, + "disabled" + }, + { + "snes9x_blargg", + "Blargg NTSC Filtresi", + "Çeşitli NTSC TV sinyallerini taklit etmek için bir video filtresi uygular.", + { + { "disabled", NULL }, + { "monochrome", "Monochrome" }, + { "rf", "RF" }, + { "composite", "Composite" }, + { "s-video", "S-Video" }, + { "rgb", "RGB" }, + { NULL, NULL}, + }, + "disabled" + }, + { + "snes9x_audio_interpolation", + "Ses Enterpolasyonu", + "Belirtilen ses filtresini uygular. 'Gaussian', orijinal donanımın bas ağırlıklı sesini üretir. 'Cubic' ve 'Sinc' daha az doğrudur ve daha fazla aralığı korur.", + { + { "gaussian", "Gaussian" }, + { "cubic", "Cubic" }, + { "sinc", "Sinc" }, + { "none", "Hiçbiri" }, + { "linear", "Linear" }, + { NULL, NULL}, + }, + "gaussian" + }, + { + "snes9x_up_down_allowed", + "Karşı Yönlere İzin Ver", + "Bunu etkinleştirmek aynı anda hem sola hem de sağa (veya yukarı ve aşağı) yönlere basma / hızlı değiştirme / tutma imkanı sağlar. Bu harekete dayalı hatalara neden olabilir.", + { + { "disabled", NULL }, + { "enabled", NULL }, + { NULL, NULL }, + }, + "disabled" + }, + { + "snes9x_overclock_superfx", + "SuperFX Hız Aşırtma", + "SuperFX işlemcisi frekans çarpanıdır. Kare hızını artırabilir veya zamanlama hatalarına neden olabilir. % 100'ün altındaki değerler yavaş cihazlarda oyun performansını artırabilir.", + { + { "50%", NULL }, + { "60%", NULL }, + { "70%", NULL }, + { "80%", NULL }, + { "90%", NULL }, + { "100%", NULL }, + { "150%", NULL }, + { "200%", NULL }, + { "250%", NULL }, + { "300%", NULL }, + { "350%", NULL }, + { "400%", NULL }, + { "450%", NULL }, + { "500%", NULL }, + { NULL, NULL}, + }, + "100%" + }, + { + "snes9x_overclock_cycles", + "Yavaşlamayı Azalt (Hack, Güvensiz)", + "SNES İşlemcisi için hız aşırtmadır. Oyunların çökmesine neden olabilir! Daha kısa yükleme süreleri için 'Hafif'i, yavaşlama gösteren oyunların çoğunda' Uyumlu 've yalnızca kesinlikle gerekliyse' Maks 'kullanın (Gradius 3, Süper R tipi ...).", + { + { "disabled", NULL }, + { "light", "Hafif" }, + { "compatible", "Uyumlu" }, + { "max", "Maks" }, + { NULL, NULL}, + }, + "disabled" + }, + { + "snes9x_reduce_sprite_flicker", + "Kırılmayı Azalt (Hack, Güvensiz)", + "Ekranda aynı anda çizilebilen sprite sayısını arttırır.", + { + { "disabled", NULL }, + { "enabled", NULL }, + { NULL, NULL}, + }, + "disabled" + }, + { + "snes9x_randomize_memory", + "Belleği Rastgele Kıl (Güvensiz)", + "Başlatıldığında sistem RAM'ını rastgele ayarlar. 'Super Off Road' gibi bazı oyunlar, oyunu daha öngörülemeyen hale getirmek için öğe yerleştirme ve AI davranışı için rastgele sayı üreticisi olarak sistem RAM'ini kullanır.", + { + { "disabled", NULL }, + { "enabled", NULL }, + { NULL, NULL}, + }, + "disabled" + }, + { + "snes9x_block_invalid_vram_access", + "Geçersiz VRAM Erişimini Engelle", + "Bazı Homebrew/ROM'lar, doğru işlem için bu seçeneğin devre dışı bırakılmasını gerektirir.", + { + { "enabled", NULL }, + { "disabled", NULL }, + { NULL, NULL}, + }, + "enabled" + }, + { + "snes9x_echo_buffer_hack", + "Eko Tampon Hack (Güvenli değil, yalnızca eski addmusic için etkinleştirin)", + "Bazı Homebrew/ROM'lar, doğru işlem için bu seçeneğin devre dışı bırakılmasını gerektirir.", + { + { "disabled", NULL }, + { "enabled", NULL }, + { NULL, NULL}, + }, + "disabled" + }, + { + "snes9x_show_lightgun_settings", + "Light Gun Ayarlarını Göster", + "Super Scope / Justifier / M.A.C.S. için tüfek girişi yapılandırmasını etkinleştir. NOT: Bu ayarın etkili olabilmesi için Hızlı Menü’nün açılması gerekir.", + { + { "enabled", NULL }, + { "disabled", NULL }, + { NULL, NULL}, + }, + "disabled" + }, + { + "snes9x_lightgun_mode", + "Light Gun Modu", + "Fare kontrollü 'Light Gun' veya 'Dokunmatik Ekran' girişini kullanın.", + { + { "Lightgun", "Light Gun" }, + { "Touchscreen", "Dokunmatik Ekran" }, + { NULL, NULL}, + }, + "Lightgun" + }, + { + "snes9x_superscope_reverse_buttons", + "Super Scope Ters Tetik Düğmeleri", + "Süper Scope için 'Ateş' ve 'İmleç' butonlarının pozisyonlarını değiştir.", + { + { "disabled", NULL }, + { "enabled", NULL }, + { NULL, NULL}, + }, + "disabled" + }, + { + "snes9x_superscope_crosshair", + "Super Scope İmkeç", + "Ekrandaki imleç işaretini değiştirin.", + { + { "0", NULL }, + { "1", NULL }, + { "2", NULL }, + { "3", NULL }, + { "4", NULL }, + { "5", NULL }, + { "6", NULL }, + { "7", NULL }, + { "8", NULL }, + { "9", NULL }, + { "10", NULL }, + { "11", NULL }, + { "12", NULL }, + { "13", NULL }, + { "14", NULL }, + { "15", NULL }, + { "16", NULL }, + { NULL, NULL}, + }, + "2" + }, + { + "snes9x_superscope_color", + "Super Scope Rengi", + "Ekrandaki imleç işaretinin rengini değiştirin.", + { + { "White", NULL }, + { "White (blend)", NULL }, + { "Red", NULL }, + { "Red (blend)", NULL }, + { "Orange", NULL }, + { "Orange (blend)", NULL }, + { "Yellow", NULL }, + { "Yellow (blend)", NULL }, + { "Green", NULL }, + { "Green (blend)", NULL }, + { "Cyan", NULL }, + { "Cyan (blend)", NULL }, + { "Sky", NULL }, + { "Sky (blend)", NULL }, + { "Blue", NULL }, + { "Blue (blend)", NULL }, + { "Violet", NULL }, + { "Violet (blend)", NULL }, + { "Pink", NULL }, + { "Pink (blend)", NULL }, + { "Purple", NULL }, + { "Purple (blend)", NULL }, + { "Black", NULL }, + { "Black (blend)", NULL }, + { "25% Grey", NULL }, + { "25% Grey (blend)", NULL }, + { "50% Grey", NULL }, + { "50% Grey (blend)", NULL }, + { "75% Grey", NULL }, + { "75% Grey (blend)", NULL }, + { NULL, NULL}, + }, + "White" + }, + { + "snes9x_justifier1_crosshair", + "Justifier 1 İmleci", + "Ekrandaki imleç işaretinin boyutunu değiştirin.", + { + { "0", NULL }, + { "1", NULL }, + { "2", NULL }, + { "3", NULL }, + { "4", NULL }, + { "5", NULL }, + { "6", NULL }, + { "7", NULL }, + { "8", NULL }, + { "9", NULL }, + { "10", NULL }, + { "11", NULL }, + { "12", NULL }, + { "13", NULL }, + { "14", NULL }, + { "15", NULL }, + { "16", NULL }, + { NULL, NULL}, + }, + "4" + }, + { + "snes9x_justifier1_color", + "Justifier 1 Rengi", + "Ekrandaki imleç işaretinin rengini değiştirin.", + { + { "Blue", NULL }, + { "Blue (blend)", NULL }, + { "Violet", NULL }, + { "Violet (blend)", NULL }, + { "Pink", NULL }, + { "Pink (blend)", NULL }, + { "Purple", NULL }, + { "Purple (blend)", NULL }, + { "Black", NULL }, + { "Black (blend)", NULL }, + { "25% Grey", NULL }, + { "25% Grey (blend)", NULL }, + { "50% Grey", NULL }, + { "50% Grey (blend)", NULL }, + { "75% Grey", NULL }, + { "75% Grey (blend)", NULL }, + { "White", NULL }, + { "White (blend)", NULL }, + { "Red", NULL }, + { "Red (blend)", NULL }, + { "Orange", NULL }, + { "Orange (blend)", NULL }, + { "Yellow", NULL }, + { "Yellow (blend)", NULL }, + { "Green", NULL }, + { "Green (blend)", NULL }, + { "Cyan", NULL }, + { "Cyan (blend)", NULL }, + { "Sky", NULL }, + { "Sky (blend)", NULL }, + { NULL, NULL}, + }, + "Blue" + }, + { + "snes9x_justifier2_crosshair", + "Justifier 2 İmleci", + "Ekrandaki imleç işaretinin boyutunu değiştirin.", + { + { "0", NULL }, + { "1", NULL }, + { "2", NULL }, + { "3", NULL }, + { "4", NULL }, + { "5", NULL }, + { "6", NULL }, + { "7", NULL }, + { "8", NULL }, + { "9", NULL }, + { "10", NULL }, + { "11", NULL }, + { "12", NULL }, + { "13", NULL }, + { "14", NULL }, + { "15", NULL }, + { "16", NULL }, + { NULL, NULL}, + }, + "4" + }, + { + "snes9x_justifier2_color", + "Justifier 2 REngi", + "Ekrandaki imleç işaretinin rengini değiştirin.", + { + { "Pink", NULL }, + { "Pink (blend)", NULL }, + { "Purple", NULL }, + { "Purple (blend)", NULL }, + { "Black", NULL }, + { "Black (blend)", NULL }, + { "25% Grey", NULL }, + { "25% Grey (blend)", NULL }, + { "50% Grey", NULL }, + { "50% Grey (blend)", NULL }, + { "75% Grey", NULL }, + { "75% Grey (blend)", NULL }, + { "White", NULL }, + { "White (blend)", NULL }, + { "Red", NULL }, + { "Red (blend)", NULL }, + { "Orange", NULL }, + { "Orange (blend)", NULL }, + { "Yellow", NULL }, + { "Yellow (blend)", NULL }, + { "Green", NULL }, + { "Green (blend)", NULL }, + { "Cyan", NULL }, + { "Cyan (blend)", NULL }, + { "Sky", NULL }, + { "Sky (blend)", NULL }, + { "Blue", NULL }, + { "Blue (blend)", NULL }, + { "Violet", NULL }, + { "Violet (blend)", NULL }, + { NULL, NULL}, + }, + "Pink" + }, + { + "snes9x_rifle_crosshair", + "M.A.C.S. Tüfek ", + "Ekrandaki imleç işaretinin rengini değiştirin..", + { + { "0", NULL }, + { "1", NULL }, + { "2", NULL }, + { "3", NULL }, + { "4", NULL }, + { "5", NULL }, + { "6", NULL }, + { "7", NULL }, + { "8", NULL }, + { "9", NULL }, + { "10", NULL }, + { "11", NULL }, + { "12", NULL }, + { "13", NULL }, + { "14", NULL }, + { "15", NULL }, + { "16", NULL }, + { NULL, NULL}, + }, + "2" + }, + { + "snes9x_rifle_color", + "M.A.C.S. Tüfek Rengi", + "Ekrandaki imleç işaretinin rengini değiştirin.", + { + { "White", NULL }, + { "White (blend)", NULL }, + { "Red", NULL }, + { "Red (blend)", NULL }, + { "Orange", NULL }, + { "Orange (blend)", NULL }, + { "Yellow", NULL }, + { "Yellow (blend)", NULL }, + { "Green", NULL }, + { "Green (blend)", NULL }, + { "Cyan", NULL }, + { "Cyan (blend)", NULL }, + { "Sky", NULL }, + { "Sky (blend)", NULL }, + { "Blue", NULL }, + { "Blue (blend)", NULL }, + { "Violet", NULL }, + { "Violet (blend)", NULL }, + { "Pink", NULL }, + { "Pink (blend)", NULL }, + { "Purple", NULL }, + { "Purple (blend)", NULL }, + { "Black", NULL }, + { "Black (blend)", NULL }, + { "25% Grey", NULL }, + { "25% Grey (blend)", NULL }, + { "50% Grey", NULL }, + { "50% Grey (blend)", NULL }, + { "75% Grey", NULL }, + { "75% Grey (blend)", NULL }, + { NULL, NULL}, + }, + "White" + }, + { + "snes9x_show_advanced_av_settings", + "Gelişmiş Ses/Video Ayarlarını Göster", + "Düşük seviye video katmanı / GFX etkisi / ses kanalı parametrelerinin yapılandırılmasını etkinleştirir. NOT: Bu ayarın etkili olabilmesi için Hızlı Menü’nün açılması gerekir.", + { + { "enabled", NULL }, + { "disabled", NULL }, + { NULL, NULL}, + }, + "disabled" + }, + { + "snes9x_layer_1", + "1. Katmanı Göster", + NULL, + { + { "enabled", NULL }, + { "disabled", NULL }, + { NULL, NULL}, + }, + "enabled" + }, + { + "snes9x_layer_2", + "2. Katmanı Göster", + NULL, + { + { "enabled", NULL }, + { "disabled", NULL }, + { NULL, NULL}, + }, + "enabled" + }, + { + "snes9x_layer_3", + "3. Katmanı Göster", + NULL, + { + { "enabled", NULL }, + { "disabled", NULL }, + { NULL, NULL}, + }, + "enabled" + }, + { + "snes9x_layer_4", + "4. Katmanı Göster", + NULL, + { + { "enabled", NULL }, + { "disabled", NULL }, + { NULL, NULL}, + }, + "enabled" + }, + { + "snes9x_layer_5", + "Sprite Katmanını Göster", + NULL, + { + { "enabled", NULL }, + { "disabled", NULL }, + { NULL, NULL}, + }, + "enabled" + }, + { + "snes9x_gfx_clip", + "Grafik Klibi Pencerelerini Etkinleştir", + NULL, + { + { "enabled", NULL }, + { "disabled", NULL }, + { NULL, NULL}, + }, + "enabled" + }, + { + "snes9x_gfx_transp", + "Saydamlık Efektlerini Etkinleştir", + NULL, + { + { "enabled", NULL }, + { "disabled", NULL }, + { NULL, NULL}, + }, + "enabled" + }, + { + "snes9x_sndchan_1", + "Ses Kanalı 1'i etkinleştir", + NULL, + { + { "enabled", NULL }, + { "disabled", NULL }, + { NULL, NULL}, + }, + "enabled" + }, + { + "snes9x_sndchan_2", + "Ses Kanalı 2'yi etkinleştir", + NULL, + { + { "enabled", NULL }, + { "disabled", NULL }, + { NULL, NULL}, + }, + "enabled" + }, + { + "snes9x_sndchan_3", + "Ses Kanalı 3'ü etkinleştir", + NULL, + { + { "enabled", NULL }, + { "disabled", NULL }, + { NULL, NULL}, + }, + "enabled" + }, + { + "snes9x_sndchan_4", + "Ses Kanalı 4'ü etkinleştir", + NULL, + { + { "enabled", NULL }, + { "disabled", NULL }, + { NULL, NULL}, + }, + "enabled" + }, + { + "snes9x_sndchan_5", + "Ses Kanalı 5'i etkinleştir", + NULL, + { + { "enabled", NULL }, + { "disabled", NULL }, + { NULL, NULL}, + }, + "enabled" + }, + { + "snes9x_sndchan_6", + "Ses Kanalı 6'yı etkinleştir", + NULL, + { + { "enabled", NULL }, + { "disabled", NULL }, + { NULL, NULL}, + }, + "enabled" + }, + { + "snes9x_sndchan_7", + "Ses Kanalı 7'yi etkinleştir", + NULL, + { + { "enabled", NULL }, + { "disabled", NULL }, + { NULL, NULL}, + }, + "enabled" + }, + { + "snes9x_sndchan_8", + "Ses Kanalı 8'i etkinleştir", + NULL, + { + { "enabled", NULL }, + { "disabled", NULL }, + { NULL, NULL}, + }, + "enabled" + }, + { NULL, NULL, NULL, {{0}}, NULL }, +}; + +#ifdef __cplusplus +} +#endif + +#endif