[Scummvm-devel] MD5s of Scumm data files
Max Horn
max at quendi.de
Mon Dec 8 15:48:01 CET 2003
Yo folks,
recently we had some discussion on #scummvm regarding making a table of
MD5 checksum of game data files (right now restricted to scumm, though
this could easily be applied to other engines, if desired).
The idea: Collect MD5s of the data files of all supported games in all
existing variants (of course this is quite a big number considering all
the localizations etc.). For most purposes, taking the MD5 of one file
(the "first" data file, so 00.LFL/000.LFL/*.000/*.la0/*.he0/*.sm0) is
sufficient, for some others it's better to have the MD5 of all
The reason(s): Having these MD5 values opens up various possibilities:
* Perfect auto detection: Using this, ScummVM could look at a 00.LFL
file and automatically find out whether it's Zak/V1/PC/German or
Indy3/Mac/English. No need for specifying --platform/--language
anymore. This is a very useful improvement, IMHO
* We could store the MD5 in the savegames; this allows for better error
checking (and it means you get a meaningful error instead of a crash if
you load a FOA/german savegame in FOA/english)
* Of course our table would initially not be complete. No problem, we
would keep supporting the current way of specifying the language etc.
via --language/--platform
* We can check for corrupt files (this requires MD5 of all files, and
is not something I am aiming for currently, but might be interesting in
the future, e.g. for doing a 'scummvm -check TARGET' command)
I have started to look into this. For fun, I begun a table of MD5 data
(http://dev.quendi.de/scumm-md5.html). We could if we wanted to, turn
this into an initial MD5 table for ScummVM. I also found GPLed MD5 code
with very good performance. I also started work on prototype code which
implements the auto detection partially.
For now, I'd like to hear other people's thoughts. Esp. Endy's of
course :-). To me, it seems that this is a quite useful addition, with
no drawbacks.
Cheers,
Max
P.S.: Feel free to email me MD5s missing from the table :-)
More information about the Scummvm-devel
mailing list