Only start the playtime clock if it makes sense

This commit is contained in:
Megamouse 2020-02-07 21:55:29 +01:00
parent 54da9ac7e5
commit 901fc87bca
9 changed files with 35 additions and 23 deletions

View file

@ -638,7 +638,7 @@ bool Emulator::BootRsxCapture(const std::string& path)
Emu.GetCallbacks().init_gs_render();
Emu.GetCallbacks().init_pad_handler("");
GetCallbacks().on_run();
GetCallbacks().on_run(false);
m_state = system_state::running;
g_fxo->init<named_thread<rsx::rsx_replay_thread>>("RSX Replay"sv, std::move(frame));
@ -1080,7 +1080,7 @@ void Emulator::Load(const std::string& title_id, bool add_only, bool force_globa
GetCallbacks().on_ready();
vm::init();
g_fxo->init();
Run();
Run(false);
m_force_boot = false;
// Force LLVM recompiler
@ -1619,7 +1619,7 @@ void Emulator::Load(const std::string& title_id, bool add_only, bool force_globa
if ((m_force_boot || g_cfg.misc.autostart) && IsReady())
{
Run();
Run(true);
m_force_boot = false;
}
else if (IsPaused())
@ -1635,15 +1635,22 @@ void Emulator::Load(const std::string& title_id, bool add_only, bool force_globa
}
}
void Emulator::Run()
void Emulator::Run(bool start_playtime)
{
if (!IsReady())
{
Load();
if(!IsReady()) return;
if (!IsReady())
{
return;
}
}
if (IsRunning()) Stop();
if (IsRunning())
{
Stop();
}
if (IsPaused())
{
@ -1651,7 +1658,7 @@ void Emulator::Run()
return;
}
GetCallbacks().on_run();
GetCallbacks().on_run(start_playtime);
m_pause_start_time = 0;
m_pause_amend_time = 0;