Coder Social home page Coder Social logo

Comments (42)

Z1ni avatar Z1ni commented on July 16, 2024 35

I'll try to look into this later today.

from xgp-save-extractor.

jakest avatar jakest commented on July 16, 2024 8

Agreed. Would love to have the other way supported.

from xgp-save-extractor.

miffril avatar miffril commented on July 16, 2024 6

I managed to split save file to container parts based on this comment. I tested it by converting XGP saves to nonXGP and splitting them back. They seem to be identical except for the padding part. I also tried to run it on my nonSGP 10 MB save, it created 115 parts. It would be great if someone confirms if it is okay for large saves in XGP. Now need to understand how to create index files.
ps Please don't judge my code, I'm not a programmer and first time working on a byte level 😅
image

import os
import zlib

tmp_files_path = "F:\\TEMP\\saves"
save_file_path = "C:\\Users\\miffr\\Documents\\My games\\Starfield\\Saves"
save_file_name = "1.sfs"

def write_file(file_index, data):
    with open(os.path.join(tmp_files_path, f"container{file_index}"), "wb") as container_part:
        print("Writing file")
        container_part.write(bytes(data))
        print(f"File name container{file_index}")
    return

def main():

    with open(os.path.join(save_file_path, save_file_name), "rb") as save_file:
        position = 0
        byte_1 = b"x"
        byte_2 = b"^"
        tmp_bytearray = bytearray()
        files_found = 0
        while(byte := save_file.read(1)):
            if(byte == byte_1):
                position = save_file.tell()
                next_byte = save_file.read(1)
                save_file.seek(position)
                if(next_byte == byte_2):
                    if(files_found == 0):
                        write_file(files_found, tmp_bytearray)
                        files_found += 1
                        tmp_bytearray = bytearray()
                    else:
                        try:
                            print("try to decompress")
                            zlib.decompress(tmp_bytearray)
                        except zlib.error as z_exept:
                            print(f"Failed to decompress: {z_exept=}")
                        except Exception as e:
                            print (f"Failed to decompress: {e=}, {type(e)=}")
                        else:
                            write_file(files_found, tmp_bytearray)
                            files_found += 1
                            tmp_bytearray = bytearray()

            tmp_bytearray += byte
        write_file(files_found, tmp_bytearray)
        print(f"Containers found {files_found}")

if __name__ == "__main__":
    main()

from xgp-save-extractor.

Mapedmaker avatar Mapedmaker commented on July 16, 2024 5

this would be extremely helpful

from xgp-save-extractor.

murder46 avatar murder46 commented on July 16, 2024 4

I would absolutely love this if at all possible. Thanks for all your hard work

from xgp-save-extractor.

DrDoakes avatar DrDoakes commented on July 16, 2024 4

Agreed would love this feature

from xgp-save-extractor.

NSFLscott avatar NSFLscott commented on July 16, 2024 3

Same here would love to go from Steam to XGP!

from xgp-save-extractor.

tggoulart avatar tggoulart commented on July 16, 2024 3

I really need this feature now that I'm moving to gamepass

from xgp-save-extractor.

MrN0ss avatar MrN0ss commented on July 16, 2024 3

I think the problem is that the saves are encripted (i think) and the encryption key is changed with each game, you have some tools like GPSaveConverter, i tried and wasn't able to get anywhere (no updates since January) and also another was this MollysGameSaveMule witch alow the bi-directional save transfer only for Deep Rock Galactic, but with the idea of the games on gamepass being temporary and that now with this services even your saves are not your's anymore i think this aplication would be a great thing for people who would like to have their saves... well safe
Also for new game plus saves on nexus would work either if it is steam or XGP

from xgp-save-extractor.

Bcawesomer avatar Bcawesomer commented on July 16, 2024 2

This is not only helpful to pirates @rubensmello being able to download steam saves and use them for game pass games would be an excellent software that someone should have made a while ago. The process of getting a steam save to a game pass save is a pain and would be nice to have a software that does it especially if it works on other gamepass games😁

from xgp-save-extractor.

rubensmello avatar rubensmello commented on July 16, 2024 1

Is this really necessary!
A lot of people started playing the version that was pirated (steam) and now that it was released on gamepass, they want to change the version...

from xgp-save-extractor.

JupiterOdyssey avatar JupiterOdyssey commented on July 16, 2024 1

Need this too. Thanks for the developer!

from xgp-save-extractor.

Xmentiroso avatar Xmentiroso commented on July 16, 2024 1

I detect the save game folder but Gamepass use another system for store saved points. Is posible reverse the .sfs files to the model of Gamepass? Thanks!

from xgp-save-extractor.

tosziro avatar tosziro commented on July 16, 2024 1

I think soulution i here: #5 (comment) but... I dont understand it.

from xgp-save-extractor.

MiriaWeakSmile avatar MiriaWeakSmile commented on July 16, 2024 1

I'm also waiting for a decision, I want to switch to game pass, but I don't want to lose the progress received in the torrent version. I will be grateful for the answer

from xgp-save-extractor.

alexdie avatar alexdie commented on July 16, 2024 1

If you need any help testing the steam -> xpg conversion, I've got appropriate savegames and installations that aren't a big loss if broken.

from xgp-save-extractor.

Amnessie avatar Amnessie commented on July 16, 2024 1

Yeah I would really appreciate this too!

from xgp-save-extractor.

Whatevser avatar Whatevser commented on July 16, 2024 1

I was hoping to be able to use the 'load' command in console to load my save, I've tried putting it everywhere during the game running hoping I find some cache folder, but that did not work out for me. I hope you will be able to convert the saves, or at least that somebody else will read this post and manage to implement my idea.

from xgp-save-extractor.

z7ui avatar z7ui commented on July 16, 2024 1

I'll try to look into this later today.

thank you, really need this feature, starfield

from xgp-save-extractor.

MoonlitWisp avatar MoonlitWisp commented on July 16, 2024 1

You're all absolute legends, you got this!

from xgp-save-extractor.

Bcawesomer avatar Bcawesomer commented on July 16, 2024 1

GPSaveConverter can be helpful but not in the way it supposed to function being how it does not work you can use it to find the name of each sting and change the time modified in order to find which one is the save. Thats what im here for too i want a new game plus save.

from xgp-save-extractor.

miffril avatar miffril commented on July 16, 2024 1

@MrN0ss those aren't the same files. It is one file that split into 10 parts. You can see it by blobID.

from xgp-save-extractor.

berdmanus avatar berdmanus commented on July 16, 2024 1

Thank you

from xgp-save-extractor.

GaborKoleszar avatar GaborKoleszar commented on July 16, 2024 1

https://github.com/HarukaMa/starfield-xgp-import/releases/tag/v0.0.2

Check this project. Download the exe, copy the .SFS save file into the same directory as the exe, open CMD and type in .\sfsconvert.exe "nameofSFSfile"

Done, it is now in the Gamepass version of Starfield.

from xgp-save-extractor.

berdmanus avatar berdmanus commented on July 16, 2024

hello, tell me what to do with this code?

from xgp-save-extractor.

EffortlessFury avatar EffortlessFury commented on July 16, 2024

@berdmanus It's not entirely complete yet.

from xgp-save-extractor.

SherbyHomes avatar SherbyHomes commented on July 16, 2024

@miffril Would it not be possible just to paste that into the containers that are already there?

I was looking into it before but staring at hex for too long hurts my brain.

from xgp-save-extractor.

SzzzAK999 avatar SzzzAK999 commented on July 16, 2024

Please, someone make it happen. I like to play on XBOX Series X, but I did start game before lunch on pirate version. Now I stuck on PCMR.

from xgp-save-extractor.

jibs92 avatar jibs92 commented on July 16, 2024

Zencq created a great save game editor that works both ways for No Man's Sky. https://github.com/zencq/NomNom
The saves in Steam and in Xbox are very similar to Starfield.

from xgp-save-extractor.

miffril avatar miffril commented on July 16, 2024

@SherbyHomes I don't know how names are generated. I guess they are just random numbers. Those names should be put inside index file. I'm trying to understand right how those indexes are working. If their only purpose is to list filenames, I think it's possible to just create a savefile from the game and then replace this XGP save files with renamed files generated using my script.
Quantity of files generated from big saves is the open question right now. I generated 115 files from my save as I mentioned above. In this case you can't just replace dummy save from XGP because it have something about 10 files.

from xgp-save-extractor.

MrN0ss avatar MrN0ss commented on July 16, 2024

Not sure if useful to cross the data but in https://github.com/Fr33dan/GPSaveConverter we can check those 10 file like in this
image
up is xbox game pass
down is my "Steam" saves ;)

from xgp-save-extractor.

MrN0ss avatar MrN0ss commented on July 16, 2024

starfield xgp extraction.txt
heres a txt file with the container names and blob id's from my saves

from xgp-save-extractor.

MrN0ss avatar MrN0ss commented on July 16, 2024

it seems that it has 10 copies of the same save in each set, i do only have the start of the game up until right after the char creation like you can see here
image

from xgp-save-extractor.

berdmanus avatar berdmanus commented on July 16, 2024

image
I don't understand how to run it?

from xgp-save-extractor.

MrN0ss avatar MrN0ss commented on July 16, 2024

@MrN0ss those aren't the same files. It is one file that split into 10 parts. You can see it by blobID.

yeah you are right thanks for the heads up but check this wiki for gps sems to have good info haven't checked fully
https://github.com/Fr33dan/GPSaveConverter/wiki/File-Translations

image I don't understand how to run it?

you got to get it from release https://github.com/Fr33dan/GPSaveConverter/releases code is broken i think

from xgp-save-extractor.

MoonlitWisp avatar MoonlitWisp commented on July 16, 2024

Has anyone figured Steam -> XGP yet?

from xgp-save-extractor.

SzzzAK999 avatar SzzzAK999 commented on July 16, 2024

image I don't understand how to run it?

You need run this via Visual Studio or other app I guess. I did run it with VS.
image
I didn't figure out how to convert files from Steam to XGP.

from xgp-save-extractor.

MrN0ss avatar MrN0ss commented on July 16, 2024

i did run it on vs but had missing files steamapi and the other one
image
i have a translation ready but get this error
image

from xgp-save-extractor.

MrN0ss avatar MrN0ss commented on July 16, 2024

also check the wiki for how to run it https://github.com/Fr33dan/GPSaveConverter/wiki/File-Translations

from xgp-save-extractor.

tosziro avatar tosziro commented on July 16, 2024

https://github.com/HarukaMa/starfield-xgp-import/releases/tag/v0.0.2

Check this project. Download the exe, copy the .SFS save file into the same directory as the exe, open CMD and type in .\sfsconvert.exe "nameofSFSfile"

Done, it is now in the Gamepass version of Starfield.

Thank you! Works for me

from xgp-save-extractor.

SirShaw avatar SirShaw commented on July 16, 2024

https://github.com/HarukaMa/starfield-xgp-import/releases/tag/v0.0.2

Check this project. Download the exe, copy the .SFS save file into the same directory as the exe, open CMD and type in .\sfsconvert.exe "nameofSFSfile"

Done, it is now in the Gamepass version of Starfield.

You are an angel. Works perfectly! Thank You!

from xgp-save-extractor.

Z1ni avatar Z1ni commented on July 16, 2024

https://github.com/HarukaMa/starfield-xgp-import

Locking this issue as there's now an import tool made by @HarukaMa.

I'm looking into maybe adding the conversion also to my script, but if you're converting Starfield saves from Steam to XGP, look into that project instead for now.

from xgp-save-extractor.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.