diff --git a/src/core/cdrom.cpp b/src/core/cdrom.cpp index 6e8e7a068..1baf5cb20 100644 --- a/src/core/cdrom.cpp +++ b/src/core/cdrom.cpp @@ -764,9 +764,9 @@ bool CDROM::HasPendingDiscEvent() const TickCount CDROM::GetAckDelayForCommand(Command command) { - if (command == Command::Init) + if (command == Command::Reset) { - // Init takes longer. + // Full reset takes longer. return 120000; } @@ -1349,11 +1349,11 @@ void CDROM::ExecuteCommand(TickCount ticks_late) return; } - case Command::Reset: + case Command::Init: { Log_DebugPrintf("CDROM reset command"); - if (m_command_second_response == Command::Reset) + if (m_command_second_response == Command::Init) { // still pending EndCommand(); @@ -1367,7 +1367,7 @@ void CDROM::ExecuteCommand(TickCount ticks_late) SoftReset(ticks_late); - QueueCommandSecondResponse(Command::Reset, RESET_TICKS); + QueueCommandSecondResponse(Command::Init, INIT_TICKS); return; } break; @@ -1666,7 +1666,7 @@ void CDROM::ExecuteCommandSecondResponse(TickCount ticks_late) case Command::ReadTOC: case Command::Pause: - case Command::Reset: + case Command::Init: case Command::MotorOn: case Command::Stop: DoStatSecondResponse(); diff --git a/src/core/cdrom.h b/src/core/cdrom.h index 14a136cf2..6c435bef5 100644 --- a/src/core/cdrom.h +++ b/src/core/cdrom.h @@ -82,7 +82,7 @@ private: AUDIO_FIFO_SIZE = 44100 * 2, AUDIO_FIFO_LOW_WATERMARK = 10, - RESET_TICKS = 400000, + INIT_TICKS = 400000, ID_READ_TICKS = 33868, MOTOR_ON_RESPONSE_TICKS = 400000, @@ -113,7 +113,7 @@ private: MotorOn = 0x07, Stop = 0x08, Pause = 0x09, - Reset = 0x0A, + Init = 0x0A, Mute = 0x0B, Demute = 0x0C, Setfilter = 0x0D, @@ -131,7 +131,7 @@ private: Test = 0x19, GetID = 0x1A, ReadS = 0x1B, - Init = 0x1C, + Reset = 0x1C, GetQ = 0x1D, ReadTOC = 0x1E, VideoCD = 0x1F, diff --git a/src/duckstation-qt/displaysettingswidget.cpp b/src/duckstation-qt/displaysettingswidget.cpp index 7db660ed9..7278bfc91 100644 --- a/src/duckstation-qt/displaysettingswidget.cpp +++ b/src/duckstation-qt/displaysettingswidget.cpp @@ -39,9 +39,6 @@ DisplaySettingsWidget::DisplaySettingsWidget(SettingsDialog* dialog, QWidget* pa SettingWidgetBinder::BindWidgetToEnumSetting(sif, m_ui.displayAlignment, "Display", "Alignment", &Settings::ParseDisplayAlignment, &Settings::GetDisplayAlignmentName, Settings::DEFAULT_DISPLAY_ALIGNMENT); - SettingWidgetBinder::BindWidgetToEnumSetting(sif, m_ui.gpuDownsampleMode, "GPU", "DownsampleMode", - &Settings::ParseDownsampleModeName, &Settings::GetDownsampleModeName, - Settings::DEFAULT_GPU_DOWNSAMPLE_MODE); SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.displayLinearFiltering, "Display", "LinearFiltering", true); SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.displayIntegerScaling, "Display", "IntegerScaling", false); SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.displayStretch, "Display", "Stretch", false); @@ -102,10 +99,6 @@ DisplaySettingsWidget::DisplaySettingsWidget(SettingsDialog* dialog, QWidget* pa m_ui.displayAlignment, tr("Position"), qApp->translate("DisplayCropMode", Settings::GetDisplayAlignmentDisplayName(Settings::DEFAULT_DISPLAY_ALIGNMENT)), tr("Determines the position on the screen when black borders must be added.")); - dialog->registerWidgetHelp( - m_ui.gpuDownsampleMode, tr("Downsampling"), tr("Disabled"), - tr("Downsamples the rendered image prior to displaying it. Can improve overall image quality in mixed 2D/3D games, " - "but should be disabled for pure 3D games. Only applies to the hardware renderers.")); dialog->registerWidgetHelp(m_ui.displayLinearFiltering, tr("Linear Upscaling"), tr("Checked"), tr("Uses bilinear texture filtering when displaying the console's framebuffer to the " "screen.
Disabling filtering " @@ -189,12 +182,6 @@ void DisplaySettingsWidget::setupAdditionalUi() m_ui.displayAlignment->addItem( qApp->translate("DisplayAlignment", Settings::GetDisplayAlignmentDisplayName(static_cast(i)))); } - - for (u32 i = 0; i < static_cast(GPUDownsampleMode::Count); i++) - { - m_ui.gpuDownsampleMode->addItem( - qApp->translate("GPUDownsampleMode", Settings::GetDownsampleModeDisplayName(static_cast(i)))); - } } void DisplaySettingsWidget::populateGPUAdaptersAndResolutions() diff --git a/src/duckstation-qt/displaysettingswidget.ui b/src/duckstation-qt/displaysettingswidget.ui index d654cb643..3c1198833 100644 --- a/src/duckstation-qt/displaysettingswidget.ui +++ b/src/duckstation-qt/displaysettingswidget.ui @@ -154,17 +154,17 @@ - - + + - Downsampling: + Position: - - + + - + @@ -196,16 +196,6 @@ - - - - Position: - - - - - - diff --git a/src/duckstation-qt/enhancementsettingswidget.cpp b/src/duckstation-qt/enhancementsettingswidget.cpp index 3c35668d3..3ff9a629c 100644 --- a/src/duckstation-qt/enhancementsettingswidget.cpp +++ b/src/duckstation-qt/enhancementsettingswidget.cpp @@ -14,6 +14,9 @@ EnhancementSettingsWidget::EnhancementSettingsWidget(SettingsDialog* dialog, QWi setupAdditionalUi(); SettingWidgetBinder::BindWidgetToIntSetting(sif, m_ui.resolutionScale, "GPU", "ResolutionScale", 1); + SettingWidgetBinder::BindWidgetToEnumSetting(sif, m_ui.gpuDownsampleMode, "GPU", "DownsampleMode", + &Settings::ParseDownsampleModeName, &Settings::GetDownsampleModeName, + Settings::DEFAULT_GPU_DOWNSAMPLE_MODE); SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.trueColor, "GPU", "TrueColor", false); SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.scaledDithering, "GPU", "ScaledDithering", false); SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.disableInterlacing, "GPU", "DisableInterlacing", true); @@ -41,9 +44,14 @@ EnhancementSettingsWidget::EnhancementSettingsWidget(SettingsDialog* dialog, QWi updateScaledDitheringEnabled(); connect(m_ui.pgxpEnable, &QCheckBox::stateChanged, this, &EnhancementSettingsWidget::updatePGXPSettingsEnabled); - connect(m_ui.pgxpTextureCorrection, &QCheckBox::stateChanged, this, &EnhancementSettingsWidget::updatePGXPSettingsEnabled); + connect(m_ui.pgxpTextureCorrection, &QCheckBox::stateChanged, this, + &EnhancementSettingsWidget::updatePGXPSettingsEnabled); updatePGXPSettingsEnabled(); + dialog->registerWidgetHelp( + m_ui.gpuDownsampleMode, tr("Downsampling"), tr("Disabled"), + tr("Downsamples the rendered image prior to displaying it. Can improve overall image quality in mixed 2D/3D games, " + "but should be disabled for pure 3D games. Only applies to the hardware renderers.")); dialog->registerWidgetHelp( m_ui.disableInterlacing, tr("Disable Interlacing (force progressive render/scan)"), tr("Unchecked"), tr( @@ -139,6 +147,12 @@ void EnhancementSettingsWidget::setupAdditionalUi() m_ui.textureFiltering->addItem( qApp->translate("GPUTextureFilter", Settings::GetTextureFilterDisplayName(static_cast(i)))); } + + for (u32 i = 0; i < static_cast(GPUDownsampleMode::Count); i++) + { + m_ui.gpuDownsampleMode->addItem( + qApp->translate("GPUDownsampleMode", Settings::GetDownsampleModeDisplayName(static_cast(i)))); + } } void EnhancementSettingsWidget::updatePGXPSettingsEnabled() diff --git a/src/duckstation-qt/enhancementsettingswidget.ui b/src/duckstation-qt/enhancementsettingswidget.ui index 3c66643bd..783dcb113 100644 --- a/src/duckstation-qt/enhancementsettingswidget.ui +++ b/src/duckstation-qt/enhancementsettingswidget.ui @@ -52,34 +52,44 @@ - + True Color Rendering (24-bit, disables dithering) - + Scaled Dithering (scale dither pattern to resolution) - + Widescreen Hack (render 3D in display aspect ratio) - + Software Renderer Readbacks (run in parallel for VRAM->CPU transfers) + + + + Downsampling: + + + + + +