Released ckmame 2.1

February 23, 2024

  • Add --report-changes to show changes between last and current run.
  • Add --delete-unknown-pattern to remove unknown files matching a pattern.
  • Switch to nihtest.

Released ckmame 2.0

May 31, 2022

  • Support for configuration file and multiple sets.
  • Overhaul command line options.
  • Automatically update ROM DB.
  • Speed up ROM sets with many files shared among many games.
  • Improve parse error reporting, don’t create mamedb for dats with errors, fix inconsistencies in dat.
  • Improve detector support.

Released ckmame 1.1

June 28, 2021

  • Read-only 7z support.
  • Improve detector support.
  • Bump mamedb version. All mame.db files need to be regenerated.
  • Follow MAME in expecting disk images in subdirectories.
  • Remove broken support for checking samples.
  • Convert to C++17.

Released ckmame 1.0

December 18, 2018

  • add --stats to print stats about the state of the ROM set
  • add support to only keep complete games in ROM set
  • add --autofixdat to create fixdat with a name based on the dat name
  • improve MAME (neogeo set) support
  • fix up regression test suite
  • switched to CMake build system

Official ckmame Repository Moved to GitHub

December 11, 2017

We have moved the ckmame repository from our own Mercurial server to GitHub: nih-at/ckmame.

This makes it easier to contribute to ckmame. Feel free to use the issue tracker to report bugs, or submit fixes via pull requests. has been retired. If you have a Mercurial checkout, please check out a fresh copy of libzip from github:

git clone

Webpage Redesign

November 6, 2017

The web site has been redesigned for more clarity. Old links remain valid.

Also, it is now served via HTTPS.

Released ckmame 0.12

May 3, 2015

  • add support for on-disk caches to speed up consecutive runs
  • support for ROMs in directories instead of in zip archives
  • fix all fixable ROM errors automatically in one run
  • speed up database operations by preparing statements only once
  • remove torrentzip support (removed in libzip)

Released ckmame 0.11

February 20, 2011

  • MESS Software Lists support
  • retire, use mame -listxml | mkmamedb instead
  • link/copy disks from extra if -j (--delete-found) isn’t specified
  • ckmame: display current game on SIGINFO (Ctrl-T)
  • removed ROMPATH support since mame uses a path in the config file nowadays

Major Webpage Overhaul

August 18, 2008

The web page has been improved and new features have been added:

The repository browser is now integrated into the website; mailing list archives have been added; and news, release announcements. and commits are available as RSS feeds.

Released ckmame 0.10

July 25, 2008

  • use SQLite3 instead of Berkeley DB
  • optionally TorrentZip ROM set
  • mkmamedb: add support for ROM Management Datafile format
  • mkmamedb: add support to read dat files from zip archives
  • mkmamedb: extract version and game description from listxml output
  • ckmame: fix finding ROMs that need detectors from superfluous and extra
  • change to 3-clause BSD license

Next ckmame Version Will Use SQLite 3

November 8, 2007

The next version of ckmame will use SQLite 3 instead of Berkeley DB.

This avoids the portability nightmare of finding compatible header files and library names, which vary widely across systems.

It also simplifies ckmame’s database model, since we no longer need to maintain indices ourselves. This allows for easier manipulation of the database, which will be facilitated by the forthcoming database editing tool.

Released ckmame 0.9

June 4, 2007

  • add support for CMPro XML header skip detectors
  • fix handling of zero byte ROMs
  • dumpgame: brief option: no ROM/disk info
  • mkmamedb: add support for reading Romcenter dat files
  • mkmamedb: warn about multiple games with same name
  • mkmamedb: create CMPro dat files
  • mkmamedb: create mame db or CMPro dat file from zip archives
  • ckmame: add option to keep files present in old ROM database

Switched from CVS to Mercurial

May 16, 2007

We switched from CVS to Mercurial, a distributed version control system. has been replaced by

Released ckmame 0.8

May 18, 2006

  • clean up superfluous files and extra directories
  • use additional DB listing files that exist elsewhere
  • read games to check from file
  • create DB from multiple dat files
  • omit games matching shell glob patterns from database
  • don’t open archives or disk images multiple times
  • don’t accept disk images that need a parent
  • move unknown files to directory unknown, not to garbage in ROM path

Released ckmame 0.7

December 28, 2005

  • fix all fixable errors in at most two runs
  • rename disks
  • support searching for files in additional directories
  • detect faked ROMs (correct CRC, wrong MD5/SHA1)
  • adapt for MAME version numbers of 0.100 and above
  • dropped support for inferring flags/status from CRC (old MAME versions)
  • deprecated -u/-U command line options
  • simplify ROM matching logic
  • many new regression tests, causing
  • various bug fixes

Released ckmame 0.6

June 17, 2005

  • libzip is distributed separately
  • Support MAME/MESS -listxml output
  • Adapt for MAME -listinfo output changes (honor flags baddump and nodump).
  • Check disk images (chd files).
  • Superfluous merged into ckmame. ckmame now by default reports extra files. Also works for samples.
  • add file format version to database and don’t use incompatible database
  • dumpgame: find game by checksum of one of its ROMs
  • add script to create database by running xmame

Released ckmame 0.5

January 30, 2003

  • MESS, Impact, Raine, and others based on the CMPro format now supported.
  • Man page added.
  • Bug fixes.

Released ckmame 0.4.1

October 6, 1999

  • If a a clone zip didn’t exist, it was not created.
  • The DOS port now really can fix ROM sets.

Released ckmame 0.4

September 23, 1999

  • FIrst public release.