Reporting unknown MD5 checksums

From ScummVM :: Wiki
Revision as of 00:25, 6 October 2023 by Cadi (talk | contribs) (Updates MacOS manual MD5 instructions)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

This page contains instructions on what to do if you got a version of a game that the ScummVM team is not aware of (perhaps a rare version, or a less known one, or perhaps an unknown non-English version). In such cases, here's what you can do to get your version supported under ScummVM.

From ScummVM

Unknown game dialog
Unknown game ticket

Recent versions of ScummVM will display a dialog when detecting unknown game variants when you try to add a game to ScummVM. From this dialog you may have the option to report the game directly to our bug tracker. This will generate automatically the new ticket, but please add the game name, version, and language to the description before submitting the ticket.

The option to report the game is not available on all platforms, and in that case you may want to use the option to copy the detection information to the clipboard instead, and then paste it manually to your report.

As a last resort, if neither the Report game nor the Copy to clipboard options are available on your platform, or if you are using an older version of ScummVM, the detection information will also be available in the ScummVM console window and in the ScummVM log file, and you can copy it from there. Check the README on how you can access the console or the log file for your platform. You can also redirect ScummVM's output to a text file, by running ScummVM as follows:

scummvm > file.txt

If for some reason none of the options above are working, you need to follow an a bit harder process.

Manually

The MD5-based detection in ScummVM uses the first bytes of each file to determine its MD5 checksum. This is necessary to speed up the detection process and to avoid having to calculate the MD5 checksums of large files, which would make game detection very slow. Each engine in ScummVM uses a different number of bytes to calculate their MD5 checksums.

Number of bytes in each engine, to compute an MD5 hash:
AGI, AGOS, Blade Runner, Cine, Composer, CruisE, Director, Draci, Drascula, Dreamweb, Gob, Groovie, M4, MADE, Mohawk, Parallaction, SAGA, SCI, TeenAgent, Tinsel - 5000 bytes (default)
Lure - 1024 bytes
Kyra, SCUMM - 1024 * 1024 bytes
Touche - 4096 bytes
Tucker - 512 bytes

Queen, Sky, Sword1, Sword2 use a different detection.

To get the correct MD5 checksum, run the following

Using ScummVM

Since version 2.6.0, ScummVM can compute and report the md5 of files on the command line.

 scummvm --md5 --md5-path=file --md5-engine=engine

Where file is the file to be examined and engine is the engine that would use this file. This will automatically use the size used for detection by the specified engine. The size can also be provided manually using --md5-length=size instead of --md5-engine=engine

For old Mac files with a resource fork, us --md5mac instead of --md5.

Under *nix

 head -c size file | md5sum

Where file is the file to be examined and size depends on the engine, as described above.

Under macOS

head -c size file | md5 -r

Where file is the file to be examined and size depends on the engine, as described above.

Alternatively, you can install md5sum and run the *nix command above.

Under Windows

Download md5deep and run it like this:

 md5deep -p size file | find /i "offset 0-"

Where file is the file to be examined and size depends on the engine, as described above.

Alternatively, you can download the gnuwin32 coreutils and run the *nix command above. You will need head.exe, md5sum.exe, and the two libraries from the dependency package.

Submitting the MD5 Checksum

After you get the MD5 sums of the game files, you can report them by using our bug tracker. It is much preferred over a post in the forums.

Please indicate the game name, version, and language in the report. Also to speedup things, please consider providing directory layout of your game.