Skyrim save cleaner sse code#
The existing code from for the save header has a check to test where Wrye is as it reads through the save file. I haven't even explained all the glitches in that header, but the one I did explain is 5141 bytes long for 8 chars, that simply can't be. Not even the last file in the header is correct.
Skyrim save cleaner sse mods#
The count of mods is the first byte so that's 1, then you have 292 bytes before the end of the last file in my header which is Bashed Patch, ?.ÿ.Þ in the screen shot. The next 4 bytes before that are (in the correct order) are 00 00 01 25 which in decimal is 293. Just before that is 0F which means I had 15 files loaded which is correct. If you go up further just before Skyrim you have 0A 00 which is 00 0A for the length of Skyrim.esm which is correct. The save game is basically saying that the plugin name is 5141 bytes long in the screen shot. In hex it is actually 14 15, in decimal that's 5141. In the above file, the beginning of the file name has 15 14, which since it's from a file it's backwards.
Skyrim save cleaner sse update#
Other then my speculation that there was an update and I didn't notice it. I have no idea what's wrong with the save games or why it's not doing it now. I do have this for Fallout 4 after the screen shot data Raise Exception( u'Save game masters size (%i) not as expected (%i).' % ( ins. # pick out only every 3 bytes, drop the 4th (alpha channel) # TODO: Setup Bash to use the alpha data #ssAlpha = ''.join(itertools.islice(ssData, 0, None, 4)) ssData = ''. #-Image Data # Skyrim SE is in 32bit RGB, Bash is expecting 24bit RGB ssData = ins. Raise Exception( u'Save game header size (%s) not as expected (%s).' % ( ins. read( 2)) # Player Sex print( 'pcSex: ' + str( header. read( size) # Player Race print( 'pcRace: ' + header. gameTicks = playSeconds * 1000 # End Game Time size, = struct. gameDays = float( playSeconds) /( 24 * 60 * 60) PlaySeconds = hours * 60 * 60 + minutes * 60 + seconds header. read( size) # Save Duration print( 'gameDate: ' + header. read( size) # Save Cell print( 'pcLocation: ' + header. read( size) # wbLenString, 2 of previous size print( 'Player Name' + header. Print( 'saveNumber: ' + str( saveNumber)) read( 4)) # This would be Key, if $C Skyrim SE otherwise Skyrim print( 'version: ' + str( version)) Print( 'header size: ' + str( headerSize)) Raise Exception( u'Save file is not a Skyrim save game.') """Extract info from save file.""" #-Header if ins. It's not a string like it was.Īt $3C071 we have the one byte count of masters then the masters name as wbLenString, 2 - String with 16 Bit length ByteĪfter that, you have the actual save staticmethod def load( ins, header): I could see the form version here ($12) one byte, but for offsets $3C061 to offset $3C070 I can't be sure.