Permalink
Browse files

Qt/NetPlayDialog: Request game stop when core enters stopping state

This makes it possible to gracefully force stop emulation rather than
having to kill Dolphin completely when NetPlay deadlocks in the input
loop. Without a graceful stop, Wii saves do not get flushed to the main
NAND, and are left in limbo in the temporary NAND.
  • Loading branch information...
Techjar committed Nov 30, 2018
1 parent baecc50 commit 9c51439144e033a314ca6a042cf452b90028a364
Showing with 5 additions and 3 deletions.
  1. +5 −3 Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp
@@ -338,6 +338,11 @@ void NetPlayDialog::ConnectWidgets()
if (isVisible())
{
GameStatusChanged(state != Core::State::Uninitialized);
if ((state == Core::State::Uninitialized || state == Core::State::Stopping) &&
!m_got_stop_request)
{
Settings::Instance().GetNetPlayClient()->RequestStopGame();
}
if (state == Core::State::Uninitialized)
DisplayMessage(tr("Stopped game"), "red");
}
@@ -808,9 +813,6 @@ void NetPlayDialog::OnMsgChangeGame(const std::string& title)
void NetPlayDialog::GameStatusChanged(bool running)
{
if (!running && !m_got_stop_request)
Settings::Instance().GetNetPlayClient()->RequestStopGame();
QueueOnObject(this, [this, running] { SetOptionsEnabled(!running); });
}

0 comments on commit 9c51439

Please sign in to comment.