settings: the console screen filters and gamma are settings

Video gamma, the soft filter and the Xbox flicker filter live in
settings_t, defined once in settings_def_video_console_screen.h, with
their config keys unchanged.  global_t keeps only the console's
resolution and PAL state.
This commit is contained in:
LibretroAdmin authored and libretroadmin committed 2026-10-03 12:09:04 +02:00
1 parent c66a7ce8f4
commit 1d34b301b8
15 files changed
+290 -226

No files matched your search

+7
View File
@@ -247,6 +247,13 @@
#define DEFAULT_GAMMA 0
#endif
/* Wii and Xbox: soften the picture (on the Wii, the composite
* video trap filter). */
#define DEFAULT_SOFT_FILTER false
/* Xbox: flicker filter strength, 0 (off) to 5. */
#define DEFAULT_FLICKER_FILTER 0
/* Windowed
* Real x resolution = aspect * base_size * x scale
* Real y resolution = base_size * y scale
+9 -92
View File
@@ -2827,6 +2827,9 @@ static struct config_bool_setting *populate_settings_bool(
#undef S_UINT_AT_EX_NS_H
SETTING_BOOL("video_scanline_sync", &settings->bools.video_scanline_sync, true, DEFAULT_SCANLINE_SYNC, false);
SETTING_BOOL("video_notch_write_over_enable", &settings->bools.video_notch_write_over_enable, true, DEFAULT_NOTCH_WRITE_OVER_ENABLE, false);
#if defined(_XBOX1) || defined(HW_RVL)
SETTING_BOOL("soft_filter_enable", &settings->bools.video_soft_filter, true, DEFAULT_SOFT_FILTER, false);
#endif
#if defined(__APPLE__) && defined(HAVE_VULKAN)
SETTING_BOOL("video_use_metal_arg_buffers", &settings->bools.video_use_metal_arg_buffers, true, config_metal_arg_buffers_default(), false);
#endif
@@ -3631,6 +3634,12 @@ static struct config_uint_setting *populate_settings_uint(
#endif
#ifdef GEKKO
SETTING_UINT("video_viwidth", &settings->uints.video_viwidth, true, DEFAULT_VIDEO_VI_WIDTH, false);
#endif
#if defined(GEKKO) || defined(_XBOX360)
SETTING_UINT("gamma_correction", &settings->uints.video_gamma, true, DEFAULT_GAMMA, false);
#endif
#ifdef _XBOX1
SETTING_UINT("flicker_filter_index", &settings->uints.video_flicker_filter, true, DEFAULT_FLICKER_FILTER, false);
#endif
/* GENERATED: single-source setting rows (uint kind emits here) */
#define S_BOOL(f, T, n, d, sd, df, c, us, sub)
@@ -5588,10 +5597,6 @@ static void video_driver_default_settings(global_t *global)
if (!global)
return;
global->console.screen.gamma_correction = DEFAULT_GAMMA;
global->console.flickerfilter_enable = false;
global->console.softfilter_enable = false;
global->console.screen.resolutions.current.id = 0;
}
@@ -6576,28 +6581,9 @@ static config_file_t *open_default_config_file(void)
static void video_driver_load_settings(global_t *global,
config_file_t *conf)
{
bool tmp_bool = false;
CONFIG_GET_INT_BASE(conf, global,
console.screen.gamma_correction, "gamma_correction");
if (config_get_bool(conf, "flicker_filter_enable",
&tmp_bool))
global->console.flickerfilter_enable = tmp_bool;
if (config_get_bool(conf, "soft_filter_enable",
&tmp_bool))
global->console.softfilter_enable = tmp_bool;
CONFIG_GET_INT_BASE(conf, global,
console.screen.soft_filter_index,
"soft_filter_index");
CONFIG_GET_INT_BASE(conf, global,
console.screen.resolutions.current.id,
"current_resolution_id");
CONFIG_GET_INT_BASE(conf, global,
console.screen.flicker_filter_index,
"flicker_filter_index");
}
#endif
@@ -8214,62 +8200,6 @@ static void config_parse_file(global_t *global)
static void video_driver_save_settings(global_t *global, config_file_t *conf,
bool minimal, global_t *defaults_global)
{
/* gamma_correction */
if ( !minimal
|| global->console.screen.gamma_correction !=
(defaults_global ? defaults_global->console.screen.gamma_correction : DEFAULT_GAMMA))
{
config_set_int(conf, "gamma_correction",
global->console.screen.gamma_correction);
}
else
{
config_unset(conf, "gamma_correction");
}
/* flicker_filter_enable */
if ( !minimal
|| global->console.flickerfilter_enable !=
(defaults_global ? defaults_global->console.flickerfilter_enable : false))
{
config_set_string(conf, "flicker_filter_enable",
global->console.flickerfilter_enable
? "true"
: "false");
}
else
{
config_unset(conf, "flicker_filter_enable");
}
/* soft_filter_enable */
if ( !minimal
|| global->console.softfilter_enable !=
(defaults_global ? defaults_global->console.softfilter_enable : false))
{
config_set_string(conf, "soft_filter_enable",
global->console.softfilter_enable
? "true"
: "false");
}
else
{
config_unset(conf, "soft_filter_enable");
}
/* soft_filter_index */
if ( !minimal
|| global->console.screen.soft_filter_index !=
(defaults_global ? defaults_global->console.screen.soft_filter_index : 0))
{
config_set_int(conf, "soft_filter_index",
global->console.screen.soft_filter_index);
}
else
{
config_unset(conf, "soft_filter_index");
}
/* current_resolution_id */
if ( !minimal
|| global->console.screen.resolutions.current.id !=
@@ -8282,19 +8212,6 @@ static void video_driver_save_settings(global_t *global, config_file_t *conf,
{
config_unset(conf, "current_resolution_id");
}
/* flicker_filter_index */
if ( !minimal
|| global->console.screen.flicker_filter_index !=
(defaults_global ? defaults_global->console.screen.flicker_filter_index : 0))
{
config_set_int(conf, "flicker_filter_index",
global->console.screen.flicker_filter_index);
}
else
{
config_unset(conf, "flicker_filter_index");
}
}
static void save_keybind_hat(config_file_t *conf, const char *key,
+3
View File
@@ -271,6 +271,8 @@ typedef struct settings
unsigned video_hard_sync_frames;
unsigned video_frame_delay;
unsigned video_viwidth;
unsigned video_gamma;
unsigned video_flicker_filter;
unsigned video_aspect_ratio_idx;
unsigned video_rotation;
unsigned video_fse_negotiation;
@@ -620,6 +622,7 @@ typedef struct settings
bool video_hard_sync;
bool video_waitable_swapchains;
bool video_vfilter;
bool video_soft_filter;
bool video_smooth;
bool video_ctx_scaling;
bool video_force_aspect;
+4 -4
View File
@@ -38,6 +38,8 @@
#ifdef _XBOX
#include <xgraphics.h>
#include "../../configuration.h"
#endif
#include "win32_common.h"
@@ -271,10 +273,8 @@ void d3d9_make_d3dpp(d3d9_video_t *d3d,
{
D3DPRESENT_PARAMETERS *d3dpp = (D3DPRESENT_PARAMETERS*)_d3dpp;
#ifdef _XBOX
/* TODO/FIXME - get rid of global state dependencies. */
global_t *global = global_get_ptr();
int gamma_enable = global ?
global->console.screen.gamma_correction : 0;
settings_t *settings = config_get_ptr();
int gamma_enable = settings->uints.video_gamma;
#endif
bool windowed_enable = d3d9_is_windowed_enable(info->fullscreen);
+3 -3
View File
@@ -470,9 +470,9 @@ static void d3d8_blit_to_texture(
LPDIRECT3DDEVICE8 d3dr = (LPDIRECT3DDEVICE8)chain->dev;
LPDIRECT3DTEXTURE8 tex = (LPDIRECT3DTEXTURE8)chain->tex;
#ifdef _XBOX
global_t *global = global_get_ptr();
D3DDevice_SetFlickerFilter(global->console.screen.flicker_filter_index);
D3DDevice_SetSoftDisplayFilter(global->console.softfilter_enable);
settings_t *settings = config_get_ptr();
D3DDevice_SetFlickerFilter(settings->uints.video_flicker_filter);
D3DDevice_SetSoftDisplayFilter(settings->bools.video_soft_filter);
#endif
if (chain->last_dims != VIDEO_SCALE_PACK(width, height))
+3 -3
View File
@@ -311,13 +311,13 @@ static void setup_gx(gekko_video_t *gx)
static void viewport_resize(gekko_video_t *gx, unsigned overscan_top,
unsigned overscan_bottom)
{
const global_t *global = global_get_ptr();
const settings_t *settings = config_get_ptr();
unsigned width = VIDEO_SCALE_W(gx->vp.full_dims);
unsigned height = VIDEO_SCALE_H(gx->vp.full_dims);
unsigned gamma = settings->uints.video_gamma;
int x = 0, y = 0;
int gamma = global->console.screen.gamma_correction;
gk_gx_copy_gamma((unsigned)MAX(0, MIN(2, gamma)));
gk_gx_copy_gamma(MIN(2, gamma));
/* Below 192 lines is a custom mode: as it is. */
if (gx->efb_lines >= 192)
+4 -4
View File
@@ -810,7 +810,7 @@ static void gx_resize(gx_video_t *gx,
Mtx44 m1, m2;
float top = 1, bottom = -1, left = -1, right = 1;
int x = 0, y = 0;
const global_t *global = global_get_ptr();
const settings_t *settings = config_get_ptr();
unsigned width = VIDEO_SCALE_W(gx->vp.full_dims);
unsigned height = VIDEO_SCALE_H(gx->vp.full_dims);
@@ -818,13 +818,13 @@ static void gx_resize(gx_video_t *gx,
return;
#ifdef HW_RVL
VIDEO_SetTrapFilter(global->console.softfilter_enable);
gamma = global->console.screen.gamma_correction;
VIDEO_SetTrapFilter(settings->bools.video_soft_filter);
gamma = settings->uints.video_gamma;
if (gamma == 0)
gamma = 10; /* default 1.0 gamma value */
VIDEO_SetGamma(gamma);
#else
gamma = global->console.screen.gamma_correction;
gamma = settings->uints.video_gamma;
GX_SetDispCopyGamma(MAX(0,MIN(2,gamma)));
#endif
-3
View File
@@ -1778,9 +1778,6 @@ static INLINE void video_driver_aspect_ratio_put(
#define VIDEO_DRIVER_ASPECT_RATIO(video_st) \
video_driver_aspect_ratio_of(&(video_st)->aspect_ratio_bits)
void video_driver_menu_settings(void **list_data, void *list_info_data,
void *group_data, void *subgroup_data, const char *parent_group);
/**
* video_viewport_get_scaled_aspect2:
* @vp : Viewport handle. Fields x, y, width, height will be written, and full_width or full_height might be read.
-12
View File
@@ -2731,14 +2731,6 @@ MSG_HASH(
MENU_ENUM_LABEL_VIDEO_FILTER_REMOVE,
MENU_ENUM_LABEL_VIDEO_FILTER_REMOVE_STR
)
MSG_HASH(
MENU_ENUM_LABEL_VIDEO_FILTER_FLICKER,
MENU_ENUM_LABEL_VIDEO_FILTER_FLICKER_STR
)
MSG_HASH(
MENU_ENUM_LABEL_VIDEO_GAMMA,
MENU_ENUM_LABEL_VIDEO_GAMMA_STR
)
MSG_HASH(
MENU_ENUM_LABEL_VIDEO_REFRESH_RATE_POLLED,
MENU_ENUM_LABEL_VIDEO_REFRESH_RATE_POLLED_STR
@@ -2843,10 +2835,6 @@ MSG_HASH(
MENU_ENUM_LABEL_VIDEO_SHARED_CONTEXT,
MENU_ENUM_LABEL_VIDEO_SHARED_CONTEXT_STR
)
MSG_HASH(
MENU_ENUM_LABEL_VIDEO_SOFT_FILTER,
MENU_ENUM_LABEL_VIDEO_SOFT_FILTER_STR
)
MSG_HASH(
MENU_ENUM_LABEL_VIDEO_TAB,
MENU_ENUM_LABEL_VIDEO_TAB_STR
+2
View File
@@ -784,6 +784,7 @@ static const char *const msg_hash_us_lbl_strs[] = {
#include "../settings/settings_def_shader_watch.h"
#include "../settings/settings_def_video_dingux_ipu.h"
#include "../settings/settings_def_video_notch.h"
#include "../settings/settings_def_video_console_screen.h"
#include "../settings/settings_def_menu_steam.h"
#include "../settings/settings_def_input_android_workaround.h"
#include "../settings/settings_def_video_frame_time_sample.h"
@@ -1162,6 +1163,7 @@ static const uint32_t msg_hash_us_lbl_ids[] = {
#include "../settings/settings_def_shader_watch.h"
#include "../settings/settings_def_video_dingux_ipu.h"
#include "../settings/settings_def_video_notch.h"
#include "../settings/settings_def_video_console_screen.h"
#include "../settings/settings_def_menu_steam.h"
#include "../settings/settings_def_input_android_workaround.h"
#include "../settings/settings_def_video_frame_time_sample.h"
+32 -12
View File
@@ -4700,6 +4700,38 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us)
#undef S_FLOAT
#undef S_FLOAT_NS
#undef SETTINGS_DEF_STRINGS_PASS
/* GENERATED REGION: console screen filters and gamma (see settings_def_video_console_screen.h). */
#define SETTINGS_DEF_STRINGS_PASS
#define S_BOOL(f, T, n, d, sd, df, c, us, sub) \
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us) \
MSG_HASH(MENU_ENUM_SUBLABEL_##T, sub)
#define S_BOOL_NS(f, T, n, d, sd, df, c, us) \
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us)
#define S_UINT(f, T, n, d, sd, df, c, mn, mx, st, ob, ok, rp, us, sub) \
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us) \
MSG_HASH(MENU_ENUM_SUBLABEL_##T, sub)
#define S_UINT_NS(f, T, n, d, sd, df, c, mn, mx, st, ob, ok, rp, us) \
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us)
#define S_INT(f, T, n, d, sd, df, c, mn, mx, st, ob, ok, rp, us, sub) \
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us) \
MSG_HASH(MENU_ENUM_SUBLABEL_##T, sub)
#define S_INT_NS(f, T, n, d, sd, df, c, mn, mx, st, ob, ok, rp, us) \
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us)
#define S_FLOAT(f, T, n, d, rnd, sd, df, c, mn, mx, st, ok, rp, us, sub) \
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us) \
MSG_HASH(MENU_ENUM_SUBLABEL_##T, sub)
#define S_FLOAT_NS(f, T, n, d, rnd, sd, df, c, mn, mx, st, ok, rp, us) \
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us)
#include "../settings/settings_def_video_console_screen.h"
#undef S_BOOL
#undef S_BOOL_NS
#undef S_UINT
#undef S_UINT_NS
#undef S_INT
#undef S_INT_NS
#undef S_FLOAT
#undef S_FLOAT_NS
#undef SETTINGS_DEF_STRINGS_PASS
MSG_HASH(
MENU_ENUM_LABEL_VALUE_VIDEO_USE_METAL_ARG_BUFFERS,
"Use Metal Argument Buffers (Restart required)"
@@ -33966,18 +33998,6 @@ MSG_HASH(
MENU_ENUM_SUBLABEL_FILE_BROWSER_OPEN_PICKER,
"Open another directory using the system file picker"
)
MSG_HASH(
MENU_ENUM_LABEL_VALUE_VIDEO_FILTER_FLICKER,
"Flicker filter"
)
MSG_HASH(
MENU_ENUM_LABEL_VALUE_VIDEO_GAMMA,
"Video Gamma"
)
MSG_HASH(
MENU_ENUM_LABEL_VALUE_VIDEO_SOFT_FILTER,
"Soft Filter"
)
/* GENERATED REGION: eighth main menu action (see settings_def_menu_main_actions_8.h). */
#define SETTINGS_DEF_STRINGS_PASS
#define S_BOOL(f, T, n, d, sd, df, c, us, sub) \
+13 -83
View File
@@ -11921,6 +11921,13 @@ static const setting_desc_t vid_desc_1[] = {
#include "../settings/settings_def_video_monitor_index.h"
};
#if defined(GEKKO) || defined(_XBOX1) || defined(_XBOX360)
static const setting_desc_t vid_console_desc[] = {
/* GENERATED: rows come from settings_def_video_console_screen.h in order. */
#include "../settings/settings_def_video_console_screen.h"
};
#endif
#if defined(ANDROID) || TARGET_OS_IOS
static const setting_desc_t vid_desc_2[] = {
/* GENERATED: rows come from settings_def_video_notch.h in order. */
@@ -14787,8 +14794,9 @@ static void settings_build_video(
START_SUB_GROUP(list, list_info, "Platform-specific", &group_info,
&subgroup_info, parent_group);
video_driver_menu_settings((void**)list, (void*)list_info,
(void*)&group_info, (void*)&subgroup_info, parent_group);
#if defined(GEKKO) || defined(_XBOX1) || defined(_XBOX360)
ADD_DESC(vid_console_desc);
#endif
END_SUB_GROUP(list, list_info, parent_group);
START_SUB_GROUP(list, list_info, "Monitor", &group_info, &subgroup_info, parent_group);
@@ -18388,6 +18396,9 @@ static const settings_desc_table_t settings_desc_registry[] = {
{ vid_desc_0, (uint16_t)ARRAY_SIZE(vid_desc_0) },
#endif
{ vid_desc_1, (uint16_t)ARRAY_SIZE(vid_desc_1) },
#if defined(GEKKO) || defined(_XBOX1) || defined(_XBOX360)
{ vid_console_desc, (uint16_t)ARRAY_SIZE(vid_console_desc) },
#endif
#if defined(ANDROID) || TARGET_OS_IOS
{ vid_desc_2, (uint16_t)ARRAY_SIZE(vid_desc_2) },
#endif
@@ -19297,84 +19308,3 @@ rarch_setting_t *menu_setting_new(void)
return token;
}
void video_driver_menu_settings(void **list_data, void *list_info_data,
void *group_data, void *subgroup_data, const char *parent_group)
{
#ifdef HAVE_MENU
rarch_setting_t **list = (rarch_setting_t**)list_data;
rarch_setting_info_t *list_info = (rarch_setting_info_t*)list_info_data;
rarch_setting_group_info_t *group_info = (rarch_setting_group_info_t*)group_data;
rarch_setting_group_info_t *subgroup_info = (rarch_setting_group_info_t*)subgroup_data;
global_t *global = global_get_ptr();
(void)list;
(void)list_info;
(void)group_info;
(void)subgroup_info;
(void)global;
#if defined(GEKKO) || defined(_XBOX360)
/* Descriptor holdout: value target outside settings_t. */
CONFIG_UINT(
list, list_info,
&global->console.screen.gamma_correction,
MENU_ENUM_LABEL_VIDEO_GAMMA,
MENU_ENUM_LABEL_VALUE_VIDEO_GAMMA,
0,
group_info,
subgroup_info,
parent_group,
general_write_handler,
general_read_handler);
MENU_SETTINGS_LIST_CURRENT_ADD_CMD(
list,
list_info,
CMD_EVENT_VIDEO_APPLY_STATE_CHANGES);
menu_settings_list_current_add_range(
list,
list_info,
0,
MAX_GAMMA_SETTING,
1,
true,
true);
SETTINGS_DATA_LIST_CURRENT_ADD_FLAGS(list, list_info,
SD_FLAG_CMD_APPLY_AUTO|SD_FLAG_ADVANCED);
#endif
#if defined(_XBOX1) || defined(HW_RVL)
CONFIG_BOOL(
list, list_info,
&global->console.softfilter_enable,
MENU_ENUM_LABEL_VIDEO_SOFT_FILTER,
MENU_ENUM_LABEL_VALUE_VIDEO_SOFT_FILTER,
false,
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);
MENU_SETTINGS_LIST_CURRENT_ADD_CMD(
list,
list_info,
CMD_EVENT_VIDEO_APPLY_STATE_CHANGES);
#endif
#ifdef _XBOX1
CONFIG_UINT(
list, list_info,
&global->console.screen.flicker_filter_index,
MENU_ENUM_LABEL_VIDEO_FILTER_FLICKER,
MENU_ENUM_LABEL_VALUE_VIDEO_FILTER_FLICKER,
0,
group_info,
subgroup_info,
parent_group,
general_write_handler,
general_read_handler);
menu_settings_list_current_add_range(list, list_info,
0, 5, 1, true, true);
#endif
#endif
}
+180 -3
View File
@@ -5825,8 +5825,6 @@ enum msg_hash_enums
#undef S_FLOAT_NS_H
#undef SETTINGS_DEF_STRINGS_PASS
#undef SETTINGS_DEF_ENUM_PASS
MENU_LABEL(VIDEO_FILTER_FLICKER),
MENU_LABEL(VIDEO_SOFT_FILTER),
/* GENERATED REGION: video synchronization group enum rows
* (see settings/settings_def_video_sync.h). */
#define SETTINGS_DEF_ENUM_PASS
@@ -8189,6 +8187,186 @@ enum msg_hash_enums
#undef S_ACTION_EX_H
#undef S_ACTION_EX_NS_H
#undef SETTINGS_DEF_STRINGS_PASS
#undef SETTINGS_DEF_ENUM_PASS
/* GENERATED REGION: console screen filters and gamma enum rows (see settings/settings_def_video_console_screen.h). */
#define SETTINGS_DEF_ENUM_PASS
#define SETTINGS_DEF_STRINGS_PASS
#define S_BOOL(f, T, n, d, sd, df, c, us, sub) MENU_LABEL(T),
#define S_BOOL_NS(f, T, n, d, sd, df, c, us) MENU_LABEL(T),
#define S_UINT(f, T, n, d, sd, df, c, mn, mx, st, ob, ok, rp, us, sub) MENU_LABEL(T),
#define S_UINT_NS(f, T, n, d, sd, df, c, mn, mx, st, ob, ok, rp, us) MENU_LABEL(T),
#define S_INT(f, T, n, d, sd, df, c, mn, mx, st, ob, ok, rp, us, sub) MENU_LABEL(T),
#define S_INT_NS(f, T, n, d, sd, df, c, mn, mx, st, ob, ok, rp, us) MENU_LABEL(T),
#define S_FLOAT(f, T, n, d, rnd, sd, df, c, mn, mx, st, ok, rp, us, sub) MENU_LABEL(T),
#define S_FLOAT_NS(f, T, n, d, rnd, sd, df, c, mn, mx, st, ok, rp, us) MENU_LABEL(T),
#define S_STRING(f, T, n, d, sd, c, ok, rp, sta, sel, lf, rt, ui, us, sub) MENU_LABEL(T),
#define S_STRING_NS(f, T, n, d, sd, c, ok, rp, sta, sel, lf, rt, ui, us) MENU_LABEL(T),
#define S_DIR(f, T, n, d, el, sd, c, sta, us, sub) MENU_LABEL(T),
#define S_DIR_NS(f, T, n, d, el, sd, c, sta, us) MENU_LABEL(T),
#define S_STRING_P(f, T, n, d, sd, c, ok, rp, sta, sel, lf, rt, ui, us, sub) MENU_LABEL(T),
#define S_STRING_P_NS(f, T, n, d, sd, c, ok, rp, sta, sel, lf, rt, ui, us) MENU_LABEL(T),
#define S_PATH(f, T, n, d, sd, c, vals, rp, ui, us, sub) MENU_LABEL(T),
#define S_PATH_NS(f, T, n, d, sd, c, vals, rp, ui, us) MENU_LABEL(T),
#define S_PATH_DS(f, T, n, df2, sd, c, vals, rp, ui, us, sub) MENU_LABEL(T),
#define S_PATH_DS_NS(f, T, n, df2, sd, c, vals, rp, ui, us) MENU_LABEL(T),
#define S_ACTION(T, n, us, sub) MENU_LABEL(T),
#define S_ACTION_NS(T, n, us) MENU_LABEL(T),
#define S_BOOL_EX(f, T, n, d, sd, df, c, ok, rp, sta, sel, lf, rt, ui, us, sub) MENU_LABEL(T),
#define S_BOOL_EX_NS(f, T, n, d, sd, df, c, ok, rp, sta, sel, lf, rt, ui, us) MENU_LABEL(T),
#define S_UINT_EX(f, T, n, d, sd, df, c, mn, mx, st, ob, ok, rp, sta, sel, lf, rt, ui, us, sub) MENU_LABEL(T),
#define S_UINT_EX_NS(f, T, n, d, sd, df, c, mn, mx, st, ob, ok, rp, sta, sel, lf, rt, ui, us) MENU_LABEL(T),
#define S_INT_EX(f, T, n, d, sd, df, c, mn, mx, st, ob, ok, rp, sta, sel, lf, rt, ui, us, sub) MENU_LABEL(T),
#define S_INT_EX_NS(f, T, n, d, sd, df, c, mn, mx, st, ob, ok, rp, sta, sel, lf, rt, ui, us) MENU_LABEL(T),
#define S_FLOAT_EX(f, T, n, d, rnd, sd, df, c, mn, mx, st, ok, rp, sta, sel, lf, rt, ui, us, sub) MENU_LABEL(T),
#define S_FLOAT_EX_NS(f, T, n, d, rnd, sd, df, c, mn, mx, st, ok, rp, sta, sel, lf, rt, ui, us) MENU_LABEL(T),
#define S_ACTION_EX(T, n, sd, ok, rp, c, us, sub) MENU_LABEL(T),
#define S_ACTION_EX_NS(T, n, sd, ok, rp, c, us) MENU_LABEL(T),
#define S_BOOL_H(f, T, n, d, sd, df, c, us, sub) MENU_LBL_H(T),
#define S_UINT_H(f, T, n, d, sd, df, c, mn, mx, st, ob, ok, rp, us, sub) MENU_LBL_H(T),
#define S_BOOL_NS_H(f, T, n, d, sd, df, c, us) MENU_LBL_H(T),
#define S_INT_H(f, T, n, d, sd, df, c, mn, mx, st, ob, ok, rp, us, sub) MENU_LBL_H(T),
#define S_FLOAT_H(f, T, n, d, rnd, sd, df, c, mn, mx, st, ok, rp, us, sub) MENU_LBL_H(T),
#define S_UINT_NS_H(f, T, n, d, sd, df, c, mn, mx, st, ob, ok, rp, us) MENU_LBL_H(T),
#define S_INT_NS_H(f, T, n, d, sd, df, c, mn, mx, st, ob, ok, rp, us) MENU_LBL_H(T),
#define S_FLOAT_NS_H(f, T, n, d, rnd, sd, df, c, mn, mx, st, ok, rp, us) MENU_LBL_H(T),
#define S_STRING_H(f, T, n, d, sd, c, ok, rp, sta, sel, lf, rt, ui, us, sub) MENU_LBL_H(T),
#define S_STRING_NS_H(f, T, n, d, sd, c, ok, rp, sta, sel, lf, rt, ui, us) MENU_LBL_H(T),
#define S_DIR_H(f, T, n, d, el, sd, c, sta, us, sub) MENU_LBL_H(T),
#define S_DIR_NS_H(f, T, n, d, el, sd, c, sta, us) MENU_LBL_H(T),
#define S_STRING_P_H(f, T, n, d, sd, c, ok, rp, sta, sel, lf, rt, ui, us, sub) MENU_LBL_H(T),
#define S_STRING_P_NS_H(f, T, n, d, sd, c, ok, rp, sta, sel, lf, rt, ui, us) MENU_LBL_H(T),
#define S_PATH_H(f, T, n, d, sd, c, vals, rp, ui, us, sub) MENU_LBL_H(T),
#define S_PATH_NS_H(f, T, n, d, sd, c, vals, rp, ui, us) MENU_LBL_H(T),
#define S_PATH_DS_H(f, T, n, df2, sd, c, vals, rp, ui, us, sub) MENU_LBL_H(T),
#define S_PATH_DS_NS_H(f, T, n, df2, sd, c, vals, rp, ui, us) MENU_LBL_H(T),
#define S_ACTION_H(T, n, us, sub) MENU_LBL_H(T),
#define S_ACTION_NS_H(T, n, us) MENU_LBL_H(T),
#define S_BOOL_EX_H(f, T, n, d, sd, df, c, ok, rp, sta, sel, lf, rt, ui, us, sub) MENU_LBL_H(T),
#define S_BOOL_EX_NS_H(f, T, n, d, sd, df, c, ok, rp, sta, sel, lf, rt, ui, us) MENU_LBL_H(T),
#define S_UINT_EX_H(f, T, n, d, sd, df, c, mn, mx, st, ob, ok, rp, sta, sel, lf, rt, ui, us, sub) MENU_LBL_H(T),
#define S_UINT_EX_NS_H(f, T, n, d, sd, df, c, mn, mx, st, ob, ok, rp, sta, sel, lf, rt, ui, us) MENU_LBL_H(T),
#define S_INT_EX_H(f, T, n, d, sd, df, c, mn, mx, st, ob, ok, rp, sta, sel, lf, rt, ui, us, sub) MENU_LBL_H(T),
#define S_INT_EX_NS_H(f, T, n, d, sd, df, c, mn, mx, st, ob, ok, rp, sta, sel, lf, rt, ui, us) MENU_LBL_H(T),
#define S_FLOAT_EX_H(f, T, n, d, rnd, sd, df, c, mn, mx, st, ok, rp, sta, sel, lf, rt, ui, us, sub) MENU_LBL_H(T),
#define S_FLOAT_EX_NS_H(f, T, n, d, rnd, sd, df, c, mn, mx, st, ok, rp, sta, sel, lf, rt, ui, us) MENU_LBL_H(T),
#define S_ACTION_EX_H(T, n, sd, ok, rp, c, us, sub) MENU_LBL_H(T),
#define S_ACTION_EX_NS_H(T, n, sd, ok, rp, c, us) MENU_LBL_H(T),
#include "settings/settings_def_video_console_screen.h"
#undef S_BOOL
#undef S_BOOL_NS
#undef S_BOOL_H
#undef S_BOOL_NS_H
#undef S_UINT
#undef S_UINT_NS
#undef S_UINT_H
#undef S_UINT_NS_H
#undef S_INT
#undef S_INT_NS
#undef S_INT_H
#undef S_INT_NS_H
#undef S_FLOAT
#undef S_FLOAT_NS
#undef S_FLOAT_H
#undef S_FLOAT_NS_H
#undef S_STRING
#undef S_STRING_NS
#undef S_STRING_H
#undef S_STRING_NS_H
#undef S_DIR
#undef S_DIR_NS
#undef S_DIR_H
#undef S_DIR_NS_H
#undef S_STRING_P
#undef S_STRING_P_NS
#undef S_STRING_P_H
#undef S_STRING_P_NS_H
#undef S_PATH
#undef S_PATH_NS
#undef S_PATH_H
#undef S_PATH_NS_H
#undef S_PATH_DS
#undef S_PATH_DS_NS
#undef S_PATH_DS_H
#undef S_PATH_DS_NS_H
#undef S_ACTION
#undef S_ACTION_NS
#undef S_ACTION_H
#undef S_ACTION_NS_H
#undef S_BOOL_EX
#undef S_BOOL_EX_NS
#undef S_BOOL_EX_H
#undef S_BOOL_EX_NS_H
#undef S_UINT_EX
#undef S_UINT_EX_NS
#undef S_UINT_EX_H
#undef S_UINT_EX_NS_H
#undef S_INT_EX
#undef S_INT_EX_NS
#undef S_INT_EX_H
#undef S_INT_EX_NS_H
#undef S_FLOAT_EX
#undef S_FLOAT_EX_NS
#undef S_FLOAT_EX_H
#undef S_FLOAT_EX_NS_H
#undef S_ACTION_EX
#undef S_ACTION_EX_NS
#undef S_ACTION_EX_H
#undef S_ACTION_EX_NS_H
#undef S_BOOL_LV
#undef S_BOOL_LV_NS
#undef S_BOOL_LV_H
#undef S_BOOL_LV_NS_H
#undef S_FLOAT_LV
#undef S_FLOAT_LV_NS
#undef S_FLOAT_LV_H
#undef S_FLOAT_LV_NS_H
#undef S_STRING_LV
#undef S_STRING_LV_NS
#undef S_STRING_LV_H
#undef S_STRING_LV_NS_H
#undef S_ACTION_LV
#undef S_ACTION_LV_NS
#undef S_ACTION_LV_H
#undef S_ACTION_LV_NS_H
#undef S_INT_AT
#undef S_INT_AT_NS
#undef S_INT_AT_H
#undef S_INT_AT_NS_H
#undef S_UINT_AT_EX
#undef S_UINT_AT_EX_NS
#undef S_UINT_AT_EX_H
#undef S_UINT_AT_EX_NS_H
#undef S_BOOL_H
#undef S_UINT_H
#undef S_BOOL_NS_H
#undef S_INT_H
#undef S_FLOAT_H
#undef S_UINT_NS_H
#undef S_INT_NS_H
#undef S_FLOAT_NS_H
#undef S_STRING_H
#undef S_STRING_NS_H
#undef S_DIR_H
#undef S_DIR_NS_H
#undef S_STRING_P_H
#undef S_STRING_P_NS_H
#undef S_PATH_H
#undef S_PATH_NS_H
#undef S_PATH_DS_H
#undef S_PATH_DS_NS_H
#undef S_ACTION_H
#undef S_ACTION_NS_H
#undef S_BOOL_EX_H
#undef S_BOOL_EX_NS_H
#undef S_UINT_EX_H
#undef S_UINT_EX_NS_H
#undef S_INT_EX_H
#undef S_INT_EX_NS_H
#undef S_FLOAT_EX_H
#undef S_FLOAT_EX_NS_H
#undef S_ACTION_EX_H
#undef S_ACTION_EX_NS_H
#undef SETTINGS_DEF_STRINGS_PASS
#undef SETTINGS_DEF_ENUM_PASS
MENU_LABEL(VIDEO_USE_METAL_ARG_BUFFERS),
@@ -8459,7 +8637,6 @@ enum msg_hash_enums
#undef S_FLOAT_NS_H
#undef SETTINGS_DEF_STRINGS_PASS
#undef SETTINGS_DEF_ENUM_PASS
MENU_LABEL(VIDEO_GAMMA),
MENU_LABEL(VIDEO_ALLOW_ROTATE),
MENU_ENUM_LABEL_VALUE_VIDEO_FSE_RELAXED,
-7
View File
@@ -284,16 +284,9 @@ typedef struct global
unsigned id; /* current_resolution_id */
} current;
} resolutions;
unsigned gamma_correction;
unsigned int flicker_filter_index;
unsigned char soft_filter_index;
bool pal_enable;
bool pal60_enable;
} screen;
bool flickerfilter_enable;
bool softfilter_enable;
} console;
char error_string[NAME_MAX_LENGTH];
@@ -0,0 +1,30 @@
/* Single-source definitions: console screen filters and gamma.
* Grammar identical to settings_def_video_sync.h plus S_FLOAT and
* the _NS no-sublabel variants; the descriptor argument span
* matches SDESC_<kind>_ROW; row order is menu display order;
* h2json.py parses these rows for the Crowdin source upload. */
/* Descriptor rows follow the consoles that have each setting; the
* string tables always carry them via the strings pass. The config
* keys differ from the label strings, so the configuration.c rows
* stay literal. */
#ifndef SETTINGS_DEF_CONFIG_PASS
#if defined(GEKKO) || defined(_XBOX360) || defined(SETTINGS_DEF_STRINGS_PASS)
S_UINT_NS(video_gamma, VIDEO_GAMMA,
"video_gamma",
DEFAULT_GAMMA, SD_FLAG_CMD_APPLY_AUTO | SD_FLAG_ADVANCED, SDESC_RANGE_MINMAX, CMD_EVENT_VIDEO_APPLY_STATE_CHANGES, 0, MAX_GAMMA_SETTING, 1, 0, setting_action_ok_uint, NULL,
"Video Gamma")
#endif
#if defined(_XBOX1) || defined(HW_RVL) || defined(SETTINGS_DEF_STRINGS_PASS)
S_BOOL_NS(video_soft_filter, VIDEO_SOFT_FILTER,
"soft_filter",
DEFAULT_SOFT_FILTER, SD_FLAG_NONE, 0, CMD_EVENT_VIDEO_APPLY_STATE_CHANGES,
"Soft Filter")
#endif
#if defined(_XBOX1) || defined(SETTINGS_DEF_STRINGS_PASS)
S_UINT_NS(video_flicker_filter, VIDEO_FILTER_FLICKER,
"video_filter_flicker",
DEFAULT_FLICKER_FILTER, SD_FLAG_NONE, SDESC_RANGE_MINMAX, CMD_EVENT_NONE, 0, 5, 1, 0, setting_action_ok_uint, NULL,
"Flicker filter")
#endif
#endif