ckmame — verify
    MAME ROM sets
| ckmame | [ -CcFhjUVv] [-Ddbfile] [-edir] [-Odbfile] [-Rdir] [-Tfile] [--all-sets]
      [--complete-listfile]
      [--complete-games-only]
      [--configfile]
      [--copy-from-extra]
      [--create-fixdat]
      [--delete-unknown-patternpattern] [--extra-directorydir] [--fix]
      [--fixdat-directorydir]
      [--game-listfile]
      [--help]
      [--keep-old-duplicate]
      [--list-sets]
      [--missing-listfile]
      [--move-from-extra]
      [--no-complete-games-only]
      [--no-create-fixdat]
      [--no-report-changes]
      [--no-report-correct]
      [--no-report-correct-mia]
      [--no-report-detailed]
      [--no-report-fixable]
      [--no-report-missing]
      [--no-report-missing-mia]
      [--no-report-no-good-dump]
      [--no-report-summary]
      [--old-dbdbfile]
      [--only-if-database-updated]
      [--report-changes]
      [--report-correct]
      [--report-correct-mia]
      [--report-detailed]
      [--report-fixable]
      [--report-missing]
      [--report-missing-mia]
      [--report-no-good-dump]
      [--report-summary]
      [--rom-dbdbfile]
      [--rom-directorydir]
      [--roms-unzipped]
      [--save-directorydir]
      [--setpattern]
      [--unknown-directorydir]
      [--update-database]
      [--use-torrentzip]
      [--verbose] [--version]
      [game ...] | 
ckmame is a program to check ROM sets for
    MAME, the Multiple Arcade Machine Emulator (see
    https://www.mamedev.org/), or other emulators that
    provide ROM set information in a compatible way. 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
    files or unpacked, collected in directories per game.
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
    renames ROMs.
While ckmame uses MAME's ROM database, it
    must be converted into a more efficient format before use. See
    mkmamedb(1) for details.
By default, 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
    to report.
Supported options:
--all-sets-C,
    --complete-games-only-c,
    --report-correct--config
    file--complete-list
    file--copy-from-extra--create-fixdat-D,
    --rom-db dbfile--delete-unknown-pattern
    pattern-e,
    --extra-directory dir-F,
    --fix--fixdat-directory
    dir--create-fixdat) in
      dir instead of the current directory.-h,
    --help-j,
    --move-from-extra--copy-from-extra.--keep-old-duplicate--list-sets--missing-list
    file--no-complete-games-only--no-create-fixdat--no-report-changes--no-report-correct--no-report-correct-mia--no-report-detailed--no-report-fixable--no-report-missing--no-report-missing-mia--no-report-no-good-dump--no-report-summary-O,
    --old-db dbfile-R,
    --rom-directory dir--report-changes--report-correct-mia--report-detailed--report-fixable--report-missing--report-missing-mia--report-no-good-dump--report-correct or
      --report-missing.--report-summary--roms-unzipped--save-directory
    dir--set
    pattern-T,
    --game-list file-U,
    --only-if-database-updatedckmame if the database was updated
      (implies --update-database).--unknown-directory
    dir--update-database--use-torrentzip-V,
    --version-v,
    --verboseMAMEDB--dbfile option. Defaults to
      “mame.db”.MAMEDB_OLD--old-db option. Defaults to
      “old.db”.By default, the configuration is read from ~/.config/ckmame/ckmamerc and .ckmamerc if they exist, in this order.
The database file to read from defaults to mame.db and the roms are expected in the roms directory.
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 saved directory.
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 subdirectory of the current dir:
ckmameFix all ROMs:
ckmame
  -FdFix all ROMs using the files found in updatedir, removing files from there that are copied to the ROM set:
ckmame -Fj -e
  updatedirMost 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
    <dillo@nih.at> and
    Thomas Klausner
    <wiz@gatalith.at>.