1 /* RetroArch - A frontend for libretro.
2 * Copyright (C) 2011-2017 - Daniel De Matteis
3 * Copyright (C) 2016-2019 - Brad Parker
4 *
5 * RetroArch is free software: you can redistribute it and/or modify it under the terms
6 * of the GNU General Public License as published by the Free Software Found-
7 * ation, either version 3 of the License, or (at your option) any later version.
8 *
9 * RetroArch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
10 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
11 * PURPOSE. See the GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License along with RetroArch.
14 * If not, see <http://www.gnu.org/licenses/>.
15 */
16
17 #include <stdio.h>
18 #include <stdint.h>
19 #include <stddef.h>
20
21 #include <compat/strl.h>
22 #include <string/stdstring.h>
23
24 #include "../msg_hash.h"
25 #include "../verbosity.h"
26
27 #ifdef RARCH_INTERNAL
28 #include "../configuration.h"
29
30 #if defined(_MSC_VER) && !defined(_XBOX)
31 #if (_MSC_VER >= 1700 && _MSC_VER < 1900)
32 /* https://support.microsoft.com/en-us/kb/980263 */
33 #pragma execution_character_set("utf-8")
34 #endif
35 #pragma warning(disable:4566)
36 #endif
37
msg_hash_get_help_ko_enum(enum msg_hash_enums msg,char * s,size_t len)38 int msg_hash_get_help_ko_enum(enum msg_hash_enums msg, char *s, size_t len)
39 {
40 settings_t *settings = config_get_ptr();
41
42 if (msg <= MENU_ENUM_LABEL_INPUT_HOTKEY_BIND_END &&
43 msg >= MENU_ENUM_LABEL_INPUT_HOTKEY_BIND_BEGIN)
44 {
45 unsigned idx = msg - MENU_ENUM_LABEL_INPUT_HOTKEY_BIND_BEGIN;
46
47 switch (idx)
48 {
49 case RARCH_FAST_FORWARD_KEY:
50 snprintf(s, len,
51 "빨리감기와 보통속도 사이를\n"
52 "전환합니다."
53 );
54 break;
55 case RARCH_FAST_FORWARD_HOLD_KEY:
56 snprintf(s, len,
57 "빨리감기를 실행합니다. \n"
58 " \n"
59 "버튼을 놓으면 빨리감기를 중지합니다."
60 );
61 break;
62 case RARCH_SLOWMOTION_KEY:
63 snprintf(s, len,
64 "슬로우모션을 전환합니다.");
65 break;
66 case RARCH_SLOWMOTION_HOLD_KEY:
67 snprintf(s, len,
68 "슬로우모션을 실행합니다.");
69 break;
70 case RARCH_PAUSE_TOGGLE:
71 snprintf(s, len,
72 "일시정지/해제 상태를 전환합니다.");
73 break;
74 case RARCH_FRAMEADVANCE:
75 snprintf(s, len,
76 "컨텐츠 일시정지시 프레임을 진행합니다.");
77 break;
78 case RARCH_SHADER_NEXT:
79 snprintf(s, len,
80 "디렉토리 안의 다음 쉐이더를 적용합니다.");
81 break;
82 case RARCH_SHADER_PREV:
83 snprintf(s, len,
84 "디렉토리 안의 이전 쉐이더를 적용합니다.");
85 break;
86 case RARCH_CHEAT_INDEX_PLUS:
87 case RARCH_CHEAT_INDEX_MINUS:
88 case RARCH_CHEAT_TOGGLE:
89 snprintf(s, len,
90 "치트");
91 break;
92 case RARCH_RESET:
93 snprintf(s, len,
94 "컨텐츠를 초기화합니다.");
95 break;
96 case RARCH_SCREENSHOT:
97 snprintf(s, len,
98 "스크린샷을 촬영합니다.");
99 break;
100 case RARCH_MUTE:
101 snprintf(s, len,
102 "음소거/음소거 해제.");
103 break;
104 case RARCH_OSK:
105 snprintf(s, len,
106 "온스크린 키보드를 전환합니다.");
107 break;
108 case RARCH_FPS_TOGGLE:
109 snprintf(s, len,
110 "FPS 표시를 전환합니다.");
111 break;
112 case RARCH_SEND_DEBUG_INFO:
113 snprintf(s, len,
114 "기기 및 RetroArch 설정의 분적 정보를 분석을 위해 서버에 보냅니다.");
115 break;
116 case RARCH_NETPLAY_HOST_TOGGLE:
117 snprintf(s, len,
118 "넷플레 호스트 켜기/끄기.");
119 break;
120 case RARCH_NETPLAY_GAME_WATCH:
121 snprintf(s, len,
122 "넷플레이 플레이/관전 모드를 전환합니다.");
123 break;
124 case RARCH_ENABLE_HOTKEY:
125 snprintf(s, len,
126 "추가 핫키를 사용합니다. \n"
127 " \n"
128 "이 핫키가 설정되면 키보드, 조이스틱 버튼,\n"
129 "조이스틱 축등 모든 핫키가 이 키와 \n"
130 "함께 눌렸을 때에만 사용가능하게 됩니다. \n"
131 " \n"
132 " \n"
133 "또는 키보드상의 모든 핫키가 \n"
134 "사용자에 의해 차단될수 있습니다.");
135 break;
136 case RARCH_VOLUME_UP:
137 snprintf(s, len,
138 "오디오 볼륨을 증가합니다.");
139 break;
140 case RARCH_VOLUME_DOWN:
141 snprintf(s, len,
142 "오디오 볼륨을 감소합니다.");
143 break;
144 case RARCH_OVERLAY_NEXT:
145 snprintf(s, len,
146 "다음 오버레이로 전환합니다. 화면을 \n"
147 "덮어 씌웁니다.");
148 break;
149 case RARCH_DISK_EJECT_TOGGLE:
150 snprintf(s, len,
151 "디스크 꺼내기를 전환합니다. \n"
152 " \n"
153 "다중 디스크 컨텐츠에 사용됩니다. ");
154 break;
155 case RARCH_DISK_NEXT:
156 case RARCH_DISK_PREV:
157 snprintf(s, len,
158 "디스크 이미지간 탐색합니다. \n"
159 "디스크 이미지를 꺼낸 후에 사용하세요. \n"
160 " \n"
161 "꺼내기 전환을 다시 눌러 완료합니다.");
162 break;
163 case RARCH_GRAB_MOUSE_TOGGLE:
164 snprintf(s, len,
165 "마우스 고정을 전환합니다. \n"
166 " \n"
167 "마우스 고정이 활성화 되면, RetroArch가 마우스를 \n"
168 "숨기고 창 안에 고정시켜 마우스 입력을 원활하게 \n"
169 "끔 합니다.");
170 break;
171 case RARCH_GAME_FOCUS_TOGGLE:
172 snprintf(s, len,
173 "Toggles game focus.\n"
174 " \n"
175 "When a game has focus, RetroArch will both disable \n"
176 "hotkeys and keep/warp the mouse pointer inside the window.");
177 break;
178 case RARCH_MENU_TOGGLE:
179 snprintf(s, len, "메뉴를 전환합니다.");
180 break;
181 case RARCH_LOAD_STATE_KEY:
182 snprintf(s, len,
183 "상태 불러오기");
184 break;
185 case RARCH_FULLSCREEN_TOGGLE_KEY:
186 snprintf(s, len,
187 "전체화면을 전환합니다.");
188 break;
189 case RARCH_QUIT_KEY:
190 snprintf(s, len,
191 "Key to exit RetroArch cleanly. \n"
192 " \n"
193 "Killing it in any hard way (SIGKILL, etc.) will \n"
194 "terminate RetroArch without saving RAM, etc."
195 #ifdef __unix__
196 "\nOn Unix-likes, SIGINT/SIGTERM allows a clean \n"
197 "deinitialization."
198 #endif
199 "");
200 break;
201 case RARCH_STATE_SLOT_PLUS:
202 case RARCH_STATE_SLOT_MINUS:
203 snprintf(s, len,
204 "State slots. \n"
205 " \n"
206 "With slot set to 0, save state name is \n"
207 "*.state (or whatever defined on commandline). \n"
208 " \n"
209 "When slot is not 0, path will be <path><d>, \n"
210 "where <d> is slot number.");
211 break;
212 case RARCH_SAVE_STATE_KEY:
213 snprintf(s, len,
214 "Saves state.");
215 break;
216 case RARCH_REWIND:
217 snprintf(s, len,
218 "Hold button down to rewind. \n"
219 " \n"
220 "Rewinding must be enabled.");
221 break;
222 case RARCH_BSV_RECORD_TOGGLE:
223 snprintf(s, len,
224 "Toggle between recording and not.");
225 break;
226 default:
227 if (string_is_empty(s))
228 strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_INFORMATION_AVAILABLE), len);
229 break;
230 }
231
232 return 0;
233 }
234
235 switch (msg)
236 {
237 case MENU_ENUM_LABEL_ACCOUNTS_RETRO_ACHIEVEMENTS:
238 snprintf(s, len, "Login details for your \n"
239 "Retro Achievements account. \n"
240 " \n"
241 "Visit retroachievements.org and sign up \n"
242 "for a free account. \n"
243 " \n"
244 "After you are done registering, you need \n"
245 "to input the username and password into \n"
246 "RetroArch.");
247 break;
248 case MENU_ENUM_LABEL_CHEEVOS_USERNAME:
249 snprintf(s, len, "Username for your Retro Achievements account.");
250 break;
251 case MENU_ENUM_LABEL_CHEEVOS_PASSWORD:
252 snprintf(s, len, "Password for your Retro Achievements account.");
253 break;
254 case MENU_ENUM_LABEL_USER_LANGUAGE:
255 snprintf(s, len, "Localizes the menu and all onscreen messages \n"
256 "according to the language you have selected \n"
257 "here. \n"
258 " \n"
259 "Requires a restart for the changes \n"
260 "to take effect. \n"
261 " \n"
262 "Note: not all languages might be currently \n"
263 "implemented. \n"
264 " \n"
265 "In case a language is not implemented, \n"
266 "we fallback to English.");
267 break;
268 case MENU_ENUM_LABEL_VIDEO_FONT_PATH:
269 snprintf(s, len, "Change the font that is used \n"
270 "for the Onscreen Display text.");
271 break;
272 case MENU_ENUM_LABEL_GAME_SPECIFIC_OPTIONS:
273 snprintf(s, len, "Automatically load content-specific core options.");
274 break;
275 case MENU_ENUM_LABEL_AUTO_OVERRIDES_ENABLE:
276 snprintf(s, len, "Automatically load override configurations.");
277 break;
278 case MENU_ENUM_LABEL_AUTO_REMAPS_ENABLE:
279 snprintf(s, len, "Automatically load input remapping files.");
280 break;
281 case MENU_ENUM_LABEL_SORT_SAVESTATES_ENABLE:
282 snprintf(s, len, "Sort save states in folders \n"
283 "named after the libretro core used.");
284 break;
285 case MENU_ENUM_LABEL_SORT_SAVEFILES_ENABLE:
286 snprintf(s, len, "Sort save files in folders \n"
287 "named after the libretro core used.");
288 break;
289 case MENU_ENUM_LABEL_RESUME_CONTENT:
290 snprintf(s, len, "Exits from the menu and returns back \n"
291 "to the content.");
292 break;
293 case MENU_ENUM_LABEL_RESTART_CONTENT:
294 snprintf(s, len, "Restarts the content from the beginning.");
295 break;
296 case MENU_ENUM_LABEL_CLOSE_CONTENT:
297 snprintf(s, len, "Closes the content and unloads it from \n"
298 "memory.");
299 break;
300 case MENU_ENUM_LABEL_UNDO_LOAD_STATE:
301 snprintf(s, len, "If a state was loaded, content will \n"
302 "go back to the state prior to loading.");
303 break;
304 case MENU_ENUM_LABEL_UNDO_SAVE_STATE:
305 snprintf(s, len, "If a state was overwritten, it will \n"
306 "roll back to the previous save state.");
307 break;
308 case MENU_ENUM_LABEL_TAKE_SCREENSHOT:
309 snprintf(s, len, "Create a screenshot. \n"
310 " \n"
311 "The screenshot will be stored inside the \n"
312 "Screenshot Directory.");
313 break;
314 case MENU_ENUM_LABEL_ADD_TO_FAVORITES:
315 snprintf(s, len, "Add the entry to your Favorites.");
316 break;
317 case MENU_ENUM_LABEL_RUN:
318 snprintf(s, len, "Start the content.");
319 break;
320 case MENU_ENUM_LABEL_INFORMATION:
321 snprintf(s, len, "Show additional metadata information \n"
322 "about the content.");
323 break;
324 case MENU_ENUM_LABEL_FILE_BROWSER_CONFIG:
325 snprintf(s, len, "Configuration file.");
326 break;
327 case MENU_ENUM_LABEL_FILE_BROWSER_COMPRESSED_ARCHIVE:
328 snprintf(s, len, "Compressed archive file.");
329 break;
330 case MENU_ENUM_LABEL_FILE_BROWSER_RECORD_CONFIG:
331 snprintf(s, len, "Recording configuration file.");
332 break;
333 case MENU_ENUM_LABEL_FILE_BROWSER_CURSOR:
334 snprintf(s, len, "Database cursor file.");
335 break;
336 case MENU_ENUM_LABEL_FILE_CONFIG:
337 snprintf(s, len, "Configuration file.");
338 break;
339 case MENU_ENUM_LABEL_SCAN_THIS_DIRECTORY:
340 snprintf(s, len,
341 "Select this to scan the current directory \n"
342 "for content.");
343 break;
344 case MENU_ENUM_LABEL_USE_THIS_DIRECTORY:
345 snprintf(s, len,
346 "Select this to set this as the directory.");
347 break;
348 case MENU_ENUM_LABEL_CONTENT_DATABASE_DIRECTORY:
349 snprintf(s, len,
350 "Content Database Directory. \n"
351 " \n"
352 "Path to content database \n"
353 "directory.");
354 break;
355 case MENU_ENUM_LABEL_THUMBNAILS_DIRECTORY:
356 snprintf(s, len,
357 "Thumbnails Directory. \n"
358 " \n"
359 "To store thumbnail files.");
360 break;
361 case MENU_ENUM_LABEL_LIBRETRO_INFO_PATH:
362 snprintf(s, len,
363 "Core Info Directory. \n"
364 " \n"
365 "A directory for where to search \n"
366 "for libretro core information.");
367 break;
368 case MENU_ENUM_LABEL_PLAYLIST_DIRECTORY:
369 snprintf(s, len,
370 "Playlist Directory. \n"
371 " \n"
372 "Save all playlist files to this \n"
373 "directory.");
374 break;
375 case MENU_ENUM_LABEL_DUMMY_ON_CORE_SHUTDOWN:
376 snprintf(s, len,
377 "Some cores might have \n"
378 "a shutdown feature. \n"
379 " \n"
380 "If this option is left disabled, \n"
381 "selecting the shutdown procedure \n"
382 "would trigger RetroArch being shut \n"
383 "down. \n"
384 " \n"
385 "Enabling this option will load a \n"
386 "dummy core instead so that we remain \n"
387 "inside the menu and RetroArch won't \n"
388 "shutdown.");
389 break;
390 case MENU_ENUM_LABEL_CHECK_FOR_MISSING_FIRMWARE:
391 snprintf(s, len,
392 "Some cores might need \n"
393 "firmware or bios files. \n"
394 " \n"
395 "If this option is disabled, \n"
396 "it will try to load even if such \n"
397 "firmware is missing. \n");
398 break;
399 case MENU_ENUM_LABEL_PARENT_DIRECTORY:
400 snprintf(s, len,
401 "Go back to the parent directory.");
402 break;
403 case MENU_ENUM_LABEL_FILE_BROWSER_OPEN_UWP_PERMISSIONS:
404 snprintf(s, len,
405 "Open Windows permission settings to enable \n"
406 "the broadFileSystemAccess capability.");
407 break;
408 case MENU_ENUM_LABEL_FILE_BROWSER_OPEN_PICKER:
409 snprintf(s, len,
410 "Open the system file picker to access \n"
411 "additional directories.");
412 break;
413 case MENU_ENUM_LABEL_FILE_BROWSER_SHADER_PRESET:
414 snprintf(s, len,
415 "Shader preset file.");
416 break;
417 case MENU_ENUM_LABEL_FILE_BROWSER_SHADER:
418 snprintf(s, len,
419 "Shader file.");
420 break;
421 case MENU_ENUM_LABEL_FILE_BROWSER_REMAP:
422 snprintf(s, len,
423 "Remap controls file.");
424 break;
425 case MENU_ENUM_LABEL_FILE_BROWSER_CHEAT:
426 snprintf(s, len,
427 "Cheat file.");
428 break;
429 case MENU_ENUM_LABEL_FILE_BROWSER_OVERLAY:
430 snprintf(s, len,
431 "Overlay file.");
432 break;
433 case MENU_ENUM_LABEL_FILE_BROWSER_RDB:
434 snprintf(s, len,
435 "Database file.");
436 break;
437 case MENU_ENUM_LABEL_FILE_BROWSER_FONT:
438 snprintf(s, len,
439 "TrueType font file.");
440 break;
441 case MENU_ENUM_LABEL_FILE_BROWSER_PLAIN_FILE:
442 snprintf(s, len,
443 "Plain file.");
444 break;
445 case MENU_ENUM_LABEL_FILE_BROWSER_MOVIE_OPEN:
446 snprintf(s, len,
447 "Video. \n"
448 " \n"
449 "Select it to open this file with the \n"
450 "video player.");
451 break;
452 case MENU_ENUM_LABEL_FILE_BROWSER_MUSIC_OPEN:
453 snprintf(s, len,
454 "Music. \n"
455 " \n"
456 "Select it to open this file with the \n"
457 "music player.");
458 break;
459 case MENU_ENUM_LABEL_FILE_BROWSER_IMAGE:
460 snprintf(s, len,
461 "Image file.");
462 break;
463 case MENU_ENUM_LABEL_FILE_BROWSER_IMAGE_OPEN_WITH_VIEWER:
464 snprintf(s, len,
465 "Image. \n"
466 " \n"
467 "Select it to open this file with the \n"
468 "image viewer.");
469 break;
470 case MENU_ENUM_LABEL_FILE_BROWSER_CORE_SELECT_FROM_COLLECTION:
471 snprintf(s, len,
472 "Libretro core. \n"
473 " \n"
474 "Selecting this will associate this core \n"
475 "to the game.");
476 break;
477 case MENU_ENUM_LABEL_FILE_BROWSER_CORE:
478 snprintf(s, len,
479 "Libretro core. \n"
480 " \n"
481 "Select this file to have RetroArch load this core.");
482 break;
483 case MENU_ENUM_LABEL_FILE_BROWSER_DIRECTORY:
484 snprintf(s, len,
485 "Directory. \n"
486 " \n"
487 "Select it to open this directory.");
488 break;
489 case MENU_ENUM_LABEL_CACHE_DIRECTORY:
490 snprintf(s, len,
491 "Cache Directory. \n"
492 " \n"
493 "Content decompressed by RetroArch will be \n"
494 "temporarily extracted to this directory.");
495 break;
496 case MENU_ENUM_LABEL_HISTORY_LIST_ENABLE:
497 snprintf(s, len,
498 "If enabled, every content loaded \n"
499 "in RetroArch will be automatically \n"
500 "added to the recent history list.");
501 break;
502 case MENU_ENUM_LABEL_RGUI_BROWSER_DIRECTORY:
503 snprintf(s, len,
504 "File Browser Directory. \n"
505 " \n"
506 "Sets start directory for menu file browser.");
507 break;
508 case MENU_ENUM_LABEL_INPUT_POLL_TYPE_BEHAVIOR:
509 snprintf(s, len,
510 "Influence how input polling is done inside \n"
511 "RetroArch. \n"
512 " \n"
513 "Early - Input polling is performed before \n"
514 "the frame is processed. \n"
515 "Normal - Input polling is performed when \n"
516 "polling is requested. \n"
517 "Late - Input polling is performed on \n"
518 "first input state request per frame.\n"
519 " \n"
520 "Setting it to 'Early' or 'Late' can result \n"
521 "in less latency, \n"
522 "depending on your configuration.\n\n"
523 "Will be ignored when using netplay."
524 );
525 break;
526 case MENU_ENUM_LABEL_INPUT_DESCRIPTOR_HIDE_UNBOUND:
527 snprintf(s, len,
528 "Hide input descriptors that were not set \n"
529 "by the core.");
530 break;
531 case MENU_ENUM_LABEL_VIDEO_REFRESH_RATE:
532 snprintf(s, len,
533 "Video refresh rate of your monitor. \n"
534 "Used to calculate a suitable audio input rate.");
535 break;
536 case MENU_ENUM_LABEL_VIDEO_FORCE_SRGB_DISABLE:
537 snprintf(s, len,
538 "Forcibly disable sRGB FBO support. Some Intel \n"
539 "OpenGL drivers on Windows have video problems \n"
540 "with sRGB FBO support enabled.");
541 break;
542 case MENU_ENUM_LABEL_AUDIO_ENABLE:
543 snprintf(s, len,
544 "Enable audio output.");
545 break;
546 case MENU_ENUM_LABEL_AUDIO_SYNC:
547 snprintf(s, len,
548 "Synchronize audio (recommended).");
549 break;
550 case MENU_ENUM_LABEL_AUDIO_LATENCY:
551 snprintf(s, len,
552 "Desired audio latency in milliseconds. \n"
553 "Might not be honored if the audio driver \n"
554 "can't provide given latency.");
555 break;
556 case MENU_ENUM_LABEL_VIDEO_ALLOW_ROTATE:
557 snprintf(s, len,
558 "Allow cores to set rotation. If false, \n"
559 "rotation requests are honored, but ignored.\n\n"
560 "Used for setups where one manually rotates \n"
561 "the monitor.");
562 break;
563 case MENU_ENUM_LABEL_INPUT_DESCRIPTOR_LABEL_SHOW:
564 snprintf(s, len,
565 "Show the input descriptors set by the core \n"
566 "instead of the default ones.");
567 break;
568 case MENU_ENUM_LABEL_CONTENT_HISTORY_SIZE:
569 snprintf(s, len,
570 "Number of entries that will be kept in \n"
571 "content history playlist.");
572 break;
573 case MENU_ENUM_LABEL_VIDEO_WINDOWED_FULLSCREEN:
574 snprintf(s, len,
575 "To use windowed mode or not when going \n"
576 "fullscreen.");
577 break;
578 case MENU_ENUM_LABEL_VIDEO_FONT_SIZE:
579 snprintf(s, len,
580 "Font size for on-screen messages.");
581 break;
582 case MENU_ENUM_LABEL_SAVESTATE_AUTO_INDEX:
583 snprintf(s, len,
584 "Automatically increment slot index on each save, \n"
585 "generating multiple savestate files. \n"
586 "When the content is loaded, state slot will be \n"
587 "set to the highest existing value (last savestate).");
588 break;
589 case MENU_ENUM_LABEL_FPS_SHOW:
590 snprintf(s, len,
591 "Enables displaying the current frames \n"
592 "per second.");
593 break;
594 case MENU_ENUM_LABEL_MEMORY_SHOW:
595 snprintf(s, len,
596 "Includes displaying the current memory \n"
597 "usage/total with FPS/Frames.");
598 break;
599 case MENU_ENUM_LABEL_VIDEO_FONT_ENABLE:
600 snprintf(s, len,
601 "Show and/or hide onscreen messages.");
602 break;
603 case MENU_ENUM_LABEL_VIDEO_MESSAGE_POS_X:
604 case MENU_ENUM_LABEL_VIDEO_MESSAGE_POS_Y:
605 snprintf(s, len,
606 "Offset for where messages will be placed \n"
607 "onscreen. Values are in range [0.0, 1.0].");
608 break;
609 case MENU_ENUM_LABEL_INPUT_OVERLAY_ENABLE:
610 snprintf(s, len,
611 "Enable or disable the current overlay.");
612 break;
613 case MENU_ENUM_LABEL_INPUT_OVERLAY_HIDE_IN_MENU:
614 snprintf(s, len,
615 "Hide the current overlay from appearing \n"
616 "inside the menu.");
617 break;
618 case MENU_ENUM_LABEL_INPUT_OVERLAY_SHOW_PHYSICAL_INPUTS:
619 snprintf(s, len,
620 "Show keyboard/controller button presses on \n"
621 "the onscreen overlay.");
622 break;
623 case MENU_ENUM_LABEL_INPUT_OVERLAY_SHOW_PHYSICAL_INPUTS_PORT:
624 snprintf(s, len,
625 "Select the port to listen for controller input \n"
626 "to display on the onscreen overlay.");
627 break;
628 case MENU_ENUM_LABEL_OVERLAY_PRESET:
629 snprintf(s, len,
630 "Path to input overlay.");
631 break;
632 case MENU_ENUM_LABEL_OVERLAY_OPACITY:
633 snprintf(s, len,
634 "Overlay opacity.");
635 break;
636 case MENU_ENUM_LABEL_VIDEO_LAYOUT_ENABLE:
637 snprintf(s, len,
638 "Enable or disable the current video layout.");
639 break;
640 case MENU_ENUM_LABEL_VIDEO_LAYOUT_PATH:
641 snprintf(s, len,
642 "Path to video layout.");
643 break;
644 case MENU_ENUM_LABEL_VIDEO_LAYOUT_SELECTED_VIEW:
645 snprintf(s, len,
646 "Layouts can contain multiple views. \n"
647 "Select a view.");
648 break;
649 case MENU_ENUM_LABEL_INPUT_BIND_TIMEOUT:
650 snprintf(s, len,
651 "Input bind timer timeout (in seconds). \n"
652 "Amount of seconds to wait until proceeding \n"
653 "to the next bind.");
654 break;
655 case MENU_ENUM_LABEL_INPUT_BIND_HOLD:
656 snprintf(s, len,
657 "Input bind hold time (in seconds). \n"
658 "Amount of seconds to hold an input to bind it.");
659 break;
660 case MENU_ENUM_LABEL_OVERLAY_SCALE:
661 snprintf(s, len,
662 "Overlay scale.");
663 break;
664 case MENU_ENUM_LABEL_AUDIO_OUTPUT_RATE:
665 snprintf(s, len,
666 "Audio output samplerate.");
667 break;
668 case MENU_ENUM_LABEL_VIDEO_SHARED_CONTEXT:
669 snprintf(s, len,
670 "Set to true if hardware-rendered cores \n"
671 "should get their private context. \n"
672 "Avoids having to assume hardware state changes \n"
673 "inbetween frames."
674 );
675 break;
676 case MENU_ENUM_LABEL_CORE_LIST:
677 snprintf(s, len,
678 "Load Core. \n"
679 " \n"
680 "Browse for a libretro core \n"
681 "implementation. Where the browser \n"
682 "starts depends on your Core Directory \n"
683 "path. If blank, it will start in root. \n"
684 " \n"
685 "If Core Directory is a directory, the menu \n"
686 "will use that as top folder. If Core \n"
687 "Directory is a full path, it will start \n"
688 "in the folder where the file is.");
689 break;
690 case MENU_ENUM_LABEL_VALUE_MENU_ENUM_CONTROLS_PROLOG:
691 snprintf(s, len,
692 "메뉴를 조작하려면 게임패드 또는 \n"
693 "키보드를 통해 다음의 조작 방법을\n"
694 "사용 할 수 있습니다: \n"
695 " \n"
696 );
697 break;
698 case MENU_ENUM_LABEL_WELCOME_TO_RETROARCH:
699 snprintf(s, len,
700 "RetroArch에 오신걸 환영합니다\n"
701 );
702 break;
703 case MENU_ENUM_LABEL_VALUE_HELP_AUDIO_VIDEO_TROUBLESHOOTING_DESC: {
704 /* Work around C89 limitations */
705 char u[501];
706 const char *t =
707 "RetroArch relies on an unique form of\n"
708 "audio/video synchronization where it needs to be\n"
709 "calibrated against the refresh rate of your\n"
710 "display for best performance results.\n"
711 " \n"
712 "If you experience any audio crackling or video\n"
713 "tearing, usually it means that you need to\n"
714 "calibrate the settings. Some choices below:\n"
715 " \n";
716 snprintf(u, sizeof(u), /* can't inline this due to the printf arguments */
717 "a) Go to '%s' -> '%s', and enable\n"
718 "'Threaded Video'. Refresh rate will not matter\n"
719 "in this mode, framerate will be higher,\n"
720 "but video might be less smooth.\n"
721 "b) Go to '%s' -> '%s', and look at\n"
722 "'%s'. Let it run for\n"
723 "2048 frames, then press 'OK'.",
724 msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SETTINGS),
725 msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_SETTINGS),
726 msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SETTINGS),
727 msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_SETTINGS),
728 msg_hash_to_str(MENU_ENUM_LABEL_VALUE_VIDEO_REFRESH_RATE_AUTO));
729 strlcpy(s, t, len);
730 strlcat(s, u, len);
731 }
732 break;
733 case MENU_ENUM_LABEL_VALUE_HELP_SCANNING_CONTENT_DESC:
734 snprintf(s, len,
735 "To scan for content, go to '%s' and\n"
736 "select either '%s' or %s'.\n"
737 "\n"
738 "Files will be compared to database entries.\n"
739 "If there is a match, it will add an entry\n"
740 "to a playlist.\n"
741 "\n"
742 "You can then easily access this content by\n"
743 "going to '%s' ->\n"
744 "'%s'\n"
745 "instead of having to go through the\n"
746 "file browser every time.\n"
747 "\n"
748 "NOTE: Content for some cores might still not be\n"
749 "scannable.",
750 msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ADD_CONTENT_LIST),
751 msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SCAN_DIRECTORY),
752 msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SCAN_FILE),
753 msg_hash_to_str(MENU_ENUM_LABEL_VALUE_LOAD_CONTENT_LIST),
754 msg_hash_to_str(MENU_ENUM_LABEL_VALUE_PLAYLISTS_TAB)
755 );
756 break;
757 case MENU_ENUM_LABEL_VALUE_EXTRACTING_PLEASE_WAIT:
758 snprintf(s, len,
759 "Welcome to RetroArch\n"
760 "\n"
761 "Extracting assets, please wait.\n"
762 "This might take a while...\n"
763 );
764 break;
765 case MENU_ENUM_LABEL_INPUT_DRIVER:
766 {
767 const char *lbl = settings ? settings->arrays.input_driver : NULL;
768
769 if (string_is_equal(lbl, msg_hash_to_str(MENU_ENUM_LABEL_INPUT_DRIVER_UDEV)))
770 snprintf(s, len,
771 "udev Input driver. \n"
772 " \n"
773 "It uses the recent evdev joypad API \n"
774 "for joystick support. It supports \n"
775 "hotplugging and force feedback. \n"
776 " \n"
777 "The driver reads evdev events for keyboard \n"
778 "support. It also supports keyboard callback, \n"
779 "mice and touchpads. \n"
780 " \n"
781 "By default in most distros, /dev/input nodes \n"
782 "are root-only (mode 600). You can set up a udev \n"
783 "rule which makes these accessible to non-root."
784 );
785 else if (string_is_equal(lbl,
786 msg_hash_to_str(MENU_ENUM_LABEL_INPUT_DRIVER_LINUXRAW)))
787 snprintf(s, len,
788 "linuxraw Input driver. \n"
789 " \n"
790 "This driver requires an active TTY. Keyboard \n"
791 "events are read directly from the TTY which \n"
792 "makes it simpler, but not as flexible as udev. \n" "Mice, etc, are not supported at all. \n"
793 " \n"
794 "This driver uses the older joystick API \n"
795 "(/dev/input/js*).");
796 else
797 snprintf(s, len,
798 "Input driver.\n"
799 " \n"
800 "Depending on video driver, it might \n"
801 "force a different input driver.");
802 }
803 break;
804 case MENU_ENUM_LABEL_LOAD_CONTENT_LIST:
805 snprintf(s, len,
806 "Load Content. \n"
807 "Browse for content. \n"
808 " \n"
809 "To load content, you need a \n"
810 "'Core' to use, and a content file. \n"
811 " \n"
812 "To control where the menu starts \n"
813 "to browse for content, set \n"
814 "'File Browser Directory'. \n"
815 "If not set, it will start in root. \n"
816 " \n"
817 "The browser will filter out \n"
818 "extensions for the last core set \n"
819 "in 'Load Core', and use that core \n"
820 "when content is loaded."
821 );
822 break;
823 case MENU_ENUM_LABEL_LOAD_CONTENT_HISTORY:
824 snprintf(s, len,
825 "Loading content from history. \n"
826 " \n"
827 "As content is loaded, content and libretro \n"
828 "core combinations are saved to history. \n"
829 " \n"
830 "The history is saved to a file in the same \n"
831 "directory as the RetroArch config file. If \n"
832 "no config file was loaded in startup, history \n"
833 "will not be saved or loaded, and will not exist \n"
834 "in the main menu."
835 );
836 break;
837 case MENU_ENUM_LABEL_VIDEO_DRIVER:
838 {
839 const char *video_driver = settings->arrays.video_driver;
840
841 snprintf(s, len,
842 "Current Video driver.");
843
844 if (string_is_equal(video_driver, "gl"))
845 {
846 snprintf(s, len,
847 "OpenGL Video driver. \n"
848 " \n"
849 "This driver allows libretro GL cores to \n"
850 "be used in addition to software-rendered \n"
851 "core implementations.\n"
852 " \n"
853 "Performance for software-rendered and \n"
854 "libretro GL core implementations is \n"
855 "dependent on your graphics card's \n"
856 "underlying GL driver).");
857 }
858 else if (string_is_equal(video_driver, "sdl2"))
859 {
860 snprintf(s, len,
861 "SDL 2 Video driver.\n"
862 " \n"
863 "This is an SDL 2 software-rendered video \n"
864 "driver.\n"
865 " \n"
866 "Performance for software-rendered libretro \n"
867 "core implementations is dependent \n"
868 "on your platform SDL implementation.");
869 }
870 else if (string_is_equal(video_driver, "sdl1"))
871 {
872 snprintf(s, len,
873 "SDL Video driver.\n"
874 " \n"
875 "This is an SDL 1.2 software-rendered video \n"
876 "driver.\n"
877 " \n"
878 "Performance is considered to be suboptimal. \n"
879 "Consider using it only as a last resort.");
880 }
881 else if (string_is_equal(video_driver, "d3d"))
882 {
883 snprintf(s, len,
884 "Direct3D Video driver. \n"
885 " \n"
886 "Performance for software-rendered cores \n"
887 "is dependent on your graphic card's \n"
888 "underlying D3D driver).");
889 }
890 else if (string_is_equal(video_driver, "exynos"))
891 {
892 snprintf(s, len,
893 "Exynos-G2D Video Driver. \n"
894 " \n"
895 "This is a low-level Exynos video driver. \n"
896 "Uses the G2D block in Samsung Exynos SoC \n"
897 "for blit operations. \n"
898 " \n"
899 "Performance for software rendered cores \n"
900 "should be optimal.");
901 }
902 else if (string_is_equal(video_driver, "drm"))
903 {
904 snprintf(s, len,
905 "Plain DRM Video Driver. \n"
906 " \n"
907 "This is a low-level video driver using. \n"
908 "libdrm for hardware scaling using \n"
909 "GPU overlays.");
910 }
911 else if (string_is_equal(video_driver, "sunxi"))
912 {
913 snprintf(s, len,
914 "Sunxi-G2D Video Driver. \n"
915 " \n"
916 "This is a low-level Sunxi video driver. \n"
917 "Uses the G2D block in Allwinner SoCs.");
918 }
919 }
920 break;
921 case MENU_ENUM_LABEL_AUDIO_DSP_PLUGIN:
922 snprintf(s, len,
923 "Audio DSP plugin.\n"
924 " Processes audio before it's sent to \n"
925 "the driver."
926 );
927 break;
928 case MENU_ENUM_LABEL_AUDIO_RESAMPLER_DRIVER:
929 {
930 const char *lbl = settings ? settings->arrays.audio_resampler : NULL;
931
932 if (string_is_equal(lbl, msg_hash_to_str(
933 MENU_ENUM_LABEL_AUDIO_RESAMPLER_DRIVER_SINC)))
934 strlcpy(s,
935 "Windowed SINC implementation.", len);
936 else if (string_is_equal(lbl, msg_hash_to_str(
937 MENU_ENUM_LABEL_AUDIO_RESAMPLER_DRIVER_CC)))
938 strlcpy(s,
939 "Convoluted Cosine implementation.", len);
940 else if (string_is_empty(s))
941 strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_INFORMATION_AVAILABLE), len);
942 }
943 break;
944
945 case MENU_ENUM_LABEL_CRT_SWITCH_RESOLUTION: snprintf(s, len, "SET CRT");
946 break;
947
948 case MENU_ENUM_LABEL_CRT_SWITCH_RESOLUTION_SUPER: snprintf(s, len, "SET CRT SUPER");
949 break;
950
951 case MENU_ENUM_LABEL_VIDEO_SHADER_PRESET:
952 snprintf(s, len,
953 "Load Shader Preset. \n"
954 " \n"
955 " Load a shader preset directly. \n"
956 "The menu shader menu is updated accordingly. \n"
957 " \n"
958 "If the CGP uses scaling methods which are not \n"
959 "simple, (i.e. source scaling, same scaling \n"
960 "factor for X/Y), the scaling factor displayed \n"
961 "in the menu might not be correct."
962 );
963 break;
964 case MENU_ENUM_LABEL_VIDEO_SHADER_SCALE_PASS:
965 snprintf(s, len,
966 "Scale for this pass. \n"
967 " \n"
968 "The scale factor accumulates, i.e. 2x \n"
969 "for first pass and 2x for second pass \n"
970 "will give you a 4x total scale. \n"
971 " \n"
972 "If there is a scale factor for last \n"
973 "pass, the result is stretched to \n"
974 "screen with the filter specified in \n"
975 "'Default Filter'. \n"
976 " \n"
977 "If 'Don't Care' is set, either 1x \n"
978 "scale or stretch to fullscreen will \n"
979 "be used depending if it's not the last \n"
980 "pass or not."
981 );
982 break;
983 case MENU_ENUM_LABEL_VIDEO_SHADER_NUM_PASSES:
984 snprintf(s, len,
985 "Shader Passes. \n"
986 " \n"
987 "RetroArch allows you to mix and match various \n"
988 "shaders with arbitrary shader passes, with \n"
989 "custom hardware filters and scale factors. \n"
990 " \n"
991 "This option specifies the number of shader \n"
992 "passes to use. If you set this to 0, and use \n"
993 "Apply Shader Changes, you use a 'blank' shader. \n"
994 " \n"
995 "The Default Filter option will affect the \n"
996 "stretching filter.");
997 break;
998 case MENU_ENUM_LABEL_VIDEO_SHADER_PARAMETERS:
999 snprintf(s, len,
1000 "Shader Parameters. \n"
1001 " \n"
1002 "Modifies current shader directly. Will not be \n"
1003 "saved to CGP/GLSLP preset file.");
1004 break;
1005 case MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_PARAMETERS:
1006 snprintf(s, len,
1007 "Shader Preset Parameters. \n"
1008 " \n"
1009 "Modifies shader preset currently in menu."
1010 );
1011 break;
1012 case MENU_ENUM_LABEL_VIDEO_SHADER_PASS:
1013 snprintf(s, len,
1014 "Path to shader. \n"
1015 " \n"
1016 "All shaders must be of the same \n"
1017 "type (i.e. CG, GLSL or HLSL). \n"
1018 " \n"
1019 "Set Shader Directory to set where \n"
1020 "the browser starts to look for \n"
1021 "shaders."
1022 );
1023 break;
1024 case MENU_ENUM_LABEL_CONFIGURATION_SETTINGS:
1025 snprintf(s, len,
1026 "Determines how configuration files \n"
1027 "are loaded and prioritized.");
1028 break;
1029 case MENU_ENUM_LABEL_CONFIG_SAVE_ON_EXIT:
1030 snprintf(s, len,
1031 "Saves config to disk on exit.\n"
1032 "Useful for menu as settings can be\n"
1033 "modified. Overwrites the config.\n"
1034 " \n"
1035 "#include's and comments are not \n"
1036 "preserved. \n"
1037 " \n"
1038 "By design, the config file is \n"
1039 "considered immutable as it is \n"
1040 "likely maintained by the user, \n"
1041 "and should not be overwritten \n"
1042 "behind the user's back."
1043 #if defined(RARCH_CONSOLE) || defined(RARCH_MOBILE)
1044 "\nThis is not not the case on \n"
1045 "consoles however, where \n"
1046 "looking at the config file \n"
1047 "manually isn't really an option."
1048 #endif
1049 );
1050 break;
1051 case MENU_ENUM_LABEL_CONFIRM_ON_EXIT:
1052 snprintf(s, len, "Are you sure you want to quit?");
1053 break;
1054 case MENU_ENUM_LABEL_SHOW_HIDDEN_FILES:
1055 snprintf(s, len, "Show hidden files\n"
1056 "and folders.");
1057 break;
1058 case MENU_ENUM_LABEL_VIDEO_SHADER_FILTER_PASS:
1059 snprintf(s, len,
1060 "Hardware filter for this pass. \n"
1061 " \n"
1062 "If 'Don't Care' is set, 'Default \n"
1063 "Filter' will be used."
1064 );
1065 break;
1066 case MENU_ENUM_LABEL_AUTOSAVE_INTERVAL:
1067 snprintf(s, len,
1068 "Autosaves the non-volatile SRAM \n"
1069 "at a regular interval.\n"
1070 " \n"
1071 "This is disabled by default unless set \n"
1072 "otherwise. The interval is measured in \n"
1073 "seconds. \n"
1074 " \n"
1075 "A value of 0 disables autosave.");
1076 break;
1077 case MENU_ENUM_LABEL_INPUT_BIND_DEVICE_TYPE:
1078 snprintf(s, len,
1079 "Input Device Type. \n"
1080 " \n"
1081 "Picks which device type to use. This is \n"
1082 "relevant for the libretro core itself."
1083 );
1084 break;
1085 case MENU_ENUM_LABEL_LIBRETRO_LOG_LEVEL:
1086 snprintf(s, len,
1087 "Sets log level for libretro cores \n"
1088 "(GET_LOG_INTERFACE). \n"
1089 " \n"
1090 " If a log level issued by a libretro \n"
1091 " core is below libretro_log level, it \n"
1092 " is ignored.\n"
1093 " \n"
1094 " DEBUG logs are always ignored unless \n"
1095 " verbose mode is activated (--verbose).\n"
1096 " \n"
1097 " DEBUG = 0\n"
1098 " INFO = 1\n"
1099 " WARN = 2\n"
1100 " ERROR = 3"
1101 );
1102 break;
1103 case MENU_ENUM_LABEL_STATE_SLOT_INCREASE:
1104 case MENU_ENUM_LABEL_STATE_SLOT_DECREASE:
1105 snprintf(s, len,
1106 "State slots.\n"
1107 " \n"
1108 " With slot set to 0, save state name is *.state \n"
1109 " (or whatever defined on commandline).\n"
1110 "When slot is != 0, path will be (path)(d), \n"
1111 "where (d) is slot number.");
1112 break;
1113 case MENU_ENUM_LABEL_SHADER_APPLY_CHANGES:
1114 snprintf(s, len,
1115 "Apply Shader Changes. \n"
1116 " \n"
1117 "After changing shader settings, use this to \n"
1118 "apply changes. \n"
1119 " \n"
1120 "Changing shader settings is a somewhat \n"
1121 "expensive operation so it has to be \n"
1122 "done explicitly. \n"
1123 " \n"
1124 "When you apply shaders, the menu shader \n"
1125 "settings are saved to a temporary file (either \n"
1126 "menu.cgp or menu.glslp) and loaded. The file \n"
1127 "persists after RetroArch exits. The file is \n"
1128 "saved to Shader Directory."
1129 );
1130 break;
1131 case MENU_ENUM_LABEL_SHADER_WATCH_FOR_CHANGES:
1132 snprintf(s, len,
1133 "Watch shader files for new changes. \n"
1134 " \n"
1135 "After saving changes to a shader on disk, \n"
1136 "it will automatically be recompiled \n"
1137 "and applied to the running content."
1138 );
1139 break;
1140 case MENU_ENUM_LABEL_MENU_TOGGLE:
1141 snprintf(s, len,
1142 "Toggles menu.");
1143 break;
1144 case MENU_ENUM_LABEL_GRAB_MOUSE_TOGGLE:
1145 snprintf(s, len,
1146 "Toggles mouse grab.\n"
1147 " \n"
1148 "When mouse is grabbed, RetroArch hides the \n"
1149 "mouse, and keeps the mouse pointer inside \n"
1150 "the window to allow relative mouse input to \n"
1151 "work better.");
1152 break;
1153 case MENU_ENUM_LABEL_GAME_FOCUS_TOGGLE:
1154 snprintf(s, len,
1155 "Toggles game focus.\n"
1156 " \n"
1157 "When a game has focus, RetroArch will both disable \n"
1158 "hotkeys and keep/warp the mouse pointer inside the window.");
1159 break;
1160 case MENU_ENUM_LABEL_DISK_NEXT:
1161 snprintf(s, len,
1162 "Cycles through disk images. Use after \n"
1163 "ejecting. \n"
1164 " \n"
1165 " Complete by toggling eject again.");
1166 break;
1167 case MENU_ENUM_LABEL_VIDEO_FILTER:
1168 #ifdef HAVE_FILTERS_BUILTIN
1169 snprintf(s, len,
1170 "CPU-based video filter.");
1171 #else
1172 snprintf(s, len,
1173 "CPU-based video filter.\n"
1174 " \n"
1175 "Path to a dynamic library.");
1176 #endif
1177 break;
1178 case MENU_ENUM_LABEL_AUDIO_DEVICE:
1179 snprintf(s, len,
1180 "Override the default audio device \n"
1181 "the audio driver uses.\n"
1182 "This is driver dependent. E.g.\n"
1183 #ifdef HAVE_ALSA
1184 " \n"
1185 "ALSA wants a PCM device."
1186 #endif
1187 #ifdef HAVE_OSS
1188 " \n"
1189 "OSS wants a path (e.g. /dev/dsp)."
1190 #endif
1191 #ifdef HAVE_JACK
1192 " \n"
1193 "JACK wants portnames (e.g. system:playback1\n"
1194 ",system:playback_2)."
1195 #endif
1196 #ifdef HAVE_RSOUND
1197 " \n"
1198 "RSound wants an IP address to an RSound \n"
1199 "server."
1200 #endif
1201 );
1202 break;
1203 case MENU_ENUM_LABEL_DISK_EJECT_TOGGLE:
1204 snprintf(s, len,
1205 "Toggles eject for disks.\n"
1206 " \n"
1207 "Used for multiple-disk content.");
1208 break;
1209 case MENU_ENUM_LABEL_ENABLE_HOTKEY:
1210 snprintf(s, len,
1211 "Enable other hotkeys.\n"
1212 " \n"
1213 " If this hotkey is bound to either keyboard, \n"
1214 "joybutton or joyaxis, all other hotkeys will \n"
1215 "be disabled unless this hotkey is also held \n"
1216 "at the same time. \n"
1217 " \n"
1218 "This is useful for RETRO_KEYBOARD centric \n"
1219 "implementations which query a large area of \n"
1220 "the keyboard, where it is not desirable that \n"
1221 "hotkeys get in the way.");
1222 break;
1223 case MENU_ENUM_LABEL_REWIND_ENABLE:
1224 snprintf(s, len,
1225 "Enable rewinding.\n"
1226 " \n"
1227 "This will take a performance hit, \n"
1228 "so it is disabled by default.");
1229 break;
1230 case MENU_ENUM_LABEL_CHEAT_APPLY_AFTER_TOGGLE:
1231 snprintf(s, len,
1232 "Apply cheat immediately after toggling.");
1233 break;
1234 case MENU_ENUM_LABEL_CHEAT_APPLY_AFTER_LOAD:
1235 snprintf(s, len,
1236 "Auto-apply cheats when game loads.");
1237 break;
1238 case MENU_ENUM_LABEL_LIBRETRO_DIR_PATH:
1239 snprintf(s, len,
1240 "Core Directory. \n"
1241 " \n"
1242 "A directory for where to search for \n"
1243 "libretro core implementations.");
1244 break;
1245 case MENU_ENUM_LABEL_VIDEO_REFRESH_RATE_AUTO:
1246 snprintf(s, len,
1247 "Refresh Rate Auto.\n"
1248 " \n"
1249 "The accurate refresh rate of our monitor (Hz).\n"
1250 "This is used to calculate audio input rate with \n"
1251 "the formula: \n"
1252 " \n"
1253 "audio_input_rate = game input rate * display \n"
1254 "refresh rate / game refresh rate\n"
1255 " \n"
1256 "If the implementation does not report any \n"
1257 "values, NTSC defaults will be assumed for \n"
1258 "compatibility.\n"
1259 " \n"
1260 "This value should stay close to 60Hz to avoid \n"
1261 "large pitch changes. If your monitor does \n"
1262 "not run at 60Hz, or something close to it, \n"
1263 "disable VSync, and leave this at its default.");
1264 break;
1265 case MENU_ENUM_LABEL_VIDEO_REFRESH_RATE_POLLED:
1266 snprintf(s, len,
1267 "Set Polled Refresh Rate\n"
1268 " \n"
1269 "Sets the refresh rate to the actual value\n"
1270 "polled from the display driver.");
1271 break;
1272 case MENU_ENUM_LABEL_VIDEO_ROTATION:
1273 snprintf(s, len,
1274 "Forces a certain rotation \n"
1275 "of the screen.\n"
1276 " \n"
1277 "The rotation is added to rotations which\n"
1278 "the libretro core sets (see Video Allow\n"
1279 "Rotate).");
1280 break;
1281 case MENU_ENUM_LABEL_VIDEO_SCALE:
1282 snprintf(s, len,
1283 "Fullscreen resolution.\n"
1284 " \n"
1285 "Resolution of 0 uses the \n"
1286 "resolution of the environment.\n");
1287 break;
1288 case MENU_ENUM_LABEL_FASTFORWARD_RATIO:
1289 snprintf(s, len,
1290 "Fastforward ratio.\n"
1291 " \n"
1292 "The maximum rate at which content will\n"
1293 "be run when using fast forward.\n"
1294 " \n"
1295 " (E.g. 5.0 for 60 fps content => 300 fps \n"
1296 "cap).\n"
1297 " \n"
1298 "RetroArch will go to sleep to ensure that \n"
1299 "the maximum rate will not be exceeded.\n"
1300 "Do not rely on this cap to be perfectly \n"
1301 "accurate.");
1302 break;
1303 case MENU_ENUM_LABEL_VRR_RUNLOOP_ENABLE:
1304 snprintf(s, len,
1305 "Sync to Exact Content Framerate.\n"
1306 " \n"
1307 "This option is the equivalent of forcing x1 speed\n"
1308 "while still allowing fast forward.\n"
1309 "No deviation from the core requested refresh rate,\n"
1310 "no sound Dynamic Rate Control).");
1311 break;
1312 case MENU_ENUM_LABEL_VIDEO_MONITOR_INDEX:
1313 snprintf(s, len,
1314 "Which monitor to prefer.\n"
1315 " \n"
1316 "0 (default) means no particular monitor \n"
1317 "is preferred, 1 and up (1 being first \n"
1318 "monitor), suggests RetroArch to use that \n"
1319 "particular monitor.");
1320 break;
1321 case MENU_ENUM_LABEL_VIDEO_CROP_OVERSCAN:
1322 snprintf(s, len,
1323 "Forces cropping of overscanned \n"
1324 "frames.\n"
1325 " \n"
1326 "Exact behavior of this option is \n"
1327 "core-implementation specific.");
1328 break;
1329 case MENU_ENUM_LABEL_VIDEO_SCALE_INTEGER:
1330 snprintf(s, len,
1331 "Only scales video in integer \n"
1332 "steps.\n"
1333 " \n"
1334 "The base size depends on system-reported \n"
1335 "geometry and aspect ratio.\n"
1336 " \n"
1337 "If Force Aspect is not set, X/Y will be \n"
1338 "integer scaled independently.");
1339 break;
1340 case MENU_ENUM_LABEL_AUDIO_VOLUME:
1341 snprintf(s, len,
1342 "Audio volume, expressed in dB.\n"
1343 " \n"
1344 " 0 dB is normal volume. No gain will be applied.\n"
1345 "Gain can be controlled in runtime with Input\n"
1346 "Volume Up / Input Volume Down.");
1347 break;
1348 case MENU_ENUM_LABEL_AUDIO_RATE_CONTROL_DELTA:
1349 snprintf(s, len,
1350 "Audio rate control.\n"
1351 " \n"
1352 "Setting this to 0 disables rate control.\n"
1353 "Any other value controls audio rate control \n"
1354 "delta.\n"
1355 " \n"
1356 "Defines how much input rate can be adjusted \n"
1357 "dynamically.\n"
1358 " \n"
1359 " Input rate is defined as: \n"
1360 " input rate * (1.0 +/- (rate control delta))");
1361 break;
1362 case MENU_ENUM_LABEL_AUDIO_MAX_TIMING_SKEW:
1363 snprintf(s, len,
1364 "Maximum audio timing skew.\n"
1365 " \n"
1366 "Defines the maximum change in input rate.\n"
1367 "You may want to increase this to enable\n"
1368 "very large changes in timing, for example\n"
1369 "running PAL cores on NTSC displays, at the\n"
1370 "cost of inaccurate audio pitch.\n"
1371 " \n"
1372 " Input rate is defined as: \n"
1373 " input rate * (1.0 +/- (max timing skew))");
1374 break;
1375 case MENU_ENUM_LABEL_OVERLAY_NEXT:
1376 snprintf(s, len,
1377 "Toggles to next overlay.\n"
1378 " \n"
1379 "Wraps around.");
1380 break;
1381 case MENU_ENUM_LABEL_LOG_VERBOSITY:
1382 snprintf(s, len,
1383 "Enable or disable verbosity level \n"
1384 "of frontend.");
1385 break;
1386 case MENU_ENUM_LABEL_VOLUME_UP:
1387 snprintf(s, len,
1388 "Increases audio volume.");
1389 break;
1390 case MENU_ENUM_LABEL_VOLUME_DOWN:
1391 snprintf(s, len,
1392 "Decreases audio volume.");
1393 break;
1394 case MENU_ENUM_LABEL_VIDEO_DISABLE_COMPOSITION:
1395 snprintf(s, len,
1396 "Forcibly disable composition.\n"
1397 "Only valid on Windows Vista/7 for now.");
1398 break;
1399 case MENU_ENUM_LABEL_PERFCNT_ENABLE:
1400 snprintf(s, len,
1401 "Enable or disable frontend \n"
1402 "performance counters.");
1403 break;
1404 case MENU_ENUM_LABEL_SYSTEM_DIRECTORY:
1405 snprintf(s, len,
1406 "System Directory. \n"
1407 " \n"
1408 "Sets the 'system' directory.\n"
1409 "Cores can query for this\n"
1410 "directory to load BIOSes, \n"
1411 "system-specific configs, etc.");
1412 break;
1413 case MENU_ENUM_LABEL_SAVESTATE_AUTO_SAVE:
1414 case MENU_ENUM_LABEL_SAVESTATE_AUTO_LOAD:
1415 snprintf(s, len,
1416 "Automatically saves a savestate at the \n"
1417 "end of RetroArch's lifetime.\n"
1418 " \n"
1419 "RetroArch will automatically load any savestate\n"
1420 "with this path on startup if 'Auto Load State\n"
1421 "is enabled.");
1422 break;
1423 case MENU_ENUM_LABEL_VIDEO_THREADED:
1424 snprintf(s, len,
1425 "Use threaded video driver.\n"
1426 " \n"
1427 "Using this might improve performance at the \n"
1428 "possible cost of latency and more video \n"
1429 "stuttering.");
1430 break;
1431 case MENU_ENUM_LABEL_VIDEO_VSYNC:
1432 snprintf(s, len,
1433 "Video V-Sync.\n");
1434 break;
1435 case MENU_ENUM_LABEL_VIDEO_HARD_SYNC:
1436 snprintf(s, len,
1437 "Attempts to hard-synchronize \n"
1438 "CPU and GPU.\n"
1439 " \n"
1440 "Can reduce latency at the cost of \n"
1441 "performance.");
1442 break;
1443 case MENU_ENUM_LABEL_REWIND_GRANULARITY:
1444 snprintf(s, len,
1445 "Rewind granularity.\n"
1446 " \n"
1447 " When rewinding defined number of \n"
1448 "frames, you can rewind several frames \n"
1449 "at a time, increasing the rewinding \n"
1450 "speed.");
1451 break;
1452 case MENU_ENUM_LABEL_REWIND_BUFFER_SIZE:
1453 snprintf(s, len,
1454 "Rewind buffer size (MB).\n"
1455 " \n"
1456 " The amount of memory in MB to reserve \n"
1457 "for rewinding. Increasing this value \n"
1458 "increases the rewind history length.\n");
1459 break;
1460 case MENU_ENUM_LABEL_REWIND_BUFFER_SIZE_STEP:
1461 snprintf(s, len,
1462 "Rewind buffer size step (MB).\n"
1463 " \n"
1464 " Each time you increase or decrease \n"
1465 "the rewind buffer size value via this \n"
1466 "UI it will change by this amount.\n");
1467 break;
1468 case MENU_ENUM_LABEL_SCREENSHOT:
1469 snprintf(s, len,
1470 "Take screenshot.");
1471 break;
1472 case MENU_ENUM_LABEL_VIDEO_FRAME_DELAY:
1473 snprintf(s, len,
1474 "Sets how many milliseconds to delay\n"
1475 "after VSync before running the core.\n"
1476 "\n"
1477 "Can reduce latency at the cost of\n"
1478 "higher risk of stuttering.\n"
1479 " \n"
1480 "Maximum is 15.");
1481 break;
1482 case MENU_ENUM_LABEL_VIDEO_HARD_SYNC_FRAMES:
1483 snprintf(s, len,
1484 "Sets how many frames CPU can \n"
1485 "run ahead of GPU when using 'GPU \n"
1486 "Hard Sync'.\n"
1487 " \n"
1488 "Maximum is 3.\n"
1489 " \n"
1490 " 0: Syncs to GPU immediately.\n"
1491 " 1: Syncs to previous frame.\n"
1492 " 2: Etc ...");
1493 break;
1494 case MENU_ENUM_LABEL_VIDEO_BLACK_FRAME_INSERTION:
1495 snprintf(s, len,
1496 "Inserts a black frame inbetween \n"
1497 "frames.\n"
1498 " \n"
1499 "Useful for 120 Hz monitors who want to \n"
1500 "play 60 Hz material with eliminated \n"
1501 "ghosting.\n"
1502 " \n"
1503 "Video refresh rate should still be \n"
1504 "configured as if it is a 60 Hz monitor \n"
1505 "(divide refresh rate by 2).");
1506 break;
1507 case MENU_ENUM_LABEL_RGUI_SHOW_START_SCREEN:
1508 snprintf(s, len,
1509 "Show startup screen in menu.\n"
1510 "Is automatically set to false when seen\n"
1511 "for the first time.\n"
1512 " \n"
1513 "This is only updated in config if\n"
1514 "'Save Configuration on Exit' is enabled.\n");
1515 break;
1516 case MENU_ENUM_LABEL_VIDEO_FULLSCREEN:
1517 snprintf(s, len, "Toggles fullscreen.");
1518 break;
1519 case MENU_ENUM_LABEL_BLOCK_SRAM_OVERWRITE:
1520 snprintf(s, len,
1521 "Block SRAM from being overwritten \n"
1522 "when loading save states.\n"
1523 " \n"
1524 "Might potentially lead to buggy games.");
1525 break;
1526 case MENU_ENUM_LABEL_PAUSE_NONACTIVE:
1527 snprintf(s, len,
1528 "Pause gameplay when window focus \n"
1529 "is lost.");
1530 break;
1531 case MENU_ENUM_LABEL_VIDEO_GPU_SCREENSHOT:
1532 snprintf(s, len,
1533 "Screenshots output of GPU shaded \n"
1534 "material if available.");
1535 break;
1536 case MENU_ENUM_LABEL_SCREENSHOT_DIRECTORY:
1537 snprintf(s, len,
1538 "Screenshot Directory. \n"
1539 " \n"
1540 "Directory to dump screenshots to."
1541 );
1542 break;
1543 case MENU_ENUM_LABEL_VIDEO_SWAP_INTERVAL:
1544 snprintf(s, len,
1545 "VSync Swap Interval.\n"
1546 " \n"
1547 "Uses a custom swap interval for VSync. Set this \n"
1548 "to effectively halve monitor refresh rate.");
1549 break;
1550 case MENU_ENUM_LABEL_SAVEFILE_DIRECTORY:
1551 snprintf(s, len,
1552 "Savefile Directory. \n"
1553 " \n"
1554 "Save all save files (*.srm) to this \n"
1555 "directory. This includes related files like \n"
1556 ".bsv, .rt, .psrm, etc...\n"
1557 " \n"
1558 "This will be overridden by explicit command line\n"
1559 "options.");
1560 break;
1561 case MENU_ENUM_LABEL_SAVESTATE_DIRECTORY:
1562 snprintf(s, len,
1563 "Savestate Directory. \n"
1564 " \n"
1565 "Save all save states (*.state) to this \n"
1566 "directory.\n"
1567 " \n"
1568 "This will be overridden by explicit command line\n"
1569 "options.");
1570 break;
1571 case MENU_ENUM_LABEL_ASSETS_DIRECTORY:
1572 snprintf(s, len,
1573 "Assets Directory. \n"
1574 " \n"
1575 " This location is queried by default when \n"
1576 "menu interfaces try to look for loadable \n"
1577 "assets, etc.");
1578 break;
1579 case MENU_ENUM_LABEL_DYNAMIC_WALLPAPERS_DIRECTORY:
1580 snprintf(s, len,
1581 "Dynamic Wallpapers Directory. \n"
1582 " \n"
1583 " The place to store backgrounds that will \n"
1584 "be loaded dynamically by the menu depending \n"
1585 "on context.");
1586 break;
1587 case MENU_ENUM_LABEL_SLOWMOTION_RATIO:
1588 snprintf(s, len,
1589 "Slowmotion ratio."
1590 " \n"
1591 "When slowmotion, content will slow\n"
1592 "down by factor.");
1593 break;
1594 case MENU_ENUM_LABEL_INPUT_BUTTON_AXIS_THRESHOLD:
1595 snprintf(s, len,
1596 "Defines the axis threshold.\n"
1597 " \n"
1598 "How far an axis must be tilted to result\n"
1599 "in a button press.\n"
1600 " Possible values are [0.0, 1.0].");
1601 break;
1602 case MENU_ENUM_LABEL_INPUT_TURBO_PERIOD:
1603 snprintf(s, len,
1604 "Turbo period.\n"
1605 " \n"
1606 "Describes the period of which turbo-enabled\n"
1607 "buttons toggle.\n"
1608 " \n"
1609 "Numbers are described in frames."
1610 );
1611 break;
1612 case MENU_ENUM_LABEL_INPUT_DUTY_CYCLE:
1613 snprintf(s, len,
1614 "Duty cycle.\n"
1615 " \n"
1616 "Describes how long the period of a turbo-enabled\n"
1617 "should be.\n"
1618 " \n"
1619 "Numbers are described in frames."
1620 );
1621 break;
1622 case MENU_ENUM_LABEL_INPUT_TOUCH_ENABLE:
1623 snprintf(s, len, "Enable touch support.");
1624 break;
1625 case MENU_ENUM_LABEL_INPUT_PREFER_FRONT_TOUCH:
1626 snprintf(s, len, "Use front instead of back touch.");
1627 break;
1628 case MENU_ENUM_LABEL_MOUSE_ENABLE:
1629 snprintf(s, len, "Enable mouse input inside the menu.");
1630 break;
1631 case MENU_ENUM_LABEL_POINTER_ENABLE:
1632 snprintf(s, len, "Enable touch input inside the menu.");
1633 break;
1634 case MENU_ENUM_LABEL_MENU_WALLPAPER:
1635 snprintf(s, len, "Path to an image to set as the background.");
1636 break;
1637 case MENU_ENUM_LABEL_NAVIGATION_WRAPAROUND:
1638 snprintf(s, len,
1639 "Wrap-around to beginning and/or end \n"
1640 "if boundary of list is reached \n"
1641 "horizontally and/or vertically.");
1642 break;
1643 case MENU_ENUM_LABEL_PAUSE_LIBRETRO:
1644 snprintf(s, len,
1645 "If disabled, the game will keep \n"
1646 "running in the background when we are in the \n"
1647 "menu.");
1648 break;
1649 case MENU_ENUM_LABEL_SUSPEND_SCREENSAVER_ENABLE:
1650 snprintf(s, len,
1651 "Suspends the screensaver. Is a hint that \n"
1652 "does not necessarily have to be \n"
1653 "honored by the video driver.");
1654 break;
1655 case MENU_ENUM_LABEL_NETPLAY_MODE:
1656 snprintf(s, len,
1657 "Netplay client mode for the current user. \n"
1658 "Will be 'Server' mode if disabled.");
1659 break;
1660 case MENU_ENUM_LABEL_NETPLAY_DELAY_FRAMES:
1661 snprintf(s, len,
1662 "The amount of delay frames to use for netplay. \n"
1663 " \n"
1664 "Increasing this value will increase \n"
1665 "performance, but introduce more latency.");
1666 break;
1667 case MENU_ENUM_LABEL_NETPLAY_PUBLIC_ANNOUNCE:
1668 snprintf(s, len,
1669 "Whether to announce netplay games publicly. \n"
1670 " \n"
1671 "If set to false, clients must manually connect \n"
1672 "rather than using the public lobby.");
1673 break;
1674 case MENU_ENUM_LABEL_NETPLAY_START_AS_SPECTATOR:
1675 snprintf(s, len,
1676 "Whether to start netplay in spectator mode. \n"
1677 " \n"
1678 "If set to true, netplay will be in spectator mode \n"
1679 "on start. It's always possible to change mode \n"
1680 "later.");
1681 break;
1682 case MENU_ENUM_LABEL_NETPLAY_ALLOW_SLAVES:
1683 snprintf(s, len,
1684 "Whether to allow connections in slave mode. \n"
1685 " \n"
1686 "Slave-mode clients require very little processing \n"
1687 "power on either side, but will suffer \n"
1688 "significantly from network latency.");
1689 break;
1690 case MENU_ENUM_LABEL_NETPLAY_REQUIRE_SLAVES:
1691 snprintf(s, len,
1692 "Whether to disallow connections not in slave mode. \n"
1693 " \n"
1694 "Not recommended except for very fast networks \n"
1695 "with very weak machines. \n");
1696 break;
1697 case MENU_ENUM_LABEL_NETPLAY_STATELESS_MODE:
1698 snprintf(s, len,
1699 "Whether to run netplay in a mode not requiring\n"
1700 "save states. \n"
1701 " \n"
1702 "If set to true, a very fast network is required,\n"
1703 "but no rewinding is performed, so there will be\n"
1704 "no netplay jitter.\n");
1705 break;
1706 case MENU_ENUM_LABEL_NETPLAY_CHECK_FRAMES:
1707 snprintf(s, len,
1708 "The frequency in frames with which netplay \n"
1709 "will verify that the host and client are in \n"
1710 "sync. \n"
1711 " \n"
1712 "With most cores, this value will have no \n"
1713 "visible effect and can be ignored. With \n"
1714 "nondeterminstic cores, this value determines \n"
1715 "how often the netplay peers will be brought \n"
1716 "into sync. With buggy cores, setting this \n"
1717 "to any non-zero value will cause severe \n"
1718 "performance issues. Set to zero to perform \n"
1719 "no checks. This value is only used on the \n"
1720 "netplay host. \n");
1721 break;
1722 case MENU_ENUM_LABEL_NETPLAY_INPUT_LATENCY_FRAMES_MIN:
1723 snprintf(s, len,
1724 "The number of frames of input latency for \n"
1725 "netplay to use to hide network latency. \n"
1726 " \n"
1727 "When in netplay, this option delays local \n"
1728 "input, so that the frame being run is \n"
1729 "closer to the frames being received from \n"
1730 "the network. This reduces jitter and makes \n"
1731 "netplay less CPU-intensive, but at the \n"
1732 "price of noticeable input lag. \n");
1733 break;
1734 case MENU_ENUM_LABEL_NETPLAY_INPUT_LATENCY_FRAMES_RANGE:
1735 snprintf(s, len,
1736 "The range of frames of input latency that \n"
1737 "may be used by netplay to hide network \n"
1738 "latency. \n"
1739 "\n"
1740 "If set, netplay will adjust the number of \n"
1741 "frames of input latency dynamically to \n"
1742 "balance CPU time, input latency and \n"
1743 "network latency. This reduces jitter and \n"
1744 "makes netplay less CPU-intensive, but at \n"
1745 "the price of unpredictable input lag. \n");
1746 break;
1747 case MENU_ENUM_LABEL_NETPLAY_NAT_TRAVERSAL:
1748 snprintf(s, len,
1749 "When hosting, attempt to listen for\n"
1750 "connections from the public internet, using\n"
1751 "UPnP or similar technologies to escape LANs. \n");
1752 break;
1753 case MENU_ENUM_LABEL_NETPLAY_USE_MITM_SERVER:
1754 snprintf(s, len,
1755 "When hosting a netplay session, relay connection through a \n"
1756 "man-in-the-middle server \n"
1757 "to get around firewalls or NAT/UPnP issues. \n");
1758 break;
1759 case MENU_ENUM_LABEL_NETPLAY_MITM_SERVER:
1760 snprintf(s, len,
1761 "Specifies the man-in-the-middle server \n"
1762 "to use for netplay. A server that is \n"
1763 "located closer to you may have less latency. \n");
1764 break;
1765 case MENU_ENUM_LABEL_VIDEO_MAX_SWAPCHAIN_IMAGES:
1766 snprintf(s, len,
1767 "Maximum amount of swapchain images. This \n"
1768 "can tell the video driver to use a specific \n"
1769 "video buffering mode. \n"
1770 " \n"
1771 "Single buffering - 1\n"
1772 "Double buffering - 2\n"
1773 "Triple buffering - 3\n"
1774 " \n"
1775 "Setting the right buffering mode can have \n"
1776 "a big impact on latency.");
1777 break;
1778 case MENU_ENUM_LABEL_VIDEO_SMOOTH:
1779 snprintf(s, len,
1780 "Smoothens picture with bilinear filtering. \n"
1781 "Should be disabled if using shaders.");
1782 break;
1783 case MENU_ENUM_LABEL_VIDEO_CTX_SCALING:
1784 snprintf(s, len,
1785 #ifdef HAVE_ODROIDGO2
1786 "RGA scaling and bicubic filtering. May break widgets."
1787 #else
1788 "Hardware context scaling (if available)."
1789 #endif
1790 );
1791 break;
1792 case MENU_ENUM_LABEL_TIMEDATE_ENABLE:
1793 snprintf(s, len,
1794 "Shows current date and/or time inside menu.");
1795 break;
1796 case MENU_ENUM_LABEL_TIMEDATE_STYLE:
1797 snprintf(s, len,
1798 "Style to show the current date and/or time in.");
1799 break;
1800 case MENU_ENUM_LABEL_BATTERY_LEVEL_ENABLE:
1801 snprintf(s, len,
1802 "Shows current battery level inside menu.");
1803 break;
1804 case MENU_ENUM_LABEL_CORE_ENABLE:
1805 snprintf(s, len,
1806 "Shows current core inside menu.");
1807 break;
1808 case MENU_ENUM_LABEL_NETPLAY_ENABLE_HOST:
1809 snprintf(s, len,
1810 "Enables Netplay in host (server) mode.");
1811 break;
1812 case MENU_ENUM_LABEL_NETPLAY_ENABLE_CLIENT:
1813 snprintf(s, len,
1814 "Enables Netplay in client mode.");
1815 break;
1816 case MENU_ENUM_LABEL_NETPLAY_DISCONNECT:
1817 snprintf(s, len,
1818 "Disconnects an active Netplay connection.");
1819 break;
1820 case MENU_ENUM_LABEL_NETPLAY_LAN_SCAN_SETTINGS:
1821 snprintf(s, len,
1822 "Search for and connect to netplay hosts on the local network.");
1823 break;
1824 case MENU_ENUM_LABEL_NETPLAY_SETTINGS:
1825 snprintf(s, len,
1826 "Setting related to Netplay.");
1827 break;
1828 case MENU_ENUM_LABEL_DYNAMIC_WALLPAPER:
1829 snprintf(s, len,
1830 "Dynamically load a new background \n"
1831 "depending on context.");
1832 break;
1833 case MENU_ENUM_LABEL_CORE_UPDATER_BUILDBOT_URL:
1834 snprintf(s, len,
1835 "URL to core updater directory on the \n"
1836 "Libretro buildbot.");
1837 break;
1838 case MENU_ENUM_LABEL_BUILDBOT_ASSETS_URL:
1839 snprintf(s, len,
1840 "URL to assets updater directory on the \n"
1841 "Libretro buildbot.");
1842 break;
1843 case MENU_ENUM_LABEL_INPUT_REMAP_BINDS_ENABLE:
1844 snprintf(s, len,
1845 "if enabled, overrides the input binds \n"
1846 "with the remapped binds set for the \n"
1847 "current core.");
1848 break;
1849 case MENU_ENUM_LABEL_OVERLAY_DIRECTORY:
1850 snprintf(s, len,
1851 "Overlay Directory. \n"
1852 " \n"
1853 "Defines a directory where overlays are \n"
1854 "kept for easy access.");
1855 break;
1856 case MENU_ENUM_LABEL_VIDEO_LAYOUT_DIRECTORY:
1857 snprintf(s, len,
1858 "Video Layout Directory. \n"
1859 " \n"
1860 "Defines a directory where video layouts are \n"
1861 "kept for easy access.");
1862 break;
1863 case MENU_ENUM_LABEL_INPUT_MAX_USERS:
1864 snprintf(s, len,
1865 "Maximum amount of users supported by \n"
1866 "RetroArch.");
1867 break;
1868 case MENU_ENUM_LABEL_CORE_UPDATER_AUTO_EXTRACT_ARCHIVE:
1869 snprintf(s, len,
1870 "After downloading, automatically extract \n"
1871 "archives that the downloads are contained \n"
1872 "inside.");
1873 break;
1874 case MENU_ENUM_LABEL_NAVIGATION_BROWSER_FILTER_SUPPORTED_EXTENSIONS_ENABLE:
1875 snprintf(s, len,
1876 "Filter files being shown by \n"
1877 "supported extensions.");
1878 break;
1879 case MENU_ENUM_LABEL_NETPLAY_NICKNAME:
1880 snprintf(s, len,
1881 "The username of the person running RetroArch. \n"
1882 "This will be used for playing online games.");
1883 break;
1884 case MENU_ENUM_LABEL_NETPLAY_TCP_UDP_PORT:
1885 snprintf(s, len,
1886 "The port of the host IP address. \n"
1887 "Can be either a TCP or UDP port.");
1888 break;
1889 case MENU_ENUM_LABEL_NETPLAY_SPECTATOR_MODE_ENABLE:
1890 snprintf(s, len,
1891 "Enable or disable spectator mode for \n"
1892 "the user during netplay.");
1893 break;
1894 case MENU_ENUM_LABEL_NETPLAY_IP_ADDRESS:
1895 snprintf(s, len,
1896 "The address of the host to connect to.");
1897 break;
1898 case MENU_ENUM_LABEL_NETPLAY_PASSWORD:
1899 snprintf(s, len,
1900 "The password for connecting to the netplay \n"
1901 "host. Used only in host mode.");
1902 break;
1903 case MENU_ENUM_LABEL_NETPLAY_SPECTATE_PASSWORD:
1904 snprintf(s, len,
1905 "The password for connecting to the netplay \n"
1906 "host with only spectator privileges. Used \n"
1907 "only in host mode.");
1908 break;
1909 case MENU_ENUM_LABEL_STDIN_CMD_ENABLE:
1910 snprintf(s, len,
1911 "Enable stdin command interface.");
1912 break;
1913 case MENU_ENUM_LABEL_UI_COMPANION_START_ON_BOOT:
1914 snprintf(s, len,
1915 "Start User Interface companion driver \n"
1916 "on boot (if available).");
1917 break;
1918 case MENU_ENUM_LABEL_MENU_DRIVER:
1919 snprintf(s, len, "Menu driver to use.");
1920 break;
1921 case MENU_ENUM_LABEL_INPUT_MENU_ENUM_TOGGLE_GAMEPAD_COMBO:
1922 snprintf(s, len,
1923 "Gamepad button combination to toggle menu. \n"
1924 " \n"
1925 "0 - None \n"
1926 "1 - Press L + R + Y + D-Pad Down \n"
1927 "simultaneously. \n"
1928 "2 - Press L3 + R3 simultaneously. \n"
1929 "3 - Press Start + Select simultaneously.");
1930 break;
1931 case MENU_ENUM_LABEL_INPUT_ALL_USERS_CONTROL_MENU:
1932 snprintf(s, len, "Allows any user to control the menu. \n"
1933 " \n"
1934 "When disabled, only user 1 can control the menu.");
1935 break;
1936 case MENU_ENUM_LABEL_INPUT_AUTODETECT_ENABLE:
1937 snprintf(s, len,
1938 "Enable input auto-detection.\n"
1939 " \n"
1940 "Will attempt to auto-configure \n"
1941 "joypads, Plug-and-Play style.");
1942 break;
1943 case MENU_ENUM_LABEL_CAMERA_ALLOW:
1944 snprintf(s, len,
1945 "Allow or disallow camera access by \n"
1946 "cores.");
1947 break;
1948 case MENU_ENUM_LABEL_LOCATION_ALLOW:
1949 snprintf(s, len,
1950 "Allow or disallow location services \n"
1951 "access by cores.");
1952 break;
1953 case MENU_ENUM_LABEL_TURBO:
1954 snprintf(s, len,
1955 "Turbo enable.\n"
1956 " \n"
1957 "Holding the turbo while pressing another \n"
1958 "button will let the button enter a turbo \n"
1959 "mode where the button state is modulated \n"
1960 "with a periodic signal. \n"
1961 " \n"
1962 "The modulation stops when the button \n"
1963 "itself (not turbo button) is released.");
1964 break;
1965 case MENU_ENUM_LABEL_OSK_ENABLE:
1966 snprintf(s, len,
1967 "Enable/disable on-screen keyboard.");
1968 break;
1969 case MENU_ENUM_LABEL_AUDIO_MUTE:
1970 snprintf(s, len,
1971 "Mute/unmute audio.");
1972 break;
1973 case MENU_ENUM_LABEL_REWIND:
1974 snprintf(s, len,
1975 "Hold button down to rewind.\n"
1976 " \n"
1977 "Rewind must be enabled.");
1978 break;
1979 case MENU_ENUM_LABEL_EXIT_EMULATOR:
1980 snprintf(s, len,
1981 "Key to exit RetroArch cleanly."
1982 #if !defined(RARCH_MOBILE) && !defined(RARCH_CONSOLE)
1983 "\nKilling it in any hard way (SIGKILL, \n"
1984 "etc) will terminate without saving\n"
1985 "RAM, etc. On Unix-likes,\n"
1986 "SIGINT/SIGTERM allows\n"
1987 "a clean deinitialization."
1988 #endif
1989 );
1990 break;
1991 case MENU_ENUM_LABEL_LOAD_STATE:
1992 snprintf(s, len,
1993 "Loads state.");
1994 break;
1995 case MENU_ENUM_LABEL_SAVE_STATE:
1996 snprintf(s, len,
1997 "Saves state.");
1998 break;
1999 case MENU_ENUM_LABEL_NETPLAY_GAME_WATCH:
2000 snprintf(s, len,
2001 "Netplay toggle play/spectate mode.");
2002 break;
2003 case MENU_ENUM_LABEL_CHEAT_INDEX_PLUS:
2004 snprintf(s, len,
2005 "Increment cheat index.\n");
2006 break;
2007 case MENU_ENUM_LABEL_CHEAT_INDEX_MINUS:
2008 snprintf(s, len,
2009 "Decrement cheat index.\n");
2010 break;
2011 case MENU_ENUM_LABEL_SHADER_PREV:
2012 snprintf(s, len,
2013 "Applies previous shader in directory.");
2014 break;
2015 case MENU_ENUM_LABEL_SHADER_NEXT:
2016 snprintf(s, len,
2017 "Applies next shader in directory.");
2018 break;
2019 case MENU_ENUM_LABEL_RESET:
2020 snprintf(s, len,
2021 "Reset the content.\n");
2022 break;
2023 case MENU_ENUM_LABEL_PAUSE_TOGGLE:
2024 snprintf(s, len,
2025 "Toggle between paused and non-paused state.");
2026 break;
2027 case MENU_ENUM_LABEL_CHEAT_TOGGLE:
2028 snprintf(s, len,
2029 "Toggle cheat index.\n");
2030 break;
2031 case MENU_ENUM_LABEL_CHEAT_IDX:
2032 snprintf(s, len,
2033 "Index position in list.\n");
2034 break;
2035 case MENU_ENUM_LABEL_CHEAT_ADDRESS_BIT_POSITION:
2036 snprintf(s, len,
2037 "Address bitmask when Memory Search Size < 8-bit.\n");
2038 break;
2039 case MENU_ENUM_LABEL_CHEAT_REPEAT_COUNT:
2040 snprintf(s, len,
2041 "The number of times the cheat will be applied.\nUse with the other two Iteration options to affect large areas of memory.");
2042 break;
2043 case MENU_ENUM_LABEL_CHEAT_REPEAT_ADD_TO_ADDRESS:
2044 snprintf(s, len,
2045 "After each 'Number of Iterations' the Memory Address will be increased by this number times the 'Memory Search Size'.");
2046 break;
2047 case MENU_ENUM_LABEL_CHEAT_REPEAT_ADD_TO_VALUE:
2048 snprintf(s, len,
2049 "After each 'Number of Iterations' the Value will be increased by this amount.");
2050 break;
2051 case MENU_ENUM_LABEL_CHEAT_MATCH_IDX:
2052 snprintf(s, len,
2053 "Select the match to view.");
2054 break;
2055 case MENU_ENUM_LABEL_CHEAT_START_OR_CONT:
2056 snprintf(s, len,
2057 "Scan memory to create new cheats");
2058 break;
2059 case MENU_ENUM_LABEL_CHEAT_START_OR_RESTART:
2060 snprintf(s, len,
2061 "Left/Right to change bit-size\n");
2062 break;
2063 case MENU_ENUM_LABEL_CHEAT_SEARCH_EXACT:
2064 snprintf(s, len,
2065 "Left/Right to change value\n");
2066 break;
2067 case MENU_ENUM_LABEL_CHEAT_SEARCH_LT:
2068 snprintf(s, len,
2069 " ");
2070 break;
2071 case MENU_ENUM_LABEL_CHEAT_SEARCH_GT:
2072 snprintf(s, len,
2073 " ");
2074 break;
2075 case MENU_ENUM_LABEL_CHEAT_SEARCH_EQ:
2076 snprintf(s, len,
2077 " ");
2078 break;
2079 case MENU_ENUM_LABEL_CHEAT_SEARCH_NEQ:
2080 snprintf(s, len,
2081 " ");
2082 break;
2083 case MENU_ENUM_LABEL_CHEAT_SEARCH_EQPLUS:
2084 snprintf(s, len,
2085 "Left/Right to change value\n");
2086 break;
2087 case MENU_ENUM_LABEL_CHEAT_SEARCH_EQMINUS:
2088 snprintf(s, len,
2089 "Left/Right to change value\n");
2090 break;
2091 case MENU_ENUM_LABEL_CHEAT_ADD_MATCHES:
2092 snprintf(s, len,
2093 " ");
2094 break;
2095 case MENU_ENUM_LABEL_CHEAT_VIEW_MATCHES:
2096 snprintf(s, len,
2097 " ");
2098 break;
2099 case MENU_ENUM_LABEL_CHEAT_CREATE_OPTION:
2100 snprintf(s, len,
2101 " ");
2102 break;
2103 case MENU_ENUM_LABEL_CHEAT_DELETE_OPTION:
2104 snprintf(s, len,
2105 " ");
2106 break;
2107 case MENU_ENUM_LABEL_CHEAT_ADD_NEW_TOP:
2108 snprintf(s, len,
2109 " ");
2110 break;
2111 case MENU_ENUM_LABEL_CHEAT_RELOAD_CHEATS:
2112 snprintf(s, len,
2113 " ");
2114 break;
2115 case MENU_ENUM_LABEL_CHEAT_ADD_NEW_BOTTOM:
2116 snprintf(s, len,
2117 " ");
2118 break;
2119 case MENU_ENUM_LABEL_CHEAT_DELETE_ALL:
2120 snprintf(s, len,
2121 " ");
2122 break;
2123 case MENU_ENUM_LABEL_CHEAT_BIG_ENDIAN:
2124 snprintf(s, len,
2125 "Big endian : 258 = 0x0102\n"
2126 "Little endian : 258 = 0x0201");
2127 break;
2128 case MENU_ENUM_LABEL_HOLD_FAST_FORWARD:
2129 snprintf(s, len,
2130 "Hold for fast-forward. Releasing button \n"
2131 "disables fast-forward.");
2132 break;
2133 case MENU_ENUM_LABEL_SLOWMOTION_HOLD:
2134 snprintf(s, len,
2135 "Hold for slowmotion.");
2136 break;
2137 case MENU_ENUM_LABEL_FRAME_ADVANCE:
2138 snprintf(s, len,
2139 "Frame advance when content is paused.");
2140 break;
2141 case MENU_ENUM_LABEL_BSV_RECORD_TOGGLE:
2142 snprintf(s, len,
2143 "Toggle between recording and not.");
2144 break;
2145 case MENU_ENUM_LABEL_L_X_PLUS:
2146 case MENU_ENUM_LABEL_L_X_MINUS:
2147 case MENU_ENUM_LABEL_L_Y_PLUS:
2148 case MENU_ENUM_LABEL_L_Y_MINUS:
2149 case MENU_ENUM_LABEL_R_X_PLUS:
2150 case MENU_ENUM_LABEL_R_X_MINUS:
2151 case MENU_ENUM_LABEL_R_Y_PLUS:
2152 case MENU_ENUM_LABEL_R_Y_MINUS:
2153 snprintf(s, len,
2154 "Axis for analog stick (DualShock-esque).\n"
2155 " \n"
2156 "Bound as usual, however, if a real analog \n"
2157 "axis is bound, it can be read as a true analog.\n"
2158 " \n"
2159 "Positive X axis is right. \n"
2160 "Positive Y axis is down.");
2161 break;
2162 case MENU_ENUM_LABEL_VALUE_WHAT_IS_A_CORE_DESC:
2163 snprintf(s, len,
2164 "RetroArch by itself does nothing. \n"
2165 " \n"
2166 "To make it do things, you need to \n"
2167 "load a program into it. \n"
2168 "\n"
2169 "We call such a program 'Libretro core', \n"
2170 "or 'core' in short. \n"
2171 " \n"
2172 "To load a core, select one from\n"
2173 "'Load Core'.\n"
2174 " \n"
2175 #ifdef HAVE_NETWORKING
2176 "You can obtain cores in several ways: \n"
2177 "* Download them by going to\n"
2178 "'%s' -> '%s'.\n"
2179 "* Manually move them over to\n"
2180 "'%s'.",
2181 msg_hash_to_str(MENU_ENUM_LABEL_VALUE_ONLINE_UPDATER),
2182 msg_hash_to_str(MENU_ENUM_LABEL_VALUE_CORE_UPDATER_LIST),
2183 msg_hash_to_str(MENU_ENUM_LABEL_VALUE_LIBRETRO_DIR_PATH)
2184 #else
2185 "You can obtain cores by\n"
2186 "manually moving them over to\n"
2187 "'%s'.",
2188 msg_hash_to_str(MENU_ENUM_LABEL_VALUE_LIBRETRO_DIR_PATH)
2189 #endif
2190 );
2191 break;
2192 case MENU_ENUM_LABEL_VALUE_HELP_CHANGE_VIRTUAL_GAMEPAD_DESC:
2193 snprintf(s, len,
2194 "You can change the virtual gamepad overlay\n"
2195 "by going to '%s' -> '%s'."
2196 " \n"
2197 "From there you can change the overlay,\n"
2198 "change the size and opacity of the buttons, etc.\n"
2199 " \n"
2200 "NOTE: By default, virtual gamepad overlays are\n"
2201 "hidden when in the menu.\n"
2202 "If you'd like to change this behavior,\n"
2203 "you can set '%s' to false.",
2204 msg_hash_to_str(MENU_ENUM_LABEL_VALUE_SETTINGS),
2205 msg_hash_to_str(MENU_ENUM_LABEL_VALUE_OVERLAY_SETTINGS),
2206 msg_hash_to_str(MENU_ENUM_LABEL_VALUE_INPUT_OVERLAY_HIDE_IN_MENU)
2207 );
2208 break;
2209 case MENU_ENUM_LABEL_VALUE_VIDEO_MESSAGE_BGCOLOR_ENABLE:
2210 snprintf(s, len,
2211 "Enables a background color for the OSD.");
2212 break;
2213 case MENU_ENUM_LABEL_VALUE_VIDEO_MESSAGE_BGCOLOR_RED:
2214 snprintf(s, len,
2215 "Sets the red value of the OSD background color. Valid values are between 0 and 255.");
2216 break;
2217 case MENU_ENUM_LABEL_VALUE_VIDEO_MESSAGE_BGCOLOR_GREEN:
2218 snprintf(s, len,
2219 "Sets the green value of the OSD background color. Valid values are between 0 and 255.");
2220 break;
2221 case MENU_ENUM_LABEL_VALUE_VIDEO_MESSAGE_BGCOLOR_BLUE:
2222 snprintf(s, len,
2223 "Sets the blue value of the OSD background color. Valid values are between 0 and 255.");
2224 break;
2225 case MENU_ENUM_LABEL_VALUE_VIDEO_MESSAGE_BGCOLOR_OPACITY:
2226 snprintf(s, len,
2227 "Sets the opacity of the OSD background color. Valid values are between 0.0 and 1.0.");
2228 break;
2229 case MENU_ENUM_LABEL_VALUE_VIDEO_MESSAGE_COLOR_RED:
2230 snprintf(s, len,
2231 "Sets the red value of the OSD text color. Valid values are between 0 and 255.");
2232 break;
2233 case MENU_ENUM_LABEL_VALUE_VIDEO_MESSAGE_COLOR_GREEN:
2234 snprintf(s, len,
2235 "Sets the green value of the OSD text color. Valid values are between 0 and 255.");
2236 break;
2237 case MENU_ENUM_LABEL_VALUE_VIDEO_MESSAGE_COLOR_BLUE:
2238 snprintf(s, len,
2239 "Sets the blue value of the OSD text color. Valid values are between 0 and 255.");
2240 break;
2241 case MENU_ENUM_LABEL_MIDI_DRIVER:
2242 snprintf(s, len,
2243 "MIDI driver to use.");
2244 break;
2245 case MENU_ENUM_LABEL_MIDI_INPUT:
2246 snprintf(s, len,
2247 "Sets the input device (driver specific).\n"
2248 "When set to \"Off\", MIDI input will be disabled.\n"
2249 "Device name can also be typed in.");
2250 break;
2251 case MENU_ENUM_LABEL_MIDI_OUTPUT:
2252 snprintf(s, len,
2253 "Sets the output device (driver specific).\n"
2254 "When set to \"Off\", MIDI output will be disabled.\n"
2255 "Device name can also be typed in.\n"
2256 " \n"
2257 "When MIDI output is enabled and core and game/app support MIDI output,\n"
2258 "some or all sounds (depends on game/app) will be generated by MIDI device.\n"
2259 "In case of \"null\" MIDI driver this means that those sounds won't be audible.");
2260 break;
2261 case MENU_ENUM_LABEL_MIDI_VOLUME:
2262 snprintf(s, len,
2263 "Sets the master volume of the output device.");
2264 break;
2265 default:
2266 if (string_is_empty(s))
2267 strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_INFORMATION_AVAILABLE), len);
2268 return -1;
2269 }
2270
2271 return 0;
2272 }
2273 #endif
2274
2275 #ifdef HAVE_MENU
menu_hash_to_str_ko_label_enum(enum msg_hash_enums msg)2276 static const char *menu_hash_to_str_ko_label_enum(enum msg_hash_enums msg)
2277 {
2278 if (msg <= MENU_ENUM_LABEL_INPUT_HOTKEY_BIND_END &&
2279 msg >= MENU_ENUM_LABEL_INPUT_HOTKEY_BIND_BEGIN)
2280 {
2281 static char hotkey_lbl[128] = {0};
2282 unsigned idx = msg - MENU_ENUM_LABEL_INPUT_HOTKEY_BIND_BEGIN;
2283 snprintf(hotkey_lbl, sizeof(hotkey_lbl), "input_hotkey_binds_%d", idx);
2284 return hotkey_lbl;
2285 }
2286
2287 switch (msg)
2288 {
2289 #include "msg_hash_lbl.h"
2290 default:
2291 #if 0
2292 RARCH_LOG("Unimplemented: [%d]\n", msg);
2293 #endif
2294 break;
2295 }
2296
2297 return "null";
2298 }
2299 #endif
2300
msg_hash_to_str_ko(enum msg_hash_enums msg)2301 const char *msg_hash_to_str_ko(enum msg_hash_enums msg) {
2302 #ifdef HAVE_MENU
2303 const char *ret = menu_hash_to_str_ko_label_enum(msg);
2304
2305 if (ret && !string_is_equal(ret, "null"))
2306 return ret;
2307 #endif
2308
2309 switch (msg) {
2310 #include "msg_hash_ko.h"
2311 default:
2312 #if 0
2313 RARCH_LOG("Unimplemented: [%d]\n", msg);
2314 {
2315 RARCH_LOG("[%d] : %s\n", msg - 1, msg_hash_to_str(((enum msg_hash_enums)(msg - 1))));
2316 }
2317 #endif
2318 break;
2319 }
2320
2321 return "null";
2322 }
2323
msg_hash_get_wideglyph_str_ko(void)2324 const char *msg_hash_get_wideglyph_str_ko(void)
2325 {
2326 return "메";
2327 }
2328