diff --git a/rpcs3/Emu/Cell/Modules/sceNpTrophy.cpp b/rpcs3/Emu/Cell/Modules/sceNpTrophy.cpp index 45c78cafad..5495739697 100644 --- a/rpcs3/Emu/Cell/Modules/sceNpTrophy.cpp +++ b/rpcs3/Emu/Cell/Modules/sceNpTrophy.cpp @@ -232,12 +232,12 @@ error_code sceNpTrophyCreateContext(vm::ptr context, vm::cptr 0) + if (options > SCE_NP_TROPHY_OPTIONS_CREATE_CONTEXT_READ_ONLY) { return SCE_NP_TROPHY_ERROR_NOT_SUPPORTED; } @@ -253,8 +253,8 @@ error_code sceNpTrophyCreateContext(vm::ptr context, vm::cptrterm, commId->data, commId->num); if (commId->term) { - char trimchar[10] = { 0 }; - memcpy(trimchar, commId->data, sizeof(trimchar) - 1); + char trimchar[10]; + strcpy_trunc(trimchar, commId->data); deleteTerminateChar(trimchar, commId->term); name = fmt::format("%s_%02d", trimchar, commId->num); } diff --git a/rpcs3/Emu/Cell/Modules/sceNpTrophy.h b/rpcs3/Emu/Cell/Modules/sceNpTrophy.h index 0cb928a689..7ffefac8a2 100644 --- a/rpcs3/Emu/Cell/Modules/sceNpTrophy.h +++ b/rpcs3/Emu/Cell/Modules/sceNpTrophy.h @@ -76,6 +76,11 @@ enum SceNpTrophyGrade SCE_NP_TROPHY_GRADE_BRONZE = 4, }; +enum +{ + SCE_NP_TROPHY_OPTIONS_CREATE_CONTEXT_READ_ONLY = 1, +}; + struct SceNpTrophyGameDetails { be_t numTrophies;