From c68f42e0ee73da4b2fd08fd3efd5fea741b014a4 Mon Sep 17 00:00:00 2001 From: RipleyTom Date: Tue, 5 Nov 2024 18:08:28 +0100 Subject: [PATCH] Fix sceNpScoreGetRankingByNpId when no score is registered --- rpcs3/Emu/NP/np_requests.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/rpcs3/Emu/NP/np_requests.cpp b/rpcs3/Emu/NP/np_requests.cpp index 4d4d01c812..fd4ae49532 100644 --- a/rpcs3/Emu/NP/np_requests.cpp +++ b/rpcs3/Emu/NP/np_requests.cpp @@ -1182,6 +1182,8 @@ namespace np vm::ptr rankArray = vm::static_ptr_cast(tdata->rankArray); vm::ptr rankArray_deprecated = vm::static_ptr_cast(tdata->rankArray); + u32 num_scores_registered = 0; + for (flatbuffers::uoffset_t i = 0; i < fb_rankarray->size(); i++) { const auto* fb_rankdata = fb_rankarray->Get(i); @@ -1190,6 +1192,8 @@ namespace np if (fb_rankdata->recordDate() == 0) continue; + num_scores_registered++; + if (tdata->player_rank_data) { if (tdata->deprecated) @@ -1262,7 +1266,7 @@ namespace np tdata->lastSortDate->tick = resp->lastSortDate(); *tdata->totalRecord = resp->totalRecord(); - if (fb_rankarray->size()) + if (num_scores_registered) score_trans->result = simple_result ? CELL_OK : not_an_error(fb_rankarray->size()); else score_trans->result = SCE_NP_COMMUNITY_SERVER_ERROR_GAME_RANKING_NOT_FOUND;