diff --git a/src/common/audio_stream.cpp b/src/common/audio_stream.cpp index e2b01d343..0547c22f9 100644 --- a/src/common/audio_stream.cpp +++ b/src/common/audio_stream.cpp @@ -252,6 +252,7 @@ void AudioStream::EmptyBuffers() std::unique_lock lock(m_buffer_mutex); m_buffer.Clear(); m_underflow_flag.store(false); + ResetResampler(); } void AudioStream::CreateResampler() @@ -273,6 +274,8 @@ void AudioStream::DestroyResampler() void AudioStream::ResetResampler() { m_resampled_buffer.Clear(); + m_resample_in_buffer.clear(); + m_resample_out_buffer.clear(); src_reset(static_cast(m_resampler_state)); } diff --git a/src/duckstation-qt/consolesettingswidget.cpp b/src/duckstation-qt/consolesettingswidget.cpp index 8d66a9823..70762b548 100644 --- a/src/duckstation-qt/consolesettingswidget.cpp +++ b/src/duckstation-qt/consolesettingswidget.cpp @@ -77,10 +77,11 @@ ConsoleSettingsWidget::ConsoleSettingsWidget(QtHostInterface* host_interface, QW dialog->registerWidgetHelp( m_ui.turboSpeed, tr("Turbo Speed"), "100%", tr("Sets the turbo speed. This speed will be used when the turbo hotkey is pressed/toggled.")); - dialog->registerWidgetHelp(m_ui.syncToHostRefreshRate, tr("Sync To Host Refresh Rate"), "100%", - tr("Adjusts the emulation speed so the console's refresh rate matches the host's refresh " - "rate, when VSync is enabled. This results in the smoothest animations possible, at " - "the cost of potentially increasing the emulation speed by less than 1%.")); + dialog->registerWidgetHelp( + m_ui.syncToHostRefreshRate, tr("Sync To Host Refresh Rate"), "100%", + tr("Adjusts the emulation speed so the console's refresh rate matches the host's refresh rate, when VSync and " + "Audio Resampling is enabled. This results in the smoothest animations possible, at the cost of potentially " + "increasing the emulation speed by less than 1%.")); m_ui.cpuClockSpeed->setEnabled(m_ui.enableCPUClockSpeedControl->checkState() == Qt::Checked); m_ui.cdromReadSpeedup->setCurrentIndex(m_host_interface->GetIntSettingValue("CDROM", "ReadSpeedup", 1) - 1); diff --git a/src/frontend-common/common_host_interface.cpp b/src/frontend-common/common_host_interface.cpp index 9d02e126d..84bdf373e 100644 --- a/src/frontend-common/common_host_interface.cpp +++ b/src/frontend-common/common_host_interface.cpp @@ -609,8 +609,8 @@ void CommonHostInterface::UpdateSpeedLimiterState() (m_fast_forward_enabled ? g_settings.fast_forward_speed : g_settings.emulation_speed); m_speed_limiter_enabled = (target_speed != 0.0f); - if (g_settings.sync_to_host_refresh_rate && target_speed == 1.0f && g_settings.video_sync_enabled && m_display && - System::IsRunning()) + if (g_settings.sync_to_host_refresh_rate && g_settings.audio_resampling && target_speed == 1.0f && + g_settings.video_sync_enabled && m_display && System::IsRunning()) { float host_refresh_rate; if (m_display->GetHostRefreshRate(&host_refresh_rate))