summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLilly Jade Katrin <lilly.kitty.1988@gmail.com>2026-03-20 21:37:09 -0400
committerLilly Jade Katrin <lilly.kitty.1988@gmail.com>2026-03-20 21:42:05 -0400
commit529b696fcbce385beb89aeb47bb479eeb15b558c (patch)
tree63b626d3e77e3efde4c29d1c0364615ac21b0c5a
parent12935d5b2563e0443210737855f958323575afe5 (diff)
Remove AchievementManager ChangeDisc call from Eject
This was causing the achievement runtime to shutdown in the middle of a disc change even if the resulting disc was valid, which was causing achievements like the ones in Resident Evil for completing the entire game in a single session to break midway through. Also adds a log to notify the user when the disc change is invalid (e.g. different game inserted).
-rw-r--r--Source/Core/Core/AchievementManager.cpp2
-rw-r--r--Source/Core/Core/HW/DVD/DVDInterface.cpp1
2 files changed, 2 insertions, 1 deletions
diff --git a/Source/Core/Core/AchievementManager.cpp b/Source/Core/Core/AchievementManager.cpp
index a88fb463e1..ab9974f2cd 100644
--- a/Source/Core/Core/AchievementManager.cpp
+++ b/Source/Core/Core/AchievementManager.cpp
@@ -168,6 +168,8 @@ void AchievementManager::LoadGame(const DiscIO::Volume* volume)
WARN_LOG_FMT(ACHIEVEMENTS, "Software format unsupported by AchievementManager.");
if (rc_client_get_game_info(m_client))
{
+ OSD::AddMessage("Unsupported media change; disabling achievements.", OSD::Duration::VERY_LONG,
+ OSD::Color::RED);
CloseGame();
}
else
diff --git a/Source/Core/Core/HW/DVD/DVDInterface.cpp b/Source/Core/Core/HW/DVD/DVDInterface.cpp
index 376aeb4add..640023344e 100644
--- a/Source/Core/Core/HW/DVD/DVDInterface.cpp
+++ b/Source/Core/Core/HW/DVD/DVDInterface.cpp
@@ -442,7 +442,6 @@ void DVDInterface::AutoChangeDiscCallback(Core::System& system, u64 userdata, s6
void DVDInterface::EjectDiscCallback(Core::System& system, u64 userdata, s64 cyclesLate)
{
- AchievementManager::GetInstance().ChangeDisc(nullptr);
system.GetDVDInterface().SetDisc(nullptr, {});
}