Welcome
Ladies and Gents:

These forums are now closed and registration disabled.

Please join us at our new forum on Proboards. Our hope is that these new forums are more stable, provide more and better features, and allow continuation of the project forums in a safer, more secure, long term environment.

me3explorer.proboards.com

--The ME3Explorer Team

CR: ME1 Save game format

Technical research related to the structure of Mass Effect game files.

CR: ME1 Save game format

Postby WarrantyVoider » 17 Jul 2013, 20:12

ok let me sum up what I found out so far:

1)a SaveGame simply contains a zip at the offset saved @ 0x8
2)this zip file contains 3 files:
player.sav 		//Stats about the Player, Inventory, Henchmen...
state.sav //contains Plot variables, grows with time, has global stats like Paragon/Renegade
WorldSavePackage.sav //other stuff

3)except state.sav all files are valid ME1 packages and can be opened in regular Package Editor after following treatmeant:
-read offset @ 0x8
-dump from that offset to the end
-in that get start of Nametable from 0x1D
-use header until 0x89
-fillup with zeroes until Nametable offset
-paste in the rest from after 0x89


Known Offsets in states.sav
0x4A3 - Renegade Points
0x4A7 - Paragon Points


Known Values in Player.sav
-in Export[1] "BioInventorySaveObject"
--in Properties:
---m_nResourceCredits //Int Credits
---m_nResourceGrenades //Int Grenades
---m_fResourceMedigel //float Medigel
---m_fResourceSalvage //Float Salvage


greetz WV

the initial research...
Spoiler:
today I was looking for an ME1 savegame editor and it seems gibbed hasnt made one, so I went ahead and looked into the save files with hexedit. here my findings so far:

this marked value points to an offset...
Image

and I instantly saw "PK" and knew this was a zip file^^
Image

so I extracted from that offset on to the end into a new file and called it test.zip
Image

it contains 3 files: player.sav, state.sav, WorldSavePackage.sav. except state.sav these files show the same header again
Image

it points to the same offset, well what it this?!^^
Image

so I extracted that again into WorldSavePackage.upk. for those who know the header format, I marked the namecount and offset, and underlined where it really starts, so you can see, its wrong!
Image

well I tried to correct the table offsets, the count where correct, and it even loaded into package editor, but the offsets for the export entries seem to be all wrong, so I stopped here for now :D
Image

greetz WV
always backup your files!
mess with the best or die like the rest!
"I tried everything!" - "mkay, please list that..." ; please dont pm me for help, we have a help section

WarrantyVoider has been thanked by:
User avatar
WarrantyVoider
Emeritus
 
Posts: 2270
Joined: 22 Aug 2012, 11:33
Has thanked: 480 time
Have thanks: 626 time

Re: CR: ME1 Save game format

Postby WarrantyVoider » 17 Jul 2013, 21:04

ok, just found out if I move everything starting from the real name list until the end, to the nameoffset from header and fill stuff between with 0x00s, its a valid me1 package^^

greetz
always backup your files!
mess with the best or die like the rest!
"I tried everything!" - "mkay, please list that..." ; please dont pm me for help, we have a help section
User avatar
WarrantyVoider
Emeritus
 
Posts: 2270
Joined: 22 Aug 2012, 11:33
Has thanked: 480 time
Have thanks: 626 time

Re: CR: ME1 Save game format

Postby Fog.Gene » 18 Jul 2013, 14:57

I find it awesome how you 'instantly' reach breakthrough conclusions based on a bunch of hex numbers and a couple of letters. No really, it's awe-inspiring. This is one of the skills I'd love to learn. One of these days I gotta ask you for a crash course on hex deciphering.
Regere: Let the world know of its sovereign. I shall be the rule by which all things are measured.
Polyhistor: Then I am to be the slave, for all things shall be my master.
Fog.Gene
Emeritus
 
Posts: 259
Joined: 20 Feb 2013, 05:09
Has thanked: 119 time
Have thanks: 65 time

Re: CR: ME1 Save game format

Postby WarrantyVoider » 18 Jul 2013, 15:02

well yeah, im on skype 24/7 ask me anytime^^ I had a friend here who tested me1 for the first time, never having heard of mass effect and he was disappointed how many dialogs were locked because he lacked paragon points. so I said (with gibbed in mind) "let me quickly edit your savegame and you have them all unlocked!", well yeah, I was wrong, but while I deciphered that savegame I explained to him what I do and still he was overwhelmed with the fast pace :P dunno, reading hex is easy if you know that there are only ints, floats and strings, and ints only come in size 2^n

greetz
always backup your files!
mess with the best or die like the rest!
"I tried everything!" - "mkay, please list that..." ; please dont pm me for help, we have a help section
User avatar
WarrantyVoider
Emeritus
 
Posts: 2270
Joined: 22 Aug 2012, 11:33
Has thanked: 480 time
Have thanks: 626 time

Re: CR: ME1 Save game format

Postby Fog.Gene » 18 Jul 2013, 15:24

Yeah I ought to connect to Skype and resume my ritual WV pestering, now that I have time again and all.

WarrantyVoider wrote:... reading hex is easy if you know that there are only ints, floats and strings, and ints only come in size 2^n


Let this be my first lesson then. I imagine you somewhat get used to what each look like in hex at a glance.
Regere: Let the world know of its sovereign. I shall be the rule by which all things are measured.
Polyhistor: Then I am to be the slave, for all things shall be my master.
Fog.Gene
Emeritus
 
Posts: 259
Joined: 20 Feb 2013, 05:09
Has thanked: 119 time
Have thanks: 65 time

Re: CR: ME1 Save game format

Postby mnn » 21 Jul 2013, 12:38

Fog.Gene wrote:Let this be my first lesson then. I imagine you somewhat get used to what each look like in hex at a glance.


It's like in the movie Matrix, they don't need any translation program to see what's going on in Matrix, when looking at encoded form :D

Image

mnn has been thanked by:
mnn
User
 
Posts: 42
Joined: 22 Aug 2012, 17:10
Has thanked: 1 time
Have thanks: 15 time

Re: CR: ME1 Save game format

Postby ByteMe » 21 Jul 2013, 13:17

Fog.Gene wrote:I find it awesome how you 'instantly' reach breakthrough conclusions based on a bunch of hex numbers and a couple of letters. No really, it's awe-inspiring.


I feel the same way when he tells me something is easy. It's like "uh yeah maybe if you give me a month to focus on that one thing I might be able to figure it out." Prob not tho....
Its not a bug, its a feature.
User avatar
ByteMe
User
 
Posts: 31
Joined: 03 Jul 2013, 13:42
Location: Over there!
Has thanked: 13 time
Have thanks: 14 time

Re: CR: ME1 Save game format

Postby alonerhapsody » 06 Aug 2013, 21:09

I'd love to see something like this, maybe we could fix the bugs, like the conrad and mission Citadel: Asari Consort



edit
of course, theSirta Foundation bankrupt too.
alonerhapsody
User
 
Posts: 17
Joined: 20 Jul 2013, 18:58
Has thanked: 6 time
Have thanks: 1 time

Re: CR: ME1 Save game format

Postby WarrantyVoider » 11 Aug 2013, 15:54

Im on my way...

Image

greetz WV
always backup your files!
mess with the best or die like the rest!
"I tried everything!" - "mkay, please list that..." ; please dont pm me for help, we have a help section
User avatar
WarrantyVoider
Emeritus
 
Posts: 2270
Joined: 22 Aug 2012, 11:33
Has thanked: 480 time
Have thanks: 626 time

Re: CR: ME1 Save game format

Postby WarrantyVoider » 19 Aug 2013, 15:00

ok let me sum up what I found out so far:

1)a SaveGame simply contains a zip at the offset saved @ 0x8
2)this zip file contains 3 files:
player.sav 		//Stats about the Player, Inventory, Henchmen...
state.sav //contains Plot variables, grows with time, has global stats like Paragon/Renegade
WorldSavePackage.sav //other stuff

3)except state.sav all files are valid ME1 packages and can be opened in regular Package Editor after following treatmeant:
-read offset @ 0x8
-dump from that offset to the end
-in that get start of Nametable from 0x1D
-use header until 0x89
-fillup with zeroes until Nametable offset
-paste in the rest from after 0x89


Known Offsets in states.sav
0x4A3 - Renegade Points
0x4A7 - Paragon Points


Known Values in Player.sav
-in Export[1] "BioInventorySaveObject"
--in Properties:
---m_nResourceCredits //Int Credits
---m_nResourceGrenades //Int Grenades
---m_fResourceMedigel //float Medigel
---m_fResourceSalvage //Float Salvage


greetz WV

PS: added to OP
always backup your files!
mess with the best or die like the rest!
"I tried everything!" - "mkay, please list that..." ; please dont pm me for help, we have a help section

WarrantyVoider has been thanked by:
User avatar
WarrantyVoider
Emeritus
 
Posts: 2270
Joined: 22 Aug 2012, 11:33
Has thanked: 480 time
Have thanks: 626 time

Next

Return to Technical Research

Who is online

Users browsing this forum: No registered users and 0 guests

cron
suspicion-preferred