Commit | Line | Data |
---|---|---|
919cac88 | 1 | #ifndef LIBRETRO_CORE_OPTIONS_H__ |
2 | #define LIBRETRO_CORE_OPTIONS_H__ | |
3 | ||
4 | #include <stdlib.h> | |
5 | #include <string.h> | |
6 | ||
7 | #include <libretro.h> | |
8 | #include <retro_inline.h> | |
9 | ||
10 | #ifdef __cplusplus | |
11 | extern "C" { | |
12 | #endif | |
13 | ||
14 | /* | |
15 | ******************************** | |
16 | * Core Option Definitions | |
17 | ******************************** | |
18 | */ | |
19 | ||
20 | /* RETRO_LANGUAGE_ENGLISH */ | |
21 | ||
22 | /* Default language: | |
23 | * - All other languages must include the same keys and values | |
24 | * - Will be used as a fallback in the event that frontend language | |
25 | * is not available | |
26 | * - Will be used as a fallback for any missing entries in | |
27 | * frontend language definition | |
28 | */ | |
29 | ||
30 | #ifdef HAVE_PRE_ARMV7 | |
31 | #define PSX_CLOCK_DEFAULT "50" | |
32 | #define PSX_CLOCK_LABEL "Overclock or underclock the PSX clock. Default is 50" | |
33 | #else | |
34 | #define PSX_CLOCK_DEFAULT "57" | |
35 | #define PSX_CLOCK_LABEL "Overclock or underclock the PSX clock. Default is 57" | |
36 | #endif | |
37 | ||
38 | struct retro_core_option_definition option_defs_us[] = { | |
39 | { | |
40 | "pcsx_rearmed_frameskip", | |
41 | "Frameskip", | |
42 | "Choose how much frames should be skipped to improve performance at the expense of visual smoothness.", | |
43 | { | |
44 | { "0", NULL }, | |
45 | { "1", NULL }, | |
46 | { "2", NULL }, | |
47 | { "3", NULL }, | |
48 | { NULL, NULL}, | |
49 | }, | |
50 | "0", | |
51 | }, | |
52 | { | |
53 | "pcsx_rearmed_bios", | |
54 | "Use BIOS", | |
55 | "Allows you to use real bios file (if available) or emulated bios (HLE). Its recommended to use official bios file for better compatibility.", | |
56 | { | |
57 | { "auto", "auto" }, | |
58 | { "HLE", "hle" }, | |
59 | { NULL, NULL}, | |
60 | }, | |
61 | "auto", | |
62 | }, | |
63 | { | |
64 | "pcsx_rearmed_region", | |
65 | "Region", | |
66 | "Choose what region the system is from. 60 Hz for NTSC, 50 Hz for PAL.", | |
67 | { | |
68 | { "auto", "auto" }, | |
69 | { "NTSC", "ntsc" }, | |
70 | { "PAL", "pal" }, | |
71 | { NULL, NULL}, | |
72 | }, | |
73 | "auto", | |
74 | }, | |
75 | { | |
76 | "pcsx_rearmed_memcard2", | |
c8108d88 | 77 | "Enable Second Memory Card (Shared)", |
ef2683f1 | 78 | "Enabled the memory card slot 2. This memory card is shared amongst all games.", |
919cac88 | 79 | { |
80 | { "disable", NULL }, | |
81 | { "enabled", NULL }, | |
82 | { NULL, NULL}, | |
83 | }, | |
84 | "disable", | |
85 | }, | |
86 | { | |
87 | "pcsx_rearmed_pad1type", | |
88 | "Pad 1 Type", | |
89 | "Pad type for player 1", | |
90 | { | |
91 | { "standard", NULL }, | |
92 | { "analog", NULL }, | |
93 | { "dualshock", NULL }, | |
94 | { "negcon", NULL }, | |
95 | { "none", NULL }, | |
96 | { NULL, NULL}, | |
97 | }, | |
98 | "standard", | |
99 | }, | |
100 | { | |
101 | "pcsx_rearmed_pad2type", | |
102 | "Pad 2 Type", | |
103 | "Pad type for player 2", | |
104 | { | |
105 | { "standard", NULL }, | |
106 | { "analog", NULL }, | |
107 | { "dualshock", NULL }, | |
108 | { "negcon", NULL }, | |
109 | { "none", NULL }, | |
110 | { NULL, NULL}, | |
111 | }, | |
112 | "standard", | |
113 | }, | |
114 | { | |
115 | "pcsx_rearmed_pad3type", | |
116 | "Pad 3 Type", | |
117 | "Pad type for player 3", | |
118 | { | |
119 | { "standard", NULL }, | |
120 | { "analog", NULL }, | |
121 | { "dualshock", NULL }, | |
122 | { "negcon", NULL }, | |
123 | { "none", NULL }, | |
124 | { NULL, NULL}, | |
125 | }, | |
126 | "none", | |
127 | }, | |
128 | { | |
129 | "pcsx_rearmed_pad4type", | |
130 | "Pad 4 Type", | |
131 | "Pad type for player 4", | |
132 | { | |
133 | { "standard", NULL }, | |
134 | { "analog", NULL }, | |
135 | { "dualshock", NULL }, | |
136 | { "negcon", NULL }, | |
137 | { "none", NULL }, | |
138 | { NULL, NULL}, | |
139 | }, | |
140 | "none", | |
141 | }, | |
142 | { | |
143 | "pcsx_rearmed_pad5type", | |
144 | "Pad 5 Type", | |
145 | "Pad type for player 5", | |
146 | { | |
147 | { "standard", NULL }, | |
148 | { "analog", NULL }, | |
149 | { "dualshock", NULL }, | |
150 | { "negcon", NULL }, | |
151 | { "none", NULL }, | |
152 | { NULL, NULL}, | |
153 | }, | |
154 | "none", | |
155 | },{ | |
156 | "pcsx_rearmed_pad6type", | |
157 | "Pad 6 Type", | |
158 | "Pad type for player 6", | |
159 | { | |
160 | { "standard", NULL }, | |
161 | { "analog", NULL }, | |
162 | { "dualshock", NULL }, | |
163 | { "negcon", NULL }, | |
164 | { "none", NULL }, | |
165 | { NULL, NULL}, | |
166 | }, | |
167 | "none", | |
168 | },{ | |
169 | "pcsx_rearmed_pad7type", | |
170 | "Pad 7 Type", | |
171 | "Pad type for player 7", | |
172 | { | |
173 | { "standard", NULL }, | |
174 | { "analog", NULL }, | |
175 | { "dualshock", NULL }, | |
176 | { "negcon", NULL }, | |
177 | { "none", NULL }, | |
178 | { NULL, NULL}, | |
179 | }, | |
180 | "none", | |
181 | },{ | |
182 | "pcsx_rearmed_pad8type", | |
183 | "Pad 8 Type", | |
184 | "Pad type for player 8", | |
185 | { | |
186 | { "standard", NULL }, | |
187 | { "analog", NULL }, | |
188 | { "dualshock", NULL }, | |
189 | { "negcon", NULL }, | |
190 | { "none", NULL }, | |
191 | { NULL, NULL}, | |
192 | }, | |
193 | "none", | |
194 | }, | |
195 | { | |
196 | "pcsx_rearmed_multitap1", | |
197 | "Multitap 1", | |
198 | "Enables/Disables multitap on port 1, allowing upto 5 players in games that permit it.", | |
199 | { | |
200 | { "auto", NULL }, | |
201 | { "disabled", NULL }, | |
202 | { "enabled", NULL }, | |
203 | { NULL, NULL}, | |
204 | }, | |
205 | "auto", | |
206 | }, | |
207 | { | |
208 | "pcsx_rearmed_multitap2", | |
209 | "Multitap 2", | |
ef2683f1 | 210 | "Enables/Disables multitap on port 2, allowing up to 8 players in games that permit it. Multitap 1 has to be enabled for this to work.", |
919cac88 | 211 | { |
212 | { "auto", NULL }, | |
213 | { "disabled", NULL }, | |
214 | { "enabled", NULL }, | |
215 | { NULL, NULL}, | |
216 | }, | |
217 | "auto", | |
218 | }, | |
219 | { | |
220 | "pcsx_rearmed_negcon_deadzone", | |
c8108d88 | 221 | "NegCon Twist Deadzone (Percent)", |
919cac88 | 222 | "Sets the deadzone of the RetroPad left analog stick when simulating the 'twist' action of emulated neGcon Controllers. Used to eliminate drift/unwanted input.", |
223 | { | |
224 | { "0", NULL }, | |
225 | { "5", NULL }, | |
226 | { "10", NULL }, | |
227 | { "15", NULL }, | |
228 | { "20", NULL }, | |
229 | { "25", NULL }, | |
230 | { "30", NULL }, | |
231 | { NULL, NULL}, | |
232 | }, | |
233 | "0", | |
234 | }, | |
235 | { | |
236 | "pcsx_rearmed_negcon_response", | |
237 | "NegCon Twist Response", | |
238 | "Specifies the analog response when using a RetroPad left analog stick to simulate the 'twist' action of emulated neGcon Controllers.", | |
239 | { | |
240 | { "linear", NULL }, | |
241 | { "quadratic", NULL }, | |
242 | { "cubic", NULL }, | |
243 | { NULL, NULL}, | |
244 | }, | |
245 | "linear", | |
246 | }, | |
247 | { | |
248 | "pcsx_rearmed_vibration", | |
249 | "Enable Vibration", | |
c8108d88 | 250 | "Enables vibration feedback for controllers that supports vibration features.", |
919cac88 | 251 | { |
252 | { "disabled", NULL }, | |
253 | { "enabled", NULL }, | |
254 | { NULL, NULL}, | |
255 | }, | |
256 | "enabled", | |
257 | }, | |
258 | { | |
259 | "pcsx_rearmed_dithering", | |
260 | "Enable Dithering", | |
261 | "If Off, disables the dithering pattern the PSX applies to combat color banding.", | |
262 | { | |
263 | { "disabled", NULL }, | |
264 | { "enabled", NULL }, | |
265 | { NULL, NULL}, | |
266 | }, | |
267 | "enabled", | |
268 | }, | |
269 | ||
270 | #ifndef DRC_DISABLE | |
271 | { | |
272 | "pcsx_rearmed_drc", | |
c8108d88 | 273 | "Dynamic Recompiler", |
ef2683f1 | 274 | "Enables core to use dynamic recompiler or interpreter (slower) CPU instructions.", |
919cac88 | 275 | { |
276 | { "disabled", NULL }, | |
277 | { "enabled", NULL }, | |
278 | { NULL, NULL}, | |
279 | }, | |
280 | "enabled", | |
281 | }, | |
282 | { | |
283 | "pcsx_rearmed_psxclock", | |
c8108d88 | 284 | "PSX CPU Clock", |
919cac88 | 285 | PSX_CLOCK_LABEL, |
286 | { | |
287 | { "30", NULL }, | |
288 | { "31", NULL }, | |
289 | { "32", NULL }, | |
290 | { "33", NULL }, | |
291 | { "34", NULL }, | |
292 | { "35", NULL }, | |
293 | { "36", NULL }, | |
294 | { "37", NULL }, | |
295 | { "38", NULL }, | |
296 | { "39", NULL }, | |
297 | { "40", NULL }, | |
298 | { "41", NULL }, | |
299 | { "42", NULL }, | |
300 | { "43", NULL }, | |
301 | { "44", NULL }, | |
302 | { "45", NULL }, | |
303 | { "46", NULL }, | |
304 | { "47", NULL }, | |
305 | { "48", NULL }, | |
306 | { "49", NULL }, | |
307 | { "50", NULL }, | |
308 | { "51", NULL }, | |
309 | { "52", NULL }, | |
310 | { "53", NULL }, | |
311 | { "54", NULL }, | |
312 | { "55", NULL }, | |
313 | { "56", NULL }, | |
314 | { "57", NULL }, | |
315 | { "58", NULL }, | |
316 | { "59", NULL }, | |
317 | { "60", NULL }, | |
318 | { "61", NULL }, | |
319 | { "62", NULL }, | |
320 | { "63", NULL }, | |
321 | { "64", NULL }, | |
322 | { "65", NULL }, | |
323 | { "66", NULL }, | |
324 | { "67", NULL }, | |
325 | { "68", NULL }, | |
326 | { "69", NULL }, | |
327 | { "70", NULL }, | |
328 | { "71", NULL }, | |
329 | { "72", NULL }, | |
330 | { "73", NULL }, | |
331 | { "74", NULL }, | |
332 | { "75", NULL }, | |
333 | { "76", NULL }, | |
334 | { "77", NULL }, | |
335 | { "78", NULL }, | |
336 | { "79", NULL }, | |
337 | { "80", NULL }, | |
338 | { "81", NULL }, | |
339 | { "82", NULL }, | |
340 | { "83", NULL }, | |
341 | { "84", NULL }, | |
342 | { "85", NULL }, | |
343 | { "86", NULL }, | |
344 | { "87", NULL }, | |
345 | { "88", NULL }, | |
346 | { "89", NULL }, | |
347 | { "90", NULL }, | |
348 | { "91", NULL }, | |
349 | { "92", NULL }, | |
350 | { "93", NULL }, | |
351 | { "94", NULL }, | |
352 | { "95", NULL }, | |
353 | { "96", NULL }, | |
354 | { "97", NULL }, | |
355 | { "98", NULL }, | |
356 | { "99", NULL }, | |
357 | { "100", NULL }, | |
358 | { NULL, NULL}, | |
359 | }, | |
360 | PSX_CLOCK_DEFAULT, | |
361 | }, | |
362 | #endif /* DRC_DISABLE */ | |
363 | ||
364 | #ifdef __ARM_NEON__ | |
365 | { | |
366 | "pcsx_rearmed_neon_interlace_enable", | |
c8108d88 | 367 | "Enable Interlacing Mode", |
919cac88 | 368 | "Enables fake scanlines effect.", |
369 | { | |
370 | { "disabled", NULL }, | |
371 | { "enabled", NULL }, | |
372 | { NULL, NULL}, | |
373 | }, | |
374 | "disabled", | |
375 | }, | |
376 | { | |
377 | "pcsx_rearmed_neon_enhancement_enable", | |
c8108d88 | 378 | "Enhanced Resolution (Slow)", |
ef2683f1 | 379 | "Renders in double resolution at the cost of lower performance.", |
919cac88 | 380 | { |
381 | { "disabled", NULL }, | |
382 | { "enabled", NULL }, | |
383 | { NULL, NULL}, | |
384 | }, | |
385 | "disabled", | |
386 | }, | |
387 | { | |
388 | "pcsx_rearmed_neon_enhancement_no_main", | |
c8108d88 | 389 | "Enhanced Resolution (Speed Hack)", |
919cac88 | 390 | "Speed hack for Enhanced resolution option (glitches some games).", |
391 | { | |
392 | { "disabled", NULL }, | |
393 | { "enabled", NULL }, | |
394 | { NULL, NULL}, | |
395 | }, | |
396 | "disabled", | |
397 | }, | |
398 | #endif /* __ARM_NEON__ */ | |
399 | ||
400 | { | |
401 | "pcsx_rearmed_duping_enable", | |
c8108d88 | 402 | "Frame Duping", |
919cac88 | 403 | "A speedup, redraws/reuses the last frame if there was no new data.", |
404 | { | |
405 | { "disabled", NULL }, | |
406 | { "enabled", NULL }, | |
407 | { NULL, NULL}, | |
408 | }, | |
409 | "enabled", | |
410 | }, | |
411 | { | |
412 | "pcsx_rearmed_display_internal_fps", | |
413 | "Display Internal FPS", | |
414 | "Shows an on-screen frames per second counter when enabled.", | |
415 | { | |
416 | { "disabled", NULL }, | |
417 | { "enabled", NULL }, | |
418 | { NULL, NULL}, | |
419 | }, | |
420 | "disabled", | |
421 | }, | |
c8108d88 | 422 | |
423 | /* GPU PEOPS OPTIONS */ | |
2d17de26 | 424 | #ifdef GPU_PEOPS |
c8108d88 | 425 | { |
426 | "pcsx_rearmed_show_gpu_peops_settings", | |
2d17de26 | 427 | "Advanced GPU P.E.Op.S. Settings", |
428 | "Shows or hides advanced GPU plugin settings. NOTE: Quick Menu must be toggled for this setting to take effect.", | |
c8108d88 | 429 | { |
430 | { "disabled", NULL }, | |
431 | { "enabled", NULL }, | |
432 | { NULL, NULL}, | |
433 | }, | |
434 | "disabled", | |
435 | }, | |
436 | { | |
437 | "pcsx_rearmed_gpu_peops_fix_0", | |
438 | "(GPU) Odd/Even Bit Hack", | |
439 | "Needed for Chrono Cross.", | |
440 | { | |
441 | { "disabled", NULL }, | |
442 | { "enabled", NULL }, | |
443 | { NULL, NULL}, | |
444 | }, | |
445 | "disabled", | |
446 | }, | |
447 | { | |
448 | "pcsx_rearmed_gpu_peops_fix_1", | |
449 | "(GPU) Expand Screen Width", | |
450 | "Capcom fighting games", | |
451 | { | |
452 | { "disabled", NULL }, | |
453 | { "enabled", NULL }, | |
454 | { NULL, NULL}, | |
455 | }, | |
456 | "disabled", | |
457 | }, | |
458 | { | |
459 | "pcsx_rearmed_gpu_peops_fix_2", | |
460 | "(GPU) Ignore Brightness Color", | |
ef2683f1 | 461 | "Black screens in Lunar Silver Star Story games", |
c8108d88 | 462 | { |
463 | { "disabled", NULL }, | |
464 | { "enabled", NULL }, | |
465 | { NULL, NULL}, | |
466 | }, | |
467 | "disabled", | |
468 | }, | |
469 | { | |
470 | "pcsx_rearmed_gpu_peops_fix_3", | |
471 | "(GPU) Disable Coordinate Check", | |
472 | "Compatibility mode", | |
473 | { | |
474 | { "disabled", NULL }, | |
475 | { "enabled", NULL }, | |
476 | { NULL, NULL}, | |
477 | }, | |
478 | "disabled", | |
479 | }, | |
480 | { | |
481 | "pcsx_rearmed_gpu_peops_fix_6", | |
482 | "(GPU) Lazy Screen Update", | |
483 | "Pandemonium 2", | |
484 | { | |
485 | { "disabled", NULL }, | |
486 | { "enabled", NULL }, | |
487 | { NULL, NULL}, | |
488 | }, | |
489 | "disabled", | |
490 | }, | |
491 | { | |
492 | "pcsx_rearmed_gpu_peops_fix_7", | |
493 | "(GPU) Old Frame Skipping", | |
494 | "Skip every second frame", | |
495 | { | |
496 | { "disabled", NULL }, | |
497 | { "enabled", NULL }, | |
498 | { NULL, NULL}, | |
499 | }, | |
500 | "enabled", | |
501 | }, | |
502 | { | |
503 | "pcsx_rearmed_gpu_peops_fix_8", | |
504 | "(GPU) Repeated Flat Tex Triangles", | |
ef2683f1 | 505 | "Needed by Star Wars: Dark Forces", |
c8108d88 | 506 | { |
507 | { "disabled", NULL }, | |
508 | { "enabled", NULL }, | |
509 | { NULL, NULL}, | |
510 | }, | |
511 | "disabled", | |
512 | }, | |
513 | { | |
514 | "pcsx_rearmed_gpu_peops_fix_9", | |
515 | "(GPU) Draw Quads with Triangles", | |
516 | "Better g-colors, worse textures", | |
517 | { | |
518 | { "disabled", NULL }, | |
519 | { "enabled", NULL }, | |
520 | { NULL, NULL}, | |
521 | }, | |
522 | "disabled", | |
523 | }, | |
524 | { | |
525 | "pcsx_rearmed_gpu_peops_fix_10", | |
526 | "(GPU) Fake 'Gpu Busy' States", | |
527 | "Toggle busy flags after drawing", | |
528 | { | |
529 | { "disabled", NULL }, | |
530 | { "enabled", NULL }, | |
531 | { NULL, NULL}, | |
532 | }, | |
533 | "disabled", | |
534 | }, | |
535 | #endif | |
536 | ||
030d1121 | 537 | /* GPU UNAI Advanced Options */ |
538 | #ifdef GPU_UNAI | |
539 | { | |
540 | "pcsx_rearmed_show_gpu_unai_settings", | |
541 | "Advance GPU UNAI/PCSX4All Settings", | |
542 | "Shows or hides advanced gpu settings. A core restart might be needed for settings to take effect. NOTE: Quick Menu must be toggled for this setting to take effect.", | |
543 | { | |
544 | { "disabled", NULL }, | |
545 | { "enabled", NULL }, | |
546 | { NULL, NULL}, | |
547 | }, | |
548 | "disabled", | |
549 | }, | |
550 | { | |
551 | "pcsx_rearmed_gpu_unai_blending", | |
552 | "(GPU) Enable Blending", | |
553 | NULL, | |
554 | { | |
555 | { "disabled", NULL }, | |
556 | { "enabled", NULL }, | |
557 | { NULL, NULL}, | |
558 | }, | |
559 | "enabled", | |
560 | }, | |
561 | { | |
562 | "pcsx_rearmed_gpu_unai_lighting", | |
563 | "(GPU) Enable Lighting", | |
564 | NULL, | |
565 | { | |
566 | { "disabled", NULL }, | |
567 | { "enabled", NULL }, | |
568 | { NULL, NULL}, | |
569 | }, | |
570 | "enabled", | |
571 | }, | |
572 | { | |
573 | "pcsx_rearmed_gpu_unai_fast_lighting", | |
574 | "(GPU) Enable Fast Lighting", | |
575 | NULL, | |
576 | { | |
577 | { "disabled", NULL }, | |
578 | { "enabled", NULL }, | |
579 | { NULL, NULL}, | |
580 | }, | |
581 | "enabled", | |
582 | }, | |
583 | { | |
584 | "pcsx_rearmed_gpu_unai_ilace_force", | |
585 | "(GPU) Enable Forced Interlace", | |
586 | NULL, | |
587 | { | |
588 | { "disabled", NULL }, | |
589 | { "enabled", NULL }, | |
590 | { NULL, NULL}, | |
591 | }, | |
592 | "disabled", | |
593 | }, | |
594 | { | |
595 | "pcsx_rearmed_gpu_unai_pixel_skip", | |
596 | "(GPU) Enable Pixel Skip", | |
597 | NULL, | |
598 | { | |
599 | { "disabled", NULL }, | |
600 | { "enabled", NULL }, | |
601 | { NULL, NULL}, | |
602 | }, | |
603 | "disabled", | |
604 | }, | |
605 | #endif /* GPU UNAI Advanced Settings */ | |
606 | ||
919cac88 | 607 | { |
608 | "pcsx_rearmed_show_bios_bootlogo", | |
609 | "Show Bios Bootlogo", | |
ef2683f1 | 610 | "When enabled, shows the PlayStation logo when starting or resetting. (Breaks some games).", |
919cac88 | 611 | { |
612 | { "disabled", NULL }, | |
613 | { "enabled", NULL }, | |
614 | { NULL, NULL}, | |
615 | }, | |
616 | "disabled", | |
617 | }, | |
618 | { | |
619 | "pcsx_rearmed_spu_reverb", | |
620 | "Sound Reverb", | |
621 | "Enables or disables audio reverb effect.", | |
622 | { | |
623 | { "disabled", NULL }, | |
624 | { "enabled", NULL }, | |
625 | { NULL, NULL}, | |
626 | }, | |
627 | "enabled", | |
628 | }, | |
629 | { | |
630 | "pcsx_rearmed_spu_interpolation", | |
c8108d88 | 631 | "Sound Interpolation", |
919cac88 | 632 | NULL, |
633 | { | |
634 | { "simple", NULL }, | |
635 | { "gaussian", NULL }, | |
636 | { "cubic", NULL }, | |
637 | { "off", NULL }, | |
638 | { NULL, NULL}, | |
639 | }, | |
640 | "simple", | |
641 | }, | |
642 | { | |
643 | "pcsx_rearmed_idiablofix", | |
644 | "Diablo Music Fix", | |
645 | NULL, | |
646 | { | |
647 | { "disabled", NULL }, | |
648 | { "enabled", NULL }, | |
649 | { NULL, NULL}, | |
650 | }, | |
651 | "disabled", | |
652 | }, | |
653 | { | |
654 | "pcsx_rearmed_pe2_fix", | |
655 | "Parasite Eve 2/Vandal Hearts 1/2 Fix", | |
656 | NULL, | |
657 | { | |
658 | { "disabled", NULL }, | |
659 | { "enabled", NULL }, | |
660 | { NULL, NULL}, | |
661 | }, | |
662 | "disabled", | |
663 | }, | |
664 | { | |
665 | "pcsx_rearmed_inuyasha_fix", | |
666 | "InuYasha Sengoku Battle Fix", | |
667 | NULL, | |
668 | { | |
669 | { "disabled", NULL }, | |
670 | { "enabled", NULL }, | |
671 | { NULL, NULL}, | |
672 | }, | |
673 | "disabled", | |
674 | }, | |
675 | ||
676 | /* ADVANCED OPTIONS */ | |
677 | { | |
678 | "pcsx_rearmed_noxadecoding", | |
679 | "XA Decoding", | |
680 | NULL, | |
681 | { | |
682 | { "disabled", NULL }, | |
683 | { "enabled", NULL }, | |
684 | { NULL, NULL}, | |
685 | }, | |
686 | "enabled", | |
687 | }, | |
688 | { | |
689 | "pcsx_rearmed_nocdaudio", | |
690 | "CD Audio", | |
691 | NULL, | |
692 | { | |
693 | { "disabled", NULL }, | |
694 | { "enabled", NULL }, | |
695 | { NULL, NULL}, | |
696 | }, | |
697 | "enabled", | |
698 | }, | |
699 | ||
700 | #ifndef DRC_DISABLE | |
701 | { | |
702 | "pcsx_rearmed_nosmccheck", | |
703 | "(Speed Hack) Disable SMC Checks", | |
704 | "Will cause crashes when loading, break memcards.", | |
705 | { | |
706 | { "disabled", NULL }, | |
707 | { "enabled", NULL }, | |
708 | { NULL, NULL}, | |
709 | }, | |
710 | "disabled", | |
711 | }, | |
712 | { | |
713 | "pcsx_rearmed_gteregsunneeded", | |
714 | "(Speed Hack) Assume GTE Regs Unneeded", | |
715 | "May cause graphical glitches.", | |
716 | { | |
717 | { "disabled", NULL }, | |
718 | { "enabled", NULL }, | |
719 | { NULL, NULL}, | |
720 | }, | |
721 | "disabled", | |
722 | }, | |
723 | { | |
724 | "pcsx_rearmed_nogteflags", | |
725 | "(Speed Hack) Disable GTE Flags", | |
726 | "Will cause graphical glitches.", | |
727 | { | |
728 | { "disabled", NULL }, | |
729 | { "enabled", NULL }, | |
730 | { NULL, NULL}, | |
731 | }, | |
732 | "disabled", | |
733 | }, | |
734 | #endif /* DRC_DISABLE */ | |
735 | ||
0f288b5c | 736 | { NULL, NULL, NULL, { {0} }, NULL }, |
919cac88 | 737 | }; |
738 | ||
739 | /* RETRO_LANGUAGE_JAPANESE */ | |
740 | ||
741 | /* RETRO_LANGUAGE_FRENCH */ | |
742 | ||
743 | /* RETRO_LANGUAGE_SPANISH */ | |
744 | ||
745 | /* RETRO_LANGUAGE_GERMAN */ | |
746 | ||
747 | /* RETRO_LANGUAGE_ITALIAN */ | |
748 | ||
749 | /* RETRO_LANGUAGE_DUTCH */ | |
750 | ||
751 | /* RETRO_LANGUAGE_PORTUGUESE_BRAZIL */ | |
752 | ||
753 | /* RETRO_LANGUAGE_PORTUGUESE_PORTUGAL */ | |
754 | ||
755 | /* RETRO_LANGUAGE_RUSSIAN */ | |
756 | ||
757 | /* RETRO_LANGUAGE_KOREAN */ | |
758 | ||
759 | /* RETRO_LANGUAGE_CHINESE_TRADITIONAL */ | |
760 | ||
761 | /* RETRO_LANGUAGE_CHINESE_SIMPLIFIED */ | |
762 | ||
763 | /* RETRO_LANGUAGE_ESPERANTO */ | |
764 | ||
765 | /* RETRO_LANGUAGE_POLISH */ | |
766 | ||
767 | /* RETRO_LANGUAGE_VIETNAMESE */ | |
768 | ||
769 | /* RETRO_LANGUAGE_ARABIC */ | |
770 | ||
771 | /* RETRO_LANGUAGE_GREEK */ | |
772 | ||
773 | /* RETRO_LANGUAGE_TURKISH */ | |
774 | ||
38114665 ÖK |
775 | struct retro_core_option_definition option_defs_tr[] = { |
776 | { | |
777 | "pcsx_rearmed_frameskip", | |
778 | "Kare Atlama", | |
779 | "Görsel pürüzsüzlük pahasına performansı artırmak için ne kadar karenin atlanması gerektiğini seçin.", | |
780 | { | |
781 | { NULL, NULL }, | |
782 | }, | |
783 | NULL | |
784 | }, | |
785 | { | |
786 | "pcsx_rearmed_bios", | |
787 | "BIOS Kullan", | |
788 | "Gerçek bios dosyasını (varsa) veya öykünmüş bios'u (HLE) kullanmanızı sağlar. Daha iyi uyumluluk için resmi bios dosyasını kullanmanız önerilir.", | |
789 | { | |
790 | { "auto", "otomatik" }, | |
791 | { "HLE", "hle" }, | |
792 | { NULL, NULL}, | |
793 | }, | |
794 | "auto", | |
795 | }, | |
796 | { | |
797 | "pcsx_rearmed_region", | |
798 | "Bölge", | |
799 | "Sistemin hangi bölgeden olduğunu seçin. NTSC için 60 Hz, PAL için 50 Hz.", | |
800 | { | |
801 | { "auto", "otomatik" }, | |
802 | { "NTSC", "ntsc" }, | |
803 | { "PAL", "pal" }, | |
804 | { NULL, NULL}, | |
805 | }, | |
806 | "auto", | |
807 | }, | |
808 | { | |
809 | "pcsx_rearmed_memcard2", | |
810 | "İkinci Bellek Kartını Etkinleştir (Paylaşılan)", | |
811 | "2. Hafıza kartı yuvasını etkinleştirin. Bu hafıza kartı tüm oyunlar arasında paylaşılır.", | |
812 | { | |
813 | { NULL, NULL }, | |
814 | }, | |
815 | NULL | |
816 | }, | |
817 | { | |
818 | "pcsx_rearmed_pad1type", | |
819 | "Kumanda 1 Tipi", | |
820 | "1. Oyuncu için kontrolör tipi", | |
821 | { | |
822 | { "standard", NULL }, | |
823 | { "analog", NULL }, | |
824 | { "dualshock", NULL }, | |
825 | { "negcon", NULL }, | |
826 | { "none", "hiçbiri" }, | |
827 | { NULL, NULL}, | |
828 | }, | |
829 | "standard", | |
830 | }, | |
831 | { | |
832 | "pcsx_rearmed_pad2type", | |
833 | "Kumanda 2 Tipi", | |
834 | "2. Oyuncu için kontrolör tipi", | |
835 | { | |
836 | { "standard", NULL }, | |
837 | { "analog", NULL }, | |
838 | { "dualshock", NULL }, | |
839 | { "negcon", NULL }, | |
840 | { "none", "hiçbiri" }, | |
841 | { NULL, NULL}, | |
842 | }, | |
843 | "standard", | |
844 | }, | |
845 | { | |
846 | "pcsx_rearmed_pad3type", | |
847 | "Kumanda 3 Tipi", | |
848 | "3. Oyuncu için kontrolör tipi", | |
849 | { | |
850 | { "standard", NULL }, | |
851 | { "analog", NULL }, | |
852 | { "dualshock", NULL }, | |
853 | { "negcon", NULL }, | |
854 | { "none", "hiçbiri" }, | |
855 | { NULL, NULL}, | |
856 | }, | |
857 | "none", | |
858 | }, | |
859 | { | |
860 | "pcsx_rearmed_pad4type", | |
861 | "Kumanda 4 Tipi", | |
862 | "4. Oyuncu için kontrolör tipi", | |
863 | { | |
864 | { "standard", NULL }, | |
865 | { "analog", NULL }, | |
866 | { "dualshock", NULL }, | |
867 | { "negcon", NULL }, | |
868 | { "none", "hiçbiri" }, | |
869 | { NULL, NULL}, | |
870 | }, | |
871 | "none", | |
872 | }, | |
873 | { | |
874 | "pcsx_rearmed_pad5type", | |
875 | "Kumanda 5 Tipi", | |
876 | "5. Oyuncu için kontrolör tipi", | |
877 | { | |
878 | { "standard", NULL }, | |
879 | { "analog", NULL }, | |
880 | { "dualshock", NULL }, | |
881 | { "negcon", NULL }, | |
882 | { "none", "hiçbiri" }, | |
883 | { NULL, NULL}, | |
884 | }, | |
885 | "none", | |
886 | },{ | |
887 | "pcsx_rearmed_pad6type", | |
888 | "Kumanda 6 Tipi", | |
889 | "6. Oyuncu için kontrolör tipi", | |
890 | { | |
891 | { "standard", NULL }, | |
892 | { "analog", NULL }, | |
893 | { "dualshock", NULL }, | |
894 | { "negcon", NULL }, | |
895 | { "none", "hiçbiri" }, | |
896 | { NULL, NULL}, | |
897 | }, | |
898 | "none", | |
899 | },{ | |
900 | "pcsx_rearmed_pad7type", | |
901 | "Kumanda 7 Tipi", | |
902 | "7. Oyuncu için kontrolör tipi", | |
903 | { | |
904 | { "standard", NULL }, | |
905 | { "analog", NULL }, | |
906 | { "dualshock", NULL }, | |
907 | { "negcon", NULL }, | |
908 | { "none", "hiçbiri" }, | |
909 | { NULL, NULL}, | |
910 | }, | |
911 | "none", | |
912 | },{ | |
913 | "pcsx_rearmed_pad8type", | |
914 | "Kumanda 8 Tipi", | |
915 | "8. Oyuncu için kontrolör tipi", | |
916 | { | |
917 | { "standard", NULL }, | |
918 | { "analog", NULL }, | |
919 | { "dualshock", NULL }, | |
920 | { "negcon", NULL }, | |
921 | { "none", "hiçbiri" }, | |
922 | { NULL, NULL}, | |
923 | }, | |
924 | "none", | |
925 | }, | |
926 | { | |
927 | "pcsx_rearmed_multitap1", | |
928 | "Multitap 1", | |
929 | "Bağlantı noktası 1'deki multitap'ı etkinleştirir / devre dışı bırakır ve izin veren oyunlarda 5 oyuncuya kadar izin verir.", | |
930 | { | |
931 | { "auto", "otomatik" }, | |
932 | { "disabled", NULL }, | |
933 | { "enabled", NULL }, | |
934 | { NULL, NULL}, | |
935 | }, | |
936 | "auto", | |
937 | }, | |
938 | { | |
939 | "pcsx_rearmed_multitap2", | |
940 | "Multitap 2", | |
941 | "Bağlantı noktası 2'deki multitap'ı etkinleştirir/devre dışı bırakır ve izin veren oyunlarda 8 oyuncuya kadar izin verir. Bunun çalışması için Multitap 1'in etkinleştirilmesi gerekir.", | |
942 | { | |
943 | { "auto", "otomatik" }, | |
944 | { "disabled", NULL }, | |
945 | { "enabled", NULL }, | |
946 | { NULL, NULL}, | |
947 | }, | |
948 | "auto", | |
949 | }, | |
950 | { | |
951 | "pcsx_rearmed_negcon_deadzone", | |
952 | "NegCon Twist Deadzone (Yüzdelik)", | |
953 | "Öykünülmüş neGcon kontrolörünün 'büküm' eylemini simüle ederken RetroPad sol analog çubuğunun ölü bölgesini ayarlar. Sürüklenme/istenmeyen girişi ortadan kaldırmak için kullanılır.", | |
954 | { | |
955 | { NULL, NULL }, | |
956 | }, | |
957 | NULL | |
958 | }, | |
959 | { | |
960 | "pcsx_rearmed_negcon_response", | |
961 | "NegCon Twist Response", | |
962 | "Öykünülmüş neGcon kontrolörünün 'bükümünü' simule etmek için bir RetroPad sol analog çubuğu kullanırken analog cevabını belirtir.", | |
963 | { | |
964 | { NULL, NULL }, | |
965 | }, | |
966 | NULL | |
967 | }, | |
968 | { | |
969 | "pcsx_rearmed_vibration", | |
970 | "Titreşimi Etkinleştir", | |
971 | "Titreşim özelliklerini destekleyen kontrolörler için titreşim geri bildirimini etkinleştirir.", | |
972 | { | |
973 | { NULL, NULL }, | |
974 | }, | |
975 | NULL | |
976 | }, | |
977 | { | |
978 | "pcsx_rearmed_dithering", | |
979 | "Dithering Etkinleştir", | |
980 | "Kapalı ise, PSX'in renk bantlarıyla mücadele etmek için uyguladığı renk taklidi düzenini devre dışı bırakır.", | |
981 | { | |
982 | { NULL, NULL }, | |
983 | }, | |
984 | NULL | |
985 | }, | |
986 | ||
987 | #ifndef DRC_DISABLE | |
988 | { | |
989 | "pcsx_rearmed_drc", | |
990 | "Dinamik Yeniden Derleyici", | |
991 | "Çekirdeğin dinamik yeniden derleyici veya tercüman(daha yavaş) CPU talimatlarını kullanmasını sağlar.", | |
992 | { | |
993 | { NULL, NULL }, | |
994 | }, | |
995 | NULL | |
996 | }, | |
997 | { | |
998 | "pcsx_rearmed_psxclock", | |
999 | "PSX CPU Saat Hızı", | |
1000 | PSX_CLOCK_LABEL, | |
1001 | { | |
1002 | { NULL, NULL }, | |
1003 | }, | |
1004 | NULL | |
1005 | }, | |
1006 | #endif /* DRC_DISABLE */ | |
1007 | ||
1008 | #ifdef __ARM_NEON__ | |
1009 | { | |
1010 | "pcsx_rearmed_neon_interlace_enable", | |
1011 | "Interlacing Mode'u etkinleştir", | |
1012 | "Sahte tarama çizgileri efektini etkinleştirir.", | |
1013 | { | |
1014 | { NULL, NULL }, | |
1015 | }, | |
1016 | NULL | |
1017 | }, | |
1018 | { | |
1019 | "pcsx_rearmed_neon_enhancement_enable", | |
1020 | "Geliştirilmiş Çözünürlük (Yavaş)", | |
1021 | "Düşük performans pahasına çift çözünürlükte işler.", | |
1022 | { | |
1023 | { NULL, NULL }, | |
1024 | }, | |
1025 | NULL | |
1026 | }, | |
1027 | { | |
1028 | "pcsx_rearmed_neon_enhancement_no_main", | |
1029 | "Geliştirilmiş Çözünürlük (Speed Hack)", | |
1030 | "Geliştirilmiş çözünürlük seçeneği için hız aşırtma(bazı oyunlarda sorun çıkartabilir).", | |
1031 | { | |
1032 | { NULL, NULL }, | |
1033 | }, | |
1034 | NULL | |
1035 | }, | |
1036 | #endif /* __ARM_NEON__ */ | |
1037 | ||
1038 | { | |
1039 | "pcsx_rearmed_duping_enable", | |
1040 | "Frame Duping", | |
1041 | "Yeni bir veri yoksa, bir hızlandırma, son kareyi yeniden çizer/yeniden kullanır.", | |
1042 | { | |
1043 | { NULL, NULL }, | |
1044 | }, | |
1045 | NULL | |
1046 | }, | |
1047 | { | |
1048 | "pcsx_rearmed_display_internal_fps", | |
1049 | "Dahili FPS'yi görüntüle", | |
1050 | "Etkinleştirildiğinde ekranda saniye başına kareyi gösterir.", | |
1051 | { | |
1052 | { NULL, NULL }, | |
1053 | }, | |
1054 | NULL | |
1055 | }, | |
1056 | ||
1057 | /* GPU PEOPS OPTIONS */ | |
1058 | #ifdef DRC_DISABLE | |
1059 | { | |
1060 | "pcsx_rearmed_show_gpu_peops_settings", | |
1061 | "Gelişmiş GPU Ayarlarını Göster", | |
1062 | "Çeşitli GPU düzeltmelerini etkinleştirin veya devre dışı bırakın. Ayarların etkili olması için core'un yeniden başlatılması gerekebilir. NOT: Bu ayarın etkili olabilmesi için Hızlı Menü’nün değiştirilmesi gerekir.", | |
1063 | { | |
1064 | { NULL, NULL }, | |
1065 | }, | |
1066 | NULL | |
1067 | }, | |
1068 | { | |
1069 | "pcsx_rearmed_gpu_peops_fix_0", | |
1070 | "(GPU) Odd/Even Bit Hack", | |
1071 | "Chrono Cross için gerekli.", | |
1072 | { | |
1073 | { NULL, NULL }, | |
1074 | }, | |
1075 | NULL | |
1076 | }, | |
1077 | { | |
1078 | "pcsx_rearmed_gpu_peops_fix_1", | |
1079 | "(GPU) Ekran Genişliğini Genişlet", | |
1080 | "Capcom dövüş oyunları", | |
1081 | { | |
1082 | { NULL, NULL }, | |
1083 | }, | |
1084 | NULL | |
1085 | }, | |
1086 | { | |
1087 | "pcsx_rearmed_gpu_peops_fix_2", | |
1088 | "(GPU) Parlaklık Rengini Yoksay", | |
1089 | "Lunar Silver Star Story oyunlarında siyah ekran", | |
1090 | { | |
1091 | { NULL, NULL }, | |
1092 | }, | |
1093 | NULL | |
1094 | }, | |
1095 | { | |
1096 | "pcsx_rearmed_gpu_peops_fix_3", | |
1097 | "(GPU) Koordinat Kontrolünü Devre Dışı Bırak", | |
1098 | "Uyumluluk modu", | |
1099 | { | |
1100 | { NULL, NULL }, | |
1101 | }, | |
1102 | NULL | |
1103 | }, | |
1104 | { | |
1105 | "pcsx_rearmed_gpu_peops_fix_6", | |
1106 | "(GPU) Tembel Ekran Güncellemesi", | |
1107 | "Pandemonium 2", | |
1108 | { | |
1109 | { NULL, NULL }, | |
1110 | }, | |
1111 | NULL | |
1112 | }, | |
1113 | { | |
1114 | "pcsx_rearmed_gpu_peops_fix_7", | |
1115 | "(GPU) Eski Çerçeve Atlama", | |
1116 | "Her ikinci kareyi atla", | |
1117 | { | |
1118 | { NULL, NULL }, | |
1119 | }, | |
1120 | NULL | |
1121 | }, | |
1122 | { | |
1123 | "pcsx_rearmed_gpu_peops_fix_8", | |
1124 | "(GPU) Tekrarlanan Düz Doku Üçgenleri", | |
1125 | "Star Wars: Dark Forces için gerekli", | |
1126 | { | |
1127 | { NULL, NULL }, | |
1128 | }, | |
1129 | NULL | |
1130 | }, | |
1131 | { | |
1132 | "pcsx_rearmed_gpu_peops_fix_9", | |
1133 | "(GPU) Üçgenler ile Dörtlü Çiz", | |
1134 | "Daha iyi g renkler, daha kötü dokular", | |
1135 | { | |
1136 | { NULL, NULL }, | |
1137 | }, | |
1138 | NULL | |
1139 | }, | |
1140 | { | |
1141 | "pcsx_rearmed_gpu_peops_fix_10", | |
1142 | "(GPU) Sahte 'Gpu Meşgul' Konumları", | |
1143 | "Çizimden sonra meşgul bayraklarını değiştir", | |
1144 | { | |
1145 | { NULL, NULL }, | |
1146 | }, | |
1147 | NULL | |
1148 | }, | |
1149 | #endif | |
1150 | ||
1151 | { | |
1152 | "pcsx_rearmed_show_bios_bootlogo", | |
1153 | "Bios Bootlogo'yu Göster", | |
1154 | "Etkinleştirildiğinde, başlatırken veya sıfırlarken PlayStation logosunu gösterir. (Bazı oyunları bozabilir).", | |
1155 | { | |
1156 | { NULL, NULL }, | |
1157 | }, | |
1158 | NULL | |
1159 | }, | |
1160 | { | |
1161 | "pcsx_rearmed_spu_reverb", | |
1162 | "Ses Yankısı", | |
1163 | "Ses yankı efektini etkinleştirir veya devre dışı bırakır.", | |
1164 | { | |
1165 | { NULL, NULL }, | |
1166 | }, | |
1167 | NULL | |
1168 | }, | |
1169 | { | |
1170 | "pcsx_rearmed_spu_interpolation", | |
1171 | "Ses Enterpolasyonu", | |
1172 | NULL, | |
1173 | { | |
1174 | { NULL, NULL }, | |
1175 | }, | |
1176 | NULL | |
1177 | }, | |
1178 | { | |
1179 | "pcsx_rearmed_idiablofix", | |
1180 | "Diablo Müzik Düzeltmesi", | |
1181 | NULL, | |
1182 | { | |
1183 | { NULL, NULL }, | |
1184 | }, | |
1185 | NULL | |
1186 | }, | |
1187 | { | |
1188 | "pcsx_rearmed_pe2_fix", | |
1189 | "Parasite Eve 2/Vandal Hearts 1/2 Düzeltmleri", | |
1190 | NULL, | |
1191 | { | |
1192 | { NULL, NULL }, | |
1193 | }, | |
1194 | NULL | |
1195 | }, | |
1196 | { | |
1197 | "pcsx_rearmed_inuyasha_fix", | |
1198 | "InuYasha Sengoku Battle Düzeltmesi", | |
1199 | NULL, | |
1200 | { | |
1201 | { NULL, NULL }, | |
1202 | }, | |
1203 | NULL | |
1204 | }, | |
1205 | ||
1206 | /* ADVANCED OPTIONS */ | |
1207 | { | |
1208 | "pcsx_rearmed_noxadecoding", | |
1209 | "XA Kod Çözme", | |
1210 | NULL, | |
1211 | { | |
1212 | { NULL, NULL }, | |
1213 | }, | |
1214 | NULL | |
1215 | }, | |
1216 | { | |
1217 | "pcsx_rearmed_nocdaudio", | |
1218 | "CD Ses", | |
1219 | NULL, | |
1220 | { | |
1221 | { NULL, NULL }, | |
1222 | }, | |
1223 | NULL | |
1224 | }, | |
1225 | ||
1226 | #ifndef DRC_DISABLE | |
1227 | { | |
1228 | "pcsx_rearmed_nosmccheck", | |
1229 | "(Speed Hack) SMC Kontrollerini Devre Dışı Bırak", | |
1230 | "Yükleme sırasında çökmelere neden olabilir, hafıza kartını bozabilir.", | |
1231 | { | |
1232 | { NULL, NULL }, | |
1233 | }, | |
1234 | NULL | |
1235 | }, | |
1236 | { | |
1237 | "pcsx_rearmed_gteregsunneeded", | |
1238 | "(Speed Hack) GTE'nin Gereksiz Olduğunu Varsayın", | |
1239 | "Grafiksel bozukluklara neden olabilir.", | |
1240 | { | |
1241 | { NULL, NULL }, | |
1242 | }, | |
1243 | NULL | |
1244 | }, | |
1245 | { | |
1246 | "pcsx_rearmed_nogteflags", | |
1247 | "(Speed Hack) GTE Bayraklarını Devredışı Bırakın", | |
1248 | "Grafiksel bozukluklara neden olur.", | |
1249 | { | |
1250 | { NULL, NULL }, | |
1251 | }, | |
1252 | NULL | |
1253 | }, | |
1254 | #endif /* DRC_DISABLE */ | |
1255 | ||
0f288b5c | 1256 | { NULL, NULL, NULL, { {0} }, NULL }, |
38114665 ÖK |
1257 | }; |
1258 | ||
1259 | ||
919cac88 | 1260 | /* |
1261 | ******************************** | |
1262 | * Language Mapping | |
1263 | ******************************** | |
1264 | */ | |
1265 | ||
1266 | struct retro_core_option_definition *option_defs_intl[RETRO_LANGUAGE_LAST] = { | |
1267 | option_defs_us, /* RETRO_LANGUAGE_ENGLISH */ | |
1268 | NULL, /* RETRO_LANGUAGE_JAPANESE */ | |
1269 | NULL, /* RETRO_LANGUAGE_FRENCH */ | |
1270 | NULL, /* RETRO_LANGUAGE_SPANISH */ | |
1271 | NULL, /* RETRO_LANGUAGE_GERMAN */ | |
1272 | NULL, /* RETRO_LANGUAGE_ITALIAN */ | |
1273 | NULL, /* RETRO_LANGUAGE_DUTCH */ | |
1274 | NULL, /* RETRO_LANGUAGE_PORTUGUESE_BRAZIL */ | |
1275 | NULL, /* RETRO_LANGUAGE_PORTUGUESE_PORTUGAL */ | |
1276 | NULL, /* RETRO_LANGUAGE_RUSSIAN */ | |
1277 | NULL, /* RETRO_LANGUAGE_KOREAN */ | |
1278 | NULL, /* RETRO_LANGUAGE_CHINESE_TRADITIONAL */ | |
1279 | NULL, /* RETRO_LANGUAGE_CHINESE_SIMPLIFIED */ | |
1280 | NULL, /* RETRO_LANGUAGE_ESPERANTO */ | |
1281 | NULL, /* RETRO_LANGUAGE_POLISH */ | |
1282 | NULL, /* RETRO_LANGUAGE_VIETNAMESE */ | |
1283 | NULL, /* RETRO_LANGUAGE_ARABIC */ | |
1284 | NULL, /* RETRO_LANGUAGE_GREEK */ | |
859eae77 | 1285 | option_defs_tr, /* RETRO_LANGUAGE_TURKISH */ |
919cac88 | 1286 | }; |
1287 | ||
1288 | /* | |
1289 | ******************************** | |
1290 | * Functions | |
1291 | ******************************** | |
1292 | */ | |
1293 | ||
1294 | /* Handles configuration/setting of core options. | |
1295 | * Should only be called inside retro_set_environment(). | |
1296 | * > We place the function body in the header to avoid the | |
1297 | * necessity of adding more .c files (i.e. want this to | |
1298 | * be as painless as possible for core devs) | |
1299 | */ | |
1300 | ||
1301 | static INLINE void libretro_set_core_options(retro_environment_t environ_cb) | |
1302 | { | |
1303 | unsigned version = 0; | |
1304 | ||
1305 | if (!environ_cb) | |
1306 | return; | |
1307 | ||
1308 | if (environ_cb(RETRO_ENVIRONMENT_GET_CORE_OPTIONS_VERSION, &version) && (version == 1)) | |
1309 | { | |
1310 | struct retro_core_options_intl core_options_intl; | |
1311 | unsigned language = 0; | |
1312 | ||
1313 | core_options_intl.us = option_defs_us; | |
1314 | core_options_intl.local = NULL; | |
1315 | ||
1316 | if (environ_cb(RETRO_ENVIRONMENT_GET_LANGUAGE, &language) && | |
1317 | (language < RETRO_LANGUAGE_LAST) && (language != RETRO_LANGUAGE_ENGLISH)) | |
1318 | core_options_intl.local = option_defs_intl[language]; | |
1319 | ||
1320 | environ_cb(RETRO_ENVIRONMENT_SET_CORE_OPTIONS_INTL, &core_options_intl); | |
1321 | } | |
1322 | else | |
1323 | { | |
1324 | size_t i; | |
1325 | size_t option_index = 0; | |
1326 | size_t num_options = 0; | |
1327 | struct retro_variable *variables = NULL; | |
1328 | char **values_buf = NULL; | |
1329 | ||
1330 | /* Determine number of options | |
1331 | * > Note: We are going to skip a number of irrelevant | |
1332 | * core options when building the retro_variable array, | |
1333 | * but we'll allocate space for all of them. The difference | |
1334 | * in resource usage is negligible, and this allows us to | |
1335 | * keep the code 'cleaner' */ | |
1336 | while (true) | |
1337 | { | |
1338 | if (option_defs_us[num_options].key) | |
1339 | num_options++; | |
1340 | else | |
1341 | break; | |
1342 | } | |
1343 | ||
1344 | /* Allocate arrays */ | |
1345 | variables = (struct retro_variable *)calloc(num_options + 1, sizeof(struct retro_variable)); | |
1346 | values_buf = (char **)calloc(num_options, sizeof(char *)); | |
1347 | ||
1348 | if (!variables || !values_buf) | |
1349 | goto error; | |
1350 | ||
1351 | /* Copy parameters from option_defs_us array */ | |
1352 | for (i = 0; i < num_options; i++) | |
1353 | { | |
1354 | const char *key = option_defs_us[i].key; | |
1355 | const char *desc = option_defs_us[i].desc; | |
1356 | const char *default_value = option_defs_us[i].default_value; | |
1357 | struct retro_core_option_value *values = option_defs_us[i].values; | |
1358 | size_t buf_len = 3; | |
1359 | size_t default_index = 0; | |
1360 | ||
1361 | values_buf[i] = NULL; | |
1362 | ||
1363 | /* Skip options that are irrelevant when using the | |
1364 | * old style core options interface */ | |
c8108d88 | 1365 | if ((strcmp(key, "pcsx_rearmed_show_gpu_peops_settings") == 0)) |
919cac88 | 1366 | continue; |
1367 | ||
1368 | if (desc) | |
1369 | { | |
1370 | size_t num_values = 0; | |
1371 | ||
1372 | /* Determine number of values */ | |
1373 | while (true) | |
1374 | { | |
1375 | if (values[num_values].value) | |
1376 | { | |
1377 | /* Check if this is the default value */ | |
1378 | if (default_value) | |
1379 | if (strcmp(values[num_values].value, default_value) == 0) | |
1380 | default_index = num_values; | |
1381 | ||
1382 | buf_len += strlen(values[num_values].value); | |
1383 | num_values++; | |
1384 | } | |
1385 | else | |
1386 | break; | |
1387 | } | |
1388 | ||
1389 | /* Build values string */ | |
1390 | if (num_values > 1) | |
1391 | { | |
1392 | size_t j; | |
1393 | ||
1394 | buf_len += num_values - 1; | |
1395 | buf_len += strlen(desc); | |
1396 | ||
1397 | values_buf[i] = (char *)calloc(buf_len, sizeof(char)); | |
1398 | if (!values_buf[i]) | |
1399 | goto error; | |
1400 | ||
1401 | strcpy(values_buf[i], desc); | |
1402 | strcat(values_buf[i], "; "); | |
1403 | ||
1404 | /* Default value goes first */ | |
1405 | strcat(values_buf[i], values[default_index].value); | |
1406 | ||
1407 | /* Add remaining values */ | |
1408 | for (j = 0; j < num_values; j++) | |
1409 | { | |
1410 | if (j != default_index) | |
1411 | { | |
1412 | strcat(values_buf[i], "|"); | |
1413 | strcat(values_buf[i], values[j].value); | |
1414 | } | |
1415 | } | |
1416 | } | |
1417 | } | |
1418 | ||
1419 | variables[option_index].key = key; | |
1420 | variables[option_index].value = values_buf[i]; | |
1421 | option_index++; | |
1422 | } | |
1423 | ||
1424 | /* Set variables */ | |
1425 | environ_cb(RETRO_ENVIRONMENT_SET_VARIABLES, variables); | |
1426 | ||
1427 | error: | |
1428 | ||
1429 | /* Clean up */ | |
1430 | if (values_buf) | |
1431 | { | |
1432 | for (i = 0; i < num_options; i++) | |
1433 | { | |
1434 | if (values_buf[i]) | |
1435 | { | |
1436 | free(values_buf[i]); | |
1437 | values_buf[i] = NULL; | |
1438 | } | |
1439 | } | |
1440 | ||
1441 | free(values_buf); | |
1442 | values_buf = NULL; | |
1443 | } | |
1444 | ||
1445 | if (variables) | |
1446 | { | |
1447 | free(variables); | |
1448 | variables = NULL; | |
1449 | } | |
1450 | } | |
1451 | } | |
1452 | ||
1453 | #ifdef __cplusplus | |
1454 | } | |
1455 | #endif | |
1456 | ||
1457 | #endif |