From 303b4c4ce2a676ae0af2506edd619db7ee79702e Mon Sep 17 00:00:00 2001 From: kalaposfos13 <153381648+kalaposfos13@users.noreply.github.com> Date: Thu, 27 Feb 2025 16:03:40 +0100 Subject: [PATCH] Correctly handle sceUserServiceGetLoginUserIdList Used by CUSA02366 --- src/core/libraries/system/userservice.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/core/libraries/system/userservice.cpp b/src/core/libraries/system/userservice.cpp index 4da46676d..87d6adf42 100644 --- a/src/core/libraries/system/userservice.cpp +++ b/src/core/libraries/system/userservice.cpp @@ -598,11 +598,14 @@ s32 PS4_SYSV_ABI sceUserServiceGetLoginUserIdList(OrbisUserServiceLoginUserIdLis return ORBIS_USER_SERVICE_ERROR_INVALID_ARGUMENT; } // TODO only first user, do the others as well - userIdList->user_id[0] = 1; - userIdList->user_id[1] = 2; - userIdList->user_id[2] = 3; - userIdList->user_id[3] = 4; - + int player_count = Config::GetNumberOfPlayers(); + for (int i = 0; i < 4; i++) { + if(i < player_count) { + userIdList->user_id[i] = i + 1; + } else { + userIdList->user_id[i] = ORBIS_USER_SERVICE_USER_ID_INVALID; + } + } return ORBIS_OK; } @@ -1073,7 +1076,7 @@ s32 PS4_SYSV_ABI sceUserServiceGetUserColor(int user_id, OrbisUserServiceUserCol LOG_ERROR(Lib_UserService, "color is null"); return ORBIS_USER_SERVICE_ERROR_INVALID_ARGUMENT; } - *color = OrbisUserServiceUserColor::Blue; + *color = (OrbisUserServiceUserColor)(user_id - 1); return ORBIS_OK; }