2021-07-05 17:44:08 +00:00
/*
This file is part of Flycast .
Flycast is free software : you can redistribute it and / or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation , either version 2 of the License , or
( at your option ) any later version .
Flycast is distributed in the hope that it will be useful ,
but WITHOUT ANY WARRANTY ; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
GNU General Public License for more details .
You should have received a copy of the GNU General Public License
along with Flycast . If not , see < https : //www.gnu.org/licenses/>.
*/
# ifndef LIBRETRO_CORE_OPTIONS_H__
# define LIBRETRO_CORE_OPTIONS_H__
# include <stdlib.h>
# include <string.h>
# include <libretro.h>
# include <retro_inline.h>
# include "libretro_core_option_defines.h"
# ifndef HAVE_NO_LANGEXTRA
# include "libretro_core_options_intl.h"
# endif
/*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
2021-12-01 17:46:03 +00:00
* VERSION : 2.0
2021-07-05 17:44:08 +00:00
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
2021-12-01 17:46:03 +00:00
* - 2.0 : Add support for core options v2 interface
2021-07-05 17:44:08 +00:00
* - 1.3 : Move translations to libretro_core_options_intl . h
* - libretro_core_options_intl . h includes BOM and utf - 8
* fix for MSVC 2010 - 2013
* - Added HAVE_NO_LANGEXTRA flag to disable translations
* on platforms / compilers without BOM support
* - 1.2 : Use core options v1 interface when
* RETRO_ENVIRONMENT_GET_CORE_OPTIONS_VERSION is > = 1
* ( previously required RETRO_ENVIRONMENT_GET_CORE_OPTIONS_VERSION = = 1 )
* - 1.1 : Support generation of core options v0 retro_core_option_value
* arrays containing options with a single value
* - 1.0 : First commit
*/
# ifdef __cplusplus
extern " C " {
# endif
/*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Core Option Definitions
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*/
/* RETRO_LANGUAGE_ENGLISH */
/* Default language:
* - All other languages must include the same keys and values
* - Will be used as a fallback in the event that frontend language
* is not available
* - Will be used as a fallback for any missing entries in
* frontend language definition */
2021-12-01 17:46:03 +00:00
struct retro_core_option_v2_category option_cats_us [ ] = {
{
" video " ,
" Video " ,
2021-12-05 10:52:14 +00:00
" Change visual buffers & effects, display parameters, framerate/-skip and rendering/texture settings. "
2021-12-01 17:46:03 +00:00
} ,
{
" input " ,
" Input " ,
2021-12-05 10:52:14 +00:00
" Change controller & light gun settings. "
2021-12-01 17:46:03 +00:00
} ,
{
" vmu " ,
" Visual Memory " ,
2021-12-05 10:52:14 +00:00
" Change settings related to the Visual Memory Units/Systems (VMU). "
2021-12-01 17:46:03 +00:00
} ,
{
" hacks " ,
" Emulation Hacks " ,
2021-12-05 10:52:14 +00:00
" Change different emulation hacks. "
2021-12-01 17:46:03 +00:00
} ,
{ NULL , NULL , NULL } ,
} ;
struct retro_core_option_v2_definition option_defs_us [ ] = {
2021-07-05 17:44:08 +00:00
{
CORE_OPTION_NAME " _boot_to_bios " ,
2021-12-01 17:46:03 +00:00
" Boot to BIOS (Restart Required) " ,
NULL ,
2021-07-05 17:44:08 +00:00
" Boot directly into the Dreamcast BIOS menu. " ,
2021-12-01 17:46:03 +00:00
NULL ,
NULL ,
2021-07-05 17:44:08 +00:00
{
{ " disabled " , NULL } ,
{ " enabled " , NULL } ,
{ NULL , NULL } ,
} ,
" disabled " ,
} ,
{
CORE_OPTION_NAME " _hle_bios " ,
" HLE BIOS " ,
2021-12-01 17:46:03 +00:00
NULL ,
2021-07-05 17:44:08 +00:00
" Force use of high-level emulation BIOS. " ,
2021-12-01 17:46:03 +00:00
NULL ,
NULL ,
2021-07-05 17:44:08 +00:00
{
{ " disabled " , NULL } ,
{ " enabled " , NULL } ,
{ NULL , NULL } ,
} ,
" disabled " ,
} ,
# if defined(HAVE_OIT) || defined(HAVE_VULKAN)
{
CORE_OPTION_NAME " _oit_abuffer_size " ,
2021-12-01 17:46:03 +00:00
" Accumulation Pixel Buffer Size (Restart Required) " ,
NULL ,
" Higher values might be required for higher resolutions to output correctly. " ,
NULL ,
" video " ,
2021-07-05 17:44:08 +00:00
{
{ " 512MB " , NULL } ,
{ " 1GB " , NULL } ,
{ " 2GB " , NULL } ,
{ " 4GB " , NULL } ,
{ NULL , NULL } ,
} ,
" 512MB " ,
} ,
# endif
{
CORE_OPTION_NAME " _internal_resolution " ,
2021-07-12 07:57:58 +00:00
" Internal Resolution " ,
2021-12-01 17:46:03 +00:00
NULL ,
2021-07-12 07:57:58 +00:00
" Modify rendering resolution. " ,
2021-12-01 17:46:03 +00:00
NULL ,
" video " ,
2021-07-05 17:44:08 +00:00
{
{ " 320x240 " , NULL } ,
{ " 640x480 " , NULL } ,
{ " 800x600 " , NULL } ,
{ " 960x720 " , NULL } ,
{ " 1024x768 " , NULL } ,
{ " 1280x960 " , NULL } ,
{ " 1440x1080 " , NULL } ,
{ " 1600x1200 " , NULL } ,
{ " 1920x1440 " , NULL } ,
{ " 2560x1920 " , NULL } ,
{ " 2880x2160 " , NULL } ,
{ " 3200x2400 " , NULL } ,
{ " 3840x2880 " , NULL } ,
{ " 4480x3360 " , NULL } ,
{ " 5120x3840 " , NULL } ,
{ " 5760x4320 " , NULL } ,
{ " 6400x4800 " , NULL } ,
{ " 7040x5280 " , NULL } ,
{ " 7680x5760 " , NULL } ,
{ " 8320x6240 " , NULL } ,
{ " 8960x6720 " , NULL } ,
{ " 9600x7200 " , NULL } ,
{ " 10240x7680 " , NULL } ,
{ " 10880x8160 " , NULL } ,
{ " 11520x8640 " , NULL } ,
{ " 12160x9120 " , NULL } ,
{ " 12800x9600 " , NULL } ,
{ NULL , NULL } ,
} ,
# ifdef LOW_RES
" 320x240 " ,
# else
" 640x480 " ,
# endif
} ,
{
CORE_OPTION_NAME " _screen_rotation " ,
" Screen Orientation " ,
2021-12-01 17:46:03 +00:00
NULL ,
2021-07-05 17:44:08 +00:00
" " ,
2021-12-01 17:46:03 +00:00
NULL ,
" video " ,
2021-07-05 17:44:08 +00:00
{
{ " horizontal " , " Horizontal " } ,
{ " vertical " , " Vertical " } ,
{ NULL , NULL } ,
} ,
" horizontal " ,
} ,
2021-12-01 17:46:03 +00:00
{ /* TODO: needs explanation */
2021-07-05 17:44:08 +00:00
CORE_OPTION_NAME " _alpha_sorting " ,
" Alpha Sorting " ,
2021-12-01 17:46:03 +00:00
NULL ,
2021-07-05 17:44:08 +00:00
" " ,
2021-12-01 17:46:03 +00:00
NULL ,
NULL ,
2021-07-05 17:44:08 +00:00
{
{ " per-strip (fast, least accurate) " , " Per-Strip (fast, least accurate) " } ,
{ " per-triangle (normal) " , " Per-Triangle (normal) " } ,
# if defined(HAVE_OIT) || defined(HAVE_VULKAN)
{ " per-pixel (accurate) " , " Per-Pixel (accurate, but slowest) " } ,
# endif
{ NULL , NULL } ,
} ,
# if defined(LOW_END)
" per-strip (fast, least accurate) " ,
# else
" per-triangle (normal) " ,
# endif
} ,
{
CORE_OPTION_NAME " _gdrom_fast_loading " ,
2021-12-01 17:46:03 +00:00
" GD-ROM Fast Loading (inaccurate) " ,
NULL ,
2021-07-05 17:44:08 +00:00
" Speeds up GD-ROM loading. " ,
2021-12-01 17:46:03 +00:00
NULL ,
NULL ,
2021-07-05 17:44:08 +00:00
{
{ " disabled " , NULL } ,
{ " enabled " , NULL } ,
{ NULL , NULL } ,
} ,
# ifdef LOW_END
" enabled " ,
# else
" disabled " ,
# endif
} ,
2021-12-01 17:46:03 +00:00
{ /* TODO: needs explanation */
2021-07-05 17:44:08 +00:00
CORE_OPTION_NAME " _mipmapping " ,
" Mipmapping " ,
2021-12-01 17:46:03 +00:00
NULL ,
2021-07-05 17:44:08 +00:00
" " ,
2021-12-01 17:46:03 +00:00
NULL ,
" video " ,
2021-07-05 17:44:08 +00:00
{
{ " disabled " , NULL } ,
{ " enabled " , NULL } ,
{ NULL , NULL } ,
} ,
" enabled " ,
} ,
{
CORE_OPTION_NAME " _fog " ,
" Fog Effects " ,
2021-12-01 17:46:03 +00:00
NULL ,
2021-07-05 17:44:08 +00:00
" " ,
2021-12-01 17:46:03 +00:00
NULL ,
" video " ,
2021-07-05 17:44:08 +00:00
{
{ " disabled " , NULL } ,
{ " enabled " , NULL } ,
{ NULL , NULL } ,
} ,
" enabled " ,
} ,
{
CORE_OPTION_NAME " _volume_modifier_enable " ,
" Volume Modifier " ,
2021-12-01 17:46:03 +00:00
NULL ,
2021-07-05 17:44:08 +00:00
" A Dreamcast GPU feature that is typically used by games to draw object shadows. This should normally be enabled - the performance impact is usually minimal to negligible. " ,
2021-12-01 17:46:03 +00:00
NULL ,
" video " ,
2021-07-05 17:44:08 +00:00
{
{ " disabled " , NULL } ,
{ " enabled " , NULL } ,
{ NULL , NULL } ,
} ,
" enabled " ,
} ,
{
CORE_OPTION_NAME " _widescreen_hack " ,
2021-07-12 07:57:58 +00:00
" Widescreen Hack " ,
2021-12-01 17:46:03 +00:00
NULL ,
2021-12-05 10:52:14 +00:00
" Draw geometry outside of the normal 4:3 aspect ratio. May produce graphical glitches in the revealed areas. " ,
2021-12-01 17:46:03 +00:00
NULL ,
" hacks " ,
2021-07-05 17:44:08 +00:00
{
{ " disabled " , NULL } ,
{ " enabled " , NULL } ,
{ NULL , NULL } ,
} ,
" disabled " ,
} ,
{
CORE_OPTION_NAME " _widescreen_cheats " ,
2021-12-01 17:46:03 +00:00
" Widescreen Cheats (Restart Required) " ,
NULL ,
2021-07-05 17:44:08 +00:00
" Activates cheats that allow certain games to display in widescreen format. " ,
2021-12-01 17:46:03 +00:00
NULL ,
" hacks " ,
2021-07-05 17:44:08 +00:00
{
{ " disabled " , NULL } ,
{ " enabled " , NULL } ,
{ NULL , NULL } ,
} ,
" disabled " ,
} ,
{
CORE_OPTION_NAME " _cable_type " ,
" Cable Type " ,
2021-12-01 17:46:03 +00:00
NULL ,
" The output signal type. 'TV (Composite)' is the most widely supported. " ,
NULL ,
" video " ,
2021-07-05 17:44:08 +00:00
{
{ " VGA " , NULL } ,
{ " TV (RGB) " , NULL } ,
{ " TV (Composite) " , NULL } ,
{ NULL , NULL } ,
} ,
" TV (Composite) " ,
} ,
{
CORE_OPTION_NAME " _broadcast " ,
2021-12-01 17:46:03 +00:00
" Broadcast Standard " ,
NULL ,
2021-07-05 17:44:08 +00:00
" " ,
2021-12-01 17:46:03 +00:00
NULL ,
" video " ,
2021-07-05 17:44:08 +00:00
{
{ " NTSC " , NULL } ,
{ " PAL " , " PAL (World) " } ,
{ " PAL_N " , " PAL-N (Argentina, Paraguay, Uruguay) " } ,
{ " PAL_M " , " PAL-M (Brazil) " } ,
{ " Default " , NULL } ,
{ NULL , NULL } ,
} ,
" NTSC " ,
} ,
{
CORE_OPTION_NAME " _region " ,
" Region " ,
2021-12-01 17:46:03 +00:00
NULL ,
2021-07-05 17:44:08 +00:00
" " ,
2021-12-01 17:46:03 +00:00
NULL ,
NULL ,
2021-07-05 17:44:08 +00:00
{
{ " Japan " , NULL } ,
{ " USA " , NULL } ,
{ " Europe " , NULL } ,
{ " Default " , NULL } ,
{ NULL , NULL } ,
} ,
" Default " ,
} ,
{
CORE_OPTION_NAME " _language " ,
" Language " ,
2021-12-01 17:46:03 +00:00
NULL ,
2021-12-05 10:52:14 +00:00
" Changes the language used by the BIOS and by any games that contain multiple languages. " ,
2021-12-01 17:46:03 +00:00
NULL ,
NULL ,
2021-07-05 17:44:08 +00:00
{
{ " Japanese " , NULL } ,
{ " English " , NULL } ,
{ " German " , NULL } ,
{ " French " , NULL } ,
{ " Spanish " , NULL } ,
{ " Italian " , NULL } ,
{ " Default " , NULL } ,
{ NULL , NULL } ,
} ,
" Default " ,
} ,
{
CORE_OPTION_NAME " _force_wince " ,
" Force Windows CE Mode " ,
2021-12-01 17:46:03 +00:00
NULL ,
" Enable full MMU (Memory Management Unit) emulation and other settings for Windows CE games. " ,
NULL ,
NULL ,
2021-07-05 17:44:08 +00:00
{
{ " disabled " , NULL } ,
{ " enabled " , NULL } ,
{ NULL , NULL } ,
} ,
" disabled " ,
} ,
{
CORE_OPTION_NAME " _analog_stick_deadzone " ,
" Analog Stick Deadzone " ,
2021-12-01 17:46:03 +00:00
NULL ,
2021-07-05 17:44:08 +00:00
" " ,
2021-12-01 17:46:03 +00:00
NULL ,
" input " ,
2021-07-05 17:44:08 +00:00
{
{ " 0% " , NULL } ,
{ " 5% " , NULL } ,
{ " 10% " , NULL } ,
{ " 15% " , NULL } ,
{ " 20% " , NULL } ,
{ " 25% " , NULL } ,
{ " 30% " , NULL } ,
{ NULL , NULL } ,
} ,
" 15% " ,
} ,
{
CORE_OPTION_NAME " _trigger_deadzone " ,
" Trigger Deadzone " ,
2021-12-01 17:46:03 +00:00
NULL ,
2021-07-05 17:44:08 +00:00
" " ,
2021-12-01 17:46:03 +00:00
NULL ,
" input " ,
2021-07-05 17:44:08 +00:00
{
{ " 0% " , NULL } ,
{ " 5% " , NULL } ,
{ " 10% " , NULL } ,
{ " 15% " , NULL } ,
{ " 20% " , NULL } ,
{ " 25% " , NULL } ,
{ " 30% " , NULL } ,
{ NULL , NULL } ,
} ,
" 0% " ,
} ,
{
CORE_OPTION_NAME " _digital_triggers " ,
" Digital Triggers " ,
2021-12-01 17:46:03 +00:00
NULL ,
2021-07-05 17:44:08 +00:00
" " ,
2021-12-01 17:46:03 +00:00
NULL ,
" input " ,
2021-07-05 17:44:08 +00:00
{
{ " disabled " , NULL } ,
{ " enabled " , NULL } ,
{ NULL , NULL } ,
} ,
" disabled " ,
} ,
{
CORE_OPTION_NAME " _enable_dsp " ,
" Enable DSP " ,
2021-12-01 17:46:03 +00:00
NULL ,
2021-07-05 17:44:08 +00:00
" Enable emulation of the Dreamcast's audio DSP (digital signal processor). Improves the accuracy of generated sound, but increases performance requirements. " ,
2021-12-01 17:46:03 +00:00
NULL ,
NULL ,
2021-07-05 17:44:08 +00:00
{
{ " disabled " , NULL } ,
{ " enabled " , NULL } ,
{ NULL , NULL } ,
} ,
# ifdef LOW_END
" disabled " ,
# else
" enabled " ,
# endif
} ,
{
CORE_OPTION_NAME " _anisotropic_filtering " ,
" Anisotropic Filtering " ,
2021-12-01 17:46:03 +00:00
NULL ,
2021-07-05 17:44:08 +00:00
" Enhance the quality of textures on surfaces that are at oblique viewing angles with respect to the camera. " ,
2021-12-01 17:46:03 +00:00
NULL ,
" video " ,
2021-07-05 17:44:08 +00:00
{
{ " off " , " disabled " } ,
{ " 2 " , NULL } ,
{ " 4 " , NULL } ,
{ " 8 " , NULL } ,
{ " 16 " , NULL } ,
{ NULL , NULL } ,
} ,
" 4 " ,
} ,
{
CORE_OPTION_NAME " _pvr2_filtering " ,
" PowerVR2 Post-processing Filter " ,
2021-12-01 17:46:03 +00:00
NULL ,
2021-07-05 17:44:08 +00:00
" Post-process the rendered image to simulate effects specific to the PowerVR2 GPU and analog video signals. " ,
2021-12-01 17:46:03 +00:00
NULL ,
" video " ,
2021-07-05 17:44:08 +00:00
{
{ " disabled " , NULL } ,
{ " enabled " , NULL } ,
{ NULL , NULL } ,
} ,
" disabled " ,
} ,
# ifdef HAVE_TEXUPSCALE
{
CORE_OPTION_NAME " _texupscale " ,
" Texture Upscaling (xBRZ) " ,
2021-12-01 17:46:03 +00:00
NULL ,
" Enhance hand-drawn 2D pixel art graphics. Should only be used with 2D pixelated games. " ,
NULL ,
" video " ,
2021-07-05 17:44:08 +00:00
{
{ " off " , " disabled " } ,
{ " 2x " , NULL } ,
{ " 4x " , NULL } ,
{ " 6x " , NULL } ,
{ NULL , NULL } ,
} ,
" off " ,
} ,
2021-12-01 17:46:03 +00:00
{ /* TODO: needs clarification */
2021-07-05 17:44:08 +00:00
CORE_OPTION_NAME " _texupscale_max_filtered_texture_size " ,
" Texture Upscaling Max. Filtered Size " ,
2021-12-01 17:46:03 +00:00
NULL ,
2021-07-05 17:44:08 +00:00
" " ,
2021-12-01 17:46:03 +00:00
NULL ,
" video " ,
2021-07-05 17:44:08 +00:00
{
{ " 256 " , NULL } ,
{ " 512 " , NULL } ,
{ " 1024 " , NULL } ,
{ NULL , NULL } ,
} ,
" 256 " ,
} ,
# endif
2021-12-01 17:46:03 +00:00
{ /* TODO: needs explanation */
2021-07-05 17:44:08 +00:00
CORE_OPTION_NAME " _enable_rttb " ,
" Enable RTT (Render To Texture) Buffer " ,
2021-12-01 17:46:03 +00:00
NULL ,
2021-07-05 17:44:08 +00:00
" " ,
2021-12-01 17:46:03 +00:00
NULL ,
" video " ,
2021-07-05 17:44:08 +00:00
{
{ " disabled " , NULL } ,
{ " enabled " , NULL } ,
{ NULL , NULL } ,
} ,
" disabled " ,
} ,
{
CORE_OPTION_NAME " _threaded_rendering " ,
2021-07-09 14:28:28 +00:00
" Threaded Rendering " ,
2021-12-01 17:46:03 +00:00
NULL ,
2021-07-05 17:44:08 +00:00
" Runs the GPU and CPU on different threads. Highly recommended. " ,
2021-12-01 17:46:03 +00:00
NULL ,
NULL ,
2021-07-05 17:44:08 +00:00
{
{ " disabled " , NULL } ,
{ " enabled " , NULL } ,
{ NULL , NULL } ,
} ,
" enabled " ,
} ,
2021-07-12 07:57:58 +00:00
{
CORE_OPTION_NAME " _delay_frame_swapping " ,
" Delay Frame Swapping " ,
2021-12-01 17:46:03 +00:00
NULL ,
2021-07-12 07:57:58 +00:00
" Useful to avoid flashing screens or glitchy videos. Not recommended on slow platforms. " ,
2021-12-01 17:46:03 +00:00
NULL ,
" video " ,
2021-07-12 07:57:58 +00:00
{
{ " disabled " , NULL } ,
{ " enabled " , NULL } ,
{ NULL , NULL } ,
} ,
" disabled " ,
} ,
2021-07-05 17:44:08 +00:00
{
CORE_OPTION_NAME " _auto_skip_frame " ,
" Auto Skip Frame " ,
2021-12-01 17:46:03 +00:00
NULL ,
2021-07-05 17:44:08 +00:00
" Automatically skip frames when the emulator is running slow. Note: This setting only applies when 'Threaded Rendering' is enabled. " ,
2021-12-01 17:46:03 +00:00
NULL ,
" video " ,
2021-07-05 17:44:08 +00:00
{
2021-07-12 07:57:58 +00:00
{ " disabled " , NULL } ,
2021-07-07 11:12:16 +00:00
{ " some " , " Normal " } ,
{ " more " , " Maximum " } ,
2021-07-05 17:44:08 +00:00
{ NULL , NULL } ,
} ,
# ifdef LOW_END
" some " ,
# else
" disabled " ,
2021-07-12 07:57:58 +00:00
# endif
2021-07-05 17:44:08 +00:00
} ,
{
CORE_OPTION_NAME " _frame_skipping " ,
" Frame Skipping " ,
2021-12-01 17:46:03 +00:00
NULL ,
2021-07-05 17:44:08 +00:00
" Sets the number of frames to skip between each displayed frame. " ,
2021-12-01 17:46:03 +00:00
NULL ,
" video " ,
2021-07-05 17:44:08 +00:00
{
{ " disabled " , NULL } ,
{ " 1 " , NULL } ,
{ " 2 " , NULL } ,
{ " 3 " , NULL } ,
{ " 4 " , NULL } ,
{ " 5 " , NULL } ,
{ " 6 " , NULL } ,
{ NULL , NULL } ,
} ,
" disabled " ,
} ,
{
CORE_OPTION_NAME " _enable_purupuru " ,
" Purupuru Pack/Vibration Pack " ,
2021-12-01 17:46:03 +00:00
NULL ,
2021-07-05 17:44:08 +00:00
" Enables controller force feedback. " ,
2021-12-01 17:46:03 +00:00
NULL ,
" input " ,
2021-07-05 17:44:08 +00:00
{
{ " disabled " , NULL } ,
{ " enabled " , NULL } ,
{ NULL , NULL } ,
} ,
" enabled " ,
} ,
{
CORE_OPTION_NAME " _allow_service_buttons " ,
" Allow NAOMI Service Buttons " ,
2021-12-01 17:46:03 +00:00
NULL ,
2021-07-05 17:44:08 +00:00
" Enables SERVICE button for NAOMI, to enter cabinet settings. " ,
2021-12-01 17:46:03 +00:00
NULL ,
NULL ,
2021-07-05 17:44:08 +00:00
{
{ " disabled " , NULL } ,
{ " enabled " , NULL } ,
{ NULL , NULL } ,
} ,
" disabled " ,
} ,
{
CORE_OPTION_NAME " _custom_textures " ,
" Load Custom Textures " ,
2021-12-01 17:46:03 +00:00
NULL ,
2021-07-05 17:44:08 +00:00
" " ,
2021-12-01 17:46:03 +00:00
NULL ,
" video " ,
2021-07-05 17:44:08 +00:00
{
{ " disabled " , NULL } ,
{ " enabled " , NULL } ,
{ NULL , NULL } ,
} ,
" disabled " ,
} ,
2021-12-01 17:46:03 +00:00
{ /* TODO: probably needs explanation */
2021-07-05 17:44:08 +00:00
CORE_OPTION_NAME " _dump_textures " ,
" Dump Textures " ,
2021-12-01 17:46:03 +00:00
NULL ,
2021-07-05 17:44:08 +00:00
" " ,
2021-12-01 17:46:03 +00:00
NULL ,
" video " ,
2021-07-05 17:44:08 +00:00
{
{ " disabled " , NULL } ,
{ " enabled " , NULL } ,
{ NULL , NULL } ,
} ,
" disabled " ,
} ,
{
CORE_OPTION_NAME " _per_content_vmus " ,
2021-12-01 17:46:03 +00:00
" Per-Game Visual Memory Units/Systems (VMU) " ,
2021-07-05 17:44:08 +00:00
" Per-Game VMUs " ,
" When disabled, all games share 4 VMU save files (A1, B1, C1, D1) located in RetroArch's system directory. The 'VMU A1' setting creates a unique VMU 'A1' file in RetroArch's save directory for each game that is launched. The 'All VMUs' setting creates 4 unique VMU files (A1, B1, C1, D1) for each game that is launched. " ,
2021-12-01 17:46:03 +00:00
NULL ,
" vmu " ,
2021-07-05 17:44:08 +00:00
{
{ " disabled " , NULL } ,
{ " VMU A1 " , NULL } ,
{ " All VMUs " , NULL } ,
{ NULL , NULL } ,
} ,
" disabled " ,
} ,
{
CORE_OPTION_NAME " _show_vmu_screen_settings " ,
2021-12-01 17:46:03 +00:00
" Show Visual Memory Unit/System (VMU) Display Settings " ,
2021-07-05 17:44:08 +00:00
" Show VMU Display Settings " ,
" Enable configuration of emulated VMU LCD screen visibility, size, position and color. NOTE: Quick Menu must be toggled for this setting to take effect. " ,
2021-12-01 17:46:03 +00:00
NULL ,
" vmu " ,
2021-07-05 17:44:08 +00:00
{
{ " enabled " , NULL } ,
{ " disabled " , NULL } ,
{ NULL , NULL } ,
} ,
" disabled "
} ,
2021-12-01 17:46:03 +00:00
{
CORE_OPTION_NAME " _vmu1_screen_display " ,
" VMU Screen 1 Display " ,
NULL ,
" " ,
NULL ,
" vmu " ,
{
{ " disabled " , NULL } ,
{ " enabled " , NULL } ,
{ NULL , NULL } ,
} ,
" disabled " ,
} ,
{
CORE_OPTION_NAME " _vmu1_screen_position " ,
" VMU Screen 1 Position " ,
NULL ,
" " ,
NULL ,
" vmu " ,
{
{ " Upper Left " , NULL } ,
{ " Upper Right " , NULL } ,
{ " Lower Left " , NULL } ,
{ " Lower Right " , NULL } ,
{ NULL , NULL } ,
} ,
" Upper Left " ,
} ,
{
CORE_OPTION_NAME " _vmu1_screen_size_mult " ,
" VMU Screen 1 Size " ,
NULL ,
" " ,
NULL ,
" vmu " ,
{
{ " 1x " , NULL } ,
{ " 2x " , NULL } ,
{ " 3x " , NULL } ,
{ " 4x " , NULL } ,
{ " 5x " , NULL } ,
{ NULL , NULL } ,
} ,
" 1x " ,
} ,
{
CORE_OPTION_NAME " _vmu1_pixel_on_color " ,
" VMU Screen 1 Pixel On Color " ,
NULL ,
" " ,
NULL ,
" vmu " ,
{
{ " DEFAULT_ON 00 " , " Default ON " } ,
{ " DEFAULT_OFF 01 " , " Default OFF " } ,
{ " BLACK 02 " , " Black " } ,
{ " BLUE 03 " , " Blue " } ,
{ " LIGHT_BLUE 04 " , " Light Blue " } ,
{ " GREEN 05 " , " Green " } ,
{ " CYAN 06 " , " Cyan " } ,
{ " CYAN_BLUE 07 " , " Cyan Blue " } ,
{ " LIGHT_GREEN 08 " , " Light Green " } ,
{ " CYAN_GREEN 09 " , " Cyan Green " } ,
{ " LIGHT_CYAN 10 " , " Light Cyan " } ,
{ " RED 11 " , " Red " } ,
{ " PURPLE 12 " , " Purple " } ,
{ " LIGHT_PURPLE 13 " , " Light Purple " } ,
{ " YELLOW 14 " , " Yellow " } ,
{ " GRAY 15 " , " Gray " } ,
{ " LIGHT_PURPLE_2 16 " , " Light Purple (2) " } ,
{ " LIGHT_GREEN_2 17 " , " Light Green (2) " } ,
{ " LIGHT_GREEN_3 18 " , " Light Green (3) " } ,
{ " LIGHT_CYAN_2 19 " , " Light Cyan (2) " } ,
{ " LIGHT_RED_2 20 " , " Light Red (2) " } ,
{ " MAGENTA 21 " , " Magenta " } ,
{ " LIGHT_PURPLE_3 22 " , " Light Purple (3) " } ,
{ " LIGHT_ORANGE 23 " , " Light Orange " } ,
{ " ORANGE 24 " , " Orange " } ,
{ " LIGHT_PURPLE_4 25 " , " Light Purple (4) " } ,
{ " LIGHT_YELLOW 26 " , " Light Yellow " } ,
{ " LIGHT_YELLOW_2 27 " , " Light Yellow (2) " } ,
{ " WHITE 28 " , " White " } ,
{ NULL , NULL } ,
} ,
" DEFAULT_ON 00 " ,
} ,
{
CORE_OPTION_NAME " _vmu1_pixel_off_color " ,
" VMU Screen 1 Pixel Off Color " ,
NULL ,
" " ,
NULL ,
" vmu " ,
{
{ " DEFAULT_OFF 01 " , " Default OFF " } ,
{ " DEFAULT_ON 00 " , " Default ON " } ,
{ " BLACK 02 " , " Black " } ,
{ " BLUE 03 " , " Blue " } ,
{ " LIGHT_BLUE 04 " , " Light Blue " } ,
{ " GREEN 05 " , " Green " } ,
{ " CYAN 06 " , " Cyan " } ,
{ " CYAN_BLUE 07 " , " Cyan Blue " } ,
{ " LIGHT_GREEN 08 " , " Light Green " } ,
{ " CYAN_GREEN 09 " , " Cyan Green " } ,
{ " LIGHT_CYAN 10 " , " Light Cyan " } ,
{ " RED 11 " , " Red " } ,
{ " PURPLE 12 " , " Purple " } ,
{ " LIGHT_PURPLE 13 " , " Light Purple " } ,
{ " YELLOW 14 " , " Yellow " } ,
{ " GRAY 15 " , " Gray " } ,
{ " LIGHT_PURPLE_2 16 " , " Light Purple (2) " } ,
{ " LIGHT_GREEN_2 17 " , " Light Green (2) " } ,
{ " LIGHT_GREEN_3 18 " , " Light Green (3) " } ,
{ " LIGHT_CYAN_2 19 " , " Light Cyan (2) " } ,
{ " LIGHT_RED_2 20 " , " Light Red (2) " } ,
{ " MAGENTA 21 " , " Magenta " } ,
{ " LIGHT_PURPLE_3 22 " , " Light Purple (3) " } ,
{ " LIGHT_ORANGE 23 " , " Light Orange " } ,
{ " ORANGE 24 " , " Orange " } ,
{ " LIGHT_PURPLE_4 25 " , " Light Purple (4) " } ,
{ " LIGHT_YELLOW 26 " , " Light Yellow " } ,
{ " LIGHT_YELLOW_2 27 " , " Light Yellow (2) " } ,
{ " WHITE 28 " , " White " } ,
{ NULL , NULL } ,
} ,
" DEFAULT_OFF 01 " ,
} ,
{
CORE_OPTION_NAME " _vmu1_screen_opacity " ,
" VMU Screen 1 Opacity " ,
NULL ,
" " ,
NULL ,
" vmu " ,
{
{ " 10% " , NULL } ,
{ " 20% " , NULL } ,
{ " 30% " , NULL } ,
{ " 40% " , NULL } ,
{ " 50% " , NULL } ,
{ " 60% " , NULL } ,
{ " 70% " , NULL } ,
{ " 80% " , NULL } ,
{ " 90% " , NULL } ,
{ " 100% " , NULL } ,
{ NULL , NULL } ,
} ,
" 100% " ,
} ,
{
CORE_OPTION_NAME " _vmu2_screen_display " ,
" VMU Screen 2 Display " ,
NULL ,
" " ,
NULL ,
" vmu " ,
{
{ " disabled " , NULL } ,
{ " enabled " , NULL } ,
{ NULL , NULL } ,
} ,
" disabled " ,
} ,
{
CORE_OPTION_NAME " _vmu2_screen_position " ,
" VMU Screen 2 Position " ,
NULL ,
" " ,
NULL ,
" vmu " ,
{
{ " Upper Left " , NULL } ,
{ " Upper Right " , NULL } ,
{ " Lower Left " , NULL } ,
{ " Lower Right " , NULL } ,
{ NULL , NULL } ,
} ,
" Upper Left " ,
} ,
{
CORE_OPTION_NAME " _vmu2_screen_size_mult " ,
" VMU Screen 2 Size " ,
NULL ,
" " ,
NULL ,
" vmu " ,
{
{ " 1x " , NULL } ,
{ " 2x " , NULL } ,
{ " 3x " , NULL } ,
{ " 4x " , NULL } ,
{ " 5x " , NULL } ,
{ NULL , NULL } ,
} ,
" 1x " ,
} ,
{
CORE_OPTION_NAME " _vmu2_pixel_on_color " ,
" VMU Screen 2 Pixel On Color " ,
NULL ,
" " ,
NULL ,
" vmu " ,
{
{ " DEFAULT_ON 00 " , " Default ON " } ,
{ " DEFAULT_OFF 01 " , " Default OFF " } ,
{ " BLACK 02 " , " Black " } ,
{ " BLUE 03 " , " Blue " } ,
{ " LIGHT_BLUE 04 " , " Light Blue " } ,
{ " GREEN 05 " , " Green " } ,
{ " CYAN 06 " , " Cyan " } ,
{ " CYAN_BLUE 07 " , " Cyan Blue " } ,
{ " LIGHT_GREEN 08 " , " Light Green " } ,
{ " CYAN_GREEN 09 " , " Cyan Green " } ,
{ " LIGHT_CYAN 10 " , " Light Cyan " } ,
{ " RED 11 " , " Red " } ,
{ " PURPLE 12 " , " Purple " } ,
{ " LIGHT_PURPLE 13 " , " Light Purple " } ,
{ " YELLOW 14 " , " Yellow " } ,
{ " GRAY 15 " , " Gray " } ,
{ " LIGHT_PURPLE_2 16 " , " Light Purple (2) " } ,
{ " LIGHT_GREEN_2 17 " , " Light Green (2) " } ,
{ " LIGHT_GREEN_3 18 " , " Light Green (3) " } ,
{ " LIGHT_CYAN_2 19 " , " Light Cyan (2) " } ,
{ " LIGHT_RED_2 20 " , " Light Red (2) " } ,
{ " MAGENTA 21 " , " Magenta " } ,
{ " LIGHT_PURPLE_3 22 " , " Light Purple (3) " } ,
{ " LIGHT_ORANGE 23 " , " Light Orange " } ,
{ " ORANGE 24 " , " Orange " } ,
{ " LIGHT_PURPLE_4 25 " , " Light Purple (4) " } ,
{ " LIGHT_YELLOW 26 " , " Light Yellow " } ,
{ " LIGHT_YELLOW_2 27 " , " Light Yellow (2) " } ,
{ " WHITE 28 " , " White " } ,
{ NULL , NULL } ,
} ,
" DEFAULT_ON 00 " ,
} ,
{
CORE_OPTION_NAME " _vmu2_pixel_off_color " ,
" VMU Screen 2 Pixel Off Color " ,
NULL ,
" " ,
NULL ,
" vmu " ,
{
{ " DEFAULT_OFF 01 " , " Default OFF " } ,
{ " DEFAULT_ON 00 " , " Default ON " } ,
{ " BLACK 02 " , " Black " } ,
{ " BLUE 03 " , " Blue " } ,
{ " LIGHT_BLUE 04 " , " Light Blue " } ,
{ " GREEN 05 " , " Green " } ,
{ " CYAN 06 " , " Cyan " } ,
{ " CYAN_BLUE 07 " , " Cyan Blue " } ,
{ " LIGHT_GREEN 08 " , " Light Green " } ,
{ " CYAN_GREEN 09 " , " Cyan Green " } ,
{ " LIGHT_CYAN 10 " , " Light Cyan " } ,
{ " RED 11 " , " Red " } ,
{ " PURPLE 12 " , " Purple " } ,
{ " LIGHT_PURPLE 13 " , " Light Purple " } ,
{ " YELLOW 14 " , " Yellow " } ,
{ " GRAY 15 " , " Gray " } ,
{ " LIGHT_PURPLE_2 16 " , " Light Purple (2) " } ,
{ " LIGHT_GREEN_2 17 " , " Light Green (2) " } ,
{ " LIGHT_GREEN_3 18 " , " Light Green (3) " } ,
{ " LIGHT_CYAN_2 19 " , " Light Cyan (2) " } ,
{ " LIGHT_RED_2 20 " , " Light Red (2) " } ,
{ " MAGENTA 21 " , " Magenta " } ,
{ " LIGHT_PURPLE_3 22 " , " Light Purple (3) " } ,
{ " LIGHT_ORANGE 23 " , " Light Orange " } ,
{ " ORANGE 24 " , " Orange " } ,
{ " LIGHT_PURPLE_4 25 " , " Light Purple (4) " } ,
{ " LIGHT_YELLOW 26 " , " Light Yellow " } ,
{ " LIGHT_YELLOW_2 27 " , " Light Yellow (2) " } ,
{ " WHITE 28 " , " White " } ,
{ NULL , NULL } ,
} ,
" DEFAULT_OFF 01 " ,
} ,
{
CORE_OPTION_NAME " _vmu2_screen_opacity " ,
" VMU Screen 2 Opacity " ,
NULL ,
" " ,
NULL ,
" vmu " ,
{
{ " 10% " , NULL } ,
{ " 20% " , NULL } ,
{ " 30% " , NULL } ,
{ " 40% " , NULL } ,
{ " 50% " , NULL } ,
{ " 60% " , NULL } ,
{ " 70% " , NULL } ,
{ " 80% " , NULL } ,
{ " 90% " , NULL } ,
{ " 100% " , NULL } ,
{ NULL , NULL } ,
} ,
" 100% " ,
} ,
{
CORE_OPTION_NAME " _vmu3_screen_display " ,
" VMU Screen 3 Display " ,
NULL ,
" " ,
NULL ,
" vmu " ,
{
{ " disabled " , NULL } ,
{ " enabled " , NULL } ,
{ NULL , NULL } ,
} ,
" disabled " ,
} ,
{
CORE_OPTION_NAME " _vmu3_screen_position " ,
" VMU Screen 3 Position " ,
NULL ,
" " ,
NULL ,
" vmu " ,
{
{ " Upper Left " , NULL } ,
{ " Upper Right " , NULL } ,
{ " Lower Left " , NULL } ,
{ " Lower Right " , NULL } ,
{ NULL , NULL } ,
} ,
" Upper Left " ,
} ,
{
CORE_OPTION_NAME " _vmu3_screen_size_mult " ,
" VMU Screen 3 Size " ,
NULL ,
" " ,
NULL ,
" vmu " ,
{
{ " 1x " , NULL } ,
{ " 2x " , NULL } ,
{ " 3x " , NULL } ,
{ " 4x " , NULL } ,
{ " 5x " , NULL } ,
{ NULL , NULL } ,
} ,
" 1x " ,
} ,
{
CORE_OPTION_NAME " _vmu3_pixel_on_color " ,
" VMU Screen 3 Pixel On Color " ,
NULL ,
" " ,
NULL ,
" vmu " ,
{
{ " DEFAULT_ON 00 " , " Default ON " } ,
{ " DEFAULT_OFF 01 " , " Default OFF " } ,
{ " BLACK 02 " , " Black " } ,
{ " BLUE 03 " , " Blue " } ,
{ " LIGHT_BLUE 04 " , " Light Blue " } ,
{ " GREEN 05 " , " Green " } ,
{ " CYAN 06 " , " Cyan " } ,
{ " CYAN_BLUE 07 " , " Cyan Blue " } ,
{ " LIGHT_GREEN 08 " , " Light Green " } ,
{ " CYAN_GREEN 09 " , " Cyan Green " } ,
{ " LIGHT_CYAN 10 " , " Light Cyan " } ,
{ " RED 11 " , " Red " } ,
{ " PURPLE 12 " , " Purple " } ,
{ " LIGHT_PURPLE 13 " , " Light Purple " } ,
{ " YELLOW 14 " , " Yellow " } ,
{ " GRAY 15 " , " Gray " } ,
{ " LIGHT_PURPLE_2 16 " , " Light Purple (2) " } ,
{ " LIGHT_GREEN_2 17 " , " Light Green (2) " } ,
{ " LIGHT_GREEN_3 18 " , " Light Green (3) " } ,
{ " LIGHT_CYAN_2 19 " , " Light Cyan (2) " } ,
{ " LIGHT_RED_2 20 " , " Light Red (2) " } ,
{ " MAGENTA 21 " , " Magenta " } ,
{ " LIGHT_PURPLE_3 22 " , " Light Purple (3) " } ,
{ " LIGHT_ORANGE 23 " , " Light Orange " } ,
{ " ORANGE 24 " , " Orange " } ,
{ " LIGHT_PURPLE_4 25 " , " Light Purple (4) " } ,
{ " LIGHT_YELLOW 26 " , " Light Yellow " } ,
{ " LIGHT_YELLOW_2 27 " , " Light Yellow (2) " } ,
{ " WHITE 28 " , " White " } ,
{ NULL , NULL } ,
} ,
" DEFAULT_ON 00 " ,
} ,
{
CORE_OPTION_NAME " _vmu3_pixel_off_color " ,
" VMU Screen 3 Pixel Off Color " ,
NULL ,
" " ,
NULL ,
" vmu " ,
{
{ " DEFAULT_OFF 01 " , " Default OFF " } ,
{ " DEFAULT_ON 00 " , " Default ON " } ,
{ " BLACK 02 " , " Black " } ,
{ " BLUE 03 " , " Blue " } ,
{ " LIGHT_BLUE 04 " , " Light Blue " } ,
{ " GREEN 05 " , " Green " } ,
{ " CYAN 06 " , " Cyan " } ,
{ " CYAN_BLUE 07 " , " Cyan Blue " } ,
{ " LIGHT_GREEN 08 " , " Light Green " } ,
{ " CYAN_GREEN 09 " , " Cyan Green " } ,
{ " LIGHT_CYAN 10 " , " Light Cyan " } ,
{ " RED 11 " , " Red " } ,
{ " PURPLE 12 " , " Purple " } ,
{ " LIGHT_PURPLE 13 " , " Light Purple " } ,
{ " YELLOW 14 " , " Yellow " } ,
{ " GRAY 15 " , " Gray " } ,
{ " LIGHT_PURPLE_2 16 " , " Light Purple (2) " } ,
{ " LIGHT_GREEN_2 17 " , " Light Green (2) " } ,
{ " LIGHT_GREEN_3 18 " , " Light Green (3) " } ,
{ " LIGHT_CYAN_2 19 " , " Light Cyan (2) " } ,
{ " LIGHT_RED_2 20 " , " Light Red (2) " } ,
{ " MAGENTA 21 " , " Magenta " } ,
{ " LIGHT_PURPLE_3 22 " , " Light Purple (3) " } ,
{ " LIGHT_ORANGE 23 " , " Light Orange " } ,
{ " ORANGE 24 " , " Orange " } ,
{ " LIGHT_PURPLE_4 25 " , " Light Purple (4) " } ,
{ " LIGHT_YELLOW 26 " , " Light Yellow " } ,
{ " LIGHT_YELLOW_2 27 " , " Light Yellow (2) " } ,
{ " WHITE 28 " , " White " } ,
{ NULL , NULL } ,
} ,
" DEFAULT_OFF 01 " ,
} ,
{
CORE_OPTION_NAME " _vmu3_screen_opacity " ,
" VMU Screen 3 Opacity " ,
NULL ,
" " ,
NULL ,
" vmu " ,
{
{ " 10% " , NULL } ,
{ " 20% " , NULL } ,
{ " 30% " , NULL } ,
{ " 40% " , NULL } ,
{ " 50% " , NULL } ,
{ " 60% " , NULL } ,
{ " 70% " , NULL } ,
{ " 80% " , NULL } ,
{ " 90% " , NULL } ,
{ " 100% " , NULL } ,
{ NULL , NULL } ,
} ,
" 100% " ,
} ,
{
CORE_OPTION_NAME " _vmu4_screen_display " ,
" VMU Screen 4 Display " ,
NULL ,
" " ,
NULL ,
" vmu " ,
{
{ " disabled " , NULL } ,
{ " enabled " , NULL } ,
{ NULL , NULL } ,
} ,
" disabled " ,
} ,
{
CORE_OPTION_NAME " _vmu4_screen_position " ,
" VMU Screen 4 Position " ,
NULL ,
" " ,
NULL ,
" vmu " ,
{
{ " Upper Left " , NULL } ,
{ " Upper Right " , NULL } ,
{ " Lower Left " , NULL } ,
{ " Lower Right " , NULL } ,
{ NULL , NULL } ,
} ,
" Upper Left " ,
} ,
{
CORE_OPTION_NAME " _vmu4_screen_size_mult " ,
" VMU Screen 4 Size " ,
NULL ,
" " ,
NULL ,
" vmu " ,
{
{ " 1x " , NULL } ,
{ " 2x " , NULL } ,
{ " 3x " , NULL } ,
{ " 4x " , NULL } ,
{ " 5x " , NULL } ,
{ NULL , NULL } ,
} ,
" 1x " ,
} ,
{
CORE_OPTION_NAME " _vmu4_pixel_on_color " ,
" VMU Screen 4 Pixel On Color " ,
NULL ,
" " ,
NULL ,
" vmu " ,
{
{ " DEFAULT_ON 00 " , " Default ON " } ,
{ " DEFAULT_OFF 01 " , " Default OFF " } ,
{ " BLACK 02 " , " Black " } ,
{ " BLUE 03 " , " Blue " } ,
{ " LIGHT_BLUE 04 " , " Light Blue " } ,
{ " GREEN 05 " , " Green " } ,
{ " CYAN 06 " , " Cyan " } ,
{ " CYAN_BLUE 07 " , " Cyan Blue " } ,
{ " LIGHT_GREEN 08 " , " Light Green " } ,
{ " CYAN_GREEN 09 " , " Cyan Green " } ,
{ " LIGHT_CYAN 10 " , " Light Cyan " } ,
{ " RED 11 " , " Red " } ,
{ " PURPLE 12 " , " Purple " } ,
{ " LIGHT_PURPLE 13 " , " Light Purple " } ,
{ " YELLOW 14 " , " Yellow " } ,
{ " GRAY 15 " , " Gray " } ,
{ " LIGHT_PURPLE_2 16 " , " Light Purple (2) " } ,
{ " LIGHT_GREEN_2 17 " , " Light Green (2) " } ,
{ " LIGHT_GREEN_3 18 " , " Light Green (3) " } ,
{ " LIGHT_CYAN_2 19 " , " Light Cyan (2) " } ,
{ " LIGHT_RED_2 20 " , " Light Red (2) " } ,
{ " MAGENTA 21 " , " Magenta " } ,
{ " LIGHT_PURPLE_3 22 " , " Light Purple (3) " } ,
{ " LIGHT_ORANGE 23 " , " Light Orange " } ,
{ " ORANGE 24 " , " Orange " } ,
{ " LIGHT_PURPLE_4 25 " , " Light Purple (4) " } ,
{ " LIGHT_YELLOW 26 " , " Light Yellow " } ,
{ " LIGHT_YELLOW_2 27 " , " Light Yellow (2) " } ,
{ " WHITE 28 " , " White " } ,
{ NULL , NULL } ,
} ,
" DEFAULT_ON 00 " ,
} ,
{
CORE_OPTION_NAME " _vmu4_pixel_off_color " ,
" VMU Screen 4 Pixel Off Color " ,
NULL ,
" " ,
NULL ,
" vmu " ,
{
{ " DEFAULT_OFF 01 " , " Default OFF " } ,
{ " DEFAULT_ON 00 " , " Default ON " } ,
{ " BLACK 02 " , " Black " } ,
{ " BLUE 03 " , " Blue " } ,
{ " LIGHT_BLUE 04 " , " Light Blue " } ,
{ " GREEN 05 " , " Green " } ,
{ " CYAN 06 " , " Cyan " } ,
{ " CYAN_BLUE 07 " , " Cyan Blue " } ,
{ " LIGHT_GREEN 08 " , " Light Green " } ,
{ " CYAN_GREEN 09 " , " Cyan Green " } ,
{ " LIGHT_CYAN 10 " , " Light Cyan " } ,
{ " RED 11 " , " Red " } ,
{ " PURPLE 12 " , " Purple " } ,
{ " LIGHT_PURPLE 13 " , " Light Purple " } ,
{ " YELLOW 14 " , " Yellow " } ,
{ " GRAY 15 " , " Gray " } ,
{ " LIGHT_PURPLE_2 16 " , " Light Purple (2) " } ,
{ " LIGHT_GREEN_2 17 " , " Light Green (2) " } ,
{ " LIGHT_GREEN_3 18 " , " Light Green (3) " } ,
{ " LIGHT_CYAN_2 19 " , " Light Cyan (2) " } ,
{ " LIGHT_RED_2 20 " , " Light Red (2) " } ,
{ " MAGENTA 21 " , " Magenta " } ,
{ " LIGHT_PURPLE_3 22 " , " Light Purple (3) " } ,
{ " LIGHT_ORANGE 23 " , " Light Orange " } ,
{ " ORANGE 24 " , " Orange " } ,
{ " LIGHT_PURPLE_4 25 " , " Light Purple (4) " } ,
{ " LIGHT_YELLOW 26 " , " Light Yellow " } ,
{ " LIGHT_YELLOW_2 27 " , " Light Yellow (2) " } ,
{ " WHITE 28 " , " White " } ,
{ NULL , NULL } ,
} ,
" DEFAULT_OFF 01 " ,
} ,
{
CORE_OPTION_NAME " _vmu4_screen_opacity " ,
" VMU Screen 4 Opacity " ,
NULL ,
" " ,
NULL ,
" vmu " ,
{
{ " 10% " , NULL } ,
{ " 20% " , NULL } ,
{ " 30% " , NULL } ,
{ " 40% " , NULL } ,
{ " 50% " , NULL } ,
{ " 60% " , NULL } ,
{ " 70% " , NULL } ,
{ " 80% " , NULL } ,
{ " 90% " , NULL } ,
{ " 100% " , NULL } ,
{ NULL , NULL } ,
} ,
" 100% " ,
} ,
2021-07-05 17:44:08 +00:00
{
CORE_OPTION_NAME " _show_lightgun_settings " ,
" Show Light Gun Settings " ,
2021-12-01 17:46:03 +00:00
NULL ,
2021-07-05 17:44:08 +00:00
" Enable configuration of light gun crosshair display options. NOTE: Quick Menu must be toggled for this setting to take effect. " ,
2021-12-01 17:46:03 +00:00
NULL ,
" input " ,
2021-07-05 17:44:08 +00:00
{
{ " enabled " , NULL } ,
{ " disabled " , NULL } ,
{ NULL , NULL } ,
} ,
" disabled "
} ,
2021-12-01 17:46:03 +00:00
{
CORE_OPTION_NAME " _lightgun1_crosshair " ,
" Gun Crosshair 1 Display " ,
NULL ,
" " ,
NULL ,
" input " ,
{
{ " disabled " , NULL } ,
{ " White " , NULL } ,
{ " Red " , NULL } ,
{ " Green " , NULL } ,
{ " Blue " , NULL } ,
{ NULL , NULL } ,
} ,
" disabled " ,
} ,
{
CORE_OPTION_NAME " _lightgun2_crosshair " ,
" Gun Crosshair 2 Display " ,
NULL ,
" " ,
NULL ,
" input " ,
{
{ " disabled " , NULL } ,
{ " White " , NULL } ,
{ " Red " , NULL } ,
{ " Green " , NULL } ,
{ " Blue " , NULL } ,
{ NULL , NULL } ,
} ,
" disabled " ,
} ,
{
CORE_OPTION_NAME " _lightgun3_crosshair " ,
" Gun Crosshair 3 Display " ,
NULL ,
" " ,
NULL ,
" input " ,
{
{ " disabled " , NULL } ,
{ " White " , NULL } ,
{ " Red " , NULL } ,
{ " Green " , NULL } ,
{ " Blue " , NULL } ,
{ NULL , NULL } ,
} ,
" disabled " ,
} ,
{
CORE_OPTION_NAME " _lightgun4_crosshair " ,
" Gun Crosshair 4 Display " ,
NULL ,
" " ,
NULL ,
" input " ,
{
{ " disabled " , NULL } ,
{ " White " , NULL } ,
{ " Red " , NULL } ,
{ " Green " , NULL } ,
{ " Blue " , NULL } ,
{ NULL , NULL } ,
} ,
" disabled " ,
} ,
{ NULL , NULL , NULL , NULL , NULL , NULL , { { 0 } } , NULL } ,
} ;
struct retro_core_options_v2 options_us = {
option_cats_us ,
option_defs_us
2021-07-05 17:44:08 +00:00
} ;
/*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Language Mapping
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*/
# ifndef HAVE_NO_LANGEXTRA
2021-12-01 17:46:03 +00:00
struct retro_core_options_v2 * options_intl [ RETRO_LANGUAGE_LAST ] = {
& options_us , /* RETRO_LANGUAGE_ENGLISH */
& options_ja , /* RETRO_LANGUAGE_JAPANESE */
& options_fr , /* RETRO_LANGUAGE_FRENCH */
& options_es , /* RETRO_LANGUAGE_SPANISH */
& options_de , /* RETRO_LANGUAGE_GERMAN */
& options_it , /* RETRO_LANGUAGE_ITALIAN */
& options_nl , /* RETRO_LANGUAGE_DUTCH */
& options_pt_br , /* RETRO_LANGUAGE_PORTUGUESE_BRAZIL */
& options_pt_pt , /* RETRO_LANGUAGE_PORTUGUESE_PORTUGAL */
& options_ru , /* RETRO_LANGUAGE_RUSSIAN */
& options_ko , /* RETRO_LANGUAGE_KOREAN */
& options_cht , /* RETRO_LANGUAGE_CHINESE_TRADITIONAL */
& options_chs , /* RETRO_LANGUAGE_CHINESE_SIMPLIFIED */
& options_eo , /* RETRO_LANGUAGE_ESPERANTO */
& options_pl , /* RETRO_LANGUAGE_POLISH */
& options_vn , /* RETRO_LANGUAGE_VIETNAMESE */
& options_ar , /* RETRO_LANGUAGE_ARABIC */
& options_el , /* RETRO_LANGUAGE_GREEK */
& options_tr , /* RETRO_LANGUAGE_TURKISH */
& options_sv , /* RETRO_LANGUAGE_SLOVAK */
& options_fa , /* RETRO_LANGUAGE_PERSIAN */
& options_he , /* RETRO_LANGUAGE_HEBREW */
& options_ast , /* RETRO_LANGUAGE_ASTURIAN */
& options_fi , /* RETRO_LANGUAGE_FINNISH */
2021-07-05 17:44:08 +00:00
} ;
# endif
/*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Functions
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*/
/* Handles configuration/setting of core options.
* Should be called as early as possible - ideally inside
* retro_set_environment ( ) , and no later than retro_load_game ( )
* > We place the function body in the header to avoid the
* necessity of adding more . c files ( i . e . want this to
* be as painless as possible for core devs )
*/
2021-12-01 17:46:03 +00:00
static INLINE void libretro_set_core_options ( retro_environment_t environ_cb ,
bool * categories_supported )
2021-07-05 17:44:08 +00:00
{
2021-12-01 17:46:03 +00:00
unsigned version = 0 ;
# ifndef HAVE_NO_LANGEXTRA
unsigned language = 0 ;
# endif
2021-07-05 17:44:08 +00:00
2021-12-01 17:46:03 +00:00
if ( ! environ_cb | | ! categories_supported )
2021-07-05 17:44:08 +00:00
return ;
2021-12-01 17:46:03 +00:00
* categories_supported = false ;
if ( ! environ_cb ( RETRO_ENVIRONMENT_GET_CORE_OPTIONS_VERSION , & version ) )
version = 0 ;
if ( version > = 2 )
2021-07-05 17:44:08 +00:00
{
# ifndef HAVE_NO_LANGEXTRA
2021-12-01 17:46:03 +00:00
struct retro_core_options_v2_intl core_options_intl ;
2021-07-05 17:44:08 +00:00
2021-12-01 17:46:03 +00:00
core_options_intl . us = & options_us ;
2021-07-05 17:44:08 +00:00
core_options_intl . local = NULL ;
if ( environ_cb ( RETRO_ENVIRONMENT_GET_LANGUAGE , & language ) & &
( language < RETRO_LANGUAGE_LAST ) & & ( language ! = RETRO_LANGUAGE_ENGLISH ) )
2021-12-01 17:46:03 +00:00
core_options_intl . local = options_intl [ language ] ;
2021-07-05 17:44:08 +00:00
2021-12-01 17:46:03 +00:00
* categories_supported = environ_cb ( RETRO_ENVIRONMENT_SET_CORE_OPTIONS_V2_INTL ,
& core_options_intl ) ;
2021-07-05 17:44:08 +00:00
# else
2021-12-01 17:46:03 +00:00
* categories_supported = environ_cb ( RETRO_ENVIRONMENT_SET_CORE_OPTIONS_V2 ,
& options_us ) ;
2021-07-05 17:44:08 +00:00
# endif
}
else
{
2021-12-01 17:46:03 +00:00
size_t i , j ;
2021-07-05 17:44:08 +00:00
size_t option_index = 0 ;
size_t num_options = 0 ;
2021-12-01 17:46:03 +00:00
struct retro_core_option_definition
* option_v1_defs_us = NULL ;
# ifndef HAVE_NO_LANGEXTRA
size_t num_options_intl = 0 ;
struct retro_core_option_v2_definition
* option_defs_intl = NULL ;
struct retro_core_option_definition
* option_v1_defs_intl = NULL ;
struct retro_core_options_intl
core_options_v1_intl ;
# endif
2021-07-05 17:44:08 +00:00
struct retro_variable * variables = NULL ;
char * * values_buf = NULL ;
2021-12-01 17:46:03 +00:00
/* Determine total number of options */
2021-07-05 17:44:08 +00:00
while ( true )
{
if ( option_defs_us [ num_options ] . key )
num_options + + ;
else
break ;
}
2021-12-01 17:46:03 +00:00
if ( version > = 1 )
{
/* Allocate US array */
option_v1_defs_us = ( struct retro_core_option_definition * )
calloc ( num_options + 1 , sizeof ( struct retro_core_option_definition ) ) ;
2021-07-05 17:44:08 +00:00
2021-12-01 17:46:03 +00:00
/* Copy parameters from option_defs_us array */
for ( i = 0 ; i < num_options ; i + + )
{
struct retro_core_option_v2_definition * option_def_us = & option_defs_us [ i ] ;
struct retro_core_option_value * option_values = option_def_us - > values ;
struct retro_core_option_definition * option_v1_def_us = & option_v1_defs_us [ i ] ;
struct retro_core_option_value * option_v1_values = option_v1_def_us - > values ;
2021-07-05 17:44:08 +00:00
2021-12-01 17:46:03 +00:00
option_v1_def_us - > key = option_def_us - > key ;
option_v1_def_us - > desc = option_def_us - > desc ;
option_v1_def_us - > info = option_def_us - > info ;
option_v1_def_us - > default_value = option_def_us - > default_value ;
2021-07-05 17:44:08 +00:00
2021-12-01 17:46:03 +00:00
/* Values must be copied individually... */
while ( option_values - > value )
{
option_v1_values - > value = option_values - > value ;
option_v1_values - > label = option_values - > label ;
2021-07-05 17:44:08 +00:00
2021-12-01 17:46:03 +00:00
option_values + + ;
option_v1_values + + ;
}
}
2021-07-05 17:44:08 +00:00
2021-12-01 17:46:03 +00:00
# ifndef HAVE_NO_LANGEXTRA
if ( environ_cb ( RETRO_ENVIRONMENT_GET_LANGUAGE , & language ) & &
( language < RETRO_LANGUAGE_LAST ) & & ( language ! = RETRO_LANGUAGE_ENGLISH ) & &
options_intl [ language ] )
option_defs_intl = options_intl [ language ] - > definitions ;
2021-07-05 17:44:08 +00:00
2021-12-01 17:46:03 +00:00
if ( option_defs_intl )
{
/* Determine number of intl options */
2021-07-05 17:44:08 +00:00
while ( true )
{
2021-12-01 17:46:03 +00:00
if ( option_defs_intl [ num_options_intl ] . key )
num_options_intl + + ;
2021-07-05 17:44:08 +00:00
else
break ;
}
2021-12-01 17:46:03 +00:00
/* Allocate intl array */
option_v1_defs_intl = ( struct retro_core_option_definition * )
calloc ( num_options_intl + 1 , sizeof ( struct retro_core_option_definition ) ) ;
/* Copy parameters from option_defs_intl array */
for ( i = 0 ; i < num_options_intl ; i + + )
2021-07-05 17:44:08 +00:00
{
2021-12-01 17:46:03 +00:00
struct retro_core_option_v2_definition * option_def_intl = & option_defs_intl [ i ] ;
struct retro_core_option_value * option_values = option_def_intl - > values ;
struct retro_core_option_definition * option_v1_def_intl = & option_v1_defs_intl [ i ] ;
struct retro_core_option_value * option_v1_values = option_v1_def_intl - > values ;
option_v1_def_intl - > key = option_def_intl - > key ;
option_v1_def_intl - > desc = option_def_intl - > desc ;
option_v1_def_intl - > info = option_def_intl - > info ;
option_v1_def_intl - > default_value = option_def_intl - > default_value ;
/* Values must be copied individually... */
while ( option_values - > value )
{
option_v1_values - > value = option_values - > value ;
option_v1_values - > label = option_values - > label ;
option_values + + ;
option_v1_values + + ;
}
}
}
core_options_v1_intl . us = option_v1_defs_us ;
core_options_v1_intl . local = option_v1_defs_intl ;
environ_cb ( RETRO_ENVIRONMENT_SET_CORE_OPTIONS_INTL , & core_options_v1_intl ) ;
# else
environ_cb ( RETRO_ENVIRONMENT_SET_CORE_OPTIONS , option_v1_defs_us ) ;
# endif
}
else
{
/* Allocate arrays */
variables = ( struct retro_variable * ) calloc ( num_options + 1 ,
sizeof ( struct retro_variable ) ) ;
values_buf = ( char * * ) calloc ( num_options , sizeof ( char * ) ) ;
if ( ! variables | | ! values_buf )
goto error ;
2021-07-05 17:44:08 +00:00
2021-12-01 17:46:03 +00:00
/* Copy parameters from option_defs_us array */
for ( i = 0 ; i < num_options ; i + + )
{
const char * key = option_defs_us [ i ] . key ;
const char * desc = option_defs_us [ i ] . desc ;
const char * default_value = option_defs_us [ i ] . default_value ;
struct retro_core_option_value * values = option_defs_us [ i ] . values ;
size_t buf_len = 3 ;
size_t default_index = 0 ;
2021-07-05 17:44:08 +00:00
2021-12-01 17:46:03 +00:00
values_buf [ i ] = NULL ;
if ( desc )
{
size_t num_values = 0 ;
2021-07-05 17:44:08 +00:00
2021-12-01 17:46:03 +00:00
/* Determine number of values */
while ( true )
{
if ( values [ num_values ] . value )
{
/* Check if this is the default value */
if ( default_value )
if ( strcmp ( values [ num_values ] . value , default_value ) = = 0 )
default_index = num_values ;
2021-07-05 17:44:08 +00:00
2021-12-01 17:46:03 +00:00
buf_len + = strlen ( values [ num_values ] . value ) ;
num_values + + ;
}
else
break ;
}
2021-07-05 17:44:08 +00:00
2021-12-01 17:46:03 +00:00
/* Build values string */
if ( num_values > 0 )
2021-07-05 17:44:08 +00:00
{
2021-12-01 17:46:03 +00:00
buf_len + = num_values - 1 ;
buf_len + = strlen ( desc ) ;
values_buf [ i ] = ( char * ) calloc ( buf_len , sizeof ( char ) ) ;
if ( ! values_buf [ i ] )
goto error ;
strcpy ( values_buf [ i ] , desc ) ;
strcat ( values_buf [ i ] , " ; " ) ;
/* Default value goes first */
strcat ( values_buf [ i ] , values [ default_index ] . value ) ;
/* Add remaining values */
for ( j = 0 ; j < num_values ; j + + )
2021-07-05 17:44:08 +00:00
{
2021-12-01 17:46:03 +00:00
if ( j ! = default_index )
{
strcat ( values_buf [ i ] , " | " ) ;
strcat ( values_buf [ i ] , values [ j ] . value ) ;
}
2021-07-05 17:44:08 +00:00
}
}
}
2021-12-01 17:46:03 +00:00
variables [ option_index ] . key = key ;
variables [ option_index ] . value = values_buf [ i ] ;
option_index + + ;
2021-07-05 17:44:08 +00:00
}
2021-12-01 17:46:03 +00:00
/* Set variables */
environ_cb ( RETRO_ENVIRONMENT_SET_VARIABLES , variables ) ;
2021-07-05 17:44:08 +00:00
}
error :
/* Clean up */
2021-12-01 17:46:03 +00:00
if ( option_v1_defs_us )
{
free ( option_v1_defs_us ) ;
option_v1_defs_us = NULL ;
}
# ifndef HAVE_NO_LANGEXTRA
if ( option_v1_defs_intl )
{
free ( option_v1_defs_intl ) ;
option_v1_defs_intl = NULL ;
}
# endif
2021-07-05 17:44:08 +00:00
if ( values_buf )
{
for ( i = 0 ; i < num_options ; i + + )
{
if ( values_buf [ i ] )
{
free ( values_buf [ i ] ) ;
values_buf [ i ] = NULL ;
}
}
free ( values_buf ) ;
values_buf = NULL ;
}
if ( variables )
{
free ( variables ) ;
variables = NULL ;
}
}
}
# ifdef __cplusplus
}
# endif
# endif