From 18f8ed65880373e0065af66be31710eb91f9bfc7 Mon Sep 17 00:00:00 2001 From: Lilly Jade Katrin Date: Wed, 28 Jan 2026 18:16:53 -0500 Subject: [PATCH] RetroAchievements - Fix Aliases It turns out that it is possible to create a login alias in RetroAchievements such that you can log in with a username that doesn't match your display name. AchievementManager was treating this as a synchronization error, but this is desired behavior, so this removes the check. --- Source/Core/Core/AchievementManager.cpp | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/Source/Core/Core/AchievementManager.cpp b/Source/Core/Core/AchievementManager.cpp index 0e1ddde839c..d8f6c3bdc0c 100644 --- a/Source/Core/Core/AchievementManager.cpp +++ b/Source/Core/Core/AchievementManager.cpp @@ -931,22 +931,8 @@ void AchievementManager::LoginCallback(int result, const char* error_message, rc std::string config_username = Config::Get(Config::RA_USERNAME); if (config_username != user->username) { - if (Common::CaseInsensitiveEquals(config_username, user->username)) - { - INFO_LOG_FMT(ACHIEVEMENTS, - "Case mismatch between site {} and local {}; updating local config.", - user->username, Config::Get(Config::RA_USERNAME)); - Config::SetBaseOrCurrent(Config::RA_USERNAME, user->username); - } - else - { - INFO_LOG_FMT(ACHIEVEMENTS, "Attempted to login prior user {}; current user is {}.", - user->username, Config::Get(Config::RA_USERNAME)); - rc_client_logout(client); - instance.update_event.Trigger({.failed_login_code = RC_INVALID_STATE}); - instance.login_event.Trigger(RC_INVALID_STATE); - return; - } + INFO_LOG_FMT(ACHIEVEMENTS, "Username alias {} -> {}.", config_username, user->username); + Config::SetBaseOrCurrent(Config::RA_USERNAME, user->username); } instance.login_event.Trigger(RC_OK);