Closed itaranto closed 4 months ago
Save file versions have been updated as of 13c6307154c4821af947e2d105ac422f747e130e, and previous save files are no longer compatible.
Save file versions have been updated as of 13c6307, and previous save files are no longer compatible.
So, does this basically means I've lost all my saves?
Is there any way to migrate old saves?
Unfortunately the struct sizes have changed since then, and unless you're comfortable with a hex editor it is unlikely to play them with the current build.
You're better off to remain with your old version.
Unfortunately the struct sizes have changed since then, and unless you're comfortable with a hex editor it is unlikely to play them with the current build.
I could, actually. What do I need to do?
You're better off to remain with your old version.
Yes, I complied an older release, and the saves are working again.
I could, actually. What do I need to do?
It depends on what version of save file, and what platform and if you're on x86 or x64.
If you can, could you start E5M3 and post a save file from the current version and the old version. I can compare and see.
It depends on what version of save file, and what platform and if you're on x86 or x64.
I'm using version r13984
which is from a month ago. I choose this since the breaking change was introduced around 3 weeks ago.
I'm on x86_64.
If you can, could you start E5M3 and post a save file from the current version and the old version. I can compare and see.
Sure, here it is:
Here is the edited version
It appears there is more than just changing version and adding two variables to the gGameOptions struct. I recommend staying with the older builds until you're finished those save games.
Here is the edited version
It appears there is more than just changing version and adding two variables to the gGameOptions struct. I recommend staying with the older builds until you're finished those save games.
I believe these kind of breaking changes must be mentioned, at the very least in the release description.
You could also implement some sort of versioning for the save games, so that way you can support older save games. But I'm not familiar with this project so I won't delve into that.
It could be implemented (like Raze does), but eventually when newer NoOne extensions are implemented, there won't be any easy way to convert older structures to newer one when a lot of the variables have been tweaked.
Versions are not changed very often (last change was over two years ago 0d184bb71beb9188a377c57c716e5ff61cabcdfd), and it's usually done when there has been new variables introduced in important structs like gGameOptions
.
It is unlikely that this issue will be resolved.
Anyway, it is possible to hex edit the saves to be compatible as I made a mistake previously. There are two gGameOptions
structs in the game save file.
First, update the game version byte (offset byte 0x04) to 0x69.
Then identify the first difficulty byte at the start (offset byte 0x07) and copy it twice like so
Then find the second copy of gGameOptions
in the structure by searching the current map name (this should be located at offset 0x10)
Once you have found it, walk back 8 bytes to find the difficulty byte flag, and copy it another two times.
Here is a working save file that I converted. Hope this helps!
Anyway, it is possible to hex edit the saves to be compatible as I made a mistake previously. There are two
gGameOptions
structs in the game save file.First, update the game version byte (offset byte 0x04) to 0x69.
Then identify the first difficulty byte at the start (offset byte 0x07) and copy it twice like so
Then find the second copy of
gGameOptions
in the structure by searching the current map name (this should be located at offset 0x10)Once you have found it, walk back 8 bytes to find the difficulty byte flag, and copy it another two times.
Here is a working save file that I converted. Hope this helps!
This worked. Thanks!
I stopped playing the game for a couple of months, installed the latest release
r14007
and now save games are not being loaded.OS: Arch Linux
Here's the logs: