From 328c09f016d43eb8508cf9ff83a9da03ed81eb8e Mon Sep 17 00:00:00 2001 From: sonninnos Date: Sat, 1 Jun 2024 19:48:55 +0300 Subject: [PATCH] libretro: Core option reorganizing --- libretro/libretro.cpp | 48 ++++-- libretro/libretro_core_options.h | 258 +++++++++++++++++-------------- 2 files changed, 177 insertions(+), 129 deletions(-) diff --git a/libretro/libretro.cpp b/libretro/libretro.cpp index 1674801b6e..efe09bca49 100644 --- a/libretro/libretro.cpp +++ b/libretro/libretro.cpp @@ -711,15 +711,6 @@ static void check_variables(CoreParameter &coreParam) g_Config.bDisplayCropTo16x9 = true; } - var.key = "ppsspp_skip_gpu_readbacks"; - if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value) - { - if (!strcmp(var.value, "disabled")) - g_Config.iSkipGPUReadbackMode = (int)SkipGPUReadbackMode::NO_SKIP; - else - g_Config.iSkipGPUReadbackMode = (int)SkipGPUReadbackMode::SKIP; - } - var.key = "ppsspp_frameskip"; if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value) g_Config.iFrameSkip = atoi(var.value); @@ -771,22 +762,31 @@ static void check_variables(CoreParameter &coreParam) g_Config.iInflightFrames = 2; } - var.key = "ppsspp_gpu_hardware_transform"; + var.key = "ppsspp_skip_buffer_effects"; if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value) { if (!strcmp(var.value, "disabled")) - g_Config.bHardwareTransform = false; + g_Config.bSkipBufferEffects = false; else - g_Config.bHardwareTransform = true; + g_Config.bSkipBufferEffects = true; } - var.key = "ppsspp_software_skinning"; + var.key = "ppsspp_disable_range_culling"; if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value) { if (!strcmp(var.value, "disabled")) - g_Config.bSoftwareSkinning = false; + g_Config.bDisableRangeCulling = false; else - g_Config.bSoftwareSkinning = true; + g_Config.bDisableRangeCulling = true; + } + + var.key = "ppsspp_skip_gpu_readbacks"; + if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value) + { + if (!strcmp(var.value, "disabled")) + g_Config.iSkipGPUReadbackMode = (int)SkipGPUReadbackMode::NO_SKIP; + else + g_Config.iSkipGPUReadbackMode = (int)SkipGPUReadbackMode::SKIP; } var.key = "ppsspp_lazy_texture_caching"; @@ -809,6 +809,24 @@ static void check_variables(CoreParameter &coreParam) g_Config.iSplineBezierQuality = 2; } + var.key = "ppsspp_gpu_hardware_transform"; + if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value) + { + if (!strcmp(var.value, "disabled")) + g_Config.bHardwareTransform = false; + else + g_Config.bHardwareTransform = true; + } + + var.key = "ppsspp_software_skinning"; + if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value) + { + if (!strcmp(var.value, "disabled")) + g_Config.bSoftwareSkinning = false; + else + g_Config.bSoftwareSkinning = true; + } + var.key = "ppsspp_hardware_tesselation"; if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value) { diff --git a/libretro/libretro_core_options.h b/libretro/libretro_core_options.h index 4581bdcd1e..177382e239 100644 --- a/libretro/libretro_core_options.h +++ b/libretro/libretro_core_options.h @@ -103,6 +103,16 @@ struct retro_core_option_v2_category option_cats_us[] = { "Video", "Configure video options." }, + { + "input", + "Input", + "Configure input options." + }, + { + "hacks", + "Speed Hacks", + "Configure speed hacks. Can cause rendering errors!" + }, { "network", "Network", @@ -112,31 +122,6 @@ struct retro_core_option_v2_category option_cats_us[] = { }; struct retro_core_option_v2_definition option_defs_us[] = { - { - "ppsspp_language", - "Language", - NULL, - "Choose language, 'Automatic' will use the frontend language.", - NULL, - "system", - { - { "Automatic", NULL }, - { "English", NULL }, - { "Japanese", NULL }, - { "French", NULL }, - { "Spanish", NULL }, - { "German", NULL }, - { "Italian", NULL }, - { "Dutch", NULL }, - { "Portuguese", NULL }, - { "Russian", NULL }, - { "Korean", NULL }, - { "Chinese Traditional", NULL }, - { "Chinese Simplified", NULL }, - { NULL, NULL }, - }, - "Automatic" - }, { "ppsspp_cpu_core", "CPU Core", @@ -156,7 +141,7 @@ struct retro_core_option_v2_definition option_defs_us[] = { "ppsspp_fast_memory", "Fast Memory", NULL, - NULL, + "Unstable.", NULL, "system", BOOL_OPTIONS, @@ -189,9 +174,9 @@ struct retro_core_option_v2_definition option_defs_us[] = { }, { "ppsspp_force_lag_sync", - "Force Real Clock Sync (Slower, less lag)", - NULL, + "Force Real Clock Sync", NULL, + "Slower, less lag.", NULL, "system", BOOL_OPTIONS, @@ -219,6 +204,16 @@ struct retro_core_option_v2_definition option_defs_us[] = { }, "disabled" }, + { + "ppsspp_memstick_inserted", + "Memory Stick Inserted", + NULL, + "Some games require ejecting/inserting the Memory Stick.", + NULL, + "system", + BOOL_OPTIONS, + "enabled" + }, { "ppsspp_cache_iso", "Cache Full ISO in RAM", @@ -239,6 +234,31 @@ struct retro_core_option_v2_definition option_defs_us[] = { BOOL_OPTIONS, "disabled" }, + { + "ppsspp_language", + "Language", + NULL, + "Choose language, 'Automatic' will use the frontend language.", + NULL, + "system", + { + { "Automatic", NULL }, + { "English", NULL }, + { "Japanese", NULL }, + { "French", NULL }, + { "Spanish", NULL }, + { "German", NULL }, + { "Italian", NULL }, + { "Dutch", NULL }, + { "Portuguese", NULL }, + { "Russian", NULL }, + { "Korean", NULL }, + { "Chinese Traditional", NULL }, + { "Chinese Simplified", NULL }, + { NULL, NULL }, + }, + "Automatic" + }, { "ppsspp_psp_model", "PSP Model", @@ -253,40 +273,6 @@ struct retro_core_option_v2_definition option_defs_us[] = { }, "psp_2000_3000" }, - { - "ppsspp_button_preference", - "Confirmation Button", - NULL, - NULL, - NULL, - "system", - { - { "Cross", NULL }, - { "Circle", NULL }, - { NULL, NULL }, - }, - "Cross" - }, - { - "ppsspp_analog_is_circular", - "Analog Circle vs Square Gate Compensation", - NULL, - NULL, - NULL, - "system", - BOOL_OPTIONS, - "disabled" - }, - { - "ppsspp_memstick_inserted", - "Memory Stick Inserted", - NULL, - "Some games require ejecting/inserting the Memory Stick.", - NULL, - "system", - BOOL_OPTIONS, - "enabled" - }, { "ppsspp_renderer", "Renderer", @@ -358,16 +344,6 @@ struct retro_core_option_v2_definition option_defs_us[] = { BOOL_OPTIONS, "enabled" }, - { - "ppsspp_skip_gpu_readbacks", - "Skip GPU Readbacks", - NULL, - "Some games require GPU readbacks, so be careful.", - NULL, - "video", - BOOL_OPTIONS, - "disabled" - }, { "ppsspp_frameskip", "Frameskip", @@ -415,7 +391,7 @@ struct retro_core_option_v2_definition option_defs_us[] = { }, { "ppsspp_frame_duplication", - "Duplicate Frames in 30 Hz Games", + "Render Duplicate Frames to 60 Hz", NULL, "Can make framerate smoother in games that run at lower framerates.", NULL, @@ -425,9 +401,9 @@ struct retro_core_option_v2_definition option_defs_us[] = { }, { "ppsspp_detect_vsync_swap_interval", - "Detect Frame Rate Changes (Notify frontend)", - NULL, + "Detect Frame Rate Changes", NULL, + "Notify frontend.", NULL, "video", BOOL_OPTIONS, @@ -435,9 +411,9 @@ struct retro_core_option_v2_definition option_defs_us[] = { }, { "ppsspp_inflight_frames", - "Buffered Frames (GL/Vulkan only, slower, less lag, restart)", - NULL, + "Buffered Frames", NULL, + "GL/Vulkan only, slower, less lag, restart.", NULL, "video", { @@ -448,6 +424,85 @@ struct retro_core_option_v2_definition option_defs_us[] = { }, "Up to 2" }, + { + "ppsspp_button_preference", + "Confirmation Button", + NULL, + NULL, + NULL, + "input", + { + { "Cross", NULL }, + { "Circle", NULL }, + { NULL, NULL }, + }, + "Cross" + }, + { + "ppsspp_analog_is_circular", + "Analog Circle vs Square Gate Compensation", + NULL, + NULL, + NULL, + "input", + BOOL_OPTIONS, + "disabled" + }, + { + "ppsspp_skip_buffer_effects", + "Skip Buffer Effects", + NULL, + "Faster, but nothing may draw in some games.", + NULL, + "hacks", + BOOL_OPTIONS, + "disabled" + }, + { + "ppsspp_disable_range_culling", + "Disable Culling", + NULL, + "", + NULL, + "hacks", + BOOL_OPTIONS, + "disabled" + }, + { + "ppsspp_skip_gpu_readbacks", + "Skip GPU Readbacks", + NULL, + "Some games require GPU readbacks, so be careful.", + NULL, + "hacks", + BOOL_OPTIONS, + "disabled" + }, + { + "ppsspp_lazy_texture_caching", + "Lazy Texture Caching (Speedup)", + NULL, + "Faster, but can cause text problems in a few games.", + NULL, + "hacks", + BOOL_OPTIONS, + "disabled" + }, + { + "ppsspp_spline_quality", + "Spline/Bezier Curves Quality", + NULL, + "Only used by some games, controls smoothness of curves.", + NULL, + "hacks", + { + { "Low", NULL }, + { "Medium", NULL }, + { "High", NULL }, + { NULL, NULL }, + }, + "High" + }, { "ppsspp_gpu_hardware_transform", "Hardware Transform", @@ -468,41 +523,6 @@ struct retro_core_option_v2_definition option_defs_us[] = { BOOL_OPTIONS, "enabled" }, - { - "ppsspp_vertex_cache", - "Vertex Cache", - NULL, - "Faster, but may cause temporary flicker.", - NULL, - "video", - BOOL_OPTIONS, - "disabled" - }, - { - "ppsspp_lazy_texture_caching", - "Lazy Texture Caching (Speedup)", - NULL, - "Faster, but can cause text problems in a few games.", - NULL, - "video", - BOOL_OPTIONS, - "disabled" - }, - { - "ppsspp_spline_quality", - "Spline/Bezier Curves Quality", - NULL, - "Only used by some games, controls smoothness of curves.", - NULL, - "video", - { - { "Low", NULL }, - { "Medium", NULL }, - { "High", NULL }, - { NULL, NULL }, - }, - "High" - }, { "ppsspp_hardware_tesselation", "Hardware Tesselation", @@ -513,6 +533,16 @@ struct retro_core_option_v2_definition option_defs_us[] = { BOOL_OPTIONS, "disabled" }, + { + "ppsspp_vertex_cache", + "Vertex Cache", + NULL, + "Faster, but may cause temporary flicker.", + NULL, + "video", + BOOL_OPTIONS, + "disabled" + }, { "ppsspp_lower_resolution_for_effects", "Lower Resolution for Effects", @@ -574,9 +604,9 @@ struct retro_core_option_v2_definition option_defs_us[] = { }, { "ppsspp_texture_shader", - "Texture Shader (Vulkan only, overrides 'Texture Scaling Type')", - NULL, + "Texture Shader", NULL, + "Vulkan only, overrides 'Texture Scaling Type'.", NULL, "video", {