From 629eddfb9fd5fc5740b08deaf77965c1ec731044 Mon Sep 17 00:00:00 2001 From: Eladash Date: Thu, 6 Feb 2020 22:14:29 +0200 Subject: [PATCH] sceNpTrophy: Implement SCE_NP_TROPHY_ERROR_CONTEXT_NOT_REGISTERED --- rpcs3/Emu/Cell/Modules/sceNpTrophy.cpp | 36 ++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/rpcs3/Emu/Cell/Modules/sceNpTrophy.cpp b/rpcs3/Emu/Cell/Modules/sceNpTrophy.cpp index e96d643db4..dab38dba23 100644 --- a/rpcs3/Emu/Cell/Modules/sceNpTrophy.cpp +++ b/rpcs3/Emu/Cell/Modules/sceNpTrophy.cpp @@ -712,6 +712,12 @@ error_code sceNpTrophyGetGameInfo(u32 context, u32 handle, vm::ptrtropusr) + { + // TODO: May return SCE_NP_TROPHY_ERROR_UNKNOWN_TITLE for older sdk version + return SCE_NP_TROPHY_ERROR_CONTEXT_NOT_REGISTERED; + } + if (!details && !data) { return SCE_NP_TROPHY_ERROR_INVALID_ARGUMENT; @@ -818,6 +824,12 @@ error_code sceNpTrophyUnlockTrophy(u32 context, u32 handle, s32 trophyId, vm::pt return error; } + if (!ctxt->tropusr) + { + // TODO: May return SCE_NP_TROPHY_ERROR_UNKNOWN_TITLE for older sdk version + return SCE_NP_TROPHY_ERROR_CONTEXT_NOT_REGISTERED; + } + if (trophyId < 0 || trophyId >= static_cast(ctxt->tropusr->GetTrophiesCount())) { return SCE_NP_TROPHY_ERROR_INVALID_TROPHY_ID; @@ -898,6 +910,12 @@ error_code sceNpTrophyGetTrophyUnlockState(u32 context, u32 handle, vm::ptrtropusr) + { + // TODO: May return SCE_NP_TROPHY_ERROR_UNKNOWN_TITLE for older sdk version + return SCE_NP_TROPHY_ERROR_CONTEXT_NOT_REGISTERED; + } + const u32 count_ = ctxt->tropusr->GetTrophiesCount(); *count = count_; if (count_ > 128) @@ -949,6 +967,12 @@ error_code sceNpTrophyGetTrophyInfo(u32 context, u32 handle, s32 trophyId, vm::p return error; } + if (!ctxt->tropusr) + { + // TODO: May return SCE_NP_TROPHY_ERROR_UNKNOWN_TITLE for older sdk version + return SCE_NP_TROPHY_ERROR_CONTEXT_NOT_REGISTERED; + } + if (!details && !data) { return SCE_NP_TROPHY_ERROR_INVALID_ARGUMENT; @@ -1061,6 +1085,12 @@ error_code sceNpTrophyGetGameProgress(u32 context, u32 handle, vm::ptr perc return error; } + if (!ctxt->tropusr) + { + // TODO: May return SCE_NP_TROPHY_ERROR_UNKNOWN_TITLE for older sdk version + return SCE_NP_TROPHY_ERROR_CONTEXT_NOT_REGISTERED; + } + const u32 unlocked = ctxt->tropusr->GetUnlockedTrophiesCount(); const u32 trp_count = ctxt->tropusr->GetTrophiesCount(); @@ -1150,6 +1180,12 @@ error_code sceNpTrophyGetTrophyIcon(u32 context, u32 handle, s32 trophyId, vm::p return SCE_NP_TROPHY_ERROR_INVALID_ARGUMENT; } + if (!ctxt->tropusr) + { + // TODO: May return SCE_NP_TROPHY_ERROR_UNKNOWN_TITLE for older sdk version + return SCE_NP_TROPHY_ERROR_CONTEXT_NOT_REGISTERED; + } + if (ctxt->tropusr->GetTrophiesCount() <= static_cast(trophyId)) { return SCE_NP_TROPHY_ERROR_INVALID_TROPHY_ID;