Opened 22 years ago

Closed 22 years ago

Last modified 6 years ago

#8142 closed patch

Make saveload system extensible

Reported by: fingolfin Owned by: fingolfin
Priority: normal Component: Engine: SCUMM
Version: Keywords:
Cc: Game:

Description

This patch (as discussed on IRC) implements versioning on the fields store in save games. This way, it becomes easy to remove/add/grow fields in the save game, whil still being able to load older save games.

I can load all my old V8 & V9 save games (as well as all the savegames here that are labeled as V7 - due to a bug, all versions of ScummVM up to and including 0.3.0 would under certain conditions save states as V8, sometimes even incorrectly marked as V7).

The new save game format V10 is in effect a few KB bigger than the old. The reason is that we didn't save a lot things that should have been saved - e.g. we only saved 64 of the 256 bytes of each actor's palette.

I would check this in directly, but I think some people should test it independently first, as it is always risky to mess with the save/load system.

Ticket imported from: #650085. Ticket imported from: patches/247.

Attachments (1)

saveload.patch (51.2 KB ) - added by fingolfin 22 years ago.

Download all attachments as: .zip

Change History (5)

by fingolfin, 22 years ago

Attachment: saveload.patch added

comment:1 by fingolfin, 22 years ago

I also have save game compression with MiniLZO working just fine over here. Rates are not as high as they would be with gzip, of course, but still acceptable. E.g.

atlantis.s34 48645 (uncompressed) 19659 (LZO) 12476 (gzip)

dig.s05

239278 (uncompressed) 32427 (LZO) 23875 (gzip)

comment:2 by fingolfin, 22 years ago

Owner: set to SF/ender

comment:3 by fingolfin, 22 years ago

Owner: changed from SF/ender to fingolfin
Status: newclosed

comment:4 by digitall, 6 years ago

Component: Engine: SCUMM
Note: See TracTickets for help on using tickets.