v4.2.0-beta-2: PS3 folders and one-step CSO→CHD
Second beta of 4.2.0. No functional changes from beta-1 — this re-cut rolls up a docs sync (README, AGENTS, and the design docs now cover the PS3 ISO tool and the CSO→CHD chain). The features are unchanged: the first tool that takes a folder instead of a file, and the first conversion that chains two tools into one job. This rolls up everything since 4.1.0.
This is a pre-release. If you want the stable cut, stay on v4.1.0.
What's new
PS3 ISO: pack a decrypted folder into a .iso
A new PS3 ISO tool takes a folder you've already decrypted (a PS3_GAME/ root, plus PS3_DISC.SFB for disc rips) and packages it into a single .iso that RPCS3 mounts directly, using makeps3iso.
This is the first conversion whose input is a folder, not a file. Browse to or search for a PS3 folder, switch to the PS3 ISO tool, and the folder becomes selectable like any source row. The output is <folder>.iso next to the source, or in your chosen output directory. After a build it does a light PARAM.SFO TITLE_ID readback from the produced ISO and flags a mismatch in the job message.
Decryption and keys are out of scope. This only repackages folders you already decrypted, and it never deletes the source folder.
Optional 4 GB split for FAT32
FAT32 can't hold a single file over 4 GB, so most PS3 discs won't fit as one .iso. A per-job Split into 4 GB parts (FAT32) toggle runs makeps3iso with -s, so an image over ~4 GB is written as Game.iso.0, Game.iso.1, and so on (RPCS3 mounts the .0). A title under 4 GB still produces a single file. The file browser folds a split set into one entry: it shows Game.iso with the combined size and a part count, not a row per chunk. Default off, since ext4/NTFS/exFAT targets don't need it.
Folder builds are protected while they run
While a PS3 folder is being built into an ISO, its whole subtree is locked. A per-file job that was already queued and whose input or output lands inside that folder is deferred, re-queued and retried once the folder build finishes, instead of failing. A new request submitted mid-build is rejected up front like any output collision (HTTP 409 for a single job, skipped in a batch). Rename and delete inside an in-flight folder are blocked too, and every subtree check resolves symlinks so a symlinked path can't slip past.
CSO → CHD in one step
A new Convert to CHD mode on the CSO tool runs the full PSP/PS2 pipeline in one job: maxcso decompresses the .cso/.zso/.dax to a temporary .iso, then chdman packages that to a .chd. PPSSPP, PCSX2, and RetroArch read the result. The intermediate .iso lives in a private temp dir and is cleaned up automatically, so only the source and the final .chd remain.
Delete-on-verify works end to end: the original .cso is removed only after the final .chd passes chdman verification. Disc-ID GAME/NAME tags are embedded into the CHD just like a direct Create DVD.
Notes
- The makeps3iso binary (GPL-3.0,
bucanero/ps3iso-utils, pinned commit) is built unmodified in the Docker image, mirroring maxcso, and builds on both linux/amd64 and linux/arm64. - Both new features are in the Web UI and the REST API, with live progress and verify.
- The full per-PR notes are in
docs/RELEASE_NOTES.md.