diff --git a/intl/msg_hash_ar.c b/intl/msg_hash_ar.c index 7cc1e1f252..fc21ba3fa2 100644 --- a/intl/msg_hash_ar.c +++ b/intl/msg_hash_ar.c @@ -35,1125 +35,27 @@ int msg_hash_get_help_ar_enum(enum msg_hash_enums msg, char *s, size_t len) { - settings_t *settings = config_get_ptr(); - - if (msg <= MENU_ENUM_LABEL_INPUT_HOTKEY_BIND_END && - msg >= MENU_ENUM_LABEL_INPUT_HOTKEY_BIND_BEGIN) - { - unsigned idx = msg - MENU_ENUM_LABEL_INPUT_HOTKEY_BIND_BEGIN; - - switch (idx) - { - case RARCH_QUIT_KEY: - snprintf(s, len, - "Key to exit RetroArch cleanly. \n" - " \n" - "Killing it in any hard way (SIGKILL, etc.) will \n" - "terminate RetroArch without saving RAM, etc." -#ifdef __unix__ - "\nOn Unix-likes, SIGINT/SIGTERM allows a clean \n" - "deinitialization." -#endif - ""); - break; - case RARCH_STATE_SLOT_PLUS: - case RARCH_STATE_SLOT_MINUS: - snprintf(s, len, - "State slots. \n" - " \n" - "With slot set to 0, save state name is \n" - "*.state (or whatever defined on commandline). \n" - " \n" - "When slot is not 0, path will be <path><d>, \n" - "where <d> is slot number."); - break; - default: - if (string_is_empty(s)) - strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_INFORMATION_AVAILABLE), len); - break; - } - - return 0; - } - - switch (msg) - { - case MENU_ENUM_LABEL_ACCOUNTS_RETRO_ACHIEVEMENTS: - snprintf(s, len, "Login details for your \n" - "Retro Achievements account. \n" - " \n" - "Visit retroachievements.org and sign up \n" - "for a free account. \n" - " \n" - "After you are done registering, you need \n" - "to input the username and password into \n" - "RetroArch."); - break; - case MENU_ENUM_LABEL_USER_LANGUAGE: - snprintf(s, len, "Localizes the menu and all onscreen messages \n" - "according to the language you have selected \n" - "here. \n" - " \n" - "Requires a restart for the changes \n" - "to take effect. \n" - " \n" - "Note: not all languages might be currently \n" - "implemented. \n" - " \n" - "In case a language is not implemented, \n" - "we fallback to English."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_CONFIG: - snprintf(s, len, "Configuration file."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_COMPRESSED_ARCHIVE: - snprintf(s, len, "Compressed archive file."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_RECORD_CONFIG: - snprintf(s, len, "Recording configuration file."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_CURSOR: - snprintf(s, len, "Database cursor file."); - break; - case MENU_ENUM_LABEL_FILE_CONFIG: - snprintf(s, len, "Configuration file."); - break; - case MENU_ENUM_LABEL_SCAN_THIS_DIRECTORY: - snprintf(s, len, - "Select this to scan the current directory \n" - "for content."); - break; - case MENU_ENUM_LABEL_USE_THIS_DIRECTORY: - snprintf(s, len, - "Select this to set this as the directory."); - break; - case MENU_ENUM_LABEL_DUMMY_ON_CORE_SHUTDOWN: - snprintf(s, len, - "Some cores might have \n" - "a shutdown feature. \n" - " \n" - "If this option is left disabled, \n" - "selecting the shutdown procedure \n" - "would trigger RetroArch being shut \n" - "down. \n" - " \n" - "Enabling this option will load a \n" - "dummy core instead so that we remain \n" - "inside the menu and RetroArch won't \n" - "shutdown."); - break; - case MENU_ENUM_LABEL_CHECK_FOR_MISSING_FIRMWARE: - snprintf(s, len, - "Some cores might need \n" - "firmware or bios files. \n" - " \n" - "If this option is disabled, \n" - "it will try to load even if such \n" - "firmware is missing. \n"); - break; - case MENU_ENUM_LABEL_PARENT_DIRECTORY: - snprintf(s, len, - "Go back to the parent directory."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_SHADER_PRESET: - snprintf(s, len, - "Shader preset file."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_SHADER: - snprintf(s, len, - "Shader file."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_REMAP: - snprintf(s, len, - "Remap controls file."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_CHEAT: - snprintf(s, len, - "Cheat file."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_OVERLAY: - snprintf(s, len, - "Overlay file."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_RDB: - snprintf(s, len, - "Database file."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_FONT: - snprintf(s, len, - "TrueType font file."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_PLAIN_FILE: - snprintf(s, len, - "Plain file."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_MOVIE_OPEN: - snprintf(s, len, - "Video. \n" - " \n" - "Select it to open this file with the \n" - "video player."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_MUSIC_OPEN: - snprintf(s, len, - "Music. \n" - " \n" - "Select it to open this file with the \n" - "music player."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_IMAGE: - snprintf(s, len, - "Image file."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_IMAGE_OPEN_WITH_VIEWER: - snprintf(s, len, - "Image. \n" - " \n" - "Select it to open this file with the \n" - "image viewer."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_CORE_SELECT_FROM_COLLECTION: - snprintf(s, len, - "Libretro core. \n" - " \n" - "Selecting this will associate this core \n" - "to the game."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_CORE: - snprintf(s, len, - "Libretro core. \n" - " \n" - "Select this file to have RetroArch load this core."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_DIRECTORY: - snprintf(s, len, - "Directory. \n" - " \n" - "Select it to open this directory."); - break; - case MENU_ENUM_LABEL_CACHE_DIRECTORY: - snprintf(s, len, - "Cache Directory. \n" - " \n" - "Content decompressed by RetroArch will be \n" - "temporarily extracted to this directory."); - break; - case MENU_ENUM_LABEL_INPUT_POLL_TYPE_BEHAVIOR: - snprintf(s, len, - "Influence how input polling is done inside \n" - "RetroArch. \n" - " \n" - "Early - Input polling is performed before \n" - "the frame is processed. \n" - "Normal - Input polling is performed when \n" - "polling is requested. \n" - "Late - Input polling is performed on \n" - "first input state request per frame.\n" - " \n" - "Setting it to 'Early' or 'Late' can result \n" - "in less latency, \n" - "depending on your configuration.\n\n" - "Will be ignored when using netplay." - ); - break; - case MENU_ENUM_LABEL_VIDEO_MESSAGE_POS_X: - case MENU_ENUM_LABEL_VIDEO_MESSAGE_POS_Y: - snprintf(s, len, - "Offset for where messages will be placed \n" - "onscreen. Values are in range [0.0, 1.0]."); - break; - case MENU_ENUM_LABEL_CORE_LIST: - snprintf(s, len, - "Load Core. \n" - " \n" - "Browse for a libretro core \n" - "implementation. Where the browser \n" - "starts depends on your Core Directory \n" - "path. If blank, it will start in root. \n" - " \n" - "If Core Directory is a directory, the menu \n" - "will use that as top folder. If Core \n" - "Directory is a full path, it will start \n" - "in the folder where the file is."); - break; - case MENU_ENUM_LABEL_VALUE_MENU_ENUM_CONTROLS_PROLOG: - snprintf(s, len, - "You can use the following controls below \n" - "on either your gamepad or keyboard in order\n" - "to control the menu: \n" - " \n" - ); - break; - case MENU_ENUM_LABEL_WELCOME_TO_RETROARCH: - snprintf(s, len, - "Welcome to RetroArch\n" - ); - break; - case MENU_ENUM_LABEL_VALUE_HELP_AUDIO_VIDEO_TROUBLESHOOTING_DESC: { - /* Work around C89 limitations */ - char u[501]; - const char *t = - "RetroArch relies on an unique form of\n" - "audio/video synchronization where it needs to be\n" - "calibrated against the refresh rate of your\n" - "display for best performance results.\n" - " \n" - "If you experience any audio crackling or video\n" - "tearing, usually it means that you need to\n" - "calibrate the settings. Some choices below:\n" - " \n"; - snprintf(u, sizeof(u), /* can't inline this due to the printf arguments */ - "a) Go to '%s' -> '%s', and enable\n" - "'Threaded Video'. Refresh rate will not matter\n" - "in this mode, framerate will be higher,\n" - "but video might be less smooth.\n" - "b) Go to '%s' -> '%s', and look at\n" - "'%s'. Let it run for\n" - "2048 frames, then press 'OK'.", - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SETTINGS), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_SETTINGS), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SETTINGS), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_SETTINGS), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_REFRESH_RATE_AUTO)); - strlcpy(s, t, len); - strlcat(s, u, len); - } - break; - case MENU_ENUM_LABEL_VALUE_HELP_SCANNING_CONTENT_DESC: - snprintf(s, len, - "To scan for content, go to '%s' and\n" - "select either '%s' or %s'.\n" - "\n" - "Files will be compared to database entries.\n" - "If there is a match, it will add an entry\n" - "to a playlist.\n" - "\n" - "You can then easily access this content by\n" - "going to '%s' ->\n" - "'%s'\n" - "instead of having to go through the\n" - "file browser everytime.\n" - "\n" - "NOTE: Content for some cores might still not be\n" - "scannable.", - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ADD_CONTENT_LIST), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SCAN_DIRECTORY), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SCAN_FILE), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_LIST), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_PLAYLISTS_TAB) - ); - break; - case MENU_ENUM_LABEL_VALUE_EXTRACTING_PLEASE_WAIT: - snprintf(s, len, - "Welcome to RetroArch\n" - "\n" - "Extracting assets, please wait.\n" - "This might take a while...\n" - ); - break; - case MENU_ENUM_LABEL_INPUT_DRIVER: - { - const char *lbl = settings ? settings->arrays.input_driver : NULL; - - if (string_is_equal(lbl, msg_hash_to_str(MENU_ENUM_LABEL_INPUT_DRIVER_UDEV))) - snprintf(s, len, - "udev Input driver. \n" - " \n" - "It uses the recent evdev joypad API \n" - "for joystick support. It supports \n" - "hotplugging and force feedback. \n" - " \n" - "The driver reads evdev events for keyboard \n" - "support. It also supports keyboard callback, \n" - "mice and touchpads. \n" - " \n" - "By default in most distros, /dev/input nodes \n" - "are root-only (mode 600). You can set up a udev \n" - "rule which makes these accessible to non-root." - ); - else if (string_is_equal(lbl, msg_hash_to_str(MENU_ENUM_LABEL_INPUT_DRIVER_LINUXRAW))) - snprintf(s, len, - "linuxraw Input driver. \n" - " \n" - "This driver requires an active TTY. Keyboard \n" - "events are read directly from the TTY which \n" - "makes it simpler, but not as flexible as udev. \n" "Mice, etc, are not supported at all. \n" - " \n" - "This driver uses the older joystick API \n" - "(/dev/input/js*)."); - else - snprintf(s, len, - "Input driver.\n" - " \n" - "Depending on video driver, it might \n" - "force a different input driver."); - } - break; - case MENU_ENUM_LABEL_LOAD_CONTENT_LIST: - snprintf(s, len, - "Load Content. \n" - "Browse for content. \n" - " \n" - "To load content, you need a \n" - "'Core' to use, and a content file. \n" - " \n" - "To control where the menu starts \n" - "to browse for content, set \n" - "'File Browser Directory'. \n" - "If not set, it will start in root. \n" - " \n" - "The browser will filter out \n" - "extensions for the last core set \n" - "in 'Load Core', and use that core \n" - "when content is loaded." - ); - break; - case MENU_ENUM_LABEL_LOAD_CONTENT_HISTORY: - snprintf(s, len, - "Loading content from history. \n" - " \n" - "As content is loaded, content and libretro \n" - "core combinations are saved to history. \n" - " \n" - "The history is saved to a file in the same \n" - "directory as the RetroArch config file. If \n" - "no config file was loaded in startup, history \n" - "will not be saved or loaded, and will not exist \n" - "in the main menu." - ); - break; - case MENU_ENUM_LABEL_VIDEO_DRIVER: - { - const char *video_driver = settings->arrays.video_driver; - snprintf(s, len, - "Current Video driver."); - - if (string_is_equal(video_driver, "gl")) - { - snprintf(s, len, - "OpenGL Video driver. \n" - " \n" - "This driver allows libretro GL cores to \n" - "be used in addition to software-rendered \n" - "core implementations.\n" - " \n" - "Performance for software-rendered and \n" - "libretro GL core implementations is \n" - "dependent on your graphics card's \n" - "underlying GL driver)."); - } - else if (string_is_equal(video_driver, "sdl2")) - { - snprintf(s, len, - "SDL 2 Video driver.\n" - " \n" - "This is an SDL 2 software-rendered video \n" - "driver.\n" - " \n" - "Performance for software-rendered libretro \n" - "core implementations is dependent \n" - "on your platform SDL implementation."); - } - else if (string_is_equal(video_driver, "sdl1")) - { - snprintf(s, len, - "SDL Video driver.\n" - " \n" - "This is an SDL 1.2 software-rendered video \n" - "driver.\n" - " \n" - "Performance is considered to be suboptimal. \n" - "Consider using it only as a last resort."); - } - else if (string_is_equal(video_driver, "d3d")) - { - snprintf(s, len, - "Direct3D Video driver. \n" - " \n" - "Performance for software-rendered cores \n" - "is dependent on your graphic card's \n" - "underlying D3D driver)."); - } - else if (string_is_equal(video_driver, "exynos")) - { - snprintf(s, len, - "Exynos-G2D Video Driver. \n" - " \n" - "This is a low-level Exynos video driver. \n" - "Uses the G2D block in Samsung Exynos SoC \n" - "for blit operations. \n" - " \n" - "Performance for software rendered cores \n" - "should be optimal."); - } - else if (string_is_equal(video_driver, "drm")) - { - snprintf(s, len, - "Plain DRM Video Driver. \n" - " \n" - "This is a low-level video driver using. \n" - "libdrm for hardware scaling using \n" - "GPU overlays."); - } - else if (string_is_equal(video_driver, "sunxi")) - { - snprintf(s, len, - "Sunxi-G2D Video Driver. \n" - " \n" - "This is a low-level Sunxi video driver. \n" - "Uses the G2D block in Allwinner SoCs."); - } - } - break; - case MENU_ENUM_LABEL_AUDIO_RESAMPLER_DRIVER: - { - const char *lbl = settings ? settings->arrays.audio_resampler : NULL; - - if (string_is_equal(lbl, msg_hash_to_str(MENU_ENUM_LABEL_AUDIO_RESAMPLER_DRIVER_SINC))) - strlcpy(s, - "Windowed SINC implementation.", len); - else if (string_is_equal(lbl, msg_hash_to_str(MENU_ENUM_LABEL_AUDIO_RESAMPLER_DRIVER_CC))) - strlcpy(s, - "Convoluted Cosine implementation.", len); - else if (string_is_empty(s)) - strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_INFORMATION_AVAILABLE), len); - } - break; - case MENU_ENUM_LABEL_VIDEO_SHADER_PRESET: - snprintf(s, len, - "Load Shader Preset. \n" - " \n" - " Load a shader preset directly. \n" - "The menu shader menu is updated accordingly. \n" - " \n" - "If the CGP uses scaling methods which are not \n" - "simple, (i.e. source scaling, same scaling \n" - "factor for X/Y), the scaling factor displayed \n" - "in the menu might not be correct." - ); - break; - case MENU_ENUM_LABEL_VIDEO_SHADER_SCALE_PASS: - snprintf(s, len, - "Scale for this pass. \n" - " \n" - "The scale factor accumulates, i.e. 2x \n" - "for first pass and 2x for second pass \n" - "will give you a 4x total scale. \n" - " \n" - "If there is a scale factor for last \n" - "pass, the result is stretched to \n" - "screen with the filter specified in \n" - "'Default Filter'. \n" - " \n" - "If 'Don't Care' is set, either 1x \n" - "scale or stretch to fullscreen will \n" - "be used depending if it's not the last \n" - "pass or not." - ); - break; - case MENU_ENUM_LABEL_VIDEO_SHADER_NUM_PASSES: - snprintf(s, len, - "Shader Passes. \n" - " \n" - "RetroArch allows you to mix and match various \n" - "shaders with arbitrary shader passes, with \n" - "custom hardware filters and scale factors. \n" - " \n" - "This option specifies the number of shader \n" - "passes to use. If you set this to 0, and use \n" - "Apply Shader Changes, you use a 'blank' shader. \n" - " \n" - "The Default Filter option will affect the \n" - "stretching filter."); - break; - case MENU_ENUM_LABEL_VIDEO_SHADER_PASS: - snprintf(s, len, - "Path to shader. \n" - " \n" - "All shaders must be of the same \n" - "type (i.e. CG, GLSL or HLSL). \n" - " \n" - "Set Shader Directory to set where \n" - "the browser starts to look for \n" - "shaders." - ); - break; - case MENU_ENUM_LABEL_CONFIGURATION_SETTINGS: - snprintf(s, len, - "Determines how configuration files \n" - "are loaded and prioritized."); - break; - case MENU_ENUM_LABEL_CONFIG_SAVE_ON_EXIT: - snprintf(s, len, - "Saves config to disk on exit.\n" - "Useful for menu as settings can be\n" - "modified. Overwrites the config.\n" - " \n" - "#include's and comments are not \n" - "preserved. \n" - " \n" - "By design, the config file is \n" - "considered immutable as it is \n" - "likely maintained by the user, \n" - "and should not be overwritten \n" - "behind the user's back." -#if defined(RARCH_CONSOLE) || defined(RARCH_MOBILE) - "\nThis is not not the case on \n" - "consoles however, where \n" - "looking at the config file \n" - "manually isn't really an option." -#endif - ); - break; - case MENU_ENUM_LABEL_VIDEO_SHADER_FILTER_PASS: - snprintf(s, len, - "Hardware filter for this pass. \n" - " \n" - "If 'Don't Care' is set, 'Default \n" - "Filter' will be used." - ); - break; - case MENU_ENUM_LABEL_AUTOSAVE_INTERVAL: - snprintf(s, len, - "Autosaves the non-volatile SRAM \n" - "at a regular interval.\n" - " \n" - "This is disabled by default unless set \n" - "otherwise. The interval is measured in \n" - "seconds. \n" - " \n" - "A value of 0 disables autosave."); - break; - case MENU_ENUM_LABEL_INPUT_BIND_DEVICE_TYPE: - snprintf(s, len, - "Input Device Type. \n" - " \n" - "Picks which device type to use. This is \n" - "relevant for the libretro core itself." - ); - break; - case MENU_ENUM_LABEL_LIBRETRO_LOG_LEVEL: - snprintf(s, len, - "Sets log level for libretro cores \n" - "(GET_LOG_INTERFACE). \n" - " \n" - " If a log level issued by a libretro \n" - " core is below libretro_log level, it \n" - " is ignored.\n" - " \n" - " DEBUG logs are always ignored unless \n" - " verbose mode is activated (--verbose).\n" - " \n" - " DEBUG = 0\n" - " INFO = 1\n" - " WARN = 2\n" - " ERROR = 3" - ); - break; - case MENU_ENUM_LABEL_STATE_SLOT_INCREASE: - case MENU_ENUM_LABEL_STATE_SLOT_DECREASE: - snprintf(s, len, - "State slots.\n" - " \n" - " With slot set to 0, save state name is *.state \n" - " (or whatever defined on commandline).\n" - "When slot is != 0, path will be (path)(d), \n" - "where (d) is slot number."); - break; - case MENU_ENUM_LABEL_SHADER_APPLY_CHANGES: - snprintf(s, len, - "Apply Shader Changes. \n" - " \n" - "After changing shader settings, use this to \n" - "apply changes. \n" - " \n" - "Changing shader settings is a somewhat \n" - "expensive operation so it has to be \n" - "done explicitly. \n" - " \n" - "When you apply shaders, the menu shader \n" - "settings are saved to a temporary file (either \n" - "menu.cgp or menu.glslp) and loaded. The file \n" - "persists after RetroArch exits. The file is \n" - "saved to Shader Directory." - ); - break; - case MENU_ENUM_LABEL_SHADER_WATCH_FOR_CHANGES: - snprintf(s, len, - "Watch shader files for new changes. \n" - " \n" - "After saving changes to a shader on disk, \n" - "it will automatically be recompiled \n" - "and applied to the running content." - ); - break; - case MENU_ENUM_LABEL_DISK_NEXT: - snprintf(s, len, - "Cycles through disk images. Use after \n" - "ejecting. \n" - " \n" - " Complete by toggling eject again."); - break; - case MENU_ENUM_LABEL_VIDEO_FILTER: -#ifdef HAVE_FILTERS_BUILTIN - snprintf(s, len, - "CPU-based video filter."); -#else - snprintf(s, len, - "CPU-based video filter.\n" - " \n" - "Path to a dynamic library."); -#endif - break; - case MENU_ENUM_LABEL_AUDIO_DEVICE: - snprintf(s, len, - "Override the default audio device \n" - "the audio driver uses.\n" - "This is driver dependent. E.g.\n" -#ifdef HAVE_ALSA - " \n" - "ALSA wants a PCM device." -#endif -#ifdef HAVE_OSS - " \n" - "OSS wants a path (e.g. /dev/dsp)." -#endif -#ifdef HAVE_JACK - " \n" - "JACK wants portnames (e.g. system:playback1\n" - ",system:playback_2)." -#endif -#ifdef HAVE_RSOUND - " \n" - "RSound wants an IP address to an RSound \n" - "server." -#endif - ); - break; - case MENU_ENUM_LABEL_ENABLE_HOTKEY: - snprintf(s, len, - "Enable other hotkeys.\n" - " \n" - " If this hotkey is bound to either keyboard, \n" - "joybutton or joyaxis, all other hotkeys will \n" - "be disabled unless this hotkey is also held \n" - "at the same time. \n" - " \n" - "This is useful for RETRO_KEYBOARD centric \n" - "implementations which query a large area of \n" - "the keyboard, where it is not desirable that \n" - "hotkeys get in the way."); - break; - case MENU_ENUM_LABEL_VIDEO_REFRESH_RATE_AUTO: - snprintf(s, len, - "Refresh Rate Auto.\n" - " \n" - "The accurate refresh rate of our monitor (Hz).\n" - "This is used to calculate audio input rate with \n" - "the formula: \n" - " \n" - "audio_input_rate = game input rate * display \n" - "refresh rate / game refresh rate\n" - " \n" - "If the implementation does not report any \n" - "values, NTSC defaults will be assumed for \n" - "compatibility.\n" - " \n" - "This value should stay close to 60Hz to avoid \n" - "large pitch changes. If your monitor does \n" - "not run at 60Hz, or something close to it, \n" - "disable VSync, and leave this at its default."); - break; - case MENU_ENUM_LABEL_FASTFORWARD_RATIO: - snprintf(s, len, - "Fastforward ratio." - " \n" - "The maximum rate at which content will\n" - "be run when using fast forward.\n" - " \n" - " (E.g. 5.0 for 60 fps content => 300 fps \n" - "cap).\n" - " \n" - "RetroArch will go to sleep to ensure that \n" - "the maximum rate will not be exceeded.\n" - "Do not rely on this cap to be perfectly \n" - "accurate."); - break; - case MENU_ENUM_LABEL_VIDEO_MONITOR_INDEX: - snprintf(s, len, - "Which monitor to prefer.\n" - " \n" - "0 (default) means no particular monitor \n" - "is preferred, 1 and up (1 being first \n" - "monitor), suggests RetroArch to use that \n" - "particular monitor."); - break; - case MENU_ENUM_LABEL_AUDIO_VOLUME: - snprintf(s, len, - "Audio volume, expressed in dB.\n" - " \n" - " 0 dB is normal volume. No gain will be applied.\n" - "Gain can be controlled in runtime with Input\n" - "Volume Up / Input Volume Down."); - break; - case MENU_ENUM_LABEL_AUDIO_RATE_CONTROL_DELTA: - snprintf(s, len, - "Audio rate control.\n" - " \n" - "Setting this to 0 disables rate control.\n" - "Any other value controls audio rate control \n" - "delta.\n" - " \n" - "Defines how much input rate can be adjusted \n" - "dynamically.\n" - " \n" - " Input rate is defined as: \n" - " input rate * (1.0 +/- (rate control delta))"); - break; - case MENU_ENUM_LABEL_AUDIO_MAX_TIMING_SKEW: - snprintf(s, len, - "Maximum audio timing skew.\n" - " \n" - "Defines the maximum change in input rate.\n" - "You may want to increase this to enable\n" - "very large changes in timing, for example\n" - "running PAL cores on NTSC displays, at the\n" - "cost of inaccurate audio pitch.\n" - " \n" - " Input rate is defined as: \n" - " input rate * (1.0 +/- (max timing skew))"); - break; - case MENU_ENUM_LABEL_VIDEO_DISABLE_COMPOSITION: - snprintf(s, len, - "Forcibly disable composition.\n" - "Only valid on Windows Vista/7 for now."); - break; - case MENU_ENUM_LABEL_VIDEO_THREADED: - snprintf(s, len, - "Use threaded video driver.\n" - " \n" - "Using this might improve performance at the \n" - "possible cost of latency and more video \n" - "stuttering."); - break; - case MENU_ENUM_LABEL_VIDEO_FRAME_DELAY: - snprintf(s, len, - "Sets how many milliseconds to delay\n" - "after VSync before running the core.\n" - "\n" - "Can reduce latency at the cost of\n" - "higher risk of stuttering.\n" - " \n" - "Maximum is 15."); - break; - case MENU_ENUM_LABEL_VIDEO_HARD_SYNC_FRAMES: - snprintf(s, len, - "Sets how many frames CPU can \n" - "run ahead of GPU when using 'GPU \n" - "Hard Sync'.\n" - " \n" - "Maximum is 3.\n" - " \n" - " 0: Syncs to GPU immediately.\n" - " 1: Syncs to previous frame.\n" - " 2: Etc ..."); - break; - case MENU_ENUM_LABEL_VIDEO_BLACK_FRAME_INSERTION: - snprintf(s, len, - "Inserts a black frame inbetween \n" - "frames.\n" - " \n" - "Useful for 120 Hz monitors who want to \n" - "play 60 Hz material with eliminated \n" - "ghosting.\n" - " \n" - "Video refresh rate should still be \n" - "configured as if it is a 60 Hz monitor \n" - "(divide refresh rate by 2)."); - break; - case MENU_ENUM_LABEL_SAVEFILE_DIRECTORY: - snprintf(s, len, - "Savefile Directory. \n" - " \n" - "Save all save files (*.srm) to this \n" - "directory. This includes related files like \n" - ".bsv, .rt, .psrm, etc...\n" - " \n" - "This will be overridden by explicit command line\n" - "options."); - break; - case MENU_ENUM_LABEL_ASSETS_DIRECTORY: - snprintf(s, len, - "Assets Directory. \n" - " \n" - " This location is queried by default when \n" - "menu interfaces try to look for loadable \n" - "assets, etc."); - break; - case MENU_ENUM_LABEL_DYNAMIC_WALLPAPERS_DIRECTORY: - snprintf(s, len, - "Dynamic Wallpapers Directory. \n" - " \n" - " The place to store backgrounds that will \n" - "be loaded dynamically by the menu depending \n" - "on context."); - break; - case MENU_ENUM_LABEL_INPUT_PREFER_FRONT_TOUCH: - snprintf(s, len, "Use front instead of back touch."); - break; - case MENU_ENUM_LABEL_SUSPEND_SCREENSAVER_ENABLE: - snprintf(s, len, - "Suspends the screensaver. Is a hint that \n" - "does not necessarily have to be \n" - "honored by the video driver."); - break; - case MENU_ENUM_LABEL_NETPLAY_MODE: - snprintf(s, len, - "Netplay client mode for the current user. \n" - "Will be 'Server' mode if disabled."); - break; - case MENU_ENUM_LABEL_NETPLAY_DELAY_FRAMES: - snprintf(s, len, - "The amount of delay frames to use for netplay. \n" - " \n" - "Increasing this value will increase \n" - "performance, but introduce more latency."); - break; - case MENU_ENUM_LABEL_NETPLAY_START_AS_SPECTATOR: - snprintf(s, len, - "Whether to start netplay in spectator mode. \n" - " \n" - "If set to true, netplay will be in spectator mode \n" - "on start. It's always possible to change mode \n" - "later."); - break; - case MENU_ENUM_LABEL_NETPLAY_CHECK_FRAMES: - snprintf(s, len, - "The frequency in frames with which netplay \n" - "will verify that the host and client are in \n" - "sync. \n" - " \n" - "With most cores, this value will have no \n" - "visible effect and can be ignored. With \n" - "nondeterminstic cores, this value determines \n" - "how often the netplay peers will be brought \n" - "into sync. With buggy cores, setting this \n" - "to any non-zero value will cause severe \n" - "performance issues. Set to zero to perform \n" - "no checks. This value is only used on the \n" - "netplay host. \n"); - break; - case MENU_ENUM_LABEL_NETPLAY_INPUT_LATENCY_FRAMES_MIN: - snprintf(s, len, - "The number of frames of input latency for \n" - "netplay to use to hide network latency. \n" - " \n" - "When in netplay, this option delays local \n" - "input, so that the frame being run is \n" - "closer to the frames being received from \n" - "the network. This reduces jitter and makes \n" - "netplay less CPU-intensive, but at the \n" - "price of noticeable input lag. \n"); - break; - case MENU_ENUM_LABEL_NETPLAY_INPUT_LATENCY_FRAMES_RANGE: - snprintf(s, len, - "The range of frames of input latency that \n" - "may be used by netplay to hide network \n" - "latency. \n" - "\n" - "If set, netplay will adjust the number of \n" - "frames of input latency dynamically to \n" - "balance CPU time, input latency and \n" - "network latency. This reduces jitter and \n" - "makes netplay less CPU-intensive, but at \n" - "the price of unpredictable input lag. \n"); - break; - case MENU_ENUM_LABEL_VIDEO_MAX_SWAPCHAIN_IMAGES: - snprintf(s, len, - "Maximum amount of swapchain images. This \n" - "can tell the video driver to use a specific \n" - "video buffering mode. \n" - " \n" - "Single buffering - 1\n" - "Double buffering - 2\n" - "Triple buffering - 3\n" - " \n" - "Setting the right buffering mode can have \n" - "a big impact on latency."); - break; - case MENU_ENUM_LABEL_VIDEO_SMOOTH: - snprintf(s, len, - "Smoothens picture with bilinear filtering. \n" - "Should be disabled if using shaders."); - break; - case MENU_ENUM_LABEL_VIDEO_CTX_SCALING: - snprintf(s, len, -#ifdef HAVE_ODROIDGO2 - "RGA scaling and bicubic filtering. May break widgets." -#else - "Hardware context scaling (if available)." -#endif - ); - break; - case MENU_ENUM_LABEL_NETPLAY_SETTINGS: - snprintf(s, len, - "Setting related to Netplay."); - break; - case MENU_ENUM_LABEL_NETPLAY_SPECTATOR_MODE_ENABLE: - snprintf(s, len, - "Enable or disable spectator mode for \n" - "the user during netplay."); - break; - case MENU_ENUM_LABEL_UI_COMPANION_START_ON_BOOT: - snprintf(s, len, - "Start User Interface companion driver \n" - "on boot (if available)."); - break; - case MENU_ENUM_LABEL_EXIT_EMULATOR: - snprintf(s, len, - "Key to exit RetroArch cleanly." -#if !defined(RARCH_MOBILE) && !defined(RARCH_CONSOLE) - "\nKilling it in any hard way (SIGKILL, \n" - "etc) will terminate without saving\n" - "RAM, etc. On Unix-likes,\n" - "SIGINT/SIGTERM allows\n" - "a clean deinitialization." -#endif - ); - break; - case MENU_ENUM_LABEL_VALUE_WHAT_IS_A_CORE_DESC: - snprintf(s, len, - "RetroArch by itself does nothing. \n" - " \n" - "To make it do things, you need to \n" - "load a program into it. \n" - "\n" - "We call such a program 'Libretro core', \n" - "or 'core' in short. \n" - " \n" - "To load a core, select one from\n" - "'Load Core'.\n" - " \n" -#ifdef HAVE_NETWORKING - "You can obtain cores in several ways: \n" - "* Download them by going to\n" - "'%s' -> '%s'.\n" - "* Manually move them over to\n" - "'%s'.", - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ONLINE_UPDATER), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_CORE_UPDATER_LIST), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_LIBRETRO_DIR_PATH) -#else - "You can obtain cores by\n" - "manually moving them over to\n" - "'%s'.", - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_LIBRETRO_DIR_PATH) -#endif - ); - break; - case MENU_ENUM_LABEL_VALUE_HELP_CHANGE_VIRTUAL_GAMEPAD_DESC: - snprintf(s, len, - "You can change the virtual gamepad overlay\n" - "by going to '%s' -> '%s'." - " \n" - "From there you can change the overlay,\n" - "change the size and opacity of the buttons, etc.\n" - " \n" - "NOTE: By default, virtual gamepad overlays are\n" - "hidden when in the menu.\n" - "If you'd like to change this behavior,\n" - "you can set '%s' to false.", - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SETTINGS), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_OVERLAY_SETTINGS), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_INPUT_OVERLAY_HIDE_IN_MENU) - ); - break; - case MENU_ENUM_LABEL_VIDEO_MESSAGE_BGCOLOR_ENABLE: - snprintf(s, len, - "Enables a background color for the OSD."); - break; - case MENU_ENUM_LABEL_VIDEO_MESSAGE_BGCOLOR_RED: - snprintf(s, len, - "Sets the red value of the OSD background color. Valid values are between 0 and 255."); - break; - case MENU_ENUM_LABEL_VIDEO_MESSAGE_BGCOLOR_GREEN: - snprintf(s, len, - "Sets the green value of the OSD background color. Valid values are between 0 and 255."); - break; - case MENU_ENUM_LABEL_VIDEO_MESSAGE_BGCOLOR_BLUE: - snprintf(s, len, - "Sets the blue value of the OSD background color. Valid values are between 0 and 255."); - break; - case MENU_ENUM_LABEL_VIDEO_MESSAGE_BGCOLOR_OPACITY: - snprintf(s, len, - "Sets the opacity of the OSD background color. Valid values are between 0.0 and 1.0."); - break; - case MENU_ENUM_LABEL_VIDEO_MESSAGE_COLOR_RED: - snprintf(s, len, - "Sets the red value of the OSD text color. Valid values are between 0 and 255."); - break; - case MENU_ENUM_LABEL_VIDEO_MESSAGE_COLOR_GREEN: - snprintf(s, len, - "Sets the green value of the OSD text color. Valid values are between 0 and 255."); - break; - case MENU_ENUM_LABEL_VIDEO_MESSAGE_COLOR_BLUE: - snprintf(s, len, - "Sets the blue value of the OSD text color. Valid values are between 0 and 255."); - break; - default: - if (string_is_empty(s)) - strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_INFORMATION_AVAILABLE), len); - return -1; - } - - return 0; -} - -#ifdef HAVE_MENU -static const char *menu_hash_to_str_ar_label_enum(enum msg_hash_enums msg) -{ - if (msg <= MENU_ENUM_LABEL_INPUT_HOTKEY_BIND_END && - msg >= MENU_ENUM_LABEL_INPUT_HOTKEY_BIND_BEGIN) - { - static char hotkey_lbl[128] = {0}; - unsigned idx = msg - MENU_ENUM_LABEL_INPUT_HOTKEY_BIND_BEGIN; - snprintf(hotkey_lbl, sizeof(hotkey_lbl), "input_hotkey_binds_%d", idx); - return hotkey_lbl; - } + int ret = 0; switch (msg) { -#include "msg_hash_lbl.h" + case MSG_UNKNOWN: + default: + ret = -1; + break; + } + + return ret; +} + +const char *msg_hash_to_str_ar(enum msg_hash_enums msg) +{ + switch (msg) + { +#include "msg_hash_ar.h" default: -#if 0 - RARCH_LOG("Unimplemented: [%d]\n", msg); -#endif break; } return "null"; } -#endif - -const char *msg_hash_to_str_ar(enum msg_hash_enums msg) { -#ifdef HAVE_MENU - const char *ret = menu_hash_to_str_ar_label_enum(msg); - - if (ret && !string_is_equal(ret, "null")) - return ret; -#endif - - switch (msg) { -#include "msg_hash_ar.h" - default: -#if 0 - RARCH_LOG("Unimplemented: [%d]\n", msg); - { - RARCH_LOG("[%d] : %s\n", msg - 1, msg_hash_to_str(((enum msg_hash_enums)(msg - 1)))); - } -#endif - break; - } - - return "null"; -} diff --git a/intl/msg_hash_el.c b/intl/msg_hash_el.c index 6114098978..3e6967eecc 100644 --- a/intl/msg_hash_el.c +++ b/intl/msg_hash_el.c @@ -372,1014 +372,6 @@ int msg_hash_get_help_el_enum(enum msg_hash_enums msg, char *s, size_t len) "Αποθηκέυστε όλα τα αρχεία λιστών αναπαραγωγής \n" "σε αυτό το ευρετήριο."); break; - case MENU_ENUM_LABEL_DUMMY_ON_CORE_SHUTDOWN: - snprintf(s, len, - "Μερικοί πυρήνες μπορεί να έχουν \n" - "λειτουργία απενεργοποίησης. \n" - " \n" - "If this option is left disabled, \n" - "selecting the shutdown procedure \n" - "would trigger RetroArch being shut \n" - "down. \n" - " \n" - "Enabling this option will load a \n" - "dummy core instead so that we remain \n" - "inside the menu and RetroArch won't \n" - "shutdown."); - break; - case MENU_ENUM_LABEL_CHECK_FOR_MISSING_FIRMWARE: - snprintf(s, len, - "Some cores might need \n" - "firmware or bios files. \n" - " \n" - "If this option is disabled, \n" - "it will try to load even if such \n" - "firmware is missing. \n"); - break; - case MENU_ENUM_LABEL_PARENT_DIRECTORY: - snprintf(s, len, - "Go back to the parent directory."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_SHADER_PRESET: - snprintf(s, len, - "Shader preset file."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_SHADER: - snprintf(s, len, - "Shader file."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_REMAP: - snprintf(s, len, - "Remap controls file."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_CHEAT: - snprintf(s, len, - "Cheat file."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_OVERLAY: - snprintf(s, len, - "Overlay file."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_RDB: - snprintf(s, len, - "Database file."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_FONT: - snprintf(s, len, - "TrueType font file."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_PLAIN_FILE: - snprintf(s, len, - "Plain file."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_MOVIE_OPEN: - snprintf(s, len, - "Video. \n" - " \n" - "Select it to open this file with the \n" - "video player."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_MUSIC_OPEN: - snprintf(s, len, - "Music. \n" - " \n" - "Select it to open this file with the \n" - "music player."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_IMAGE: - snprintf(s, len, - "Image file."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_IMAGE_OPEN_WITH_VIEWER: - snprintf(s, len, - "Image. \n" - " \n" - "Select it to open this file with the \n" - "image viewer."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_CORE_SELECT_FROM_COLLECTION: - snprintf(s, len, - "Libretro core. \n" - " \n" - "Selecting this will associate this core \n" - "to the game."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_CORE: - snprintf(s, len, - "Libretro core. \n" - " \n" - "Select this file to have RetroArch load this core."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_DIRECTORY: - snprintf(s, len, - "Directory. \n" - " \n" - "Select it to open this directory."); - break; - case MENU_ENUM_LABEL_CACHE_DIRECTORY: - snprintf(s, len, - "Cache Directory. \n" - " \n" - "Content decompressed by RetroArch will be \n" - "temporarily extracted to this directory."); - break; - case MENU_ENUM_LABEL_INPUT_POLL_TYPE_BEHAVIOR: - snprintf(s, len, - "Influence how input polling is done inside \n" - "RetroArch. \n" - " \n" - "Early - Input polling is performed before \n" - "the frame is processed. \n" - "Normal - Input polling is performed when \n" - "polling is requested. \n" - "Late - Input polling is performed on \n" - "first input state request per frame.\n" - " \n" - "Setting it to 'Early' or 'Late' can result \n" - "in less latency, \n" - "depending on your configuration.\n\n" - "Will be ignored when using netplay." - ); - break; - case MENU_ENUM_LABEL_VIDEO_MESSAGE_POS_X: - case MENU_ENUM_LABEL_VIDEO_MESSAGE_POS_Y: - snprintf(s, len, - "Offset for where messages will be placed \n" - "onscreen. Values are in range [0.0, 1.0]."); - break; - case MENU_ENUM_LABEL_CORE_LIST: - snprintf(s, len, - "Load Core. \n" - " \n" - "Browse for a libretro core \n" - "implementation. Where the browser \n" - "starts depends on your Core Directory \n" - "path. If blank, it will start in root. \n" - " \n" - "If Core Directory is a directory, the menu \n" - "will use that as top folder. If Core \n" - "Directory is a full path, it will start \n" - "in the folder where the file is."); - break; - case MENU_ENUM_LABEL_VALUE_MENU_ENUM_CONTROLS_PROLOG: - snprintf(s, len, - "You can use the following controls below \n" - "on either your gamepad or keyboard in order\n" - "to control the menu: \n" - " \n" - ); - break; - case MENU_ENUM_LABEL_WELCOME_TO_RETROARCH: - snprintf(s, len, - "Welcome to RetroArch\n" - ); - break; - case MENU_ENUM_LABEL_VALUE_HELP_AUDIO_VIDEO_TROUBLESHOOTING_DESC: - { - /* Work around C89 limitations */ - char u[501]; - const char *t = - "RetroArch relies on an unique form of\n" - "audio/video synchronization where it needs to be\n" - "calibrated against the refresh rate of your\n" - "display for best performance results.\n" - " \n" - "If you experience any audio crackling or video\n" - "tearing, usually it means that you need to\n" - "calibrate the settings. Some choices below:\n" - " \n"; - snprintf(u, sizeof(u), /* can't inline this due to the printf arguments */ - "a) Go to '%s' -> '%s', and enable\n" - "'Threaded Video'. Refresh rate will not matter\n" - "in this mode, framerate will be higher,\n" - "but video might be less smooth.\n" - "b) Go to '%s' -> '%s', and look at\n" - "'%s'. Let it run for\n" - "2048 frames, then press 'OK'.", - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SETTINGS), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_SETTINGS), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SETTINGS), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_SETTINGS), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_REFRESH_RATE_AUTO)); - strlcpy(s, t, len); - strlcat(s, u, len); - } - break; - case MENU_ENUM_LABEL_VALUE_HELP_SCANNING_CONTENT_DESC: - snprintf(s, len, - "To scan for content, go to '%s' and\n" - "select either '%s' or %s'.\n" - "\n" - "Files will be compared to database entries.\n" - "If there is a match, it will add an entry\n" - "to a playlist.\n" - "\n" - "You can then easily access this content by\n" - "going to '%s' ->\n" - "'%s'\n" - "instead of having to go through the\n" - "file browser every time.\n" - "\n" - "NOTE: Content for some cores might still not be\n" - "scannable.", - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ADD_CONTENT_LIST), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SCAN_DIRECTORY), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SCAN_FILE), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_LIST), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_PLAYLISTS_TAB) - ); - break; - case MENU_ENUM_LABEL_VALUE_EXTRACTING_PLEASE_WAIT: - snprintf(s, len, - "Welcome to RetroArch\n" - "\n" - "Extracting assets, please wait.\n" - "This might take a while...\n" - ); - break; - case MENU_ENUM_LABEL_INPUT_DRIVER: - { - const char *lbl = settings ? settings->arrays.input_driver : NULL; - - if (string_is_equal(lbl, msg_hash_to_str(MENU_ENUM_LABEL_INPUT_DRIVER_UDEV))) - snprintf(s, len, - "udev Input driver. \n" - " \n" - "It uses the recent evdev joypad API \n" - "for joystick support. It supports \n" - "hotplugging and force feedback. \n" - " \n" - "The driver reads evdev events for keyboard \n" - "support. It also supports keyboard callback, \n" - "mice and touchpads. \n" - " \n" - "By default in most distros, /dev/input nodes \n" - "are root-only (mode 600). You can set up a udev \n" - "rule which makes these accessible to non-root." - ); - else if (string_is_equal(lbl, - msg_hash_to_str(MENU_ENUM_LABEL_INPUT_DRIVER_LINUXRAW))) - snprintf(s, len, - "linuxraw Input driver. \n" - " \n" - "This driver requires an active TTY. Keyboard \n" - "events are read directly from the TTY which \n" - "makes it simpler, but not as flexible as udev. \n" "Mice, etc, are not supported at all. \n" - " \n" - "This driver uses the older joystick API \n" - "(/dev/input/js*)."); - else - snprintf(s, len, - "Input driver.\n" - " \n" - "Depending on video driver, it might \n" - "force a different input driver."); - } - break; - case MENU_ENUM_LABEL_LOAD_CONTENT_LIST: - snprintf(s, len, - "Load Content. \n" - "Browse for content. \n" - " \n" - "To load content, you need a \n" - "'Core' to use, and a content file. \n" - " \n" - "To control where the menu starts \n" - "to browse for content, set \n" - "'File Browser Directory'. \n" - "If not set, it will start in root. \n" - " \n" - "The browser will filter out \n" - "extensions for the last core set \n" - "in 'Load Core', and use that core \n" - "when content is loaded." - ); - break; - case MENU_ENUM_LABEL_LOAD_CONTENT_HISTORY: - snprintf(s, len, - "Loading content from history. \n" - " \n" - "As content is loaded, content and libretro \n" - "core combinations are saved to history. \n" - " \n" - "The history is saved to a file in the same \n" - "directory as the RetroArch config file. If \n" - "no config file was loaded in startup, history \n" - "will not be saved or loaded, and will not exist \n" - "in the main menu." - ); - break; - case MENU_ENUM_LABEL_VIDEO_DRIVER: - { - const char *video_driver = settings->arrays.video_driver; - - snprintf(s, len, - "Current Video driver."); - - if (string_is_equal(video_driver, "gl")) - { - snprintf(s, len, - "OpenGL Video driver. \n" - " \n" - "This driver allows libretro GL cores to \n" - "be used in addition to software-rendered \n" - "core implementations.\n" - " \n" - "Performance for software-rendered and \n" - "libretro GL core implementations is \n" - "dependent on your graphics card's \n" - "underlying GL driver)."); - } - else if (string_is_equal(video_driver, "sdl2")) - { - snprintf(s, len, - "SDL 2 Video driver.\n" - " \n" - "This is an SDL 2 software-rendered video \n" - "driver.\n" - " \n" - "Performance for software-rendered libretro \n" - "core implementations is dependent \n" - "on your platform SDL implementation."); - } - else if (string_is_equal(video_driver, "sdl1")) - { - snprintf(s, len, - "SDL Video driver.\n" - " \n" - "This is an SDL 1.2 software-rendered video \n" - "driver.\n" - " \n" - "Performance is considered to be suboptimal. \n" - "Consider using it only as a last resort."); - } - else if (string_is_equal(video_driver, "d3d")) - { - snprintf(s, len, - "Direct3D Video driver. \n" - " \n" - "Performance for software-rendered cores \n" - "is dependent on your graphic card's \n" - "underlying D3D driver)."); - } - else if (string_is_equal(video_driver, "exynos")) - { - snprintf(s, len, - "Exynos-G2D Video Driver. \n" - " \n" - "This is a low-level Exynos video driver. \n" - "Uses the G2D block in Samsung Exynos SoC \n" - "for blit operations. \n" - " \n" - "Performance for software rendered cores \n" - "should be optimal."); - } - else if (string_is_equal(video_driver, "drm")) - { - snprintf(s, len, - "Plain DRM Video Driver. \n" - " \n" - "This is a low-level video driver using. \n" - "libdrm for hardware scaling using \n" - "GPU overlays."); - } - else if (string_is_equal(video_driver, "sunxi")) - { - snprintf(s, len, - "Sunxi-G2D Video Driver. \n" - " \n" - "This is a low-level Sunxi video driver. \n" - "Uses the G2D block in Allwinner SoCs."); - } - } - break; - case MENU_ENUM_LABEL_AUDIO_RESAMPLER_DRIVER: - { - const char *lbl = settings ? settings->arrays.audio_resampler : NULL; - - if (string_is_equal(lbl, msg_hash_to_str( - MENU_ENUM_LABEL_AUDIO_RESAMPLER_DRIVER_SINC))) - strlcpy(s, - "Windowed SINC implementation.", len); - else if (string_is_equal(lbl, msg_hash_to_str( - MENU_ENUM_LABEL_AUDIO_RESAMPLER_DRIVER_CC))) - strlcpy(s, - "Convoluted Cosine implementation.", len); - else if (string_is_empty(s)) - strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_INFORMATION_AVAILABLE), len); - } - break; - - case MENU_ENUM_LABEL_VIDEO_SHADER_PRESET: - snprintf(s, len, - "Load Shader Preset. \n" - " \n" - " Load a shader preset directly. \n" - "The menu shader menu is updated accordingly. \n" - " \n" - "If the CGP uses scaling methods which are not \n" - "simple, (i.e. source scaling, same scaling \n" - "factor for X/Y), the scaling factor displayed \n" - "in the menu might not be correct." - ); - break; - case MENU_ENUM_LABEL_VIDEO_SHADER_SCALE_PASS: - snprintf(s, len, - "Scale for this pass. \n" - " \n" - "The scale factor accumulates, i.e. 2x \n" - "for first pass and 2x for second pass \n" - "will give you a 4x total scale. \n" - " \n" - "If there is a scale factor for last \n" - "pass, the result is stretched to \n" - "screen with the filter specified in \n" - "'Default Filter'. \n" - " \n" - "If 'Don't Care' is set, either 1x \n" - "scale or stretch to fullscreen will \n" - "be used depending if it's not the last \n" - "pass or not." - ); - break; - case MENU_ENUM_LABEL_VIDEO_SHADER_NUM_PASSES: - snprintf(s, len, - "Shader Passes. \n" - " \n" - "RetroArch allows you to mix and match various \n" - "shaders with arbitrary shader passes, with \n" - "custom hardware filters and scale factors. \n" - " \n" - "This option specifies the number of shader \n" - "passes to use. If you set this to 0, and use \n" - "Apply Shader Changes, you use a 'blank' shader. \n" - " \n" - "The Default Filter option will affect the \n" - "stretching filter."); - break; - case MENU_ENUM_LABEL_VIDEO_SHADER_PASS: - snprintf(s, len, - "Path to shader. \n" - " \n" - "All shaders must be of the same \n" - "type (i.e. CG, GLSL or HLSL). \n" - " \n" - "Set Shader Directory to set where \n" - "the browser starts to look for \n" - "shaders." - ); - break; - case MENU_ENUM_LABEL_CONFIGURATION_SETTINGS: - snprintf(s, len, - "Determines how configuration files \n" - "are loaded and prioritized."); - break; - case MENU_ENUM_LABEL_CONFIG_SAVE_ON_EXIT: - snprintf(s, len, - "Saves config to disk on exit.\n" - "Useful for menu as settings can be\n" - "modified. Overwrites the config.\n" - " \n" - "#include's and comments are not \n" - "preserved. \n" - " \n" - "By design, the config file is \n" - "considered immutable as it is \n" - "likely maintained by the user, \n" - "and should not be overwritten \n" - "behind the user's back." -#if defined(RARCH_CONSOLE) || defined(RARCH_MOBILE) - "\nThis is not not the case on \n" - "consoles however, where \n" - "looking at the config file \n" - "manually isn't really an option." -#endif - ); - break; - case MENU_ENUM_LABEL_VIDEO_SHADER_FILTER_PASS: - snprintf(s, len, - "Hardware filter for this pass. \n" - " \n" - "If 'Don't Care' is set, 'Default \n" - "Filter' will be used." - ); - break; - case MENU_ENUM_LABEL_AUTOSAVE_INTERVAL: - snprintf(s, len, - "Autosaves the non-volatile SRAM \n" - "at a regular interval.\n" - " \n" - "This is disabled by default unless set \n" - "otherwise. The interval is measured in \n" - "seconds. \n" - " \n" - "A value of 0 disables autosave."); - break; - case MENU_ENUM_LABEL_INPUT_BIND_DEVICE_TYPE: - snprintf(s, len, - "Input Device Type. \n" - " \n" - "Picks which device type to use. This is \n" - "relevant for the libretro core itself." - ); - break; - case MENU_ENUM_LABEL_LIBRETRO_LOG_LEVEL: - snprintf(s, len, - "Sets log level for libretro cores \n" - "(GET_LOG_INTERFACE). \n" - " \n" - " If a log level issued by a libretro \n" - " core is below libretro_log level, it \n" - " is ignored.\n" - " \n" - " DEBUG logs are always ignored unless \n" - " verbose mode is activated (--verbose).\n" - " \n" - " DEBUG = 0\n" - " INFO = 1\n" - " WARN = 2\n" - " ERROR = 3" - ); - break; - case MENU_ENUM_LABEL_STATE_SLOT_INCREASE: - case MENU_ENUM_LABEL_STATE_SLOT_DECREASE: - snprintf(s, len, - "State slots.\n" - " \n" - " With slot set to 0, save state name is *.state \n" - " (or whatever defined on commandline).\n" - "When slot is != 0, path will be (path)(d), \n" - "where (d) is slot number."); - break; - case MENU_ENUM_LABEL_SHADER_APPLY_CHANGES: - snprintf(s, len, - "Apply Shader Changes. \n" - " \n" - "After changing shader settings, use this to \n" - "apply changes. \n" - " \n" - "Changing shader settings is a somewhat \n" - "expensive operation so it has to be \n" - "done explicitly. \n" - " \n" - "When you apply shaders, the menu shader \n" - "settings are saved to a temporary file (either \n" - "menu.cgp or menu.glslp) and loaded. The file \n" - "persists after RetroArch exits. The file is \n" - "saved to Shader Directory." - ); - break; - case MENU_ENUM_LABEL_SHADER_WATCH_FOR_CHANGES: - snprintf(s, len, - "Watch shader files for new changes. \n" - " \n" - "After saving changes to a shader on disk, \n" - "it will automatically be recompiled \n" - "and applied to the running content." - ); - break; - case MENU_ENUM_LABEL_DISK_NEXT: - snprintf(s, len, - "Cycles through disk images. Use after \n" - "ejecting. \n" - " \n" - " Complete by toggling eject again."); - break; - case MENU_ENUM_LABEL_VIDEO_FILTER: -#ifdef HAVE_FILTERS_BUILTIN - snprintf(s, len, - "CPU-based video filter."); -#else - snprintf(s, len, - "CPU-based video filter.\n" - " \n" - "Path to a dynamic library."); -#endif - break; - case MENU_ENUM_LABEL_AUDIO_DEVICE: - snprintf(s, len, - "Override the default audio device \n" - "the audio driver uses.\n" - "This is driver dependent. E.g.\n" -#ifdef HAVE_ALSA - " \n" - "ALSA wants a PCM device." -#endif -#ifdef HAVE_OSS - " \n" - "OSS wants a path (e.g. /dev/dsp)." -#endif -#ifdef HAVE_JACK - " \n" - "JACK wants portnames (e.g. system:playback1\n" - ",system:playback_2)." -#endif -#ifdef HAVE_RSOUND - " \n" - "RSound wants an IP address to an RSound \n" - "server." -#endif - ); - break; - case MENU_ENUM_LABEL_ENABLE_HOTKEY: - snprintf(s, len, - "Enable other hotkeys.\n" - " \n" - " If this hotkey is bound to either keyboard, \n" - "joybutton or joyaxis, all other hotkeys will \n" - "be disabled unless this hotkey is also held \n" - "at the same time. \n" - " \n" - "This is useful for RETRO_KEYBOARD centric \n" - "implementations which query a large area of \n" - "the keyboard, where it is not desirable that \n" - "hotkeys get in the way."); - break; - case MENU_ENUM_LABEL_VIDEO_REFRESH_RATE_AUTO: - snprintf(s, len, - "Refresh Rate Auto.\n" - " \n" - "The accurate refresh rate of our monitor (Hz).\n" - "This is used to calculate audio input rate with \n" - "the formula: \n" - " \n" - "audio_input_rate = game input rate * display \n" - "refresh rate / game refresh rate\n" - " \n" - "If the implementation does not report any \n" - "values, NTSC defaults will be assumed for \n" - "compatibility.\n" - " \n" - "This value should stay close to 60Hz to avoid \n" - "large pitch changes. If your monitor does \n" - "not run at 60Hz, or something close to it, \n" - "disable VSync, and leave this at its default."); - break; - case MENU_ENUM_LABEL_FASTFORWARD_RATIO: - snprintf(s, len, - "Fastforward ratio.\n" - " \n" - "The maximum rate at which content will\n" - "be run when using fast forward.\n" - " \n" - " (E.g. 5.0 for 60 fps content => 300 fps \n" - "cap).\n" - " \n" - "RetroArch will go to sleep to ensure that \n" - "the maximum rate will not be exceeded.\n" - "Do not rely on this cap to be perfectly \n" - "accurate."); - break; - case MENU_ENUM_LABEL_VRR_RUNLOOP_ENABLE: - snprintf(s, len, - "Sync to Exact Content Framerate.\n" - " \n" - "This option is the equivalent of forcing x1 speed\n" - "while still allowing fast forward.\n" - "No deviation from the core requested refresh rate,\n" - "no sound Dynamic Rate Control)."); - break; - case MENU_ENUM_LABEL_VIDEO_MONITOR_INDEX: - snprintf(s, len, - "Which monitor to prefer.\n" - " \n" - "0 (default) means no particular monitor \n" - "is preferred, 1 and up (1 being first \n" - "monitor), suggests RetroArch to use that \n" - "particular monitor."); - break; - case MENU_ENUM_LABEL_AUDIO_VOLUME: - snprintf(s, len, - "Audio volume, expressed in dB.\n" - " \n" - " 0 dB is normal volume. No gain will be applied.\n" - "Gain can be controlled in runtime with Input\n" - "Volume Up / Input Volume Down."); - break; - case MENU_ENUM_LABEL_AUDIO_RATE_CONTROL_DELTA: - snprintf(s, len, - "Audio rate control.\n" - " \n" - "Setting this to 0 disables rate control.\n" - "Any other value controls audio rate control \n" - "delta.\n" - " \n" - "Defines how much input rate can be adjusted \n" - "dynamically.\n" - " \n" - " Input rate is defined as: \n" - " input rate * (1.0 +/- (rate control delta))"); - break; - case MENU_ENUM_LABEL_AUDIO_MAX_TIMING_SKEW: - snprintf(s, len, - "Maximum audio timing skew.\n" - " \n" - "Defines the maximum change in input rate.\n" - "You may want to increase this to enable\n" - "very large changes in timing, for example\n" - "running PAL cores on NTSC displays, at the\n" - "cost of inaccurate audio pitch.\n" - " \n" - " Input rate is defined as: \n" - " input rate * (1.0 +/- (max timing skew))"); - break; - case MENU_ENUM_LABEL_VIDEO_DISABLE_COMPOSITION: - snprintf(s, len, - "Forcibly disable composition.\n" - "Only valid on Windows Vista/7 for now."); - break; - case MENU_ENUM_LABEL_VIDEO_THREADED: - snprintf(s, len, - "Use threaded video driver.\n" - " \n" - "Using this might improve performance at the \n" - "possible cost of latency and more video \n" - "stuttering."); - break; - case MENU_ENUM_LABEL_VIDEO_FRAME_DELAY: - snprintf(s, len, - "Sets how many milliseconds to delay\n" - "after VSync before running the core.\n" - "\n" - "Can reduce latency at the cost of\n" - "higher risk of stuttering.\n" - " \n" - "Maximum is 15."); - break; - case MENU_ENUM_LABEL_VIDEO_HARD_SYNC_FRAMES: - snprintf(s, len, - "Sets how many frames CPU can \n" - "run ahead of GPU when using 'GPU \n" - "Hard Sync'.\n" - " \n" - "Maximum is 3.\n" - " \n" - " 0: Syncs to GPU immediately.\n" - " 1: Syncs to previous frame.\n" - " 2: Etc ..."); - break; - case MENU_ENUM_LABEL_VIDEO_BLACK_FRAME_INSERTION: - snprintf(s, len, - "Inserts a black frame inbetween \n" - "frames.\n" - " \n" - "Useful for 120 Hz monitors who want to \n" - "play 60 Hz material with eliminated \n" - "ghosting.\n" - " \n" - "Video refresh rate should still be \n" - "configured as if it is a 60 Hz monitor \n" - "(divide refresh rate by 2)."); - break; - case MENU_ENUM_LABEL_SAVEFILE_DIRECTORY: - snprintf(s, len, - "Savefile Directory. \n" - " \n" - "Save all save files (*.srm) to this \n" - "directory. This includes related files like \n" - ".bsv, .rt, .psrm, etc...\n" - " \n" - "This will be overridden by explicit command line\n" - "options."); - break; - case MENU_ENUM_LABEL_ASSETS_DIRECTORY: - snprintf(s, len, - "Assets Directory. \n" - " \n" - " This location is queried by default when \n" - "menu interfaces try to look for loadable \n" - "assets, etc."); - break; - case MENU_ENUM_LABEL_DYNAMIC_WALLPAPERS_DIRECTORY: - snprintf(s, len, - "Dynamic Wallpapers Directory. \n" - " \n" - " The place to store backgrounds that will \n" - "be loaded dynamically by the menu depending \n" - "on context."); - break; - case MENU_ENUM_LABEL_INPUT_PREFER_FRONT_TOUCH: - snprintf(s, len, "Use front instead of back touch."); - break; - case MENU_ENUM_LABEL_SUSPEND_SCREENSAVER_ENABLE: - snprintf(s, len, - "Suspends the screensaver. Is a hint that \n" - "does not necessarily have to be \n" - "honored by the video driver."); - break; - case MENU_ENUM_LABEL_NETPLAY_MODE: - snprintf(s, len, - "Netplay client mode for the current user. \n" - "Will be 'Server' mode if disabled."); - break; - case MENU_ENUM_LABEL_NETPLAY_DELAY_FRAMES: - snprintf(s, len, - "The amount of delay frames to use for netplay. \n" - " \n" - "Increasing this value will increase \n" - "performance, but introduce more latency."); - break; - case MENU_ENUM_LABEL_NETPLAY_START_AS_SPECTATOR: - snprintf(s, len, - "Whether to start netplay in spectator mode. \n" - " \n" - "If set to true, netplay will be in spectator mode \n" - "on start. It's always possible to change mode \n" - "later."); - break; - case MENU_ENUM_LABEL_NETPLAY_CHECK_FRAMES: - snprintf(s, len, - "The frequency in frames with which netplay \n" - "will verify that the host and client are in \n" - "sync. \n" - " \n" - "With most cores, this value will have no \n" - "visible effect and can be ignored. With \n" - "nondeterminstic cores, this value determines \n" - "how often the netplay peers will be brought \n" - "into sync. With buggy cores, setting this \n" - "to any non-zero value will cause severe \n" - "performance issues. Set to zero to perform \n" - "no checks. This value is only used on the \n" - "netplay host. \n"); - break; - case MENU_ENUM_LABEL_NETPLAY_INPUT_LATENCY_FRAMES_MIN: - snprintf(s, len, - "The number of frames of input latency for \n" - "netplay to use to hide network latency. \n" - " \n" - "When in netplay, this option delays local \n" - "input, so that the frame being run is \n" - "closer to the frames being received from \n" - "the network. This reduces jitter and makes \n" - "netplay less CPU-intensive, but at the \n" - "price of noticeable input lag. \n"); - break; - case MENU_ENUM_LABEL_NETPLAY_INPUT_LATENCY_FRAMES_RANGE: - snprintf(s, len, - "The range of frames of input latency that \n" - "may be used by netplay to hide network \n" - "latency. \n" - "\n" - "If set, netplay will adjust the number of \n" - "frames of input latency dynamically to \n" - "balance CPU time, input latency and \n" - "network latency. This reduces jitter and \n" - "makes netplay less CPU-intensive, but at \n" - "the price of unpredictable input lag. \n"); - break; - case MENU_ENUM_LABEL_VIDEO_MAX_SWAPCHAIN_IMAGES: - snprintf(s, len, - "Maximum amount of swapchain images. This \n" - "can tell the video driver to use a specific \n" - "video buffering mode. \n" - " \n" - "Single buffering - 1\n" - "Double buffering - 2\n" - "Triple buffering - 3\n" - " \n" - "Setting the right buffering mode can have \n" - "a big impact on latency."); - break; - case MENU_ENUM_LABEL_VIDEO_SMOOTH: - snprintf(s, len, - "Smoothens picture with bilinear filtering. \n" - "Should be disabled if using shaders."); - break; - case MENU_ENUM_LABEL_VIDEO_CTX_SCALING: - snprintf(s, len, -#ifdef HAVE_ODROIDGO2 - "RGA scaling and bicubic filtering. May break widgets." -#else - "Hardware context scaling (if available)." -#endif - ); - break; - case MENU_ENUM_LABEL_NETPLAY_SETTINGS: - snprintf(s, len, - "Setting related to Netplay."); - break; - case MENU_ENUM_LABEL_NETPLAY_SPECTATOR_MODE_ENABLE: - snprintf(s, len, - "Enable or disable spectator mode for \n" - "the user during netplay."); - break; - case MENU_ENUM_LABEL_UI_COMPANION_START_ON_BOOT: - snprintf(s, len, - "Start User Interface companion driver \n" - "on boot (if available)."); - break; - case MENU_ENUM_LABEL_EXIT_EMULATOR: - snprintf(s, len, - "Key to exit RetroArch cleanly." -#if !defined(RARCH_MOBILE) && !defined(RARCH_CONSOLE) - "\nKilling it in any hard way (SIGKILL, \n" - "etc) will terminate without saving\n" - "RAM, etc. On Unix-likes,\n" - "SIGINT/SIGTERM allows\n" - "a clean deinitialization." -#endif - ); - break; - case MENU_ENUM_LABEL_CHEAT_START_OR_CONT: - snprintf(s, len, - "Scan memory to create new cheats"); - break; - case MENU_ENUM_LABEL_VALUE_WHAT_IS_A_CORE_DESC: - snprintf(s, len, - "RetroArch by itself does nothing. \n" - " \n" - "To make it do things, you need to \n" - "load a program into it. \n" - "\n" - "We call such a program 'Libretro core', \n" - "or 'core' in short. \n" - " \n" - "To load a core, select one from\n" - "'Load Core'.\n" - " \n" -#ifdef HAVE_NETWORKING - "You can obtain cores in several ways: \n" - "* Download them by going to\n" - "'%s' -> '%s'.\n" - "* Manually move them over to\n" - "'%s'.", - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ONLINE_UPDATER), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_CORE_UPDATER_LIST), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_LIBRETRO_DIR_PATH) -#else - "You can obtain cores by\n" - "manually moving them over to\n" - "'%s'.", - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_LIBRETRO_DIR_PATH) -#endif - ); - break; - case MENU_ENUM_LABEL_VALUE_HELP_CHANGE_VIRTUAL_GAMEPAD_DESC: - snprintf(s, len, - "You can change the virtual gamepad overlay\n" - "by going to '%s' -> '%s'." - " \n" - "From there you can change the overlay,\n" - "change the size and opacity of the buttons, etc.\n" - " \n" - "NOTE: By default, virtual gamepad overlays are\n" - "hidden when in the menu.\n" - "If you'd like to change this behavior,\n" - "you can set '%s' to false.", - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SETTINGS), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_OVERLAY_SETTINGS), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_INPUT_OVERLAY_HIDE_IN_MENU) - ); - break; - case MENU_ENUM_LABEL_VIDEO_MESSAGE_BGCOLOR_ENABLE: - snprintf(s, len, - "Enables a background color for the OSD."); - break; - case MENU_ENUM_LABEL_VIDEO_MESSAGE_BGCOLOR_RED: - snprintf(s, len, - "Sets the red value of the OSD background color. Valid values are between 0 and 255."); - break; - case MENU_ENUM_LABEL_VIDEO_MESSAGE_BGCOLOR_GREEN: - snprintf(s, len, - "Sets the green value of the OSD background color. Valid values are between 0 and 255."); - break; - case MENU_ENUM_LABEL_VIDEO_MESSAGE_BGCOLOR_BLUE: - snprintf(s, len, - "Sets the blue value of the OSD background color. Valid values are between 0 and 255."); - break; - case MENU_ENUM_LABEL_VIDEO_MESSAGE_BGCOLOR_OPACITY: - snprintf(s, len, - "Sets the opacity of the OSD background color. Valid values are between 0.0 and 1.0."); - break; - case MENU_ENUM_LABEL_VIDEO_MESSAGE_COLOR_RED: - snprintf(s, len, - "Sets the red value of the OSD text color. Valid values are between 0 and 255."); - break; - case MENU_ENUM_LABEL_VIDEO_MESSAGE_COLOR_GREEN: - snprintf(s, len, - "Sets the green value of the OSD text color. Valid values are between 0 and 255."); - break; - case MENU_ENUM_LABEL_VIDEO_MESSAGE_COLOR_BLUE: - snprintf(s, len, - "Sets the blue value of the OSD text color. Valid values are between 0 and 255."); - break; - case MENU_ENUM_LABEL_MIDI_INPUT: - snprintf(s, len, - "Sets the input device (driver specific).\n" - "When set to \"Off\", MIDI input will be disabled.\n" - "Device name can also be typed in."); - break; - case MENU_ENUM_LABEL_MIDI_OUTPUT: - snprintf(s, len, - "Sets the output device (driver specific).\n" - "When set to \"Off\", MIDI output will be disabled.\n" - "Device name can also be typed in.\n" - " \n" - "When MIDI output is enabled and core and game/app support MIDI output,\n" - "some or all sounds (depends on game/app) will be generated by MIDI device.\n" - "In case of \"null\" MIDI driver this means that those sounds won't be audible."); - break; default: if (string_is_empty(s)) strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_INFORMATION_AVAILABLE), len); diff --git a/intl/msg_hash_tr.c b/intl/msg_hash_tr.c index 42c4127323..bf252d561e 100644 --- a/intl/msg_hash_tr.c +++ b/intl/msg_hash_tr.c @@ -117,10 +117,6 @@ int msg_hash_get_help_tr_enum(enum msg_hash_enums msg, char *s, size_t len) snprintf(s, len, "Netplay barındırma özelliğini açar/kapatır."); break; - case RARCH_NETPLAY_GAME_WATCH: - snprintf(s, len, - "Netplay toggle play/spectate mode."); - break; case RARCH_ENABLE_HOTKEY: snprintf(s, len, "Diğer kısayol tuşlarını etkinleştirin. \n" @@ -1398,45 +1394,10 @@ int msg_hash_get_help_tr_enum(enum msg_hash_enums msg, char *s, size_t len) "Performans karşılığında gecikmeyi \n" "azaltır."); break; - case MENU_ENUM_LABEL_REWIND_GRANULARITY: - snprintf(s, len, - "Rewind granularity.\n" - " \n" - " When rewinding defined number of \n" - "frames, you can rewind several frames \n" - "at a time, increasing the rewinding \n" - "speed."); - break; - case MENU_ENUM_LABEL_REWIND_BUFFER_SIZE: - snprintf(s, len, - "Rewind buffer size (MB).\n" - " \n" - " The amount of memory in MB to reserve \n" - "for rewinding. Increasing this value \n" - "increases the rewind history length.\n"); - break; - case MENU_ENUM_LABEL_REWIND_BUFFER_SIZE_STEP: - snprintf(s, len, - "Rewind buffer size step (MB).\n" - " \n" - " Each time you increase or decrease \n" - "the rewind buffer size value via this \n" - "UI it will change by this amount.\n"); - break; case MENU_ENUM_LABEL_SCREENSHOT: snprintf(s, len, "Ekran görüntüsü al."); break; - case MENU_ENUM_LABEL_VIDEO_FRAME_DELAY: - snprintf(s, len, - "Sets how many milliseconds to delay\n" - "after VSync before running the core.\n" - "\n" - "Can reduce latency at the cost of\n" - "higher risk of stuttering.\n" - " \n" - "Maximum is 15."); - break; case MENU_ENUM_LABEL_VIDEO_HARD_SYNC_FRAMES: snprintf(s, len, "'GPU Hard Sync' kullanırken CPU'nun \n" @@ -1471,26 +1432,6 @@ int msg_hash_get_help_tr_enum(enum msg_hash_enums msg, char *s, size_t len) "Bu, yalnızca 'Çıkışta Konfigürasyonu Kaydet'\n" "etkinse config dosyasında güncellenir.\n"); break; - case MENU_ENUM_LABEL_VIDEO_FULLSCREEN: - snprintf(s, len, "Toggles fullscreen."); - break; - case MENU_ENUM_LABEL_BLOCK_SRAM_OVERWRITE: - snprintf(s, len, - "Block SRAM from being overwritten \n" - "when loading save states.\n" - " \n" - "Might potentially lead to buggy games."); - break; - case MENU_ENUM_LABEL_PAUSE_NONACTIVE: - snprintf(s, len, - "Pause gameplay when window focus \n" - "is lost."); - break; - case MENU_ENUM_LABEL_VIDEO_GPU_SCREENSHOT: - snprintf(s, len, - "Screenshots output of GPU shaded \n" - "material if available."); - break; case MENU_ENUM_LABEL_SCREENSHOT_DIRECTORY: snprintf(s, len, "Ekran görüntüsü Dizini. \n" @@ -1498,13 +1439,6 @@ int msg_hash_get_help_tr_enum(enum msg_hash_enums msg, char *s, size_t len) "Ekran görüntülerinin bulunacağı dizin." ); break; - case MENU_ENUM_LABEL_VIDEO_SWAP_INTERVAL: - snprintf(s, len, - "VSync Swap Interval.\n" - " \n" - "Uses a custom swap interval for VSync. Set this \n" - "to effectively halve monitor refresh rate."); - break; case MENU_ENUM_LABEL_SAVEFILE_DIRECTORY: snprintf(s, len, "Kayıt dosyaları Dizini. \n" @@ -1549,24 +1483,6 @@ int msg_hash_get_help_tr_enum(enum msg_hash_enums msg, char *s, size_t len) "When slowmotion, content will slow\n" "down by factor."); break; - case MENU_ENUM_LABEL_INPUT_BUTTON_AXIS_THRESHOLD: - snprintf(s, len, - "Defines the axis threshold.\n" - " \n" - "How far an axis must be tilted to result\n" - "in a button press.\n" - " Possible values are [0.0, 1.0]."); - break; - case MENU_ENUM_LABEL_INPUT_TURBO_PERIOD: - snprintf(s, len, - "Turbo period.\n" - " \n" - "Describes the period of which turbo-enabled\n" - "buttons toggle.\n" - " \n" - "Numbers are described in frames." - ); - break; case MENU_ENUM_LABEL_INPUT_DUTY_CYCLE: snprintf(s, len, "Duty cycle.\n" @@ -1592,29 +1508,12 @@ int msg_hash_get_help_tr_enum(enum msg_hash_enums msg, char *s, size_t len) case MENU_ENUM_LABEL_MENU_WALLPAPER: snprintf(s, len, "Arka plan olarak ayarlamak için resmin yolu."); break; - case MENU_ENUM_LABEL_NAVIGATION_WRAPAROUND: - snprintf(s, len, - "Wrap-around to beginning and/or end \n" - "if boundary of list is reached \n" - "horizontally and/or vertically."); - break; - case MENU_ENUM_LABEL_PAUSE_LIBRETRO: - snprintf(s, len, - "If disabled, the game will keep \n" - "running in the background when we are in the \n" - "menu."); - break; case MENU_ENUM_LABEL_SUSPEND_SCREENSAVER_ENABLE: snprintf(s, len, "Ekran koruyucuyu önler. Is a hint that \n" "does not necessarily have to be \n" "honored by the video driver."); break; - case MENU_ENUM_LABEL_NETPLAY_MODE: - snprintf(s, len, - "Netplay client mode for the current user. \n" - "Will be 'Server' mode if disabled."); - break; case MENU_ENUM_LABEL_NETPLAY_DELAY_FRAMES: snprintf(s, len, "Netplay için kullanılacak gecikme karelerinin miktarı. \n" @@ -1637,107 +1536,11 @@ int msg_hash_get_help_tr_enum(enum msg_hash_enums msg, char *s, size_t len) "modunda olacaktır. Daha sonra modu değiştirmek her \n" "zaman mümkündür."); break; - case MENU_ENUM_LABEL_NETPLAY_ALLOW_SLAVES: - snprintf(s, len, - "Whether to allow connections in slave mode. \n" - " \n" - "Slave-mode clients require very little processing \n" - "power on either side, but will suffer \n" - "significantly from network latency."); - break; - case MENU_ENUM_LABEL_NETPLAY_REQUIRE_SLAVES: - snprintf(s, len, - "Whether to disallow connections not in slave mode. \n" - " \n" - "Not recommended except for very fast networks \n" - "with very weak machines. \n"); - break; - case MENU_ENUM_LABEL_NETPLAY_CHECK_FRAMES: - snprintf(s, len, - "The frequency in frames with which netplay \n" - "will verify that the host and client are in \n" - "sync. \n" - " \n" - "With most cores, this value will have no \n" - "visible effect and can be ignored. With \n" - "nondeterminstic cores, this value determines \n" - "how often the netplay peers will be brought \n" - "into sync. With buggy cores, setting this \n" - "to any non-zero value will cause severe \n" - "performance issues. Set to zero to perform \n" - "no checks. This value is only used on the \n" - "netplay host. \n"); - break; - case MENU_ENUM_LABEL_NETPLAY_INPUT_LATENCY_FRAMES_MIN: - snprintf(s, len, - "The number of frames of input latency for \n" - "netplay to use to hide network latency. \n" - " \n" - "When in netplay, this option delays local \n" - "input, so that the frame being run is \n" - "closer to the frames being received from \n" - "the network. This reduces jitter and makes \n" - "netplay less CPU-intensive, but at the \n" - "price of noticeable input lag. \n"); - break; - case MENU_ENUM_LABEL_NETPLAY_INPUT_LATENCY_FRAMES_RANGE: - snprintf(s, len, - "The range of frames of input latency that \n" - "may be used by netplay to hide network \n" - "latency. \n" - "\n" - "If set, netplay will adjust the number of \n" - "frames of input latency dynamically to \n" - "balance CPU time, input latency and \n" - "network latency. This reduces jitter and \n" - "makes netplay less CPU-intensive, but at \n" - "the price of unpredictable input lag. \n"); - break; - case MENU_ENUM_LABEL_NETPLAY_NAT_TRAVERSAL: - snprintf(s, len, - "When hosting, attempt to listen for\n" - "connections from the public internet, using\n" - "UPnP or similar technologies to escape LANs. \n"); - break; - case MENU_ENUM_LABEL_NETPLAY_USE_MITM_SERVER: - snprintf(s, len, - "When hosting a netplay session, relay connection through a \n" - "man-in-the-middle server \n" - "to get around firewalls or NAT/UPnP issues. \n"); - break; - case MENU_ENUM_LABEL_NETPLAY_MITM_SERVER: - snprintf(s, len, - "Specifies the man-in-the-middle server \n" - "to use for netplay. A server that is \n" - "located closer to you may have less latency. \n"); - break; - case MENU_ENUM_LABEL_VIDEO_MAX_SWAPCHAIN_IMAGES: - snprintf(s, len, - "Maximum amount of swapchain images. This \n" - "can tell the video driver to use a specific \n" - "video buffering mode. \n" - " \n" - "Single buffering - 1\n" - "Double buffering - 2\n" - "Triple buffering - 3\n" - " \n" - "Setting the right buffering mode can have \n" - "a big impact on latency."); - break; case MENU_ENUM_LABEL_VIDEO_SMOOTH: snprintf(s, len, "Resmi bilinear filtreleme ile pürüzsüzleştirir. \n" "Gölgelendiriciler kullanılıyorsa devre dışı bırakılmalıdır."); break; - case MENU_ENUM_LABEL_VIDEO_CTX_SCALING: - snprintf(s, len, -#ifdef HAVE_ODROIDGO2 - "RGA scaling and bicubic filtering. May break widgets." -#else - "Hardware context scaling (if available)." -#endif - ); - break; case MENU_ENUM_LABEL_TIMEDATE_ENABLE: snprintf(s, len, "Menü içindeki geçerli tarihi ve/veya saati gösterir."); @@ -1892,18 +1695,6 @@ int msg_hash_get_help_tr_enum(enum msg_hash_enums msg, char *s, size_t len) "Konum servislerine izin ver veya verme \n" "çekirdekler tarafından erişilir."); break; - case MENU_ENUM_LABEL_TURBO: - snprintf(s, len, - "Turbo enable.\n" - " \n" - "Holding the turbo while pressing another \n" - "button will let the button enter a turbo \n" - "mode where the button state is modulated \n" - "with a periodic signal. \n" - " \n" - "The modulation stops when the button \n" - "itself (not turbo button) is released."); - break; case MENU_ENUM_LABEL_OSK_ENABLE: snprintf(s, len, "Ekran klavyesini etkinleştir/devre dışı bırak."); @@ -1942,18 +1733,6 @@ int msg_hash_get_help_tr_enum(enum msg_hash_enums msg, char *s, size_t len) snprintf(s, len, "Netplay toggle play/spectate mode."); break; - case MENU_ENUM_LABEL_CHEAT_INDEX_PLUS: - snprintf(s, len, - "Increment cheat index.\n"); - break; - case MENU_ENUM_LABEL_CHEAT_INDEX_MINUS: - snprintf(s, len, - "Decrement cheat index.\n"); - break; - case MENU_ENUM_LABEL_SHADER_PREV: - snprintf(s, len, - "Applies previous shader in directory."); - break; case MENU_ENUM_LABEL_SHADER_NEXT: snprintf(s, len, "Dizindeki bir sonraki gölgelendiriciyi uygular."); @@ -1962,26 +1741,6 @@ int msg_hash_get_help_tr_enum(enum msg_hash_enums msg, char *s, size_t len) snprintf(s, len, "İçeriği sıfırla.\n"); break; - case MENU_ENUM_LABEL_PAUSE_TOGGLE: - snprintf(s, len, - "Toggle between paused and non-paused state."); - break; - case MENU_ENUM_LABEL_CHEAT_TOGGLE: - snprintf(s, len, - "Toggle cheat index.\n"); - break; - case MENU_ENUM_LABEL_CHEAT_IDX: - snprintf(s, len, - "Index position in list.\n"); - break; - case MENU_ENUM_LABEL_CHEAT_ADDRESS_BIT_POSITION: - snprintf(s, len, - "Address bitmask when Memory Search Size < 8-bit.\n"); - break; - case MENU_ENUM_LABEL_CHEAT_REPEAT_COUNT: - snprintf(s, len, - "The number of times the cheat will be applied.\nUse with the other two Iteration options to affect large areas of memory."); - break; case MENU_ENUM_LABEL_CHEAT_REPEAT_ADD_TO_ADDRESS: snprintf(s, len, "Her “Yineleme Sayısı” ndan sonra Hafıza Adresi, bu sayı ile “Hafıza Arama Boyutu” ile artacaktır."); @@ -2006,22 +1765,6 @@ int msg_hash_get_help_tr_enum(enum msg_hash_enums msg, char *s, size_t len) snprintf(s, len, "Sol/Sağ ile değerleri değiştirinn"); break; - case MENU_ENUM_LABEL_CHEAT_SEARCH_LT: - snprintf(s, len, - " "); - break; - case MENU_ENUM_LABEL_CHEAT_SEARCH_GT: - snprintf(s, len, - " "); - break; - case MENU_ENUM_LABEL_CHEAT_SEARCH_EQ: - snprintf(s, len, - " "); - break; - case MENU_ENUM_LABEL_CHEAT_SEARCH_NEQ: - snprintf(s, len, - " "); - break; case MENU_ENUM_LABEL_CHEAT_SEARCH_EQPLUS: snprintf(s, len, "Sol/Sağ ile değerleri değiştirin\n"); @@ -2030,48 +1773,11 @@ int msg_hash_get_help_tr_enum(enum msg_hash_enums msg, char *s, size_t len) snprintf(s, len, "Değeri değiştirmek için Sol/Sağ\n"); break; - case MENU_ENUM_LABEL_CHEAT_ADD_MATCHES: - snprintf(s, len, - " "); - break; - case MENU_ENUM_LABEL_CHEAT_VIEW_MATCHES: - snprintf(s, len, - " "); - break; - case MENU_ENUM_LABEL_CHEAT_CREATE_OPTION: - snprintf(s, len, - " "); - break; - case MENU_ENUM_LABEL_CHEAT_DELETE_OPTION: - snprintf(s, len, - " "); - break; - case MENU_ENUM_LABEL_CHEAT_ADD_NEW_TOP: - snprintf(s, len, - " "); - break; - case MENU_ENUM_LABEL_CHEAT_RELOAD_CHEATS: - snprintf(s, len, - " "); - break; - case MENU_ENUM_LABEL_CHEAT_ADD_NEW_BOTTOM: - snprintf(s, len, - " "); - break; - case MENU_ENUM_LABEL_CHEAT_DELETE_ALL: - snprintf(s, len, - " "); - break; case MENU_ENUM_LABEL_CHEAT_BIG_ENDIAN: snprintf(s, len, "Büyük endia : 258 = 0x0102\n" "Küçük endia : 258 = 0x0201"); break; - case MENU_ENUM_LABEL_HOLD_FAST_FORWARD: - snprintf(s, len, - "Hold for fast-forward. Releasing button \n" - "disables fast-forward."); - break; case MENU_ENUM_LABEL_SLOWMOTION_HOLD: snprintf(s, len, "Slowmotion için basılı tutun"); @@ -2084,23 +1790,6 @@ int msg_hash_get_help_tr_enum(enum msg_hash_enums msg, char *s, size_t len) snprintf(s, len, "Kayıt yapma arasında geçiş yapmak için"); break; - case MENU_ENUM_LABEL_L_X_PLUS: - case MENU_ENUM_LABEL_L_X_MINUS: - case MENU_ENUM_LABEL_L_Y_PLUS: - case MENU_ENUM_LABEL_L_Y_MINUS: - case MENU_ENUM_LABEL_R_X_PLUS: - case MENU_ENUM_LABEL_R_X_MINUS: - case MENU_ENUM_LABEL_R_Y_PLUS: - case MENU_ENUM_LABEL_R_Y_MINUS: - snprintf(s, len, - "Axis for analog stick (DualShock-esque).\n" - " \n" - "Bound as usual, however, if a real analog \n" - "axis is bound, it can be read as a true analog.\n" - " \n" - "Positive X axis is right. \n" - "Positive Y axis is down."); - break; case MENU_ENUM_LABEL_VALUE_WHAT_IS_A_CORE_DESC: snprintf(s, len, "RetroArch kendi başına hiçbir şey yapmaz. \n" @@ -2131,52 +1820,35 @@ int msg_hash_get_help_tr_enum(enum msg_hash_enums msg, char *s, size_t len) #endif ); break; - case MENU_ENUM_LABEL_VALUE_HELP_CHANGE_VIRTUAL_GAMEPAD_DESC: - snprintf(s, len, - "You can change the virtual gamepad overlay\n" - "by going to '%s' -> '%s'." - " \n" - "From there you can change the overlay,\n" - "change the size and opacity of the buttons, etc.\n" - " \n" - "NOTE: By default, virtual gamepad overlays are\n" - "hidden when in the menu.\n" - "If you'd like to change this behavior,\n" - "you can set '%s' to false.", - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SETTINGS), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_OVERLAY_SETTINGS), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_INPUT_OVERLAY_HIDE_IN_MENU) - ); - break; - case MENU_ENUM_LABEL_VIDEO_MESSAGE_BGCOLOR_ENABLE: + case MENU_ENUM_LABEL_VALUE_VIDEO_MESSAGE_BGCOLOR_ENABLE: snprintf(s, len, "OSD için arka plan rengini etkinleştirir."); break; - case MENU_ENUM_LABEL_VIDEO_MESSAGE_BGCOLOR_RED: + case MENU_ENUM_LABEL_VALUE_VIDEO_MESSAGE_BGCOLOR_RED: snprintf(s, len, "OSD arka plan renginin kırmızı değerini ayarlar. Geçerli değerler 0 ile 255 arasındadır."); break; - case MENU_ENUM_LABEL_VIDEO_MESSAGE_BGCOLOR_GREEN: + case MENU_ENUM_LABEL_VALUE_VIDEO_MESSAGE_BGCOLOR_GREEN: snprintf(s, len, "OSD arka plan renginin yeşil değerini ayarlar. Geçerli değerler 0 ile 255 arasındadır."); break; - case MENU_ENUM_LABEL_VIDEO_MESSAGE_BGCOLOR_BLUE: + case MENU_ENUM_LABEL_VALUE_VIDEO_MESSAGE_BGCOLOR_BLUE: snprintf(s, len, "OSD arka plan renginin mavi değerini ayarlar. Geçerli değerler 0 ile 255 arasındadır."); break; - case MENU_ENUM_LABEL_VIDEO_MESSAGE_BGCOLOR_OPACITY: + case MENU_ENUM_LABEL_VALUE_VIDEO_MESSAGE_BGCOLOR_OPACITY: snprintf(s, len, "OSD arka plan renginin opaklığını ayarlar. Geçerli değerler 0,0 ile 1,0 arasındadır."); break; - case MENU_ENUM_LABEL_VIDEO_MESSAGE_COLOR_RED: + case MENU_ENUM_LABEL_VALUE_VIDEO_MESSAGE_COLOR_RED: snprintf(s, len, "OSD metin renginin kırmızı değerini ayarlar. Geçerli değerler 0 ile 255 arasındadır."); break; - case MENU_ENUM_LABEL_VIDEO_MESSAGE_COLOR_GREEN: + case MENU_ENUM_LABEL_VALUE_VIDEO_MESSAGE_COLOR_GREEN: snprintf(s, len, "OSD metin renginin yeşil değerini ayarlar. Geçerli değerler 0 ile 255 arasındadır."); break; - case MENU_ENUM_LABEL_VIDEO_MESSAGE_COLOR_BLUE: + case MENU_ENUM_LABEL_VALUE_VIDEO_MESSAGE_COLOR_BLUE: snprintf(s, len, "OSD metin renginin mavi değerini ayarlar. Geçerli değerler 0 ile 255 arasındadır."); break; diff --git a/intl/msg_hash_vn.c b/intl/msg_hash_vn.c index b5b879ef46..e2acd3b2f2 100644 --- a/intl/msg_hash_vn.c +++ b/intl/msg_hash_vn.c @@ -99,23 +99,6 @@ int msg_hash_get_help_vn_enum(enum msg_hash_enums msg, char *s, size_t len) snprintf(s, len, "Bật/tắt bàn phím trên màn hình."); break; - case RARCH_ENABLE_HOTKEY: - snprintf(s, len, - "Enable other hotkeys. \n" - " \n" - "If this hotkey is bound to either\n" - "a keyboard, joybutton or joyaxis, \n" - "all other hotkeys will be enabled only \n" - "if this one is held at the same time. \n" - " \n" - "This is useful for RETRO_KEYBOARD centric \n" - "implementations which query a large area of \n" - "the keyboard, where it is not desirable that \n" - "hotkeys get in the way. \n" - " \n" - "Alternatively, all hotkeys for keyboard \n" - "could be disabled by the user."); - break; case RARCH_VOLUME_UP: snprintf(s, len, "Tăng âm lượng."); @@ -141,15 +124,6 @@ int msg_hash_get_help_vn_enum(enum msg_hash_enums msg, char *s, size_t len) " \n" "Bấm nút 'Bật/tắt nhả đĩa' để chọn đĩa."); break; - case RARCH_GRAB_MOUSE_TOGGLE: - snprintf(s, len, - "Bật/tắt mouse grab. \n" - " \n" - "When mouse is grabbed, RetroArch hides the \n" - "mouse, and keeps the mouse pointer inside \n" - "the window to allow relative mouse input to \n" - "work better."); - break; case RARCH_MENU_TOGGLE: snprintf(s, len, "Bật/tắt menu."); break; @@ -173,17 +147,6 @@ int msg_hash_get_help_vn_enum(enum msg_hash_enums msg, char *s, size_t len) #endif ""); break; - case RARCH_STATE_SLOT_PLUS: - case RARCH_STATE_SLOT_MINUS: - snprintf(s, len, - "State slots. \n" - " \n" - "With slot set to 0, save state name is \n" - "*.state (or whatever defined on commandline). \n" - " \n" - "When slot is not 0, path will be <path><d>, \n" - "where <d> is slot number."); - break; case RARCH_SAVE_STATE_KEY: snprintf(s, len, "Lưu state."); @@ -226,774 +189,10 @@ int msg_hash_get_help_vn_enum(enum msg_hash_enums msg, char *s, size_t len) case MENU_ENUM_LABEL_CHEEVOS_PASSWORD: snprintf(s, len, "Mật mã của Retro Achievements tài khoản."); break; - case MENU_ENUM_LABEL_USER_LANGUAGE: - snprintf(s, len, "Localizes the menu and all onscreen messages \n" - "according to the language you have selected \n" - "here. \n" - " \n" - "Requires a restart for the changes \n" - "to take effect. \n" - " \n" - "Note: not all languages might be currently \n" - "implemented. \n" - " \n" - "In case a language is not implemented, \n" - "we fallback to English."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_CONFIG: - snprintf(s, len, "Configuration file."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_COMPRESSED_ARCHIVE: - snprintf(s, len, "Compressed archive file."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_RECORD_CONFIG: - snprintf(s, len, "Recording configuration file."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_CURSOR: - snprintf(s, len, "Database cursor file."); - break; - case MENU_ENUM_LABEL_FILE_CONFIG: - snprintf(s, len, "Configuration file."); - break; - case MENU_ENUM_LABEL_SCAN_THIS_DIRECTORY: - snprintf(s, len, - "Select this to scan the current thư mục \n" - "for content."); - break; - case MENU_ENUM_LABEL_USE_THIS_DIRECTORY: - snprintf(s, len, - "Select this to set this as the thư mục."); - break; - case MENU_ENUM_LABEL_DUMMY_ON_CORE_SHUTDOWN: - snprintf(s, len, - "Some libretro cores might have \n" - "a shutdown feature. \n" - " \n" - "If this option is left disabled, \n" - "selecting the shutdown procedure \n" - "would trigger RetroArch being shut \n" - "down. \n" - " \n" - "Enabling this option will load a \n" - "dummy core instead so that we remain \n" - "inside the menu and RetroArch won't \n" - "shutdown."); - break; - case MENU_ENUM_LABEL_CHECK_FOR_MISSING_FIRMWARE: - snprintf(s, len, - "Some cores might need \n" - "firmware or bios files. \n" - " \n" - "If this option is disabled, \n" - "it will try to load even if such \n" - "firmware is missing. \n" - "down. \n"); - break; - case MENU_ENUM_LABEL_PARENT_DIRECTORY: - snprintf(s, len, - "Go back to the parent thư mục."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_SHADER_PRESET: - snprintf(s, len, - "Shader preset file."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_SHADER: - snprintf(s, len, - "Shader file."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_REMAP: - snprintf(s, len, - "Remap controls file."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_CHEAT: - snprintf(s, len, - "Cheat file."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_OVERLAY: - snprintf(s, len, - "Overlay file."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_RDB: - snprintf(s, len, - "Database file."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_FONT: - snprintf(s, len, - "TrueType font file."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_PLAIN_FILE: - snprintf(s, len, - "Plain file."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_MOVIE_OPEN: - snprintf(s, len, - "Video. \n" - " \n" - "Select it to open this file with the \n" - "video player."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_MUSIC_OPEN: - snprintf(s, len, - "Music. \n" - " \n" - "Select it to open this file with the \n" - "music player."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_IMAGE: - snprintf(s, len, - "Image file."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_IMAGE_OPEN_WITH_VIEWER: - snprintf(s, len, - "Image. \n" - " \n" - "Select it to open this file with the \n" - "image viewer."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_CORE_SELECT_FROM_COLLECTION: - snprintf(s, len, - "Libretro core. \n" - " \n" - "Selecting this will associate this core \n" - "to the game."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_CORE: - snprintf(s, len, - "Libretro core. \n" - " \n" - "Select this file to have RetroArch load this core."); - break; - case MENU_ENUM_LABEL_FILE_BROWSER_DIRECTORY: - snprintf(s, len, - "thư mục. \n" - " \n" - "Select it to open this thư mục."); - break; - case MENU_ENUM_LABEL_CACHE_DIRECTORY: - snprintf(s, len, - "Cache thư mục. \n" - " \n" - "Content decompressed by RetroArch will be \n" - "temporarily extracted to this thư mục."); - break; - case MENU_ENUM_LABEL_INPUT_POLL_TYPE_BEHAVIOR: - snprintf(s, len, - "Influence how input polling is done inside \n" - "RetroArch. \n" - " \n" - "Early - Input polling is performed before \n" - "the frame is processed. \n" - "Normal - Input polling is performed when \n" - "polling is requested. \n" - "Late - Input polling is performed on \n" - "first input state request per frame.\n" - " \n" - "Setting it to 'Early' or 'Late' can result \n" - "in less latency, \n" - "depending on your configuration.\n\n" - "When netplay is enabled, the default polling \n" - "behavior (Normal) will be used, \n" - "regardless of the value set here." - ); - break; - case MENU_ENUM_LABEL_VIDEO_MESSAGE_POS_X: - case MENU_ENUM_LABEL_VIDEO_MESSAGE_POS_Y: - snprintf(s, len, - "Offset for where messages will be placed \n" - "onscreen. Values are in range [0.0, 1.0]."); - break; - case MENU_ENUM_LABEL_CORE_LIST: - snprintf(s, len, - "Tải Core. \n" - " \n" - "Browse for a libretro core \n" - "implementation. Where the browser \n" - "starts depends on your Core thư mục \n" - "path. If blank, it will start in root. \n" - " \n" - "If Core thư mục is a thư mục, the menu \n" - "will use that as top folder. If Core \n" - "thư mục is a full path, it will start \n" - "in the folder where the file is."); - break; - case MENU_ENUM_LABEL_VALUE_MENU_ENUM_CONTROLS_PROLOG: - snprintf(s, len, - "You can use the following controls below \n" - "on either your gamepad or keyboard in order\n" - "to control the menu: \n" - " \n" - ); - break; - case MENU_ENUM_LABEL_WELCOME_TO_RETROARCH: - snprintf(s, len, - "Welcome to RetroArch\n" - ); - break; - case MENU_ENUM_LABEL_VALUE_HELP_AUDIO_VIDEO_TROUBLESHOOTING_DESC: - { - /* Work around C89 limitations */ - char u[501]; - const char * t = - "RetroArch relies on an unique form of\n" - "audio/video synchronization where it needs to be\n" - "calibrated against the refresh rate of your\n" - "display for best performance results.\n" - " \n" - "If you experience any audio crackling or video\n" - "tearing, usually it means that you need to\n" - "calibrate the settings. Some choices below:\n" - " \n"; - snprintf(u, sizeof(u), /* can't inline this due to the printf arguments */ - "a) Go to '%s' -> '%s', and enable\n" - "'Threaded Video'. Refresh rate will not matter\n" - "in this mode, framerate will be higher,\n" - "but video might be less smooth.\n" - "b) Go to '%s' -> '%s', and look at\n" - "'%s'. Let it run for\n" - "2048 frames, then press 'OK'.", - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SETTINGS), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_SETTINGS), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SETTINGS), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_SETTINGS), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_REFRESH_RATE_AUTO)); - strlcpy(s, t, len); - strlcat(s, u, len); - } - break; - case MENU_ENUM_LABEL_VALUE_HELP_SCANNING_CONTENT_DESC: - snprintf(s, len, - "To scan for content, go to '%s' and\n" - "select either '%s' or %s'.\n" - "\n" - "Files will be compared to database entries.\n" - "If there is a match, it will add an entry\n" - "to a playlist.\n" - "\n" - "You can then easily access this content by\n" - "going to '%s' ->\n" - "'%s'\n" - "instead of having to go through the\n" - "file browser every time.\n" - "\n" - "NOTE: Content for some cores might still not be\n" - "scannable.", - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ADD_CONTENT_LIST), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SCAN_DIRECTORY), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SCAN_FILE), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_LIST), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_PLAYLISTS_TAB) - ); - break; - case MENU_ENUM_LABEL_VALUE_EXTRACTING_PLEASE_WAIT: - snprintf(s, len, - "Welcome to RetroArch\n" - "\n" - "Extracting assets, please wait.\n" - "This might take a while...\n" - ); - break; - case MENU_ENUM_LABEL_INPUT_DRIVER: - { - const char *lbl = settings ? settings->arrays.input_driver : NULL; - - if (string_is_equal(lbl, msg_hash_to_str(MENU_ENUM_LABEL_INPUT_DRIVER_UDEV))) - snprintf(s, len, - "udev Input driver. \n" - " \n" - "This driver can run without X. \n" - " \n" - "It uses the recent evdev joypad API \n" - "for joystick support. It supports \n" - "hotplugging and force feedback (if \n" - "supported by device). \n" - " \n" - "The driver reads evdev events for keyboard \n" - "support. It also supports keyboard callback, \n" - "mice and touchpads. \n" - " \n" - "By default in most distros, /dev/input nodes \n" - "are root-only (mode 600). You can set up a udev \n" - "rule which makes these accessible to non-root." - ); - else if (string_is_equal(lbl, msg_hash_to_str(MENU_ENUM_LABEL_INPUT_DRIVER_LINUXRAW))) - strlcpy(s, - "linuxraw Input driver. \n" - " \n" - "This driver requires an active TTY. Keyboard \n" - "events are read directly from the TTY which \n" - "makes it simpler, but not as flexible as udev. \n" "Mice, etc, are not supported at all. \n" - " \n" - "This driver uses the older joystick API \n" - "(/dev/input/js*).", len); - else - strlcpy(s, - "Input driver.\n" - " \n" - "Depending on video driver, it might \n" - "force a different input driver.", len); - } - break; - case MENU_ENUM_LABEL_LOAD_CONTENT_LIST: - snprintf(s, len, - "Tải Content. \n" - "Browse for content. \n" - " \n" - "To tải content, you need a \n" - "'Core' to use, and a content file. \n" - " \n" - "To control where the menu starts \n" - "to browse for content, set \n" - "'File Browser thư mục'. \n" - "If not set, it will start in root. \n" - " \n" - "The browser will filter out \n" - "extensions for the last core set \n" - "in 'Tải Core', and use that core \n" - "when content is loaded." - ); - break; - case MENU_ENUM_LABEL_LOAD_CONTENT_HISTORY: - snprintf(s, len, - "Loading content from history. \n" - " \n" - "As content is loaded, content and libretro \n" - "core combinations are saved to history. \n" - " \n" - "The history is saved to a file in the same \n" - "thư mục as the RetroArch config file. If \n" - "no config file was loaded in startup, history \n" - "will not be saved or loaded, and will not exist \n" - "in the main menu." - ); - break; - case MENU_ENUM_LABEL_VIDEO_DRIVER: - { - const char *video_driver = settings->arrays.video_driver; - - snprintf(s, len, - "Current Video driver."); - - if (string_is_equal(video_driver, "gl")) - { - snprintf(s, len, - "OpenGL Video driver. \n" - " \n" - "This driver allows libretro GL cores to \n" - "be used in addition to software-rendered \n" - "core implementations.\n" - " \n" - "Performance for software-rendered and \n" - "libretro GL core implementations is \n" - "dependent on your graphics card's \n" - "underlying GL driver)."); - } - else if (string_is_equal(video_driver, "sdl2")) - { - snprintf(s, len, - "SDL 2 Video driver.\n" - " \n" - "This is an SDL 2 software-rendered video \n" - "driver.\n" - " \n" - "Performance for software-rendered libretro \n" - "core implementations is dependent \n" - "on your platform SDL implementation."); - } - else if (string_is_equal(video_driver, "sdl1")) - { - snprintf(s, len, - "SDL Video driver.\n" - " \n" - "This is an SDL 1.2 software-rendered video \n" - "driver.\n" - " \n" - "Performance is considered to be suboptimal. \n" - "Consider using it only as a last resort."); - } - else if (string_is_equal(video_driver, "d3d")) - { - snprintf(s, len, - "Direct3D Video driver. \n" - " \n" - "Performance for software-rendered cores \n" - "is dependent on your graphic card's \n" - "underlying D3D driver)."); - } - else if (string_is_equal(video_driver, "exynos")) - { - snprintf(s, len, - "Exynos-G2D Video Driver. \n" - " \n" - "This is a low-level Exynos video driver. \n" - "Uses the G2D block in Samsung Exynos SoC \n" - "for blit operations. \n" - " \n" - "Performance for software rendered cores \n" - "should be optimal."); - } - else if (string_is_equal(video_driver, "drm")) - { - snprintf(s, len, - "Plain DRM Video Driver. \n" - " \n" - "This is a low-level video driver using. \n" - "libdrm for hardware scaling using \n" - "GPU overlays."); - } - else if (string_is_equal(video_driver, "sunxi")) - { - snprintf(s, len, - "Sunxi-G2D Video Driver. \n" - " \n" - "This is a low-level Sunxi video driver. \n" - "Uses the G2D block in Allwinner SoCs."); - } - } - break; - case MENU_ENUM_LABEL_AUDIO_RESAMPLER_DRIVER: - { - const char *lbl = settings ? settings->arrays.audio_resampler : NULL; - - if (string_is_equal(lbl, msg_hash_to_str(MENU_ENUM_LABEL_AUDIO_RESAMPLER_DRIVER_SINC))) - strlcpy(s, - "Windowed SINC implementation.", len); - else if (string_is_equal(lbl, msg_hash_to_str(MENU_ENUM_LABEL_AUDIO_RESAMPLER_DRIVER_CC))) - strlcpy(s, - "Convoluted Cosine implementation.", len); - else if (string_is_empty(s)) - strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_INFORMATION_AVAILABLE), len); - } - break; - case MENU_ENUM_LABEL_VIDEO_SHADER_PRESET: - snprintf(s, len, - "Tải Shader Preset. \n" - " \n" - " Tải a " -#ifdef HAVE_CG - "Cg" -#endif -#ifdef HAVE_GLSL -#ifdef HAVE_CG - "/" -#endif - "GLSL" -#endif -#ifdef HAVE_HLSL -#if defined(HAVE_CG) || defined(HAVE_HLSL) - "/" -#endif - "HLSL" -#endif - " preset directly. \n" - "The menu shader menu is updated accordingly. \n" - " \n" - "If the CGP uses scaling methods which are not \n" - "simple, (i.e. source scaling, same scaling \n" - "factor for X/Y), the scaling factor displayed \n" - "in the menu might not be correct." - ); - break; - case MENU_ENUM_LABEL_VIDEO_SHADER_SCALE_PASS: - snprintf(s, len, - "Scale for this pass. \n" - " \n" - "The scale factor accumulates, i.e. 2x \n" - "for first pass and 2x for second pass \n" - "will give you a 4x total scale. \n" - " \n" - "If there is a scale factor for last \n" - "pass, the result is stretched to \n" - "screen with the filter specified in \n" - "'Default Filter'. \n" - " \n" - "If 'Don't Care' is set, either 1x \n" - "scale or stretch to fullscreen will \n" - "be used depending if it's not the last \n" - "pass or not." - ); - break; - case MENU_ENUM_LABEL_VIDEO_SHADER_NUM_PASSES: - snprintf(s, len, - "Shader Passes. \n" - " \n" - "RetroArch allows you to mix and match various \n" - "shaders with arbitrary shader passes, with \n" - "custom hardware filters and scale factors. \n" - " \n" - "This option specifies the number of shader \n" - "passes to use. If you set this to 0, and use \n" - "Apply Shader Changes, you use a 'blank' shader. \n" - " \n" - "The Default Filter option will affect the \n" - "stretching filter."); - break; - case MENU_ENUM_LABEL_VIDEO_SHADER_PASS: - snprintf(s, len, - "Path to shader. \n" - " \n" - "All shaders must be of the same \n" - "type (i.e. CG, GLSL or HLSL). \n" - " \n" - "Set Shader thư mục to set where \n" - "the browser starts to look for \n" - "shaders." - ); - break; - case MENU_ENUM_LABEL_CONFIGURATION_SETTINGS: - snprintf(s, len, - "Determines how configuration files \n" - "are loaded and prioritized."); - break; - case MENU_ENUM_LABEL_CONFIG_SAVE_ON_EXIT: - snprintf(s, len, - "Saves config to disk on exit.\n" - "Useful for menu as settings can be\n" - "modified. Overwrites the config.\n" - " \n" - "#include's and comments are not \n" - "preserved. \n" - " \n" - "By design, the config file is \n" - "considered immutable as it is \n" - "likely maintained by the user, \n" - "and should not be overwritten \n" - "behind the user's back." -#if defined(RARCH_CONSOLE) || defined(RARCH_MOBILE) - "\nThis is not not the case on \n" - "consoles however, where \n" - "looking at the config file \n" - "manually isn't really an option." -#endif - ); - break; - case MENU_ENUM_LABEL_VIDEO_SHADER_FILTER_PASS: - snprintf(s, len, - "Hardware filter for this pass. \n" - " \n" - "If 'Don't Care' is set, 'Default \n" - "Filter' will be used." - ); - break; - case MENU_ENUM_LABEL_AUTOSAVE_INTERVAL: - snprintf(s, len, - "Autosaves the non-volatile SRAM \n" - "at a regular interval.\n" - " \n" - "This is disabled by default unless set \n" - "otherwise. The interval is measured in \n" - "seconds. \n" - " \n" - "A value of 0 disables autosave."); - break; - case MENU_ENUM_LABEL_INPUT_BIND_DEVICE_TYPE: - snprintf(s, len, - "Input Device Type. \n" - " \n" - "Picks which device type to use. This is \n" - "relevant for the libretro core itself." - ); - break; - case MENU_ENUM_LABEL_LIBRETRO_LOG_LEVEL: - snprintf(s, len, - "Sets log level for libretro cores \n" - "(GET_LOG_INTERFACE). \n" - " \n" - " If a log level issued by a libretro \n" - " core is below libretro_log level, it \n" - " is ignored.\n" - " \n" - " DEBUG logs are always ignored unless \n" - " verbose mode is activated (--verbose).\n" - " \n" - " DEBUG = 0\n" - " INFO = 1\n" - " WARN = 2\n" - " ERROR = 3" - ); - break; - case MENU_ENUM_LABEL_STATE_SLOT_INCREASE: - case MENU_ENUM_LABEL_STATE_SLOT_DECREASE: - snprintf(s, len, - "State slots.\n" - " \n" - " With slot set to 0, save state name is *.state \n" - " (or whatever defined on commandline).\n" - "When slot is != 0, path will be (path)(d), \n" - "where (d) is slot number."); - break; - case MENU_ENUM_LABEL_SHADER_APPLY_CHANGES: - snprintf(s, len, - "Apply Shader Changes. \n" - " \n" - "After changing shader settings, use this to \n" - "apply changes. \n" - " \n" - "Changing shader settings is a somewhat \n" - "expensive operation so it has to be \n" - "done explicitly. \n" - " \n" - "When you apply shaders, the menu shader \n" - "settings are saved to a temporary file (either \n" - "menu.cgp or menu.glslp) and loaded. The file \n" - "persists after RetroArch exits. The file is \n" - "saved to Shader thư mục." - ); - break; case MENU_ENUM_LABEL_MENU_TOGGLE: snprintf(s, len, "Bật/tắt menu."); break; - case MENU_ENUM_LABEL_GRAB_MOUSE_TOGGLE: - snprintf(s, len, - "Bật/tắt mouse grab.\n" - " \n" - "When mouse is grabbed, RetroArch hides the \n" - "mouse, and keeps the mouse pointer inside \n" - "the window to allow relative mouse input to \n" - "work better."); - break; - case MENU_ENUM_LABEL_DISK_NEXT: - snprintf(s, len, - "Cycles through disk images. Use after \n" - "ejecting. \n" - " \n" - " Complete by toggling eject again."); - break; - case MENU_ENUM_LABEL_VIDEO_FILTER: -#ifdef HAVE_FILTERS_BUILTIN - snprintf(s, len, - "CPU-based video filter."); -#else - snprintf(s, len, - "CPU-based video filter.\n" - " \n" - "Path to a dynamic library."); -#endif - break; - case MENU_ENUM_LABEL_AUDIO_DEVICE: - snprintf(s, len, - "Override the default audio device \n" - "the audio driver uses.\n" - "This is driver dependent. E.g.\n" -#ifdef HAVE_ALSA - " \n" - "ALSA wants a PCM device." -#endif -#ifdef HAVE_OSS - " \n" - "OSS wants a path (e.g. /dev/dsp)." -#endif -#ifdef HAVE_JACK - " \n" - "JACK wants portnames (e.g. system:playback1\n" - ",system:playback_2)." -#endif -#ifdef HAVE_RSOUND - " \n" - "RSound wants an IP address to an RSound \n" - "server." -#endif - ); - break; - case MENU_ENUM_LABEL_ENABLE_HOTKEY: - snprintf(s, len, - "Enable other hotkeys.\n" - " \n" - " If this hotkey is bound to either keyboard, \n" - "joybutton or joyaxis, all other hotkeys will \n" - "be disabled unless this hotkey is also held \n" - "at the same time. \n" - " \n" - "This is useful for RETRO_KEYBOARD centric \n" - "implementations which query a large area of \n" - "the keyboard, where it is not desirable that \n" - "hotkeys get in the way."); - break; - case MENU_ENUM_LABEL_VIDEO_REFRESH_RATE_AUTO: - snprintf(s, len, - "Refresh Rate Auto.\n" - " \n" - "The accurate refresh rate of our monitor (Hz).\n" - "This is used to calculate audio input rate with \n" - "the formula: \n" - " \n" - "audio_input_rate = game input rate * display \n" - "refresh rate / game refresh rate\n" - " \n" - "If the implementation does not report any \n" - "values, NTSC defaults will be assumed for \n" - "compatibility.\n" - " \n" - "This value should stay close to 60Hz to avoid \n" - "large pitch changes. If your monitor does \n" - "not run at 60Hz, or something close to it, \n" - "disable VSync, and leave this at its default."); - break; - case MENU_ENUM_LABEL_FASTFORWARD_RATIO: - snprintf(s, len, - "Fastforward ratio." - " \n" - "The maximum rate at which content will\n" - "be run when using fast forward.\n" - " \n" - " (E.g. 5.0 for 60 fps content => 300 fps \n" - "cap).\n" - " \n" - "RetroArch will go to sleep to ensure that \n" - "the maximum rate will not be exceeded.\n" - "Do not rely on this cap to be perfectly \n" - "accurate."); - break; - case MENU_ENUM_LABEL_VIDEO_MONITOR_INDEX: - snprintf(s, len, - "Which monitor to prefer.\n" - " \n" - "0 (default) means no particular monitor \n" - "is preferred, 1 and up (1 being first \n" - "monitor), suggests RetroArch to use that \n" - "particular monitor."); - break; - case MENU_ENUM_LABEL_AUDIO_VOLUME: - snprintf(s, len, - "Audio volume, expressed in dB.\n" - " \n" - " 0 dB is normal volume. No gain will be applied.\n" - "Gain can be controlled in runtime with Input\n" - "Volume Up / Input Volume Down."); - break; - case MENU_ENUM_LABEL_AUDIO_RATE_CONTROL_DELTA: - snprintf(s, len, - "Audio rate control.\n" - " \n" - "Setting this to 0 disables rate control.\n" - "Any other value controls audio rate control \n" - "delta.\n" - " \n" - "Defines how much input rate can be adjusted \n" - "dynamically.\n" - " \n" - " Input rate is defined as: \n" - " input rate * (1.0 +/- (rate control delta))"); - break; - case MENU_ENUM_LABEL_AUDIO_MAX_TIMING_SKEW: - snprintf(s, len, - "Maximum audio timing skew.\n" - " \n" - "Defines the maximum change in input rate.\n" - "You may want to increase this to enable\n" - "very large changes in timing, for example\n" - "running PAL cores on NTSC displays, at the\n" - "cost of inaccurate audio pitch.\n" - " \n" - " Input rate is defined as: \n" - " input rate * (1.0 +/- (max timing skew))"); - break; - case MENU_ENUM_LABEL_OVERLAY_NEXT: - snprintf(s, len, - "Bật/tắt to next overlay.\n" - " \n" - "Wraps around."); - break; case MENU_ENUM_LABEL_VOLUME_UP: snprintf(s, len, "Tăng âm lượng."); @@ -1002,211 +201,13 @@ int msg_hash_get_help_vn_enum(enum msg_hash_enums msg, char *s, size_t len) snprintf(s, len, "Giảm âm lượng."); break; - case MENU_ENUM_LABEL_VIDEO_DISABLE_COMPOSITION: - snprintf(s, len, - "Forcibly disable composition.\n" - "Only valid on Windows Vista/7 for now."); - break; - case MENU_ENUM_LABEL_SYSTEM_DIRECTORY: - snprintf(s, len, - "System thư mục. \n" - " \n" - "Sets the 'system' thư mục.\n" - "Cores can query for this\n" - "thư mục to tải BIOSes, \n" - "system-specific configs, etc."); - break; - case MENU_ENUM_LABEL_SAVESTATE_AUTO_SAVE: - case MENU_ENUM_LABEL_SAVESTATE_AUTO_LOAD: - snprintf(s, len, - "Automatically saves a savestate at the \n" - "end of RetroArch's lifetime.\n" - " \n" - "RetroArch will automatically tải any savestate\n" - "with this path on startup if 'Auto Tải State\n" - "is enabled."); - break; - case MENU_ENUM_LABEL_VIDEO_THREADED: - snprintf(s, len, - "Use threaded video driver.\n" - " \n" - "Using this might improve performance at the \n" - "possible cost of latency and more video \n" - "stuttering."); - break; case MENU_ENUM_LABEL_SCREENSHOT: snprintf(s, len, "Chụp ảnh màn hình."); break; - case MENU_ENUM_LABEL_VIDEO_FRAME_DELAY: - snprintf(s, len, - "Sets how many milliseconds to delay\n" - "after VSync before running the core.\n" - "\n" - "Can reduce latency at the cost of\n" - "higher risk of stuttering.\n" - " \n" - "Maximum is 15."); - break; - case MENU_ENUM_LABEL_VIDEO_HARD_SYNC_FRAMES: - snprintf(s, len, - "Sets how many frames CPU can \n" - "run ahead of GPU when using 'GPU \n" - "Hard Sync'.\n" - " \n" - "Maximum is 3.\n" - " \n" - " 0: Syncs to GPU immediately.\n" - " 1: Syncs to previous frame.\n" - " 2: Etc ..."); - break; - case MENU_ENUM_LABEL_VIDEO_BLACK_FRAME_INSERTION: - snprintf(s, len, - "Inserts a black frame inbetween \n" - "frames.\n" - " \n" - "Useful for 120 Hz monitors who want to \n" - "play 60 Hz material with eliminated \n" - "ghosting.\n" - " \n" - "Video refresh rate should still be \n" - "configured as if it is a 60 Hz monitor \n" - "(divide refresh rate by 2)."); - break; case MENU_ENUM_LABEL_VIDEO_FULLSCREEN: snprintf(s, len, "Bật/tắt chế độ toàn màn hình."); break; - case MENU_ENUM_LABEL_SAVEFILE_DIRECTORY: - snprintf(s, len, - "Savefile thư mục. \n" - " \n" - "Save all save files (*.srm) to this \n" - "thư mục. This includes related files like \n" - ".bsv, .rt, .psrm, etc...\n" - " \n" - "This will be overridden by explicit command line\n" - "options."); - break; - case MENU_ENUM_LABEL_SAVESTATE_DIRECTORY: - snprintf(s, len, - "Savestate thư mục. \n" - " \n" - "Save all save states (*.state) to this \n" - "thư mục.\n" - " \n" - "This will be overridden by explicit command line\n" - "options."); - break; - case MENU_ENUM_LABEL_ASSETS_DIRECTORY: - snprintf(s, len, - "Assets thư mục. \n" - " \n" - " This location is queried by default when \n" - "menu interfaces try to look for loadable \n" - "assets, etc."); - break; - case MENU_ENUM_LABEL_DYNAMIC_WALLPAPERS_DIRECTORY: - snprintf(s, len, - "Dynamic Wallpapers thư mục. \n" - " \n" - " The place to store wallpapers that will \n" - "be loaded dynamically by the menu depending \n" - "on context."); - break; - case MENU_ENUM_LABEL_INPUT_PREFER_FRONT_TOUCH: - snprintf(s, len, "Use front instead of back touch."); - break; - case MENU_ENUM_LABEL_SUSPEND_SCREENSAVER_ENABLE: - snprintf(s, len, - "Suspends the screensaver. Is a hint that \n" - "does not necessarily have to be \n" - "honored by the video driver."); - break; - case MENU_ENUM_LABEL_NETPLAY_MODE: - snprintf(s, len, - "Netplay client mode for the current user. \n" - "Will be 'Server' mode if disabled."); - break; - case MENU_ENUM_LABEL_NETPLAY_DELAY_FRAMES: - snprintf(s, len, - "The amount of delay frames to use for netplay. \n" - " \n" - "Increasing this value will increase \n" - "performance, but introduce more latency."); - break; - case MENU_ENUM_LABEL_NETPLAY_CHECK_FRAMES: - snprintf(s, len, - "The frequency in frames with which netplay \n" - "will verify that the host and client are in \n" - "sync. \n" - " \n" - "With most cores, this value will have no \n" - "visible effect and can be ignored. With \n" - "nondeterminstic cores, this value determines \n" - "how often the netplay peers will be brought \n" - "into sync. With buggy cores, setting this \n" - "to any non-zero value will cause severe \n" - "performance issues. Set to zero to perform \n" - "no checks. This value is only used on the \n" - "netplay host. \n"); - break; - case MENU_ENUM_LABEL_VIDEO_MAX_SWAPCHAIN_IMAGES: - snprintf(s, len, - "Maximum amount of swapchain images. This \n" - "can tell the video driver to use a specific \n" - "video buffering mode. \n" - " \n" - "Single buffering - 1\n" - "Double buffering - 2\n" - "Triple buffering - 3\n" - " \n" - "Setting the right buffering mode can have \n" - "a big impact on latency."); - break; - case MENU_ENUM_LABEL_VIDEO_SMOOTH: - snprintf(s, len, - "Smoothens picture with bilinear filtering. \n" - "Should be disabled if using shaders."); - break; - case MENU_ENUM_LABEL_VIDEO_CTX_SCALING: - snprintf(s, len, -#ifdef HAVE_ODROIDGO2 - "RGA scaling and bicubic filtering. May break widgets." -#else - "Hardware context scaling (if available)." -#endif - ); - break; - case MENU_ENUM_LABEL_NETPLAY_SETTINGS: - snprintf(s, len, - "Setting related to Netplay."); - break; - case MENU_ENUM_LABEL_NETPLAY_SPECTATOR_MODE_ENABLE: - snprintf(s, len, - "Enable or disable spectator mode for \n" - "the user during netplay."); - break; - case MENU_ENUM_LABEL_UI_COMPANION_START_ON_BOOT: - snprintf(s, len, - "Start User Interface companion driver \n" - "on boot (if available)."); - break; - case MENU_ENUM_LABEL_EXIT_EMULATOR: - snprintf(s, len, - "Key to exit RetroArch cleanly." -#if !defined(RARCH_MOBILE) && !defined(RARCH_CONSOLE) - "\nKilling it in any hard way (SIGKILL, \n" - "etc) will terminate without saving\n" - "RAM, etc. On Unix-likes,\n" - "SIGINT/SIGTERM allows\n" - "a clean deinitialization." -#endif - ); - break; - case MENU_ENUM_LABEL_LOAD_STATE: - snprintf(s, len, - "Tải state."); - break; case MENU_ENUM_LABEL_SHADER_PREV: snprintf(s, len, "Áp dụng previous shader in thư mục."); @@ -1215,53 +216,6 @@ int msg_hash_get_help_vn_enum(enum msg_hash_enums msg, char *s, size_t len) snprintf(s, len, "Áp dụng next shader in thư mục."); break; - case MENU_ENUM_LABEL_VALUE_WHAT_IS_A_CORE_DESC: - snprintf(s, len, - "RetroArch by itself does nothing. \n" - " \n" - "To make it do things, you need to \n" - "tải a program into it. \n" - "\n" - "We call such a program 'Libretro core', \n" - "or 'core' in short. \n" - " \n" - "To tải a core, select one from\n" - "'Tải Core'.\n" - " \n" -#ifdef HAVE_NETWORKING - "You can obtain cores in several ways: \n" - "* Download them by going to\n" - "'%s' -> '%s'.\n" - "* Manually move them over to\n" - "'%s'.", - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ONLINE_UPDATER), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_CORE_UPDATER_LIST), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_LIBRETRO_DIR_PATH) -#else - "You can obtain cores by\n" - "manually moving them over to\n" - "'%s'.", - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_LIBRETRO_DIR_PATH) -#endif - ); - break; - case MENU_ENUM_LABEL_VALUE_HELP_CHANGE_VIRTUAL_GAMEPAD_DESC: - snprintf(s, len, - "You can change the virtual gamepad overlay\n" - "by going to '%s' -> '%s'." - " \n" - "From there you can change the overlay,\n" - "change the size and opacity of the buttons, etc.\n" - " \n" - "NOTE: By default, virtual gamepad overlays are\n" - "hidden when in the menu.\n" - "If you'd like to change this behavior,\n" - "you can set '%s' to false.", - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SETTINGS), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_OVERLAY_SETTINGS), - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_INPUT_OVERLAY_HIDE_IN_MENU) - ); - break; default: if (string_is_empty(s)) strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_INFORMATION_AVAILABLE), len);