summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorLillyJadeKatrin <lilly.kitty.1988@gmail.com>2025-05-17 08:12:43 -0400
committerLillyJadeKatrin <lilly.kitty.1988@gmail.com>2025-05-17 08:29:34 -0400
commit137e50dc25d67879ebf2827e3fd5cc754d4d19d7 (patch)
treea08b99531c51653acd4d3b2552dd1ea195fac4a5 /Source
parent88389146d3928da6ec9f5ba23055329eea22534b (diff)
AchievementManager: Remove CloseGame from LoadGameCallback
This was causing deadlocks when a game didn't load (including if RetroAchievements does not yet support it) because it was attempting to close the queue the the callback was currently running on, forcing LoadGameCallback to wait for LoadGameCallback to finish. However, it appears that recent changes to the queue have independently resolved the reason CloseGame was being called here in the first place.
Diffstat (limited to 'Source')
-rw-r--r--Source/Core/Core/AchievementManager.cpp18
1 files changed, 9 insertions, 9 deletions
diff --git a/Source/Core/Core/AchievementManager.cpp b/Source/Core/Core/AchievementManager.cpp
index b6fc4e0cc3..dba87f2864 100644
--- a/Source/Core/Core/AchievementManager.cpp
+++ b/Source/Core/Core/AchievementManager.cpp
@@ -994,22 +994,22 @@ void AchievementManager::LoadGameCallback(int result, const char* error_message,
OSD::Duration::VERY_LONG, OSD::Color::RED);
OSD::AddMessage("Please update Dolphin to a newer version.", OSD::Duration::VERY_LONG,
OSD::Color::RED);
- instance.CloseGame();
return;
}
+ if (result == RC_NO_GAME_LOADED && instance.m_dll_found)
+ {
+ // Allow developer tools for unidentified games
+ rc_client_set_read_memory_function(instance.m_client, MemoryPeeker);
+ instance.m_system.store(&Core::System::GetInstance(), std::memory_order_release);
+ WARN_LOG_FMT(ACHIEVEMENTS, "Unrecognized title ready for development.");
+ OSD::AddMessage("Unrecognized title loaded for development.", OSD::Duration::VERY_LONG,
+ OSD::Color::YELLOW);
+ }
if (result != RC_OK)
{
WARN_LOG_FMT(ACHIEVEMENTS, "Failed to load data for current game.");
OSD::AddMessage("Achievements are not supported for this title.", OSD::Duration::VERY_LONG,
OSD::Color::RED);
- if (instance.m_dll_found && result == RC_NO_GAME_LOADED)
- {
- // Allow developer tools for unidentified games
- rc_client_set_read_memory_function(instance.m_client, MemoryPeeker);
- instance.m_system.store(&Core::System::GetInstance(), std::memory_order_release);
- return;
- }
- instance.CloseGame();
return;
}