Cross-platform PS2 .psu save archive manager (wxWidgets)
- C++ 93.6%
- CMake 5.1%
- C 1.3%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
That action isn't available: this runner mirrors marketplace actions through data.forgejo.org, which returned "Not found" for it. vswhere + vcvarsall.bat achieves the same PATH setup without depending on a marketplace action. Co-Authored-By: Claude Sonnet 5 <[email protected]> |
||
| .forgejo/workflows | ||
| installer/windows | ||
| src | ||
| .gitignore | ||
| CMakeLists.txt | ||
| LICENSE | ||
| README.md | ||
PSU Manager
Create and extract PlayStation 2 .psu save archives.
Project layout
| Path | What |
|---|---|
src/core |
.psu read/write, no UI dependency. Unit-tested in src/core/tests. |
src/gui |
The wxWidgets PSUManager executable (also handles CLI actions used by the Explorer verbs below). |
src/cli |
Argument parsing for the Explorer-verb / file-association entry points. |
src/platform/win/shellext |
The IExplorerCommand shell extension backing the "PSU Manager" context-menu flyout. |
src/platform/linux |
.desktop and shared-mime-info files for file association. |
installer/windows |
WiX v5 source producing the Windows .msi. |
Building
Requires CMake 3.21+ and a C++17 compiler.
Windows
Uses the Ninja generator, which needs the MSVC toolchain on PATH -
run from a "x64 Native Tools Command Prompt for VS" (or after calling
vcvarsall.bat x64) rather than a plain shell.
vcpkg install wxwidgets:x64-windows
cmake -S . -B build -G Ninja -DCMAKE_TOOLCHAIN_FILE=<vcpkg-root>/scripts/buildsystems/vcpkg.cmake -DCMAKE_BUILD_TYPE=Release
cmake --build build
Produces PSUManager.exe, PSUManagerShellExt.dll, and psu-core-tests.exe
under build/src/*.
Linux
sudo apt install libwxgtk3.2-dev # or the equivalent wxGTK 3.2 dev package for your distro
cmake -S . -B build
cmake --build build
cmake --install build --prefix /usr/local
The install step also registers the .desktop entry and
application/x-ps2-save-psu mime type under the chosen prefix.
Tests
ctest --test-dir build --output-on-failure
Windows installer
cd installer/windows
dotnet tool install --global wix
wix build PSUManager.wxs -arch x64 -o PSUManager.msi ^
-d PSUManagerExePath=..\..\build\src\gui\PSUManager.exe ^
-d PSUManagerShellExtPath=..\..\build\src\platform\win\shellext\PSUManagerShellExt.dll ^
-d RuntimeDir=..\..\build\src\gui
RuntimeDir must contain the wxWidgets/image-codec DLLs vcpkg copies next to
PSUManager.exe at build time - if vcpkg's wxwidgets dependency set
changes, re-run a Release build and update the RuntimeFiles components in
PSUManager.wxs to match.
Known gaps
- Linux packaging (
.desktop/mime install, the AppImage/.deb/tarball release job) was written to spec but not exercised on an actual Linux machine or Forgejo runner. - Windows 11's default (non-"Show more options") context menu requires package identity (MSIX packaging or a registered sparse package) for a third-party entry to appear there - a platform requirement this project doesn't currently meet, so the "PSU Manager" flyout lives under "Show more options" like most classic Win32 tools.
- "Open" extracts an entry to a temp file and launches it with the OS default handler, but doesn't watch for edits or offer to write changes back into the archive.