Edit PS3 trophy timestamps without the headache. Open a trophy folder, export to JSON, let an LLM generate realistic unlock times, import back, save. Done.
Built with Avalonia 11 on .NET 8. Ported from PS3TrophyIsGood.
PS3 trophy timestamps are stored in encrypted PFD files. Editing them manually is painful. TrophyPrompt makes it boringly simple:
| Step | What you do |
|---|---|
| 1. Open | Pick a trophy folder (e.g. NPWR03468_00) β app decrypts TROPTRNS.DAT / TROPUSR.DAT |
| 2. Export | Get a JSON file with game title, title ID, account ID, full trophy list, and a system prompt |
| 3. Generate | Paste JSON into Claude/GPT β get back realistic, chronological timestamps |
| 4. Import | Matches by trophy ID (falls back to name), applies unlocks + times |
| 5. Save | Re-encrypts and re-signs the PFD |
β¬οΈ Download for Windows / macOS / Linux Β· no install, single file
| Source | Path |
|---|---|
| RPCS3 (emulator) | <RPCS3>/dev_hdd0/home/00000001/trophy/NPWRxxxxx_00 β turn on RPCS3 format in the app |
| Real PS3 (via FTP / USB) | /dev_hdd0/home/<user-id>/trophy/NPWRxxxxx_00 |
Pick (or drag-and-drop) the whole NPWRxxxxx_00 folder onto the window.
- Automatic backup β before the first save of a session, the original encrypted files are copied to
%LOCALAPPDATA%/TrophyPrompt/backups/(~/.local/share/...on Linux,~/Library/Application Support/...on macOS). To undo, copy that folder back. - Edits happen on a temp copy β your folder is only written when you press Save, and only if re-signing succeeded.
- PSN-synced trophies are read-only β anything already synced can't be changed or moved before the last sync time.
- Everything is local β no network calls, accounts, or telemetry.
# Clone & build
git clone https://github.com/TYFALY/TrophyPrompt.git
cd TrophyPrompt
dotnet build TrophyPrompt.sln -c Release
# Run
dotnet run --project TrophyPrompt.csproj -c ReleasePrefer a standalone executable? Grab the latest from Releases β single file, no .NET install needed.
- Cross-platform β Windows, macOS (Intel + Apple Silicon), Linux β native everywhere, no Wine
- Zero external deps β
TROPHYParser,BigEndianTool,pfdtoolall vendored in/vendor - Smart import β Matches by trophy ID, falls back to name, applies the platinum last, and lists anything it had to reject
- Drag & drop β Drop a trophy folder on the window to open it
- Keyboard shortcuts β
Ctrl+Oopen Β·Ctrl+Ssave Β·Ctrl+Eexport JSON Β·Ctrl+Iimport JSON Β·Ctrl+Wclose - LLM-ready export β JSON includes system prompt that enforces chronological order, platinum last
- Batch toolbar β Edit multiple trophies at once
- Animated wave header β Because life's too short for boring UIs
Requires .NET 8 SDK. All dependencies vendored β no sibling checkouts needed.
# Standard build (current platform)
dotnet build TrophyPrompt.sln -c Release
# Single-file self-contained executables
dotnet publish TrophyPrompt.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -o ./publish/win-x64
dotnet publish TrophyPrompt.csproj -c Release -r linux-x64 --self-contained true -p:PublishSingleFile=true -o ./publish/linux-x64
dotnet publish TrophyPrompt.csproj -c Release -r osx-x64 --self-contained true -p:PublishSingleFile=true -o ./publish/osx-x64
dotnet publish TrophyPrompt.csproj -c Release -r osx-arm64 --self-contained true -p:PublishSingleFile=true -o ./publish/osx-arm64macOS / Linux from source: PFD decrypt/encrypt uses a native
pfdtoolbuilt from bucanero/pfd_sfo_tools. Build it once beforedotnet build(needsgit,make, andzigorpip install ziglang):sh scripts/build-pfdtool.shRelease downloads already include it. Windows uses the bundled
pfdtool.exe.
| Problem | Fix |
|---|---|
| "pfdtool failed β¦ Visual C++" | Install the Microsoft Visual C++ 2010 x86 redistributable. |
| "TROPCONF.SFM was not found" | You picked the wrong folder β choose the NPWRxxxxx_00 folder itself, not its parent. |
| RPCS3 folder opens with garbage names | Toggle RPCS3 format and reopen. |
| Platinum won't unlock | Every base-game trophy has to be unlocked first. |
| Can't change a trophy | It's already synced with PSN, or the new time is before the last sync. |
| macOS says the app or pfdtool "can't be opened" | Run xattr -dr com.apple.quarantine <extracted folder> once. |
| Something else | Check debug.log next to the executable and open an issue. |
Push a semver tag β GitHub Actions handles the rest:
git tag v1.0.0
git push origin v1.0.0Pipeline builds all four platforms, packages as .tar.gz (Unix) / .zip (Windows), generates release notes, and attaches the artifacts plus SHA256SUMS.txt.
TrophyPrompt/
βββ Views/ # MainWindow, dialogs, wave animation
βββ ViewModels/ # Main logic: open/save/export/import, row editing
βββ Models/ # TrophyDto, ExportRootDto (with system prompt)
βββ Core/ # TrophyUtility (pfdtool, temp + backups), ImportOrder, CsvField
βββ vendor/
β βββ TROPHYParser/ # PS3 trophy parsing
β βββ BigEndianTool/ # Big-endian binary I/O
β βββ pfdtool/ # PFD crypto: Windows exe + configs (macOS/Linux build via scripts/)
βββ scripts/ # build-pfdtool.sh β native pfdtool for macOS/Linux
βββ tests/ # xUnit tests (run with `dotnet test`)
βββ TrophyPrompt.sln
Help is welcome β seriously. This is a niche tool and every PR matters.
Good places to start:
- Testing open/save on macOS and Linux with real trophy folders
- A pure C# replacement for
pfdtool(drops the native binaries entirely) - Linux/macOS packaging (AppImage, DMG, Flatpak)
- Unit tests for the parser layer (
vendor/TROPHYParser) β a starter suite lives intests/ - UI polish / accessibility improvements
Quick contributing flow:
- Fork β branch β PR
dotnet build,dotnet testanddotnet formatmust pass- Describe the change; screenshots for UI work
See CONTRIBUTING.md for details.
β If TrophyPrompt saved you time, star the repo β it's the main way other trophy hunters find it.
MIT License β see LICENSE. Bundled third-party components and their licenses are listed in THIRD_PARTY_NOTICES.md.
- Original PS3 trophy parsing logic: PS3TrophyIsGood by darkautism
pfdtoolby flatz (included in/vendor/pfdtool); macOS/Linux port by bucanero- Avalonia UI framework
- CommunityToolkit.Mvvm, Newtonsoft.Json, SkiaSharp, HarfBuzzSharp
Only mess with trophy folders you own. PlayStation is a trademark of Sony; this project is not affiliated with or endorsed by them.

