From 92e10f31eaadb64b96c73e0da23406c8565a0ed3 Mon Sep 17 00:00:00 2001 From: Vicki Pfau Date: Tue, 21 Jan 2025 00:50:34 -0800 Subject: [PATCH] Qt: Fix regression where loading BIOS creates a save file (fixes #3359) --- CHANGES | 1 + src/platform/qt/CoreController.cpp | 3 +++ src/platform/qt/CoreController.h | 2 ++ src/platform/qt/CoreManager.cpp | 1 + 4 files changed, 7 insertions(+) diff --git a/CHANGES b/CHANGES index b740f4657..a4057d775 100644 --- a/CHANGES +++ b/CHANGES @@ -32,6 +32,7 @@ Other fixes: - mGUI: Load parent directory if last used directory is missing (fixes mgba.io/i/3379) - Qt: Fix savestate preview sizes with different scales (fixes mgba.io/i/2560) - Qt: Fix potential crash when configuring shortcuts + - Qt: Fix regression where loading BIOS creates a save file (fixes mgba.io/i/3359) Misc: - Core: Handle relative paths for saves, screenshots, etc consistently (fixes mgba.io/i/2826) - Core: Improve rumble emulation by averaging state over entire frame (fixes mgba.io/i/3232) diff --git a/src/platform/qt/CoreController.cpp b/src/platform/qt/CoreController.cpp index 152efc222..53d5b3892 100644 --- a/src/platform/qt/CoreController.cpp +++ b/src/platform/qt/CoreController.cpp @@ -1267,6 +1267,9 @@ void CoreController::finishFrame() { } void CoreController::updatePlayerSave() { + if (m_saveBlocked) { + return; + } int savePlayerId = m_multiplayer->saveId(this); QString saveSuffix; diff --git a/src/platform/qt/CoreController.h b/src/platform/qt/CoreController.h index a2ebe410e..4de454d4b 100644 --- a/src/platform/qt/CoreController.h +++ b/src/platform/qt/CoreController.h @@ -176,6 +176,7 @@ public slots: void scanCards(const QStringList&); void replaceGame(const QString&); void yankPak(); + void blockSave() { m_saveBlocked = true; } void addKey(int key); void clearKey(int key); @@ -263,6 +264,7 @@ private: bool m_patched = false; bool m_preload = false; + bool m_saveBlocked = false; uint32_t m_crc32; QString m_internalTitle; diff --git a/src/platform/qt/CoreManager.cpp b/src/platform/qt/CoreManager.cpp index b2f7cabf0..385b3440b 100644 --- a/src/platform/qt/CoreManager.cpp +++ b/src/platform/qt/CoreManager.cpp @@ -169,6 +169,7 @@ CoreController* CoreManager::loadBIOS(int platform, const QString& path) { mDirectorySetAttachBase(&core->dirs, VDirOpen(bytes.constData())); CoreController* cc = new CoreController(core); + cc->blockSave(); if (m_multiplayer) { cc->setMultiplayerController(m_multiplayer); }