Comments (42)
I'll try to look into this later today.
from xgp-save-extractor.
Agreed. Would love to have the other way supported.
from xgp-save-extractor.
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 😅
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.
this would be extremely helpful
from xgp-save-extractor.
I would absolutely love this if at all possible. Thanks for all your hard work
from xgp-save-extractor.
Agreed would love this feature
from xgp-save-extractor.
Same here would love to go from Steam to XGP!
from xgp-save-extractor.
I really need this feature now that I'm moving to gamepass
from xgp-save-extractor.
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.
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.
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.
Need this too. Thanks for the developer!
from xgp-save-extractor.
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.
I think soulution i here: #5 (comment) but... I dont understand it.
from xgp-save-extractor.
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.
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.
Yeah I would really appreciate this too!
from xgp-save-extractor.
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.
I'll try to look into this later today.
thank you, really need this feature, starfield
from xgp-save-extractor.
You're all absolute legends, you got this!
from xgp-save-extractor.
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.
@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.
Thank you
from xgp-save-extractor.
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.
hello, tell me what to do with this code?
from xgp-save-extractor.
@berdmanus It's not entirely complete yet.
from xgp-save-extractor.
@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.
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.
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.
@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.
Not sure if useful to cross the data but in https://github.com/Fr33dan/GPSaveConverter we can check those 10 file like in this
up is xbox game pass
down is my "Steam" saves ;)
from xgp-save-extractor.
starfield xgp extraction.txt
heres a txt file with the container names and blob id's from my saves
from xgp-save-extractor.
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
from xgp-save-extractor.
I don't understand how to run it?
from xgp-save-extractor.
@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
you got to get it from release https://github.com/Fr33dan/GPSaveConverter/releases code is broken i think
from xgp-save-extractor.
Has anyone figured Steam -> XGP yet?
from xgp-save-extractor.
You need run this via Visual Studio or other app I guess. I did run it with VS.
I didn't figure out how to convert files from Steam to XGP.
from xgp-save-extractor.
i did run it on vs but had missing files steamapi and the other one
i have a translation ready but get this error
from xgp-save-extractor.
also check the wiki for how to run it https://github.com/Fr33dan/GPSaveConverter/wiki/File-Translations
from xgp-save-extractor.
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.
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.
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)
- Support for OPUS: Echo of Starsong
- Support for Doom Eternal
- Support for [Palworld] HOT 1
- Palworld XGP Save Extractor Error HOT 2
- Support for [Ark : survival evolved]
- Support for Coral Island [Coral Island]
- Support for Resident Evil 2 Remake
- Windows Security Trojan:Win32/Znyonm HOT 3
- Add support for User Selection of available games
- Support for Palworld 1.5.2 (saves are outdated and pull at the end of 1.5.1) HOT 16
- Support for [Astroneer]
- Control game EGS to XGP
- Support for Plague Tale Requiem HOT 2
- Support for Cassette beasts
- Can't find the resulting file from using the EXE...
- Support for Evil Genius 2
- Issue with supported game : Palworld : Filestructure HOT 5
- Support for [Lightyear Frontier]
- Story of Seasons: Friends of Mineral Town
- Palwords: Extractor creates a level folder instead of level.csv HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from xgp-save-extractor.