diff --git a/src/platform/qt/MultiplayerController.cpp b/src/platform/qt/MultiplayerController.cpp index 3b2146f7a..e95498fad 100644 --- a/src/platform/qt/MultiplayerController.cpp +++ b/src/platform/qt/MultiplayerController.cpp @@ -192,6 +192,9 @@ MultiplayerController::MultiplayerController() { MultiplayerController::~MultiplayerController() { mLockstepDeinit(&m_lockstep); + if (m_platform == mPLATFORM_GBA) { + GBASIOLockstepCoordinatorDeinit(&m_gbaCoordinator); + } } bool MultiplayerController::attachGame(CoreController* controller) { @@ -376,7 +379,7 @@ void MultiplayerController::detachGame(CoreController* controller) { if (p.attached) { GBASIOLockstepCoordinatorDetach(&m_gbaCoordinator, p.node.gba); } - delete p.node.gba->user; + delete reinterpret_cast(p.node.gba->user); delete p.node.gba; break; } @@ -417,6 +420,9 @@ void MultiplayerController::detachGame(CoreController* controller) { m_pids.remove(pid); if (m_pids.size() == 0) { + if (m_platform == mPLATFORM_GBA) { + GBASIOLockstepCoordinatorDeinit(&m_gbaCoordinator); + } m_platform = mPLATFORM_NONE; } else { fixOrder();