ckmame — verify
MAME ROM sets
ckmame is a program to check ROM sets for
MAME, the Multiple Arcade Machine Emulator (see
http://www.mame.net/), or other emulators that
provide ROM set information in a compatible way (e.g., Raine, Impact, or
other emulators). This is the same format as clrmamepro dat files.
ckmame tells you which ROM files are missing or have
a wrong checksum, can delete unknown and unused files from the ROM sets, and
rename or move files.
MAME is an emulator for numerous arcade machines (video games,
ranging from the 1970s to today). Since MAME is emulating the games, it uses
the original images from the arcade machines' original ROM chips. MAME's
internal database contains extensive information on the ROMs, including the
sizes and checksums of the used ROMs. Since some arcade games are variants
of others and share some of the same ROMs, there are also internal
dependencies between these so called clones. To save space, ROMs can be
archived in zip files and dynamically unzipped by MAME when you play a game.
ckmame does only support ROM sets stored as zip
ckmame tries to create a “split ROM
set” from your current collection. This means that all files needed
by the parent are kept in the parent's zip file, and only the files needed
by the clone (or child) that are different from the parent's are kept in the
child's zip file. For identifying the ROMs ckmame uses the sizes and
checksums; names are only used for verification, since the MAME team often
ckmame uses MAME's ROM database, it
must be converted into a more efficient format before use. See
mkmamedb(1) for details.
ckmame will check the games
named on the command line, or all games if none are given. Shell wildcards
are allowed. You can use command line options to select which type of errors
--fixdat, but automatically generates the output file name from the datfile's name and version number: “fix_$SYSTEM ($VERSION).dat”.
-e, delete files that are copied to the ROM set. See also
-e, do not remove files that are copied to the ROM set (default). See also
ckmamecreates a roms/garbage directory (see also
-K), which you will also be warned about.
Unknown files are moved to the sub-directory unknown. Files that will be needed by other games in the ROM set are moved to the needed directory.
In unzipped mode (
ckmame creates .ckmame.db
files in the rom directory as well as the directories given with
-e. These files are databases containing file names,
sizes, and their hashes. The database information used when the file hasn't
changed since the last run (i.e. same size and modification time).
Print a report about the current state of your ROM sets in the roms subdir of the current dir:
Fix all sets and only report unfixable errors, omitting those ROMs where no good dump exists:
Fix all sets using the files found in updatedir, removing files from there that are copied to the ROM set:
ckmame -Fj -e updatedir
Most messages should be straightforward. Two need special explanations:
If a file is marked as “broken”, it means that the computed checksum is not the same as the checksum stored in the zip archive, usually because there has been a decompression error.
If a ROM or disk is marked with “checksum mismatch”, the primary checksum matches, but one of the other checksums does not. The primary checksum for ROMs is CRC32, for disks MD5.
ckmame was written by
Dieter Baron ⟨firstname.lastname@example.org⟩ and
Thomas Klausner ⟨email@example.com⟩.