Search code examples
reverse-engineeringbinaryfileshexdump

How to create a Datasheet for Elden Ring Save-Files


I'd like to find out the offset of certain information like level, equipped items etc. from the ER0000.sl2 save file.

It has been done for Dark Souls here.

And I found out some offset locations in this file

What would be a good approach to reverse-engineer an exhaustive list like the first one? Change my save-state ingame, diff the save files and see what changes? Or is there an easier way?


Solution

  • I would use previous souls like games as a base (like the link you provided). You want to get a lot of savedatas and then you want to compare what is same/different given you know it is being saved like you suggested.

    For Elden ring all character slots are always same size but not all of the data within them is always in same location within the slot's save data. For example death location differs even thousands of bytes on different character saves.

    I found out where deaths are in the save game (roughly, above statement explains this) by dying and comparing where it is saved using hex editor, knowing deaths are 32 bit little-endian integers.

    I haven't looked but if you can find a structure of the save data within IDA pro or similar you could have easier time too (if they have an object for save data).

    A good trick is to use memory reader while playing the game, read the data you want to find and then search it within the save file. I for example made a new save and died until I could find death location inside Cheat Engine, then changed to my other save that had hundreds of deaths and I found the death count instantly which was then easy to locate from the save file.