PC Game Pass Save File Converter

A couple of nights ago I noticed a game I own on Steam had the DLC available on PC Game Pass. I wanted to play this, but didn't want to start over.

As this community may know, the save files for games installed via the Xbox App for Windows are obtuse. I'm too stubborn to let that stop me and created a tool to move save files from the Xbox ecosystem out to game installed in other ways.

I'm here now for 2 reasons. One, to let everyone here know it exists. A quick search of this sub-reddit reveals several people asking for help moving save files for various games and sometimes being told it is not possible. This software will make it possible, although it may be not a straight forward as I would like right now (I'm working on it!).

The second reason is that I need more information about save file formats. I've gotten it to work for the game I intended it for, but there aren't a lot of games on Game Pass/I own on Xbox that I also own in a non-Xbox fashion. Here is a list of things that knowing would help improve the software immensely:

  • Game Package names - Within the Xbox folder structure each game is a "package" with a cryptic name that sometimes includes the name of the game (but sometimes not). The software includes a database of package names, but I need more games in it for it to be useful. If anyone knows how to extract the human readable name from the package that would be even better. I have discovered another open source utility that had code to pull UWP package information so this point as been resolved (and we will also have icons!). Shout out to Brian Lima on github for figuring that out.
  • Save File names/Structure - Save files are identified with a human readable string hidden in a metadata file. For the game I initially worked on this string was a file name so I could use that directly. Some games however don't have the same file names. For example in Forza Horizon 5, the Xbox version identifies a file as "ProfileData", but the non-Xbox version has this file in a folder as "User_XXXXXXXXXX.ProfileData". The next big feature to implement would be to translate these names automatically, but I need to add information to my database on how to translate it. A screenshot of your non-Xbox files and the files listed in the converter would go a long way towards filling in that data and figuring out how to implement this feature.

https://github.com/Fr33dan/GPSaveConverter/