Jump to content
  • 0

I found a new bug (or maybe is a not solvable old one) in the save files


Darklynx
 Share

Question

Hi all :)
I used your outstanding guide as a basis for my current load order. Thank you for your work writing STEP. :)
 
I have a problem:
Thanks to fabulous "Merge Plugins" tool i crossed the 255 limit for the plugins, from nearly 400 to 150 :D
The game run smoothly and with very few CTD (nearly none), i can play hours without errors...
 
Except one... i cannot load any save file i made, the game CTD on loading :\
 
I spents days looking for the bug that caused the error in the save files, read tons of pages on forums, check the inis, check ENB settings, recheck the load order and merges and i found something:
If i load less plugins (any of them, i tried several combinations) i can save and load correctly. But i really don't want load less plugins :|
The 'corrupted' save file can't be opened with "Save Game Script Cleaner" (https://www.nexusmods.com/skyrim/mods/52363/) the tool itself crash.
With "TESV ESS Files Editor" (https://www.nexusmods.com/skyrim/mods/27119/) i can load the save file but it fails to load the Papyrus portion (Global data table 3 -> 2. Papyrus)
This is the same for every 'corrupted' save. The working saves can be opened with the editors without problems.
 
So i studied the .ess file format on https://www.uesp.net/wiki/Tes5Mod:Save_File_Format and more precisely this https://www.uesp.net/wiki/Tes5Mod:Save_File_Format/Papyrus the file format of the Papyrus portion.
The document explains that the counting of the strings are stored inside an 'uint16' in the 'strCount' variable (a maximum of 65535 strings). I definitely passed that limit O_o
BUT! (And this is the bug) Opening the save file with a hex editor i discovered that the count can be stored in an 'uint32' variable (Even TESV ESS Files Editor in the source files use 'uint32') but the game save a truncated value.
An example:
Instead of '23 00 01 00' i found '23 00 00 00'... literally dropped 65k of strings with one bit!
Continuing to read the file i found the strings are saved correctly, all of them.
 
So i manually changed the byte, loaded the file on 'TESV ESS File Editor' and i was able to open the Papyrus Portion. :)
 
But... The game can't open the save file. I suspect the game really use 'uint16' and can't read or write correctly the value.
 
I wonder ... it is possible with SKSE change the type of variable? Unfortunately i don't have the knowledge to try a debugging of the game to look where the variable is declared (i don't even know if is possible) :(
 

Thanks for any help :)

Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0

You may report this in the Bethforums in the SKSE forums. Maybe shademe, purple lunchbox, or hlp can fix it. Though the people at STEP are good at identifying and testing for stuff like this, we don't really have anyone that directly codes the fixes, unless you count sheson. He isn't really associated with us though, mostly just uses STEP to support DynDOLOD.

Link to comment
Share on other sites

  • 0

Gotta say though, that really is some impressive detective work you have put in there. Well done and welcome to STEP.

indeed. great detective work! i just started getting this problem. i think it may be my last straw. been messing w/ skyrim since the beginning, and this may do me in.

would like to try and salvage the playthrough i'm in. a terrible idea to start yanking MCM mods and script heavy mods mid-game i'm sure. i wonder if it might not be too terribly detrimental to use Tesedit to remove just the MCM menus of a few mods? don't think that would screw things up as much as removing the whole mod? i definitely have a few mods that don't even need the MCM

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.