diff --git a/intl/activate.py b/intl/activate.py index 0ef70c2a6..38426a6a4 100644 --- a/intl/activate.py +++ b/intl/activate.py @@ -62,7 +62,7 @@ if __name__ == '__main__': translate_txt = translate_txt.replace('<0-59>', f"{minutes}") translate_txt = translate_txt.replace('<0-23>', f"{hour}") translate_txt = translate_txt.replace('# Fridays at , UTC', - f"# Fridays at {hour%12}:{minutes} {'AM' if hour < 12 else 'PM'}, UTC") + f"# Fridays at {hour%12}:{minutes if minutes > 9 else '0' + str(minutes)} {'AM' if hour < 12 else 'PM'}, UTC") translate_txt = translate_txt.replace("", CORE_NAME) translate_txt = translate_txt.replace('/libretro_core_options_intl.h', core_intl_file) diff --git a/intl/core_option_regex.py b/intl/core_option_regex.py index 34a3f20a2..753bd3fa0 100644 --- a/intl/core_option_regex.py +++ b/intl/core_option_regex.py @@ -1,14 +1,14 @@ import re -# 0: full struct; 1: up to & including first []; 2: content between first {} -p_struct = re.compile(r'(struct\s*[a-zA-Z0-9_\s]+\[])\s*' - r'(?:(?:\/\*(?:.|[\r\n])*?\*\/|\/\/.*[\r\n]+)\s*)*' +# 0: full struct; 1: up to & including first []; 2 & 3: comments; 4: content between first {} +p_struct = re.compile(r'(\bstruct\b\s*[a-zA-Z0-9_\s]+\[])\s*' # 1st capturing group + r'(?:(?=(\/\*(?:.|[\r\n])*?\*\/|\/\/.*[\r\n]+))\2\s*)*' # 2nd capturing group r'=\s*' # = - r'(?:(?:\/\*(?:.|[\r\n])*?\*\/|\/\/.*[\r\n]+)\s*)*' + r'(?:(?=(\/\*(?:.|[\r\n])*?\*\/|\/\/.*[\r\n]+))\3\s*)*' # 3rd capturing group r'{((?:.|[\r\n])*?)\{\s*NULL,\s*NULL,\s*NULL\s*(?:.|[\r\n])*?},?(?:.|[\r\n])*?};') # captures full struct, it's beginning and it's content # 0: type name[]; 1: type; 2: name -p_type_name = re.compile(r'(retro_core_option_[a-zA-Z0-9_]+)\s*' - r'(option_cats([a-z_]{0,8})|option_defs([a-z_]{0,8}))\s*\[]') +p_type_name = re.compile(r'(\bretro_core_option_[a-zA-Z0-9_]+)\s*' + r'(\boption_cats([a-z_]{0,8})|\boption_defs([a-z_]*))\s*\[]') # 0: full option; 1: key; 2: description; 3: additional info; 4: key/value pairs p_option = re.compile(r'{\s*' # opening braces r'(?:(?:\/\*(?:.|[\r\n])*?\*\/|\/\/.*[\r\n]+|#.*[\r\n]+)\s*)*' @@ -76,9 +76,9 @@ p_key_value = re.compile(r'{\s*' # opening braces p_masked = re.compile(r'([A-Z_][A-Z0-9_]+)\s*(\"(?:"\s*"|\\\s*|.)*\")') -p_intl = re.compile(r'(struct retro_core_option_definition \*option_defs_intl\[RETRO_LANGUAGE_LAST]) = {' +p_intl = re.compile(r'(\bstruct retro_core_option_definition \*option_defs_intl\[RETRO_LANGUAGE_LAST]) = {' r'((?:.|[\r\n])*?)};') -p_set = re.compile(r'static INLINE void libretro_set_core_options\(retro_environment_t environ_cb\)' +p_set = re.compile(r'\bstatic INLINE void libretro_set_core_options\(retro_environment_t environ_cb\)' r'(?:.|[\r\n])*?};?\s*#ifdef __cplusplus\s*}\s*#endif') p_yaml = re.compile(r'"project_id": "[0-9]+".*\s*' diff --git a/intl/core_option_translation.py b/intl/core_option_translation.py index 14653adc0..6e9c9711e 100644 --- a/intl/core_option_translation.py +++ b/intl/core_option_translation.py @@ -182,17 +182,17 @@ def get_texts(text: str) -> dict: if lang not in just_string: hash_n_string[lang] = {} just_string[lang] = set() - - is_v2 = False + is_v2_definition = 'retro_core_option_v2_definition' == struct_type_name[0] pre_name = '' + # info texts format p = cor.p_info - if 'retro_core_option_v2_definition' == struct_type_name[0]: - is_v2 = True - elif 'retro_core_option_v2_category' == struct_type_name[0]: + if 'retro_core_option_v2_category' == struct_type_name[0]: + # prepend category labels, as they can be the same as option labels pre_name = 'CATEGORY_' + # categories have different info texts format p = cor.p_info_cat - struct_content = struct.group(2) + struct_content = struct.group(4) # 0: full option; 1: key; 2: description; 3: additional info; 4: key/value pairs struct_options = cor.p_option.finditer(struct_content) for opt, option in enumerate(struct_options): @@ -218,7 +218,7 @@ def get_texts(text: str) -> dict: if option.group(3): infos = option.group(3) option_info = p.finditer(infos) - if is_v2: + if is_v2_definition: desc1 = next(option_info).group(1) if is_viable_non_dupe(desc1, just_string[lang]): just_string[lang].add(desc1) @@ -302,8 +302,12 @@ def h2json(file_paths: dict) -> dict: for file_lang in file_paths: if not os.path.isfile(file_paths[file_lang]): continue - - jsons[file_lang] = file_paths[file_lang][:-2] + '.json' + file_path = file_paths[file_lang] + try: + jsons[file_lang] = file_path[:file_path.rindex('.')] + '.json' + except ValueError: + print(f"File {file_path} has incorrect format! File ending missing?") + continue p = cor.p_masked @@ -401,11 +405,11 @@ def get_crowdin_client(dir_path: str) -> str: return jar_path -def create_intl_file(localisation_file_path: str, intl_dir_path: str, text: str, file_path: str) -> None: +def create_intl_file(intl_file_path: str, localisations_path: str, text: str, file_path: str) -> None: """Creates 'libretro_core_options_intl.h' from Crowdin translations. - :param localisation_file_path: Path to 'libretro_core_options_intl.h' - :param intl_dir_path: Path to the intl/ directory. + :param intl_file_path: Path to 'libretro_core_options_intl.h' + :param localisations_path: Path to the intl/ directory. :param text: Content of the 'libretro_core_options.h' being translated. :param file_path: Path to the '_us.h' file, containing the original English texts. :return: None @@ -501,10 +505,11 @@ def create_intl_file(localisation_file_path: str, intl_dir_path: str, text: str, 'extern "C" {\n' \ '#endif\n' - if os.path.isfile(localisation_file_path): + if os.path.isfile(intl_file_path): # copy top of the file for re-use - with open(localisation_file_path, 'r', encoding='utf-8') as intl: # libretro_core_options_intl.h + with open(intl_file_path, 'r', encoding='utf-8') as intl: # libretro_core_options_intl.h in_text = intl.read() + # attempt 1: find the distinct comment header intl_start = re.search(re.escape('/*\n' ' ********************************\n' ' * Core Option Definitions\n' @@ -513,19 +518,22 @@ def create_intl_file(localisation_file_path: str, intl_dir_path: str, text: str, if intl_start: out_txt = in_text[:intl_start.end(0)] else: + # attempt 2: if no comment header present, find c++ compiler instruction (it is kind of a must) intl_start = re.search(re.escape('#ifdef __cplusplus\n' 'extern "C" {\n' '#endif\n'), in_text) if intl_start: out_txt = in_text[:intl_start.end(0)] + # if all attempts fail, use default from above # only write to file, if there is anything worthwhile to write! overwrite = False # iterate through localisation files files = {} - for file in os.scandir(intl_dir_path): + for file in os.scandir(localisations_path): files[file.name] = {'is_file': file.is_file(), 'path': file.path} + for file in sorted(files): # intl//_* if files[file]['is_file'] \ and file.startswith('_') \ @@ -536,6 +544,7 @@ def create_intl_file(localisation_file_path: str, intl_dir_path: str, text: str, struct_groups = cor.p_struct.finditer(text) lang_low = os.path.splitext(file)[0].lower() lang_up = lang_low.upper() + # mark each language's section with a comment, for readability out_txt = out_txt + f'/* RETRO_LANGUAGE{lang_up} */\n\n' # /* RETRO_LANGUAGE_NM */ # copy adjusted translations (makros) @@ -548,22 +557,22 @@ def create_intl_file(localisation_file_path: str, intl_dir_path: str, text: str, if 3 > len(struct_type_name): # no language specifier new_decl = re.sub(re.escape(struct_type_name[1]), struct_type_name[1] + lang_low, declaration) else: - new_decl = re.sub(re.escape(struct_type_name[2]), lang_low, declaration) if '_us' != struct_type_name[2]: + # only use _us constructs - other languages present in the source file are not important continue + new_decl = re.sub(re.escape(struct_type_name[2]), lang_low, declaration) - p = cor.p_info - if 'retro_core_option_v2_category' == struct_type_name[0]: - p = cor.p_info_cat + p = (cor.p_info_cat if 'retro_core_option_v2_category' == struct_type_name[0] else cor.p_info) offset_construct = construct.start(0) + # append localised construct name and ' = {' start = construct.end(1) - offset_construct - end = construct.start(2) - offset_construct + end = construct.start(4) - offset_construct out_txt = out_txt + new_decl + construct.group(0)[start:end] - - content = construct.group(2) + # insert macros + content = construct.group(4) new_content = cor.p_option.sub(replace_option, content) - - start = construct.end(2) - offset_construct + start = construct.end(4) - offset_construct + # append macro-filled content and close the construct out_txt = out_txt + new_content + construct.group(0)[start:] + '\n' # for v2 @@ -578,7 +587,7 @@ def create_intl_file(localisation_file_path: str, intl_dir_path: str, text: str, # only write to file, if there is anything worthwhile to write! if overwrite: - with open(localisation_file_path, 'w', encoding='utf-8') as intl: + with open(intl_file_path, 'w', encoding='utf-8') as intl: intl.write(out_txt + '\n#ifdef __cplusplus\n' '}\n#endif\n' '\n#endif') diff --git a/intl/crowdin.yaml b/intl/crowdin.yaml index c81de7757..6fefeb975 100644 --- a/intl/crowdin.yaml +++ b/intl/crowdin.yaml @@ -6,8 +6,8 @@ "files": [ { - "source": "/intl/_core_name_/_us.json", + "source": "/_core_name_/_us.json", "dest": "/_core_name_/_core_name_.json", - "translation": "/intl/_core_name_/_%two_letters_code%.json", + "translation": "/_core_name_/_%two_letters_code%.json", }, ] diff --git a/intl/crowdin_prep.py b/intl/crowdin_prep.py index bfc9aa907..a2c225e4c 100644 --- a/intl/crowdin_prep.py +++ b/intl/crowdin_prep.py @@ -4,7 +4,7 @@ import core_option_translation as t if __name__ == '__main__': try: - if t.os.path.isfile(t.sys.argv[1]): + if t.os.path.isfile(t.sys.argv[1]) or t.sys.argv[1].endswith('.h'): _temp = t.os.path.dirname(t.sys.argv[1]) else: _temp = t.sys.argv[1] diff --git a/intl/crowdin_translate.py b/intl/crowdin_translate.py index 8a6660233..b4c911a1d 100644 --- a/intl/crowdin_translate.py +++ b/intl/crowdin_translate.py @@ -4,7 +4,7 @@ import core_option_translation as t if __name__ == '__main__': try: - if t.os.path.isfile(t.sys.argv[1]): + if t.os.path.isfile(t.sys.argv[1]) or t.sys.argv[1].endswith('.h'): _temp = t.os.path.dirname(t.sys.argv[1]) else: _temp = t.sys.argv[1] diff --git a/intl/v1_to_v2_converter.py b/intl/v1_to_v2_converter.py index caf3be5b9..2e7fcf667 100644 --- a/intl/v1_to_v2_converter.py +++ b/intl/v1_to_v2_converter.py @@ -9,7 +9,7 @@ The original files will be preserved as *.v1 """ import core_option_regex as cor import os -import sys +import glob def create_v2_code_file(struct_text, file_name): @@ -379,7 +379,8 @@ def create_v2_code_file(struct_text, file_name): f' option_defs{struct_type_name_lang[2]}\n' '};', construct.group(0)[construct.end(2) - offset:]) - out_text = cor.re.sub(cor.re.escape(construct.group(0)), repl_text, out_text) + out_text = out_text.replace(construct.group(0), repl_text) + #out_text = cor.re.sub(cor.re.escape(construct.group(0)), repl_text, raw_out) else: return -2 with open(file_name, 'w', encoding='utf-8') as code_file: @@ -408,11 +409,19 @@ def create_v2_code_file(struct_text, file_name): ' &options_ar, /* RETRO_LANGUAGE_ARABIC */\n' \ ' &options_el, /* RETRO_LANGUAGE_GREEK */\n' \ ' &options_tr, /* RETRO_LANGUAGE_TURKISH */\n' \ - ' &options_sv, /* RETRO_LANGUAGE_SLOVAK */\n' \ + ' &options_sk, /* RETRO_LANGUAGE_SLOVAK */\n' \ ' &options_fa, /* RETRO_LANGUAGE_PERSIAN */\n' \ ' &options_he, /* RETRO_LANGUAGE_HEBREW */\n' \ ' &options_ast, /* RETRO_LANGUAGE_ASTURIAN */\n' \ ' &options_fi, /* RETRO_LANGUAGE_FINNISH */\n' \ + ' &options_id, /* RETRO_LANGUAGE_INDONESIAN */\n' \ + ' &options_sv, /* RETRO_LANGUAGE_SWEDISH */\n' \ + ' &options_uk, /* RETRO_LANGUAGE_UKRAINIAN */\n' \ + ' &options_cs, /* RETRO_LANGUAGE_CZECH */\n' \ + ' &options_val, /* RETRO_LANGUAGE_CATALAN_VALENCIA */\n' \ + ' &options_ca, /* RETRO_LANGUAGE_CATALAN */\n' \ + ' &options_en, /* RETRO_LANGUAGE_BRITISH_ENGLISH */\n' \ + ' &options_hu, /* RETRO_LANGUAGE_HUNGARIAN */\n' \ + out_text[intl.end(2):] out_text = p_set.sub(new_set, new_intl) else: @@ -425,21 +434,36 @@ def create_v2_code_file(struct_text, file_name): # -------------------- MAIN -------------------- # if __name__ == '__main__': - try: - if os.path.isfile(sys.argv[1]): - _temp = os.path.dirname(sys.argv[1]) - else: - _temp = sys.argv[1] - while _temp.endswith('/') or _temp.endswith('\\'): - _temp = _temp[:-1] - DIR_PATH = _temp - except IndexError: - DIR_PATH = os.path.dirname(os.path.dirname(os.path.realpath(__file__))) - print("No path provided, assuming parent directory:\n" + DIR_PATH) + DIR_PATH = os.path.dirname(os.path.realpath(__file__)) + if os.path.basename(DIR_PATH) != "intl": + raise RuntimeError("Script is not in intl folder!") - H_FILE_PATH = os.path.join(DIR_PATH, 'libretro_core_options.h') - INTL_FILE_PATH = os.path.join(DIR_PATH, 'libretro_core_options_intl.h') + BASE_PATH = os.path.dirname(DIR_PATH) + CORE_OP_FILE = os.path.join(BASE_PATH, "**", "libretro_core_options.h") + core_options_hits = glob.glob(CORE_OP_FILE, recursive=True) + + if len(core_options_hits) == 0: + raise RuntimeError("libretro_core_options.h not found!") + elif len(core_options_hits) > 1: + print("More than one libretro_core_options.h file found:\n\n") + for i, file in enumerate(core_options_hits): + print(f"{i} {file}\n") + + while True: + user_choice = input("Please choose one ('q' will exit): ") + if user_choice == 'q': + exit(0) + elif user_choice.isdigit(): + core_op_file = core_options_hits[int(user_choice)] + break + else: + print("Please make a valid choice!\n\n") + else: + core_op_file = core_options_hits[0] + + H_FILE_PATH = core_op_file + INTL_FILE_PATH = core_op_file.replace("libretro_core_options.h", 'libretro_core_options_intl.h') for file in (H_FILE_PATH, INTL_FILE_PATH): if os.path.isfile(file): with open(file, 'r+', encoding='utf-8') as h_file: diff --git a/src/platform/libretro/libretro.h b/src/platform/libretro/libretro.h index 2887e5e84..4bd3f2f0c 100644 --- a/src/platform/libretro/libretro.h +++ b/src/platform/libretro/libretro.h @@ -286,6 +286,11 @@ enum retro_language RETRO_LANGUAGE_INDONESIAN = 24, RETRO_LANGUAGE_SWEDISH = 25, RETRO_LANGUAGE_UKRAINIAN = 26, + RETRO_LANGUAGE_CZECH = 27, + RETRO_LANGUAGE_CATALAN_VALENCIA = 28, + RETRO_LANGUAGE_CATALAN = 29, + RETRO_LANGUAGE_BRITISH_ENGLISH = 30, + RETRO_LANGUAGE_HUNGARIAN = 31, RETRO_LANGUAGE_LAST, /* Ensure sizeof(enum) == sizeof(int) */ @@ -1756,6 +1761,12 @@ enum retro_mod * the frontend is attempting to call retro_run(). */ +#define RETRO_ENVIRONMENT_GET_SAVESTATE_CONTEXT (72 | RETRO_ENVIRONMENT_EXPERIMENTAL) + /* int * -- + * Tells the core about the context the frontend is asking for savestate. + * (see enum retro_savestate_context) + */ + /* VFS functionality */ /* File paths: @@ -2993,6 +3004,35 @@ enum retro_pixel_format RETRO_PIXEL_FORMAT_UNKNOWN = INT_MAX }; +enum retro_savestate_context +{ + /* Standard savestate written to disk. */ + RETRO_SAVESTATE_CONTEXT_NORMAL = 0, + + /* Savestate where you are guaranteed that the same instance will load the save state. + * You can store internal pointers to code or data. + * It's still a full serialization and deserialization, and could be loaded or saved at any time. + * It won't be written to disk or sent over the network. + */ + RETRO_SAVESTATE_CONTEXT_RUNAHEAD_SAME_INSTANCE = 1, + + /* Savestate where you are guaranteed that the same emulator binary will load that savestate. + * You can skip anything that would slow down saving or loading state but you can not store internal pointers. + * It won't be written to disk or sent over the network. + * Example: "Second Instance" runahead + */ + RETRO_SAVESTATE_CONTEXT_RUNAHEAD_SAME_BINARY = 2, + + /* Savestate used within a rollback netplay feature. + * You should skip anything that would unnecessarily increase bandwidth usage. + * It won't be written to disk but it will be sent over the network. + */ + RETRO_SAVESTATE_CONTEXT_ROLLBACK_NETPLAY = 3, + + /* Ensure sizeof() == sizeof(int). */ + RETRO_SAVESTATE_CONTEXT_UNKNOWN = INT_MAX +}; + struct retro_message { const char *msg; /* Message to be displayed. */ diff --git a/src/platform/libretro/libretro_core_options_intl.h b/src/platform/libretro/libretro_core_options_intl.h index b375b8f30..01ea7baea 100644 --- a/src/platform/libretro/libretro_core_options_intl.h +++ b/src/platform/libretro/libretro_core_options_intl.h @@ -905,7 +905,7 @@ struct retro_core_options_v2 options_ast = { /* RETRO_LANGUAGE_CA */ -#define CATEGORY_SYSTEM_LABEL_CA NULL +#define CATEGORY_SYSTEM_LABEL_CA "Sistema" #define CATEGORY_SYSTEM_INFO_0_CA NULL #define CATEGORY_VIDEO_LABEL_CA "Vídeo" #define CATEGORY_VIDEO_INFO_0_CA NULL @@ -914,7 +914,7 @@ struct retro_core_options_v2 options_ast = { #define CATEGORY_AUDIO_INFO_0_CA NULL #define CATEGORY_INPUT_LABEL_CA NULL #define CATEGORY_INPUT_INFO_0_CA NULL -#define CATEGORY_PERFORMANCE_LABEL_CA NULL +#define CATEGORY_PERFORMANCE_LABEL_CA "Rendiment" #define CATEGORY_PERFORMANCE_INFO_0_CA NULL #define MGBA_GB_MODEL_LABEL_CA NULL #define MGBA_GB_MODEL_INFO_0_CA NULL @@ -940,7 +940,7 @@ struct retro_core_options_v2 options_ast = { #define MGBA_SGB_BORDERS_INFO_0_CA NULL #define MGBA_COLOR_CORRECTION_LABEL_CA NULL #define MGBA_COLOR_CORRECTION_INFO_0_CA NULL -#define OPTION_VAL_AUTO_CA NULL +#define OPTION_VAL_AUTO_CA "Automàtic" #define MGBA_INTERFRAME_BLENDING_LABEL_CA NULL #define MGBA_INTERFRAME_BLENDING_INFO_0_CA NULL #define OPTION_VAL_MIX_CA NULL @@ -1407,14 +1407,14 @@ struct retro_core_options_v2 options_ca = { #define OPTION_VAL_95_CHS NULL #define MGBA_ALLOW_OPPOSING_DIRECTIONS_LABEL_CHS NULL #define MGBA_ALLOW_OPPOSING_DIRECTIONS_INFO_0_CHS NULL -#define MGBA_SOLAR_SENSOR_LEVEL_LABEL_CHS NULL +#define MGBA_SOLAR_SENSOR_LEVEL_LABEL_CHS "太阳光传感器等级" #define MGBA_SOLAR_SENSOR_LEVEL_INFO_0_CHS NULL -#define OPTION_VAL_SENSOR_CHS NULL +#define OPTION_VAL_SENSOR_CHS "如果可用则使用设备传感器" #define MGBA_FORCE_GBP_LABEL_CHS NULL #define MGBA_FORCE_GBP_INFO_0_CHS NULL #define MGBA_IDLE_OPTIMIZATION_LABEL_CHS NULL #define MGBA_IDLE_OPTIMIZATION_INFO_0_CHS NULL -#define OPTION_VAL_REMOVE_KNOWN_CHS NULL +#define OPTION_VAL_REMOVE_KNOWN_CHS "移除已知信息" #define OPTION_VAL_DETECT_AND_REMOVE_CHS NULL #define OPTION_VAL_DON_T_REMOVE_CHS NULL #define MGBA_FRAMESKIP_LABEL_CHS "跳帧" @@ -1773,14 +1773,14 @@ struct retro_core_options_v2 options_chs = { #define CATEGORY_SYSTEM_LABEL_CHT "系統" #define CATEGORY_SYSTEM_INFO_0_CHT NULL -#define CATEGORY_VIDEO_LABEL_CHT "視訊" -#define CATEGORY_VIDEO_INFO_0_CHT NULL +#define CATEGORY_VIDEO_LABEL_CHT "顯示" +#define CATEGORY_VIDEO_INFO_0_CHT "變更DMG調色板、SGB邊框、顏色校正和LCD重影效果的設定。" #define CATEGORY_VIDEO_INFO_1_CHT NULL -#define CATEGORY_AUDIO_LABEL_CHT "音訊" +#define CATEGORY_AUDIO_LABEL_CHT "音效" #define CATEGORY_AUDIO_INFO_0_CHT NULL -#define CATEGORY_INPUT_LABEL_CHT NULL +#define CATEGORY_INPUT_LABEL_CHT "輸入和輔助裝置" #define CATEGORY_INPUT_INFO_0_CHT NULL -#define CATEGORY_PERFORMANCE_LABEL_CHT NULL +#define CATEGORY_PERFORMANCE_LABEL_CHT "效能" #define CATEGORY_PERFORMANCE_INFO_0_CHT NULL #define MGBA_GB_MODEL_LABEL_CHT NULL #define MGBA_GB_MODEL_INFO_0_CHT NULL @@ -1795,7 +1795,7 @@ struct retro_core_options_v2 options_chs = { #define MGBA_SKIP_BIOS_INFO_0_CHT NULL #define MGBA_GB_COLORS_LABEL_CHT NULL #define MGBA_GB_COLORS_INFO_0_CHT NULL -#define OPTION_VAL_GRAYSCALE_CHT NULL +#define OPTION_VAL_GRAYSCALE_CHT "灰階" #define MGBA_GB_COLORS_PRESET_LABEL_CHT NULL #define MGBA_GB_COLORS_PRESET_INFO_0_CHT NULL #define OPTION_VAL_0_CHT NULL @@ -1838,8 +1838,8 @@ struct retro_core_options_v2 options_chs = { #define OPTION_VAL_85_CHT NULL #define OPTION_VAL_90_CHT NULL #define OPTION_VAL_95_CHT NULL -#define MGBA_ALLOW_OPPOSING_DIRECTIONS_LABEL_CHT NULL -#define MGBA_ALLOW_OPPOSING_DIRECTIONS_INFO_0_CHT NULL +#define MGBA_ALLOW_OPPOSING_DIRECTIONS_LABEL_CHT "允許反向操作" +#define MGBA_ALLOW_OPPOSING_DIRECTIONS_INFO_0_CHT "允許反方向快速操作,可同時按下左右或上下的方向。可能導致遊戲的移動架構出錯。" #define MGBA_SOLAR_SENSOR_LEVEL_LABEL_CHT NULL #define MGBA_SOLAR_SENSOR_LEVEL_INFO_0_CHT NULL #define OPTION_VAL_SENSOR_CHT NULL @@ -1850,11 +1850,11 @@ struct retro_core_options_v2 options_chs = { #define OPTION_VAL_REMOVE_KNOWN_CHT NULL #define OPTION_VAL_DETECT_AND_REMOVE_CHT NULL #define OPTION_VAL_DON_T_REMOVE_CHT NULL -#define MGBA_FRAMESKIP_LABEL_CHT NULL -#define MGBA_FRAMESKIP_INFO_0_CHT NULL -#define OPTION_VAL_AUTO_THRESHOLD_CHT NULL +#define MGBA_FRAMESKIP_LABEL_CHT "跳幀" +#define MGBA_FRAMESKIP_INFO_0_CHT "設定跳幀用以避免音訊緩衝區不足(產生破音)。用影像流暢度為代價提高效能。\n<自動> 由前端系統控制。<自動 (上限)> 由「跳幀上限 (%)」控制。<固定間隔> 由「跳幀間隔」控制。" +#define OPTION_VAL_AUTO_THRESHOLD_CHT "自動 (上限)" #define OPTION_VAL_FIXED_INTERVAL_CHT NULL -#define MGBA_FRAMESKIP_THRESHOLD_LABEL_CHT NULL +#define MGBA_FRAMESKIP_THRESHOLD_LABEL_CHT "跳幀上限 (%)" #define MGBA_FRAMESKIP_THRESHOLD_INFO_0_CHT NULL #define MGBA_FRAMESKIP_INTERVAL_LABEL_CHT NULL #define MGBA_FRAMESKIP_INTERVAL_INFO_0_CHT NULL @@ -2204,54 +2204,54 @@ struct retro_core_options_v2 options_cht = { /* RETRO_LANGUAGE_CS */ -#define CATEGORY_SYSTEM_LABEL_CS NULL -#define CATEGORY_SYSTEM_INFO_0_CS NULL +#define CATEGORY_SYSTEM_LABEL_CS "Systém" +#define CATEGORY_SYSTEM_INFO_0_CS "Konfigurace výběru základního hardwaru / parametrů systému BIOS." #define CATEGORY_VIDEO_LABEL_CS NULL -#define CATEGORY_VIDEO_INFO_0_CS NULL -#define CATEGORY_VIDEO_INFO_1_CS NULL +#define CATEGORY_VIDEO_INFO_0_CS "Konfigurace palety DMG / okrajů SGB / korekce barev / efektů duchů LCD." +#define CATEGORY_VIDEO_INFO_1_CS "Konfigurace palety DMG / okrajů SGB." #define CATEGORY_AUDIO_LABEL_CS "Zvuk" -#define CATEGORY_AUDIO_INFO_0_CS NULL -#define CATEGORY_INPUT_LABEL_CS NULL -#define CATEGORY_INPUT_INFO_0_CS NULL -#define CATEGORY_PERFORMANCE_LABEL_CS NULL -#define CATEGORY_PERFORMANCE_INFO_0_CS NULL +#define CATEGORY_AUDIO_INFO_0_CS "Konfigurace filtrování zvuku." +#define CATEGORY_INPUT_LABEL_CS "Vstupní a Pomocná Zařízení" +#define CATEGORY_INPUT_INFO_0_CS "Konfigurace nastavení ovladače / vstupu snímače a vybrací." +#define CATEGORY_PERFORMANCE_LABEL_CS "Výkon" +#define CATEGORY_PERFORMANCE_INFO_0_CS "Konfigurace parametrů odstraňování nečinných smyček / přeskakování rámců." #define MGBA_GB_MODEL_LABEL_CS NULL -#define MGBA_GB_MODEL_INFO_0_CS NULL -#define OPTION_VAL_AUTODETECT_CS NULL +#define MGBA_GB_MODEL_INFO_0_CS "Spustí načtený obsah s konkrétním modelem Game Boy. Funkce 'Autodetekce' vybere nejvhodnější model pro aktuální hru." +#define OPTION_VAL_AUTODETECT_CS "Autodetekovat" #define OPTION_VAL_GAME_BOY_CS NULL #define OPTION_VAL_SUPER_GAME_BOY_CS NULL #define OPTION_VAL_GAME_BOY_COLOR_CS NULL #define OPTION_VAL_GAME_BOY_ADVANCE_CS NULL -#define MGBA_USE_BIOS_LABEL_CS NULL -#define MGBA_USE_BIOS_INFO_0_CS NULL -#define MGBA_SKIP_BIOS_LABEL_CS NULL -#define MGBA_SKIP_BIOS_INFO_0_CS NULL -#define MGBA_GB_COLORS_LABEL_CS NULL -#define MGBA_GB_COLORS_INFO_0_CS NULL +#define MGBA_USE_BIOS_LABEL_CS "Použít Soubor BIOS Pokud byl Nalezen (Restart)" +#define MGBA_USE_BIOS_INFO_0_CS "Použíje oficiální BIOS/bootloader pro emulovaný hardware, pokud je přítomen v systémové složce RetroArchu." +#define MGBA_SKIP_BIOS_LABEL_CS "Přeskočení Intra BIOSU (Restart)" +#define MGBA_SKIP_BIOS_INFO_0_CS "Při použití oficiálního systému BIOS/bootloaderu přeskočte animaci spouštěcího loga. Toto nastavení je ignorováno, pokud je vypnuta možnost 'Použít Soubor BIOS Pokud byl Nalezen'." +#define MGBA_GB_COLORS_LABEL_CS "Výchozí Paleta Game Boye" +#define MGBA_GB_COLORS_INFO_0_CS "Vybírá, která paleta se použije pro hry pro Game Boy, které nejsou kompatibilní s Game Boy Color nebo Super Game Boy, nebo pokud je model nuceně nastaven na Game Boy." #define OPTION_VAL_GRAYSCALE_CS NULL -#define MGBA_GB_COLORS_PRESET_LABEL_CS NULL -#define MGBA_GB_COLORS_PRESET_INFO_0_CS NULL -#define OPTION_VAL_0_CS NULL -#define OPTION_VAL_1_CS NULL -#define OPTION_VAL_2_CS NULL -#define OPTION_VAL_3_CS NULL -#define MGBA_SGB_BORDERS_LABEL_CS NULL -#define MGBA_SGB_BORDERS_INFO_0_CS NULL -#define MGBA_COLOR_CORRECTION_LABEL_CS NULL -#define MGBA_COLOR_CORRECTION_INFO_0_CS NULL +#define MGBA_GB_COLORS_PRESET_LABEL_CS "Hardwarové Přednastavené Palety pro Game Boy (Restart)" +#define MGBA_GB_COLORS_PRESET_INFO_0_CS "Používejte palety pro hry pro Game Boy, které mají předvolby pro Game Boy Color nebo Super Game Boy." +#define OPTION_VAL_0_CS "Výchozí Předvolba pro Game Boy" +#define OPTION_VAL_1_CS "Pouze Předvolby pro Game Boy Color" +#define OPTION_VAL_2_CS "Pouze Předvolby pro Super Game Boy" +#define OPTION_VAL_3_CS "Všechny dostupné předvolby" +#define MGBA_SGB_BORDERS_LABEL_CS "Použití Ohraničení Super Game Boy (Restart)" +#define MGBA_SGB_BORDERS_INFO_0_CS "Zobrazit ohraničení Super Game Boy, když běží vylepšené hry Super Game Boy." +#define MGBA_COLOR_CORRECTION_LABEL_CS "Korekce Barev" +#define MGBA_COLOR_CORRECTION_INFO_0_CS "Upraví výstupní barvy tak, aby odpovídaly zobrazení skutečného hardwaru GBA/GBC." #define OPTION_VAL_AUTO_CS NULL -#define MGBA_INTERFRAME_BLENDING_LABEL_CS NULL -#define MGBA_INTERFRAME_BLENDING_INFO_0_CS NULL -#define OPTION_VAL_MIX_CS NULL -#define OPTION_VAL_MIX_SMART_CS NULL -#define OPTION_VAL_LCD_GHOSTING_CS NULL -#define OPTION_VAL_LCD_GHOSTING_FAST_CS NULL -#define MGBA_AUDIO_LOW_PASS_FILTER_LABEL_CS NULL -#define MGBA_AUDIO_LOW_PASS_FILTER_LABEL_CAT_CS NULL -#define MGBA_AUDIO_LOW_PASS_FILTER_INFO_0_CS NULL -#define MGBA_AUDIO_LOW_PASS_RANGE_LABEL_CS NULL -#define MGBA_AUDIO_LOW_PASS_RANGE_LABEL_CAT_CS NULL -#define MGBA_AUDIO_LOW_PASS_RANGE_INFO_0_CS NULL +#define MGBA_INTERFRAME_BLENDING_LABEL_CS "Prolínání Mezi-Snímku" +#define MGBA_INTERFRAME_BLENDING_INFO_0_CS "Simuluje efekty duchů na LCD. 'Jednoduchá' provádí mix aktuálního a předchozího snímku v poměru 50:50. 'Chytrá' se pokouší detekovat blikání obrazovky a provede mix 50:50 pouze u postižených pixelů. 'LCD Ghosting' napodobuje přirozenou dobu odezvy LCD kombinací více vyrovnávací paměti snímků. Prolínání 'Jednoduchá' nebo 'Chytrá' je nutné při hraní her, které agresivně využívají LCD ghosting pro efekty průhlednosti (Wave Race, Chikyuu Kaihou Gun ZAS, F-Zero, série Boktai...)." +#define OPTION_VAL_MIX_CS "Jednoduchá" +#define OPTION_VAL_MIX_SMART_CS "Chytrá" +#define OPTION_VAL_LCD_GHOSTING_CS "LCD Ghosting (Přesný)" +#define OPTION_VAL_LCD_GHOSTING_FAST_CS "LCD Ghosting (Rychlý)" +#define MGBA_AUDIO_LOW_PASS_FILTER_LABEL_CS "Audio Filtr" +#define MGBA_AUDIO_LOW_PASS_FILTER_LABEL_CAT_CS "Nízko Propustný Filtr" +#define MGBA_AUDIO_LOW_PASS_FILTER_INFO_0_CS "Povoluje dolní propust zvukového filtru pro snížení 'hrubosti' generovaného zvuku." +#define MGBA_AUDIO_LOW_PASS_RANGE_LABEL_CS "Úroveň Filtru Zvuku" +#define MGBA_AUDIO_LOW_PASS_RANGE_LABEL_CAT_CS "Úroveň Filtru" +#define MGBA_AUDIO_LOW_PASS_RANGE_INFO_0_CS "Určuje mezní frekvenci dolní propusti zvukového filtru. Vyšší hodnota zvyšuje vnímanou 'sílu' filtru, protože je potlačen širší rozsah vysokofrekvenčního spektra." #define OPTION_VAL_5_CS NULL #define OPTION_VAL_10_CS NULL #define OPTION_VAL_15_CS NULL @@ -2271,26 +2271,26 @@ struct retro_core_options_v2 options_cht = { #define OPTION_VAL_85_CS NULL #define OPTION_VAL_90_CS NULL #define OPTION_VAL_95_CS NULL -#define MGBA_ALLOW_OPPOSING_DIRECTIONS_LABEL_CS NULL -#define MGBA_ALLOW_OPPOSING_DIRECTIONS_INFO_0_CS NULL -#define MGBA_SOLAR_SENSOR_LEVEL_LABEL_CS NULL -#define MGBA_SOLAR_SENSOR_LEVEL_INFO_0_CS NULL -#define OPTION_VAL_SENSOR_CS NULL -#define MGBA_FORCE_GBP_LABEL_CS NULL -#define MGBA_FORCE_GBP_INFO_0_CS NULL -#define MGBA_IDLE_OPTIMIZATION_LABEL_CS NULL -#define MGBA_IDLE_OPTIMIZATION_INFO_0_CS NULL -#define OPTION_VAL_REMOVE_KNOWN_CS NULL -#define OPTION_VAL_DETECT_AND_REMOVE_CS NULL -#define OPTION_VAL_DON_T_REMOVE_CS NULL +#define MGBA_ALLOW_OPPOSING_DIRECTIONS_LABEL_CS "Povolení Protichůdného Směrového Vstupu" +#define MGBA_ALLOW_OPPOSING_DIRECTIONS_INFO_0_CS "Povolení této funkce umožní stisknout / rychle střídat / držet současně levý i pravý směr (nebo nahoru a dolů). To může způsobit závady založené na pohybu." +#define MGBA_SOLAR_SENSOR_LEVEL_LABEL_CS "Úroveň Solárního Senzoru" +#define MGBA_SOLAR_SENSOR_LEVEL_INFO_0_CS "Nastaví intenzitu okolního slunečního světla. Lze použít ve hrách, které obsahují sluneční senzor v kazetách, např. v sérii Boktai." +#define OPTION_VAL_SENSOR_CS "Použít snímač zařízení, je-li k dispozici" +#define MGBA_FORCE_GBP_LABEL_CS "Game Boy Player Vybrace (Restart)" +#define MGBA_FORCE_GBP_INFO_0_CS "Povolení této funkce umožní kompatibilním hrám se spouštěcím logem Game Boy Player, aby ovladač vybroval. Vzhledem k tomu, jak se společnost Nintendo rozhodla, že by tato funkce měla fungovat, může v některých těchto hrách způsobovat závady, jako je blikání nebo zpoždění." +#define MGBA_IDLE_OPTIMIZATION_LABEL_CS "Odstranění Nečinné Smyčky" +#define MGBA_IDLE_OPTIMIZATION_INFO_0_CS "Snížení zátěže systému optimalizací tzv. 'nečinné-smyčky' - úseků v kódu, kde se nic neděje, ale procesor běží na plné obrátky (jako když auto jede na neutrál). Zvyšuje výkon a měla by být povolena na hardwaru nižší třídy." +#define OPTION_VAL_REMOVE_KNOWN_CS "Odstranit Známé" +#define OPTION_VAL_DETECT_AND_REMOVE_CS "Detekovat a Odstranit" +#define OPTION_VAL_DON_T_REMOVE_CS "Neodstraňovat" #define MGBA_FRAMESKIP_LABEL_CS NULL -#define MGBA_FRAMESKIP_INFO_0_CS NULL -#define OPTION_VAL_AUTO_THRESHOLD_CS NULL -#define OPTION_VAL_FIXED_INTERVAL_CS NULL -#define MGBA_FRAMESKIP_THRESHOLD_LABEL_CS NULL -#define MGBA_FRAMESKIP_THRESHOLD_INFO_0_CS NULL -#define MGBA_FRAMESKIP_INTERVAL_LABEL_CS NULL -#define MGBA_FRAMESKIP_INTERVAL_INFO_0_CS NULL +#define MGBA_FRAMESKIP_INFO_0_CS "Přeskočení snímků, aby se zabránilo nedostatečnému využití vyrovnávací paměti zvuku (praskání). Zlepšuje výkon na úkor vizuální plynulosti. Funkce 'Auto' přeskakuje snímky, pokud to doporučí frontend. 'Auto (Hraniční Hodnota)' využívá nastavení 'Hraniční Hodnota Přeskočení Snímku (%)'. 'Pevný Interval' využívá nastavení 'Interval Přeskočení Snímku'." +#define OPTION_VAL_AUTO_THRESHOLD_CS "Auto (Hraniční Hodnota)" +#define OPTION_VAL_FIXED_INTERVAL_CS "Pevný Interval" +#define MGBA_FRAMESKIP_THRESHOLD_LABEL_CS "Hraniční Hodnota Frameskip (%)" +#define MGBA_FRAMESKIP_THRESHOLD_INFO_0_CS "Pokud je položka 'Přeskočení Snímku' nastavena na hodnotu 'Auto (Hraniční Hodnota)', určuje prahovou hodnotu (procento) obsazení vyrovnávací paměti zvuku, pod kterou budou snímky přeskočeny. Vyšší hodnoty snižují riziko praskání tím, že způsobují častější vynechávání snímků." +#define MGBA_FRAMESKIP_INTERVAL_LABEL_CS "Interval Přeskočení Snímku" +#define MGBA_FRAMESKIP_INTERVAL_INFO_0_CS "Pokud je položka 'Přeskočení Snímku' nastavena na 'Pevný interval', je zde nastavená hodnota počtem vynechaných snímků po vykreslení snímku - tj. '0' = 60 snímků/s, '1' = 30 snímků/s, '2' = 15 snímků/s atd." struct retro_core_option_v2_category option_cats_cs[] = { { @@ -3504,53 +3504,53 @@ struct retro_core_options_v2 options_da = { /* RETRO_LANGUAGE_DE */ #define CATEGORY_SYSTEM_LABEL_DE NULL -#define CATEGORY_SYSTEM_INFO_0_DE NULL +#define CATEGORY_SYSTEM_INFO_0_DE "Grundlegende Hardwareauswahl / BIOS-Parameter konfigurieren." #define CATEGORY_VIDEO_LABEL_DE NULL -#define CATEGORY_VIDEO_INFO_0_DE NULL -#define CATEGORY_VIDEO_INFO_1_DE NULL +#define CATEGORY_VIDEO_INFO_0_DE "DMG-Palette / SGB-Ränder / Farbkorrektur / LCD-Geistereffekte konfigurieren." +#define CATEGORY_VIDEO_INFO_1_DE "DMG-Palette / SGB-Ränder konfigurieren." #define CATEGORY_AUDIO_LABEL_DE NULL #define CATEGORY_AUDIO_INFO_0_DE "Audiofilterung konfigurieren." #define CATEGORY_INPUT_LABEL_DE "Eingabe- und Hilfsgeräte" -#define CATEGORY_INPUT_INFO_0_DE NULL +#define CATEGORY_INPUT_INFO_0_DE "Einstellungen für die Controller-/Sensoreingabe und Controllervibration (Rumble) konfigurieren." #define CATEGORY_PERFORMANCE_LABEL_DE "Leistung" -#define CATEGORY_PERFORMANCE_INFO_0_DE NULL -#define MGBA_GB_MODEL_LABEL_DE NULL -#define MGBA_GB_MODEL_INFO_0_DE NULL +#define CATEGORY_PERFORMANCE_INFO_0_DE "Entfernen von Leerlaufschleifen und Frameskipping-Parameter konfigurieren." +#define MGBA_GB_MODEL_LABEL_DE "Game-Boy-Modell (Neustart erforderlich)" +#define MGBA_GB_MODEL_INFO_0_DE "Führt geladene Inhalte mit einem bestimmten Game Boy-Modell aus. „Automatisch erkennen\" wählt das am besten geeignete Modell für das aktuelle Spiel." #define OPTION_VAL_AUTODETECT_DE "Automatisch erkennen" #define OPTION_VAL_GAME_BOY_DE NULL #define OPTION_VAL_SUPER_GAME_BOY_DE NULL #define OPTION_VAL_GAME_BOY_COLOR_DE NULL #define OPTION_VAL_GAME_BOY_ADVANCE_DE NULL -#define MGBA_USE_BIOS_LABEL_DE NULL -#define MGBA_USE_BIOS_INFO_0_DE NULL -#define MGBA_SKIP_BIOS_LABEL_DE NULL -#define MGBA_SKIP_BIOS_INFO_0_DE NULL -#define MGBA_GB_COLORS_LABEL_DE NULL -#define MGBA_GB_COLORS_INFO_0_DE NULL +#define MGBA_USE_BIOS_LABEL_DE "BIOS-Datei verwenden, sofern gefunden (Neustart erforderlich)" +#define MGBA_USE_BIOS_INFO_0_DE "Offiziellen BIOS/Bootloader für emulierte Hardware verwenden, sofern im Systemverzeichnis von RetroArch vorhanden." +#define MGBA_SKIP_BIOS_LABEL_DE "BIOS-Einleitung überspringen (Neustart erforderlich)" +#define MGBA_SKIP_BIOS_INFO_0_DE "Beim Verwenden eines offiziellen BIOS/Bootloader die Startlogo-Animation überspringen. Diese Einstellung wird ignoriert, wenn „BIOS-Datei verwenden, sofern gefunden“ deaktiviert ist." +#define MGBA_GB_COLORS_LABEL_DE "Game-Boy-Standardpalette" +#define MGBA_GB_COLORS_INFO_0_DE "Legt fest, welche Palette für Game-Boy-Spiele verwendet wird, die nicht mit dem Game Boy Color oder Super Game Boy kompatibel sind, oder wenn das Modell auf Game Boy eingestellt ist." #define OPTION_VAL_GRAYSCALE_DE "Graustufen" -#define MGBA_GB_COLORS_PRESET_LABEL_DE NULL -#define MGBA_GB_COLORS_PRESET_INFO_0_DE NULL -#define OPTION_VAL_0_DE NULL -#define OPTION_VAL_1_DE NULL -#define OPTION_VAL_2_DE NULL -#define OPTION_VAL_3_DE NULL -#define MGBA_SGB_BORDERS_LABEL_DE NULL -#define MGBA_SGB_BORDERS_INFO_0_DE NULL +#define MGBA_GB_COLORS_PRESET_LABEL_DE "Hardware voreingestellte Game-Boy-Paletten (Neustart erforderlich)" +#define MGBA_GB_COLORS_PRESET_INFO_0_DE "Paletten für Game Boy-Spiele verwenden, die Voreinstellungen für den Game Boy Color oder Super Game Boy haben." +#define OPTION_VAL_0_DE "Game-Boy-Standardvoreinstellungen" +#define OPTION_VAL_1_DE "Nur Voreinstellungen für Game Boy Color" +#define OPTION_VAL_2_DE "Nur Voreinstellungen für Super Game Boy" +#define OPTION_VAL_3_DE "Alle verfügbaren Voreinstellungen" +#define MGBA_SGB_BORDERS_LABEL_DE "Ränder für Super Game Boy verwenden (Neustart erforderlich)" +#define MGBA_SGB_BORDERS_INFO_0_DE "Super-Game-Boy-Ränder beim Ausführen von Super-Game-Boy-Enhanced-Spielen." #define MGBA_COLOR_CORRECTION_LABEL_DE "Farbkorrektur" -#define MGBA_COLOR_CORRECTION_INFO_0_DE NULL +#define MGBA_COLOR_CORRECTION_INFO_0_DE "Passt die Ausgabefarben so an, dass sie der Anzeige der echten GBA/GBC-Hardware entsprechen." #define OPTION_VAL_AUTO_DE "Automatisch" -#define MGBA_INTERFRAME_BLENDING_LABEL_DE NULL -#define MGBA_INTERFRAME_BLENDING_INFO_0_DE NULL +#define MGBA_INTERFRAME_BLENDING_LABEL_DE "Interframe-Blending" +#define MGBA_INTERFRAME_BLENDING_INFO_0_DE "Simuliert LCD-Ghosting-Effekte. „Einfach“ führt eine 50:50-Mischung aus aktuellem und vorherigen Bild durch. „Intelligent“ versucht, Bildschirmflimmern zu erkennen, und führt nur bei den betroffenen Pixeln eine 50:50-Mischung durch. „LCD-Ghosting“ ahmt die natürlichen LCD-Reaktionszeiten nach, indem mehrere gepufferte Bilder kombiniert werden. „Einfaches“ oder „Intelligentes“ Überblenden ist bei Spielen erforderlich, die LCD-Ghosting aggressiv für Transparenzeffekte ausnutzen (Wave Race, Chikyuu Kaihou Gun ZAS, F-Zero, die Boktai-Serie, …)." #define OPTION_VAL_MIX_DE "Einfach" -#define OPTION_VAL_MIX_SMART_DE NULL -#define OPTION_VAL_LCD_GHOSTING_DE NULL -#define OPTION_VAL_LCD_GHOSTING_FAST_DE NULL +#define OPTION_VAL_MIX_SMART_DE "Intelligent" +#define OPTION_VAL_LCD_GHOSTING_DE "LCD-Ghosting (Genau)" +#define OPTION_VAL_LCD_GHOSTING_FAST_DE "LCD-Ghosting (Schnell)" #define MGBA_AUDIO_LOW_PASS_FILTER_LABEL_DE "Audiofilter" #define MGBA_AUDIO_LOW_PASS_FILTER_LABEL_CAT_DE "Tiefpassfilter" -#define MGBA_AUDIO_LOW_PASS_FILTER_INFO_0_DE NULL +#define MGBA_AUDIO_LOW_PASS_FILTER_INFO_0_DE "Aktiviert einen Tiefpass-Audiofilter, um die „Schärfe“ des erzeugten Tons zu reduzieren." #define MGBA_AUDIO_LOW_PASS_RANGE_LABEL_DE "Audiofilterstufe" #define MGBA_AUDIO_LOW_PASS_RANGE_LABEL_CAT_DE "Filterstufe" -#define MGBA_AUDIO_LOW_PASS_RANGE_INFO_0_DE NULL +#define MGBA_AUDIO_LOW_PASS_RANGE_INFO_0_DE "Legt die Höchstfrequenz des Tiefpass-Audiofilters fest. Ein höherer Wert erhöht die wahrgenommene „Stärke“ des Filters, da ein größerer Bereich des Hochfrequenzspektrums abgeschwächt wird." #define OPTION_VAL_5_DE "5 %" #define OPTION_VAL_10_DE "10 %" #define OPTION_VAL_15_DE "15 %" @@ -3570,26 +3570,26 @@ struct retro_core_options_v2 options_da = { #define OPTION_VAL_85_DE "85 %" #define OPTION_VAL_90_DE "90 %" #define OPTION_VAL_95_DE "95 %" -#define MGBA_ALLOW_OPPOSING_DIRECTIONS_LABEL_DE NULL -#define MGBA_ALLOW_OPPOSING_DIRECTIONS_INFO_0_DE NULL -#define MGBA_SOLAR_SENSOR_LEVEL_LABEL_DE NULL -#define MGBA_SOLAR_SENSOR_LEVEL_INFO_0_DE NULL -#define OPTION_VAL_SENSOR_DE NULL -#define MGBA_FORCE_GBP_LABEL_DE NULL -#define MGBA_FORCE_GBP_INFO_0_DE NULL -#define MGBA_IDLE_OPTIMIZATION_LABEL_DE NULL -#define MGBA_IDLE_OPTIMIZATION_INFO_0_DE NULL -#define OPTION_VAL_REMOVE_KNOWN_DE NULL -#define OPTION_VAL_DETECT_AND_REMOVE_DE NULL +#define MGBA_ALLOW_OPPOSING_DIRECTIONS_LABEL_DE "Entgegengesetzte Richtungseingabe zulassen" +#define MGBA_ALLOW_OPPOSING_DIRECTIONS_INFO_0_DE "Wenn diese Funktion aktiviert ist, kann gleichzeitig die linke und die rechte (oder die obere und die untere) Richtungstaste bzw. schnell abwechselnd gedrückt oder gehalten werden. Dies kann zu bewegungsbasierten Fehlern führen." +#define MGBA_SOLAR_SENSOR_LEVEL_LABEL_DE "Solarsensorstufe" +#define MGBA_SOLAR_SENSOR_LEVEL_INFO_0_DE "Setzt die Intensität des Umgebungslichts. Kann von Spielen verwendet werden, die einen Solarsensor in ihre Module eingeschlossen haben, z. B. die Boktai-Serie." +#define OPTION_VAL_SENSOR_DE "Gerätesensor verwenden, falls verfügbar" +#define MGBA_FORCE_GBP_LABEL_DE "Game-Boy-Player-Rumble (Neustart erforderlich)" +#define MGBA_FORCE_GBP_INFO_0_DE "Wird dies aktiviert, können kompatible Spiele mit dem Game-Boy-Player-Bootlogo den Controller zum Rattern bringen. Aufgrund der Entscheidung von Nintendo, wie diese Funktion funktioniert, kann es bei einigen dieser Spiele zu Störungen wie Flackern oder Verzögerungen kommen." +#define MGBA_IDLE_OPTIMIZATION_LABEL_DE "Leerlaufschleife entfernen" +#define MGBA_IDLE_OPTIMIZATION_INFO_0_DE "Die Systemlast durch Optimierung der so genannten „Idle-Loops“-Abschnitte im Code verringern, in denen nichts passiert, aber die CPU mit voller Geschwindigkeit läuft (wie ein Auto, das im Leerlauf auf Drehzahl kommt). Verbessert die Leistung und sollte auf leistungsschwacher Hardware aktiviert werden." +#define OPTION_VAL_REMOVE_KNOWN_DE "Bekannte entfernen" +#define OPTION_VAL_DETECT_AND_REMOVE_DE "Erkennen und entfernen" #define OPTION_VAL_DON_T_REMOVE_DE "Nicht entfernen" #define MGBA_FRAMESKIP_LABEL_DE NULL -#define MGBA_FRAMESKIP_INFO_0_DE NULL +#define MGBA_FRAMESKIP_INFO_0_DE "Überspringen von Einzelbildern, um ein Unterlaufen des Audiopuffers (Knistern) zu vermeiden. Verbessert die Leistung auf Kosten der visuellen Glättung. „Automatisch“ überspringt Frames auf Anweisung des Frontends. „Automatisch (Schwellenwert)“ verwendet die Einstellung „Frameskip-Schwellenwert (%)“. Bei „Festes Intervall“ wird die Einstellung „Frameskip-Intervall“ verwendet." #define OPTION_VAL_AUTO_THRESHOLD_DE "Automatisch (Schwellenwert)" #define OPTION_VAL_FIXED_INTERVAL_DE "Festes Intervall" -#define MGBA_FRAMESKIP_THRESHOLD_LABEL_DE "Frameskip Grenzwert (%)" -#define MGBA_FRAMESKIP_THRESHOLD_INFO_0_DE NULL -#define MGBA_FRAMESKIP_INTERVAL_LABEL_DE NULL -#define MGBA_FRAMESKIP_INTERVAL_INFO_0_DE NULL +#define MGBA_FRAMESKIP_THRESHOLD_LABEL_DE "Frameskip-Grenzwert (%)" +#define MGBA_FRAMESKIP_THRESHOLD_INFO_0_DE "Wenn „Frameskip“ auf „Automatisch (Schwellenwert)“ eingestellt ist, wird hier der Schwellenwert für die Belegung des Audiopuffers (in Prozent) angegeben, unterhalb dessen Frames übersprungen werden. Höhere Werte verringern das Risiko von Knistern, da die Frames häufiger übersprungen werden." +#define MGBA_FRAMESKIP_INTERVAL_LABEL_DE "Frameskip-Intervall" +#define MGBA_FRAMESKIP_INTERVAL_INFO_0_DE "Wenn „Frameskip“ auf „Festes Intervall“ eingestellt ist, wird hier die Anzahl der Auslassungen gesetzt, nachdem ein Frame gerendert wurde – z. B. „0“ = 60 fps, „1“ = 30 fps, „2“ = 15 fps usw." struct retro_core_option_v2_category option_cats_de[] = { { @@ -4367,6 +4367,439 @@ struct retro_core_options_v2 options_el = { option_defs_el }; +/* RETRO_LANGUAGE_EN */ + +#define CATEGORY_SYSTEM_LABEL_EN NULL +#define CATEGORY_SYSTEM_INFO_0_EN NULL +#define CATEGORY_VIDEO_LABEL_EN NULL +#define CATEGORY_VIDEO_INFO_0_EN "Configure DMG palette / SGB borders / colour correction / LCD ghosting effects." +#define CATEGORY_VIDEO_INFO_1_EN NULL +#define CATEGORY_AUDIO_LABEL_EN NULL +#define CATEGORY_AUDIO_INFO_0_EN NULL +#define CATEGORY_INPUT_LABEL_EN NULL +#define CATEGORY_INPUT_INFO_0_EN NULL +#define CATEGORY_PERFORMANCE_LABEL_EN NULL +#define CATEGORY_PERFORMANCE_INFO_0_EN "Configure idle loop removal / frame-skipping parameters." +#define MGBA_GB_MODEL_LABEL_EN NULL +#define MGBA_GB_MODEL_INFO_0_EN NULL +#define OPTION_VAL_AUTODETECT_EN NULL +#define OPTION_VAL_GAME_BOY_EN NULL +#define OPTION_VAL_SUPER_GAME_BOY_EN NULL +#define OPTION_VAL_GAME_BOY_COLOR_EN "Game Boy Colour" +#define OPTION_VAL_GAME_BOY_ADVANCE_EN NULL +#define MGBA_USE_BIOS_LABEL_EN NULL +#define MGBA_USE_BIOS_INFO_0_EN NULL +#define MGBA_SKIP_BIOS_LABEL_EN NULL +#define MGBA_SKIP_BIOS_INFO_0_EN NULL +#define MGBA_GB_COLORS_LABEL_EN NULL +#define MGBA_GB_COLORS_INFO_0_EN "Selects which palette is used for Game Boy games that are not Game Boy Colour or Super Game Boy compatible, or if the model is forced to Game Boy." +#define OPTION_VAL_GRAYSCALE_EN "Greyscale" +#define MGBA_GB_COLORS_PRESET_LABEL_EN NULL +#define MGBA_GB_COLORS_PRESET_INFO_0_EN "Use the palettes for Game Boy games that have presets on the Game Boy Colour or Super Game Boy." +#define OPTION_VAL_0_EN NULL +#define OPTION_VAL_1_EN "Game Boy Colour presets only" +#define OPTION_VAL_2_EN NULL +#define OPTION_VAL_3_EN NULL +#define MGBA_SGB_BORDERS_LABEL_EN NULL +#define MGBA_SGB_BORDERS_INFO_0_EN NULL +#define MGBA_COLOR_CORRECTION_LABEL_EN "Colour Correction" +#define MGBA_COLOR_CORRECTION_INFO_0_EN "Adjusts output colours to match the display of real GBA/GBC hardware." +#define OPTION_VAL_AUTO_EN NULL +#define MGBA_INTERFRAME_BLENDING_LABEL_EN "Inter-frame Blending" +#define MGBA_INTERFRAME_BLENDING_INFO_0_EN NULL +#define OPTION_VAL_MIX_EN NULL +#define OPTION_VAL_MIX_SMART_EN NULL +#define OPTION_VAL_LCD_GHOSTING_EN NULL +#define OPTION_VAL_LCD_GHOSTING_FAST_EN NULL +#define MGBA_AUDIO_LOW_PASS_FILTER_LABEL_EN NULL +#define MGBA_AUDIO_LOW_PASS_FILTER_LABEL_CAT_EN NULL +#define MGBA_AUDIO_LOW_PASS_FILTER_INFO_0_EN NULL +#define MGBA_AUDIO_LOW_PASS_RANGE_LABEL_EN NULL +#define MGBA_AUDIO_LOW_PASS_RANGE_LABEL_CAT_EN NULL +#define MGBA_AUDIO_LOW_PASS_RANGE_INFO_0_EN NULL +#define OPTION_VAL_5_EN NULL +#define OPTION_VAL_10_EN NULL +#define OPTION_VAL_15_EN NULL +#define OPTION_VAL_20_EN NULL +#define OPTION_VAL_25_EN NULL +#define OPTION_VAL_30_EN NULL +#define OPTION_VAL_35_EN NULL +#define OPTION_VAL_40_EN NULL +#define OPTION_VAL_45_EN NULL +#define OPTION_VAL_50_EN NULL +#define OPTION_VAL_55_EN NULL +#define OPTION_VAL_60_EN NULL +#define OPTION_VAL_65_EN NULL +#define OPTION_VAL_70_EN NULL +#define OPTION_VAL_75_EN NULL +#define OPTION_VAL_80_EN NULL +#define OPTION_VAL_85_EN NULL +#define OPTION_VAL_90_EN NULL +#define OPTION_VAL_95_EN NULL +#define MGBA_ALLOW_OPPOSING_DIRECTIONS_LABEL_EN NULL +#define MGBA_ALLOW_OPPOSING_DIRECTIONS_INFO_0_EN NULL +#define MGBA_SOLAR_SENSOR_LEVEL_LABEL_EN NULL +#define MGBA_SOLAR_SENSOR_LEVEL_INFO_0_EN NULL +#define OPTION_VAL_SENSOR_EN NULL +#define MGBA_FORCE_GBP_LABEL_EN NULL +#define MGBA_FORCE_GBP_INFO_0_EN NULL +#define MGBA_IDLE_OPTIMIZATION_LABEL_EN NULL +#define MGBA_IDLE_OPTIMIZATION_INFO_0_EN "Reduce system load by optimising so-called 'idle-loops' - sections in the code where nothing happens, but the CPU runs at full speed (like a car revving in neutral). Improves performance, and should be enabled on low-end hardware." +#define OPTION_VAL_REMOVE_KNOWN_EN NULL +#define OPTION_VAL_DETECT_AND_REMOVE_EN NULL +#define OPTION_VAL_DON_T_REMOVE_EN NULL +#define MGBA_FRAMESKIP_LABEL_EN "Frame-skip" +#define MGBA_FRAMESKIP_INFO_0_EN "Skip frames to avoid audio buffer under-run (crackling). Improves performance at the expense of visual smoothness. 'Auto' skips frames when advised by the front-end. 'Auto (Threshold)' utilises the 'Frame-skip Threshold (%)' setting. 'Fixed Interval' utilises the 'Frame-skip Interval' setting." +#define OPTION_VAL_AUTO_THRESHOLD_EN NULL +#define OPTION_VAL_FIXED_INTERVAL_EN NULL +#define MGBA_FRAMESKIP_THRESHOLD_LABEL_EN "Frame-skip Threshold (%)" +#define MGBA_FRAMESKIP_THRESHOLD_INFO_0_EN "When 'Frame-skip' is set to 'Auto (Threshold)', this specifies the audio buffer occupancy threshold (percentage) below which frames will be skipped. Higher values reduce the risk of crackling by causing frames to be dropped more frequently." +#define MGBA_FRAMESKIP_INTERVAL_LABEL_EN "Frame-skip Interval" +#define MGBA_FRAMESKIP_INTERVAL_INFO_0_EN "When 'Frame-skip' is set to 'Fixed Interval', the value set here is the number of frames omitted after a frame is rendered - i.e. '0' = 60fps, '1' = 30fps, '2' = 15fps, etc." + +struct retro_core_option_v2_category option_cats_en[] = { + { + "system", + CATEGORY_SYSTEM_LABEL_EN, + CATEGORY_SYSTEM_INFO_0_EN + }, + { + "video", + CATEGORY_VIDEO_LABEL_EN, +#if defined(COLOR_16_BIT) && defined(COLOR_5_6_5) + CATEGORY_VIDEO_INFO_0_EN +#else + CATEGORY_VIDEO_INFO_1_EN +#endif + }, + { + "audio", + CATEGORY_AUDIO_LABEL_EN, + CATEGORY_AUDIO_INFO_0_EN + }, + { + "input", + CATEGORY_INPUT_LABEL_EN, + CATEGORY_INPUT_INFO_0_EN + }, + { + "performance", + CATEGORY_PERFORMANCE_LABEL_EN, + CATEGORY_PERFORMANCE_INFO_0_EN + }, + { NULL, NULL, NULL }, +}; +struct retro_core_option_v2_definition option_defs_en[] = { + { + "mgba_gb_model", + MGBA_GB_MODEL_LABEL_EN, + NULL, + MGBA_GB_MODEL_INFO_0_EN, + NULL, + "system", + { + { "Autodetect", OPTION_VAL_AUTODETECT_EN }, + { "Game Boy", OPTION_VAL_GAME_BOY_EN }, + { "Super Game Boy", OPTION_VAL_SUPER_GAME_BOY_EN }, + { "Game Boy Color", OPTION_VAL_GAME_BOY_COLOR_EN }, + { "Game Boy Advance", OPTION_VAL_GAME_BOY_ADVANCE_EN }, + { NULL, NULL }, + }, + "Autodetect" + }, + { + "mgba_use_bios", + MGBA_USE_BIOS_LABEL_EN, + NULL, + MGBA_USE_BIOS_INFO_0_EN, + NULL, + "system", + { + { "ON", "enabled" }, + { "OFF", "disabled" }, + { NULL, NULL }, + }, + "ON" + }, + { + "mgba_skip_bios", + MGBA_SKIP_BIOS_LABEL_EN, + NULL, + MGBA_SKIP_BIOS_INFO_0_EN, + NULL, + "system", + { + { "OFF", "disabled" }, + { "ON", "enabled" }, + { NULL, NULL }, + }, + "OFF" + }, + { + "mgba_gb_colors", + MGBA_GB_COLORS_LABEL_EN, + NULL, + MGBA_GB_COLORS_INFO_0_EN, + NULL, + "video", + { + /* This list is populated at runtime */ + { "Grayscale", OPTION_VAL_GRAYSCALE_EN }, + { NULL, NULL }, + }, + "Grayscale" + }, + { + "mgba_gb_colors_preset", + MGBA_GB_COLORS_PRESET_LABEL_EN, + NULL, + MGBA_GB_COLORS_PRESET_INFO_0_EN, + NULL, + "video", + { + { "0", OPTION_VAL_0_EN }, + { "1", OPTION_VAL_1_EN }, + { "2", OPTION_VAL_2_EN }, + { "3", OPTION_VAL_3_EN }, + { NULL, NULL }, + }, + "0" + }, + { + "mgba_sgb_borders", + MGBA_SGB_BORDERS_LABEL_EN, + NULL, + MGBA_SGB_BORDERS_INFO_0_EN, + NULL, + "video", + { + { "ON", "enabled" }, + { "OFF", "disabled" }, + { NULL, NULL }, + }, + "ON" + }, +#if defined(COLOR_16_BIT) && defined(COLOR_5_6_5) + { + "mgba_color_correction", + MGBA_COLOR_CORRECTION_LABEL_EN, + NULL, + MGBA_COLOR_CORRECTION_INFO_0_EN, + NULL, + "video", + { + { "OFF", "disabled" }, + { "GBA", OPTION_VAL_GAME_BOY_ADVANCE_EN }, + { "GBC", OPTION_VAL_GAME_BOY_COLOR_EN }, + { "Auto", OPTION_VAL_AUTO_EN }, + { NULL, NULL }, + }, + "OFF" + }, + { + "mgba_interframe_blending", + MGBA_INTERFRAME_BLENDING_LABEL_EN, + NULL, + MGBA_INTERFRAME_BLENDING_INFO_0_EN, + NULL, + "video", + { + { "OFF", "disabled" }, + { "mix", OPTION_VAL_MIX_EN }, + { "mix_smart", OPTION_VAL_MIX_SMART_EN }, + { "lcd_ghosting", OPTION_VAL_LCD_GHOSTING_EN }, + { "lcd_ghosting_fast", OPTION_VAL_LCD_GHOSTING_FAST_EN }, + { NULL, NULL }, + }, + "OFF" + }, +#endif + { + "mgba_audio_low_pass_filter", + MGBA_AUDIO_LOW_PASS_FILTER_LABEL_EN, + MGBA_AUDIO_LOW_PASS_FILTER_LABEL_CAT_EN, + MGBA_AUDIO_LOW_PASS_FILTER_INFO_0_EN, + NULL, + "audio", + { + { "disabled", NULL }, + { "enabled", NULL }, + { NULL, NULL }, + }, + "disabled" + }, + { + "mgba_audio_low_pass_range", + MGBA_AUDIO_LOW_PASS_RANGE_LABEL_EN, + MGBA_AUDIO_LOW_PASS_RANGE_LABEL_CAT_EN, + MGBA_AUDIO_LOW_PASS_RANGE_INFO_0_EN, + NULL, + "audio", + { + { "5", OPTION_VAL_5_EN }, + { "10", OPTION_VAL_10_EN }, + { "15", OPTION_VAL_15_EN }, + { "20", OPTION_VAL_20_EN }, + { "25", OPTION_VAL_25_EN }, + { "30", OPTION_VAL_30_EN }, + { "35", OPTION_VAL_35_EN }, + { "40", OPTION_VAL_40_EN }, + { "45", OPTION_VAL_45_EN }, + { "50", OPTION_VAL_50_EN }, + { "55", OPTION_VAL_55_EN }, + { "60", OPTION_VAL_60_EN }, + { "65", OPTION_VAL_65_EN }, + { "70", OPTION_VAL_70_EN }, + { "75", OPTION_VAL_75_EN }, + { "80", OPTION_VAL_80_EN }, + { "85", OPTION_VAL_85_EN }, + { "90", OPTION_VAL_90_EN }, + { "95", OPTION_VAL_95_EN }, + { NULL, NULL }, + }, + "60" + }, + { + "mgba_allow_opposing_directions", + MGBA_ALLOW_OPPOSING_DIRECTIONS_LABEL_EN, + NULL, + MGBA_ALLOW_OPPOSING_DIRECTIONS_INFO_0_EN, + NULL, + "input", + { + { "no", "disabled" }, + { "yes", "enabled" }, + { NULL, NULL }, + }, + "no" + }, + { + "mgba_solar_sensor_level", + MGBA_SOLAR_SENSOR_LEVEL_LABEL_EN, + NULL, + MGBA_SOLAR_SENSOR_LEVEL_INFO_0_EN, + NULL, + "input", + { + { "sensor", OPTION_VAL_SENSOR_EN }, + { "0", NULL }, + { "1", NULL }, + { "2", NULL }, + { "3", NULL }, + { "4", NULL }, + { "5", NULL }, + { "6", NULL }, + { "7", NULL }, + { "8", NULL }, + { "9", NULL }, + { "10", NULL }, + { NULL, NULL }, + }, + "0" + }, + { + "mgba_force_gbp", + MGBA_FORCE_GBP_LABEL_EN, + NULL, + MGBA_FORCE_GBP_INFO_0_EN, + NULL, + "input", + { + { "OFF", "disabled" }, + { "ON", "enabled" }, + { NULL, NULL }, + }, + "OFF" + }, + { + "mgba_idle_optimization", + MGBA_IDLE_OPTIMIZATION_LABEL_EN, + NULL, + MGBA_IDLE_OPTIMIZATION_INFO_0_EN, + NULL, + "performance", + { + { "Remove Known", OPTION_VAL_REMOVE_KNOWN_EN }, + { "Detect and Remove", OPTION_VAL_DETECT_AND_REMOVE_EN }, + { "Don't Remove", OPTION_VAL_DON_T_REMOVE_EN }, + { NULL, NULL }, + }, + "Remove Known" + }, + { + "mgba_frameskip", + MGBA_FRAMESKIP_LABEL_EN, + NULL, + MGBA_FRAMESKIP_INFO_0_EN, + NULL, + "performance", + { + { "disabled", NULL }, + { "auto", OPTION_VAL_AUTO_EN }, + { "auto_threshold", OPTION_VAL_AUTO_THRESHOLD_EN }, + { "fixed_interval", OPTION_VAL_FIXED_INTERVAL_EN }, + { NULL, NULL }, + }, + "disabled" + }, + { + "mgba_frameskip_threshold", + MGBA_FRAMESKIP_THRESHOLD_LABEL_EN, + NULL, + MGBA_FRAMESKIP_THRESHOLD_INFO_0_EN, + NULL, + "performance", + { + { "15", NULL }, + { "18", NULL }, + { "21", NULL }, + { "24", NULL }, + { "27", NULL }, + { "30", NULL }, + { "33", NULL }, + { "36", NULL }, + { "39", NULL }, + { "42", NULL }, + { "45", NULL }, + { "48", NULL }, + { "51", NULL }, + { "54", NULL }, + { "57", NULL }, + { "60", NULL }, + { NULL, NULL }, + }, + "33" + }, + { + "mgba_frameskip_interval", + MGBA_FRAMESKIP_INTERVAL_LABEL_EN, + NULL, + MGBA_FRAMESKIP_INTERVAL_INFO_0_EN, + NULL, + "performance", + { + { "0", NULL }, + { "1", NULL }, + { "2", NULL }, + { "3", NULL }, + { "4", NULL }, + { "5", NULL }, + { "6", NULL }, + { "7", NULL }, + { "8", NULL }, + { "9", NULL }, + { "10", NULL }, + { NULL, NULL }, + }, + "0" + }, + { NULL, NULL, NULL, NULL, NULL, NULL, {{0}}, NULL }, +}; +struct retro_core_options_v2 options_en = { + option_cats_en, + option_defs_en +}; + /* RETRO_LANGUAGE_EO */ #define CATEGORY_SYSTEM_LABEL_EO NULL @@ -4803,7 +5236,7 @@ struct retro_core_options_v2 options_eo = { /* RETRO_LANGUAGE_ES */ #define CATEGORY_SYSTEM_LABEL_ES "Sistema" -#define CATEGORY_SYSTEM_INFO_0_ES "Cambia los ajustes de selección del hardware base y de la BIOS." +#define CATEGORY_SYSTEM_INFO_0_ES "Cambia los ajustes del hardware base y de la BIOS." #define CATEGORY_VIDEO_LABEL_ES "Vídeo" #define CATEGORY_VIDEO_INFO_0_ES "Cambia la paleta de los modelos DMG, los bordes de SGB, la corrección de color y los efectos de imagen fantasma («ghosting») de la pantalla LCD." #define CATEGORY_VIDEO_INFO_1_ES "Cambia la paleta de los modelos DMG y los bordes de SGB." @@ -5235,7 +5668,7 @@ struct retro_core_options_v2 options_es = { /* RETRO_LANGUAGE_FA */ -#define CATEGORY_SYSTEM_LABEL_FA NULL +#define CATEGORY_SYSTEM_LABEL_FA "سیستم" #define CATEGORY_SYSTEM_INFO_0_FA NULL #define CATEGORY_VIDEO_LABEL_FA "ویدیو" #define CATEGORY_VIDEO_INFO_0_FA NULL @@ -5244,13 +5677,13 @@ struct retro_core_options_v2 options_es = { #define CATEGORY_AUDIO_INFO_0_FA NULL #define CATEGORY_INPUT_LABEL_FA NULL #define CATEGORY_INPUT_INFO_0_FA NULL -#define CATEGORY_PERFORMANCE_LABEL_FA NULL +#define CATEGORY_PERFORMANCE_LABEL_FA "عملکرد" #define CATEGORY_PERFORMANCE_INFO_0_FA NULL #define MGBA_GB_MODEL_LABEL_FA NULL #define MGBA_GB_MODEL_INFO_0_FA NULL #define OPTION_VAL_AUTODETECT_FA NULL #define OPTION_VAL_GAME_BOY_FA NULL -#define OPTION_VAL_SUPER_GAME_BOY_FA NULL +#define OPTION_VAL_SUPER_GAME_BOY_FA "سوپر گیم بوی" #define OPTION_VAL_GAME_BOY_COLOR_FA NULL #define OPTION_VAL_GAME_BOY_ADVANCE_FA NULL #define MGBA_USE_BIOS_LABEL_FA NULL @@ -5270,19 +5703,19 @@ struct retro_core_options_v2 options_es = { #define MGBA_SGB_BORDERS_INFO_0_FA NULL #define MGBA_COLOR_CORRECTION_LABEL_FA NULL #define MGBA_COLOR_CORRECTION_INFO_0_FA NULL -#define OPTION_VAL_AUTO_FA NULL +#define OPTION_VAL_AUTO_FA "خودکار" #define MGBA_INTERFRAME_BLENDING_LABEL_FA NULL #define MGBA_INTERFRAME_BLENDING_INFO_0_FA NULL #define OPTION_VAL_MIX_FA NULL #define OPTION_VAL_MIX_SMART_FA NULL #define OPTION_VAL_LCD_GHOSTING_FA NULL #define OPTION_VAL_LCD_GHOSTING_FAST_FA NULL -#define MGBA_AUDIO_LOW_PASS_FILTER_LABEL_FA NULL +#define MGBA_AUDIO_LOW_PASS_FILTER_LABEL_FA "پالایهٔ صدا" #define MGBA_AUDIO_LOW_PASS_FILTER_LABEL_CAT_FA NULL #define MGBA_AUDIO_LOW_PASS_FILTER_INFO_0_FA NULL #define MGBA_AUDIO_LOW_PASS_RANGE_LABEL_FA NULL #define MGBA_AUDIO_LOW_PASS_RANGE_LABEL_CAT_FA NULL -#define MGBA_AUDIO_LOW_PASS_RANGE_INFO_0_FA NULL +#define MGBA_AUDIO_LOW_PASS_RANGE_INFO_0_FA "بسامد قطع پالایهٔ پایین‌گذر را مشخص می‌کند. افزایش مقدار باعث افزایش «قدرت» پالایه می‌شود چرا که دامنهٔ وسیع‌تری از بسامدهای بالای روی طیف تضعیف می‌شود." #define OPTION_VAL_5_FA NULL #define OPTION_VAL_10_FA NULL #define OPTION_VAL_15_FA NULL @@ -5314,11 +5747,11 @@ struct retro_core_options_v2 options_es = { #define OPTION_VAL_REMOVE_KNOWN_FA NULL #define OPTION_VAL_DETECT_AND_REMOVE_FA NULL #define OPTION_VAL_DON_T_REMOVE_FA NULL -#define MGBA_FRAMESKIP_LABEL_FA NULL +#define MGBA_FRAMESKIP_LABEL_FA "پرش فریم" #define MGBA_FRAMESKIP_INFO_0_FA NULL #define OPTION_VAL_AUTO_THRESHOLD_FA NULL #define OPTION_VAL_FIXED_INTERVAL_FA NULL -#define MGBA_FRAMESKIP_THRESHOLD_LABEL_FA NULL +#define MGBA_FRAMESKIP_THRESHOLD_LABEL_FA "آستانهٔ پرش فریم (٪)" #define MGBA_FRAMESKIP_THRESHOLD_INFO_0_FA NULL #define MGBA_FRAMESKIP_INTERVAL_LABEL_FA NULL #define MGBA_FRAMESKIP_INTERVAL_INFO_0_FA NULL @@ -7398,56 +7831,489 @@ struct retro_core_options_v2 options_he = { option_defs_he }; +/* RETRO_LANGUAGE_HR */ + +#define CATEGORY_SYSTEM_LABEL_HR NULL +#define CATEGORY_SYSTEM_INFO_0_HR NULL +#define CATEGORY_VIDEO_LABEL_HR NULL +#define CATEGORY_VIDEO_INFO_0_HR NULL +#define CATEGORY_VIDEO_INFO_1_HR NULL +#define CATEGORY_AUDIO_LABEL_HR NULL +#define CATEGORY_AUDIO_INFO_0_HR NULL +#define CATEGORY_INPUT_LABEL_HR NULL +#define CATEGORY_INPUT_INFO_0_HR NULL +#define CATEGORY_PERFORMANCE_LABEL_HR NULL +#define CATEGORY_PERFORMANCE_INFO_0_HR NULL +#define MGBA_GB_MODEL_LABEL_HR NULL +#define MGBA_GB_MODEL_INFO_0_HR NULL +#define OPTION_VAL_AUTODETECT_HR NULL +#define OPTION_VAL_GAME_BOY_HR NULL +#define OPTION_VAL_SUPER_GAME_BOY_HR NULL +#define OPTION_VAL_GAME_BOY_COLOR_HR NULL +#define OPTION_VAL_GAME_BOY_ADVANCE_HR NULL +#define MGBA_USE_BIOS_LABEL_HR NULL +#define MGBA_USE_BIOS_INFO_0_HR NULL +#define MGBA_SKIP_BIOS_LABEL_HR NULL +#define MGBA_SKIP_BIOS_INFO_0_HR NULL +#define MGBA_GB_COLORS_LABEL_HR NULL +#define MGBA_GB_COLORS_INFO_0_HR NULL +#define OPTION_VAL_GRAYSCALE_HR NULL +#define MGBA_GB_COLORS_PRESET_LABEL_HR NULL +#define MGBA_GB_COLORS_PRESET_INFO_0_HR NULL +#define OPTION_VAL_0_HR NULL +#define OPTION_VAL_1_HR NULL +#define OPTION_VAL_2_HR NULL +#define OPTION_VAL_3_HR NULL +#define MGBA_SGB_BORDERS_LABEL_HR NULL +#define MGBA_SGB_BORDERS_INFO_0_HR NULL +#define MGBA_COLOR_CORRECTION_LABEL_HR NULL +#define MGBA_COLOR_CORRECTION_INFO_0_HR NULL +#define OPTION_VAL_AUTO_HR NULL +#define MGBA_INTERFRAME_BLENDING_LABEL_HR NULL +#define MGBA_INTERFRAME_BLENDING_INFO_0_HR NULL +#define OPTION_VAL_MIX_HR NULL +#define OPTION_VAL_MIX_SMART_HR NULL +#define OPTION_VAL_LCD_GHOSTING_HR NULL +#define OPTION_VAL_LCD_GHOSTING_FAST_HR NULL +#define MGBA_AUDIO_LOW_PASS_FILTER_LABEL_HR NULL +#define MGBA_AUDIO_LOW_PASS_FILTER_LABEL_CAT_HR NULL +#define MGBA_AUDIO_LOW_PASS_FILTER_INFO_0_HR NULL +#define MGBA_AUDIO_LOW_PASS_RANGE_LABEL_HR NULL +#define MGBA_AUDIO_LOW_PASS_RANGE_LABEL_CAT_HR NULL +#define MGBA_AUDIO_LOW_PASS_RANGE_INFO_0_HR NULL +#define OPTION_VAL_5_HR NULL +#define OPTION_VAL_10_HR NULL +#define OPTION_VAL_15_HR NULL +#define OPTION_VAL_20_HR NULL +#define OPTION_VAL_25_HR NULL +#define OPTION_VAL_30_HR NULL +#define OPTION_VAL_35_HR NULL +#define OPTION_VAL_40_HR NULL +#define OPTION_VAL_45_HR NULL +#define OPTION_VAL_50_HR NULL +#define OPTION_VAL_55_HR NULL +#define OPTION_VAL_60_HR NULL +#define OPTION_VAL_65_HR NULL +#define OPTION_VAL_70_HR NULL +#define OPTION_VAL_75_HR NULL +#define OPTION_VAL_80_HR NULL +#define OPTION_VAL_85_HR NULL +#define OPTION_VAL_90_HR NULL +#define OPTION_VAL_95_HR NULL +#define MGBA_ALLOW_OPPOSING_DIRECTIONS_LABEL_HR NULL +#define MGBA_ALLOW_OPPOSING_DIRECTIONS_INFO_0_HR NULL +#define MGBA_SOLAR_SENSOR_LEVEL_LABEL_HR NULL +#define MGBA_SOLAR_SENSOR_LEVEL_INFO_0_HR NULL +#define OPTION_VAL_SENSOR_HR NULL +#define MGBA_FORCE_GBP_LABEL_HR NULL +#define MGBA_FORCE_GBP_INFO_0_HR NULL +#define MGBA_IDLE_OPTIMIZATION_LABEL_HR NULL +#define MGBA_IDLE_OPTIMIZATION_INFO_0_HR NULL +#define OPTION_VAL_REMOVE_KNOWN_HR NULL +#define OPTION_VAL_DETECT_AND_REMOVE_HR NULL +#define OPTION_VAL_DON_T_REMOVE_HR NULL +#define MGBA_FRAMESKIP_LABEL_HR NULL +#define MGBA_FRAMESKIP_INFO_0_HR NULL +#define OPTION_VAL_AUTO_THRESHOLD_HR NULL +#define OPTION_VAL_FIXED_INTERVAL_HR NULL +#define MGBA_FRAMESKIP_THRESHOLD_LABEL_HR NULL +#define MGBA_FRAMESKIP_THRESHOLD_INFO_0_HR NULL +#define MGBA_FRAMESKIP_INTERVAL_LABEL_HR NULL +#define MGBA_FRAMESKIP_INTERVAL_INFO_0_HR NULL + +struct retro_core_option_v2_category option_cats_hr[] = { + { + "system", + CATEGORY_SYSTEM_LABEL_HR, + CATEGORY_SYSTEM_INFO_0_HR + }, + { + "video", + CATEGORY_VIDEO_LABEL_HR, +#if defined(COLOR_16_BIT) && defined(COLOR_5_6_5) + CATEGORY_VIDEO_INFO_0_HR +#else + CATEGORY_VIDEO_INFO_1_HR +#endif + }, + { + "audio", + CATEGORY_AUDIO_LABEL_HR, + CATEGORY_AUDIO_INFO_0_HR + }, + { + "input", + CATEGORY_INPUT_LABEL_HR, + CATEGORY_INPUT_INFO_0_HR + }, + { + "performance", + CATEGORY_PERFORMANCE_LABEL_HR, + CATEGORY_PERFORMANCE_INFO_0_HR + }, + { NULL, NULL, NULL }, +}; +struct retro_core_option_v2_definition option_defs_hr[] = { + { + "mgba_gb_model", + MGBA_GB_MODEL_LABEL_HR, + NULL, + MGBA_GB_MODEL_INFO_0_HR, + NULL, + "system", + { + { "Autodetect", OPTION_VAL_AUTODETECT_HR }, + { "Game Boy", OPTION_VAL_GAME_BOY_HR }, + { "Super Game Boy", OPTION_VAL_SUPER_GAME_BOY_HR }, + { "Game Boy Color", OPTION_VAL_GAME_BOY_COLOR_HR }, + { "Game Boy Advance", OPTION_VAL_GAME_BOY_ADVANCE_HR }, + { NULL, NULL }, + }, + "Autodetect" + }, + { + "mgba_use_bios", + MGBA_USE_BIOS_LABEL_HR, + NULL, + MGBA_USE_BIOS_INFO_0_HR, + NULL, + "system", + { + { "ON", "enabled" }, + { "OFF", "disabled" }, + { NULL, NULL }, + }, + "ON" + }, + { + "mgba_skip_bios", + MGBA_SKIP_BIOS_LABEL_HR, + NULL, + MGBA_SKIP_BIOS_INFO_0_HR, + NULL, + "system", + { + { "OFF", "disabled" }, + { "ON", "enabled" }, + { NULL, NULL }, + }, + "OFF" + }, + { + "mgba_gb_colors", + MGBA_GB_COLORS_LABEL_HR, + NULL, + MGBA_GB_COLORS_INFO_0_HR, + NULL, + "video", + { + /* This list is populated at runtime */ + { "Grayscale", OPTION_VAL_GRAYSCALE_HR }, + { NULL, NULL }, + }, + "Grayscale" + }, + { + "mgba_gb_colors_preset", + MGBA_GB_COLORS_PRESET_LABEL_HR, + NULL, + MGBA_GB_COLORS_PRESET_INFO_0_HR, + NULL, + "video", + { + { "0", OPTION_VAL_0_HR }, + { "1", OPTION_VAL_1_HR }, + { "2", OPTION_VAL_2_HR }, + { "3", OPTION_VAL_3_HR }, + { NULL, NULL }, + }, + "0" + }, + { + "mgba_sgb_borders", + MGBA_SGB_BORDERS_LABEL_HR, + NULL, + MGBA_SGB_BORDERS_INFO_0_HR, + NULL, + "video", + { + { "ON", "enabled" }, + { "OFF", "disabled" }, + { NULL, NULL }, + }, + "ON" + }, +#if defined(COLOR_16_BIT) && defined(COLOR_5_6_5) + { + "mgba_color_correction", + MGBA_COLOR_CORRECTION_LABEL_HR, + NULL, + MGBA_COLOR_CORRECTION_INFO_0_HR, + NULL, + "video", + { + { "OFF", "disabled" }, + { "GBA", OPTION_VAL_GAME_BOY_ADVANCE_HR }, + { "GBC", OPTION_VAL_GAME_BOY_COLOR_HR }, + { "Auto", OPTION_VAL_AUTO_HR }, + { NULL, NULL }, + }, + "OFF" + }, + { + "mgba_interframe_blending", + MGBA_INTERFRAME_BLENDING_LABEL_HR, + NULL, + MGBA_INTERFRAME_BLENDING_INFO_0_HR, + NULL, + "video", + { + { "OFF", "disabled" }, + { "mix", OPTION_VAL_MIX_HR }, + { "mix_smart", OPTION_VAL_MIX_SMART_HR }, + { "lcd_ghosting", OPTION_VAL_LCD_GHOSTING_HR }, + { "lcd_ghosting_fast", OPTION_VAL_LCD_GHOSTING_FAST_HR }, + { NULL, NULL }, + }, + "OFF" + }, +#endif + { + "mgba_audio_low_pass_filter", + MGBA_AUDIO_LOW_PASS_FILTER_LABEL_HR, + MGBA_AUDIO_LOW_PASS_FILTER_LABEL_CAT_HR, + MGBA_AUDIO_LOW_PASS_FILTER_INFO_0_HR, + NULL, + "audio", + { + { "disabled", NULL }, + { "enabled", NULL }, + { NULL, NULL }, + }, + "disabled" + }, + { + "mgba_audio_low_pass_range", + MGBA_AUDIO_LOW_PASS_RANGE_LABEL_HR, + MGBA_AUDIO_LOW_PASS_RANGE_LABEL_CAT_HR, + MGBA_AUDIO_LOW_PASS_RANGE_INFO_0_HR, + NULL, + "audio", + { + { "5", OPTION_VAL_5_HR }, + { "10", OPTION_VAL_10_HR }, + { "15", OPTION_VAL_15_HR }, + { "20", OPTION_VAL_20_HR }, + { "25", OPTION_VAL_25_HR }, + { "30", OPTION_VAL_30_HR }, + { "35", OPTION_VAL_35_HR }, + { "40", OPTION_VAL_40_HR }, + { "45", OPTION_VAL_45_HR }, + { "50", OPTION_VAL_50_HR }, + { "55", OPTION_VAL_55_HR }, + { "60", OPTION_VAL_60_HR }, + { "65", OPTION_VAL_65_HR }, + { "70", OPTION_VAL_70_HR }, + { "75", OPTION_VAL_75_HR }, + { "80", OPTION_VAL_80_HR }, + { "85", OPTION_VAL_85_HR }, + { "90", OPTION_VAL_90_HR }, + { "95", OPTION_VAL_95_HR }, + { NULL, NULL }, + }, + "60" + }, + { + "mgba_allow_opposing_directions", + MGBA_ALLOW_OPPOSING_DIRECTIONS_LABEL_HR, + NULL, + MGBA_ALLOW_OPPOSING_DIRECTIONS_INFO_0_HR, + NULL, + "input", + { + { "no", "disabled" }, + { "yes", "enabled" }, + { NULL, NULL }, + }, + "no" + }, + { + "mgba_solar_sensor_level", + MGBA_SOLAR_SENSOR_LEVEL_LABEL_HR, + NULL, + MGBA_SOLAR_SENSOR_LEVEL_INFO_0_HR, + NULL, + "input", + { + { "sensor", OPTION_VAL_SENSOR_HR }, + { "0", NULL }, + { "1", NULL }, + { "2", NULL }, + { "3", NULL }, + { "4", NULL }, + { "5", NULL }, + { "6", NULL }, + { "7", NULL }, + { "8", NULL }, + { "9", NULL }, + { "10", NULL }, + { NULL, NULL }, + }, + "0" + }, + { + "mgba_force_gbp", + MGBA_FORCE_GBP_LABEL_HR, + NULL, + MGBA_FORCE_GBP_INFO_0_HR, + NULL, + "input", + { + { "OFF", "disabled" }, + { "ON", "enabled" }, + { NULL, NULL }, + }, + "OFF" + }, + { + "mgba_idle_optimization", + MGBA_IDLE_OPTIMIZATION_LABEL_HR, + NULL, + MGBA_IDLE_OPTIMIZATION_INFO_0_HR, + NULL, + "performance", + { + { "Remove Known", OPTION_VAL_REMOVE_KNOWN_HR }, + { "Detect and Remove", OPTION_VAL_DETECT_AND_REMOVE_HR }, + { "Don't Remove", OPTION_VAL_DON_T_REMOVE_HR }, + { NULL, NULL }, + }, + "Remove Known" + }, + { + "mgba_frameskip", + MGBA_FRAMESKIP_LABEL_HR, + NULL, + MGBA_FRAMESKIP_INFO_0_HR, + NULL, + "performance", + { + { "disabled", NULL }, + { "auto", OPTION_VAL_AUTO_HR }, + { "auto_threshold", OPTION_VAL_AUTO_THRESHOLD_HR }, + { "fixed_interval", OPTION_VAL_FIXED_INTERVAL_HR }, + { NULL, NULL }, + }, + "disabled" + }, + { + "mgba_frameskip_threshold", + MGBA_FRAMESKIP_THRESHOLD_LABEL_HR, + NULL, + MGBA_FRAMESKIP_THRESHOLD_INFO_0_HR, + NULL, + "performance", + { + { "15", NULL }, + { "18", NULL }, + { "21", NULL }, + { "24", NULL }, + { "27", NULL }, + { "30", NULL }, + { "33", NULL }, + { "36", NULL }, + { "39", NULL }, + { "42", NULL }, + { "45", NULL }, + { "48", NULL }, + { "51", NULL }, + { "54", NULL }, + { "57", NULL }, + { "60", NULL }, + { NULL, NULL }, + }, + "33" + }, + { + "mgba_frameskip_interval", + MGBA_FRAMESKIP_INTERVAL_LABEL_HR, + NULL, + MGBA_FRAMESKIP_INTERVAL_INFO_0_HR, + NULL, + "performance", + { + { "0", NULL }, + { "1", NULL }, + { "2", NULL }, + { "3", NULL }, + { "4", NULL }, + { "5", NULL }, + { "6", NULL }, + { "7", NULL }, + { "8", NULL }, + { "9", NULL }, + { "10", NULL }, + { NULL, NULL }, + }, + "0" + }, + { NULL, NULL, NULL, NULL, NULL, NULL, {{0}}, NULL }, +}; +struct retro_core_options_v2 options_hr = { + option_cats_hr, + option_defs_hr +}; + /* RETRO_LANGUAGE_HU */ -#define CATEGORY_SYSTEM_LABEL_HU NULL -#define CATEGORY_SYSTEM_INFO_0_HU NULL -#define CATEGORY_VIDEO_LABEL_HU "Videó" -#define CATEGORY_VIDEO_INFO_0_HU NULL -#define CATEGORY_VIDEO_INFO_1_HU NULL +#define CATEGORY_SYSTEM_LABEL_HU "Rendszer" +#define CATEGORY_SYSTEM_INFO_0_HU "A hardveralap kiválasztása / BIOS paraméterek." +#define CATEGORY_VIDEO_LABEL_HU "Kép" +#define CATEGORY_VIDEO_INFO_0_HU "DMG paletta / SGB keret / színkorrekció / LCD szellemkép effektek beállítása." +#define CATEGORY_VIDEO_INFO_1_HU "DMG paletta / SGB keretek beállítása." #define CATEGORY_AUDIO_LABEL_HU "Hang" -#define CATEGORY_AUDIO_INFO_0_HU NULL -#define CATEGORY_INPUT_LABEL_HU NULL -#define CATEGORY_INPUT_INFO_0_HU NULL -#define CATEGORY_PERFORMANCE_LABEL_HU NULL -#define CATEGORY_PERFORMANCE_INFO_0_HU NULL -#define MGBA_GB_MODEL_LABEL_HU NULL -#define MGBA_GB_MODEL_INFO_0_HU NULL +#define CATEGORY_AUDIO_INFO_0_HU "Hangszűrés beállítása." +#define CATEGORY_INPUT_LABEL_HU "Bemenet és kiegészítő eszközök" +#define CATEGORY_INPUT_INFO_0_HU "A kontroller/érzékelő bemenetének és a kontroller rezgésének beállításai." +#define CATEGORY_PERFORMANCE_LABEL_HU "Teljesítmény" +#define CATEGORY_PERFORMANCE_INFO_0_HU "Az üresjárati hurok eltávolítás / képkockakihagyás paraméterei." +#define MGBA_GB_MODEL_LABEL_HU "Game Boy modell (újraindítás)" +#define MGBA_GB_MODEL_INFO_0_HU "A tartalom futtatása meghatározott Game Boy változattal. Az automatikus felismerés az aktuális játékhoz legmegfelelőbbet választja ki." #define OPTION_VAL_AUTODETECT_HU "Automatikus felismerés" #define OPTION_VAL_GAME_BOY_HU NULL #define OPTION_VAL_SUPER_GAME_BOY_HU NULL #define OPTION_VAL_GAME_BOY_COLOR_HU NULL #define OPTION_VAL_GAME_BOY_ADVANCE_HU NULL -#define MGBA_USE_BIOS_LABEL_HU NULL -#define MGBA_USE_BIOS_INFO_0_HU NULL -#define MGBA_SKIP_BIOS_LABEL_HU NULL -#define MGBA_SKIP_BIOS_INFO_0_HU NULL -#define MGBA_GB_COLORS_LABEL_HU NULL -#define MGBA_GB_COLORS_INFO_0_HU NULL -#define OPTION_VAL_GRAYSCALE_HU NULL -#define MGBA_GB_COLORS_PRESET_LABEL_HU NULL -#define MGBA_GB_COLORS_PRESET_INFO_0_HU NULL -#define OPTION_VAL_0_HU NULL -#define OPTION_VAL_1_HU NULL -#define OPTION_VAL_2_HU NULL -#define OPTION_VAL_3_HU NULL -#define MGBA_SGB_BORDERS_LABEL_HU NULL -#define MGBA_SGB_BORDERS_INFO_0_HU NULL -#define MGBA_COLOR_CORRECTION_LABEL_HU NULL -#define MGBA_COLOR_CORRECTION_INFO_0_HU NULL -#define OPTION_VAL_AUTO_HU NULL -#define MGBA_INTERFRAME_BLENDING_LABEL_HU NULL -#define MGBA_INTERFRAME_BLENDING_INFO_0_HU NULL -#define OPTION_VAL_MIX_HU NULL -#define OPTION_VAL_MIX_SMART_HU NULL -#define OPTION_VAL_LCD_GHOSTING_HU NULL -#define OPTION_VAL_LCD_GHOSTING_FAST_HU NULL -#define MGBA_AUDIO_LOW_PASS_FILTER_LABEL_HU NULL -#define MGBA_AUDIO_LOW_PASS_FILTER_LABEL_CAT_HU NULL -#define MGBA_AUDIO_LOW_PASS_FILTER_INFO_0_HU NULL -#define MGBA_AUDIO_LOW_PASS_RANGE_LABEL_HU NULL -#define MGBA_AUDIO_LOW_PASS_RANGE_LABEL_CAT_HU NULL -#define MGBA_AUDIO_LOW_PASS_RANGE_INFO_0_HU NULL +#define MGBA_USE_BIOS_LABEL_HU "BIOS fájl használata, ha megtalálható (újraindítás)" +#define MGBA_USE_BIOS_INFO_0_HU "A hivatalos BIOS/bootbetöltő használata az emulált hardverhez, ha megtalálható a RetroArch rendszerkönyvtárában." +#define MGBA_SKIP_BIOS_LABEL_HU "BIOS intro kihagyása (újraindítás)" +#define MGBA_SKIP_BIOS_INFO_0_HU "Hivatalos BIOS/bootbetöltő használatakor az indítási logo animáció átugrása. Ennek a beállításnak nincs hatása, ha a BIOS fájl használata ki van kapcsolva." +#define MGBA_GB_COLORS_LABEL_HU "Alapértelmezett Game Boy színpaletta" +#define MGBA_GB_COLORS_INFO_0_HU "A Game Boy játékokhoz használt paletta, ha a játék nem Game Boy Color vagy Super Game Boy kompatibilis, vagy ha a modell Game Boy-ra van állítva." +#define OPTION_VAL_GRAYSCALE_HU "Szürkeárnyalatos" +#define MGBA_GB_COLORS_PRESET_LABEL_HU "Hardveres Game Boy paletták (újraindítás)" +#define MGBA_GB_COLORS_PRESET_INFO_0_HU "Azokhoz a Game Boy játékokhoz, amelyeknek van előre tárolt beállítása a Game Boy Color-on vagy a Super Game Boy-on, használja azt." +#define OPTION_VAL_0_HU "Alapértelmezett Game Boy színpaletta" +#define OPTION_VAL_1_HU "Csak a Game Boy Color beállítások" +#define OPTION_VAL_2_HU "Csak a Super Game Boy beállítások" +#define OPTION_VAL_3_HU "Bármely elérhető beállítás" +#define MGBA_SGB_BORDERS_LABEL_HU "Super Game Boy keretek használata (újraindítás)" +#define MGBA_SGB_BORDERS_INFO_0_HU "A Super Game Boy keretek megjelenítése Super Game Boy-on többet tudó játékoknál." +#define MGBA_COLOR_CORRECTION_LABEL_HU "Színkorrekció" +#define MGBA_COLOR_CORRECTION_INFO_0_HU "A kimenő színek hozzáigazítása a valódi GBA / GBC hardverhez." +#define OPTION_VAL_AUTO_HU "Automatikus" +#define MGBA_INTERFRAME_BLENDING_LABEL_HU "Képkockák vegyítése" +#define MGBA_INTERFRAME_BLENDING_INFO_0_HU "Az LCD szellemkép szimulálása. \"Egyszerű\" állapotban a jelenlegi és az előző képkockát 50:50 arányban keveri. Az \"Intelligens\" állás detektálja a villódzást, és csak az érintett pixeleket keveri 50:50 arányban. \"LCD szellemkép\" állásban az LCD természetes válaszidejét utánozza több képkocka kombinálásával. Az \"Egyszerű\" vagy \"Intelligens\" beállítás szükséges azokhoz a játékokhoz, amelyek az LCD szellemképet használják átlátszósági effektekhez (Wave Race, Chikyuu Kaihou Gun ZAS, F-Zero, a Boktai sorozat...)." +#define OPTION_VAL_MIX_HU "Egyszerű" +#define OPTION_VAL_MIX_SMART_HU "Intelligens" +#define OPTION_VAL_LCD_GHOSTING_HU "LCD szellemkép (pontos)" +#define OPTION_VAL_LCD_GHOSTING_FAST_HU "LCD szellemkép (gyors)" +#define MGBA_AUDIO_LOW_PASS_FILTER_LABEL_HU "Hangszűrő" +#define MGBA_AUDIO_LOW_PASS_FILTER_LABEL_CAT_HU "Aluláteresztő szűrő" +#define MGBA_AUDIO_LOW_PASS_FILTER_INFO_0_HU "Aluláteresztő hangszűrő engedélyezése a generált hang \"nyersességének\" tompításához." +#define MGBA_AUDIO_LOW_PASS_RANGE_LABEL_HU "Hangszűrő szintje" +#define MGBA_AUDIO_LOW_PASS_RANGE_LABEL_CAT_HU "Szűrési szint" +#define MGBA_AUDIO_LOW_PASS_RANGE_INFO_0_HU "Az aluláteresztő hangszűrő vágási frekvenciája. Nagyobb érték \"erősebb\" szűrésként hallatszik, mivel a magastartomány szélesebb sávja halkul el." #define OPTION_VAL_5_HU NULL #define OPTION_VAL_10_HU NULL #define OPTION_VAL_15_HU NULL @@ -7467,26 +8333,26 @@ struct retro_core_options_v2 options_he = { #define OPTION_VAL_85_HU NULL #define OPTION_VAL_90_HU NULL #define OPTION_VAL_95_HU NULL -#define MGBA_ALLOW_OPPOSING_DIRECTIONS_LABEL_HU NULL -#define MGBA_ALLOW_OPPOSING_DIRECTIONS_INFO_0_HU NULL -#define MGBA_SOLAR_SENSOR_LEVEL_LABEL_HU NULL -#define MGBA_SOLAR_SENSOR_LEVEL_INFO_0_HU NULL -#define OPTION_VAL_SENSOR_HU NULL -#define MGBA_FORCE_GBP_LABEL_HU NULL -#define MGBA_FORCE_GBP_INFO_0_HU NULL -#define MGBA_IDLE_OPTIMIZATION_LABEL_HU NULL -#define MGBA_IDLE_OPTIMIZATION_INFO_0_HU NULL -#define OPTION_VAL_REMOVE_KNOWN_HU NULL -#define OPTION_VAL_DETECT_AND_REMOVE_HU NULL -#define OPTION_VAL_DON_T_REMOVE_HU NULL -#define MGBA_FRAMESKIP_LABEL_HU NULL -#define MGBA_FRAMESKIP_INFO_0_HU NULL -#define OPTION_VAL_AUTO_THRESHOLD_HU NULL -#define OPTION_VAL_FIXED_INTERVAL_HU NULL -#define MGBA_FRAMESKIP_THRESHOLD_LABEL_HU NULL -#define MGBA_FRAMESKIP_THRESHOLD_INFO_0_HU NULL -#define MGBA_FRAMESKIP_INTERVAL_LABEL_HU NULL -#define MGBA_FRAMESKIP_INTERVAL_INFO_0_HU NULL +#define MGBA_ALLOW_OPPOSING_DIRECTIONS_LABEL_HU "Ellentétes irányok engedélyezése" +#define MGBA_ALLOW_OPPOSING_DIRECTIONS_INFO_0_HU "A jobb és bal (vagy fel és le) irányok egyidejű/gyorsan váltakozó lenyomásának vagy nyomva tartásának engedélyezése. Hibákat okozhat a mozgatásban." +#define MGBA_SOLAR_SENSOR_LEVEL_LABEL_HU "Fényszenzor szintje" +#define MGBA_SOLAR_SENSOR_LEVEL_INFO_0_HU "A környező napfény intenzitásának állítása. Olyan játékok használják, amelyek tartalmaznak fényérzékelőt a cartridge-ben, mint pl. a Boktai sorozat." +#define OPTION_VAL_SENSOR_HU "Az eszköz szenzorának használata, ha elérhető" +#define MGBA_FORCE_GBP_LABEL_HU "Game Boy Player rezgés (újraindítás)" +#define MGBA_FORCE_GBP_INFO_0_HU "A Game Boy Player indító logóval ellátott kompatibilis játékok rezgethetik a kontrollert. Mivel a Nintendo úgy döntött, hogy ez a feature úgy működjön, ahogy, így aztán hibákat, villódzást vagy késleltetést okozhat néhány ilyen játékban." +#define MGBA_IDLE_OPTIMIZATION_LABEL_HU "Üresjárati hurkok eltávolítása" +#define MGBA_IDLE_OPTIMIZATION_INFO_0_HU "A rendszer terhelésének csökkentése az üresjárati hurkok optimalizálásával - ezekben nem történik semmi, de a CPU teljes sebességgel fut (mint amikor üresben pörgetik egy autó motorját). Javítja a teljesítményt, gyenge hardveren legyen bekapcsolva." +#define OPTION_VAL_REMOVE_KNOWN_HU "Az ismertek eltávolítása" +#define OPTION_VAL_DETECT_AND_REMOVE_HU "Érzékelés és eltávolítás" +#define OPTION_VAL_DON_T_REMOVE_HU "Nincs eltávolítás" +#define MGBA_FRAMESKIP_LABEL_HU "Képkocka kihagyás" +#define MGBA_FRAMESKIP_INFO_0_HU "A hangbuffer kiürülése (recsegés) elkerülésére képkockák eldobása. Javít a teljesítményen a vizuális folyamatosság kárára. Az \"Automatikus\" beállítás akkor dob képkockát, ha a frontend azt javasolja. Az \"Automatikus (határérték)\" a \"Képkocka kihagyás határértéke (%)\" beállítást használja. A \"Fix időköz\" a képkockadobás időközének beállítását használja." +#define OPTION_VAL_AUTO_THRESHOLD_HU "Automatikus (határérték)" +#define OPTION_VAL_FIXED_INTERVAL_HU "Fix időköz" +#define MGBA_FRAMESKIP_THRESHOLD_LABEL_HU "Képkocka kihagyás határértéke (%)" +#define MGBA_FRAMESKIP_THRESHOLD_INFO_0_HU "Ha a \"Képkocka kihagyás\" \"Automatikus (határérték)\" értékre van állítva, ez határozza meg a hangpuffer telítettségi határát (százalékban), amely alatt képkockákat dob el. Nagyobb érték csökkenti a recsegés kockázatát azáltal, hogy gyakrabban dob el képkockát." +#define MGBA_FRAMESKIP_INTERVAL_LABEL_HU "Képkockadobás időköze" +#define MGBA_FRAMESKIP_INTERVAL_INFO_0_HU "A fix időközű képkockadobásnál ez az érték állítja be az egy előállított képkocka után eldobott képkockák számát. Pl: 0 = 60 fps, 1 = 30 fps, 2 = 15 fps, stb." struct retro_core_option_v2_category option_cats_hu[] = { { @@ -7833,7 +8699,7 @@ struct retro_core_options_v2 options_hu = { /* RETRO_LANGUAGE_ID */ -#define CATEGORY_SYSTEM_LABEL_ID NULL +#define CATEGORY_SYSTEM_LABEL_ID "Sistem" #define CATEGORY_SYSTEM_INFO_0_ID NULL #define CATEGORY_VIDEO_LABEL_ID NULL #define CATEGORY_VIDEO_INFO_0_ID NULL @@ -7842,9 +8708,9 @@ struct retro_core_options_v2 options_hu = { #define CATEGORY_AUDIO_INFO_0_ID NULL #define CATEGORY_INPUT_LABEL_ID NULL #define CATEGORY_INPUT_INFO_0_ID NULL -#define CATEGORY_PERFORMANCE_LABEL_ID NULL +#define CATEGORY_PERFORMANCE_LABEL_ID "Kinerja" #define CATEGORY_PERFORMANCE_INFO_0_ID NULL -#define MGBA_GB_MODEL_LABEL_ID NULL +#define MGBA_GB_MODEL_LABEL_ID "Model Game Boy (mulai ulang)" #define MGBA_GB_MODEL_INFO_0_ID NULL #define OPTION_VAL_AUTODETECT_ID NULL #define OPTION_VAL_GAME_BOY_ID NULL @@ -7858,7 +8724,7 @@ struct retro_core_options_v2 options_hu = { #define MGBA_GB_COLORS_LABEL_ID NULL #define MGBA_GB_COLORS_INFO_0_ID NULL #define OPTION_VAL_GRAYSCALE_ID NULL -#define MGBA_GB_COLORS_PRESET_LABEL_ID NULL +#define MGBA_GB_COLORS_PRESET_LABEL_ID "Palet Game Boy Praatur Perangkat Keras (mulai ulang)" #define MGBA_GB_COLORS_PRESET_INFO_0_ID NULL #define OPTION_VAL_0_ID NULL #define OPTION_VAL_1_ID NULL @@ -7868,7 +8734,7 @@ struct retro_core_options_v2 options_hu = { #define MGBA_SGB_BORDERS_INFO_0_ID NULL #define MGBA_COLOR_CORRECTION_LABEL_ID NULL #define MGBA_COLOR_CORRECTION_INFO_0_ID NULL -#define OPTION_VAL_AUTO_ID NULL +#define OPTION_VAL_AUTO_ID "Otomatis" #define MGBA_INTERFRAME_BLENDING_LABEL_ID NULL #define MGBA_INTERFRAME_BLENDING_INFO_0_ID NULL #define OPTION_VAL_MIX_ID NULL @@ -7905,7 +8771,7 @@ struct retro_core_options_v2 options_hu = { #define MGBA_SOLAR_SENSOR_LEVEL_LABEL_ID NULL #define MGBA_SOLAR_SENSOR_LEVEL_INFO_0_ID NULL #define OPTION_VAL_SENSOR_ID NULL -#define MGBA_FORCE_GBP_LABEL_ID NULL +#define MGBA_FORCE_GBP_LABEL_ID "Getaran Game Boy Player (mulai ulang)" #define MGBA_FORCE_GBP_INFO_0_ID NULL #define MGBA_IDLE_OPTIMIZATION_LABEL_ID NULL #define MGBA_IDLE_OPTIMIZATION_INFO_0_ID NULL @@ -8700,52 +9566,52 @@ struct retro_core_options_v2 options_it = { /* RETRO_LANGUAGE_JA */ #define CATEGORY_SYSTEM_LABEL_JA "システム" -#define CATEGORY_SYSTEM_INFO_0_JA NULL +#define CATEGORY_SYSTEM_INFO_0_JA "ベースハードウェアの選択 / BIOSパラメータの設定。" #define CATEGORY_VIDEO_LABEL_JA "ビデオのドライバ" -#define CATEGORY_VIDEO_INFO_0_JA NULL -#define CATEGORY_VIDEO_INFO_1_JA NULL +#define CATEGORY_VIDEO_INFO_0_JA "DMGパレット / SGBボーダー / カラーコレクション / 液晶残像効果を設定する。" +#define CATEGORY_VIDEO_INFO_1_JA "DMGパレット / SGBボーダーを設定する。" #define CATEGORY_AUDIO_LABEL_JA "オーディオのドライバ" -#define CATEGORY_AUDIO_INFO_0_JA NULL -#define CATEGORY_INPUT_LABEL_JA NULL -#define CATEGORY_INPUT_INFO_0_JA NULL -#define CATEGORY_PERFORMANCE_LABEL_JA NULL -#define CATEGORY_PERFORMANCE_INFO_0_JA NULL -#define MGBA_GB_MODEL_LABEL_JA NULL -#define MGBA_GB_MODEL_INFO_0_JA NULL +#define CATEGORY_AUDIO_INFO_0_JA "オーディオのフィルタリングを設定する。" +#define CATEGORY_INPUT_LABEL_JA "入力・補助デバイス" +#define CATEGORY_INPUT_INFO_0_JA "コントローラー / センサー入力とコントローラー振動の設定をする。" +#define CATEGORY_PERFORMANCE_LABEL_JA "パフォーマンス" +#define CATEGORY_PERFORMANCE_INFO_0_JA "アイドルループ除去 / フレームスキップのパラメータを設定する。" +#define MGBA_GB_MODEL_LABEL_JA "ゲームボーイモデル (再起動)" +#define MGBA_GB_MODEL_INFO_0_JA "特定のゲームボーイモデルで読み込まれたコンテンツを実行します。「自動検出」は現在のゲームに最も適したモデルを選択します。" #define OPTION_VAL_AUTODETECT_JA "自動検出" -#define OPTION_VAL_GAME_BOY_JA NULL +#define OPTION_VAL_GAME_BOY_JA "ゲームボーイ" #define OPTION_VAL_SUPER_GAME_BOY_JA "スーパーゲームボーイ" -#define OPTION_VAL_GAME_BOY_COLOR_JA NULL -#define OPTION_VAL_GAME_BOY_ADVANCE_JA NULL -#define MGBA_USE_BIOS_LABEL_JA NULL -#define MGBA_USE_BIOS_INFO_0_JA NULL -#define MGBA_SKIP_BIOS_LABEL_JA NULL -#define MGBA_SKIP_BIOS_INFO_0_JA NULL -#define MGBA_GB_COLORS_LABEL_JA NULL +#define OPTION_VAL_GAME_BOY_COLOR_JA "ゲームボーイカラー" +#define OPTION_VAL_GAME_BOY_ADVANCE_JA "ゲームボーイアドバンス" +#define MGBA_USE_BIOS_LABEL_JA "BIOS ファイルが見つかった場合使用する (再起動)" +#define MGBA_USE_BIOS_INFO_0_JA "RetroArch のシステムディレクトリにある場合、エミュレートされたハードウェアの公式 BIOS / ブートローダを使用します。" +#define MGBA_SKIP_BIOS_LABEL_JA "BIOS イントロをスキップ (再起動)" +#define MGBA_SKIP_BIOS_INFO_0_JA "公式の BIOS / ブートローダーを使用する場合は、起動ロゴのアニメーションをスキップします。「 BIOS ファイルが見つかった場合使用する」が無効の場合はこの設定は無視されます。" +#define MGBA_GB_COLORS_LABEL_JA "デフォルトのゲームボーイパレット" #define MGBA_GB_COLORS_INFO_0_JA NULL -#define OPTION_VAL_GRAYSCALE_JA NULL -#define MGBA_GB_COLORS_PRESET_LABEL_JA NULL +#define OPTION_VAL_GRAYSCALE_JA "グレースケール" +#define MGBA_GB_COLORS_PRESET_LABEL_JA "ハードウェアプリセットのゲームボーイパレット (再起動)" #define MGBA_GB_COLORS_PRESET_INFO_0_JA NULL -#define OPTION_VAL_0_JA NULL -#define OPTION_VAL_1_JA NULL -#define OPTION_VAL_2_JA NULL -#define OPTION_VAL_3_JA NULL -#define MGBA_SGB_BORDERS_LABEL_JA NULL -#define MGBA_SGB_BORDERS_INFO_0_JA NULL -#define MGBA_COLOR_CORRECTION_LABEL_JA NULL -#define MGBA_COLOR_CORRECTION_INFO_0_JA NULL +#define OPTION_VAL_0_JA "デフォルトのゲームボーイプリセット" +#define OPTION_VAL_1_JA "ゲームボーイカラープリセットのみ" +#define OPTION_VAL_2_JA "スーパーゲームボーイのプリセットのみ" +#define OPTION_VAL_3_JA "利用可能なプリセット" +#define MGBA_SGB_BORDERS_LABEL_JA "スーパーゲームボーイのピクチャーフレームを使用 (再起動)" +#define MGBA_SGB_BORDERS_INFO_0_JA "スーパーゲームボーイで強化されたゲームを実行するときにスーパーゲームボーイのピクチャーフレームを表示します。" +#define MGBA_COLOR_CORRECTION_LABEL_JA "カラーコレクション" +#define MGBA_COLOR_CORRECTION_INFO_0_JA "実際の GBA / GBC ハードウェアの表示に合わせて出力色を調整します。" #define OPTION_VAL_AUTO_JA "自動" #define MGBA_INTERFRAME_BLENDING_LABEL_JA NULL #define MGBA_INTERFRAME_BLENDING_INFO_0_JA NULL -#define OPTION_VAL_MIX_JA NULL -#define OPTION_VAL_MIX_SMART_JA NULL -#define OPTION_VAL_LCD_GHOSTING_JA NULL -#define OPTION_VAL_LCD_GHOSTING_FAST_JA NULL +#define OPTION_VAL_MIX_JA "シンプル" +#define OPTION_VAL_MIX_SMART_JA "スマート" +#define OPTION_VAL_LCD_GHOSTING_JA "液晶残像 (精密)" +#define OPTION_VAL_LCD_GHOSTING_FAST_JA "液晶残像 (高速)" #define MGBA_AUDIO_LOW_PASS_FILTER_LABEL_JA "オーディオフィルタ" -#define MGBA_AUDIO_LOW_PASS_FILTER_LABEL_CAT_JA NULL +#define MGBA_AUDIO_LOW_PASS_FILTER_LABEL_CAT_JA "ローパスフィルタ" #define MGBA_AUDIO_LOW_PASS_FILTER_INFO_0_JA NULL -#define MGBA_AUDIO_LOW_PASS_RANGE_LABEL_JA NULL -#define MGBA_AUDIO_LOW_PASS_RANGE_LABEL_CAT_JA NULL +#define MGBA_AUDIO_LOW_PASS_RANGE_LABEL_JA "オーディオフィルタレベル" +#define MGBA_AUDIO_LOW_PASS_RANGE_LABEL_CAT_JA "フィルタレベル" #define MGBA_AUDIO_LOW_PASS_RANGE_INFO_0_JA "ローパスオーディオフィルターのカットオフ周波数を指定します。 値を大きくすると、高周波数スペクトルの広い範囲が減衰するため、フィルタの知覚された「強さ」が増加します。" #define OPTION_VAL_5_JA NULL #define OPTION_VAL_10_JA NULL @@ -8766,18 +9632,18 @@ struct retro_core_options_v2 options_it = { #define OPTION_VAL_85_JA NULL #define OPTION_VAL_90_JA NULL #define OPTION_VAL_95_JA NULL -#define MGBA_ALLOW_OPPOSING_DIRECTIONS_LABEL_JA NULL -#define MGBA_ALLOW_OPPOSING_DIRECTIONS_INFO_0_JA NULL -#define MGBA_SOLAR_SENSOR_LEVEL_LABEL_JA NULL +#define MGBA_ALLOW_OPPOSING_DIRECTIONS_LABEL_JA "対向方向入力を許可する" +#define MGBA_ALLOW_OPPOSING_DIRECTIONS_INFO_0_JA "有効にすると、左右 (または上下) 方向の同時押し / 高速交互押し / 長押しが可能になります。動作に不具合が生じる場合があります。" +#define MGBA_SOLAR_SENSOR_LEVEL_LABEL_JA "太陽センサーレベル" #define MGBA_SOLAR_SENSOR_LEVEL_INFO_0_JA NULL -#define OPTION_VAL_SENSOR_JA NULL -#define MGBA_FORCE_GBP_LABEL_JA NULL -#define MGBA_FORCE_GBP_INFO_0_JA NULL -#define MGBA_IDLE_OPTIMIZATION_LABEL_JA NULL +#define OPTION_VAL_SENSOR_JA "利用可能な場合は端末センサーを使用する" +#define MGBA_FORCE_GBP_LABEL_JA "ゲームボーイプレーヤー振動 (再起動)" +#define MGBA_FORCE_GBP_INFO_0_JA "この機能を有効にすると、ゲームボーイプレーヤーの起動ロゴがある対応ゲームで、コントローラーが振動するようになります。この機能は、任天堂の判断により、一部のゲームでちらつきやラグなどの不具合が発生する場合があります。" +#define MGBA_IDLE_OPTIMIZATION_LABEL_JA "アイドルループの削除" #define MGBA_IDLE_OPTIMIZATION_INFO_0_JA NULL #define OPTION_VAL_REMOVE_KNOWN_JA NULL -#define OPTION_VAL_DETECT_AND_REMOVE_JA NULL -#define OPTION_VAL_DON_T_REMOVE_JA NULL +#define OPTION_VAL_DETECT_AND_REMOVE_JA "検出と削除" +#define OPTION_VAL_DON_T_REMOVE_JA "削除しない" #define MGBA_FRAMESKIP_LABEL_JA "フレームスキップ" #define MGBA_FRAMESKIP_INFO_0_JA NULL #define OPTION_VAL_AUTO_THRESHOLD_JA NULL @@ -12198,7 +13064,7 @@ struct retro_core_options_v2 options_pt_br = { #define MGBA_SGB_BORDERS_INFO_0_PT_PT NULL #define MGBA_COLOR_CORRECTION_LABEL_PT_PT NULL #define MGBA_COLOR_CORRECTION_INFO_0_PT_PT NULL -#define OPTION_VAL_AUTO_PT_PT NULL +#define OPTION_VAL_AUTO_PT_PT "Automático" #define MGBA_INTERFRAME_BLENDING_LABEL_PT_PT NULL #define MGBA_INTERFRAME_BLENDING_INFO_0_PT_PT NULL #define OPTION_VAL_MIX_PT_PT NULL @@ -13041,7 +13907,7 @@ struct retro_core_options_v2 options_ro = { #define CATEGORY_PERFORMANCE_LABEL_RU "Производительность" #define CATEGORY_PERFORMANCE_INFO_0_RU "Настройки удаления циклов простоя / пропуска кадров." #define MGBA_GB_MODEL_LABEL_RU "Модель Game Boy (перезапуск)" -#define MGBA_GB_MODEL_INFO_0_RU "Запуск загруженного контента на указанной модели Game Boy. В режиме 'Авто' будет установлена самая подходящая модель для текущей игры." +#define MGBA_GB_MODEL_INFO_0_RU "Запускает загружаемый контент на определённой модели Game Boy. Режим 'Авто' устанавливает наиболее подходящую систему для текущей игры." #define OPTION_VAL_AUTODETECT_RU "Авто" #define OPTION_VAL_GAME_BOY_RU NULL #define OPTION_VAL_SUPER_GAME_BOY_RU NULL @@ -13104,7 +13970,7 @@ struct retro_core_options_v2 options_ro = { #define MGBA_FORCE_GBP_LABEL_RU "Отдача Game Boy Player (перезапуск)" #define MGBA_FORCE_GBP_INFO_0_RU "При включении активирует отдачу для совместимых игр с логотипом Game Boy Player на экране загрузки. Из-за особенностей реализации Nintendo, в некоторых играх данная функция может вызывать баги в виде подтормаживаний или мерцания." #define MGBA_IDLE_OPTIMIZATION_LABEL_RU "Удаление циклов простоя" -#define MGBA_IDLE_OPTIMIZATION_INFO_0_RU "Уменьшает загруженность системы, оптимизируя т.н. 'циклы простоя' - части кода, в которых ничего не происходит, но которые CPU обрабатывает на полной скорости. Повышает производительность и рекомендуется для включения на слабых устройствах." +#define MGBA_IDLE_OPTIMIZATION_INFO_0_RU "Уменьшает нагрузку на систему с помощью оптимизации т.н. 'циклов простоя' - пустых частей кода, которые CPU обрабатывает на полной скорости. Повышает производительность и рекомендуется для включения на слабых устройствах." #define OPTION_VAL_REMOVE_KNOWN_RU "Удалять известные" #define OPTION_VAL_DETECT_AND_REMOVE_RU "Определять и удалять" #define OPTION_VAL_DON_T_REMOVE_RU "Не удалять" @@ -13895,7 +14761,7 @@ struct retro_core_options_v2 options_si = { /* RETRO_LANGUAGE_SK */ -#define CATEGORY_SYSTEM_LABEL_SK NULL +#define CATEGORY_SYSTEM_LABEL_SK "Systém" #define CATEGORY_SYSTEM_INFO_0_SK NULL #define CATEGORY_VIDEO_LABEL_SK NULL #define CATEGORY_VIDEO_INFO_0_SK NULL @@ -13904,11 +14770,11 @@ struct retro_core_options_v2 options_si = { #define CATEGORY_AUDIO_INFO_0_SK NULL #define CATEGORY_INPUT_LABEL_SK NULL #define CATEGORY_INPUT_INFO_0_SK NULL -#define CATEGORY_PERFORMANCE_LABEL_SK NULL +#define CATEGORY_PERFORMANCE_LABEL_SK "Výkon" #define CATEGORY_PERFORMANCE_INFO_0_SK NULL #define MGBA_GB_MODEL_LABEL_SK NULL #define MGBA_GB_MODEL_INFO_0_SK NULL -#define OPTION_VAL_AUTODETECT_SK NULL +#define OPTION_VAL_AUTODETECT_SK "Automatická detekcia" #define OPTION_VAL_GAME_BOY_SK NULL #define OPTION_VAL_SUPER_GAME_BOY_SK NULL #define OPTION_VAL_GAME_BOY_COLOR_SK NULL @@ -13928,13 +14794,13 @@ struct retro_core_options_v2 options_si = { #define OPTION_VAL_3_SK NULL #define MGBA_SGB_BORDERS_LABEL_SK NULL #define MGBA_SGB_BORDERS_INFO_0_SK NULL -#define MGBA_COLOR_CORRECTION_LABEL_SK NULL +#define MGBA_COLOR_CORRECTION_LABEL_SK "Korekcia farieb" #define MGBA_COLOR_CORRECTION_INFO_0_SK NULL #define OPTION_VAL_AUTO_SK NULL #define MGBA_INTERFRAME_BLENDING_LABEL_SK NULL #define MGBA_INTERFRAME_BLENDING_INFO_0_SK NULL -#define OPTION_VAL_MIX_SK NULL -#define OPTION_VAL_MIX_SMART_SK NULL +#define OPTION_VAL_MIX_SK "Jednoduché" +#define OPTION_VAL_MIX_SMART_SK "Inteligentné" #define OPTION_VAL_LCD_GHOSTING_SK NULL #define OPTION_VAL_LCD_GHOSTING_FAST_SK NULL #define MGBA_AUDIO_LOW_PASS_FILTER_LABEL_SK "Zvukový filter" @@ -13974,13 +14840,13 @@ struct retro_core_options_v2 options_si = { #define OPTION_VAL_REMOVE_KNOWN_SK NULL #define OPTION_VAL_DETECT_AND_REMOVE_SK NULL #define OPTION_VAL_DON_T_REMOVE_SK NULL -#define MGBA_FRAMESKIP_LABEL_SK NULL +#define MGBA_FRAMESKIP_LABEL_SK "Preskočenie snímky" #define MGBA_FRAMESKIP_INFO_0_SK NULL #define OPTION_VAL_AUTO_THRESHOLD_SK NULL #define OPTION_VAL_FIXED_INTERVAL_SK NULL -#define MGBA_FRAMESKIP_THRESHOLD_LABEL_SK NULL +#define MGBA_FRAMESKIP_THRESHOLD_LABEL_SK "Prah preskočenia snímky (%)" #define MGBA_FRAMESKIP_THRESHOLD_INFO_0_SK NULL -#define MGBA_FRAMESKIP_INTERVAL_LABEL_SK NULL +#define MGBA_FRAMESKIP_INTERVAL_LABEL_SK "Interval preskočenia snímky" #define MGBA_FRAMESKIP_INTERVAL_INFO_0_SK NULL struct retro_core_option_v2_category option_cats_sk[] = { @@ -14816,18 +15682,18 @@ struct retro_core_options_v2 options_sr = { #define OPTION_VAL_25_SV NULL #define OPTION_VAL_30_SV NULL #define OPTION_VAL_35_SV NULL -#define OPTION_VAL_40_SV NULL -#define OPTION_VAL_45_SV NULL -#define OPTION_VAL_50_SV NULL -#define OPTION_VAL_55_SV NULL -#define OPTION_VAL_60_SV NULL -#define OPTION_VAL_65_SV NULL -#define OPTION_VAL_70_SV NULL -#define OPTION_VAL_75_SV NULL -#define OPTION_VAL_80_SV NULL -#define OPTION_VAL_85_SV NULL -#define OPTION_VAL_90_SV NULL -#define OPTION_VAL_95_SV NULL +#define OPTION_VAL_40_SV "40 %" +#define OPTION_VAL_45_SV "45 %" +#define OPTION_VAL_50_SV "50 %" +#define OPTION_VAL_55_SV "55 %" +#define OPTION_VAL_60_SV "60 %" +#define OPTION_VAL_65_SV "65 %" +#define OPTION_VAL_70_SV "70 %" +#define OPTION_VAL_75_SV "75 %" +#define OPTION_VAL_80_SV "80 %" +#define OPTION_VAL_85_SV "85 %" +#define OPTION_VAL_90_SV "90 %" +#define OPTION_VAL_95_SV "95 %" #define MGBA_ALLOW_OPPOSING_DIRECTIONS_LABEL_SV NULL #define MGBA_ALLOW_OPPOSING_DIRECTIONS_INFO_0_SV NULL #define MGBA_SOLAR_SENSOR_LEVEL_LABEL_SV NULL @@ -15636,7 +16502,7 @@ struct retro_core_options_v2 options_tr = { #define CATEGORY_AUDIO_INFO_0_UK NULL #define CATEGORY_INPUT_LABEL_UK NULL #define CATEGORY_INPUT_INFO_0_UK NULL -#define CATEGORY_PERFORMANCE_LABEL_UK NULL +#define CATEGORY_PERFORMANCE_LABEL_UK "Продуктивність" #define CATEGORY_PERFORMANCE_INFO_0_UK NULL #define MGBA_GB_MODEL_LABEL_UK NULL #define MGBA_GB_MODEL_INFO_0_UK NULL @@ -15674,7 +16540,7 @@ struct retro_core_options_v2 options_tr = { #define MGBA_AUDIO_LOW_PASS_FILTER_INFO_0_UK NULL #define MGBA_AUDIO_LOW_PASS_RANGE_LABEL_UK NULL #define MGBA_AUDIO_LOW_PASS_RANGE_LABEL_CAT_UK NULL -#define MGBA_AUDIO_LOW_PASS_RANGE_INFO_0_UK NULL +#define MGBA_AUDIO_LOW_PASS_RANGE_INFO_0_UK "Визначає частоту зрізу звукового фільтра низьких частот. Більше значення збільшує сприйману 'силу' фільтра, оскільки ширший діапазон високочастотного спектру послаблюється." #define OPTION_VAL_5_UK NULL #define OPTION_VAL_10_UK NULL #define OPTION_VAL_15_UK NULL @@ -15695,7 +16561,7 @@ struct retro_core_options_v2 options_tr = { #define OPTION_VAL_90_UK NULL #define OPTION_VAL_95_UK NULL #define MGBA_ALLOW_OPPOSING_DIRECTIONS_LABEL_UK NULL -#define MGBA_ALLOW_OPPOSING_DIRECTIONS_INFO_0_UK NULL +#define MGBA_ALLOW_OPPOSING_DIRECTIONS_INFO_0_UK "Увімкнення цього дозволить одночасно натискати / швидко чергувати/утримувати одночасно ліворуч та праворуч (чи донизу) напрямки. Це може спричинити глітчі руху." #define MGBA_SOLAR_SENSOR_LEVEL_LABEL_UK NULL #define MGBA_SOLAR_SENSOR_LEVEL_INFO_0_UK NULL #define OPTION_VAL_SENSOR_UK NULL @@ -16060,7 +16926,7 @@ struct retro_core_options_v2 options_uk = { /* RETRO_LANGUAGE_VAL */ -#define CATEGORY_SYSTEM_LABEL_VAL NULL +#define CATEGORY_SYSTEM_LABEL_VAL "Sistema" #define CATEGORY_SYSTEM_INFO_0_VAL NULL #define CATEGORY_VIDEO_LABEL_VAL "Vídeo" #define CATEGORY_VIDEO_INFO_0_VAL NULL @@ -16095,7 +16961,7 @@ struct retro_core_options_v2 options_uk = { #define MGBA_SGB_BORDERS_INFO_0_VAL NULL #define MGBA_COLOR_CORRECTION_LABEL_VAL NULL #define MGBA_COLOR_CORRECTION_INFO_0_VAL NULL -#define OPTION_VAL_AUTO_VAL NULL +#define OPTION_VAL_AUTO_VAL "Selecció automàtica" #define MGBA_INTERFRAME_BLENDING_LABEL_VAL NULL #define MGBA_INTERFRAME_BLENDING_INFO_0_VAL NULL #define OPTION_VAL_MIX_VAL NULL @@ -16576,7 +17442,7 @@ struct retro_core_options_v2 options_val = { #define MGBA_FRAMESKIP_INFO_0_VN NULL #define OPTION_VAL_AUTO_THRESHOLD_VN NULL #define OPTION_VAL_FIXED_INTERVAL_VN NULL -#define MGBA_FRAMESKIP_THRESHOLD_LABEL_VN NULL +#define MGBA_FRAMESKIP_THRESHOLD_LABEL_VN "Ngưỡng bỏ qua khung hình (%)" #define MGBA_FRAMESKIP_THRESHOLD_INFO_0_VN NULL #define MGBA_FRAMESKIP_INTERVAL_LABEL_VN NULL #define MGBA_FRAMESKIP_INTERVAL_INFO_0_VN NULL