Reworked the "Force NTSC Timings" feature to support both NTSC and PAL frame timings (#3287)
This commit is contained in:
@ -74,6 +74,9 @@ GraphicsSettingsWidget::GraphicsSettingsWidget(SettingsWindow* dialog, QWidget*
|
||||
SettingWidgetBinder::BindWidgetToEnumSetting(sif, m_ui.displayScaling, "Display", "Scaling",
|
||||
&Settings::ParseDisplayScaling, &Settings::GetDisplayScalingName,
|
||||
Settings::DEFAULT_DISPLAY_SCALING);
|
||||
SettingWidgetBinder::BindWidgetToEnumSetting(sif, m_ui.forceFrameTimings, "GPU", "ForceFrameTimings",
|
||||
&Settings::ParseForceFrameTimings, &Settings::GetForceFrameTimingsName,
|
||||
Settings::DEFAULT_FORCE_FRAME_TIMINGS_MODE);
|
||||
SettingWidgetBinder::BindWidgetToIntSetting(sif, m_ui.gpuDownsampleScale, "GPU", "DownsampleScale", 1);
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.trueColor, "GPU", "TrueColor", false);
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.disableInterlacing, "GPU", "DisableInterlacing", true);
|
||||
@ -81,8 +84,7 @@ GraphicsSettingsWidget::GraphicsSettingsWidget(SettingsWindow* dialog, QWidget*
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.pgxpDepthBuffer, "GPU", "PGXPDepthBuffer", false);
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.force43For24Bit, "Display", "Force4_3For24Bit", false);
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.chromaSmoothingFor24Bit, "GPU", "ChromaSmoothing24Bit", false);
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.forceNTSCTimings, "GPU", "ForceNTSCTimings", false);
|
||||
|
||||
|
||||
connect(m_ui.renderer, QOverload<int>::of(&QComboBox::currentIndexChanged), this,
|
||||
&GraphicsSettingsWidget::updateRendererDependentOptions);
|
||||
connect(m_ui.textureFiltering, QOverload<int>::of(&QComboBox::currentIndexChanged), this,
|
||||
@ -106,8 +108,8 @@ GraphicsSettingsWidget::GraphicsSettingsWidget(SettingsWindow* dialog, QWidget*
|
||||
!m_dialog->hasGameTrait(GameDatabase::Trait::ForceInterlacing));
|
||||
SettingWidgetBinder::SetAvailability(m_ui.widescreenHack,
|
||||
!m_dialog->hasGameTrait(GameDatabase::Trait::DisableWidescreen));
|
||||
SettingWidgetBinder::SetAvailability(m_ui.forceNTSCTimings,
|
||||
!m_dialog->hasGameTrait(GameDatabase::Trait::DisableForceNTSCTimings));
|
||||
SettingWidgetBinder::SetAvailability(m_ui.forceFrameTimings,
|
||||
!m_dialog->hasGameTrait(GameDatabase::Trait::DisableForceFrameTimings));
|
||||
|
||||
// Advanced Tab
|
||||
|
||||
@ -334,6 +336,12 @@ GraphicsSettingsWidget::GraphicsSettingsWidget(SettingsWindow* dialog, QWidget*
|
||||
dialog->registerWidgetHelp(
|
||||
m_ui.displayScaling, tr("Scaling"), tr("Bilinear (Smooth)"),
|
||||
tr("Determines how the emulated console's output is upscaled or downscaled to your monitor's resolution."));
|
||||
dialog->registerWidgetHelp(
|
||||
m_ui.forceFrameTimings, tr("Force Frame Timings"), tr("Disabled"),
|
||||
tr("Utilizes the chosen frame timing regardless of the active region. "
|
||||
"This feature can be used to force PAL games to run at 60Hz and NTSC games to run at 50Hz. "
|
||||
"For most games which have a speed tied to the framerate, this will result in the game running approximately 17% faster or slower. "
|
||||
"For variable frame rate games, it may not affect the speed."));
|
||||
dialog->registerWidgetHelp(
|
||||
m_ui.trueColor, tr("True Color Rendering"), tr("Checked"),
|
||||
tr("Forces the precision of colours output to the console's framebuffer to use the full 8 bits of precision per "
|
||||
@ -364,11 +372,6 @@ GraphicsSettingsWidget::GraphicsSettingsWidget(SettingsWindow* dialog, QWidget*
|
||||
"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>"));
|
||||
dialog->registerWidgetHelp(
|
||||
m_ui.forceNTSCTimings, tr("Force NTSC Timings"), tr("Unchecked"),
|
||||
tr("Uses NTSC frame timings when the console is in PAL mode, forcing PAL games to run at 60hz. <br>For most games "
|
||||
"which have a speed tied to the framerate, this will result in the game running approximately 17% faster. "
|
||||
"<br>For variable frame rate games, it may not affect the speed."));
|
||||
|
||||
// Advanced Tab
|
||||
|
||||
@ -645,6 +648,13 @@ void GraphicsSettingsWidget::setupAdditionalUi()
|
||||
QString::fromUtf8(Settings::GetDisplayScalingDisplayName(static_cast<DisplayScalingMode>(i))));
|
||||
}
|
||||
|
||||
for (u32 i = 0; i < static_cast<u32>(ForceFrameTimingsMode::Count); i++)
|
||||
{
|
||||
m_ui.forceFrameTimings->addItem(
|
||||
QString::fromUtf8(Settings::GetForceFrameTimingsName(static_cast<ForceFrameTimingsMode>(i))));
|
||||
}
|
||||
|
||||
|
||||
// Advanced Tab
|
||||
|
||||
for (u32 i = 0; i < static_cast<u32>(DisplayExclusiveFullscreenControl::Count); i++)
|
||||
|
||||
Reference in New Issue
Block a user