mirror of
https://github.com/libretro/RetroArch
synced 2025-04-16 08:43:10 +00:00
Merge branch 'master' into ios13-controllers
This commit is contained in:
commit
22d84eaef2
@ -31,6 +31,8 @@ matrix:
|
||||
env: DISABLE_MENU=1 CC=gcc-8 CXX=g++-8
|
||||
- compiler: gcc
|
||||
env: ENABLE_GLES=1 CC=gcc-8 CXX=g++-8
|
||||
- compiler: gcc
|
||||
env: ENABLE_GLES=1 ENABLE_GLES3=1 CC=gcc-8 CXX=g++-8
|
||||
- compiler: clang
|
||||
env: CC=clang-6.0 CXX=clang++-6.0
|
||||
- compiler: clang
|
||||
@ -73,7 +75,7 @@ before_install:
|
||||
script:
|
||||
- |
|
||||
if [ -n "$CROSS_COMPILE" ]; then
|
||||
ARGS="$ARGS --disable-d3d8 --disable-d3d9 --disable-d3d10 --disable-d3d11 --disable-d3d12 --enable-builtinzlib"
|
||||
ARGS="$ARGS --disable-d3d8 --disable-d3d9 --disable-d3d10 --disable-d3d11 --disable-d3d12"
|
||||
fi
|
||||
- |
|
||||
if [ -n "$DISABLE_MENU" ]; then
|
||||
|
@ -1342,15 +1342,14 @@ endif
|
||||
|
||||
ifeq ($(HAVE_D3D9), 1)
|
||||
HAVE_D3D_COMMON = 1
|
||||
HAVE_D3DX = 1
|
||||
DEFINES += -DHAVE_D3D9
|
||||
ifeq ($(HAVE_D3DX), 1)
|
||||
DEFINES += -DHAVE_D3DX
|
||||
ifeq ($(HAVE_D3DX9), 1)
|
||||
HAVE_D3DX_COMMON = 1
|
||||
endif
|
||||
ifneq ($(HAVE_DYLIB), 1)
|
||||
LIBS += -ld3d9
|
||||
ifeq ($(HAVE_D3DX), 1)
|
||||
LIBS += -ld3dx9
|
||||
LIBS += $(D3D9_LIBS)
|
||||
ifeq ($(HAVE_D3DX9), 1)
|
||||
LIBS += $(D3DX9_LIBS)
|
||||
endif
|
||||
endif
|
||||
HAVE_DX_COMMON = 1
|
||||
@ -1412,14 +1411,21 @@ ifeq ($(HAVE_D3D8), 1)
|
||||
HAVE_D3D_COMMON = 1
|
||||
HAVE_DX_COMMON = 1
|
||||
DEFINES += -DHAVE_D3D8
|
||||
ifeq ($(HAVE_D3DX8), 1)
|
||||
HAVE_D3DX_COMMON = 1
|
||||
endif
|
||||
ifneq ($(HAVE_DYLIB), 1)
|
||||
LIBS += -ld3d8
|
||||
ifeq ($(HAVE_D3DX), 1)
|
||||
LIBS += -ld3dx8
|
||||
LIBS += $(D3D8_LIBS)
|
||||
ifeq ($(HAVE_D3DX8), 1)
|
||||
LIBS += $(D3DX8_LIBS)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(HAVE_D3DX_COMMON), 1)
|
||||
DEFINES += -DHAVE_D3DX
|
||||
endif
|
||||
|
||||
ifeq ($(HAVE_DX_COMMON), 1)
|
||||
LIBS += -ldxguid
|
||||
endif
|
||||
|
@ -60,6 +60,20 @@ HAVE_CHEEVOS := 1
|
||||
HAVE_SHADERPIPELINE := 1
|
||||
HAVE_IMAGEVIEWER := 1
|
||||
|
||||
ifeq ($(HAVE_D3D8), 1)
|
||||
D3D8_LIBS := -ld3d8
|
||||
ifeq ($(HAVE_D3DX), 1)
|
||||
D3DX8_LIBS := -ld3dx8
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(HAVE_D3D9), 1)
|
||||
D3D9_LIBS := -ld3d9
|
||||
ifeq ($(HAVE_D3DX), 1)
|
||||
D3DX9_LIBS := -ld3dx9
|
||||
endif
|
||||
endif
|
||||
|
||||
include Makefile.common
|
||||
INCLUDE_DIRS := $(patsubst -isystem%,-I%,$(INCLUDE_DIRS))
|
||||
CFLAGS := $(filter-out -Wno-unknown-pragmas,$(DEF_FLAGS))
|
||||
|
14
Makefile.win
14
Makefile.win
@ -56,6 +56,20 @@ SDL2_LIBS := -lSDL2
|
||||
SDL2_CFLAGS := -ISDL2 -DHAVE_SDL2
|
||||
endif
|
||||
|
||||
ifeq ($(HAVE_D3D8), 1)
|
||||
D3D8_LIBS := -ld3d8
|
||||
ifeq ($(HAVE_D3DX), 1)
|
||||
D3DX8_LIBS := -ld3dx8
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(HAVE_D3D9), 1)
|
||||
D3D9_LIBS := -ld3d9
|
||||
ifeq ($(HAVE_D3DX), 1)
|
||||
D3DX9_LIBS := -ld3dx9
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(HAVE_RSOUND), 1)
|
||||
RSOUND_CFLAGS := -DHAVE_RSOUND
|
||||
RSOUND_LIBS := -lrsound
|
||||
|
195
config.def.h
195
config.def.h
@ -70,7 +70,7 @@
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_MATERIALUI
|
||||
static bool materialui_icons_enable = true;
|
||||
#define DEFAULT_MATERIALUI_ICONS_ENABLE true
|
||||
#endif
|
||||
|
||||
static const unsigned crt_switch_resolution = CRT_SWITCH_NONE;
|
||||
@ -78,19 +78,18 @@ static const int crt_switch_resolution_super = 2560;
|
||||
static const int crt_switch_center_adjust = 0;
|
||||
|
||||
static const bool def_history_list_enable = true;
|
||||
static const bool def_playlist_entry_remove = true;
|
||||
static const bool def_playlist_entry_rename = true;
|
||||
|
||||
static const unsigned int def_user_language = 0;
|
||||
|
||||
#if (defined(_WIN32) && !defined(_XBOX)) || (defined(__linux) && !defined(ANDROID) && !defined(HAVE_LAKKA)) || (defined(__MACH__) && !defined(IOS)) || defined(EMSCRIPTEN)
|
||||
static const bool def_mouse_enable = true;
|
||||
#define DEFAULT_MOUSE_ENABLE true
|
||||
#else
|
||||
static const bool def_mouse_enable = false;
|
||||
#define DEFAULT_MOUSE_ENABLE false
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_CHEEVOS
|
||||
static const bool cheevos_enable = false;
|
||||
#define DEFAULT_CHEEVOS_ENABLE false
|
||||
#endif
|
||||
|
||||
/* VIDEO */
|
||||
@ -105,87 +104,87 @@ static const bool cheevos_enable = false;
|
||||
* Real x resolution = aspect * base_size * x scale
|
||||
* Real y resolution = base_size * y scale
|
||||
*/
|
||||
static const float scale = 3.0;
|
||||
#define DEFAULT_SCALE (3.0)
|
||||
|
||||
/* Fullscreen */
|
||||
|
||||
/* To start in Fullscreen, or not. */
|
||||
static const bool fullscreen = false;
|
||||
#define DEFAULT_FULLSCREEN false
|
||||
|
||||
/* To use windowed mode or not when going fullscreen. */
|
||||
static const bool windowed_fullscreen = true;
|
||||
#define DEFAULT_WINDOWED_FULLSCREEN true
|
||||
|
||||
/* Which monitor to prefer. 0 is any monitor, 1 and up selects
|
||||
* specific monitors, 1 being the first monitor. */
|
||||
static const unsigned monitor_index = 0;
|
||||
#define DEFAULT_MONITOR_INDEX 0
|
||||
|
||||
/* Window */
|
||||
/* Window size. A value of 0 uses window scale
|
||||
* multiplied by the core framebuffer size. */
|
||||
static const unsigned window_width = 1280;
|
||||
static const unsigned window_height = 720;
|
||||
#define DEFAULT_WINDOW_WIDTH 1280
|
||||
#define DEFAULT_WINDOW_HEIGHT 720
|
||||
|
||||
/* Fullscreen resolution. A value of 0 uses the desktop
|
||||
* resolution. */
|
||||
static const unsigned fullscreen_x = 0;
|
||||
static const unsigned fullscreen_y = 0;
|
||||
#define DEFAULT_FULLSCREEN_X 0
|
||||
#define DEFAULT_FULLSCREEN_Y 0
|
||||
|
||||
/* Number of threads to use for video recording */
|
||||
|
||||
static const unsigned video_record_threads = 2;
|
||||
#define DEFAULT_VIDEO_RECORD_THREADS 2
|
||||
|
||||
/* Amount of transparency to use for the main window.
|
||||
* 1 is the most transparent while 100 is opaque.
|
||||
*/
|
||||
static const unsigned window_opacity = 100;
|
||||
#define DEFAULT_WINDOW_OPACITY 100
|
||||
|
||||
/* Whether to show the usual window decorations like border, titlebar etc. */
|
||||
static const bool window_decorations = true;
|
||||
#define DEFAULT_WINDOW_DECORATIONS true
|
||||
|
||||
#if defined(RARCH_CONSOLE) || defined(__APPLE__)
|
||||
static const bool load_dummy_on_core_shutdown = false;
|
||||
#define DEFAULT_LOAD_DUMMY_ON_CORE_SHUTDOWN false
|
||||
#else
|
||||
static const bool load_dummy_on_core_shutdown = true;
|
||||
#define DEFAULT_LOAD_DUMMY_ON_CORE_SHUTDOWN true
|
||||
#endif
|
||||
static const bool check_firmware_before_loading = false;
|
||||
#define DEFAULT_CHECK_FIRMWARE_BEFORE_LOADING false
|
||||
|
||||
/* Forcibly disable composition.
|
||||
* Only valid on Windows Vista/7/8 for now. */
|
||||
static const bool disable_composition = false;
|
||||
#define DEFAULT_DISABLE_COMPOSITION false
|
||||
|
||||
/* Video VSYNC (recommended) */
|
||||
static const bool vsync = true;
|
||||
#define DEFAULT_VSYNC false
|
||||
|
||||
static const unsigned max_swapchain_images = 3;
|
||||
#define DEFAULT_MAX_SWAPCHAIN_IMAGES 3
|
||||
|
||||
static const bool adaptive_vsync = false;
|
||||
#define DEFAULT_ADAPTIVE_VSYNC false
|
||||
|
||||
/* Attempts to hard-synchronize CPU and GPU.
|
||||
* Can reduce latency at cost of performance. */
|
||||
static const bool hard_sync = false;
|
||||
#define DEFAULT_HARD_SYNC false
|
||||
|
||||
/* Configures how many frames the GPU can run ahead of CPU.
|
||||
* 0: Syncs to GPU immediately.
|
||||
* 1: Syncs to previous frame.
|
||||
* 2: Etc ...
|
||||
*/
|
||||
static const unsigned hard_sync_frames = 0;
|
||||
#define DEFAULT_HARD_SYNC_FRAMES 0
|
||||
|
||||
/* Sets how many milliseconds to delay after VSync before running the core.
|
||||
* Can reduce latency at cost of higher risk of stuttering.
|
||||
*/
|
||||
static const unsigned frame_delay = 0;
|
||||
#define DEFAULT_FRAME_DELAY 0
|
||||
|
||||
/* Inserts a black frame inbetween frames.
|
||||
* Useful for 120 Hz monitors who want to play 60 Hz material with eliminated
|
||||
* ghosting. video_refresh_rate should still be configured as if it
|
||||
* is a 60 Hz monitor (divide refresh rate by 2).
|
||||
*/
|
||||
static bool black_frame_insertion = false;
|
||||
#define DEFAULT_BLACK_FRAME_INSERTION false
|
||||
|
||||
/* Uses a custom swap interval for VSync.
|
||||
* Set this to effectively halve monitor refresh rate.
|
||||
*/
|
||||
static unsigned swap_interval = 1;
|
||||
#define DEFAULT_SWAP_INTERVAL 1
|
||||
|
||||
/* Threaded video. Will possibly increase performance significantly
|
||||
* at the cost of worse synchronization and latency.
|
||||
@ -199,87 +198,90 @@ static unsigned swap_interval = 1;
|
||||
#if defined(HAVE_THREADS)
|
||||
#if defined(GEKKO) || defined(PSP) || defined(PS2)
|
||||
/* For single-core consoles right now it's best to have this be disabled. */
|
||||
static const bool threaded_data_runloop_enable = false;
|
||||
#define DEFAULT_THREADED_DATA_RUNLOOP_ENABLE false
|
||||
#else
|
||||
static const bool threaded_data_runloop_enable = true;
|
||||
#define DEFAULT_THREADED_DATA_RUNLOOP_ENABLE true
|
||||
#endif
|
||||
#else
|
||||
static const bool threaded_data_runloop_enable = false;
|
||||
#define DEFAULT_THREADED_DATA_RUNLOOP_ENABLE false
|
||||
#endif
|
||||
|
||||
/* Set to true if HW render cores should get their private context. */
|
||||
static const bool video_shared_context = false;
|
||||
#define DEFAULT_VIDEO_SHARED_CONTEXT false
|
||||
|
||||
/* Sets GC/Wii screen width. */
|
||||
static const unsigned video_viwidth = 640;
|
||||
#define DEFAULT_VIDEO_VI_WIDTH 640
|
||||
|
||||
#ifdef GEKKO
|
||||
/* Removes 480i flicker, smooths picture a little. */
|
||||
static const bool video_vfilter = true;
|
||||
#define DEFAULT_VIDEO_VFILTER true
|
||||
|
||||
/* Allow overscan to be corrected on displays that
|
||||
* do not have proper 'pixel perfect' scaling */
|
||||
#define DEFAULT_VIDEO_OVERSCAN_CORRECTION_TOP 0
|
||||
#define DEFAULT_VIDEO_OVERSCAN_CORRECTION_BOTTOM 0
|
||||
#endif
|
||||
|
||||
/* Smooths picture. */
|
||||
static const bool video_smooth = true;
|
||||
#define DEFAULT_VIDEO_SMOOTH true
|
||||
|
||||
/* On resize and fullscreen, rendering area will stay 4:3 */
|
||||
static const bool force_aspect = true;
|
||||
#define DEFAULT_FORCE_ASPECT true
|
||||
|
||||
/* Enable use of shaders. */
|
||||
#ifdef RARCH_CONSOLE
|
||||
static const bool shader_enable = true;
|
||||
#define DEFAULT_SHADER_ENABLE true
|
||||
#else
|
||||
static const bool shader_enable = false;
|
||||
#define DEFAULT_SHADER_ENABLE false
|
||||
#endif
|
||||
|
||||
/* Only scale in integer steps.
|
||||
* The base size depends on system-reported geometry and aspect ratio.
|
||||
* If video_force_aspect is not set, X/Y will be integer scaled independently.
|
||||
*/
|
||||
static const bool scale_integer = false;
|
||||
#define DEFAULT_SCALE_INTEGER false
|
||||
|
||||
/* Controls aspect ratio handling. */
|
||||
|
||||
/* Automatic */
|
||||
static const float aspect_ratio = DEFAULT_ASPECT_RATIO;
|
||||
|
||||
/* 1:1 PAR */
|
||||
static const bool aspect_ratio_auto = false;
|
||||
#define DEFAULT_ASPECT_RATIO_AUTO false
|
||||
|
||||
#if defined(__CELLOS_LV2) || defined(_XBOX360)
|
||||
static unsigned aspect_ratio_idx = ASPECT_RATIO_16_9;
|
||||
#define DEFAULT_ASPECT_RATIO_IDX ASPECT_RATIO_16_9
|
||||
#elif defined(PSP)
|
||||
static unsigned aspect_ratio_idx = ASPECT_RATIO_CORE;
|
||||
#define DEFAULT_ASPECT_RATIO_IDX ASPECT_RATIO_CORE
|
||||
#elif defined(_3DS)
|
||||
/* Previously defaulted to ASPECT_RATIO_4_3.
|
||||
* Non-4:3 content looks dreadful when stretched
|
||||
* to 4:3 on the 3DS screen... */
|
||||
static unsigned aspect_ratio_idx = ASPECT_RATIO_CORE;
|
||||
#define DEFAULT_ASPECT_RATIO_IDX ASPECT_RATIO_CORE
|
||||
#elif defined(RARCH_CONSOLE)
|
||||
static unsigned aspect_ratio_idx = ASPECT_RATIO_4_3;
|
||||
#define DEFAULT_ASPECT_RATIO_IDX ASPECT_RATIO_4_3
|
||||
#else
|
||||
static unsigned aspect_ratio_idx = ASPECT_RATIO_CORE;
|
||||
#define DEFAULT_ASPECT_RATIO_IDX ASPECT_RATIO_CORE
|
||||
#endif
|
||||
|
||||
/* Save configuration file on exit. */
|
||||
static bool config_save_on_exit = true;
|
||||
#define DEFAULT_CONFIG_SAVE_ON_EXIT true
|
||||
|
||||
static bool show_hidden_files = false;
|
||||
#define DEFAULT_SHOW_HIDDEN_FILES false
|
||||
|
||||
static const bool overlay_hide_in_menu = true;
|
||||
#define DEFAULT_OVERLAY_HIDE_IN_MENU true
|
||||
#define DEFAULT_OVERLAY_SHOW_MOUSE_CURSOR true
|
||||
|
||||
static const bool display_keyboard_overlay = false;
|
||||
#define DEFAULT_DISPLAY_KEYBOARD_OVERLAY false
|
||||
|
||||
#ifdef HAKCHI
|
||||
static const float default_input_overlay_opacity = 0.5f;
|
||||
#define DEFAULT_INPUT_OVERLAY_OPACITY 0.5f
|
||||
#else
|
||||
static const float default_input_overlay_opacity = 0.7f;
|
||||
#define DEFAULT_INPUT_OVERLAY_OPACITY 0.7f
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_MENU
|
||||
#include "menu/menu_driver.h"
|
||||
#include "menu/menu_animation.h"
|
||||
|
||||
static bool default_block_config_read = true;
|
||||
#define DEFAULT_BLOCK_CONFIG_READ true
|
||||
|
||||
#ifdef HAVE_LIBNX
|
||||
static bool menu_use_preferred_system_color_theme = true;
|
||||
@ -370,8 +372,6 @@ static bool xmb_shadows_enable = true;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
static bool automatically_add_content_to_playlist = false;
|
||||
|
||||
static float menu_framebuffer_opacity = 0.900;
|
||||
|
||||
static float menu_wallpaper_opacity = 0.300;
|
||||
@ -402,10 +402,11 @@ static unsigned rgui_particle_effect = RGUI_PARTICLE_EFFECT_NONE;
|
||||
static bool rgui_extended_ascii = false;
|
||||
|
||||
#else
|
||||
static bool default_block_config_read = false;
|
||||
static bool automatically_add_content_to_playlist = false;
|
||||
#define DEFAULT_BLOCK_CONFIG_READ false
|
||||
#endif
|
||||
|
||||
static bool automatically_add_content_to_playlist = false;
|
||||
|
||||
static bool default_game_specific_options = true;
|
||||
static bool default_auto_overrides_enable = true;
|
||||
static bool default_auto_remaps_enable = true;
|
||||
@ -456,13 +457,13 @@ static bool default_log_to_file = false;
|
||||
static bool log_to_file_timestamp = false;
|
||||
|
||||
/* Crop overscanned frames. */
|
||||
static const bool crop_overscan = true;
|
||||
#define DEFAULT_CROP_OVERSCAN true
|
||||
|
||||
/* Font size for on-screen messages. */
|
||||
#if defined(HAVE_LIBDBGFONT)
|
||||
static const float font_size = 1.0f;
|
||||
#define DEFAULT_FONT_SIZE 1.0f
|
||||
#else
|
||||
static const float font_size = 32;
|
||||
#define DEFAULT_FONT_SIZE 32
|
||||
#endif
|
||||
|
||||
/* Offset for where messages will be placed on-screen.
|
||||
@ -536,7 +537,7 @@ static const unsigned video_3ds_display_mode = CTR_VIDEO_MODE_3D;
|
||||
/* AUDIO */
|
||||
|
||||
/* Will enable audio or not. */
|
||||
static const bool audio_enable = true;
|
||||
#define DEFAULT_AUDIO_ENABLE true
|
||||
|
||||
/* Enable menu audio sounds. */
|
||||
static const bool audio_enable_menu = false;
|
||||
@ -553,11 +554,11 @@ static const bool menu_enable_widgets = false;
|
||||
|
||||
/* Output samplerate. */
|
||||
#ifdef GEKKO
|
||||
static const unsigned out_rate = 32000;
|
||||
#define DEFAULT_OUTPUT_RATE 32000
|
||||
#elif defined(_3DS)
|
||||
static const unsigned out_rate = 32730;
|
||||
#define DEFAULT_OUTPUT_RATE 32730
|
||||
#else
|
||||
static const unsigned out_rate = 48000;
|
||||
#define DEFAULT_OUTPUT_RATE 48000
|
||||
#endif
|
||||
|
||||
/* Audio device (e.g. hw:0,0 or /dev/audio). If NULL, will use defaults. */
|
||||
@ -567,34 +568,34 @@ static const char *audio_device = NULL;
|
||||
* if driver can't provide given latency. */
|
||||
#if defined(ANDROID) || defined(EMSCRIPTEN)
|
||||
/* For most Android devices, 64ms is way too low. */
|
||||
static const int out_latency = 128;
|
||||
#define DEFAULT_OUT_LATENCY 128
|
||||
#else
|
||||
static const int out_latency = 64;
|
||||
#define DEFAULT_OUT_LATENCY 64
|
||||
#endif
|
||||
|
||||
/* Will sync audio. (recommended) */
|
||||
static const bool audio_sync = true;
|
||||
#define DEFAULT_AUDIO_SYNC true
|
||||
|
||||
/* Audio rate control. */
|
||||
#if !defined(RARCH_CONSOLE)
|
||||
static const bool rate_control = true;
|
||||
#define DEFAULT_RATE_CONTROL true
|
||||
#else
|
||||
static const bool rate_control = false;
|
||||
#define DEFAULT_RATE_CONTROL false
|
||||
#endif
|
||||
|
||||
/* Rate control delta. Defines how much rate_control
|
||||
* is allowed to adjust input rate. */
|
||||
static const float rate_control_delta = 0.005;
|
||||
#define DEFAULT_RATE_CONTROL_DELTA 0.005
|
||||
|
||||
/* Maximum timing skew. Defines how much adjust_system_rates
|
||||
* is allowed to adjust input rate. */
|
||||
static const float max_timing_skew = 0.05;
|
||||
#define DEFAULT_MAX_TIMING_SKEW 0.05
|
||||
|
||||
/* Default audio volume in dB. (0.0 dB == unity gain). */
|
||||
static const float audio_volume = 0.0;
|
||||
#define DEFAULT_AUDIO_VOLUME 0.0
|
||||
|
||||
/* Default audio volume of the audio mixer in dB. (0.0 dB == unity gain). */
|
||||
static const float audio_mixer_volume = 0.0;
|
||||
#define DEFAULT_AUDIO_MIXER_VOLUME 0.0
|
||||
|
||||
#ifdef HAVE_WASAPI
|
||||
/* WASAPI defaults */
|
||||
@ -606,56 +607,56 @@ static const int wasapi_sh_buffer_length = -16; /* auto */
|
||||
/* MISC */
|
||||
|
||||
/* Enables displaying the current frames per second. */
|
||||
static const bool fps_show = false;
|
||||
#define DEFAULT_FPS_SHOW false
|
||||
|
||||
/* Enables displaying the current frame count. */
|
||||
static const bool framecount_show = false;
|
||||
#define DEFAULT_FRAMECOUNT_SHOW false
|
||||
|
||||
/* Includes displaying the current memory usage/total with FPS/Frames. */
|
||||
static const bool memory_show = false;
|
||||
#define DEFAULT_MEMORY_SHOW false
|
||||
|
||||
/* Enables displaying various timing statistics. */
|
||||
static const bool statistics_show = false;
|
||||
#define DEFAULT_STATISTICS_SHOW false
|
||||
|
||||
/* Enables use of rewind. This will incur some memory footprint
|
||||
* depending on the save state buffer. */
|
||||
static const bool rewind_enable = false;
|
||||
#define DEFAULT_REWIND_ENABLE false
|
||||
|
||||
/* When set, any time a cheat is toggled it is immediately applied. */
|
||||
static const bool apply_cheats_after_toggle = false;
|
||||
#define DEFAULT_APPLY_CHEATS_AFTER_TOGGLE false
|
||||
|
||||
/* When set, all enabled cheats are auto-applied when a game is loaded. */
|
||||
static const bool apply_cheats_after_load = false;
|
||||
#define DEFAULT_APPLY_CHEATS_AFTER_LOAD false
|
||||
|
||||
/* The buffer size for the rewind buffer. This needs to be about
|
||||
* 15-20MB per minute. Very game dependant. */
|
||||
static const unsigned rewind_buffer_size = 20 << 20; /* 20MiB */
|
||||
#define DEFAULT_REWIND_BUFFER_SIZE (20 << 20) /* 20MiB */
|
||||
|
||||
/* The amount of MB to increase/decrease the rewind_buffer_size when it is changed via the UI. */
|
||||
static const unsigned rewind_buffer_size_step = 10; /* 10MB */
|
||||
#define DEFAULT_REWIND_BUFFER_SIZE_STEP 10 /* 10MB */
|
||||
|
||||
/* How many frames to rewind at a time. */
|
||||
static const unsigned rewind_granularity = 1;
|
||||
#define DEFAULT_REWIND_GRANULARITY 1
|
||||
|
||||
/* Pause gameplay when gameplay loses focus. */
|
||||
#ifdef EMSCRIPTEN
|
||||
static const bool pause_nonactive = false;
|
||||
#define DEFAULT_PAUSE_NONACTIVE false
|
||||
#else
|
||||
static const bool pause_nonactive = true;
|
||||
#define DEFAULT_PAUSE_NONACTIVE true
|
||||
#endif
|
||||
|
||||
/* Saves non-volatile SRAM at a regular interval.
|
||||
* It is measured in seconds. A value of 0 disables autosave. */
|
||||
#if defined(__i386__) || defined(__i486__) || defined(__i686__) || defined(__x86_64__) || defined(_M_X64) || defined(_WIN32) || defined(OSX) || defined(ANDROID) || defined(IOS)
|
||||
/* Flush to file every 10 seconds on modern platforms by default */
|
||||
static const unsigned autosave_interval = 10;
|
||||
#define DEFAULT_AUTOSAVE_INTERVAL 10
|
||||
#else
|
||||
/* Default to disabled on I/O-constrained platforms */
|
||||
static const unsigned autosave_interval = 0;
|
||||
#define DEFAULT_AUTOSAVE_INTERVAL 0
|
||||
#endif
|
||||
|
||||
/* Publicly announce netplay */
|
||||
static const bool netplay_public_announce = true;
|
||||
#define DEFAULT_NETPLAY_PUBLIC_ANNOUNCE true
|
||||
|
||||
/* Start netplay in spectator mode */
|
||||
static const bool netplay_start_as_spectator = false;
|
||||
@ -691,7 +692,7 @@ static const unsigned netplay_share_analog = RARCH_NETPLAY_SHARE_ANALOG_NO_PREFE
|
||||
|
||||
/* On save state load, block SRAM from being overwritten.
|
||||
* This could potentially lead to buggy games. */
|
||||
static const bool block_sram_overwrite = false;
|
||||
#define DEFAULT_BLOCK_SRAM_OVERWRITE false
|
||||
|
||||
/* When saving savestates, state index is automatically
|
||||
* incremented before saving.
|
||||
@ -709,16 +710,16 @@ static const bool savestate_auto_load = false;
|
||||
static const bool savestate_thumbnail_enable = false;
|
||||
|
||||
/* Slowmotion ratio. */
|
||||
static const float slowmotion_ratio = 3.0;
|
||||
#define DEFAULT_SLOWMOTION_RATIO 3.0
|
||||
|
||||
/* Maximum fast forward ratio. */
|
||||
static const float fastforward_ratio = 0.0;
|
||||
#define DEFAULT_FASTFORWARD_RATIO 0.0
|
||||
|
||||
/* Enable runloop for variable refresh rate screens. Force x1 speed while handling fast forward too. */
|
||||
static const bool vrr_runloop_enable = false;
|
||||
#define DEFAULT_VRR_RUNLOOP_ENABLE false
|
||||
|
||||
/* Run core logic one or more frames ahead then load the state back to reduce perceived input lag. */
|
||||
static const unsigned run_ahead_frames = 1;
|
||||
#define DEFAULT_RUN_AHEAD_FRAMES 1
|
||||
|
||||
/* When using the Run Ahead feature, use a secondary instance of the core. */
|
||||
static const bool run_ahead_secondary_instance = true;
|
||||
@ -750,6 +751,8 @@ static const unsigned playlist_show_inline_core_name = PLAYLIST_INLINE_CORE_DISP
|
||||
|
||||
/* Specifies which runtime record to use on playlist sublabels */
|
||||
static const unsigned playlist_sublabel_runtime_type = PLAYLIST_RUNTIME_PER_CORE;
|
||||
|
||||
static const unsigned playlist_entry_remove_enable = PLAYLIST_ENTRY_REMOVE_ENABLE_ALL;
|
||||
#endif
|
||||
|
||||
static const bool scan_without_core_match = false;
|
||||
|
143
configuration.c
143
configuration.c
@ -1357,7 +1357,7 @@ static struct config_bool_setting *populate_settings_bool(settings_t *settings,
|
||||
SETTING_BOOL("all_users_control_menu", &settings->bools.input_all_users_control_menu, true, all_users_control_menu, false);
|
||||
SETTING_BOOL("menu_swap_ok_cancel_buttons", &settings->bools.input_menu_swap_ok_cancel_buttons, true, menu_swap_ok_cancel_buttons, false);
|
||||
#ifdef HAVE_NETWORKING
|
||||
SETTING_BOOL("netplay_public_announce", &settings->bools.netplay_public_announce, true, netplay_public_announce, false);
|
||||
SETTING_BOOL("netplay_public_announce", &settings->bools.netplay_public_announce, true, DEFAULT_NETPLAY_PUBLIC_ANNOUNCE, false);
|
||||
SETTING_BOOL("netplay_start_as_spectator", &settings->bools.netplay_start_as_spectator, false, netplay_start_as_spectator, false);
|
||||
SETTING_BOOL("netplay_allow_slaves", &settings->bools.netplay_allow_slaves, true, netplay_allow_slaves, false);
|
||||
SETTING_BOOL("netplay_require_slaves", &settings->bools.netplay_require_slaves, true, netplay_require_slaves, false);
|
||||
@ -1384,53 +1384,53 @@ static struct config_bool_setting *populate_settings_bool(settings_t *settings,
|
||||
#endif
|
||||
SETTING_BOOL("input_descriptor_label_show", &settings->bools.input_descriptor_label_show, true, input_descriptor_label_show, false);
|
||||
SETTING_BOOL("input_descriptor_hide_unbound", &settings->bools.input_descriptor_hide_unbound, true, input_descriptor_hide_unbound, false);
|
||||
SETTING_BOOL("load_dummy_on_core_shutdown", &settings->bools.load_dummy_on_core_shutdown, true, load_dummy_on_core_shutdown, false);
|
||||
SETTING_BOOL("check_firmware_before_loading", &settings->bools.check_firmware_before_loading, true, check_firmware_before_loading, false);
|
||||
SETTING_BOOL("load_dummy_on_core_shutdown", &settings->bools.load_dummy_on_core_shutdown, true, DEFAULT_LOAD_DUMMY_ON_CORE_SHUTDOWN, false);
|
||||
SETTING_BOOL("check_firmware_before_loading", &settings->bools.check_firmware_before_loading, true, DEFAULT_CHECK_FIRMWARE_BEFORE_LOADING, false);
|
||||
SETTING_BOOL("builtin_mediaplayer_enable", &settings->bools.multimedia_builtin_mediaplayer_enable, false, false /* TODO */, false);
|
||||
SETTING_BOOL("builtin_imageviewer_enable", &settings->bools.multimedia_builtin_imageviewer_enable, true, true, false);
|
||||
SETTING_BOOL("fps_show", &settings->bools.video_fps_show, true, fps_show, false);
|
||||
SETTING_BOOL("statistics_show", &settings->bools.video_statistics_show, true, statistics_show, false);
|
||||
SETTING_BOOL("framecount_show", &settings->bools.video_framecount_show, true, framecount_show, false);
|
||||
SETTING_BOOL("memory_show", &settings->bools.video_memory_show, true, memory_show, false);
|
||||
SETTING_BOOL("fps_show", &settings->bools.video_fps_show, true, DEFAULT_FPS_SHOW, false);
|
||||
SETTING_BOOL("statistics_show", &settings->bools.video_statistics_show, true, DEFAULT_STATISTICS_SHOW, false);
|
||||
SETTING_BOOL("framecount_show", &settings->bools.video_framecount_show, true, DEFAULT_FRAMECOUNT_SHOW, false);
|
||||
SETTING_BOOL("memory_show", &settings->bools.video_memory_show, true, DEFAULT_MEMORY_SHOW, false);
|
||||
SETTING_BOOL("ui_menubar_enable", &settings->bools.ui_menubar_enable, true, true, false);
|
||||
SETTING_BOOL("suspend_screensaver_enable", &settings->bools.ui_suspend_screensaver_enable, true, true, false);
|
||||
SETTING_BOOL("rewind_enable", &settings->bools.rewind_enable, true, rewind_enable, false);
|
||||
SETTING_BOOL("vrr_runloop_enable", &settings->bools.vrr_runloop_enable, true, vrr_runloop_enable, false);
|
||||
SETTING_BOOL("apply_cheats_after_toggle", &settings->bools.apply_cheats_after_toggle, true, apply_cheats_after_toggle, false);
|
||||
SETTING_BOOL("apply_cheats_after_load", &settings->bools.apply_cheats_after_load, true, apply_cheats_after_load, false);
|
||||
SETTING_BOOL("rewind_enable", &settings->bools.rewind_enable, true, DEFAULT_REWIND_ENABLE, false);
|
||||
SETTING_BOOL("vrr_runloop_enable", &settings->bools.vrr_runloop_enable, true, DEFAULT_VRR_RUNLOOP_ENABLE, false);
|
||||
SETTING_BOOL("apply_cheats_after_toggle", &settings->bools.apply_cheats_after_toggle, true, DEFAULT_APPLY_CHEATS_AFTER_TOGGLE, false);
|
||||
SETTING_BOOL("apply_cheats_after_load", &settings->bools.apply_cheats_after_load, true, DEFAULT_APPLY_CHEATS_AFTER_LOAD, false);
|
||||
SETTING_BOOL("run_ahead_enabled", &settings->bools.run_ahead_enabled, true, false, false);
|
||||
SETTING_BOOL("run_ahead_secondary_instance", &settings->bools.run_ahead_secondary_instance, true, false, false);
|
||||
SETTING_BOOL("run_ahead_hide_warnings", &settings->bools.run_ahead_hide_warnings, true, false, false);
|
||||
SETTING_BOOL("audio_sync", &settings->bools.audio_sync, true, audio_sync, false);
|
||||
SETTING_BOOL("video_shader_enable", &settings->bools.video_shader_enable, true, shader_enable, false);
|
||||
SETTING_BOOL("audio_sync", &settings->bools.audio_sync, true, DEFAULT_AUDIO_SYNC, false);
|
||||
SETTING_BOOL("video_shader_enable", &settings->bools.video_shader_enable, true, DEFAULT_SHADER_ENABLE, false);
|
||||
SETTING_BOOL("video_shader_watch_files", &settings->bools.video_shader_watch_files, true, video_shader_watch_files, false);
|
||||
|
||||
/* Let implementation decide if automatic, or 1:1 PAR. */
|
||||
SETTING_BOOL("video_aspect_ratio_auto", &settings->bools.video_aspect_ratio_auto, true, aspect_ratio_auto, false);
|
||||
SETTING_BOOL("video_aspect_ratio_auto", &settings->bools.video_aspect_ratio_auto, true, DEFAULT_ASPECT_RATIO_AUTO, false);
|
||||
|
||||
SETTING_BOOL("video_allow_rotate", &settings->bools.video_allow_rotate, true, allow_rotate, false);
|
||||
SETTING_BOOL("video_windowed_fullscreen", &settings->bools.video_windowed_fullscreen, true, windowed_fullscreen, false);
|
||||
SETTING_BOOL("video_crop_overscan", &settings->bools.video_crop_overscan, true, crop_overscan, false);
|
||||
SETTING_BOOL("video_scale_integer", &settings->bools.video_scale_integer, true, scale_integer, false);
|
||||
SETTING_BOOL("video_smooth", &settings->bools.video_smooth, true, video_smooth, false);
|
||||
SETTING_BOOL("video_force_aspect", &settings->bools.video_force_aspect, true, force_aspect, false);
|
||||
SETTING_BOOL("video_windowed_fullscreen", &settings->bools.video_windowed_fullscreen, true, DEFAULT_WINDOWED_FULLSCREEN, false);
|
||||
SETTING_BOOL("video_crop_overscan", &settings->bools.video_crop_overscan, true, DEFAULT_CROP_OVERSCAN, false);
|
||||
SETTING_BOOL("video_scale_integer", &settings->bools.video_scale_integer, true, DEFAULT_SCALE_INTEGER, false);
|
||||
SETTING_BOOL("video_smooth", &settings->bools.video_smooth, true, DEFAULT_VIDEO_SMOOTH, false);
|
||||
SETTING_BOOL("video_force_aspect", &settings->bools.video_force_aspect, true, DEFAULT_FORCE_ASPECT, false);
|
||||
SETTING_BOOL("video_threaded", video_driver_get_threaded(), true, DEFAULT_VIDEO_THREADED, false);
|
||||
SETTING_BOOL("video_shared_context", &settings->bools.video_shared_context, true, video_shared_context, false);
|
||||
SETTING_BOOL("video_shared_context", &settings->bools.video_shared_context, true, DEFAULT_VIDEO_SHARED_CONTEXT, false);
|
||||
SETTING_BOOL("auto_screenshot_filename", &settings->bools.auto_screenshot_filename, true, auto_screenshot_filename, false);
|
||||
SETTING_BOOL("video_force_srgb_disable", &settings->bools.video_force_srgb_disable, true, false, false);
|
||||
SETTING_BOOL("video_fullscreen", &settings->bools.video_fullscreen, true, fullscreen, false);
|
||||
SETTING_BOOL("video_fullscreen", &settings->bools.video_fullscreen, true, DEFAULT_FULLSCREEN, false);
|
||||
SETTING_BOOL("bundle_assets_extract_enable", &settings->bools.bundle_assets_extract_enable, true, DEFAULT_BUNDLE_ASSETS_EXTRACT_ENABLE, false);
|
||||
SETTING_BOOL("video_vsync", &settings->bools.video_vsync, true, vsync, false);
|
||||
SETTING_BOOL("video_adaptive_vsync", &settings->bools.video_adaptive_vsync, true, adaptive_vsync, false);
|
||||
SETTING_BOOL("video_hard_sync", &settings->bools.video_hard_sync, true, hard_sync, false);
|
||||
SETTING_BOOL("video_black_frame_insertion", &settings->bools.video_black_frame_insertion, true, black_frame_insertion, false);
|
||||
SETTING_BOOL("video_disable_composition", &settings->bools.video_disable_composition, true, disable_composition, false);
|
||||
SETTING_BOOL("pause_nonactive", &settings->bools.pause_nonactive, true, pause_nonactive, false);
|
||||
SETTING_BOOL("video_vsync", &settings->bools.video_vsync, true, DEFAULT_VSYNC, false);
|
||||
SETTING_BOOL("video_adaptive_vsync", &settings->bools.video_adaptive_vsync, true, DEFAULT_ADAPTIVE_VSYNC, false);
|
||||
SETTING_BOOL("video_hard_sync", &settings->bools.video_hard_sync, true, DEFAULT_HARD_SYNC, false);
|
||||
SETTING_BOOL("video_black_frame_insertion", &settings->bools.video_black_frame_insertion, true, DEFAULT_BLACK_FRAME_INSERTION, false);
|
||||
SETTING_BOOL("video_disable_composition", &settings->bools.video_disable_composition, true, DEFAULT_DISABLE_COMPOSITION, false);
|
||||
SETTING_BOOL("pause_nonactive", &settings->bools.pause_nonactive, true, DEFAULT_PAUSE_NONACTIVE, false);
|
||||
SETTING_BOOL("video_gpu_screenshot", &settings->bools.video_gpu_screenshot, true, gpu_screenshot, false);
|
||||
SETTING_BOOL("video_post_filter_record", &settings->bools.video_post_filter_record, true, post_filter_record, false);
|
||||
SETTING_BOOL("keyboard_gamepad_enable", &settings->bools.input_keyboard_gamepad_enable, true, true, false);
|
||||
SETTING_BOOL("core_set_supports_no_game_enable", &settings->bools.set_supports_no_game_enable, true, true, false);
|
||||
SETTING_BOOL("audio_enable", &settings->bools.audio_enable, true, audio_enable, false);
|
||||
SETTING_BOOL("audio_enable", &settings->bools.audio_enable, true, DEFAULT_AUDIO_ENABLE, false);
|
||||
SETTING_BOOL("menu_enable_widgets", &settings->bools.menu_enable_widgets, true, menu_enable_widgets, false);
|
||||
SETTING_BOOL("audio_enable_menu", &settings->bools.audio_enable_menu, true, audio_enable_menu, false);
|
||||
SETTING_BOOL("audio_enable_menu_ok", &settings->bools.audio_enable_menu_ok, true, audio_enable_menu_ok, false);
|
||||
@ -1452,10 +1452,10 @@ static struct config_bool_setting *populate_settings_bool(settings_t *settings,
|
||||
SETTING_BOOL("small_keyboard_enable", &settings->bools.input_small_keyboard_enable, true, false, false);
|
||||
#endif
|
||||
#ifdef GEKKO
|
||||
SETTING_BOOL("video_vfilter", &settings->bools.video_vfilter, true, video_vfilter, false);
|
||||
SETTING_BOOL("video_vfilter", &settings->bools.video_vfilter, true, DEFAULT_VIDEO_VFILTER, false);
|
||||
#endif
|
||||
#ifdef HAVE_THREADS
|
||||
SETTING_BOOL("threaded_data_runloop_enable", &settings->bools.threaded_data_runloop_enable, true, threaded_data_runloop_enable, false);
|
||||
SETTING_BOOL("threaded_data_runloop_enable", &settings->bools.threaded_data_runloop_enable, true, DEFAULT_THREADED_DATA_RUNLOOP_ENABLE, false);
|
||||
#endif
|
||||
#ifdef HAVE_MENU
|
||||
SETTING_BOOL("menu_unified_controls", &settings->bools.menu_unified_controls, true, false, false);
|
||||
@ -1464,7 +1464,7 @@ static struct config_bool_setting *populate_settings_bool(settings_t *settings,
|
||||
SETTING_BOOL("menu_horizontal_animation", &settings->bools.menu_horizontal_animation, true, true, false);
|
||||
SETTING_BOOL("dpi_override_enable", &settings->bools.menu_dpi_override_enable, true, menu_dpi_override_enable, false);
|
||||
SETTING_BOOL("menu_pause_libretro", &settings->bools.menu_pause_libretro, true, true, false);
|
||||
SETTING_BOOL("menu_mouse_enable", &settings->bools.menu_mouse_enable, true, def_mouse_enable, false);
|
||||
SETTING_BOOL("menu_mouse_enable", &settings->bools.menu_mouse_enable, true, DEFAULT_MOUSE_ENABLE, false);
|
||||
SETTING_BOOL("menu_pointer_enable", &settings->bools.menu_pointer_enable, true, DEFAULT_POINTER_ENABLE, false);
|
||||
SETTING_BOOL("menu_timedate_enable", &settings->bools.menu_timedate_enable, true, true, false);
|
||||
SETTING_BOOL("menu_battery_level_enable", &settings->bools.menu_battery_level_enable, true, true, false);
|
||||
@ -1536,7 +1536,7 @@ static struct config_bool_setting *populate_settings_bool(settings_t *settings,
|
||||
&settings->bools.menu_navigation_browser_filter_supported_extensions_enable, true, true, false);
|
||||
SETTING_BOOL("menu_show_advanced_settings", &settings->bools.menu_show_advanced_settings, true, show_advanced_settings, false);
|
||||
#ifdef HAVE_MATERIALUI
|
||||
SETTING_BOOL("materialui_icons_enable", &settings->bools.menu_materialui_icons_enable, true, materialui_icons_enable, false);
|
||||
SETTING_BOOL("materialui_icons_enable", &settings->bools.menu_materialui_icons_enable, true, DEFAULT_MATERIALUI_ICONS_ENABLE, false);
|
||||
#endif
|
||||
#ifdef HAVE_RGUI
|
||||
SETTING_BOOL("rgui_background_filler_thickness_enable", &settings->bools.menu_rgui_background_filler_thickness_enable, true, true, false);
|
||||
@ -1554,7 +1554,7 @@ static struct config_bool_setting *populate_settings_bool(settings_t *settings,
|
||||
#endif
|
||||
#endif
|
||||
#ifdef HAVE_CHEEVOS
|
||||
SETTING_BOOL("cheevos_enable", &settings->bools.cheevos_enable, true, cheevos_enable, false);
|
||||
SETTING_BOOL("cheevos_enable", &settings->bools.cheevos_enable, true, DEFAULT_CHEEVOS_ENABLE, false);
|
||||
SETTING_BOOL("cheevos_test_unofficial", &settings->bools.cheevos_test_unofficial, true, false, false);
|
||||
SETTING_BOOL("cheevos_hardcore_mode_enable", &settings->bools.cheevos_hardcore_mode_enable, true, false, false);
|
||||
SETTING_BOOL("cheevos_leaderboards_enable", &settings->bools.cheevos_leaderboards_enable, true, false, false);
|
||||
@ -1568,7 +1568,8 @@ static struct config_bool_setting *populate_settings_bool(settings_t *settings,
|
||||
SETTING_BOOL("input_overlay_enable", &settings->bools.input_overlay_enable, true, config_overlay_enable_default(), false);
|
||||
SETTING_BOOL("input_overlay_enable_autopreferred", &settings->bools.input_overlay_enable_autopreferred, true, true, false);
|
||||
SETTING_BOOL("input_overlay_show_physical_inputs", &settings->bools.input_overlay_show_physical_inputs, true, false, false);
|
||||
SETTING_BOOL("input_overlay_hide_in_menu", &settings->bools.input_overlay_hide_in_menu, true, overlay_hide_in_menu, false);
|
||||
SETTING_BOOL("input_overlay_hide_in_menu", &settings->bools.input_overlay_hide_in_menu, true, DEFAULT_OVERLAY_HIDE_IN_MENU, false);
|
||||
SETTING_BOOL("input_overlay_show_mouse_cursor", &settings->bools.input_overlay_show_mouse_cursor, true, DEFAULT_OVERLAY_SHOW_MOUSE_CURSOR, false);
|
||||
#endif
|
||||
#ifdef HAVE_VIDEO_LAYOUT
|
||||
SETTING_BOOL("video_layout_enable", &settings->bools.video_layout_enable, true, true, false);
|
||||
@ -1583,13 +1584,12 @@ static struct config_bool_setting *populate_settings_bool(settings_t *settings,
|
||||
#ifdef HAVE_NETWORKING
|
||||
SETTING_BOOL("netplay_nat_traversal", &settings->bools.netplay_nat_traversal, true, true, false);
|
||||
#endif
|
||||
SETTING_BOOL("block_sram_overwrite", &settings->bools.block_sram_overwrite, true, block_sram_overwrite, false);
|
||||
SETTING_BOOL("block_sram_overwrite", &settings->bools.block_sram_overwrite, true, DEFAULT_BLOCK_SRAM_OVERWRITE, false);
|
||||
SETTING_BOOL("savestate_auto_index", &settings->bools.savestate_auto_index, true, savestate_auto_index, false);
|
||||
SETTING_BOOL("savestate_auto_save", &settings->bools.savestate_auto_save, true, savestate_auto_save, false);
|
||||
SETTING_BOOL("savestate_auto_load", &settings->bools.savestate_auto_load, true, savestate_auto_load, false);
|
||||
SETTING_BOOL("savestate_thumbnail_enable", &settings->bools.savestate_thumbnail_enable, true, savestate_thumbnail_enable, false);
|
||||
SETTING_BOOL("history_list_enable", &settings->bools.history_list_enable, true, def_history_list_enable, false);
|
||||
SETTING_BOOL("playlist_entry_remove", &settings->bools.playlist_entry_remove, true, def_playlist_entry_remove, false);
|
||||
SETTING_BOOL("playlist_entry_rename", &settings->bools.playlist_entry_rename, true, def_playlist_entry_rename, false);
|
||||
SETTING_BOOL("game_specific_options", &settings->bools.game_specific_options, true, default_game_specific_options, false);
|
||||
SETTING_BOOL("auto_overrides_enable", &settings->bools.auto_overrides_enable, true, default_auto_overrides_enable, false);
|
||||
@ -1598,10 +1598,10 @@ static struct config_bool_setting *populate_settings_bool(settings_t *settings,
|
||||
SETTING_BOOL("scan_without_core_match", &settings->bools.scan_without_core_match, true, scan_without_core_match, false);
|
||||
SETTING_BOOL("sort_savefiles_enable", &settings->bools.sort_savefiles_enable, true, default_sort_savefiles_enable, false);
|
||||
SETTING_BOOL("sort_savestates_enable", &settings->bools.sort_savestates_enable, true, default_sort_savestates_enable, false);
|
||||
SETTING_BOOL("config_save_on_exit", &settings->bools.config_save_on_exit, true, config_save_on_exit, false);
|
||||
SETTING_BOOL("show_hidden_files", &settings->bools.show_hidden_files, true, show_hidden_files, false);
|
||||
SETTING_BOOL("config_save_on_exit", &settings->bools.config_save_on_exit, true, DEFAULT_CONFIG_SAVE_ON_EXIT, false);
|
||||
SETTING_BOOL("show_hidden_files", &settings->bools.show_hidden_files, true, DEFAULT_SHOW_HIDDEN_FILES, false);
|
||||
SETTING_BOOL("input_autodetect_enable", &settings->bools.input_autodetect_enable, true, input_autodetect_enable, false);
|
||||
SETTING_BOOL("audio_rate_control", &settings->bools.audio_rate_control, true, rate_control, false);
|
||||
SETTING_BOOL("audio_rate_control", &settings->bools.audio_rate_control, true, DEFAULT_RATE_CONTROL, false);
|
||||
#ifdef HAVE_WASAPI
|
||||
SETTING_BOOL("audio_wasapi_exclusive_mode", &settings->bools.audio_wasapi_exclusive_mode, true, wasapi_exclusive_mode, false);
|
||||
SETTING_BOOL("audio_wasapi_float_format", &settings->bools.audio_wasapi_float_format, true, wasapi_float_format, false);
|
||||
@ -1613,7 +1613,7 @@ static struct config_bool_setting *populate_settings_bool(settings_t *settings,
|
||||
SETTING_BOOL("screenshots_in_content_dir", &settings->bools.screenshots_in_content_dir, true, default_screenshots_in_content_dir, false);
|
||||
|
||||
SETTING_BOOL("video_msg_bgcolor_enable", &settings->bools.video_msg_bgcolor_enable, true, message_bgcolor_enable, false);
|
||||
SETTING_BOOL("video_window_show_decorations", &settings->bools.video_window_show_decorations, true, window_decorations, false);
|
||||
SETTING_BOOL("video_window_show_decorations", &settings->bools.video_window_show_decorations, true, DEFAULT_WINDOW_DECORATIONS, false);
|
||||
SETTING_BOOL("video_window_save_positions", &settings->bools.video_window_save_positions, true, false, false);
|
||||
|
||||
SETTING_BOOL("sustained_performance_mode", &settings->bools.sustained_performance_mode, true, sustained_performance_mode, false);
|
||||
@ -1655,16 +1655,16 @@ static struct config_float_setting *populate_settings_float(settings_t *settings
|
||||
if (!tmp)
|
||||
return NULL;
|
||||
|
||||
SETTING_FLOAT("video_aspect_ratio", &settings->floats.video_aspect_ratio, true, aspect_ratio, false);
|
||||
SETTING_FLOAT("video_aspect_ratio", &settings->floats.video_aspect_ratio, true, DEFAULT_ASPECT_RATIO, false);
|
||||
SETTING_FLOAT("video_scale", &settings->floats.video_scale, false, 0.0f, false);
|
||||
SETTING_FLOAT("crt_video_refresh_rate", &settings->floats.crt_video_refresh_rate, true, crt_refresh_rate, false);
|
||||
SETTING_FLOAT("video_refresh_rate", &settings->floats.video_refresh_rate, true, refresh_rate, false);
|
||||
SETTING_FLOAT("audio_rate_control_delta", audio_get_float_ptr(AUDIO_ACTION_RATE_CONTROL_DELTA), true, rate_control_delta, false);
|
||||
SETTING_FLOAT("audio_max_timing_skew", &settings->floats.audio_max_timing_skew, true, max_timing_skew, false);
|
||||
SETTING_FLOAT("audio_volume", &settings->floats.audio_volume, true, audio_volume, false);
|
||||
SETTING_FLOAT("audio_mixer_volume", &settings->floats.audio_mixer_volume, true, audio_mixer_volume, false);
|
||||
SETTING_FLOAT("audio_rate_control_delta", audio_get_float_ptr(AUDIO_ACTION_RATE_CONTROL_DELTA), true, DEFAULT_RATE_CONTROL_DELTA, false);
|
||||
SETTING_FLOAT("audio_max_timing_skew", &settings->floats.audio_max_timing_skew, true, DEFAULT_MAX_TIMING_SKEW, false);
|
||||
SETTING_FLOAT("audio_volume", &settings->floats.audio_volume, true, DEFAULT_AUDIO_VOLUME, false);
|
||||
SETTING_FLOAT("audio_mixer_volume", &settings->floats.audio_mixer_volume, true, DEFAULT_AUDIO_MIXER_VOLUME, false);
|
||||
#ifdef HAVE_OVERLAY
|
||||
SETTING_FLOAT("input_overlay_opacity", &settings->floats.input_overlay_opacity, true, default_input_overlay_opacity, false);
|
||||
SETTING_FLOAT("input_overlay_opacity", &settings->floats.input_overlay_opacity, true, DEFAULT_INPUT_OVERLAY_OPACITY, false);
|
||||
SETTING_FLOAT("input_overlay_scale", &settings->floats.input_overlay_scale, true, 1.0f, false);
|
||||
#endif
|
||||
#ifdef HAVE_MENU
|
||||
@ -1676,9 +1676,9 @@ static struct config_float_setting *populate_settings_float(settings_t *settings
|
||||
#endif
|
||||
SETTING_FLOAT("video_message_pos_x", &settings->floats.video_msg_pos_x, true, message_pos_offset_x, false);
|
||||
SETTING_FLOAT("video_message_pos_y", &settings->floats.video_msg_pos_y, true, message_pos_offset_y, false);
|
||||
SETTING_FLOAT("video_font_size", &settings->floats.video_font_size, true, font_size, false);
|
||||
SETTING_FLOAT("fastforward_ratio", &settings->floats.fastforward_ratio, true, fastforward_ratio, false);
|
||||
SETTING_FLOAT("slowmotion_ratio", &settings->floats.slowmotion_ratio, true, slowmotion_ratio, false);
|
||||
SETTING_FLOAT("video_font_size", &settings->floats.video_font_size, true, DEFAULT_FONT_SIZE, false);
|
||||
SETTING_FLOAT("fastforward_ratio", &settings->floats.fastforward_ratio, true, DEFAULT_FASTFORWARD_RATIO, false);
|
||||
SETTING_FLOAT("slowmotion_ratio", &settings->floats.slowmotion_ratio, true, DEFAULT_SLOWMOTION_RATIO, false);
|
||||
SETTING_FLOAT("input_axis_threshold", input_driver_get_float(INPUT_ACTION_AXIS_THRESHOLD), true, axis_threshold, false);
|
||||
SETTING_FLOAT("input_analog_deadzone", &settings->floats.input_analog_deadzone, true, analog_deadzone, false);
|
||||
SETTING_FLOAT("input_analog_sensitivity", &settings->floats.input_analog_sensitivity, true, analog_sensitivity, false);
|
||||
@ -1713,16 +1713,16 @@ static struct config_uint_setting *populate_settings_uint(settings_t *settings,
|
||||
#ifdef ANDROID
|
||||
SETTING_UINT("input_block_timeout", &settings->uints.input_block_timeout, true, 1, false);
|
||||
#endif
|
||||
SETTING_UINT("rewind_granularity", &settings->uints.rewind_granularity, true, rewind_granularity, false);
|
||||
SETTING_UINT("rewind_buffer_size_step", &settings->uints.rewind_buffer_size_step, true, rewind_buffer_size_step, false);
|
||||
SETTING_UINT("autosave_interval", &settings->uints.autosave_interval, true, autosave_interval, false);
|
||||
SETTING_UINT("rewind_granularity", &settings->uints.rewind_granularity, true, DEFAULT_REWIND_GRANULARITY, false);
|
||||
SETTING_UINT("rewind_buffer_size_step", &settings->uints.rewind_buffer_size_step, true, DEFAULT_REWIND_BUFFER_SIZE_STEP, false);
|
||||
SETTING_UINT("autosave_interval", &settings->uints.autosave_interval, true, DEFAULT_AUTOSAVE_INTERVAL, false);
|
||||
SETTING_UINT("libretro_log_level", &settings->uints.libretro_log_level, true, libretro_log_level, false);
|
||||
SETTING_UINT("keyboard_gamepad_mapping_type",&settings->uints.input_keyboard_gamepad_mapping_type, true, 1, false);
|
||||
SETTING_UINT("input_poll_type_behavior", &settings->uints.input_poll_type_behavior, true, 2, false);
|
||||
SETTING_UINT("video_monitor_index", &settings->uints.video_monitor_index, true, monitor_index, false);
|
||||
SETTING_UINT("video_fullscreen_x", &settings->uints.video_fullscreen_x, true, fullscreen_x, false);
|
||||
SETTING_UINT("video_fullscreen_y", &settings->uints.video_fullscreen_y, true, fullscreen_y, false);
|
||||
SETTING_UINT("video_window_opacity", &settings->uints.video_window_opacity, true, window_opacity, false);
|
||||
SETTING_UINT("video_monitor_index", &settings->uints.video_monitor_index, true, DEFAULT_MONITOR_INDEX, false);
|
||||
SETTING_UINT("video_fullscreen_x", &settings->uints.video_fullscreen_x, true, DEFAULT_FULLSCREEN_X, false);
|
||||
SETTING_UINT("video_fullscreen_y", &settings->uints.video_fullscreen_y, true, DEFAULT_FULLSCREEN_Y, false);
|
||||
SETTING_UINT("video_window_opacity", &settings->uints.video_window_opacity, true, DEFAULT_WINDOW_OPACITY, false);
|
||||
#ifdef HAVE_VIDEO_LAYOUT
|
||||
SETTING_UINT("video_layout_selected_view", &settings->uints.video_layout_selected_view, true, 0, false);
|
||||
#endif
|
||||
@ -1733,7 +1733,9 @@ static struct config_uint_setting *populate_settings_uint(settings_t *settings,
|
||||
SETTING_UINT("network_remote_base_port", &settings->uints.network_remote_base_port, true, network_remote_base_port, false);
|
||||
#endif
|
||||
#ifdef GEKKO
|
||||
SETTING_UINT("video_viwidth", &settings->uints.video_viwidth, true, video_viwidth, false);
|
||||
SETTING_UINT("video_viwidth", &settings->uints.video_viwidth, true, DEFAULT_VIDEO_VI_WIDTH, false);
|
||||
SETTING_UINT("video_overscan_correction_top", &settings->uints.video_overscan_correction_top, true, DEFAULT_VIDEO_OVERSCAN_CORRECTION_TOP, false);
|
||||
SETTING_UINT("video_overscan_correction_bottom", &settings->uints.video_overscan_correction_bottom, true, DEFAULT_VIDEO_OVERSCAN_CORRECTION_BOTTOM, false);
|
||||
#endif
|
||||
#ifdef HAVE_MENU
|
||||
SETTING_UINT("dpi_override_value", &settings->uints.menu_dpi_override_value, true, menu_dpi_override_value, false);
|
||||
@ -1779,20 +1781,20 @@ static struct config_uint_setting *populate_settings_uint(settings_t *settings,
|
||||
SETTING_UINT("ozone_menu_color_theme", &settings->uints.menu_ozone_color_theme, true, 1, false);
|
||||
#endif
|
||||
#endif
|
||||
SETTING_UINT("audio_out_rate", &settings->uints.audio_out_rate, true, out_rate, false);
|
||||
SETTING_UINT("audio_out_rate", &settings->uints.audio_out_rate, true, DEFAULT_OUTPUT_RATE, false);
|
||||
SETTING_UINT("custom_viewport_width", &settings->video_viewport_custom.width, false, 0 /* TODO */, false);
|
||||
SETTING_UINT("crt_switch_resolution_super", &settings->uints.crt_switch_resolution_super, true, crt_switch_resolution_super, false);
|
||||
SETTING_UINT("custom_viewport_height", &settings->video_viewport_custom.height, false, 0 /* TODO */, false);
|
||||
SETTING_UINT("custom_viewport_x", (unsigned*)&settings->video_viewport_custom.x, false, 0 /* TODO */, false);
|
||||
SETTING_UINT("custom_viewport_y", (unsigned*)&settings->video_viewport_custom.y, false, 0 /* TODO */, false);
|
||||
SETTING_UINT("content_history_size", &settings->uints.content_history_size, true, default_content_history_size, false);
|
||||
SETTING_UINT("video_hard_sync_frames", &settings->uints.video_hard_sync_frames, true, hard_sync_frames, false);
|
||||
SETTING_UINT("video_frame_delay", &settings->uints.video_frame_delay, true, frame_delay, false);
|
||||
SETTING_UINT("video_max_swapchain_images", &settings->uints.video_max_swapchain_images, true, max_swapchain_images, false);
|
||||
SETTING_UINT("video_swap_interval", &settings->uints.video_swap_interval, true, swap_interval, false);
|
||||
SETTING_UINT("video_hard_sync_frames", &settings->uints.video_hard_sync_frames, true, DEFAULT_HARD_SYNC_FRAMES, false);
|
||||
SETTING_UINT("video_frame_delay", &settings->uints.video_frame_delay, true, DEFAULT_FRAME_DELAY, false);
|
||||
SETTING_UINT("video_max_swapchain_images", &settings->uints.video_max_swapchain_images, true, DEFAULT_MAX_SWAPCHAIN_IMAGES, false);
|
||||
SETTING_UINT("video_swap_interval", &settings->uints.video_swap_interval, true, DEFAULT_SWAP_INTERVAL, false);
|
||||
SETTING_UINT("video_rotation", &settings->uints.video_rotation, true, ORIENTATION_NORMAL, false);
|
||||
SETTING_UINT("screen_orientation", &settings->uints.screen_orientation, true, ORIENTATION_NORMAL, false);
|
||||
SETTING_UINT("aspect_ratio_index", &settings->uints.video_aspect_ratio_idx, true, aspect_ratio_idx, false);
|
||||
SETTING_UINT("aspect_ratio_index", &settings->uints.video_aspect_ratio_idx, true, DEFAULT_ASPECT_RATIO_IDX, false);
|
||||
#ifdef HAVE_NETWORKING
|
||||
SETTING_UINT("netplay_ip_port", &settings->uints.netplay_port, true, RARCH_DEFAULT_PORT, false);
|
||||
SETTING_OVERRIDE(RARCH_OVERRIDE_SETTING_NETPLAY_IP_PORT);
|
||||
@ -1822,10 +1824,10 @@ static struct config_uint_setting *populate_settings_uint(settings_t *settings,
|
||||
SETTING_UINT("video_stream_scale_factor", &settings->uints.video_stream_scale_factor, true, 1, false);
|
||||
SETTING_UINT("video_windowed_position_x", &settings->uints.window_position_x, true, 0, false);
|
||||
SETTING_UINT("video_windowed_position_y", &settings->uints.window_position_y, true, 0, false);
|
||||
SETTING_UINT("video_windowed_position_width", &settings->uints.window_position_width, true, window_width, false);
|
||||
SETTING_UINT("video_windowed_position_height", &settings->uints.window_position_height, true, window_height, false);
|
||||
SETTING_UINT("video_windowed_position_width", &settings->uints.window_position_width, true, DEFAULT_WINDOW_WIDTH, false);
|
||||
SETTING_UINT("video_windowed_position_height", &settings->uints.window_position_height, true, DEFAULT_WINDOW_HEIGHT, false);
|
||||
|
||||
SETTING_UINT("video_record_threads", &settings->uints.video_record_threads, true, video_record_threads, false);
|
||||
SETTING_UINT("video_record_threads", &settings->uints.video_record_threads, true, DEFAULT_VIDEO_RECORD_THREADS, false);
|
||||
|
||||
#ifdef HAVE_LIBNX
|
||||
SETTING_UINT("libnx_overclock", &settings->uints.libnx_overclock, true, SWITCH_DEFAULT_CPU_PROFILE, false);
|
||||
@ -1836,6 +1838,7 @@ static struct config_uint_setting *populate_settings_uint(settings_t *settings,
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_MENU
|
||||
SETTING_UINT("playlist_entry_remove_enable", &settings->uints.playlist_entry_remove_enable, true, playlist_entry_remove_enable, false);
|
||||
SETTING_UINT("playlist_show_inline_core_name", &settings->uints.playlist_show_inline_core_name, true, playlist_show_inline_core_name, false);
|
||||
SETTING_UINT("playlist_sublabel_runtime_type", &settings->uints.playlist_sublabel_runtime_type, true, playlist_sublabel_runtime_type, false);
|
||||
#endif
|
||||
@ -1853,7 +1856,7 @@ static struct config_size_setting *populate_settings_size(settings_t *settings,
|
||||
if (!tmp)
|
||||
return NULL;
|
||||
|
||||
SETTING_SIZE("rewind_buffer_size", &settings->sizes.rewind_buffer_size, true, rewind_buffer_size, false);
|
||||
SETTING_SIZE("rewind_buffer_size", &settings->sizes.rewind_buffer_size, true, DEFAULT_REWIND_BUFFER_SIZE, false);
|
||||
|
||||
*size = count;
|
||||
|
||||
@ -2038,7 +2041,7 @@ void config_set_defaults(void)
|
||||
#else
|
||||
configuration_set_bool(settings, settings->bools.multimedia_builtin_mediaplayer_enable, false);
|
||||
#endif
|
||||
settings->floats.video_scale = scale;
|
||||
settings->floats.video_scale = DEFAULT_SCALE;
|
||||
|
||||
if (g_defaults.settings.video_threaded_enable != DEFAULT_VIDEO_THREADED)
|
||||
video_driver_set_threaded(g_defaults.settings.video_threaded_enable);
|
||||
@ -2056,7 +2059,7 @@ void config_set_defaults(void)
|
||||
audio_device, sizeof(settings->arrays.audio_device));
|
||||
|
||||
if (!g_defaults.settings.out_latency)
|
||||
g_defaults.settings.out_latency = out_latency;
|
||||
g_defaults.settings.out_latency = DEFAULT_OUT_LATENCY;
|
||||
|
||||
settings->uints.audio_latency = g_defaults.settings.out_latency;
|
||||
|
||||
@ -2364,7 +2367,7 @@ void config_set_defaults(void)
|
||||
midi_output, sizeof(settings->arrays.midi_output));
|
||||
|
||||
/* Avoid reloading config on every content load */
|
||||
if (default_block_config_read)
|
||||
if (DEFAULT_BLOCK_CONFIG_READ)
|
||||
rarch_ctl(RARCH_CTL_SET_BLOCK_CONFIG_READ, NULL);
|
||||
else
|
||||
rarch_ctl(RARCH_CTL_UNSET_BLOCK_CONFIG_READ, NULL);
|
||||
|
@ -129,6 +129,7 @@ typedef struct settings
|
||||
bool input_overlay_enable_autopreferred;
|
||||
bool input_overlay_hide_in_menu;
|
||||
bool input_overlay_show_physical_inputs;
|
||||
bool input_overlay_show_mouse_cursor;
|
||||
bool input_descriptor_label_show;
|
||||
bool input_descriptor_hide_unbound;
|
||||
bool input_all_users_control_menu;
|
||||
@ -275,7 +276,6 @@ typedef struct settings
|
||||
bool set_supports_no_game_enable;
|
||||
bool auto_screenshot_filename;
|
||||
bool history_list_enable;
|
||||
bool playlist_entry_remove;
|
||||
bool playlist_entry_rename;
|
||||
bool rewind_enable;
|
||||
bool vrr_runloop_enable;
|
||||
@ -449,6 +449,10 @@ typedef struct settings
|
||||
#ifdef HAVE_VIDEO_LAYOUT
|
||||
unsigned video_layout_selected_view;
|
||||
#endif
|
||||
#ifdef GEKKO
|
||||
unsigned video_overscan_correction_top;
|
||||
unsigned video_overscan_correction_bottom;
|
||||
#endif
|
||||
|
||||
unsigned menu_timedate_style;
|
||||
unsigned menu_thumbnails;
|
||||
@ -477,6 +481,7 @@ typedef struct settings
|
||||
unsigned menu_rgui_particle_effect;
|
||||
unsigned menu_ticker_type;
|
||||
|
||||
unsigned playlist_entry_remove_enable;
|
||||
unsigned playlist_show_inline_core_name;
|
||||
unsigned playlist_sublabel_runtime_type;
|
||||
|
||||
|
299
dynamic.c
299
dynamic.c
@ -473,6 +473,33 @@ bool libretro_get_system_info(const char *path,
|
||||
return true;
|
||||
}
|
||||
|
||||
#define CORE_SYMBOLS(x) \
|
||||
x(retro_init); \
|
||||
x(retro_deinit); \
|
||||
x(retro_api_version); \
|
||||
x(retro_get_system_info); \
|
||||
x(retro_get_system_av_info); \
|
||||
x(retro_set_environment); \
|
||||
x(retro_set_video_refresh); \
|
||||
x(retro_set_audio_sample); \
|
||||
x(retro_set_audio_sample_batch); \
|
||||
x(retro_set_input_poll); \
|
||||
x(retro_set_input_state); \
|
||||
x(retro_set_controller_port_device); \
|
||||
x(retro_reset); \
|
||||
x(retro_run); \
|
||||
x(retro_serialize_size); \
|
||||
x(retro_serialize); \
|
||||
x(retro_unserialize); \
|
||||
x(retro_cheat_reset); \
|
||||
x(retro_cheat_set); \
|
||||
x(retro_load_game); \
|
||||
x(retro_load_game_special); \
|
||||
x(retro_unload_game); \
|
||||
x(retro_get_region); \
|
||||
x(retro_get_memory_data); \
|
||||
x(retro_get_memory_size);
|
||||
|
||||
/**
|
||||
* load_symbols:
|
||||
* @type : Type of core to be loaded.
|
||||
@ -542,296 +569,40 @@ bool init_libretro_sym_custom(enum rarch_core_type type,
|
||||
#endif
|
||||
#endif
|
||||
|
||||
SYMBOL(retro_init);
|
||||
SYMBOL(retro_deinit);
|
||||
|
||||
SYMBOL(retro_api_version);
|
||||
SYMBOL(retro_get_system_info);
|
||||
SYMBOL(retro_get_system_av_info);
|
||||
|
||||
SYMBOL(retro_set_environment);
|
||||
SYMBOL(retro_set_video_refresh);
|
||||
SYMBOL(retro_set_audio_sample);
|
||||
SYMBOL(retro_set_audio_sample_batch);
|
||||
SYMBOL(retro_set_input_poll);
|
||||
SYMBOL(retro_set_input_state);
|
||||
|
||||
SYMBOL(retro_set_controller_port_device);
|
||||
|
||||
SYMBOL(retro_reset);
|
||||
SYMBOL(retro_run);
|
||||
|
||||
SYMBOL(retro_serialize_size);
|
||||
SYMBOL(retro_serialize);
|
||||
SYMBOL(retro_unserialize);
|
||||
|
||||
SYMBOL(retro_cheat_reset);
|
||||
SYMBOL(retro_cheat_set);
|
||||
|
||||
SYMBOL(retro_load_game);
|
||||
SYMBOL(retro_load_game_special);
|
||||
|
||||
SYMBOL(retro_unload_game);
|
||||
SYMBOL(retro_get_region);
|
||||
SYMBOL(retro_get_memory_data);
|
||||
SYMBOL(retro_get_memory_size);
|
||||
CORE_SYMBOLS(SYMBOL);
|
||||
}
|
||||
break;
|
||||
case CORE_TYPE_DUMMY:
|
||||
SYMBOL_DUMMY(retro_init);
|
||||
SYMBOL_DUMMY(retro_deinit);
|
||||
|
||||
SYMBOL_DUMMY(retro_api_version);
|
||||
SYMBOL_DUMMY(retro_get_system_info);
|
||||
SYMBOL_DUMMY(retro_get_system_av_info);
|
||||
|
||||
SYMBOL_DUMMY(retro_set_environment);
|
||||
SYMBOL_DUMMY(retro_set_video_refresh);
|
||||
SYMBOL_DUMMY(retro_set_audio_sample);
|
||||
SYMBOL_DUMMY(retro_set_audio_sample_batch);
|
||||
SYMBOL_DUMMY(retro_set_input_poll);
|
||||
SYMBOL_DUMMY(retro_set_input_state);
|
||||
|
||||
SYMBOL_DUMMY(retro_set_controller_port_device);
|
||||
|
||||
SYMBOL_DUMMY(retro_reset);
|
||||
SYMBOL_DUMMY(retro_run);
|
||||
|
||||
SYMBOL_DUMMY(retro_serialize_size);
|
||||
SYMBOL_DUMMY(retro_serialize);
|
||||
SYMBOL_DUMMY(retro_unserialize);
|
||||
|
||||
SYMBOL_DUMMY(retro_cheat_reset);
|
||||
SYMBOL_DUMMY(retro_cheat_set);
|
||||
|
||||
SYMBOL_DUMMY(retro_load_game);
|
||||
SYMBOL_DUMMY(retro_load_game_special);
|
||||
|
||||
SYMBOL_DUMMY(retro_unload_game);
|
||||
SYMBOL_DUMMY(retro_get_region);
|
||||
SYMBOL_DUMMY(retro_get_memory_data);
|
||||
SYMBOL_DUMMY(retro_get_memory_size);
|
||||
CORE_SYMBOLS(SYMBOL_DUMMY);
|
||||
break;
|
||||
case CORE_TYPE_FFMPEG:
|
||||
#ifdef HAVE_FFMPEG
|
||||
SYMBOL_FFMPEG(retro_init);
|
||||
SYMBOL_FFMPEG(retro_deinit);
|
||||
|
||||
SYMBOL_FFMPEG(retro_api_version);
|
||||
SYMBOL_FFMPEG(retro_get_system_info);
|
||||
SYMBOL_FFMPEG(retro_get_system_av_info);
|
||||
|
||||
SYMBOL_FFMPEG(retro_set_environment);
|
||||
SYMBOL_FFMPEG(retro_set_video_refresh);
|
||||
SYMBOL_FFMPEG(retro_set_audio_sample);
|
||||
SYMBOL_FFMPEG(retro_set_audio_sample_batch);
|
||||
SYMBOL_FFMPEG(retro_set_input_poll);
|
||||
SYMBOL_FFMPEG(retro_set_input_state);
|
||||
|
||||
SYMBOL_FFMPEG(retro_set_controller_port_device);
|
||||
|
||||
SYMBOL_FFMPEG(retro_reset);
|
||||
SYMBOL_FFMPEG(retro_run);
|
||||
|
||||
SYMBOL_FFMPEG(retro_serialize_size);
|
||||
SYMBOL_FFMPEG(retro_serialize);
|
||||
SYMBOL_FFMPEG(retro_unserialize);
|
||||
|
||||
SYMBOL_FFMPEG(retro_cheat_reset);
|
||||
SYMBOL_FFMPEG(retro_cheat_set);
|
||||
|
||||
SYMBOL_FFMPEG(retro_load_game);
|
||||
SYMBOL_FFMPEG(retro_load_game_special);
|
||||
|
||||
SYMBOL_FFMPEG(retro_unload_game);
|
||||
SYMBOL_FFMPEG(retro_get_region);
|
||||
SYMBOL_FFMPEG(retro_get_memory_data);
|
||||
SYMBOL_FFMPEG(retro_get_memory_size);
|
||||
CORE_SYMBOLS(SYMBOL_FFMPEG);
|
||||
#endif
|
||||
break;
|
||||
case CORE_TYPE_MPV:
|
||||
#ifdef HAVE_MPV
|
||||
SYMBOL_MPV(retro_init);
|
||||
SYMBOL_MPV(retro_deinit);
|
||||
|
||||
SYMBOL_MPV(retro_api_version);
|
||||
SYMBOL_MPV(retro_get_system_info);
|
||||
SYMBOL_MPV(retro_get_system_av_info);
|
||||
|
||||
SYMBOL_MPV(retro_set_environment);
|
||||
SYMBOL_MPV(retro_set_video_refresh);
|
||||
SYMBOL_MPV(retro_set_audio_sample);
|
||||
SYMBOL_MPV(retro_set_audio_sample_batch);
|
||||
SYMBOL_MPV(retro_set_input_poll);
|
||||
SYMBOL_MPV(retro_set_input_state);
|
||||
|
||||
SYMBOL_MPV(retro_set_controller_port_device);
|
||||
|
||||
SYMBOL_MPV(retro_reset);
|
||||
SYMBOL_MPV(retro_run);
|
||||
|
||||
SYMBOL_MPV(retro_serialize_size);
|
||||
SYMBOL_MPV(retro_serialize);
|
||||
SYMBOL_MPV(retro_unserialize);
|
||||
|
||||
SYMBOL_MPV(retro_cheat_reset);
|
||||
SYMBOL_MPV(retro_cheat_set);
|
||||
|
||||
SYMBOL_MPV(retro_load_game);
|
||||
SYMBOL_MPV(retro_load_game_special);
|
||||
|
||||
SYMBOL_MPV(retro_unload_game);
|
||||
SYMBOL_MPV(retro_get_region);
|
||||
SYMBOL_MPV(retro_get_memory_data);
|
||||
SYMBOL_MPV(retro_get_memory_size);
|
||||
CORE_SYMBOLS(SYMBOL_MPV);
|
||||
#endif
|
||||
break;
|
||||
case CORE_TYPE_IMAGEVIEWER:
|
||||
#ifdef HAVE_IMAGEVIEWER
|
||||
SYMBOL_IMAGEVIEWER(retro_init);
|
||||
SYMBOL_IMAGEVIEWER(retro_deinit);
|
||||
|
||||
SYMBOL_IMAGEVIEWER(retro_api_version);
|
||||
SYMBOL_IMAGEVIEWER(retro_get_system_info);
|
||||
SYMBOL_IMAGEVIEWER(retro_get_system_av_info);
|
||||
|
||||
SYMBOL_IMAGEVIEWER(retro_set_environment);
|
||||
SYMBOL_IMAGEVIEWER(retro_set_video_refresh);
|
||||
SYMBOL_IMAGEVIEWER(retro_set_audio_sample);
|
||||
SYMBOL_IMAGEVIEWER(retro_set_audio_sample_batch);
|
||||
SYMBOL_IMAGEVIEWER(retro_set_input_poll);
|
||||
SYMBOL_IMAGEVIEWER(retro_set_input_state);
|
||||
|
||||
SYMBOL_IMAGEVIEWER(retro_set_controller_port_device);
|
||||
|
||||
SYMBOL_IMAGEVIEWER(retro_reset);
|
||||
SYMBOL_IMAGEVIEWER(retro_run);
|
||||
|
||||
SYMBOL_IMAGEVIEWER(retro_serialize_size);
|
||||
SYMBOL_IMAGEVIEWER(retro_serialize);
|
||||
SYMBOL_IMAGEVIEWER(retro_unserialize);
|
||||
|
||||
SYMBOL_IMAGEVIEWER(retro_cheat_reset);
|
||||
SYMBOL_IMAGEVIEWER(retro_cheat_set);
|
||||
|
||||
SYMBOL_IMAGEVIEWER(retro_load_game);
|
||||
SYMBOL_IMAGEVIEWER(retro_load_game_special);
|
||||
|
||||
SYMBOL_IMAGEVIEWER(retro_unload_game);
|
||||
SYMBOL_IMAGEVIEWER(retro_get_region);
|
||||
SYMBOL_IMAGEVIEWER(retro_get_memory_data);
|
||||
SYMBOL_IMAGEVIEWER(retro_get_memory_size);
|
||||
CORE_SYMBOLS(SYMBOL_IMAGEVIEWER);
|
||||
#endif
|
||||
break;
|
||||
case CORE_TYPE_NETRETROPAD:
|
||||
#if defined(HAVE_NETWORKING) && defined(HAVE_NETWORKGAMEPAD)
|
||||
SYMBOL_NETRETROPAD(retro_init);
|
||||
SYMBOL_NETRETROPAD(retro_deinit);
|
||||
|
||||
SYMBOL_NETRETROPAD(retro_api_version);
|
||||
SYMBOL_NETRETROPAD(retro_get_system_info);
|
||||
SYMBOL_NETRETROPAD(retro_get_system_av_info);
|
||||
|
||||
SYMBOL_NETRETROPAD(retro_set_environment);
|
||||
SYMBOL_NETRETROPAD(retro_set_video_refresh);
|
||||
SYMBOL_NETRETROPAD(retro_set_audio_sample);
|
||||
SYMBOL_NETRETROPAD(retro_set_audio_sample_batch);
|
||||
SYMBOL_NETRETROPAD(retro_set_input_poll);
|
||||
SYMBOL_NETRETROPAD(retro_set_input_state);
|
||||
|
||||
SYMBOL_NETRETROPAD(retro_set_controller_port_device);
|
||||
|
||||
SYMBOL_NETRETROPAD(retro_reset);
|
||||
SYMBOL_NETRETROPAD(retro_run);
|
||||
|
||||
SYMBOL_NETRETROPAD(retro_serialize_size);
|
||||
SYMBOL_NETRETROPAD(retro_serialize);
|
||||
SYMBOL_NETRETROPAD(retro_unserialize);
|
||||
|
||||
SYMBOL_NETRETROPAD(retro_cheat_reset);
|
||||
SYMBOL_NETRETROPAD(retro_cheat_set);
|
||||
|
||||
SYMBOL_NETRETROPAD(retro_load_game);
|
||||
SYMBOL_NETRETROPAD(retro_load_game_special);
|
||||
|
||||
SYMBOL_NETRETROPAD(retro_unload_game);
|
||||
SYMBOL_NETRETROPAD(retro_get_region);
|
||||
SYMBOL_NETRETROPAD(retro_get_memory_data);
|
||||
SYMBOL_NETRETROPAD(retro_get_memory_size);
|
||||
CORE_SYMBOLS(SYMBOL_NETRETROPAD);
|
||||
#endif
|
||||
break;
|
||||
case CORE_TYPE_VIDEO_PROCESSOR:
|
||||
#if defined(HAVE_VIDEOPROCESSOR)
|
||||
SYMBOL_VIDEOPROCESSOR(retro_init);
|
||||
SYMBOL_VIDEOPROCESSOR(retro_deinit);
|
||||
|
||||
SYMBOL_VIDEOPROCESSOR(retro_api_version);
|
||||
SYMBOL_VIDEOPROCESSOR(retro_get_system_info);
|
||||
SYMBOL_VIDEOPROCESSOR(retro_get_system_av_info);
|
||||
|
||||
SYMBOL_VIDEOPROCESSOR(retro_set_environment);
|
||||
SYMBOL_VIDEOPROCESSOR(retro_set_video_refresh);
|
||||
SYMBOL_VIDEOPROCESSOR(retro_set_audio_sample);
|
||||
SYMBOL_VIDEOPROCESSOR(retro_set_audio_sample_batch);
|
||||
SYMBOL_VIDEOPROCESSOR(retro_set_input_poll);
|
||||
SYMBOL_VIDEOPROCESSOR(retro_set_input_state);
|
||||
|
||||
SYMBOL_VIDEOPROCESSOR(retro_set_controller_port_device);
|
||||
|
||||
SYMBOL_VIDEOPROCESSOR(retro_reset);
|
||||
SYMBOL_VIDEOPROCESSOR(retro_run);
|
||||
|
||||
SYMBOL_VIDEOPROCESSOR(retro_serialize_size);
|
||||
SYMBOL_VIDEOPROCESSOR(retro_serialize);
|
||||
SYMBOL_VIDEOPROCESSOR(retro_unserialize);
|
||||
|
||||
SYMBOL_VIDEOPROCESSOR(retro_cheat_reset);
|
||||
SYMBOL_VIDEOPROCESSOR(retro_cheat_set);
|
||||
|
||||
SYMBOL_VIDEOPROCESSOR(retro_load_game);
|
||||
SYMBOL_VIDEOPROCESSOR(retro_load_game_special);
|
||||
|
||||
SYMBOL_VIDEOPROCESSOR(retro_unload_game);
|
||||
SYMBOL_VIDEOPROCESSOR(retro_get_region);
|
||||
SYMBOL_VIDEOPROCESSOR(retro_get_memory_data);
|
||||
SYMBOL_VIDEOPROCESSOR(retro_get_memory_size);
|
||||
CORE_SYMBOLS(SYMBOL_VIDEOPROCESSOR);
|
||||
#endif
|
||||
break;
|
||||
case CORE_TYPE_GONG:
|
||||
#ifdef HAVE_EASTEREGG
|
||||
SYMBOL_GONG(retro_init);
|
||||
SYMBOL_GONG(retro_deinit);
|
||||
|
||||
SYMBOL_GONG(retro_api_version);
|
||||
SYMBOL_GONG(retro_get_system_info);
|
||||
SYMBOL_GONG(retro_get_system_av_info);
|
||||
|
||||
SYMBOL_GONG(retro_set_environment);
|
||||
SYMBOL_GONG(retro_set_video_refresh);
|
||||
SYMBOL_GONG(retro_set_audio_sample);
|
||||
SYMBOL_GONG(retro_set_audio_sample_batch);
|
||||
SYMBOL_GONG(retro_set_input_poll);
|
||||
SYMBOL_GONG(retro_set_input_state);
|
||||
|
||||
SYMBOL_GONG(retro_set_controller_port_device);
|
||||
|
||||
SYMBOL_GONG(retro_reset);
|
||||
SYMBOL_GONG(retro_run);
|
||||
|
||||
SYMBOL_GONG(retro_serialize_size);
|
||||
SYMBOL_GONG(retro_serialize);
|
||||
SYMBOL_GONG(retro_unserialize);
|
||||
|
||||
SYMBOL_GONG(retro_cheat_reset);
|
||||
SYMBOL_GONG(retro_cheat_set);
|
||||
|
||||
SYMBOL_GONG(retro_load_game);
|
||||
SYMBOL_GONG(retro_load_game_special);
|
||||
|
||||
SYMBOL_GONG(retro_unload_game);
|
||||
SYMBOL_GONG(retro_get_region);
|
||||
SYMBOL_GONG(retro_get_memory_data);
|
||||
SYMBOL_GONG(retro_get_memory_size);
|
||||
CORE_SYMBOLS(SYMBOL_GONG);
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
|
@ -1987,21 +1987,12 @@ static int frontend_unix_parse_drive_list(void *data, bool load_content)
|
||||
enum_idx,
|
||||
FILE_TYPE_DIRECTORY, 0, 0);
|
||||
}
|
||||
|
||||
/* this path is not really desirable a user with root permissions could
|
||||
screw up his system messing with it */
|
||||
menu_entries_append_enum(list, "/",
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR),
|
||||
enum_idx,
|
||||
FILE_TYPE_DIRECTORY, 0, 0);
|
||||
#else
|
||||
menu_entries_append_enum(list, "/",
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR),
|
||||
enum_idx,
|
||||
FILE_TYPE_DIRECTORY, 0, 0);
|
||||
#endif
|
||||
|
||||
|
||||
menu_entries_append_enum(list, "/",
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR),
|
||||
enum_idx,
|
||||
FILE_TYPE_DIRECTORY, 0, 0);
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
|
@ -333,7 +333,8 @@ static void *wiiu_gfx_init(const video_info_t *video,
|
||||
wiiu->menu.texture.surface.format = GX2_SURFACE_FORMAT_UNORM_R4_G4_B4_A4;
|
||||
wiiu->menu.texture.surface.tileMode = GX2_TILE_MODE_LINEAR_ALIGNED;
|
||||
wiiu->menu.texture.viewNumSlices = 1;
|
||||
wiiu->menu.texture.compMap = GX2_COMP_SEL(_A, _R, _G, _B);
|
||||
/* Presumably an endian thing. RGBA, but swap R and G, then B and A. */
|
||||
wiiu->menu.texture.compMap = GX2_COMP_SEL(_G, _R, _A, _B);
|
||||
GX2CalcSurfaceSizeAndAlignment(&wiiu->menu.texture.surface);
|
||||
GX2InitTextureRegs(&wiiu->menu.texture);
|
||||
|
||||
@ -370,7 +371,7 @@ static void *wiiu_gfx_init(const video_info_t *video,
|
||||
wiiu->menu.v->coord.v = 0.0f;
|
||||
wiiu->menu.v->coord.width = 1.0f;
|
||||
wiiu->menu.v->coord.height = 1.0f;
|
||||
wiiu->menu.v->color = 0xFFFFFF80;
|
||||
wiiu->menu.v->color = 0xFFFFFFFF;
|
||||
GX2Invalidate(GX2_INVALIDATE_MODE_CPU_ATTRIBUTE_BUFFER, wiiu->menu.v, 4 * sizeof(*wiiu->menu.v));
|
||||
|
||||
wiiu->vertex_cache.size = 0x1000;
|
||||
@ -1334,7 +1335,8 @@ static bool wiiu_gfx_frame(void *data, const void *frame,
|
||||
GX2SetAttribBuffer(0, 4 * sizeof(*wiiu->menu.v), sizeof(*wiiu->menu.v), wiiu->menu.v);
|
||||
|
||||
GX2SetPixelTexture(&wiiu->menu.texture, sprite_shader.ps.samplerVars[0].location);
|
||||
GX2SetPixelSampler(&wiiu->sampler_linear[RARCH_WRAP_DEFAULT],
|
||||
GX2SetPixelSampler(wiiu->smooth ? &wiiu->sampler_linear[RARCH_WRAP_DEFAULT] :
|
||||
&wiiu->sampler_nearest[RARCH_WRAP_DEFAULT],
|
||||
sprite_shader.ps.samplerVars[0].location);
|
||||
|
||||
GX2DrawEx(GX2_PRIMITIVE_MODE_POINTS, 1, 0, 1);
|
||||
@ -1675,14 +1677,14 @@ static void wiiu_gfx_set_texture_frame(void *data, const void *frame, bool rgb32
|
||||
GX2Invalidate(GX2_INVALIDATE_MODE_CPU_TEXTURE, wiiu->menu.texture.surface.image,
|
||||
wiiu->menu.texture.surface.imageSize);
|
||||
|
||||
wiiu->menu.v->pos.x = 0.0f;
|
||||
wiiu->menu.v->pos.y = 0.0f;
|
||||
wiiu->menu.v->pos.width = width;
|
||||
wiiu->menu.v->pos.height = height;
|
||||
wiiu->menu.v->pos.x = wiiu->vp.x;
|
||||
wiiu->menu.v->pos.y = wiiu->vp.y;
|
||||
wiiu->menu.v->pos.width = wiiu->vp.width;
|
||||
wiiu->menu.v->pos.height = wiiu->vp.height;
|
||||
wiiu->menu.v->coord.u = 0.0f;
|
||||
wiiu->menu.v->coord.v = 0.0f;
|
||||
wiiu->menu.v->coord.width = (float)width / wiiu->texture.surface.width;
|
||||
wiiu->menu.v->coord.height = (float)height / wiiu->texture.surface.height;
|
||||
wiiu->menu.v->coord.width = (float)width / wiiu->menu.texture.surface.width;
|
||||
wiiu->menu.v->coord.height = (float)height / wiiu->menu.texture.surface.height;
|
||||
GX2Invalidate(GX2_INVALIDATE_MODE_CPU_ATTRIBUTE_BUFFER, wiiu->menu.v, 4 * sizeof(*wiiu->menu.v));
|
||||
|
||||
}
|
||||
|
@ -95,6 +95,8 @@ typedef struct gx_video
|
||||
bool menu_texture_enable;
|
||||
video_viewport_t vp;
|
||||
unsigned scale;
|
||||
unsigned overscan_correction_top;
|
||||
unsigned overscan_correction_bottom;
|
||||
#ifdef HAVE_OVERLAY
|
||||
struct gx_overlay_data *overlay;
|
||||
unsigned overlays;
|
||||
@ -909,7 +911,7 @@ static void convert_texture32(const uint32_t *_src, uint32_t *_dst,
|
||||
}
|
||||
}
|
||||
|
||||
static void gx_resize(void *data)
|
||||
static void gx_resize(void *data, settings_t *settings)
|
||||
{
|
||||
int gamma;
|
||||
unsigned degrees;
|
||||
@ -918,10 +920,9 @@ static void gx_resize(void *data)
|
||||
float top = 1, bottom = -1, left = -1, right = 1;
|
||||
int x = 0, y = 0;
|
||||
gx_video_t *gx = (gx_video_t*)data;
|
||||
settings_t *settings = config_get_ptr();
|
||||
const global_t *global = global_get_ptr();
|
||||
|
||||
if (!gx)
|
||||
if (!gx || !settings)
|
||||
return;
|
||||
|
||||
width = gx->vp.full_width;
|
||||
@ -994,6 +995,24 @@ static void gx_resize(void *data)
|
||||
}
|
||||
}
|
||||
|
||||
/* Overscan correction */
|
||||
if ((settings->uints.video_overscan_correction_top > 0) ||
|
||||
(settings->uints.video_overscan_correction_bottom > 0))
|
||||
{
|
||||
float current_aspect = (float)width / (float)height;
|
||||
int new_height = height - (settings->uints.video_overscan_correction_top +
|
||||
settings->uints.video_overscan_correction_bottom);
|
||||
int new_width = (int)((new_height * current_aspect) + 0.5f);
|
||||
|
||||
if ((new_height > 0) && (new_width > 0))
|
||||
{
|
||||
x += (int)((float)(width - new_width) * 0.5f);
|
||||
y += (int)settings->uints.video_overscan_correction_top;
|
||||
width = (unsigned)new_width;
|
||||
height = (unsigned)new_height;
|
||||
}
|
||||
}
|
||||
|
||||
if(gx_isValidXOrigin(gx_xOrigin + x))
|
||||
{
|
||||
gx_mode.viXOrigin = gx_xOrigin + x;
|
||||
@ -1506,21 +1525,30 @@ static bool gx_frame(void *data, const void *frame,
|
||||
video_frame_info_t *video_info)
|
||||
{
|
||||
char fps_text_buf[128];
|
||||
settings_t *settings = config_get_ptr();
|
||||
gx_video_t *gx = (gx_video_t*)data;
|
||||
u8 clear_efb = GX_FALSE;
|
||||
uint32_t level = 0;
|
||||
|
||||
fps_text_buf[0] = '\0';
|
||||
|
||||
if(!gx || (!frame && !gx->menu_texture_enable))
|
||||
if(!gx || (!frame && !gx->menu_texture_enable) || !settings)
|
||||
return true;
|
||||
|
||||
if (!frame)
|
||||
width = height = 4; /* draw a black square in the background */
|
||||
|
||||
if ((gx->overscan_correction_top != settings->uints.video_overscan_correction_top) ||
|
||||
(gx->overscan_correction_bottom != settings->uints.video_overscan_correction_bottom))
|
||||
{
|
||||
gx->overscan_correction_top = settings->uints.video_overscan_correction_top;
|
||||
gx->overscan_correction_bottom = settings->uints.video_overscan_correction_bottom;
|
||||
gx->should_resize = true;
|
||||
}
|
||||
|
||||
if(gx->should_resize)
|
||||
{
|
||||
gx_resize(gx);
|
||||
gx_resize(gx, settings);
|
||||
clear_efb = GX_TRUE;
|
||||
}
|
||||
|
||||
|
@ -909,6 +909,13 @@ static uint32_t gfx_ctx_drm_get_flags(void *data)
|
||||
if (drm->core_hw_context_enable)
|
||||
BIT32_SET(flags, GFX_CTX_FLAGS_GL_CORE_CONTEXT);
|
||||
|
||||
if (string_is_equal(video_driver_get_ident(), "glcore"))
|
||||
{
|
||||
#ifdef HAVE_SLANG
|
||||
BIT32_SET(flags, GFX_CTX_FLAGS_SHADERS_SLANG);
|
||||
#endif
|
||||
}
|
||||
else
|
||||
BIT32_SET(flags, GFX_CTX_FLAGS_SHADERS_GLSL);
|
||||
|
||||
return flags;
|
||||
|
@ -14,6 +14,7 @@
|
||||
*/
|
||||
|
||||
#include <compat/strl.h>
|
||||
#include <string/stdstring.h>
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "../../config.h"
|
||||
@ -154,9 +155,42 @@ error:
|
||||
}
|
||||
|
||||
static void gfx_ctx_khr_display_input_driver(void *data,
|
||||
const char *name,
|
||||
const char *joypad_name,
|
||||
const input_driver_t **input, void **input_data)
|
||||
{
|
||||
#ifdef HAVE_X11
|
||||
settings_t *settings = config_get_ptr();
|
||||
|
||||
/* We cannot use the X11 input driver for DRM/KMS */
|
||||
if (string_is_equal(settings->arrays.input_driver, "x"))
|
||||
{
|
||||
#ifdef HAVE_UDEV
|
||||
{
|
||||
/* Try to set it to udev instead */
|
||||
void *udev = input_udev.init(joypad_name);
|
||||
if (udev)
|
||||
{
|
||||
*input = &input_udev;
|
||||
*input_data = udev;
|
||||
return;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#if defined(__linux__) && !defined(ANDROID)
|
||||
{
|
||||
/* Try to set it to linuxraw instead */
|
||||
void *linuxraw = input_linuxraw.init(joypad_name);
|
||||
if (linuxraw)
|
||||
{
|
||||
*input = &input_linuxraw;
|
||||
*input_data = linuxraw;
|
||||
return;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
*input = NULL;
|
||||
*input_data = NULL;
|
||||
}
|
||||
|
@ -816,7 +816,12 @@ static uint32_t gfx_ctx_wgl_get_flags(void *data)
|
||||
}
|
||||
|
||||
if (string_is_equal(video_driver_get_ident(), "gl1")) { }
|
||||
else if (string_is_equal(video_driver_get_ident(), "glcore")) { }
|
||||
else if (string_is_equal(video_driver_get_ident(), "glcore"))
|
||||
{
|
||||
#ifdef HAVE_SLANG
|
||||
BIT32_SET(flags, GFX_CTX_FLAGS_SHADERS_SLANG);
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
#ifdef HAVE_CG
|
||||
|
@ -41,15 +41,17 @@ const blissbox_pad_type_t blissbox_pad_types[] =
|
||||
{"A5200", 6},
|
||||
{"A5200_TB", 50},
|
||||
{"A7800", 4},
|
||||
{"ATARI_KEYPAD", 43},
|
||||
{"ATARI", 0},
|
||||
{"ATARI_KEYPAD", 43},
|
||||
{"ATMARK", 10},
|
||||
{"BALLY", 42},
|
||||
{"CD32", 24},
|
||||
{"CDI", 33},
|
||||
{"COL", 1},
|
||||
{"COL_FLASHBACK", 48}, /* 3.0 */
|
||||
{"DC_ASCI", 15},
|
||||
{"DC_PAD", 16},
|
||||
{"DC_TWIN", 35}, /* 3.0 */
|
||||
{"FC_ARKANOID", 53},
|
||||
{"FC_NES", 52},
|
||||
{"GC", 9},
|
||||
@ -57,7 +59,6 @@ const blissbox_pad_type_t blissbox_pad_types[] =
|
||||
{"GEN_3", 20},
|
||||
{"GEN_6", 21},
|
||||
{"GRAVIS_EX", 38},
|
||||
{"gx4000", 2},
|
||||
{"HAMMERHEAD", 40},
|
||||
{"HPD", 7},
|
||||
{"INTELI", 14},
|
||||
@ -66,6 +67,9 @@ const blissbox_pad_type_t blissbox_pad_types[] =
|
||||
{"N64", 19},
|
||||
{"NEO", 49},
|
||||
{"NES", 17},
|
||||
{"NES_ARKANOID", 30},
|
||||
{"NES_GUN", 28},
|
||||
{"NES_POWERPAD", 36},
|
||||
{"PADDLES", 41},
|
||||
{"PC_FX", 26},
|
||||
{"PC_GAMEPAD", 46},
|
||||
@ -73,27 +77,28 @@ const blissbox_pad_type_t blissbox_pad_types[] =
|
||||
{"PSX_DS", 115},
|
||||
{"PSX_DS2", 121},
|
||||
{"PSX_FS", 83},
|
||||
{"PSX_JOGCON", 227}, /* 3.0 */
|
||||
{"PSX_NEGCON", 51},
|
||||
{"PSX_WHEEL", 12},
|
||||
{"SAC", 34},
|
||||
{"SATURN_ANALOG", 8},
|
||||
{"SATURN_DIGITAL", 3},
|
||||
{"SMS", 22},
|
||||
{"SNES", 27},
|
||||
{"SNESS_NTT", 47}, /* 3.0 */
|
||||
{"SPEEK", 45},
|
||||
{"TG16", 23},
|
||||
{"TG16_6BUTTON", 54}, /* 3.0 */
|
||||
{"THREE_DO", 25},
|
||||
{"THREE_DO_ANALOG", 37},
|
||||
{"VEC", 5},
|
||||
{"WII_NUNCHUK", 13},
|
||||
{"ZXSINC", 44},
|
||||
{"NES_ARKANOID", 30},
|
||||
{"NES_GUN", 28},
|
||||
{"NES_POWERPAD", 36},
|
||||
{"SNES", 27},
|
||||
{"V_BOY", 29},
|
||||
{"WII_CLASSIC", 31},
|
||||
{"WII_DRUM", 55}, /* 3.0 */
|
||||
{"WII_MPLUS", 32},
|
||||
{"PSX_JOGCON", 227},
|
||||
{"WII_NUNCHUK", 13},
|
||||
{"ZXSINC", 44},
|
||||
{"gx4000", 2},
|
||||
{NULL, 0}, /* used to mark unconnected ports, do not remove */
|
||||
};
|
||||
|
||||
|
@ -602,6 +602,7 @@ void input_overlay_loaded(retro_task_t *task,
|
||||
overlay_task_data_t *data = (overlay_task_data_t*)task_data;
|
||||
input_overlay_t *ol = NULL;
|
||||
const video_overlay_interface_t *iface = NULL;
|
||||
settings_t *settings = config_get_ptr();
|
||||
|
||||
if (err)
|
||||
return;
|
||||
@ -642,6 +643,10 @@ void input_overlay_loaded(retro_task_t *task,
|
||||
overlay_ptr = ol;
|
||||
|
||||
free(data);
|
||||
|
||||
if (!settings->bools.input_overlay_show_mouse_cursor)
|
||||
video_driver_hide_mouse();
|
||||
|
||||
return;
|
||||
|
||||
abort_load:
|
||||
|
@ -202,7 +202,7 @@ MSG_HASH(MENU_ENUM_LABEL_CONTENT_DATABASE_DIRECTORY,
|
||||
MSG_HASH(MENU_ENUM_LABEL_CONTENT_HISTORY_SIZE,
|
||||
"content_history_size")
|
||||
MSG_HASH(MENU_ENUM_LABEL_PLAYLIST_ENTRY_REMOVE,
|
||||
"playlist_entry_remove")
|
||||
"playlist_entry_remove_enable")
|
||||
MSG_HASH(MENU_ENUM_LABEL_CONTENT_SETTINGS,
|
||||
"quick_menu")
|
||||
MSG_HASH(MENU_ENUM_LABEL_CORE_ASSETS_DIRECTORY,
|
||||
@ -571,6 +571,8 @@ MSG_HASH(MENU_ENUM_LABEL_INPUT_OVERLAY_SHOW_PHYSICAL_INPUTS,
|
||||
"overlay_show_physical_inputs")
|
||||
MSG_HASH(MENU_ENUM_LABEL_INPUT_OVERLAY_SHOW_PHYSICAL_INPUTS_PORT,
|
||||
"overlay_show_physical_inputs_port")
|
||||
MSG_HASH(MENU_ENUM_LABEL_INPUT_OVERLAY_SHOW_MOUSE_CURSOR,
|
||||
"overlay_show_mouse_cursor")
|
||||
MSG_HASH(MENU_ENUM_LABEL_INPUT_PLAYER_ANALOG_DPAD_MODE,
|
||||
"input_player%u_analog_dpad_mode")
|
||||
MSG_HASH(MENU_ENUM_LABEL_INPUT_POLL_TYPE_BEHAVIOR,
|
||||
@ -1343,6 +1345,10 @@ MSG_HASH(MENU_ENUM_LABEL_VIDEO_VIEWPORT_CUSTOM_Y,
|
||||
"video_viewport_custom_y")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VIDEO_VI_WIDTH,
|
||||
"video_vi_width")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VIDEO_OVERSCAN_CORRECTION_TOP,
|
||||
"video_overscan_correction_top")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VIDEO_OVERSCAN_CORRECTION_BOTTOM,
|
||||
"video_overscan_correction_bottom")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VIDEO_VSYNC,
|
||||
"video_vsync")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VIDEO_ADAPTIVE_VSYNC,
|
||||
|
@ -1420,6 +1420,10 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_INPUT_OVERLAY_SHOW_PHYSICAL_INPUTS,
|
||||
"Show Inputs On Overlay"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_INPUT_OVERLAY_SHOW_MOUSE_CURSOR,
|
||||
"Show Mouse Cursor With Overlay"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_INPUT_OVERLAY_SHOW_PHYSICAL_INPUTS_PORT,
|
||||
"Show Inputs Listen Port"
|
||||
@ -2174,6 +2178,10 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_QUIT_RETROARCH,
|
||||
"Quit RetroArch"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_RESTART_RETROARCH,
|
||||
"Restart RetroArch"
|
||||
)
|
||||
#endif
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_RDB_ENTRY_ANALOG,
|
||||
@ -2378,10 +2386,6 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_RESTART_CONTENT,
|
||||
"Restart"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_RESTART_RETROARCH,
|
||||
"Restart RetroArch"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_RESUME,
|
||||
"Resume"
|
||||
@ -3772,6 +3776,22 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_VI_WIDTH,
|
||||
"Set VI Screen Width"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_OVERSCAN_CORRECTION_TOP,
|
||||
"Overscan Correction (Top)"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_VIDEO_OVERSCAN_CORRECTION_TOP,
|
||||
"Adjust display overscan cropping by reducing image size by specified number of scanlines (taken from top of screen). Note: May introduce scaling artefacts."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_OVERSCAN_CORRECTION_BOTTOM,
|
||||
"Overscan Correction (Bottom)"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_VIDEO_OVERSCAN_CORRECTION_BOTTOM,
|
||||
"Adjust display overscan cropping by reducing image size by specified number of scanlines (taken from bottom of screen). Note: May introduce scaling artefacts."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_VSYNC,
|
||||
"Vertical Sync (Vsync)"
|
||||
@ -5516,6 +5536,10 @@ MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_INPUT_OVERLAY_SHOW_PHYSICAL_INPUTS_PORT,
|
||||
"Select the port for the overlay to listen to if Show Inputs On Overlay is enabled."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_INPUT_OVERLAY_SHOW_MOUSE_CURSOR,
|
||||
"Show the mouse cursor when using an onscreen overlay."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_PLAYLISTS_TAB,
|
||||
"Scanned content matching the database will appear here."
|
||||
@ -8619,6 +8643,18 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_INLINE_CORE_DISPLAY_NEVER,
|
||||
"Never"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_ENTRY_REMOVE_ENABLE_HIST_FAV,
|
||||
"History & Favorites"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_ENTRY_REMOVE_ENABLE_ALL,
|
||||
"All Playlists"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_ENTRY_REMOVE_ENABLE_NONE,
|
||||
"OFF"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_SORT_ALPHABETICAL,
|
||||
"Sort playlists alphabetically"
|
||||
|
@ -250,6 +250,7 @@ default_sublabel_macro(action_bind_sublabel_video_message_pos_x, MENU_
|
||||
default_sublabel_macro(action_bind_sublabel_video_message_pos_y, MENU_ENUM_SUBLABEL_VIDEO_MESSAGE_POS_Y)
|
||||
default_sublabel_macro(action_bind_sublabel_video_font_size, MENU_ENUM_SUBLABEL_VIDEO_FONT_SIZE)
|
||||
default_sublabel_macro(action_bind_sublabel_input_overlay_hide_in_menu, MENU_ENUM_SUBLABEL_INPUT_OVERLAY_HIDE_IN_MENU)
|
||||
default_sublabel_macro(action_bind_sublabel_input_overlay_show_mouse_cursor, MENU_ENUM_SUBLABEL_INPUT_OVERLAY_SHOW_MOUSE_CURSOR)
|
||||
default_sublabel_macro(action_bind_sublabel_content_collection_list, MENU_ENUM_SUBLABEL_PLAYLISTS_TAB)
|
||||
default_sublabel_macro(action_bind_sublabel_video_scale_integer, MENU_ENUM_SUBLABEL_VIDEO_SCALE_INTEGER)
|
||||
default_sublabel_macro(action_bind_sublabel_video_gpu_screenshot, MENU_ENUM_SUBLABEL_VIDEO_GPU_SCREENSHOT)
|
||||
@ -580,6 +581,11 @@ default_sublabel_macro(action_bind_sublabel_video_3ds_lcd_bottom, MENU
|
||||
default_sublabel_macro(action_bind_sublabel_video_3ds_display_mode, MENU_ENUM_SUBLABEL_VIDEO_3DS_DISPLAY_MODE)
|
||||
#endif
|
||||
|
||||
#if defined(GEKKO)
|
||||
default_sublabel_macro(action_bind_sublabel_video_overscan_correction_top, MENU_ENUM_SUBLABEL_VIDEO_OVERSCAN_CORRECTION_TOP)
|
||||
default_sublabel_macro(action_bind_sublabel_video_overscan_correction_bottom, MENU_ENUM_SUBLABEL_VIDEO_OVERSCAN_CORRECTION_BOTTOM)
|
||||
#endif
|
||||
|
||||
default_sublabel_macro(action_bind_sublabel_playlist_show_sublabels, MENU_ENUM_SUBLABEL_PLAYLIST_SHOW_SUBLABELS)
|
||||
default_sublabel_macro(action_bind_sublabel_menu_rgui_border_filler_enable, MENU_ENUM_SUBLABEL_MENU_RGUI_BORDER_FILLER_ENABLE)
|
||||
default_sublabel_macro(action_bind_sublabel_menu_rgui_border_filler_thickness_enable, MENU_ENUM_SUBLABEL_MENU_RGUI_BORDER_FILLER_THICKNESS_ENABLE)
|
||||
@ -2018,6 +2024,9 @@ int menu_cbs_init_bind_sublabel(menu_file_list_cbs_t *cbs,
|
||||
case MENU_ENUM_LABEL_INPUT_OVERLAY_SHOW_PHYSICAL_INPUTS_PORT:
|
||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_input_overlay_show_physical_inputs_port);
|
||||
break;
|
||||
case MENU_ENUM_LABEL_INPUT_OVERLAY_SHOW_MOUSE_CURSOR:
|
||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_input_overlay_show_mouse_cursor);
|
||||
break;
|
||||
case MENU_ENUM_LABEL_VIDEO_FONT_SIZE:
|
||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_video_font_size);
|
||||
break;
|
||||
@ -2502,6 +2511,14 @@ int menu_cbs_init_bind_sublabel(menu_file_list_cbs_t *cbs,
|
||||
case MENU_ENUM_LABEL_VIDEO_3DS_DISPLAY_MODE:
|
||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_video_3ds_display_mode);
|
||||
break;
|
||||
#endif
|
||||
#if defined(GEKKO)
|
||||
case MENU_ENUM_LABEL_VIDEO_OVERSCAN_CORRECTION_TOP:
|
||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_video_overscan_correction_top);
|
||||
break;
|
||||
case MENU_ENUM_LABEL_VIDEO_OVERSCAN_CORRECTION_BOTTOM:
|
||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_video_overscan_correction_bottom);
|
||||
break;
|
||||
#endif
|
||||
case MENU_ENUM_LABEL_CHEAT_APPLY_AFTER_LOAD:
|
||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_cheat_apply_after_load);
|
||||
|
@ -63,18 +63,6 @@
|
||||
#include <gfx/scaler/scaler.h>
|
||||
#include <features/features_cpu.h>
|
||||
|
||||
#if defined(GEKKO)
|
||||
#define RGUI_TERM_START_X(fb_width) (fb_width / 21)
|
||||
#define RGUI_TERM_START_Y(fb_height) (fb_height / 9)
|
||||
#define RGUI_TERM_WIDTH(fb_width) (((fb_width - RGUI_TERM_START_X(fb_width) - RGUI_TERM_START_X(fb_width)) / (FONT_WIDTH_STRIDE)))
|
||||
#define RGUI_TERM_HEIGHT(fb_height) (((fb_height - RGUI_TERM_START_Y(fb_height) - RGUI_TERM_START_Y(fb_height)) / (FONT_HEIGHT_STRIDE)))
|
||||
#else
|
||||
#define RGUI_TERM_START_X(fb_width) rgui_term_layout.start_x
|
||||
#define RGUI_TERM_START_Y(fb_height) rgui_term_layout.start_y
|
||||
#define RGUI_TERM_WIDTH(fb_width) rgui_term_layout.width
|
||||
#define RGUI_TERM_HEIGHT(fb_height) rgui_term_layout.height
|
||||
#endif
|
||||
|
||||
#define MAX_FB_WIDTH 426
|
||||
|
||||
#define RGUI_ENTRY_VALUE_MAXLEN 19
|
||||
@ -533,7 +521,7 @@ typedef struct
|
||||
unsigned particle_effect;
|
||||
bool extended_ascii_enable;
|
||||
float scroll_y;
|
||||
char *msgbox;
|
||||
char msgbox[1024];
|
||||
unsigned color_theme;
|
||||
rgui_colors_t colors;
|
||||
bool is_playlist;
|
||||
@ -761,7 +749,7 @@ typedef struct
|
||||
unsigned width;
|
||||
unsigned height;
|
||||
bool is_valid;
|
||||
char *path;
|
||||
char path[PATH_MAX_LENGTH];
|
||||
uint16_t *data;
|
||||
} thumbnail_t;
|
||||
|
||||
@ -771,7 +759,7 @@ static thumbnail_t fs_thumbnail = {
|
||||
0,
|
||||
0,
|
||||
false,
|
||||
NULL,
|
||||
{0},
|
||||
NULL
|
||||
};
|
||||
|
||||
@ -781,7 +769,7 @@ static thumbnail_t mini_thumbnail = {
|
||||
0,
|
||||
0,
|
||||
false,
|
||||
NULL,
|
||||
{0},
|
||||
NULL
|
||||
};
|
||||
|
||||
@ -791,7 +779,7 @@ static thumbnail_t mini_left_thumbnail = {
|
||||
0,
|
||||
0,
|
||||
false,
|
||||
NULL,
|
||||
{0},
|
||||
NULL
|
||||
};
|
||||
|
||||
@ -1603,13 +1591,12 @@ static bool request_thumbnail(
|
||||
thumbnail->width = 0;
|
||||
thumbnail->height = 0;
|
||||
thumbnail->is_valid = false;
|
||||
free(thumbnail->path);
|
||||
thumbnail->path = NULL;
|
||||
thumbnail->path[0] = '\0';
|
||||
|
||||
/* Ensure that new path is valid... */
|
||||
if (!string_is_empty(path))
|
||||
{
|
||||
thumbnail->path = strdup(path);
|
||||
strlcpy(thumbnail->path, path, sizeof(thumbnail->path));
|
||||
if (path_is_valid(path))
|
||||
{
|
||||
/* Would like to cancel any existing image load tasks
|
||||
@ -1992,25 +1979,25 @@ static void rgui_render_mini_thumbnail(rgui_t *rgui, thumbnail_t *thumbnail, enu
|
||||
|
||||
menu_display_get_fb_size(&fb_width, &fb_height, &fb_pitch);
|
||||
|
||||
term_width = RGUI_TERM_WIDTH(fb_width) * FONT_WIDTH_STRIDE;
|
||||
term_height = RGUI_TERM_HEIGHT(fb_height) * FONT_HEIGHT_STRIDE;
|
||||
term_width = rgui_term_layout.width * FONT_WIDTH_STRIDE;
|
||||
term_height = rgui_term_layout.height * FONT_HEIGHT_STRIDE;
|
||||
|
||||
/* Sanity check (this can never, ever happen, so just return
|
||||
* instead of trying to crop the thumbnail image...) */
|
||||
if ((thumbnail_fullwidth > term_width) || (thumbnail->height > term_height))
|
||||
return;
|
||||
|
||||
fb_x_offset = (RGUI_TERM_START_X(fb_width) + term_width) -
|
||||
fb_x_offset = (rgui_term_layout.start_x + term_width) -
|
||||
(thumbnail->width + ((thumbnail_fullwidth - thumbnail->width) >> 1));
|
||||
|
||||
if (((thumbnail_id == MENU_THUMBNAIL_RIGHT) && !settings->bools.menu_rgui_swap_thumbnails) ||
|
||||
((thumbnail_id == MENU_THUMBNAIL_LEFT) && settings->bools.menu_rgui_swap_thumbnails))
|
||||
{
|
||||
fb_y_offset = RGUI_TERM_START_Y(fb_height) + ((thumbnail->max_height - thumbnail->height) >> 1);
|
||||
fb_y_offset = rgui_term_layout.start_y + ((thumbnail->max_height - thumbnail->height) >> 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
fb_y_offset = (RGUI_TERM_START_Y(fb_height) + term_height) -
|
||||
fb_y_offset = (rgui_term_layout.start_y + term_height) -
|
||||
(thumbnail->height + ((thumbnail->max_height - thumbnail->height) >> 1));
|
||||
}
|
||||
|
||||
@ -2656,12 +2643,14 @@ static void rgui_set_message(void *data, const char *message)
|
||||
{
|
||||
rgui_t *rgui = (rgui_t*)data;
|
||||
|
||||
if (!rgui || !message || !*message)
|
||||
if (!rgui || !message)
|
||||
return;
|
||||
|
||||
if (!string_is_empty(rgui->msgbox))
|
||||
free(rgui->msgbox);
|
||||
rgui->msgbox = strdup(message);
|
||||
rgui->msgbox[0] = '\0';
|
||||
|
||||
if (!string_is_empty(message))
|
||||
strlcpy(rgui->msgbox, message, sizeof(rgui->msgbox));
|
||||
|
||||
rgui->force_redraw = true;
|
||||
}
|
||||
|
||||
@ -2694,13 +2683,13 @@ static void rgui_render_messagebox(rgui_t *rgui, const char *message)
|
||||
char *msg = list->elems[i].data;
|
||||
unsigned msglen = (unsigned)utf8len(msg);
|
||||
|
||||
if (msglen > RGUI_TERM_WIDTH(fb_width))
|
||||
if (msglen > rgui_term_layout.width)
|
||||
{
|
||||
msg[RGUI_TERM_WIDTH(fb_width) - 2] = '.';
|
||||
msg[RGUI_TERM_WIDTH(fb_width) - 1] = '.';
|
||||
msg[RGUI_TERM_WIDTH(fb_width) - 0] = '.';
|
||||
msg[RGUI_TERM_WIDTH(fb_width) + 1] = '\0';
|
||||
msglen = RGUI_TERM_WIDTH(fb_width);
|
||||
msg[rgui_term_layout.width - 2] = '.';
|
||||
msg[rgui_term_layout.width - 1] = '.';
|
||||
msg[rgui_term_layout.width - 0] = '.';
|
||||
msg[rgui_term_layout.width + 1] = '\0';
|
||||
msglen = rgui_term_layout.width;
|
||||
}
|
||||
|
||||
line_width = msglen * FONT_WIDTH_STRIDE - 1 + 6 + 10;
|
||||
@ -3170,13 +3159,13 @@ static void rgui_render(void *data, bool is_idle)
|
||||
}
|
||||
|
||||
/* Do not scroll if all items are visible. */
|
||||
if (menu_entries_get_size() <= RGUI_TERM_HEIGHT(fb_height))
|
||||
if (menu_entries_get_size() <= rgui_term_layout.height)
|
||||
{
|
||||
size_t start = 0;
|
||||
menu_entries_ctl(MENU_ENTRIES_CTL_SET_START, &start);
|
||||
}
|
||||
|
||||
bottom = (int)(menu_entries_get_size() - RGUI_TERM_HEIGHT(fb_height));
|
||||
bottom = (int)(menu_entries_get_size() - rgui_term_layout.height);
|
||||
menu_entries_ctl(MENU_ENTRIES_CTL_START_GET, &old_start);
|
||||
|
||||
if (old_start > (unsigned)bottom)
|
||||
@ -3186,8 +3175,8 @@ static void rgui_render(void *data, bool is_idle)
|
||||
|
||||
entries_end = menu_entries_get_size();
|
||||
|
||||
end = ((old_start + RGUI_TERM_HEIGHT(fb_height)) <= (entries_end)) ?
|
||||
old_start + RGUI_TERM_HEIGHT(fb_height) : entries_end;
|
||||
end = ((old_start + rgui_term_layout.height) <= (entries_end)) ?
|
||||
old_start + rgui_term_layout.height : entries_end;
|
||||
|
||||
/* Render background */
|
||||
rgui_render_background();
|
||||
@ -3228,13 +3217,13 @@ static void rgui_render(void *data, bool is_idle)
|
||||
{
|
||||
/* Format thumbnail title */
|
||||
ticker.s = thumbnail_title_buf;
|
||||
ticker.len = RGUI_TERM_WIDTH(fb_width) - 10;
|
||||
ticker.len = rgui_term_layout.width - 10;
|
||||
ticker.str = thumbnail_title;
|
||||
ticker.selected = true;
|
||||
menu_animation_ticker(&ticker);
|
||||
|
||||
title_width = (unsigned)(utf8len(thumbnail_title_buf) * FONT_WIDTH_STRIDE);
|
||||
title_x = RGUI_TERM_START_X(fb_width) + ((RGUI_TERM_WIDTH(fb_width) * FONT_WIDTH_STRIDE) - title_width) / 2;
|
||||
title_x = rgui_term_layout.start_x + ((rgui_term_layout.width * FONT_WIDTH_STRIDE) - title_width) / 2;
|
||||
|
||||
/* Draw thumbnail title background */
|
||||
rgui_fill_rect(rgui_frame_buf.data, fb_width, fb_height,
|
||||
@ -3254,10 +3243,10 @@ static void rgui_render(void *data, bool is_idle)
|
||||
size_t title_max_len;
|
||||
size_t title_len;
|
||||
unsigned title_x;
|
||||
unsigned title_y = RGUI_TERM_START_Y(fb_height) - FONT_HEIGHT_STRIDE;
|
||||
unsigned term_end_x = RGUI_TERM_START_X(fb_width) + (RGUI_TERM_WIDTH(fb_width) * FONT_WIDTH_STRIDE);
|
||||
unsigned title_y = rgui_term_layout.start_y - FONT_HEIGHT_STRIDE;
|
||||
unsigned term_end_x = rgui_term_layout.start_x + (rgui_term_layout.width * FONT_WIDTH_STRIDE);
|
||||
unsigned timedate_x = term_end_x - (5 * FONT_WIDTH_STRIDE);
|
||||
unsigned core_name_len = ((timedate_x - RGUI_TERM_START_X(fb_width)) / FONT_WIDTH_STRIDE) - 3;
|
||||
unsigned core_name_len = ((timedate_x - rgui_term_layout.start_x) / FONT_WIDTH_STRIDE) - 3;
|
||||
bool show_mini_thumbnails = rgui->is_playlist && settings->bools.menu_rgui_inline_thumbnails;
|
||||
bool show_thumbnail = false;
|
||||
bool show_left_thumbnail = false;
|
||||
@ -3286,7 +3275,7 @@ static void rgui_render(void *data, bool is_idle)
|
||||
* the vertical centre of RGUI's 'terminal'
|
||||
* (required to determine whether a particular entry
|
||||
* is adjacent to the 'right' or 'left' thumbnail) */
|
||||
term_mid_point = (unsigned)((RGUI_TERM_HEIGHT(fb_height) * 0.5f) + 0.5f) - 1;
|
||||
term_mid_point = (unsigned)((rgui_term_layout.height * 0.5f) + 0.5f) - 1;
|
||||
}
|
||||
|
||||
/* Show battery indicator, if required */
|
||||
@ -3354,7 +3343,7 @@ static void rgui_render(void *data, bool is_idle)
|
||||
}
|
||||
|
||||
/* Print title */
|
||||
title_max_len = RGUI_TERM_WIDTH(fb_width) - 5 - (powerstate_len > 5 ? powerstate_len : 5);
|
||||
title_max_len = rgui_term_layout.width - 5 - (powerstate_len > 5 ? powerstate_len : 5);
|
||||
title_buf[0] = '\0';
|
||||
|
||||
ticker.s = title_buf;
|
||||
@ -3367,8 +3356,8 @@ static void rgui_render(void *data, bool is_idle)
|
||||
string_to_upper(title_buf);
|
||||
|
||||
title_len = utf8len(title_buf);
|
||||
title_x = RGUI_TERM_START_X(fb_width) +
|
||||
(RGUI_TERM_WIDTH(fb_width) - title_len) * FONT_WIDTH_STRIDE / 2;
|
||||
title_x = rgui_term_layout.start_x +
|
||||
(rgui_term_layout.width - title_len) * FONT_WIDTH_STRIDE / 2;
|
||||
|
||||
/* Title is always centred, unless it is long enough
|
||||
* to infringe upon the battery indicator, in which case
|
||||
@ -3381,8 +3370,8 @@ static void rgui_render(void *data, bool is_idle)
|
||||
title_buf, rgui->colors.title_color, rgui->colors.shadow_color);
|
||||
|
||||
/* Print menu entries */
|
||||
x = RGUI_TERM_START_X(fb_width);
|
||||
y = RGUI_TERM_START_Y(fb_height);
|
||||
x = rgui_term_layout.start_x;
|
||||
y = rgui_term_layout.start_y;
|
||||
|
||||
menu_entries_ctl(MENU_ENTRIES_CTL_START_GET, &new_start);
|
||||
|
||||
@ -3417,13 +3406,13 @@ static void rgui_render(void *data, bool is_idle)
|
||||
menu_entry_get_value(&entry, &entry_value);
|
||||
|
||||
/* Get base length of entry title field */
|
||||
entry_title_max_len = RGUI_TERM_WIDTH(fb_width) - (1 + 2);
|
||||
entry_title_max_len = rgui_term_layout.width - (1 + 2);
|
||||
|
||||
/* If showing mini thumbnails, reduce title field length accordingly */
|
||||
if (show_mini_thumbnails)
|
||||
{
|
||||
unsigned term_offset = settings->bools.menu_rgui_swap_thumbnails ?
|
||||
(RGUI_TERM_HEIGHT(fb_height) - (i - new_start) - 1) : (i - new_start);
|
||||
(rgui_term_layout.height - (i - new_start) - 1) : (i - new_start);
|
||||
unsigned thumbnail_width = 0;
|
||||
|
||||
/* Note:
|
||||
@ -3436,7 +3425,7 @@ static void rgui_render(void *data, bool is_idle)
|
||||
* standard layout (even though it always will...),
|
||||
* so have to check whether there are an odd or even
|
||||
* number of entries... */
|
||||
if((RGUI_TERM_HEIGHT(fb_height) & 1) == 0)
|
||||
if((rgui_term_layout.height & 1) == 0)
|
||||
{
|
||||
/* Even number of entries */
|
||||
if ((show_thumbnail && (term_offset <= term_mid_point)) ||
|
||||
@ -3535,9 +3524,9 @@ static void rgui_render(void *data, bool is_idle)
|
||||
|
||||
blit_line(
|
||||
fb_width,
|
||||
RGUI_TERM_START_X(fb_width) + FONT_WIDTH_STRIDE,
|
||||
(RGUI_TERM_HEIGHT(fb_height) * FONT_HEIGHT_STRIDE) +
|
||||
RGUI_TERM_START_Y(fb_height) + 2, sublabel_buf,
|
||||
rgui_term_layout.start_x + FONT_WIDTH_STRIDE,
|
||||
(rgui_term_layout.height * FONT_HEIGHT_STRIDE) +
|
||||
rgui_term_layout.start_y + 2, sublabel_buf,
|
||||
rgui->colors.hover_color, rgui->colors.shadow_color);
|
||||
}
|
||||
else if (settings->bools.menu_core_enable)
|
||||
@ -3557,9 +3546,9 @@ static void rgui_render(void *data, bool is_idle)
|
||||
|
||||
blit_line(
|
||||
fb_width,
|
||||
RGUI_TERM_START_X(fb_width) + FONT_WIDTH_STRIDE,
|
||||
(RGUI_TERM_HEIGHT(fb_height) * FONT_HEIGHT_STRIDE) +
|
||||
RGUI_TERM_START_Y(fb_height) + 2, core_title_buf,
|
||||
rgui_term_layout.start_x + FONT_WIDTH_STRIDE,
|
||||
(rgui_term_layout.height * FONT_HEIGHT_STRIDE) +
|
||||
rgui_term_layout.start_y + 2, core_title_buf,
|
||||
rgui->colors.hover_color, rgui->colors.shadow_color);
|
||||
}
|
||||
|
||||
@ -3580,8 +3569,8 @@ static void rgui_render(void *data, bool is_idle)
|
||||
blit_line(
|
||||
fb_width,
|
||||
timedate_x,
|
||||
(RGUI_TERM_HEIGHT(fb_height) * FONT_HEIGHT_STRIDE) +
|
||||
RGUI_TERM_START_Y(fb_height) + 2, timedate,
|
||||
(rgui_term_layout.height * FONT_HEIGHT_STRIDE) +
|
||||
rgui_term_layout.start_y + 2, timedate,
|
||||
rgui->colors.hover_color, rgui->colors.shadow_color);
|
||||
}
|
||||
}
|
||||
@ -3589,8 +3578,7 @@ static void rgui_render(void *data, bool is_idle)
|
||||
if (!string_is_empty(rgui->msgbox))
|
||||
{
|
||||
rgui_render_messagebox(rgui, rgui->msgbox);
|
||||
free(rgui->msgbox);
|
||||
rgui->msgbox = NULL;
|
||||
rgui->msgbox[0] = '\0';
|
||||
rgui->force_redraw = true;
|
||||
}
|
||||
|
||||
@ -3634,10 +3622,7 @@ static void rgui_thumbnail_free(thumbnail_t *thumbnail)
|
||||
thumbnail->width = 0;
|
||||
thumbnail->height = 0;
|
||||
thumbnail->is_valid = false;
|
||||
|
||||
if (!string_is_empty(thumbnail->path))
|
||||
free(thumbnail->path);
|
||||
thumbnail->path = NULL;
|
||||
thumbnail->path[0] = '\0';
|
||||
|
||||
if (thumbnail->data)
|
||||
free(thumbnail->data);
|
||||
@ -4281,16 +4266,14 @@ static void rgui_update_thumbnail_image(void *userdata)
|
||||
mini_thumbnail.width = 0;
|
||||
mini_thumbnail.height = 0;
|
||||
mini_thumbnail.is_valid = false;
|
||||
free(mini_thumbnail.path);
|
||||
mini_thumbnail.path = NULL;
|
||||
mini_thumbnail.path[0] = '\0';
|
||||
}
|
||||
else
|
||||
{
|
||||
fs_thumbnail.width = 0;
|
||||
fs_thumbnail.height = 0;
|
||||
fs_thumbnail.is_valid = false;
|
||||
free(fs_thumbnail.path);
|
||||
fs_thumbnail.path = NULL;
|
||||
fs_thumbnail.path[0] = '\0';
|
||||
}
|
||||
}
|
||||
|
||||
@ -4316,20 +4299,17 @@ static void rgui_refresh_thumbnail_image(void *userdata)
|
||||
fs_thumbnail.width = 0;
|
||||
fs_thumbnail.height = 0;
|
||||
fs_thumbnail.is_valid = false;
|
||||
free(fs_thumbnail.path);
|
||||
fs_thumbnail.path = NULL;
|
||||
fs_thumbnail.path[0] = '\0';
|
||||
|
||||
mini_thumbnail.width = 0;
|
||||
mini_thumbnail.height = 0;
|
||||
mini_thumbnail.is_valid = false;
|
||||
free(mini_thumbnail.path);
|
||||
mini_thumbnail.path = NULL;
|
||||
mini_thumbnail.path[0] = '\0';
|
||||
|
||||
mini_left_thumbnail.width = 0;
|
||||
mini_left_thumbnail.height = 0;
|
||||
mini_left_thumbnail.is_valid = false;
|
||||
free(mini_left_thumbnail.path);
|
||||
mini_left_thumbnail.path = NULL;
|
||||
mini_left_thumbnail.path[0] = '\0';
|
||||
|
||||
/* Only load thumbnails if currently viewing a
|
||||
* playlist (note that thumbnails are loaded
|
||||
@ -4393,8 +4373,7 @@ static void rgui_update_menu_sublabel(rgui_t *rgui)
|
||||
|
||||
static void rgui_navigation_set(void *data, bool scroll)
|
||||
{
|
||||
size_t start, fb_pitch;
|
||||
unsigned fb_width, fb_height;
|
||||
size_t start;
|
||||
bool do_set_start = false;
|
||||
size_t end = menu_entries_get_size();
|
||||
size_t selection = menu_navigation_get_selection();
|
||||
@ -4409,23 +4388,20 @@ static void rgui_navigation_set(void *data, bool scroll)
|
||||
if (!scroll)
|
||||
return;
|
||||
|
||||
menu_display_get_fb_size(&fb_width, &fb_height,
|
||||
&fb_pitch);
|
||||
|
||||
if (selection < RGUI_TERM_HEIGHT(fb_height) /2)
|
||||
if (selection < rgui_term_layout.height /2)
|
||||
{
|
||||
start = 0;
|
||||
do_set_start = true;
|
||||
}
|
||||
else if (selection >= (RGUI_TERM_HEIGHT(fb_height) /2)
|
||||
&& selection < (end - RGUI_TERM_HEIGHT(fb_height) /2))
|
||||
else if (selection >= (rgui_term_layout.height /2)
|
||||
&& selection < (end - rgui_term_layout.height /2))
|
||||
{
|
||||
start = selection - RGUI_TERM_HEIGHT(fb_height) /2;
|
||||
start = selection - rgui_term_layout.height /2;
|
||||
do_set_start = true;
|
||||
}
|
||||
else if (selection >= (end - RGUI_TERM_HEIGHT(fb_height) /2))
|
||||
else if (selection >= (end - rgui_term_layout.height /2))
|
||||
{
|
||||
start = end - RGUI_TERM_HEIGHT(fb_height);
|
||||
start = end - rgui_term_layout.height;
|
||||
do_set_start = true;
|
||||
}
|
||||
|
||||
|
@ -349,6 +349,14 @@ enum playlist_inline_core_display_type
|
||||
PLAYLIST_INLINE_CORE_DISPLAY_LAST
|
||||
};
|
||||
|
||||
enum playlist_entry_remove_enable_type
|
||||
{
|
||||
PLAYLIST_ENTRY_REMOVE_ENABLE_HIST_FAV = 0,
|
||||
PLAYLIST_ENTRY_REMOVE_ENABLE_ALL,
|
||||
PLAYLIST_ENTRY_REMOVE_ENABLE_NONE,
|
||||
PLAYLIST_ENTRY_REMOVE_ENABLE_LAST
|
||||
};
|
||||
|
||||
typedef uintptr_t menu_texture_item;
|
||||
|
||||
typedef struct menu_display_ctx_clearcolor
|
||||
|
@ -2042,13 +2042,34 @@ static int menu_displaylist_parse_horizontal_content_actions(
|
||||
MENU_ENUM_LABEL_RENAME_ENTRY,
|
||||
FILE_TYPE_PLAYLIST_ENTRY, 0, idx);
|
||||
|
||||
if (settings->bools.playlist_entry_remove &&
|
||||
!settings->bools.kiosk_mode_enable)
|
||||
if (!settings->bools.kiosk_mode_enable)
|
||||
{
|
||||
bool remove_entry_enabled = false;
|
||||
|
||||
if (settings->uints.playlist_entry_remove_enable == PLAYLIST_ENTRY_REMOVE_ENABLE_ALL)
|
||||
remove_entry_enabled = true;
|
||||
else if (settings->uints.playlist_entry_remove_enable == PLAYLIST_ENTRY_REMOVE_ENABLE_HIST_FAV)
|
||||
{
|
||||
char system[PATH_MAX_LENGTH];
|
||||
system[0] = '\0';
|
||||
|
||||
menu_driver_get_thumbnail_system(system, sizeof(system));
|
||||
|
||||
if (!string_is_empty(system))
|
||||
remove_entry_enabled = string_is_equal(system, "history") ||
|
||||
string_is_equal(system, "favorites") ||
|
||||
string_is_equal(system, "images_history") ||
|
||||
string_is_equal(system, "music_history") ||
|
||||
string_is_equal(system, "video_history");
|
||||
}
|
||||
|
||||
if (remove_entry_enabled)
|
||||
menu_entries_append_enum(info->list,
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_DELETE_ENTRY),
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_DELETE_ENTRY),
|
||||
MENU_ENUM_LABEL_DELETE_ENTRY,
|
||||
MENU_SETTING_ACTION_DELETE_ENTRY, 0, 0);
|
||||
}
|
||||
|
||||
if (settings->bools.quick_menu_show_add_to_favorites)
|
||||
{
|
||||
@ -3889,6 +3910,7 @@ unsigned menu_displaylist_build_list(file_list_t *list, enum menu_displaylist_ct
|
||||
{MENU_ENUM_LABEL_INPUT_OVERLAY_HIDE_IN_MENU, PARSE_ONLY_BOOL },
|
||||
{MENU_ENUM_LABEL_INPUT_OVERLAY_SHOW_PHYSICAL_INPUTS, PARSE_ONLY_BOOL },
|
||||
{MENU_ENUM_LABEL_INPUT_OVERLAY_SHOW_PHYSICAL_INPUTS_PORT,PARSE_ONLY_BOOL },
|
||||
{MENU_ENUM_LABEL_INPUT_OVERLAY_SHOW_MOUSE_CURSOR, PARSE_ONLY_BOOL },
|
||||
{MENU_ENUM_LABEL_OVERLAY_PRESET, PARSE_ONLY_PATH },
|
||||
{MENU_ENUM_LABEL_OVERLAY_OPACITY, PARSE_ONLY_FLOAT },
|
||||
{MENU_ENUM_LABEL_OVERLAY_SCALE, PARSE_ONLY_FLOAT },
|
||||
@ -5627,7 +5649,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type,
|
||||
{MENU_ENUM_LABEL_HISTORY_LIST_ENABLE, PARSE_ONLY_BOOL},
|
||||
{MENU_ENUM_LABEL_CONTENT_HISTORY_SIZE, PARSE_ONLY_UINT},
|
||||
{MENU_ENUM_LABEL_PLAYLIST_ENTRY_RENAME, PARSE_ONLY_BOOL},
|
||||
{MENU_ENUM_LABEL_PLAYLIST_ENTRY_REMOVE, PARSE_ONLY_BOOL},
|
||||
{MENU_ENUM_LABEL_PLAYLIST_ENTRY_REMOVE, PARSE_ONLY_UINT},
|
||||
{MENU_ENUM_LABEL_PLAYLIST_SORT_ALPHABETICAL, PARSE_ONLY_BOOL},
|
||||
{MENU_ENUM_LABEL_PLAYLIST_USE_OLD_FORMAT, PARSE_ONLY_BOOL},
|
||||
{MENU_ENUM_LABEL_PLAYLIST_SHOW_INLINE_CORE_NAME, PARSE_ONLY_UINT},
|
||||
@ -5914,6 +5936,12 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type,
|
||||
menu_displaylist_parse_settings_enum(info->list,
|
||||
MENU_ENUM_LABEL_VIDEO_VFILTER,
|
||||
PARSE_ONLY_BOOL, false);
|
||||
menu_displaylist_parse_settings_enum(info->list,
|
||||
MENU_ENUM_LABEL_VIDEO_OVERSCAN_CORRECTION_TOP,
|
||||
PARSE_ONLY_UINT, false);
|
||||
menu_displaylist_parse_settings_enum(info->list,
|
||||
MENU_ENUM_LABEL_VIDEO_OVERSCAN_CORRECTION_BOTTOM,
|
||||
PARSE_ONLY_UINT, false);
|
||||
menu_displaylist_parse_settings_enum(info->list,
|
||||
MENU_ENUM_LABEL_VIDEO_ROTATION,
|
||||
PARSE_ONLY_UINT, false);
|
||||
|
@ -3862,6 +3862,36 @@ static void setting_get_string_representation_uint_playlist_inline_core_display_
|
||||
}
|
||||
}
|
||||
|
||||
static void setting_get_string_representation_uint_playlist_entry_remove_enable(
|
||||
rarch_setting_t *setting,
|
||||
char *s, size_t len)
|
||||
{
|
||||
if (!setting)
|
||||
return;
|
||||
|
||||
switch (*setting->value.target.unsigned_integer)
|
||||
{
|
||||
case PLAYLIST_ENTRY_REMOVE_ENABLE_HIST_FAV:
|
||||
strlcpy(s,
|
||||
msg_hash_to_str(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_ENTRY_REMOVE_ENABLE_HIST_FAV),
|
||||
len);
|
||||
break;
|
||||
case PLAYLIST_ENTRY_REMOVE_ENABLE_ALL:
|
||||
strlcpy(s,
|
||||
msg_hash_to_str(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_ENTRY_REMOVE_ENABLE_ALL),
|
||||
len);
|
||||
break;
|
||||
case PLAYLIST_ENTRY_REMOVE_ENABLE_NONE:
|
||||
strlcpy(s,
|
||||
msg_hash_to_str(
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_ENTRY_REMOVE_ENABLE_NONE),
|
||||
len);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
#if defined(_3DS)
|
||||
static void setting_get_string_representation_uint_video_3ds_display_mode(
|
||||
rarch_setting_t *setting,
|
||||
@ -6649,7 +6679,7 @@ static bool setting_append_list(
|
||||
&subgroup_info,
|
||||
parent_group);
|
||||
|
||||
#if !defined(IOS)
|
||||
#if !defined(IOS) && !defined(HAVE_LAKKA)
|
||||
if (frontend_driver_has_fork())
|
||||
{
|
||||
CONFIG_ACTION(
|
||||
@ -7293,13 +7323,13 @@ static bool setting_append_list(
|
||||
bool_entries[0].target = &settings->bools.video_shared_context;
|
||||
bool_entries[0].name_enum_idx = MENU_ENUM_LABEL_VIDEO_SHARED_CONTEXT;
|
||||
bool_entries[0].SHORT_enum_idx = MENU_ENUM_LABEL_VALUE_VIDEO_SHARED_CONTEXT;
|
||||
bool_entries[0].default_value = video_shared_context;
|
||||
bool_entries[0].default_value = DEFAULT_VIDEO_SHARED_CONTEXT;
|
||||
bool_entries[0].flags = SD_FLAG_ADVANCED;
|
||||
|
||||
bool_entries[1].target = &settings->bools.load_dummy_on_core_shutdown;
|
||||
bool_entries[1].name_enum_idx = MENU_ENUM_LABEL_DUMMY_ON_CORE_SHUTDOWN;
|
||||
bool_entries[1].SHORT_enum_idx = MENU_ENUM_LABEL_VALUE_DUMMY_ON_CORE_SHUTDOWN;
|
||||
bool_entries[1].default_value = load_dummy_on_core_shutdown;
|
||||
bool_entries[1].default_value = DEFAULT_LOAD_DUMMY_ON_CORE_SHUTDOWN;
|
||||
bool_entries[1].flags = SD_FLAG_ADVANCED;
|
||||
|
||||
bool_entries[2].target = &settings->bools.set_supports_no_game_enable;
|
||||
@ -7357,13 +7387,13 @@ static bool setting_append_list(
|
||||
bool_entries[0].target = &settings->bools.config_save_on_exit;
|
||||
bool_entries[0].name_enum_idx = MENU_ENUM_LABEL_CONFIG_SAVE_ON_EXIT;
|
||||
bool_entries[0].SHORT_enum_idx = MENU_ENUM_LABEL_VALUE_CONFIG_SAVE_ON_EXIT;
|
||||
bool_entries[0].default_value = config_save_on_exit;
|
||||
bool_entries[0].default_value = DEFAULT_CONFIG_SAVE_ON_EXIT;
|
||||
bool_entries[0].flags = SD_FLAG_NONE;
|
||||
|
||||
bool_entries[1].target = &settings->bools.show_hidden_files;
|
||||
bool_entries[1].name_enum_idx = MENU_ENUM_LABEL_SHOW_HIDDEN_FILES;
|
||||
bool_entries[1].SHORT_enum_idx = MENU_ENUM_LABEL_VALUE_SHOW_HIDDEN_FILES;
|
||||
bool_entries[1].default_value = show_hidden_files;
|
||||
bool_entries[1].default_value = DEFAULT_SHOW_HIDDEN_FILES;
|
||||
bool_entries[1].flags = SD_FLAG_NONE;
|
||||
|
||||
bool_entries[2].target = &settings->bools.game_specific_options;
|
||||
@ -7413,7 +7443,7 @@ static bool setting_append_list(
|
||||
&settings->bools.video_shader_enable,
|
||||
MENU_ENUM_LABEL_VIDEO_SHADERS_ENABLE,
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_SHADERS_ENABLE,
|
||||
shader_enable,
|
||||
DEFAULT_SHADER_ENABLE,
|
||||
MENU_ENUM_LABEL_VALUE_OFF,
|
||||
MENU_ENUM_LABEL_VALUE_ON,
|
||||
&group_info,
|
||||
@ -7552,7 +7582,7 @@ static bool setting_append_list(
|
||||
bool_entries[2].target = &settings->bools.block_sram_overwrite;
|
||||
bool_entries[2].name_enum_idx = MENU_ENUM_LABEL_BLOCK_SRAM_OVERWRITE;
|
||||
bool_entries[2].SHORT_enum_idx = MENU_ENUM_LABEL_VALUE_BLOCK_SRAM_OVERWRITE;
|
||||
bool_entries[2].default_value = block_sram_overwrite;
|
||||
bool_entries[2].default_value = DEFAULT_BLOCK_SRAM_OVERWRITE;
|
||||
bool_entries[2].flags = SD_FLAG_NONE;
|
||||
|
||||
bool_entries[3].target = &settings->bools.savestate_auto_index;
|
||||
@ -7627,7 +7657,7 @@ static bool setting_append_list(
|
||||
&settings->uints.autosave_interval,
|
||||
MENU_ENUM_LABEL_AUTOSAVE_INTERVAL,
|
||||
MENU_ENUM_LABEL_VALUE_AUTOSAVE_INTERVAL,
|
||||
autosave_interval,
|
||||
DEFAULT_AUTOSAVE_INTERVAL,
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group,
|
||||
@ -7703,7 +7733,7 @@ static bool setting_append_list(
|
||||
&settings->bools.rewind_enable,
|
||||
MENU_ENUM_LABEL_REWIND_ENABLE,
|
||||
MENU_ENUM_LABEL_VALUE_REWIND_ENABLE,
|
||||
rewind_enable,
|
||||
DEFAULT_REWIND_ENABLE,
|
||||
MENU_ENUM_LABEL_VALUE_OFF,
|
||||
MENU_ENUM_LABEL_VALUE_ON,
|
||||
&group_info,
|
||||
@ -7719,7 +7749,7 @@ static bool setting_append_list(
|
||||
&settings->uints.rewind_granularity,
|
||||
MENU_ENUM_LABEL_REWIND_GRANULARITY,
|
||||
MENU_ENUM_LABEL_VALUE_REWIND_GRANULARITY,
|
||||
rewind_granularity,
|
||||
DEFAULT_REWIND_GRANULARITY,
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group,
|
||||
@ -7734,7 +7764,7 @@ static bool setting_append_list(
|
||||
&settings->sizes.rewind_buffer_size,
|
||||
MENU_ENUM_LABEL_REWIND_BUFFER_SIZE,
|
||||
MENU_ENUM_LABEL_VALUE_REWIND_BUFFER_SIZE,
|
||||
rewind_buffer_size,
|
||||
DEFAULT_REWIND_BUFFER_SIZE,
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group,
|
||||
@ -7748,7 +7778,7 @@ static bool setting_append_list(
|
||||
&settings->uints.rewind_buffer_size_step,
|
||||
MENU_ENUM_LABEL_REWIND_BUFFER_SIZE_STEP,
|
||||
MENU_ENUM_LABEL_VALUE_REWIND_BUFFER_SIZE_STEP,
|
||||
rewind_buffer_size_step,
|
||||
DEFAULT_REWIND_BUFFER_SIZE_STEP,
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group,
|
||||
@ -7774,7 +7804,7 @@ static bool setting_append_list(
|
||||
&settings->bools.apply_cheats_after_load,
|
||||
MENU_ENUM_LABEL_CHEAT_APPLY_AFTER_LOAD,
|
||||
MENU_ENUM_LABEL_VALUE_CHEAT_APPLY_AFTER_LOAD,
|
||||
apply_cheats_after_load,
|
||||
DEFAULT_APPLY_CHEATS_AFTER_LOAD,
|
||||
MENU_ENUM_LABEL_VALUE_OFF,
|
||||
MENU_ENUM_LABEL_VALUE_ON,
|
||||
&group_info,
|
||||
@ -7789,7 +7819,7 @@ static bool setting_append_list(
|
||||
&settings->bools.apply_cheats_after_toggle,
|
||||
MENU_ENUM_LABEL_CHEAT_APPLY_AFTER_TOGGLE,
|
||||
MENU_ENUM_LABEL_VALUE_CHEAT_APPLY_AFTER_TOGGLE,
|
||||
apply_cheats_after_toggle,
|
||||
DEFAULT_APPLY_CHEATS_AFTER_TOGGLE,
|
||||
MENU_ENUM_LABEL_VALUE_OFF,
|
||||
MENU_ENUM_LABEL_VALUE_ON,
|
||||
&group_info,
|
||||
@ -8220,7 +8250,7 @@ static bool setting_append_list(
|
||||
&settings->bools.video_fps_show,
|
||||
MENU_ENUM_LABEL_FPS_SHOW,
|
||||
MENU_ENUM_LABEL_VALUE_FPS_SHOW,
|
||||
fps_show,
|
||||
DEFAULT_FPS_SHOW,
|
||||
MENU_ENUM_LABEL_VALUE_OFF,
|
||||
MENU_ENUM_LABEL_VALUE_ON,
|
||||
&group_info,
|
||||
@ -8235,7 +8265,7 @@ static bool setting_append_list(
|
||||
&settings->bools.video_memory_show,
|
||||
MENU_ENUM_LABEL_MEMORY_SHOW,
|
||||
MENU_ENUM_LABEL_VALUE_MEMORY_SHOW,
|
||||
memory_show,
|
||||
DEFAULT_MEMORY_SHOW,
|
||||
MENU_ENUM_LABEL_VALUE_OFF,
|
||||
MENU_ENUM_LABEL_VALUE_ON,
|
||||
&group_info,
|
||||
@ -8250,7 +8280,7 @@ static bool setting_append_list(
|
||||
&settings->bools.video_statistics_show,
|
||||
MENU_ENUM_LABEL_STATISTICS_SHOW,
|
||||
MENU_ENUM_LABEL_VALUE_STATISTICS_SHOW,
|
||||
statistics_show,
|
||||
DEFAULT_STATISTICS_SHOW,
|
||||
MENU_ENUM_LABEL_VALUE_OFF,
|
||||
MENU_ENUM_LABEL_VALUE_ON,
|
||||
&group_info,
|
||||
@ -8265,7 +8295,7 @@ static bool setting_append_list(
|
||||
&settings->bools.video_framecount_show,
|
||||
MENU_ENUM_LABEL_FRAMECOUNT_SHOW,
|
||||
MENU_ENUM_LABEL_VALUE_FRAMECOUNT_SHOW,
|
||||
framecount_show,
|
||||
DEFAULT_FRAMECOUNT_SHOW,
|
||||
MENU_ENUM_LABEL_VALUE_OFF,
|
||||
MENU_ENUM_LABEL_VALUE_ON,
|
||||
&group_info,
|
||||
@ -8290,7 +8320,7 @@ static bool setting_append_list(
|
||||
&settings->uints.video_monitor_index,
|
||||
MENU_ENUM_LABEL_VIDEO_MONITOR_INDEX,
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_MONITOR_INDEX,
|
||||
monitor_index,
|
||||
DEFAULT_MONITOR_INDEX,
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group,
|
||||
@ -8308,7 +8338,7 @@ static bool setting_append_list(
|
||||
&settings->bools.video_fullscreen,
|
||||
MENU_ENUM_LABEL_VIDEO_FULLSCREEN,
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_FULLSCREEN,
|
||||
fullscreen,
|
||||
DEFAULT_FULLSCREEN,
|
||||
MENU_ENUM_LABEL_VALUE_OFF,
|
||||
MENU_ENUM_LABEL_VALUE_ON,
|
||||
&group_info,
|
||||
@ -8327,7 +8357,7 @@ static bool setting_append_list(
|
||||
&settings->bools.video_windowed_fullscreen,
|
||||
MENU_ENUM_LABEL_VIDEO_WINDOWED_FULLSCREEN,
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_WINDOWED_FULLSCREEN,
|
||||
windowed_fullscreen,
|
||||
DEFAULT_WINDOWED_FULLSCREEN,
|
||||
MENU_ENUM_LABEL_VALUE_OFF,
|
||||
MENU_ENUM_LABEL_VALUE_ON,
|
||||
&group_info,
|
||||
@ -8343,7 +8373,7 @@ static bool setting_append_list(
|
||||
&settings->uints.video_fullscreen_x,
|
||||
MENU_ENUM_LABEL_VIDEO_FULLSCREEN_X,
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_FULLSCREEN_X,
|
||||
fullscreen_x,
|
||||
DEFAULT_FULLSCREEN_X,
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group,
|
||||
@ -8358,7 +8388,7 @@ static bool setting_append_list(
|
||||
&settings->uints.video_fullscreen_y,
|
||||
MENU_ENUM_LABEL_VIDEO_FULLSCREEN_Y,
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_FULLSCREEN_Y,
|
||||
fullscreen_y,
|
||||
DEFAULT_FULLSCREEN_Y,
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group,
|
||||
@ -8453,7 +8483,7 @@ static bool setting_append_list(
|
||||
&settings->uints.video_aspect_ratio_idx,
|
||||
MENU_ENUM_LABEL_VIDEO_ASPECT_RATIO_INDEX,
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_ASPECT_RATIO_INDEX,
|
||||
aspect_ratio_idx,
|
||||
DEFAULT_ASPECT_RATIO_IDX,
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group,
|
||||
@ -8602,7 +8632,7 @@ static bool setting_append_list(
|
||||
&settings->floats.video_scale,
|
||||
MENU_ENUM_LABEL_VIDEO_SCALE,
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_SCALE,
|
||||
scale,
|
||||
DEFAULT_SCALE,
|
||||
"%.1fx",
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
@ -8617,7 +8647,7 @@ static bool setting_append_list(
|
||||
&settings->uints.window_position_width,
|
||||
MENU_ENUM_LABEL_VIDEO_WINDOW_WIDTH,
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_WINDOW_WIDTH,
|
||||
window_width,
|
||||
DEFAULT_WINDOW_WIDTH,
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group,
|
||||
@ -8631,7 +8661,7 @@ static bool setting_append_list(
|
||||
&settings->uints.window_position_height,
|
||||
MENU_ENUM_LABEL_VIDEO_WINDOW_HEIGHT,
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_WINDOW_HEIGHT,
|
||||
window_height,
|
||||
DEFAULT_WINDOW_HEIGHT,
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group,
|
||||
@ -8645,7 +8675,7 @@ static bool setting_append_list(
|
||||
&settings->uints.video_window_opacity,
|
||||
MENU_ENUM_LABEL_VIDEO_WINDOW_OPACITY,
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_WINDOW_OPACITY,
|
||||
window_opacity,
|
||||
DEFAULT_WINDOW_OPACITY,
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group,
|
||||
@ -8662,7 +8692,7 @@ static bool setting_append_list(
|
||||
&settings->bools.video_window_show_decorations,
|
||||
MENU_ENUM_LABEL_VIDEO_WINDOW_SHOW_DECORATIONS,
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_WINDOW_SHOW_DECORATIONS,
|
||||
window_decorations,
|
||||
DEFAULT_WINDOW_DECORATIONS,
|
||||
MENU_ENUM_LABEL_VALUE_OFF,
|
||||
MENU_ENUM_LABEL_VALUE_ON,
|
||||
&group_info,
|
||||
@ -8693,7 +8723,7 @@ static bool setting_append_list(
|
||||
&settings->bools.video_scale_integer,
|
||||
MENU_ENUM_LABEL_VIDEO_SCALE_INTEGER,
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_SCALE_INTEGER,
|
||||
scale_integer,
|
||||
DEFAULT_SCALE_INTEGER,
|
||||
MENU_ENUM_LABEL_VALUE_OFF,
|
||||
MENU_ENUM_LABEL_VALUE_ON,
|
||||
&group_info,
|
||||
@ -8713,7 +8743,7 @@ static bool setting_append_list(
|
||||
&settings->uints.video_viwidth,
|
||||
MENU_ENUM_LABEL_VIDEO_VI_WIDTH,
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_VI_WIDTH,
|
||||
video_viwidth,
|
||||
DEFAULT_VIDEO_VI_WIDTH,
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group,
|
||||
@ -8726,7 +8756,7 @@ static bool setting_append_list(
|
||||
&settings->bools.video_vfilter,
|
||||
MENU_ENUM_LABEL_VIDEO_VFILTER,
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_VFILTER,
|
||||
video_vfilter,
|
||||
DEFAULT_VIDEO_VFILTER,
|
||||
MENU_ENUM_LABEL_VALUE_OFF,
|
||||
MENU_ENUM_LABEL_VALUE_ON,
|
||||
&group_info,
|
||||
@ -8735,6 +8765,32 @@ static bool setting_append_list(
|
||||
general_write_handler,
|
||||
general_read_handler,
|
||||
SD_FLAG_NONE);
|
||||
|
||||
CONFIG_UINT(
|
||||
list, list_info,
|
||||
&settings->uints.video_overscan_correction_top,
|
||||
MENU_ENUM_LABEL_VIDEO_OVERSCAN_CORRECTION_TOP,
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_OVERSCAN_CORRECTION_TOP,
|
||||
DEFAULT_VIDEO_OVERSCAN_CORRECTION_TOP,
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group,
|
||||
general_write_handler,
|
||||
general_read_handler);
|
||||
menu_settings_list_current_add_range(list, list_info, 0, 24, 1, true, true);
|
||||
|
||||
CONFIG_UINT(
|
||||
list, list_info,
|
||||
&settings->uints.video_overscan_correction_bottom,
|
||||
MENU_ENUM_LABEL_VIDEO_OVERSCAN_CORRECTION_BOTTOM,
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_OVERSCAN_CORRECTION_BOTTOM,
|
||||
DEFAULT_VIDEO_OVERSCAN_CORRECTION_BOTTOM,
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group,
|
||||
general_write_handler,
|
||||
general_read_handler);
|
||||
menu_settings_list_current_add_range(list, list_info, 0, 24, 1, true, true);
|
||||
#endif
|
||||
|
||||
CONFIG_BOOL(
|
||||
@ -8742,7 +8798,7 @@ static bool setting_append_list(
|
||||
&settings->bools.video_smooth,
|
||||
MENU_ENUM_LABEL_VIDEO_SMOOTH,
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_SMOOTH,
|
||||
video_smooth,
|
||||
DEFAULT_VIDEO_SMOOTH,
|
||||
MENU_ENUM_LABEL_VALUE_OFF,
|
||||
MENU_ENUM_LABEL_VALUE_ON,
|
||||
&group_info,
|
||||
@ -8822,7 +8878,7 @@ static bool setting_append_list(
|
||||
&settings->bools.video_vsync,
|
||||
MENU_ENUM_LABEL_VIDEO_VSYNC,
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_VSYNC,
|
||||
vsync,
|
||||
DEFAULT_VSYNC,
|
||||
MENU_ENUM_LABEL_VALUE_OFF,
|
||||
MENU_ENUM_LABEL_VALUE_ON,
|
||||
&group_info,
|
||||
@ -8838,7 +8894,7 @@ static bool setting_append_list(
|
||||
&settings->uints.video_swap_interval,
|
||||
MENU_ENUM_LABEL_VIDEO_SWAP_INTERVAL,
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_SWAP_INTERVAL,
|
||||
swap_interval,
|
||||
DEFAULT_SWAP_INTERVAL,
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group,
|
||||
@ -8861,7 +8917,7 @@ static bool setting_append_list(
|
||||
&settings->uints.video_max_swapchain_images,
|
||||
MENU_ENUM_LABEL_VIDEO_MAX_SWAPCHAIN_IMAGES,
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_MAX_SWAPCHAIN_IMAGES,
|
||||
max_swapchain_images,
|
||||
DEFAULT_MAX_SWAPCHAIN_IMAGES,
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group,
|
||||
@ -8882,7 +8938,7 @@ static bool setting_append_list(
|
||||
&settings->bools.video_hard_sync,
|
||||
MENU_ENUM_LABEL_VIDEO_HARD_SYNC,
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_HARD_SYNC,
|
||||
hard_sync,
|
||||
DEFAULT_HARD_SYNC,
|
||||
MENU_ENUM_LABEL_VALUE_OFF,
|
||||
MENU_ENUM_LABEL_VALUE_ON,
|
||||
&group_info,
|
||||
@ -8898,7 +8954,7 @@ static bool setting_append_list(
|
||||
&settings->uints.video_hard_sync_frames,
|
||||
MENU_ENUM_LABEL_VIDEO_HARD_SYNC_FRAMES,
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_HARD_SYNC_FRAMES,
|
||||
hard_sync_frames,
|
||||
DEFAULT_HARD_SYNC_FRAMES,
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group,
|
||||
@ -8919,7 +8975,7 @@ static bool setting_append_list(
|
||||
&settings->bools.video_adaptive_vsync,
|
||||
MENU_ENUM_LABEL_VIDEO_ADAPTIVE_VSYNC,
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_ADAPTIVE_VSYNC,
|
||||
false,
|
||||
DEFAULT_ADAPTIVE_VSYNC,
|
||||
MENU_ENUM_LABEL_VALUE_OFF,
|
||||
MENU_ENUM_LABEL_VALUE_ON,
|
||||
&group_info,
|
||||
@ -8937,7 +8993,7 @@ static bool setting_append_list(
|
||||
&settings->uints.video_frame_delay,
|
||||
MENU_ENUM_LABEL_VIDEO_FRAME_DELAY,
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_FRAME_DELAY,
|
||||
frame_delay,
|
||||
DEFAULT_FRAME_DELAY,
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group,
|
||||
@ -8958,7 +9014,7 @@ static bool setting_append_list(
|
||||
&settings->bools.video_black_frame_insertion,
|
||||
MENU_ENUM_LABEL_VIDEO_BLACK_FRAME_INSERTION,
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_BLACK_FRAME_INSERTION,
|
||||
black_frame_insertion,
|
||||
DEFAULT_BLACK_FRAME_INSERTION,
|
||||
MENU_ENUM_LABEL_VALUE_OFF,
|
||||
MENU_ENUM_LABEL_VALUE_ON,
|
||||
&group_info,
|
||||
@ -9003,7 +9059,7 @@ static bool setting_append_list(
|
||||
&settings->bools.video_crop_overscan,
|
||||
MENU_ENUM_LABEL_VIDEO_CROP_OVERSCAN,
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_CROP_OVERSCAN,
|
||||
crop_overscan,
|
||||
DEFAULT_CROP_OVERSCAN,
|
||||
MENU_ENUM_LABEL_VALUE_OFF,
|
||||
MENU_ENUM_LABEL_VALUE_ON,
|
||||
&group_info,
|
||||
@ -9103,7 +9159,7 @@ static bool setting_append_list(
|
||||
&settings->bools.crt_switch_custom_refresh_enable,
|
||||
MENU_ENUM_LABEL_CRT_SWITCH_RESOLUTION_USE_CUSTOM_REFRESH_RATE,
|
||||
MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION_USE_CUSTOM_REFRESH_RATE,
|
||||
audio_enable,
|
||||
DEFAULT_AUDIO_ENABLE,
|
||||
MENU_ENUM_LABEL_VALUE_OFF,
|
||||
MENU_ENUM_LABEL_VALUE_ON,
|
||||
&group_info,
|
||||
@ -9222,7 +9278,7 @@ static bool setting_append_list(
|
||||
&settings->bools.audio_enable,
|
||||
MENU_ENUM_LABEL_AUDIO_ENABLE,
|
||||
MENU_ENUM_LABEL_VALUE_AUDIO_ENABLE,
|
||||
audio_enable,
|
||||
DEFAULT_AUDIO_ENABLE,
|
||||
MENU_ENUM_LABEL_VALUE_OFF,
|
||||
MENU_ENUM_LABEL_VALUE_ON,
|
||||
&group_info,
|
||||
@ -9270,7 +9326,7 @@ static bool setting_append_list(
|
||||
&settings->floats.audio_volume,
|
||||
MENU_ENUM_LABEL_AUDIO_VOLUME,
|
||||
MENU_ENUM_LABEL_VALUE_AUDIO_VOLUME,
|
||||
audio_volume,
|
||||
DEFAULT_AUDIO_VOLUME,
|
||||
"%.1f",
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
@ -9285,7 +9341,7 @@ static bool setting_append_list(
|
||||
&settings->floats.audio_mixer_volume,
|
||||
MENU_ENUM_LABEL_AUDIO_MIXER_VOLUME,
|
||||
MENU_ENUM_LABEL_VALUE_AUDIO_MIXER_VOLUME,
|
||||
audio_mixer_volume,
|
||||
DEFAULT_AUDIO_MIXER_VOLUME,
|
||||
"%.1f",
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
@ -9313,7 +9369,7 @@ static bool setting_append_list(
|
||||
&settings->bools.audio_sync,
|
||||
MENU_ENUM_LABEL_AUDIO_SYNC,
|
||||
MENU_ENUM_LABEL_VALUE_AUDIO_SYNC,
|
||||
audio_sync,
|
||||
DEFAULT_AUDIO_SYNC,
|
||||
MENU_ENUM_LABEL_VALUE_OFF,
|
||||
MENU_ENUM_LABEL_VALUE_ON,
|
||||
&group_info,
|
||||
@ -9331,7 +9387,7 @@ static bool setting_append_list(
|
||||
MENU_ENUM_LABEL_AUDIO_LATENCY,
|
||||
MENU_ENUM_LABEL_VALUE_AUDIO_LATENCY,
|
||||
g_defaults.settings.out_latency ?
|
||||
g_defaults.settings.out_latency : out_latency,
|
||||
g_defaults.settings.out_latency : DEFAULT_OUT_LATENCY,
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group,
|
||||
@ -9363,7 +9419,7 @@ static bool setting_append_list(
|
||||
audio_get_float_ptr(AUDIO_ACTION_RATE_CONTROL_DELTA),
|
||||
MENU_ENUM_LABEL_AUDIO_RATE_CONTROL_DELTA,
|
||||
MENU_ENUM_LABEL_VALUE_AUDIO_RATE_CONTROL_DELTA,
|
||||
rate_control_delta,
|
||||
DEFAULT_RATE_CONTROL_DELTA,
|
||||
"%.3f",
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
@ -9385,7 +9441,7 @@ static bool setting_append_list(
|
||||
&settings->floats.audio_max_timing_skew,
|
||||
MENU_ENUM_LABEL_AUDIO_MAX_TIMING_SKEW,
|
||||
MENU_ENUM_LABEL_VALUE_AUDIO_MAX_TIMING_SKEW,
|
||||
max_timing_skew,
|
||||
DEFAULT_MAX_TIMING_SKEW,
|
||||
"%.2f",
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
@ -9454,7 +9510,7 @@ static bool setting_append_list(
|
||||
&settings->uints.audio_out_rate,
|
||||
MENU_ENUM_LABEL_AUDIO_OUTPUT_RATE,
|
||||
MENU_ENUM_LABEL_VALUE_AUDIO_OUTPUT_RATE,
|
||||
out_rate,
|
||||
DEFAULT_OUTPUT_RATE,
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group,
|
||||
@ -10138,7 +10194,7 @@ static bool setting_append_list(
|
||||
&settings->uints.video_record_threads,
|
||||
MENU_ENUM_LABEL_VIDEO_RECORD_THREADS,
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_RECORD_THREADS,
|
||||
video_record_threads,
|
||||
DEFAULT_VIDEO_RECORD_THREADS,
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group,
|
||||
@ -10255,7 +10311,7 @@ static bool setting_append_list(
|
||||
&settings->floats.fastforward_ratio,
|
||||
MENU_ENUM_LABEL_FASTFORWARD_RATIO,
|
||||
MENU_ENUM_LABEL_VALUE_FASTFORWARD_RATIO,
|
||||
fastforward_ratio,
|
||||
DEFAULT_FASTFORWARD_RATIO,
|
||||
"%.1fx",
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
@ -10287,7 +10343,7 @@ static bool setting_append_list(
|
||||
&settings->floats.slowmotion_ratio,
|
||||
MENU_ENUM_LABEL_SLOWMOTION_RATIO,
|
||||
MENU_ENUM_LABEL_VALUE_SLOWMOTION_RATIO,
|
||||
slowmotion_ratio,
|
||||
DEFAULT_SLOWMOTION_RATIO,
|
||||
"%.1fx",
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
@ -10446,7 +10502,7 @@ static bool setting_append_list(
|
||||
&settings->floats.video_font_size,
|
||||
MENU_ENUM_LABEL_VIDEO_FONT_SIZE,
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_FONT_SIZE,
|
||||
font_size,
|
||||
DEFAULT_FONT_SIZE,
|
||||
"%.1f",
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
@ -10660,7 +10716,7 @@ static bool setting_append_list(
|
||||
&settings->bools.input_overlay_hide_in_menu,
|
||||
MENU_ENUM_LABEL_INPUT_OVERLAY_HIDE_IN_MENU,
|
||||
MENU_ENUM_LABEL_VALUE_INPUT_OVERLAY_HIDE_IN_MENU,
|
||||
overlay_hide_in_menu,
|
||||
DEFAULT_OVERLAY_HIDE_IN_MENU,
|
||||
MENU_ENUM_LABEL_VALUE_OFF,
|
||||
MENU_ENUM_LABEL_VALUE_ON,
|
||||
&group_info,
|
||||
@ -10703,6 +10759,22 @@ static bool setting_append_list(
|
||||
(*list)[list_info->index - 1].action_ok = &setting_action_ok_uint;
|
||||
menu_settings_list_current_add_range(list, list_info, 0, MAX_USERS - 1, 1, true, true);
|
||||
|
||||
CONFIG_BOOL(
|
||||
list, list_info,
|
||||
&settings->bools.input_overlay_show_mouse_cursor,
|
||||
MENU_ENUM_LABEL_INPUT_OVERLAY_SHOW_MOUSE_CURSOR,
|
||||
MENU_ENUM_LABEL_VALUE_INPUT_OVERLAY_SHOW_MOUSE_CURSOR,
|
||||
DEFAULT_OVERLAY_SHOW_MOUSE_CURSOR,
|
||||
MENU_ENUM_LABEL_VALUE_OFF,
|
||||
MENU_ENUM_LABEL_VALUE_ON,
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group,
|
||||
general_write_handler,
|
||||
general_read_handler,
|
||||
SD_FLAG_NONE
|
||||
);
|
||||
|
||||
CONFIG_PATH(
|
||||
list, list_info,
|
||||
settings->paths.path_overlay,
|
||||
@ -10917,7 +10989,7 @@ static bool setting_append_list(
|
||||
&settings->bools.menu_mouse_enable,
|
||||
MENU_ENUM_LABEL_MOUSE_ENABLE,
|
||||
MENU_ENUM_LABEL_VALUE_MOUSE_ENABLE,
|
||||
def_mouse_enable,
|
||||
DEFAULT_MOUSE_ENABLE,
|
||||
MENU_ENUM_LABEL_VALUE_OFF,
|
||||
MENU_ENUM_LABEL_VALUE_ON,
|
||||
&group_info,
|
||||
@ -11364,7 +11436,7 @@ static bool setting_append_list(
|
||||
&settings->bools.threaded_data_runloop_enable,
|
||||
MENU_ENUM_LABEL_THREADED_DATA_RUNLOOP_ENABLE,
|
||||
MENU_ENUM_LABEL_VALUE_THREADED_DATA_RUNLOOP_ENABLE,
|
||||
threaded_data_runloop_enable,
|
||||
DEFAULT_THREADED_DATA_RUNLOOP_ENABLE,
|
||||
MENU_ENUM_LABEL_VALUE_OFF,
|
||||
MENU_ENUM_LABEL_VALUE_ON,
|
||||
&group_info,
|
||||
@ -11997,7 +12069,7 @@ static bool setting_append_list(
|
||||
&settings->bools.menu_materialui_icons_enable,
|
||||
MENU_ENUM_LABEL_MATERIALUI_ICONS_ENABLE,
|
||||
MENU_ENUM_LABEL_VALUE_MATERIALUI_ICONS_ENABLE,
|
||||
materialui_icons_enable,
|
||||
DEFAULT_MATERIALUI_ICONS_ENABLE,
|
||||
MENU_ENUM_LABEL_VALUE_OFF,
|
||||
MENU_ENUM_LABEL_VALUE_ON,
|
||||
&group_info,
|
||||
@ -12474,7 +12546,7 @@ static bool setting_append_list(
|
||||
&settings->bools.pause_nonactive,
|
||||
MENU_ENUM_LABEL_PAUSE_NONACTIVE,
|
||||
MENU_ENUM_LABEL_VALUE_PAUSE_NONACTIVE,
|
||||
pause_nonactive,
|
||||
DEFAULT_PAUSE_NONACTIVE,
|
||||
MENU_ENUM_LABEL_VALUE_OFF,
|
||||
MENU_ENUM_LABEL_VALUE_ON,
|
||||
&group_info,
|
||||
@ -12491,7 +12563,7 @@ static bool setting_append_list(
|
||||
&settings->bools.video_disable_composition,
|
||||
MENU_ENUM_LABEL_VIDEO_DISABLE_COMPOSITION,
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_DISABLE_COMPOSITION,
|
||||
disable_composition,
|
||||
DEFAULT_DISABLE_COMPOSITION,
|
||||
MENU_ENUM_LABEL_VALUE_OFF,
|
||||
MENU_ENUM_LABEL_VALUE_ON,
|
||||
&group_info,
|
||||
@ -13000,20 +13072,21 @@ static bool setting_append_list(
|
||||
general_read_handler,
|
||||
SD_FLAG_NONE);
|
||||
|
||||
CONFIG_BOOL(
|
||||
CONFIG_UINT(
|
||||
list, list_info,
|
||||
&settings->bools.playlist_entry_remove,
|
||||
&settings->uints.playlist_entry_remove_enable,
|
||||
MENU_ENUM_LABEL_PLAYLIST_ENTRY_REMOVE,
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_ENTRY_REMOVE,
|
||||
def_playlist_entry_remove,
|
||||
MENU_ENUM_LABEL_VALUE_OFF,
|
||||
MENU_ENUM_LABEL_VALUE_ON,
|
||||
playlist_entry_remove_enable,
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group,
|
||||
general_write_handler,
|
||||
general_read_handler,
|
||||
SD_FLAG_NONE);
|
||||
general_read_handler);
|
||||
(*list)[list_info->index - 1].action_ok = &setting_action_ok_uint;
|
||||
(*list)[list_info->index - 1].get_string_representation =
|
||||
&setting_get_string_representation_uint_playlist_entry_remove_enable;
|
||||
menu_settings_list_current_add_range(list, list_info, 0, PLAYLIST_ENTRY_REMOVE_ENABLE_LAST-1, 1, true, true);
|
||||
|
||||
CONFIG_BOOL(
|
||||
list, list_info,
|
||||
@ -13128,7 +13201,7 @@ static bool setting_append_list(
|
||||
&settings->bools.cheevos_enable,
|
||||
MENU_ENUM_LABEL_CHEEVOS_ENABLE,
|
||||
MENU_ENUM_LABEL_VALUE_CHEEVOS_ENABLE,
|
||||
cheevos_enable,
|
||||
DEFAULT_CHEEVOS_ENABLE,
|
||||
MENU_ENUM_LABEL_VALUE_OFF,
|
||||
MENU_ENUM_LABEL_VALUE_ON,
|
||||
&group_info,
|
||||
|
@ -777,6 +777,7 @@ enum msg_hash_enums
|
||||
MENU_LABEL(INPUT_OVERLAY_HIDE_IN_MENU),
|
||||
MENU_LABEL(INPUT_OVERLAY_SHOW_PHYSICAL_INPUTS),
|
||||
MENU_LABEL(INPUT_OVERLAY_SHOW_PHYSICAL_INPUTS_PORT),
|
||||
MENU_LABEL(INPUT_OVERLAY_SHOW_MOUSE_CURSOR),
|
||||
MENU_LABEL(INPUT_KEYBOARD_GAMEPAD_MAPPING_TYPE),
|
||||
MENU_LABEL(INPUT_SMALL_KEYBOARD_ENABLE),
|
||||
MENU_LABEL(INPUT_TOUCH_ENABLE),
|
||||
@ -1848,6 +1849,8 @@ enum msg_hash_enums
|
||||
MENU_LABEL(USER_LANGUAGE),
|
||||
MENU_LABEL(NETPLAY_NICKNAME),
|
||||
MENU_LABEL(VIDEO_VI_WIDTH),
|
||||
MENU_LABEL(VIDEO_OVERSCAN_CORRECTION_TOP),
|
||||
MENU_LABEL(VIDEO_OVERSCAN_CORRECTION_BOTTOM),
|
||||
MENU_LABEL(VIDEO_ASPECT_RATIO),
|
||||
MENU_LABEL(VIDEO_FORCE_ASPECT),
|
||||
MENU_LABEL(VIDEO_ASPECT_RATIO_AUTO),
|
||||
@ -2375,6 +2378,10 @@ enum msg_hash_enums
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_INLINE_CORE_DISPLAY_ALWAYS,
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_INLINE_CORE_DISPLAY_NEVER,
|
||||
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_ENTRY_REMOVE_ENABLE_HIST_FAV,
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_ENTRY_REMOVE_ENABLE_ALL,
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_ENTRY_REMOVE_ENABLE_NONE,
|
||||
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_SUBLABEL_CORE,
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_SUBLABEL_RUNTIME,
|
||||
MENU_ENUM_LABEL_VALUE_PLAYLIST_SUBLABEL_LAST_PLAYED,
|
||||
|
@ -894,6 +894,7 @@
|
||||
../../,
|
||||
"../../libretro-common/include",
|
||||
../../deps/stb,
|
||||
../../deps/rcheevos/include,
|
||||
../../deps/libz,
|
||||
../../deps,
|
||||
);
|
||||
|
@ -128,10 +128,8 @@ add_define MAKEFILE BIN_DIR "${BIN_DIR:-${PREFIX}/bin}"
|
||||
add_define MAKEFILE DOC_DIR "${DOC_DIR:-${SHARE_DIR}/doc/retroarch}"
|
||||
add_define MAKEFILE MAN_DIR "${MAN_DIR:-${SHARE_DIR}/man}"
|
||||
|
||||
if [ "$OS" = 'DOS' ]; then
|
||||
HAVE_SHADERPIPELINE=no
|
||||
HAVE_LANGEXTRA=no
|
||||
fi
|
||||
check_platform DOS SHADERPIPELINE 'Shader-based pipelines are' false
|
||||
check_platform DOS LANGEXTRA 'Extra languages are' false
|
||||
|
||||
check_lib '' THREADS "$PTHREADLIB" pthread_create
|
||||
check_enabled THREADS THREAD_STORAGE 'Thread Local Storage' 'Threads are' false
|
||||
@ -203,10 +201,8 @@ if [ "$HAVE_OSS" != 'no' ]; then
|
||||
check_lib '' OSS_LIB -lossaudio
|
||||
fi
|
||||
|
||||
if [ "$OS" = 'Linux' ]; then
|
||||
HAVE_TINYALSA=yes
|
||||
HAVE_RPILED=yes
|
||||
fi
|
||||
check_platform Linux TINYALSA 'Tinyalsa is' true
|
||||
check_platform Linux RPILED 'The RPI led driver is' true
|
||||
|
||||
if [ "$OS" = 'Darwin' ]; then
|
||||
check_lib '' COREAUDIO "-framework AudioUnit" AudioUnitInitialize
|
||||
@ -234,6 +230,7 @@ if [ "$HAVE_SDL2" = 'yes' ] && [ "$HAVE_SDL" = 'yes' ]; then
|
||||
HAVE_SDL=no
|
||||
fi
|
||||
|
||||
check_platform Haiku DISCORD 'Discord is' false
|
||||
check_enabled CXX DISCORD discord 'The C++ compiler is' false
|
||||
check_enabled CXX QT 'Qt companion' 'The C++ compiler is' false
|
||||
|
||||
@ -247,18 +244,18 @@ if [ "$HAVE_QT" != 'no' ]; then
|
||||
|
||||
# pkg-config is needed to reliably find Qt5 libraries.
|
||||
|
||||
if [ "$HAVE_QT5CORE" = "no" ] || [ "$HAVE_QT5GUI" = "no" ] || [ "$HAVE_QT5WIDGETS" = "no" ] || [ "$HAVE_QT5CONCURRENT" = "no" ] || [ "$HAVE_QT5NETWORK" = "no" ]; then
|
||||
die : 'Notice: Not building Qt support, required libraries were not found.'
|
||||
HAVE_QT=no
|
||||
else
|
||||
HAVE_QT=yes
|
||||
check_enabled QT5CORE QT Qt 'Qt5Core is' true
|
||||
check_enabled QT5GUI QT Qt 'Qt5GUI is' true
|
||||
check_enabled QT5WIDGETS QT Qt 'Qt5Widgets is' true
|
||||
check_enabled QT5CONCURRENT QT Qt 'Qt5Concurrent is' true
|
||||
check_enabled QT5NETWORK QT Qt 'Qt5Network is' true
|
||||
#check_enabled QT5WEBENGINE QT Qt 'Qt5Webengine is' true
|
||||
|
||||
if [ "$HAVE_QT" != yes ]; then
|
||||
die : 'Notice: Qt support disabled, required libraries were not found.'
|
||||
fi
|
||||
|
||||
check_pkgconf OPENSSL openssl 1.0.0
|
||||
|
||||
#if [ "$HAVE_QT5WEBENGINE" = "no" ]; then
|
||||
# die : 'Notice: Qt5WebEngine not found, disabling web browser support.'
|
||||
#fi
|
||||
fi
|
||||
|
||||
if [ "$HAVE_FLAC" = 'no' ]; then
|
||||
@ -303,9 +300,15 @@ check_val '' LIBUSB -lusb-1.0 libusb-1.0 libusb-1.0 1.0.13 '' false
|
||||
|
||||
if [ "$OS" = 'Win32' ]; then
|
||||
check_lib '' DINPUT -ldinput8
|
||||
check_lib '' D3D8 -ld3d8
|
||||
check_lib '' D3D9 -ld3d9
|
||||
check_lib '' DSOUND -ldsound
|
||||
|
||||
if [ "$HAVE_D3DX" != 'no' ]; then
|
||||
check_lib '' D3DX8 -ld3dx8
|
||||
check_lib '' D3DX9 -ld3dx9
|
||||
fi
|
||||
|
||||
if [ "$HAVE_DINPUT" != 'no' ]; then
|
||||
HAVE_XINPUT=yes
|
||||
fi
|
||||
@ -313,13 +316,15 @@ if [ "$OS" = 'Win32' ]; then
|
||||
HAVE_WASAPI=yes
|
||||
HAVE_XAUDIO=yes
|
||||
HAVE_WINMM=yes
|
||||
else
|
||||
HAVE_D3D9=no
|
||||
HAVE_D3D10=no
|
||||
HAVE_D3D11=no
|
||||
HAVE_D3D12=no
|
||||
fi
|
||||
|
||||
check_platform Win32 D3D8 'Direct3D 8 is' true
|
||||
check_platform Win32 D3D9 'Direct3D 9 is' true
|
||||
check_platform Win32 D3D10 'Direct3D 10 is' true
|
||||
check_platform Win32 D3D11 'Direct3D 11 is' true
|
||||
check_platform Win32 D3D12 'Direct3D 12 is' true
|
||||
check_platform Win32 D3DX 'Direct3DX is' true
|
||||
|
||||
if [ "$HAVE_OPENGL" != 'no' ] && [ "$HAVE_OPENGLES" != 'yes' ]; then
|
||||
if [ "$OS" = 'Darwin' ]; then
|
||||
check_header OPENGL "OpenGL/gl.h"
|
||||
@ -348,6 +353,7 @@ else
|
||||
HAVE_OPENGL='no'
|
||||
fi
|
||||
|
||||
check_enabled EGL OPENGLES3 OpenGLES3 'EGL is' false
|
||||
check_enabled OPENGL CG Cg 'OpenGL is' false
|
||||
check_enabled OPENGL OSMESA osmesa 'OpenGL is' false
|
||||
check_enabled OPENGL OPENGL1 OpenGL1 'OpenGL is' false
|
||||
@ -360,7 +366,9 @@ elif [ "$HAVE_OPENGLES" != 'no' ] && [ "$HAVE_OPENGLES3" != 'yes' ]; then
|
||||
HAVE_OPENGL_CORE='no'
|
||||
fi
|
||||
|
||||
if [ "$HAVE_BUILTINZLIB" = 'yes' ]; then
|
||||
if [ "$HAVE_ZLIB" = 'no' ]; then
|
||||
HAVE_BUILTINZLIB=no
|
||||
elif [ "$HAVE_BUILTINZLIB" = 'yes' ]; then
|
||||
HAVE_ZLIB=yes
|
||||
else
|
||||
check_val '' ZLIB '-lz' '' zlib '' '' false
|
||||
@ -422,18 +430,36 @@ else
|
||||
HAVE_OPENGLES=no
|
||||
fi
|
||||
|
||||
check_pkgconf DBUS dbus-1
|
||||
check_val '' UDEV "-ludev" '' libudev '' '' false
|
||||
check_val '' V4L2 -lv4l2 '' libv4l2 '' '' false
|
||||
check_val '' FREETYPE -lfreetype freetype2 freetype2 '' '' false
|
||||
check_val '' X11 -lX11 '' x11 '' '' false
|
||||
check_val '' XCB -lxcb '' xcb '' '' false
|
||||
|
||||
if [ "$HAVE_X11" != 'no' ]; then
|
||||
check_val '' XEXT -lXext '' xext '' '' false
|
||||
check_val '' XF86VM -lXxf86vm '' xxf86vm '' '' false
|
||||
else
|
||||
die : 'Notice: X11 not present. Skipping X11 code paths.'
|
||||
fi
|
||||
|
||||
check_enabled X11 XINERAMA Xinerama 'X11 is' false
|
||||
check_enabled X11 XSHM XShm 'X11 is' false
|
||||
check_enabled X11 XRANDR Xrandr 'X11 is' false
|
||||
check_enabled X11 XVIDEO XVideo 'X11 is' false
|
||||
check_enabled XEXT XVIDEO XVideo 'Xext is' false
|
||||
check_enabled XF86VM XVIDEO XVideo 'XF86vm is' false
|
||||
|
||||
check_val '' XVIDEO -lXv '' xv '' '' false
|
||||
check_val '' XINERAMA -lXinerama '' xinerama '' '' false
|
||||
check_lib '' XRANDR -lXrandr
|
||||
check_header XSHM X11/Xlib.h X11/extensions/XShm.h
|
||||
check_val '' XKBCOMMON -lxkbcommon '' xkbcommon 0.3.2 '' false
|
||||
check_val '' WAYLAND '-lwayland-egl -lwayland-client' '' wayland-egl 10.1.0 '' false
|
||||
check_val '' WAYLAND_CURSOR -lwayland-cursor '' wayland-cursor 1.12 '' false
|
||||
check_pkgconf WAYLAND_PROTOS wayland-protocols 1.15
|
||||
check_pkgconf WAYLAND_SCANNER wayland-scanner '1.15 1.12'
|
||||
check_val '' XKBCOMMON -lxkbcommon '' xkbcommon 0.3.2 '' false
|
||||
check_pkgconf DBUS dbus-1
|
||||
check_val '' XEXT -lXext '' xext '' '' false
|
||||
check_val '' XF86VM -lXxf86vm '' xxf86vm '' '' false
|
||||
|
||||
if [ "$HAVE_WAYLAND_SCANNER" = yes ] &&
|
||||
[ "$HAVE_WAYLAND_CURSOR" = yes ] &&
|
||||
@ -448,24 +474,6 @@ else
|
||||
HAVE_WAYLAND='no'
|
||||
fi
|
||||
|
||||
if [ "$HAVE_X11" = 'no' ]; then
|
||||
HAVE_XEXT=no; HAVE_XF86VM=no; HAVE_XINERAMA=no; HAVE_XSHM=no; HAVE_XRANDR=no
|
||||
fi
|
||||
|
||||
check_lib '' XRANDR -lXrandr
|
||||
check_val '' XINERAMA -lXinerama '' xinerama '' '' false
|
||||
|
||||
if [ "$HAVE_X11" = 'yes' ] && [ "$HAVE_XEXT" = 'yes' ] && [ "$HAVE_XF86VM" = 'yes' ]; then
|
||||
check_val '' XVIDEO -lXv '' xv '' '' false
|
||||
else
|
||||
die : 'Notice: X11, Xext or xf86vm not present. Skipping X11 code paths.'
|
||||
HAVE_X11='no'
|
||||
HAVE_XVIDEO='no'
|
||||
fi
|
||||
|
||||
check_val '' UDEV "-ludev" '' libudev '' '' false
|
||||
|
||||
check_header XSHM X11/Xlib.h X11/extensions/XShm.h
|
||||
check_header PARPORT linux/parport.h
|
||||
check_header PARPORT linux/ppdev.h
|
||||
|
||||
@ -526,10 +534,5 @@ if [ "$HAVE_DEBUG" = 'yes' ]; then
|
||||
fi
|
||||
|
||||
check_enabled MENU MENU_WIDGETS 'menu widgets' 'The menu is' false
|
||||
|
||||
if [ "$HAVE_ZLIB" = 'no' ] && [ "$HAVE_BUILTINZLIB" = 'no' ]; then
|
||||
eval "HAVE_RPNG=no"
|
||||
die : "Notice: zlib disabled, rpng support will also be disabled."
|
||||
fi
|
||||
|
||||
check_enabled ZLIB RPNG RPNG 'zlib is' false
|
||||
check_enabled V4L2 VIDEOPROCESSOR 'video processor' 'Video4linux2 is' true
|
||||
|
@ -48,7 +48,7 @@ HAVE_MINIUPNPC=auto # Mini UPnP client library (for NAT traversal)
|
||||
HAVE_BUILTINMINIUPNPC=yes # Bake in Mini UPnP client library (for NAT traversal)
|
||||
C89_BUILTINMINIUPNPC=no
|
||||
HAVE_D3D8=no # Direct3D 8 support
|
||||
HAVE_D3D9=yes # Direct3D 9 support
|
||||
HAVE_D3D9=auto # Direct3D 9 support
|
||||
C89_D3D9=no
|
||||
HAVE_D3D10=yes # Direct3D 10 support
|
||||
C89_D3D10=no
|
||||
@ -56,7 +56,7 @@ HAVE_D3D11=yes # Direct3D 11 support
|
||||
C89_D3D11=no
|
||||
HAVE_D3D12=yes # Direct3D 12 support
|
||||
C89_D3D12=no
|
||||
HAVE_D3DX=yes # Direct3DX support
|
||||
HAVE_D3DX=auto # Direct3DX support
|
||||
HAVE_OPENGL=auto # OpenGL 2.0 support
|
||||
HAVE_OPENGL_CORE=yes # Modern OpenGL driver support (GLES3+/GL3.2 core+), requires OpenGL.
|
||||
C89_OPENGL_CORE=no
|
||||
@ -78,14 +78,15 @@ HAVE_SUNXI=no # Sunxi video support
|
||||
HAVE_WAYLAND=auto # Wayland support
|
||||
C89_WAYLAND=no
|
||||
CXX_WAYLAND=no
|
||||
HAVE_EGL=no # EGL context support
|
||||
HAVE_EGL=auto # EGL context support
|
||||
HAVE_VG=auto # OpenVG support
|
||||
HAVE_CG=auto # Cg shader support
|
||||
HAVE_HLSL=no # HLSL9 shader support (for Direct3D9)
|
||||
HAVE_BUILTINZLIB=yes # Bake in zlib
|
||||
HAVE_ZLIB=no # zlib support (ZIP extract, PNG decoding/encoding)
|
||||
HAVE_ZLIB=auto # zlib support (ZIP extract, PNG decoding/encoding)
|
||||
HAVE_ALSA=auto # ALSA support
|
||||
C89_ALSA=no
|
||||
HAVE_RPILED=auto # RPI led support
|
||||
HAVE_TINYALSA=auto # TinyALSA support
|
||||
HAVE_AUDIOIO=auto # AudioIO support
|
||||
HAVE_OSS=auto # OSS support
|
||||
|
@ -79,6 +79,34 @@ check_enabled()
|
||||
die 1 "Error: $4 disabled and forced to build with $3 support."
|
||||
}
|
||||
|
||||
# check_platform:
|
||||
# $1 = OS
|
||||
# $2 = HAVE_$2
|
||||
# $3 = feature
|
||||
# $4 = enable feature when true [checked only if non-empty]
|
||||
check_platform()
|
||||
{ tmpval="$(eval "printf %s \"\$HAVE_$2\"")"
|
||||
[ "$tmpval" = 'no' ] && return 0
|
||||
|
||||
setval="$(eval "printf %s \"\$USER_$2\"")"
|
||||
|
||||
if [ "$setval" = 'yes' ]; then
|
||||
if { [ "$1" != "$OS" ] && [ "${4:-}" = 'true' ]; } ||
|
||||
{ [ "$1" = "$OS" ] &&
|
||||
[ "${4:-}" != 'true' ]; }; then
|
||||
die 1 "Error: $3 not supported for $OS."
|
||||
fi
|
||||
elif [ "$1" = "$OS" ]; then
|
||||
if [ "${4:-}" = 'true' ]; then
|
||||
eval "HAVE_$2=yes"
|
||||
else
|
||||
eval "HAVE_$2=no"
|
||||
fi
|
||||
elif [ "${4:-}" = 'true' ]; then
|
||||
eval "HAVE_$2="
|
||||
fi
|
||||
}
|
||||
|
||||
# check_lib:
|
||||
# Compiles a simple test program to check if a library is available.
|
||||
# $1 = language
|
||||
|
@ -68,16 +68,19 @@ opt_exists() # $opt is returned if exists in OPTS
|
||||
parse_input() # Parse stuff :V
|
||||
{ BUILD=''
|
||||
OPTS=''
|
||||
config_opts='./configure'
|
||||
|
||||
while read -r VAR _; do
|
||||
TMPVAR="${VAR%=*}"
|
||||
NEWVAR="${TMPVAR##HAVE_}"
|
||||
OPTS="$OPTS $NEWVAR"
|
||||
eval "USER_$NEWVAR=no"
|
||||
eval "USER_$NEWVAR=auto"
|
||||
done < 'qb/config.params.sh'
|
||||
#OPTS contains all available options in config.params.sh - used to speedup
|
||||
#things in opt_exists()
|
||||
|
||||
while [ $# -gt 0 ]; do
|
||||
config_opts="${config_opts} $1"
|
||||
case "$1" in
|
||||
--prefix=*) PREFIX=${1##--prefix=};;
|
||||
--global-config-dir=*|--sysconfdir=*) GLOBAL_CONFIG_DIR="${1#*=}";;
|
||||
@ -95,6 +98,7 @@ parse_input() # Parse stuff :V
|
||||
--disable-*)
|
||||
opt_exists "${1##--disable-}" "$1"
|
||||
eval "HAVE_$opt=no"
|
||||
eval "USER_$opt=no"
|
||||
eval "HAVE_NO_$opt=yes"
|
||||
;;
|
||||
--with-*)
|
||||
@ -110,6 +114,17 @@ parse_input() # Parse stuff :V
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
cat > config.log << EOF
|
||||
Command line invocation:
|
||||
|
||||
\$ ${config_opts}
|
||||
|
||||
## ----------- ##
|
||||
## Core Tests. ##
|
||||
## ----------- ##
|
||||
|
||||
EOF
|
||||
}
|
||||
|
||||
. qb/config.params.sh
|
||||
|
14
retroarch.c
14
retroarch.c
@ -4606,11 +4606,10 @@ int runloop_iterate(unsigned *sleep_ms)
|
||||
autosave_unlock();
|
||||
|
||||
/* Condition for max speed x0.0 when vrr_runloop is off to skip that part */
|
||||
if (fastforward_ratio || vrr_runloop_enable)
|
||||
end:
|
||||
{
|
||||
retro_time_t to_sleep_ms;
|
||||
if (!(fastforward_ratio || vrr_runloop_enable))
|
||||
return 0;
|
||||
|
||||
end:
|
||||
if (vrr_runloop_enable)
|
||||
{
|
||||
struct retro_system_av_info *av_info =
|
||||
@ -4640,7 +4639,8 @@ int runloop_iterate(unsigned *sleep_ms)
|
||||
(runloop_fastmotion ? fastforward_ratio : 1.0f)));
|
||||
}
|
||||
|
||||
to_sleep_ms = (
|
||||
{
|
||||
retro_time_t to_sleep_ms = (
|
||||
(frame_limit_last_time + frame_limit_minimum_time)
|
||||
- cpu_features_get_time_usec()) / 1000;
|
||||
|
||||
@ -4651,9 +4651,9 @@ int runloop_iterate(unsigned *sleep_ms)
|
||||
frame_limit_last_time += frame_limit_minimum_time;
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
frame_limit_last_time = cpu_features_get_time_usec();
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -5038,7 +5038,7 @@ bool rarch_write_debug_info(void)
|
||||
if (joypad_driver && string_is_equal(joypad_driver->ident, settings->arrays.input_joypad_driver))
|
||||
filestream_printf(file, " - Joypad: %s\n", !string_is_empty(joypad_driver->ident) ? joypad_driver->ident : "n/a");
|
||||
else
|
||||
filestream_printf(file, " - Input: %s (configured for %s)\n", !string_is_empty(joypad_driver->ident) ? joypad_driver->ident : "n/a", !string_is_empty(settings->arrays.input_joypad_driver) ? settings->arrays.input_joypad_driver : "n/a");
|
||||
filestream_printf(file, " - Joypad: %s (configured for %s)\n", !string_is_empty(joypad_driver->ident) ? joypad_driver->ident : "n/a", !string_is_empty(settings->arrays.input_joypad_driver) ? settings->arrays.input_joypad_driver : "n/a");
|
||||
}
|
||||
|
||||
filestream_printf(file, "\n");
|
||||
|
@ -157,6 +157,9 @@ static int pending_subsystem_rom_num = 0;
|
||||
static int pending_subsystem_id = 0;
|
||||
static unsigned pending_subsystem_rom_id = 0;
|
||||
|
||||
static bool pending_content_rom_crc = false;
|
||||
static char pending_content_rom_crc_path[PATH_MAX_LENGTH] = {0};
|
||||
|
||||
static char pending_subsystem_ident[255];
|
||||
#if 0
|
||||
static char pending_subsystem_extensions[PATH_MAX_LENGTH];
|
||||
@ -349,12 +352,14 @@ static bool load_content_into_memory(
|
||||
/* If we have a media type, ignore CRC32 calculation. */
|
||||
if (type == RARCH_CONTENT_NONE)
|
||||
{
|
||||
bool has_patch = false;
|
||||
|
||||
/* First content file is significant, attempt to do patching,
|
||||
* CRC checking, etc. */
|
||||
|
||||
/* Attempt to apply a patch. */
|
||||
if (!content_ctx->patch_is_blocked)
|
||||
patch_content(
|
||||
has_patch = patch_content(
|
||||
content_ctx->is_ips_pref,
|
||||
content_ctx->is_bps_pref,
|
||||
content_ctx->is_ups_pref,
|
||||
@ -364,10 +369,18 @@ static bool load_content_into_memory(
|
||||
(uint8_t**)&ret_buf,
|
||||
(void*)length);
|
||||
|
||||
if (has_patch)
|
||||
{
|
||||
content_rom_crc = encoding_crc32(0, ret_buf, (size_t)*length);
|
||||
|
||||
RARCH_LOG("CRC32: 0x%x .\n", (unsigned)content_rom_crc);
|
||||
}
|
||||
else
|
||||
{
|
||||
pending_content_rom_crc = true;
|
||||
strlcpy(pending_content_rom_crc_path,
|
||||
path, sizeof(pending_content_rom_crc_path));
|
||||
}
|
||||
}
|
||||
else
|
||||
content_rom_crc = 0;
|
||||
}
|
||||
@ -702,14 +715,11 @@ static bool content_file_load(
|
||||
}
|
||||
#endif
|
||||
|
||||
/* It adds up to 10 seconds when loading large roms.
|
||||
* It's mainly used for network play which isn't available for these platforms. */
|
||||
#if !defined(GEKKO)
|
||||
RARCH_LOG("%s\n", msg_hash_to_str(
|
||||
MSG_CONTENT_LOADING_SKIPPED_IMPLEMENTATION_WILL_DO_IT));
|
||||
content_rom_crc = file_crc32(0, path);
|
||||
RARCH_LOG("CRC32: 0x%x .\n", (unsigned)content_rom_crc);
|
||||
#endif
|
||||
pending_content_rom_crc = true;
|
||||
strlcpy(pending_content_rom_crc_path,
|
||||
path, sizeof(pending_content_rom_crc_path));
|
||||
|
||||
}
|
||||
}
|
||||
@ -2032,6 +2042,13 @@ void content_unset_does_not_need_content(void)
|
||||
|
||||
uint32_t content_get_crc(void)
|
||||
{
|
||||
if (pending_content_rom_crc)
|
||||
{
|
||||
pending_content_rom_crc = false;
|
||||
content_rom_crc = file_crc32(0,
|
||||
(const char*)pending_content_rom_crc_path);
|
||||
RARCH_LOG("CRC32: 0x%x .\n", (unsigned)content_rom_crc);
|
||||
}
|
||||
return content_rom_crc;
|
||||
}
|
||||
|
||||
@ -2069,6 +2086,7 @@ void content_deinit(void)
|
||||
content_rom_crc = 0;
|
||||
_content_is_inited = false;
|
||||
core_does_not_need_content = false;
|
||||
pending_content_rom_crc = false;
|
||||
}
|
||||
|
||||
/* Set environment variables before a subsystem load */
|
||||
|
@ -630,7 +630,7 @@ static bool try_ips_patch(bool allow_ips,
|
||||
* Apply patch to the content file in-memory.
|
||||
*
|
||||
**/
|
||||
static void patch_content(
|
||||
static bool patch_content(
|
||||
bool is_ips_pref,
|
||||
bool is_bps_pref,
|
||||
bool is_ups_pref,
|
||||
@ -651,7 +651,7 @@ static void patch_content(
|
||||
{
|
||||
RARCH_WARN("%s\n",
|
||||
msg_hash_to_str(MSG_SEVERAL_PATCHES_ARE_EXPLICITLY_DEFINED));
|
||||
return;
|
||||
return false;
|
||||
}
|
||||
|
||||
if ( !try_ips_patch(allow_ips, name_ips, buf, size)
|
||||
@ -660,5 +660,8 @@ static void patch_content(
|
||||
{
|
||||
RARCH_LOG("%s\n",
|
||||
msg_hash_to_str(MSG_DID_NOT_FIND_A_VALID_CONTENT_PATCH));
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user