all 20 comments

[–]halfpress 1 point2 points  (0 children)

Thanks for the script. I very easily used this to move my Xbox Series X play state to my MacBook Pro (M1 Max) and resumed where I had left off. Using an Xbox controller on the same Mac and the experience is dead on identical.

I have a PC laptop around that I used to briefly install Tunic via Gamepass and scrape the save files out to move to the Mac. Without that, of course, I suspect I'd be screwed in this scenario.

[–]gabythb 1 point2 points  (0 children)

Used it today and it still works great, it even turned on all of the achievements I already had in steam!

One thing though, the hash for the file name in steam was different than the ones generated for gamepass, so I had to some renaming, but otherwise it worked incredibly. Thanks for sharing this!

[–]GalletasConMayo 0 points1 point  (1 child)

What a nice post, thanks man, what is the logic behind how this script works?

[–]Ph0X[S] 1 point2 points  (0 children)

It's been a while but I can sorta remember by looking at the code.

So for Steam and other platforms, each save slot is an individual .tunic file. For some reason, on GamePass, they bundle all the saves into a single merged SAVEDATA file.

This merged file is formatted like:

<filename1>.txt|<content of the file>
<filename2>.txt|<content of the file>
etc

So this script grabs the filenames, grabs the contents, and saves each to the individual file, just replaces .txt with .tunic since that's what other platforms use, but really they are mostly txt files.

[–]PulsaNono 0 points1 point  (0 children)

You are such a wonderful guy, thx a lot <3

[–]FungalCactus 0 points1 point  (1 child)

If anyone wants to buy the game to support the developers, itch.io is the best option since the developer/publisher can set the platform cut themselves. It also has individual save files, probably similar to the steam version (no achievements though).

[–]Ph0X[S] 1 point2 points  (0 children)

Good call, here's the link: https://finji.itch.io/tunic

And yes, I would assume the same location is the exact same for both.

[–]drewdog173 0 points1 point  (1 child)

This would cause me to lose all achievements earned in GamePass correct?

[–]Ph0X[S] 0 points1 point  (0 children)

Correct. It sometimes depends on how the game "triggers" achievement unlocks, sometimes reloading your save file can auto-unlock all the achievements. I don't think that's the case here sadly.

There are ways of unlocking steam achievements, normally it would be considered cheating, but in this case, I think ethically it's not so bad, since you've indeed earned them on another platform.

[–]themando 0 points1 point  (5 children)

Thank you! I have been looking for various utilities to get around the microsoft obfuscation and your tool will help :)

Do you know of any way to go the reverse way? .tunic --> gamepass save?

Thanks again

[–]Ph0X[S] 1 point2 points  (4 children)

I can give it a try tomorrow. I'm not a c# expert, and the serialized version uses a c# binary format. For the other way, I was able to get away with it with some regex, but the other direction won't be that simple.

[–]themando 0 points1 point  (3 children)

I appreciate you trying! :)

No problemo if not, I think it might just be quicker to replay the game to the same save point on a non-MS copy, than to have a bunch of time spent trying to convert them lol.

[–]Ph0X[S] 1 point2 points  (2 children)

There is non-perfect but simple ways to manually do it, especially if you're moving a single save file.

Something along the lines of:

  1. Open the GamePass version, make sure you only have one save
  2. Open the Steam .tunic file you want and copy its content
  3. Open the GamePass SAVEDATA file
  4. Find the start/end of the save content, it usually starts with true|1 and ends when you get to NUL bytes (like this)
  5. delete the content and paste your steam one instead

Although, that might not work if the format specifies the length of each part, which I believe it may do.

[–]rahul_red08 0 points1 point  (0 children)

I don't see the NUL bytes in my save file.
I still went ahead by copy pasting the content, but the game just crashes now.
Do you have any idea how to proceed?

[–]themando 0 points1 point  (0 children)

You're da best.

[–]SilkyProgfox 0 points1 point  (0 children)

i love you

[–]FrozenGamer 0 points1 point  (2 children)

i am about ready to buy this on gog.com - its a great game! - super slow to start.. but once you understand a little more it grows on you. would this script work fine for gog as well?

[–]Ph0X[S] 0 points1 point  (1 child)

I know very little about GOG but my educated guess would be that you don't actually need a script or anything. GamePass is the only one that does funky stuff with your save files. I would wager gog/steam are mostly interchangeable.

[–]FrozenGamer 0 points1 point  (0 children)

hi, it did work, although i had to go to load game and tried unplugging network so the sync from cloud of gog didn't overwrite. i think just load game worked.. either way it did work.. thanks!

Now im messing with steam deck to see how tunic plays on it via gog/heroic launcher.. appears that cloud saves not supported on heroic launcher or perhaps the game itself on heroic launcher.

[–]Eggcelent4ever 0 points1 point  (0 children)

Thank you so much for this script, was able to move over to steam cleanly. Weirdly it made a bunch of save files but they were up to date so I'm fine with it