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;