Jump to content

Save game file format?


Elodran

Recommended Posts

Anyone figured this out yet? I'm working on trying to map it out... I know that the Toolboks app can do some of it, but I haven't found any information out there on it.

 

I'm going to go through and create a bunch of baseline save game files and start finding the diffs. If anyone knows information on it, that would be great!

 

Thanks!

Link to comment
Share on other sites

Yeah, thanks. The problem is that data is either being encrypted or compressed and I'm trying to figure out how that is happening. Even doing a simple edit like changing a soldier's name from "Jorgen" to "Jorjen" results in many, many changes throughout the file.

 

The saved data is supposed to be in JSON format, but that's not the case... at least, not without being processed first.

Link to comment
Share on other sites

I think I've been able to run a savegame file through Gildor's Decompress app and it cleared up the hex file considerably. Even though it's not technically a "upk", the same decompression algorithms apply, which isn't terribly surprising.

 

However I didn't dig too much deeper than that.

Link to comment
Share on other sites

Yeah, I tried decompress.exe on a Windows VM but it just complained about it not being valid. I even tried pulling out some of the parts that I thought might just be fluff.

 

I'll keep poking about and report back if I find anything out.

Link to comment
Share on other sites

Try different compression/platform keys:

Unreal Engine package decompressor

Usage: decompress [options] <package filename>

 

Options:

-out=PATH extract everything into PATH, default is "unpacked"

-lzo|lzx|zlib force compression method for fully-compressed packages

 

Platform selection:

-ps3 override platform autodetection to PS3

 

For details and updates please visit http://www.gildor.org/

Link to comment
Share on other sites

I've tried those... it looks like there are 8 compressed sections within the saved game file. However, they each have a different header structure than the compressed UPK files do.

 

Example:

C1 83 2A 9E 00 00 02 00 6A 54 00 00 00 00 02 00 6A 54 00 00 00 00 02 00 09 69 63 5F

So instead of having the signature, 0x9E2A83C1 followed by the block-size, it has some of the information duplicated twice (00 00 02 00 6A 54 00 00). I haven't been able to manipulate any of them to get them to decompress successfully with decompress.exe.

 

Edit:

Also, the later your saves, the more of these sections you have. I have one near the end of the game that has 25 of these sections...

Edited by Elodran
Link to comment
Share on other sites

  • 4 weeks later...

Hi,

 

Sorry to resurrect this after almost a month. Hopefully you're still reading it.

 

In my spare time I've been working on an XCOM savegame explorer, so to speak. You can follow the research at this thread in the me3explorer forums. You'll have to read the whole thread to get a feel on progress, I haven't updated the first post. The second page has a bit more up to date info (most of the stuff in the first page I was wrong about), but I still have a long way to go.

 

In a few words, like Amineri and wghost81 have pointed out, the file is a bunch of chunks/blocks compressed in lzo1x format. Each chunk has a header with the signature you found (0x C1 83 2A 9E) and a list of decompressed and compressed sizes. Each block inside the each chunk should also have it's own header with compressed and decompressed size but, at least in the save I'm decoding, each chunk contains exactly one block so the sizes for chunk and block are all the same. We wrote a very simple quickbms script to decompress the blocks.

 

Once decompressed you can see what appears to be a bunch of lists (names, properties, etc...). I haven't been able to make much sense of them yet, although most are quite readable. At the end of the file there is another compressed save file. I'm assuming that since my save is in a map (tactical view), that mysterious file is the strategy view.

 

For now I am focusing on reading till the end of the file and make sure I can consistently do it for all saves. Then I'll start trying to figure things out. I have some C# code uploaded to sourceforge svn, with a GUI that outputs a few lists in readable format. It is private for now, but if you're a developer and are interested we could talk.

 

Finally, I know ToolBoks has save editing functionality, so likely bohauk knows more about this than I do. I should check with him too.

 

Cheers.

 

 

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...