Proceeding the PS5Prxy Server App and recent PS4 Trophy Unlocker release, PlayStation 5 Scene developer KuromeSan (aka @SilicaAndPina and formerly SilicaAndPina and siliccan on Twitter) made available PS5TrophyExtract0r V1.0 to extract PS5 game decrypted NpTrophy v2 data files including Trophy00.ucp and uds00.ucp for examination.
Download: PS5TrophyExtract0r.exe / GIT
From the README.md and release notes: PS5TrophyExtract0r
Extracts NpTrophy v2 data files (trophy00.ucp) for PlayStation 5 games.
Can extract (decrypted) trophy00.ucp from PS5 Games
Also works on uds.ucp
Creds:
Technical information: Trophy00.ucp
PS5 uses a new 'NpTrophy V2', with a new trophy pack file to go along with it, previously on PS4/3/Vita they used "TRP" which contained PNG's and XML data, it still contains PNG, but now uses JSON to define trophies instead.
Table of Contents
Here I assume the TOC is at 0x40, because that's where it is in my sample of trophy00.ucp but technically it can be anywhere:
Contributors: SilicaAndPina
Download: PS5TrophyExtract0r.exe / GIT
From the README.md and release notes: PS5TrophyExtract0r
Extracts NpTrophy v2 data files (trophy00.ucp) for PlayStation 5 games.
Can extract (decrypted) trophy00.ucp from PS5 Games
Also works on uds.ucp
Creds:
- Thanks to Unity3D for leaking trophy data files lul
- Thanks to me (SilicaAndPina) for working out the format.
Technical information: Trophy00.ucp
PS5 uses a new 'NpTrophy V2', with a new trophy pack file to go along with it, previously on PS4/3/Vita they used "TRP" which contained PNG's and XML data, it still contains PNG, but now uses JSON to define trophies instead.
- uds00.ucp uses the exact same format!
offset | type | description |
0x00 | int32 | Magic Number |
0x04 | int32 | version |
0x13 | int32 | Number of Files |
0x17 | int32 | Location of Table of Contents |
0x20 | char[0x10] | HMAC? |
Table of Contents
Here I assume the TOC is at 0x40, because that's where it is in my sample of trophy00.ucp but technically it can be anywhere:
offset | type | description |
0x40 | char[0x10] | Reserved? (only on first entry) |
0x50 | char[0x10] | Reserved2 |
0x60 | char[0x20] | File Name |
0x80 | int64 (BIG ENDAIN) | File Location (Absolute) |
0x88 | int64 (BIG ENDAIN) | File Size |
0x90 | char[0x10] | Reserved3 |