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 |
# 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
- Zero external deps —
TROPHYParser,BigEndianTool,pfdtoolall vendored in/vendor - Smart import — Matches by trophy ID, falls back to name, preserves existing timestamps
- 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-arm64Note:
pfdtool(PFD encryption/decryption) is Windows-only. On macOS/Linux the app launches but decryption/encryption won't work unless you provide a cross-platform alternative or run the Windows binary via Wine.
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 changelog from commits, attaches artifacts to the release.
TrophyPrompt/
├── Views/ # MainWindow, dialogs, wave animation
├── ViewModels/ # Main logic: open/save/export/import, row editing
├── Models/ # TrophyDto, ExportRootDto (with system prompt)
├── Core/ # TrophyUtility — pfdtool calls, temp folder handling
├── vendor/
│ ├── TROPHYParser/ # PS3 trophy parsing
│ ├── BigEndianTool/ # Big-endian binary I/O
│ └── pfdtool/ # Native PFD crypto (Windows exe + configs)
└── TrophyPrompt.sln
Help is welcome — seriously. This is a niche tool and every PR matters.
Good places to start:
- Cross-platform
pfdtoolalternative (biggest gap — see note above) - Linux/macOS packaging (AppImage, DMG, Flatpak)
- Unit tests for the parser layer
- UI polish / accessibility improvements
Quick contributing flow:
- Fork → branch → PR
dotnet buildanddotnet formatmust pass- Describe the change; screenshots for UI work
See CONTRIBUTING.md if it exists, otherwise just open a PR.
MIT License — see LICENSE for details.
- Original PS3 trophy parsing logic: PS3TrophyIsGood by darkautism
pfdtoolby flatz (included in/vendor/pfdtool)- 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.

