Skip to content

About

A modern .NET 8 & Avalonia 11 tool for modifying PS3 trophy sets and exporting context-aware, LLM-ready JSON payloads for realistic timestamp generation.

Topics

Resources

Contributing

Security policy

Stars

4 stars

Watchers

0 watching

Forks

Repository files navigation

BannerLogo

πŸ† TrophyPrompt

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.

Latest release Downloads Stars Build Release License: MIT .NET 8 Avalonia 11

Built with Avalonia 11 on .NET 8. Ported from PS3TrophyIsGood.


Why this exists

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
TrophyPrompt UI

Where are my trophy files?

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.

Safe by default

  • 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.

Quick Start (60 seconds)

# 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 Release

Prefer a standalone executable? Grab the latest from Releases β€” single file, no .NET install needed.


Features

  • Cross-platform β€” Windows, macOS (Intel + Apple Silicon), Linux β€” native everywhere, no Wine
  • Zero external deps β€” TROPHYParser, BigEndianTool, pfdtool all 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+O open Β· Ctrl+S save Β· Ctrl+E export JSON Β· Ctrl+I import JSON Β· Ctrl+W close
  • 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

Building from source

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-arm64

macOS / Linux from source: PFD decrypt/encrypt uses a native pfdtool built from bucanero/pfd_sfo_tools. Build it once before dotnet build (needs git, make, and zig or pip install ziglang):

sh scripts/build-pfdtool.sh

Release downloads already include it. Windows uses the bundled pfdtool.exe.


Troubleshooting

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.

Automated Releases

Push a semver tag β€” GitHub Actions handles the rest:

git tag v1.0.0
git push origin v1.0.0

Pipeline builds all four platforms, packages as .tar.gz (Unix) / .zip (Windows), generates release notes, and attaches the artifacts plus SHA256SUMS.txt.


Project Structure

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

Contributing

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 in tests/
  • UI polish / accessibility improvements

Quick contributing flow:

  1. Fork β†’ branch β†’ PR
  2. dotnet build, dotnet test and dotnet format must pass
  3. 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.


License & Credits

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
  • pfdtool by 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.

About

A modern .NET 8 & Avalonia 11 tool for modifying PS3 trophy sets and exporting context-aware, LLM-ready JSON payloads for realistic timestamp generation.

Topics

Resources

Contributing

Security policy

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages