mirror of
https://github.com/RetroDECK/Duckstation.git
synced 2024-11-22 13:55:38 +00:00
Settings: Make Disable Interlacing a Deinterlacing mode
Saving that precious vertical space.
This commit is contained in:
parent
08edd9894b
commit
cf9ef3d2ac
|
@ -94207,7 +94207,7 @@ SLES-00211:
|
||||||
controllers:
|
controllers:
|
||||||
- DigitalController
|
- DigitalController
|
||||||
settings:
|
settings:
|
||||||
displayDeinterlacingMode: Disabled # Isn't actually interlaced, uses 240p buffers, they just left 480i enabled...
|
displayDeinterlacingMode: Progressive # Isn't actually interlaced, uses 240p buffers, they just left 480i enabled...
|
||||||
metadata:
|
metadata:
|
||||||
publisher: "Electronic Arts"
|
publisher: "Electronic Arts"
|
||||||
developer: "Bullfrog Productions / Krisalis"
|
developer: "Bullfrog Productions / Krisalis"
|
||||||
|
@ -94231,7 +94231,7 @@ SLPS-00587:
|
||||||
controllers:
|
controllers:
|
||||||
- DigitalController
|
- DigitalController
|
||||||
settings:
|
settings:
|
||||||
displayDeinterlacingMode: Disabled # Isn't actually interlaced, uses 240p buffers, they just left 480i enabled...
|
displayDeinterlacingMode: Progressive # Isn't actually interlaced, uses 240p buffers, they just left 480i enabled...
|
||||||
metadata:
|
metadata:
|
||||||
publisher: "Electronic Arts"
|
publisher: "Electronic Arts"
|
||||||
developer: "Bullfrog Productions / Krisalis"
|
developer: "Bullfrog Productions / Krisalis"
|
||||||
|
@ -94251,7 +94251,7 @@ SLUS-00029:
|
||||||
controllers:
|
controllers:
|
||||||
- DigitalController
|
- DigitalController
|
||||||
settings:
|
settings:
|
||||||
displayDeinterlacingMode: Disabled # Isn't actually interlaced, uses 240p buffers, they just left 480i enabled...
|
displayDeinterlacingMode: Progressive # Isn't actually interlaced, uses 240p buffers, they just left 480i enabled...
|
||||||
metadata:
|
metadata:
|
||||||
publisher: "Electronic Arts"
|
publisher: "Electronic Arts"
|
||||||
developer: "Bullfrog Productions / Krisalis"
|
developer: "Bullfrog Productions / Krisalis"
|
||||||
|
@ -116452,6 +116452,8 @@ SLPS-02587:
|
||||||
- AnalogController
|
- AnalogController
|
||||||
- DigitalController
|
- DigitalController
|
||||||
- NeGcon
|
- NeGcon
|
||||||
|
settings:
|
||||||
|
displayDeinterlacingMode: Progressive # Only used in menus, MAD flickers with fading.
|
||||||
metadata:
|
metadata:
|
||||||
publisher: "MTO"
|
publisher: "MTO"
|
||||||
developer: "MTO"
|
developer: "MTO"
|
||||||
|
@ -116493,7 +116495,7 @@ SLPS-02951:
|
||||||
- DigitalController
|
- DigitalController
|
||||||
- NeGcon
|
- NeGcon
|
||||||
settings:
|
settings:
|
||||||
displayDeinterlacingMode: Blend # Only used in menus, MAD flickers with fading.
|
displayDeinterlacingMode: Progressive # Only used in menus, MAD flickers with fading.
|
||||||
metadata:
|
metadata:
|
||||||
publisher: "MTO"
|
publisher: "MTO"
|
||||||
developer: "MTO"
|
developer: "MTO"
|
||||||
|
|
|
@ -4309,12 +4309,6 @@ void FullscreenUI::DrawDisplaySettingsPage()
|
||||||
FSUI_CSTR("Smooths out blockyness between colour transitions in 24-bit content, usually FMVs."),
|
FSUI_CSTR("Smooths out blockyness between colour transitions in 24-bit content, usually FMVs."),
|
||||||
"GPU", "ChromaSmoothing24Bit", false);
|
"GPU", "ChromaSmoothing24Bit", false);
|
||||||
|
|
||||||
DrawToggleSetting(
|
|
||||||
bsi, FSUI_CSTR("Disable Interlacing"),
|
|
||||||
FSUI_CSTR("Disables interlaced rendering and display in the GPU. Some games can render in 480p this way, "
|
|
||||||
"but others will break."),
|
|
||||||
"GPU", "DisableInterlacing", true);
|
|
||||||
|
|
||||||
MenuHeading(FSUI_CSTR("Advanced"));
|
MenuHeading(FSUI_CSTR("Advanced"));
|
||||||
|
|
||||||
std::optional<SmallString> strvalue = bsi->GetOptionalSmallStringValue(
|
std::optional<SmallString> strvalue = bsi->GetOptionalSmallStringValue(
|
||||||
|
@ -7358,13 +7352,11 @@ TRANSLATE_NOOP("FullscreenUI", "Determines whether a prompt will be displayed to
|
||||||
TRANSLATE_NOOP("FullscreenUI", "Determines which algorithm is used to convert interlaced frames to progressive for display on your system.");
|
TRANSLATE_NOOP("FullscreenUI", "Determines which algorithm is used to convert interlaced frames to progressive for display on your system.");
|
||||||
TRANSLATE_NOOP("FullscreenUI", "Device Settings");
|
TRANSLATE_NOOP("FullscreenUI", "Device Settings");
|
||||||
TRANSLATE_NOOP("FullscreenUI", "Disable All Enhancements");
|
TRANSLATE_NOOP("FullscreenUI", "Disable All Enhancements");
|
||||||
TRANSLATE_NOOP("FullscreenUI", "Disable Interlacing");
|
|
||||||
TRANSLATE_NOOP("FullscreenUI", "Disable Mailbox Presentation");
|
TRANSLATE_NOOP("FullscreenUI", "Disable Mailbox Presentation");
|
||||||
TRANSLATE_NOOP("FullscreenUI", "Disable Subdirectory Scanning");
|
TRANSLATE_NOOP("FullscreenUI", "Disable Subdirectory Scanning");
|
||||||
TRANSLATE_NOOP("FullscreenUI", "Disable on 2D Polygons");
|
TRANSLATE_NOOP("FullscreenUI", "Disable on 2D Polygons");
|
||||||
TRANSLATE_NOOP("FullscreenUI", "Disabled");
|
TRANSLATE_NOOP("FullscreenUI", "Disabled");
|
||||||
TRANSLATE_NOOP("FullscreenUI", "Disables dithering and uses the full 8 bits per channel of color information.");
|
TRANSLATE_NOOP("FullscreenUI", "Disables dithering and uses the full 8 bits per channel of color information.");
|
||||||
TRANSLATE_NOOP("FullscreenUI", "Disables interlaced rendering and display in the GPU. Some games can render in 480p this way, but others will break.");
|
|
||||||
TRANSLATE_NOOP("FullscreenUI", "Disc {} | {}");
|
TRANSLATE_NOOP("FullscreenUI", "Disc {} | {}");
|
||||||
TRANSLATE_NOOP("FullscreenUI", "Discord Server");
|
TRANSLATE_NOOP("FullscreenUI", "Discord Server");
|
||||||
TRANSLATE_NOOP("FullscreenUI", "Display Settings");
|
TRANSLATE_NOOP("FullscreenUI", "Display Settings");
|
||||||
|
|
|
@ -479,7 +479,10 @@ void GameDatabase::Entry::ApplySettings(Settings& settings, bool display_osd_mes
|
||||||
settings.display_crop_mode = display_crop_mode.value();
|
settings.display_crop_mode = display_crop_mode.value();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (display_deinterlacing_mode.has_value())
|
// Don't set to optimal if disable-all-enhancements is enabled.
|
||||||
|
if (display_deinterlacing_mode.has_value() &&
|
||||||
|
(display_deinterlacing_mode.value() != DisplayDeinterlacingMode::Progressive ||
|
||||||
|
!g_settings.disable_all_enhancements))
|
||||||
{
|
{
|
||||||
if (display_osd_messages && settings.display_deinterlacing_mode != display_deinterlacing_mode.value())
|
if (display_osd_messages && settings.display_deinterlacing_mode != display_deinterlacing_mode.value())
|
||||||
{
|
{
|
||||||
|
@ -527,12 +530,12 @@ void GameDatabase::Entry::ApplySettings(Settings& settings, bool display_osd_mes
|
||||||
settings.gpu_accurate_blending = true;
|
settings.gpu_accurate_blending = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (HasTrait(Trait::ForceInterlacing))
|
if (HasTrait(Trait::ForceInterlacing) && settings.display_deinterlacing_mode == DisplayDeinterlacingMode::Progressive)
|
||||||
{
|
{
|
||||||
if (display_osd_messages && settings.gpu_disable_interlacing)
|
if (display_osd_messages)
|
||||||
APPEND_MESSAGE(TRANSLATE_SV("GameDatabase", "Interlaced rendering enabled."));
|
APPEND_MESSAGE(TRANSLATE_SV("GameDatabase", "Interlaced rendering enabled."));
|
||||||
|
|
||||||
settings.gpu_disable_interlacing = false;
|
settings.display_deinterlacing_mode = DisplayDeinterlacingMode::Adaptive;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (HasTrait(Trait::DisableTrueColor))
|
if (HasTrait(Trait::DisableTrueColor))
|
||||||
|
|
|
@ -87,7 +87,7 @@ GPU::~GPU()
|
||||||
|
|
||||||
bool GPU::Initialize()
|
bool GPU::Initialize()
|
||||||
{
|
{
|
||||||
m_force_progressive_scan = g_settings.gpu_disable_interlacing;
|
m_force_progressive_scan = (g_settings.display_deinterlacing_mode == DisplayDeinterlacingMode::Progressive);
|
||||||
m_force_frame_timings = g_settings.gpu_force_video_timing;
|
m_force_frame_timings = g_settings.gpu_force_video_timing;
|
||||||
s_crtc_tick_event.Activate();
|
s_crtc_tick_event.Activate();
|
||||||
m_fifo_size = g_settings.gpu_fifo_size;
|
m_fifo_size = g_settings.gpu_fifo_size;
|
||||||
|
@ -115,7 +115,7 @@ void GPU::UpdateSettings(const Settings& old_settings)
|
||||||
{
|
{
|
||||||
FlushRender();
|
FlushRender();
|
||||||
|
|
||||||
m_force_progressive_scan = g_settings.gpu_disable_interlacing;
|
m_force_progressive_scan = (g_settings.display_deinterlacing_mode == DisplayDeinterlacingMode::Progressive);
|
||||||
m_fifo_size = g_settings.gpu_fifo_size;
|
m_fifo_size = g_settings.gpu_fifo_size;
|
||||||
m_max_run_ahead = g_settings.gpu_max_run_ahead;
|
m_max_run_ahead = g_settings.gpu_max_run_ahead;
|
||||||
|
|
||||||
|
@ -1876,6 +1876,7 @@ bool GPU::CompileDisplayPipelines(bool display, bool deinterlace, bool chroma_sm
|
||||||
switch (g_settings.display_deinterlacing_mode)
|
switch (g_settings.display_deinterlacing_mode)
|
||||||
{
|
{
|
||||||
case DisplayDeinterlacingMode::Disabled:
|
case DisplayDeinterlacingMode::Disabled:
|
||||||
|
case DisplayDeinterlacingMode::Progressive:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DisplayDeinterlacingMode::Weave:
|
case DisplayDeinterlacingMode::Weave:
|
||||||
|
|
|
@ -442,8 +442,7 @@ void ImGuiManager::DrawEnhancementsOverlay()
|
||||||
text.append(" TrueCol");
|
text.append(" TrueCol");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (g_settings.gpu_disable_interlacing)
|
text.append_format(" DI={}", Settings::GetDisplayDeinterlacingModeName(g_settings.display_deinterlacing_mode));
|
||||||
text.append(" ForceProg");
|
|
||||||
if (g_settings.gpu_force_video_timing == ForceVideoTimingMode::NTSC && System::GetRegion() == ConsoleRegion::PAL)
|
if (g_settings.gpu_force_video_timing == ForceVideoTimingMode::NTSC && System::GetRegion() == ConsoleRegion::PAL)
|
||||||
text.append(" PAL60");
|
text.append(" PAL60");
|
||||||
if (g_settings.gpu_force_video_timing == ForceVideoTimingMode::PAL && System::GetRegion() != ConsoleRegion::PAL)
|
if (g_settings.gpu_force_video_timing == ForceVideoTimingMode::PAL && System::GetRegion() != ConsoleRegion::PAL)
|
||||||
|
|
|
@ -230,7 +230,6 @@ void Settings::Load(SettingsInterface& si, SettingsInterface& controller_si)
|
||||||
ParseGPUWireframeMode(
|
ParseGPUWireframeMode(
|
||||||
si.GetStringValue("GPU", "WireframeMode", GetGPUWireframeModeName(DEFAULT_GPU_WIREFRAME_MODE)).c_str())
|
si.GetStringValue("GPU", "WireframeMode", GetGPUWireframeModeName(DEFAULT_GPU_WIREFRAME_MODE)).c_str())
|
||||||
.value_or(DEFAULT_GPU_WIREFRAME_MODE);
|
.value_or(DEFAULT_GPU_WIREFRAME_MODE);
|
||||||
gpu_disable_interlacing = si.GetBoolValue("GPU", "DisableInterlacing", true);
|
|
||||||
gpu_force_video_timing =
|
gpu_force_video_timing =
|
||||||
ParseForceVideoTimingName(
|
ParseForceVideoTimingName(
|
||||||
si.GetStringValue("GPU", "ForceVideoTiming", GetForceVideoTimingName(DEFAULT_FORCE_VIDEO_TIMING_MODE)).c_str())
|
si.GetStringValue("GPU", "ForceVideoTiming", GetForceVideoTimingName(DEFAULT_FORCE_VIDEO_TIMING_MODE)).c_str())
|
||||||
|
@ -250,9 +249,9 @@ void Settings::Load(SettingsInterface& si, SettingsInterface& controller_si)
|
||||||
SetPGXPDepthClearThreshold(si.GetFloatValue("GPU", "PGXPDepthClearThreshold", DEFAULT_GPU_PGXP_DEPTH_THRESHOLD));
|
SetPGXPDepthClearThreshold(si.GetFloatValue("GPU", "PGXPDepthClearThreshold", DEFAULT_GPU_PGXP_DEPTH_THRESHOLD));
|
||||||
|
|
||||||
display_deinterlacing_mode =
|
display_deinterlacing_mode =
|
||||||
ParseDisplayDeinterlacingMode(si.GetStringValue("Display", "DeinterlacingMode",
|
ParseDisplayDeinterlacingMode(
|
||||||
GetDisplayDeinterlacingModeName(DEFAULT_DISPLAY_DEINTERLACING_MODE))
|
si.GetStringValue("GPU", "DeinterlacingMode", GetDisplayDeinterlacingModeName(DEFAULT_DISPLAY_DEINTERLACING_MODE))
|
||||||
.c_str())
|
.c_str())
|
||||||
.value_or(DEFAULT_DISPLAY_DEINTERLACING_MODE);
|
.value_or(DEFAULT_DISPLAY_DEINTERLACING_MODE);
|
||||||
display_crop_mode =
|
display_crop_mode =
|
||||||
ParseDisplayCropMode(
|
ParseDisplayCropMode(
|
||||||
|
@ -539,7 +538,6 @@ void Settings::Save(SettingsInterface& si, bool ignore_base) const
|
||||||
si.SetStringValue("GPU", "DownsampleMode", GetDownsampleModeName(gpu_downsample_mode));
|
si.SetStringValue("GPU", "DownsampleMode", GetDownsampleModeName(gpu_downsample_mode));
|
||||||
si.SetUIntValue("GPU", "DownsampleScale", gpu_downsample_scale);
|
si.SetUIntValue("GPU", "DownsampleScale", gpu_downsample_scale);
|
||||||
si.SetStringValue("GPU", "WireframeMode", GetGPUWireframeModeName(gpu_wireframe_mode));
|
si.SetStringValue("GPU", "WireframeMode", GetGPUWireframeModeName(gpu_wireframe_mode));
|
||||||
si.SetBoolValue("GPU", "DisableInterlacing", gpu_disable_interlacing);
|
|
||||||
si.SetStringValue("GPU", "ForceVideoTiming", GetForceVideoTimingName(gpu_force_video_timing));
|
si.SetStringValue("GPU", "ForceVideoTiming", GetForceVideoTimingName(gpu_force_video_timing));
|
||||||
si.SetBoolValue("GPU", "WidescreenHack", gpu_widescreen_hack);
|
si.SetBoolValue("GPU", "WidescreenHack", gpu_widescreen_hack);
|
||||||
si.SetBoolValue("GPU", "ChromaSmoothing24Bit", display_24bit_chroma_smoothing);
|
si.SetBoolValue("GPU", "ChromaSmoothing24Bit", display_24bit_chroma_smoothing);
|
||||||
|
@ -555,7 +553,7 @@ void Settings::Save(SettingsInterface& si, bool ignore_base) const
|
||||||
si.SetBoolValue("GPU", "PGXPDisableOn2DPolygons", gpu_pgxp_disable_2d);
|
si.SetBoolValue("GPU", "PGXPDisableOn2DPolygons", gpu_pgxp_disable_2d);
|
||||||
si.SetFloatValue("GPU", "PGXPDepthClearThreshold", GetPGXPDepthClearThreshold());
|
si.SetFloatValue("GPU", "PGXPDepthClearThreshold", GetPGXPDepthClearThreshold());
|
||||||
|
|
||||||
si.SetStringValue("Display", "DeinterlacingMode", GetDisplayDeinterlacingModeName(display_deinterlacing_mode));
|
si.SetStringValue("GPU", "DeinterlacingMode", GetDisplayDeinterlacingModeName(display_deinterlacing_mode));
|
||||||
si.SetStringValue("Display", "CropMode", GetDisplayCropModeName(display_crop_mode));
|
si.SetStringValue("Display", "CropMode", GetDisplayCropModeName(display_crop_mode));
|
||||||
si.SetIntValue("Display", "ActiveStartOffset", display_active_start_offset);
|
si.SetIntValue("Display", "ActiveStartOffset", display_active_start_offset);
|
||||||
si.SetIntValue("Display", "ActiveEndOffset", display_active_end_offset);
|
si.SetIntValue("Display", "ActiveEndOffset", display_active_end_offset);
|
||||||
|
@ -748,10 +746,10 @@ void Settings::FixIncompatibleSettings(bool display_osd_messages)
|
||||||
g_settings.gpu_texture_filter = GPUTextureFilter::Nearest;
|
g_settings.gpu_texture_filter = GPUTextureFilter::Nearest;
|
||||||
g_settings.gpu_sprite_texture_filter = GPUTextureFilter::Nearest;
|
g_settings.gpu_sprite_texture_filter = GPUTextureFilter::Nearest;
|
||||||
g_settings.gpu_line_detect_mode = GPULineDetectMode::Disabled;
|
g_settings.gpu_line_detect_mode = GPULineDetectMode::Disabled;
|
||||||
g_settings.gpu_disable_interlacing = false;
|
|
||||||
g_settings.gpu_force_video_timing = ForceVideoTimingMode::Disabled;
|
g_settings.gpu_force_video_timing = ForceVideoTimingMode::Disabled;
|
||||||
g_settings.gpu_widescreen_hack = false;
|
g_settings.gpu_widescreen_hack = false;
|
||||||
g_settings.gpu_pgxp_enable = false;
|
g_settings.gpu_pgxp_enable = false;
|
||||||
|
g_settings.display_deinterlacing_mode = DisplayDeinterlacingMode::Adaptive;
|
||||||
g_settings.display_24bit_chroma_smoothing = false;
|
g_settings.display_24bit_chroma_smoothing = false;
|
||||||
g_settings.cdrom_read_speedup = 1;
|
g_settings.cdrom_read_speedup = 1;
|
||||||
g_settings.cdrom_seek_speedup = 1;
|
g_settings.cdrom_seek_speedup = 1;
|
||||||
|
@ -1323,12 +1321,14 @@ static constexpr const std::array s_display_deinterlacing_mode_names = {
|
||||||
"Weave",
|
"Weave",
|
||||||
"Blend",
|
"Blend",
|
||||||
"Adaptive",
|
"Adaptive",
|
||||||
|
"Progressive",
|
||||||
};
|
};
|
||||||
static constexpr const std::array s_display_deinterlacing_mode_display_names = {
|
static constexpr const std::array s_display_deinterlacing_mode_display_names = {
|
||||||
TRANSLATE_NOOP("DisplayDeinterlacingMode", "Disabled (Flickering)"),
|
TRANSLATE_NOOP("DisplayDeinterlacingMode", "Disabled (Flickering)"),
|
||||||
TRANSLATE_NOOP("DisplayDeinterlacingMode", "Weave (Combing)"),
|
TRANSLATE_NOOP("DisplayDeinterlacingMode", "Weave (Combing)"),
|
||||||
TRANSLATE_NOOP("DisplayDeinterlacingMode", "Blend (Blur)"),
|
TRANSLATE_NOOP("DisplayDeinterlacingMode", "Blend (Blur)"),
|
||||||
TRANSLATE_NOOP("DisplayDeinterlacingMode", "Adaptive (FastMAD)"),
|
TRANSLATE_NOOP("DisplayDeinterlacingMode", "Adaptive (FastMAD)"),
|
||||||
|
TRANSLATE_NOOP("DisplayDeinterlacingMode", "Progressive (Optimal)"),
|
||||||
};
|
};
|
||||||
|
|
||||||
std::optional<DisplayDeinterlacingMode> Settings::ParseDisplayDeinterlacingMode(const char* str)
|
std::optional<DisplayDeinterlacingMode> Settings::ParseDisplayDeinterlacingMode(const char* str)
|
||||||
|
|
|
@ -121,7 +121,6 @@ struct Settings
|
||||||
bool gpu_scaled_dithering : 1 = true;
|
bool gpu_scaled_dithering : 1 = true;
|
||||||
bool gpu_force_round_texcoords : 1 = false;
|
bool gpu_force_round_texcoords : 1 = false;
|
||||||
bool gpu_accurate_blending : 1 = false;
|
bool gpu_accurate_blending : 1 = false;
|
||||||
bool gpu_disable_interlacing : 1 = true;
|
|
||||||
bool gpu_widescreen_hack : 1 = false;
|
bool gpu_widescreen_hack : 1 = false;
|
||||||
bool gpu_pgxp_enable : 1 = false;
|
bool gpu_pgxp_enable : 1 = false;
|
||||||
bool gpu_pgxp_culling : 1 = true;
|
bool gpu_pgxp_culling : 1 = true;
|
||||||
|
@ -490,7 +489,7 @@ struct Settings
|
||||||
static constexpr CPUFastmemMode DEFAULT_CPU_FASTMEM_MODE = CPUFastmemMode::LUT;
|
static constexpr CPUFastmemMode DEFAULT_CPU_FASTMEM_MODE = CPUFastmemMode::LUT;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static constexpr DisplayDeinterlacingMode DEFAULT_DISPLAY_DEINTERLACING_MODE = DisplayDeinterlacingMode::Adaptive;
|
static constexpr DisplayDeinterlacingMode DEFAULT_DISPLAY_DEINTERLACING_MODE = DisplayDeinterlacingMode::Progressive;
|
||||||
static constexpr DisplayCropMode DEFAULT_DISPLAY_CROP_MODE = DisplayCropMode::Overscan;
|
static constexpr DisplayCropMode DEFAULT_DISPLAY_CROP_MODE = DisplayCropMode::Overscan;
|
||||||
static constexpr DisplayAspectRatio DEFAULT_DISPLAY_ASPECT_RATIO = DisplayAspectRatio::Auto;
|
static constexpr DisplayAspectRatio DEFAULT_DISPLAY_ASPECT_RATIO = DisplayAspectRatio::Auto;
|
||||||
static constexpr DisplayAlignment DEFAULT_DISPLAY_ALIGNMENT = DisplayAlignment::Center;
|
static constexpr DisplayAlignment DEFAULT_DISPLAY_ALIGNMENT = DisplayAlignment::Center;
|
||||||
|
|
|
@ -4303,7 +4303,6 @@ void System::CheckForSettingsChanges(const Settings& old_settings)
|
||||||
g_settings.gpu_texture_filter != old_settings.gpu_texture_filter ||
|
g_settings.gpu_texture_filter != old_settings.gpu_texture_filter ||
|
||||||
g_settings.gpu_sprite_texture_filter != old_settings.gpu_sprite_texture_filter ||
|
g_settings.gpu_sprite_texture_filter != old_settings.gpu_sprite_texture_filter ||
|
||||||
g_settings.gpu_line_detect_mode != old_settings.gpu_line_detect_mode ||
|
g_settings.gpu_line_detect_mode != old_settings.gpu_line_detect_mode ||
|
||||||
g_settings.gpu_disable_interlacing != old_settings.gpu_disable_interlacing ||
|
|
||||||
g_settings.gpu_force_video_timing != old_settings.gpu_force_video_timing ||
|
g_settings.gpu_force_video_timing != old_settings.gpu_force_video_timing ||
|
||||||
g_settings.gpu_downsample_mode != old_settings.gpu_downsample_mode ||
|
g_settings.gpu_downsample_mode != old_settings.gpu_downsample_mode ||
|
||||||
g_settings.gpu_downsample_scale != old_settings.gpu_downsample_scale ||
|
g_settings.gpu_downsample_scale != old_settings.gpu_downsample_scale ||
|
||||||
|
@ -4586,8 +4585,8 @@ void System::WarnAboutUnsafeSettings()
|
||||||
{
|
{
|
||||||
APPEND_SUBMESSAGE(TRANSLATE_SV("System", "Texture filtering disabled."));
|
APPEND_SUBMESSAGE(TRANSLATE_SV("System", "Texture filtering disabled."));
|
||||||
}
|
}
|
||||||
if (g_settings.gpu_disable_interlacing)
|
if (g_settings.display_deinterlacing_mode == DisplayDeinterlacingMode::Progressive)
|
||||||
APPEND_SUBMESSAGE(TRANSLATE_SV("System", "Interlaced rendering and display enabled."));
|
APPEND_SUBMESSAGE(TRANSLATE_SV("System", "Interlaced rendering enabled."));
|
||||||
if (g_settings.gpu_force_video_timing != ForceVideoTimingMode::Disabled)
|
if (g_settings.gpu_force_video_timing != ForceVideoTimingMode::Disabled)
|
||||||
APPEND_SUBMESSAGE(TRANSLATE_SV("System", "Video timings set to default."));
|
APPEND_SUBMESSAGE(TRANSLATE_SV("System", "Video timings set to default."));
|
||||||
if (g_settings.gpu_widescreen_hack)
|
if (g_settings.gpu_widescreen_hack)
|
||||||
|
|
|
@ -84,6 +84,7 @@ enum class DisplayDeinterlacingMode : u8
|
||||||
Weave,
|
Weave,
|
||||||
Blend,
|
Blend,
|
||||||
Adaptive,
|
Adaptive,
|
||||||
|
Progressive,
|
||||||
Count
|
Count
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -66,7 +66,7 @@ GraphicsSettingsWidget::GraphicsSettingsWidget(SettingsWindow* dialog, QWidget*
|
||||||
"CustomAspectRatioDenominator", 1);
|
"CustomAspectRatioDenominator", 1);
|
||||||
SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.widescreenHack, "GPU", "WidescreenHack", false);
|
SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.widescreenHack, "GPU", "WidescreenHack", false);
|
||||||
SettingWidgetBinder::BindWidgetToEnumSetting(
|
SettingWidgetBinder::BindWidgetToEnumSetting(
|
||||||
sif, m_ui.displayDeinterlacing, "Display", "DeinterlacingMode", &Settings::ParseDisplayDeinterlacingMode,
|
sif, m_ui.displayDeinterlacing, "GPU", "DeinterlacingMode", &Settings::ParseDisplayDeinterlacingMode,
|
||||||
&Settings::GetDisplayDeinterlacingModeName, Settings::DEFAULT_DISPLAY_DEINTERLACING_MODE);
|
&Settings::GetDisplayDeinterlacingModeName, Settings::DEFAULT_DISPLAY_DEINTERLACING_MODE);
|
||||||
SettingWidgetBinder::BindWidgetToEnumSetting(sif, m_ui.displayCropMode, "Display", "CropMode",
|
SettingWidgetBinder::BindWidgetToEnumSetting(sif, m_ui.displayCropMode, "Display", "CropMode",
|
||||||
&Settings::ParseDisplayCropMode, &Settings::GetDisplayCropModeName,
|
&Settings::ParseDisplayCropMode, &Settings::GetDisplayCropModeName,
|
||||||
|
@ -79,7 +79,6 @@ GraphicsSettingsWidget::GraphicsSettingsWidget(SettingsWindow* dialog, QWidget*
|
||||||
Settings::DEFAULT_FORCE_VIDEO_TIMING_MODE);
|
Settings::DEFAULT_FORCE_VIDEO_TIMING_MODE);
|
||||||
SettingWidgetBinder::BindWidgetToIntSetting(sif, m_ui.gpuDownsampleScale, "GPU", "DownsampleScale", 1);
|
SettingWidgetBinder::BindWidgetToIntSetting(sif, m_ui.gpuDownsampleScale, "GPU", "DownsampleScale", 1);
|
||||||
SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.trueColor, "GPU", "TrueColor", false);
|
SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.trueColor, "GPU", "TrueColor", false);
|
||||||
SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.disableInterlacing, "GPU", "DisableInterlacing", true);
|
|
||||||
SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.pgxpEnable, "GPU", "PGXPEnable", false);
|
SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.pgxpEnable, "GPU", "PGXPEnable", false);
|
||||||
SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.pgxpDepthBuffer, "GPU", "PGXPDepthBuffer", false);
|
SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.pgxpDepthBuffer, "GPU", "PGXPDepthBuffer", false);
|
||||||
SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.force43For24Bit, "Display", "Force4_3For24Bit", false);
|
SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.force43For24Bit, "Display", "Force4_3For24Bit", false);
|
||||||
|
@ -104,8 +103,6 @@ GraphicsSettingsWidget::GraphicsSettingsWidget(SettingsWindow* dialog, QWidget*
|
||||||
!m_dialog->hasGameTrait(GameDatabase::Trait::DisableTextureFiltering));
|
!m_dialog->hasGameTrait(GameDatabase::Trait::DisableTextureFiltering));
|
||||||
SettingWidgetBinder::SetAvailability(m_ui.trueColor, !m_dialog->hasGameTrait(GameDatabase::Trait::DisableTrueColor));
|
SettingWidgetBinder::SetAvailability(m_ui.trueColor, !m_dialog->hasGameTrait(GameDatabase::Trait::DisableTrueColor));
|
||||||
SettingWidgetBinder::SetAvailability(m_ui.pgxpEnable, !m_dialog->hasGameTrait(GameDatabase::Trait::DisablePGXP));
|
SettingWidgetBinder::SetAvailability(m_ui.pgxpEnable, !m_dialog->hasGameTrait(GameDatabase::Trait::DisablePGXP));
|
||||||
SettingWidgetBinder::SetAvailability(m_ui.disableInterlacing,
|
|
||||||
!m_dialog->hasGameTrait(GameDatabase::Trait::ForceInterlacing));
|
|
||||||
SettingWidgetBinder::SetAvailability(m_ui.widescreenHack,
|
SettingWidgetBinder::SetAvailability(m_ui.widescreenHack,
|
||||||
!m_dialog->hasGameTrait(GameDatabase::Trait::DisableWidescreen));
|
!m_dialog->hasGameTrait(GameDatabase::Trait::DisableWidescreen));
|
||||||
|
|
||||||
|
@ -325,8 +322,7 @@ GraphicsSettingsWidget::GraphicsSettingsWidget(SettingsWindow* dialog, QWidget*
|
||||||
m_ui.displayDeinterlacing, tr("Deinterlacing"),
|
m_ui.displayDeinterlacing, tr("Deinterlacing"),
|
||||||
QString::fromUtf8(Settings::GetDisplayDeinterlacingModeName(Settings::DEFAULT_DISPLAY_DEINTERLACING_MODE)),
|
QString::fromUtf8(Settings::GetDisplayDeinterlacingModeName(Settings::DEFAULT_DISPLAY_DEINTERLACING_MODE)),
|
||||||
tr("Determines which algorithm is used to convert interlaced frames to progressive for display on your system. "
|
tr("Determines which algorithm is used to convert interlaced frames to progressive for display on your system. "
|
||||||
"Generally, the \"Disable Interlacing\" enhancement provides better quality output, but some games require "
|
"Using progressive rendering provides the best quality output, but some games require interlaced rendering."));
|
||||||
"interlaced rendering."));
|
|
||||||
dialog->registerWidgetHelp(
|
dialog->registerWidgetHelp(
|
||||||
m_ui.displayCropMode, tr("Crop"),
|
m_ui.displayCropMode, tr("Crop"),
|
||||||
QString::fromUtf8(Settings::GetDisplayCropModeDisplayName(Settings::DEFAULT_DISPLAY_CROP_MODE)),
|
QString::fromUtf8(Settings::GetDisplayCropModeDisplayName(Settings::DEFAULT_DISPLAY_CROP_MODE)),
|
||||||
|
@ -366,12 +362,6 @@ GraphicsSettingsWidget::GraphicsSettingsWidget(SettingsWindow* dialog, QWidget*
|
||||||
tr("Switches back to 4:3 display aspect ratio when displaying 24-bit content, usually FMVs."));
|
tr("Switches back to 4:3 display aspect ratio when displaying 24-bit content, usually FMVs."));
|
||||||
dialog->registerWidgetHelp(m_ui.chromaSmoothingFor24Bit, tr("FMV Chroma Smoothing"), tr("Unchecked"),
|
dialog->registerWidgetHelp(m_ui.chromaSmoothingFor24Bit, tr("FMV Chroma Smoothing"), tr("Unchecked"),
|
||||||
tr("Smooths out blockyness between colour transitions in 24-bit content, usually FMVs."));
|
tr("Smooths out blockyness between colour transitions in 24-bit content, usually FMVs."));
|
||||||
dialog->registerWidgetHelp(
|
|
||||||
m_ui.disableInterlacing, tr("Disable Interlacing"), tr("Checked"),
|
|
||||||
tr(
|
|
||||||
"Forces the rendering and display of frames to progressive mode. <br>This removes the \"combing\" effect seen in "
|
|
||||||
"480i games by rendering them in 480p. Usually safe to enable.<br><b><u>May not be compatible with all "
|
|
||||||
"games.</u></b>"));
|
|
||||||
|
|
||||||
// Advanced Tab
|
// Advanced Tab
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>584</width>
|
<width>584</width>
|
||||||
<height>450</height>
|
<height>477</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
|
@ -203,17 +203,10 @@
|
||||||
</item>
|
</item>
|
||||||
<item row="9" column="0" colspan="2">
|
<item row="9" column="0" colspan="2">
|
||||||
<layout class="QGridLayout" name="gridLayout_2">
|
<layout class="QGridLayout" name="gridLayout_2">
|
||||||
<item row="1" column="1">
|
<item row="0" column="1">
|
||||||
<widget class="QCheckBox" name="pgxpDepthBuffer">
|
<widget class="QCheckBox" name="widescreenHack">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>PGXP Depth Buffer (Low Compatibility)</string>
|
<string>Widescreen Rendering</string>
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="3" column="0">
|
|
||||||
<widget class="QCheckBox" name="disableInterlacing">
|
|
||||||
<property name="text">
|
|
||||||
<string>Disable Interlacing</string>
|
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
@ -224,13 +217,6 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="0" column="0">
|
|
||||||
<widget class="QCheckBox" name="trueColor">
|
|
||||||
<property name="text">
|
|
||||||
<string>True Color Rendering</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="1">
|
<item row="2" column="1">
|
||||||
<widget class="QCheckBox" name="chromaSmoothingFor24Bit">
|
<widget class="QCheckBox" name="chromaSmoothingFor24Bit">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
|
@ -238,10 +224,10 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="0" column="1">
|
<item row="0" column="0">
|
||||||
<widget class="QCheckBox" name="widescreenHack">
|
<widget class="QCheckBox" name="trueColor">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Widescreen Rendering</string>
|
<string>True Color Rendering</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
@ -252,6 +238,13 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<widget class="QCheckBox" name="pgxpDepthBuffer">
|
||||||
|
<property name="text">
|
||||||
|
<string>PGXP Depth Buffer (Low Compatibility)</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="1">
|
<item row="2" column="1">
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>780</width>
|
<width>780</width>
|
||||||
<height>650</height>
|
<height>655</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
|
|
Loading…
Reference in a new issue