diff --git a/rpcs3/Emu/Cell/Modules/cellAudio.cpp b/rpcs3/Emu/Cell/Modules/cellAudio.cpp index bf298f9c1c..834549f782 100644 --- a/rpcs3/Emu/Cell/Modules/cellAudio.cpp +++ b/rpcs3/Emu/Cell/Modules/cellAudio.cpp @@ -908,10 +908,9 @@ void cell_audio_thread::operator()() { // Games may sometimes "skip" audio periods entirely if they're falling behind (a sort of "frameskip" for audio) // As such, if the game doesn't touch buffers for too long we advance time hoping the game recovers - // TODO: It's a hack and it needs a setting to disable this (force true) if ( (untouched == active_ports && time_since_last_period > cfg.fully_untouched_timeout) || - (time_since_last_period > cfg.partially_untouched_timeout) || !keys.empty() + (time_since_last_period > cfg.partially_untouched_timeout) || g_cfg.audio.disable_sampling_skip ) { // There's no audio in the buffers, simply advance time and hope the game recovers diff --git a/rpcs3/Emu/system_config.h b/rpcs3/Emu/system_config.h index d754e37a84..a6aee3d169 100644 --- a/rpcs3/Emu/system_config.h +++ b/rpcs3/Emu/system_config.h @@ -257,6 +257,7 @@ struct cfg_root : cfg::node cfg::_bool enable_buffering{ this, "Enable Buffering", true, true }; cfg::_int <4, 250> desired_buffer_duration{ this, "Desired Audio Buffer Duration", 100, true }; cfg::_bool enable_time_stretching{ this, "Enable Time Stretching", false, true }; + cfg::_bool disable_sampling_skip{ this, "Disable Sampling Skip", false, true }; cfg::_int<0, 100> time_stretching_threshold{ this, "Time Stretching Threshold", 75, true }; cfg::_enum microphone_type{ this, "Microphone Type", microphone_handler::null }; cfg::string microphone_devices{ this, "Microphone Devices", "@@@@@@@@@@@@" };