Skip to content

v1.2 - Fix PS4 conversions

Choose a tag to compare

@NeverCookFirst NeverCookFirst released this 27 Aug 17:04
· 6 commits to main since this release

Fixes shadPS4 -> xenia producing a blank save slot. If you converted from PS4, re-run it with this build.

What was wrong

The PS4 build inserts 8 zero bytes at payload offset 1080 of the GAME / V2GAME blob, shifting everything after it. DLC payloads are unaffected — which is exactly why only the main blob was 8 bytes longer than on the other platforms.

The converter copied that blob verbatim, so Xbox 360 received a structure shifted by 8 bytes from offset 1080 onward. The game could not read it, and showed a blank slot.

Found by aligning a PS3 GAME01 against a PS4 V2GAME01: they match byte for byte up to offset 1080, then diverge — and shifting the PS4 side by +8 realigns them for thousands of bytes, with the file tails matching exactly.

The fix

Payloads are normalised on read (gap removed for PS4 sources) and denormalised on write (gap re-inserted for PS4 targets), so everything else works on one canonical layout. If those 8 bytes are ever not zero, the tool says so instead of silently dropping data.

This also fixes a v1.1 regression where GAME01 length was taken from the source, coming out 8 bytes too long when converting from PS4. Legacy length now follows the save revision (100417 for version 13, 100381 for version 12).

Verified

Converted from PS4, the output now matches a real xenia save's file sizes exactly:

File Converted Real xenia save
GAME01 100,441 100,441
V2GAME01 308,069 308,069
DLC01 234,841 234,841
  • PS4 -> Xbox 360 -> PS4 round trip: all 32 files bit-identical
  • Wii U -> Xbox 360 -> Wii U round trip: all 32 files bit-identical

If a slot still shows up blank

Convert into a save slot the game itself created and keep its metadata. On xenia that means the .header file in Headers\ — a folder without one shows as a blank slot no matter how correct the save files are. The tool now says this in its log.