diff options
| author | LillyJadeKatrin <lilly.kitty.1988@gmail.com> | 2025-05-17 08:12:43 -0400 |
|---|---|---|
| committer | LillyJadeKatrin <lilly.kitty.1988@gmail.com> | 2025-05-17 08:29:34 -0400 |
| commit | 137e50dc25d67879ebf2827e3fd5cc754d4d19d7 (patch) | |
| tree | a08b99531c51653acd4d3b2552dd1ea195fac4a5 | |
| parent | 88389146d3928da6ec9f5ba23055329eea22534b (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.
| -rw-r--r-- | Source/Core/Core/AchievementManager.cpp | 18 |
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; } |
