citra_qt: Allow enabling frame advance before emulation start

Effectively allows starting emulation as paused.
This commit is contained in:
zhupengfei 2020-07-23 18:49:17 +08:00
parent d6b64f6b09
commit e60e20666e
No known key found for this signature in database
GPG key ID: DD129E108BD09378
6 changed files with 24 additions and 6 deletions

View file

@ -21,6 +21,7 @@
#include "core/3ds.h"
#include "core/core.h"
#include "core/frontend/scope_acquire_context.h"
#include "core/perf_stats.h"
#include "core/settings.h"
#include "input_common/keyboard.h"
#include "input_common/main.h"
@ -55,6 +56,13 @@ void EmuThread::run() {
emit LoadProgress(VideoCore::LoadCallbackStage::Complete, 0, 0);
if (Core::System::GetInstance().frame_limiter.IsFrameAdvancing()) {
// Usually the loading screen is hidden after the first frame is drawn. In this case
// we hide it immediately as we need to wait for user input to start the emulation.
emit HideLoadingScreen();
Core::System::GetInstance().frame_limiter.WaitOnce();
}
// Holds whether the cpu was running during the last iteration,
// so that the DebugModeLeft signal can be emitted before the
// next execution step.