Repository navigation
Releases: NeverCookFirst/DimensionsSaveConverter
Release list
v1.6 - Any console straight to Recomp
PS3, PS4 and Wii U saves now convert straight to Dimensions Recompiled. No more converting to Xbox 360 first.
- New slots work. A new recomp slot borrows its options files (OPTS01 / OPTSC01 / FEOPTS01) from another slot of the same profile. Before, a new slot got none, which is why only the Xbox 360 route worked.
- Your saves are safe by default. Another console's save goes into the first empty slot instead of quietly replacing
savegame_1. If all three slots are full, the tool asks which one to replace (and backs it up first). - No more hunting for your XUID folder. Pick the Dimensions Recompiled game folder as the output; the tool finds your profile by itself.
- Pre-filled when run from the game. Opened from
<game>\tools\SaveConverter, the output folder and the Recomp target are already set. - The slot picker shows what's in each slot (empty / has a save).
Recomp saves still convert the other way too: point the source at content\<profile>\5752084B\00000001\savegame_N and pick PS4, PS3, Wii U or Xbox 360.
Always back up your saves first. See READ ME FIRST.txt.
v1.5 - Recomp (ReXGlue) target
Converts an Xbox 360 save into a ReXGlue slot, container and all.
- New target: Recomp (ReXGlue). The save files themselves are unchanged - ReXGlue reads exactly what the Xbox 360 does - but the slot around them is different, and it is now written for you: the 328-byte slot header plus
<profile>\5752084B\00000001\<slot>andHeaders\00000001\<slot>.header. Nothing has to exist there first. - The slot keeps its name.
Game: 3is read out of xenia own STFS header, so the slot does not come up named after its folder. - ReXGlue slot picker to choose which slot to land in.
- Options files are never written into a recomp save - ReXGlue own build writes those, and another machine copies are what make Load Game show an empty slot.
- Fixed: options files were being dropped between platforms. Each one carries its own version, unrelated to the save revision, so they were failing the revision converter. Carrying settings between Wii U and Xbox 360 works again.
Aim at a slot ReXGlue has loaded before and copy the result in by merging, not by replacing the folder. A slot the recomp created but never committed a save to - made, then quit before the intro cutscenes finish - cannot be loaded at all; that is a recomp bug, not a converter one. Close the game before swapping files.
v1.4 - Wii U saves actually load, and saves are found for you
Converting a Wii U save to Xbox 360 used to load as a brand new game. Fixed, and verified in game.
- The save revision is now converted. Wii U writes revision 12, Xbox 360 / PS3 / PS4 write revision 13, and the game does not accept the wrong one - the slot comes up empty however correct the data is.
- Saves are found for you. Point the tool at a Cemu dump root, a title folder or the slot itself; it searches downwards on all four platforms.
GLOBAL0is picked up from theOPTIONSfolder next to the slot, and converting to Wii U writesSlot1\andOPTIONS\back in the shape Cemu expects.- A folder holding more than one save is refused, listing every save found with its platform and revision, instead of guessing which you meant.
- The app has an icon in the window, the taskbar and Explorer.
- README covers the Cemu layout and the EU title id (
0005000010195D00,WUP-U-APZP).
Verified: a real Cemu save converted to Xbox 360 matches a real xenia save in every file length and in structure, and loads in game with its progress intact. Xbox 360 -> Wii U -> Xbox 360, Wii U -> Wii U and Wii U -> PS4 -> Wii U all come back bit-identical.
Options files still cannot cross a revision or byte-order boundary; they are skipped with a note. Convert into a spare slot the game itself created.
v1.3 - Fix 64-bit fields in PS4 conversions
⚠ No guarantee — back up first
This tool comes with no guarantee that the saves it produces are stable or free of corruption. Use it at your own risk, and always keep a backup of any save you care about before touching it. Convert into a spare slot, never over your only copy.
The save format was reverse-engineered rather than documented. It is verified as far as it can be, but the game's field types are only known for the parts that real saves happened to exercise — and a bad conversion can look fine for hours of play before something turns out to be missing.
The PS4 fix
Anything converted to or from the PS4 before this release was wrong, even though it loaded.
The save payload is fixed little-endian on every platform, but a 64-bit field is written as two little-endian halves in the console's own word order — low half first on the PS4, high half first on the PowerPC consoles. So 0x00000000726DE363 is stored as:
Xbox 360 / PS3 / Wii U: 00 00 00 00 63 e3 6d 72
PS4: 63 e3 6d 72 00 00 00 00
The converter used to copy the payload across unchanged, which left every 64-bit value byte-reversed. The game does not reject such a file — it loads it and reads those fields as garbage. The save looked like it worked while the progress stored in them was silently gone: right level, right stud count, but the hub shown as never completed and every red brick locked.
Fixing it meant working out the save's record grammar — [u32 key][u32 size][body][u32 key], the key repeated as a terminator, bodies being either nested records or arrays of 24-byte { id, tag, u64, u64 } entries — and swapping the halves of the 64-bit slots.
Two guards keep the swap from doing harm:
- a slot is only swapped when exactly one half is zero, which is what a 64-bit value below 2^32 looks like, so opaque byte arrays whose length happens to be a multiple of 24 are never touched;
- entry id
0EEB6A85— the total stud counter — holds a 32-bit value where every other id holds a 64-bit one. Swapping it multiplied the player's studs by 2^32 (two million became nine quadrillion), so it is excluded.
Also fixed
GAMEis now written as a slice of the finished main file rather than rebuilt from the payload; a rebuild walks a truncated record stream and picks a different set of 64-bit fields. In a real saveGAMEis the exact byte prefix ofV2GAME.ZOPTSis recognised as the PS4 spelling ofOPTS, so it is no longer converted when options files are meant to be skipped. Options files are raw native-endian structs and are now skipped outright across a byte-order boundary rather than scrambling the target's settings.
Two things that will bite you if you skip them
- Convert the whole save, with every DLC file, and copy all of the results across. Progress is spread over them — each
DLCfile is one world. - The target slot must already contain a save the game itself made. Do not drop the converted folder in as a new slot. Create a save in a spare slot in-game, quit, then replace the files inside it. Per-slot metadata (the
.headerfile on Xbox 360,PARAM.SFOon PS3,sce_sys\on PS4,meta\on Wii U) is never written by this tool.
Full instructions are in READ ME FIRST.txt inside the download.
Verified
- A real Xbox 360 save run through Xbox 360 → PS4 → Xbox 360 comes back bit-identical, all 32 files.
- Round trip PS4 → Xbox 360 → PS4: likewise bit-identical.
- A PS4 save converted to Xbox 360 matches a real xenia save byte for byte on nine
DLCfiles, the rest differing only by the two players' actual progress. - That converted save was loaded and played under xenia: correct level, hub progress, red bricks and stud total.
v1.2 - Fix PS4 conversions
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.
v1.1 - Wii U (Cemu) support
Adds Wii U (Cemu) as a fourth platform, and stops assuming every save is version 13.
Wii U support
Cemu saves use the same 24-byte header, big-endian and exact-size just like Xbox 360 — but they number their files from zero. DLC0 is the same slot as DLC01 everywhere else, which is also why Wii U is missing DLC14 while the other three are missing DLC15. The main blob is V2GAME0 and options are OPTS0.
The signature rule
Reading the Wii U header revealed what sigA actually is: on the PowerPC consoles it is simply sigB + version. Confirmed across three revisions — version 13 gives 0x502C3F1D, version 12 gives 0x502C3F1C, version 1 gives 0x502C3F11. PS4 is the exception and keeps its own constant.
Save versions are now preserved, not assumed
The version is read from the source and carried through, and sigA is derived from it.
This matters because Wii U saves are version 12 while the other three are version 13, and the revisions genuinely differ: DLC payloads are 12 bytes shorter, GAME 36 shorter, V2GAME 764 longer. So this tool moves a save between platforms — it does not translate one save revision into another. A Wii U save converted to Xbox 360 arrives as a valid version 12 file.
The game is known to handle more than one revision (version 1 saves sit beside version 13 ones), but whether it accepts a version 12 save on another platform is untested — use a spare slot.
Converting a non-version-13 save to PS4 now warns, since the PS4 signature constant is only known for version 13.
Also
GAMEis still rebuilt from the main blob, but its length now follows the source when the source had one, since that length belongs to the save's own version.- README now answers the region question: EU vs US changes only the title ID folder name, never the file format. A save from an EU PS3 copy loaded fine on an NTSC-U Xbox 360 copy.
Verified
- Wii U -> Xbox 360 -> Wii U round trip: all 32 files bit-identical
- PS4 -> Xbox 360 -> PS4 round trip: still bit-identical (no regression)
- Output sizes match real xenia and RPCS3 saves byte for byte
v1.0 - Save Converter
Converts LEGO Dimensions saves between Xbox 360 (xenia), PS3 (RPCS3) and PS4 (shadPS4) — any direction, all files at once.
Download DimensionsSaveConverter.exe and run it. Nothing to install, no dependencies.
Point it at a save folder (the platform is detected automatically), pick the target platform and an output folder, press Convert. Then copy the result into a save slot the game itself created, so the slot metadata survives.
What it does
All three platforms use the same 24-byte header plus an opaque payload. Only three things differ: byte order (PS4 is little-endian), one signature dword, and PS3 padding files up to a 1 KiB boundary. The payload is byte-identical across platforms, so conversion is a header rewrite — the checksum carries over untouched and never needs recomputing.
GAME01 is literally the first N bytes of V2GAME01 sharing its checksum, so it is rebuilt for the target platform rather than copied at the source's length.
Verified
- Output sizes match real xenia and RPCS3 saves byte for byte
- Round trip PS4 → Xbox 360 → PS4 returns all 32 files bit-identical
- A save converted from RPCS3 was loaded by the game under xenia, which then wrote
V2GAME01back to it
Known limits
- The PS4 main blob is 8 bytes longer than the Xbox 360 one (308,053 vs 308,045). The converter preserves the source length rather than trimming — if a converted save fails to load, suspect this first.
- Options files are skipped by default (platform-specific sizes, no progress data). Checkbox available.
- Slot metadata is never generated — convert into an existing slot.
Existing files in the output folder are copied to a _backup_ subfolder before anything is overwritten.