The world is large, and a millennium is a long long time. Long enough for civilizations to rise and fall. Long enough for lonely researchers in their obsidian towers to unlock the secrets of life and death.
It is the year 1055 and the fortress of Fondledgirder has hunkered down against a siege. Above, the goblins wander. Below, in the tavern, the necromancers discuss the finer points of literature. Beings in strangely jointed armour await the gibbous moon under whose unholy influence tusks and snouts will grow.
It is the year 1055 and your save will not load because it contains corrupted compressed data.
Human, the player composes a bug report as the moon wanes away to nothingness, solely a dark hole in the sky.
The cold light of the newborn moon's arc scythes away the last vestiges of the player's humanity. Under the waning moon, the werecaterpillar hunts around to see if any of the myriad DF-hacking tools will fix the save.
The caterpillar discovered A yak parchment codex containing the secrets of the save format. It was written by Andux, and concerns the decompression and recompression of saves. The format is simple enough - a series of zlib-compressed chunks, each expanding to 20,000 bytes. And zlib is a stream compressor; you can make use of the data BEFORE the error.
This is a chitin-bound codex. It concerns a technique for recovering data from a save containing compression errors. This technique was devised in the fortress of Fondledgirder in 1055. Overall, the writing is quite brutal. It menaces with spikes of chitin.
How It Works: It decompresses world.sav. If it encounters a decompression error, it will try every possible one-byte change to the block containing the error. If it doesn't manage to find a one-byte change that decompresses correctly, it will zero-pad the part that it could decompress to 20000 bytes.
Python 2.x. It has only been tested on Debian GNU/Linux.
There is NO WARRANTEE. None. It may make your game catch on fire. It may spontaneously transform your axelord's artifact adamantine breastplate into an artifact cheese (which will be eaten, causing sad thoughts in the creator). It may not work. It may do weird things to Dwarf Fortress that cause dwarves to escape from the game and march through your GPU, laying waste to all they encounter. This is basically the equivalent of hitting your savegame with a hammer and seeing if it works.
It did recover Fondledgirder, though. And immediately afterwards an angry dwarf went to the tavern and started a fistfight with a visiting elite crossbowman sacred slayer. Visiting dark corpses were offended by this combat (or, more likely, by having tantruming dwarves thrown into them) and made flicking motions... telekinetically splattering dwarves against walls. By the time the brawl was over 20% of the population was dead and those of the survivors who were capable of emotion were angry.
First, back up the save you're trying to recover.
chmod 0700 spiky_df_uncorruptor.py Go to the save directory and run /path/to/spiky_df_uncorruptor.py world.sav
It will create a large file named world.sav.decompressed. mv world.sav.decompressed world.sav
Try to load your world.
Let us know if it worked.