Settings: Make Disable Interlacing a Deinterlacing mode

Saving that precious vertical space.
This commit is contained in:
Stenzek 2024-09-03 20:02:01 +10:00
parent 08edd9894b
commit cf9ef3d2ac
No known key found for this signature in database
12 changed files with 45 additions and 66 deletions

View file

@ -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"

View file

@ -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");

View file

@ -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))

View file

@ -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:

View file

@ -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)

View file

@ -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,8 +249,8 @@ 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 =
@ -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)

View file

@ -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;

View file

@ -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)

View file

@ -84,6 +84,7 @@ enum class DisplayDeinterlacingMode : u8
Weave, Weave,
Blend, Blend,
Adaptive, Adaptive,
Progressive,
Count Count
}; };

View file

@ -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

View file

@ -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">
<string>PGXP Depth Buffer (Low Compatibility)</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QCheckBox" name="disableInterlacing">
<property name="text"> <property name="text">
<string>Disable Interlacing</string> <string>Widescreen Rendering</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">

View file

@ -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">