Released nihtest 1.7.0

April 19, 2024

  • Add test-case-source directory for better support of script generated test cases.

Released nihtest 1.6.0

April 10, 2024

  • Print command line for --verbose --setup-only.
  • Add stdout-replace directive.
  • Better integration with IDEs.

Released nihtest 1.5.2

March 20, 2024

  • Fix @SANDBOX@ substitution in file names on Windows.

Released nihtest 1.5.1

March 15, 2024

  • Fix preload test with newer glibc.

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 nihtest 1.5.0

January 17, 2024

  • Allow copiers/comparators to handle directories.

Released nihtest 1.4.0

January 3, 2024

  • Add copiers.
  • Add working-directory directive.
  • Add read-only directive.

Released nihtest 1.3.0

December 22, 2023

  • Add set-modification-time directive.
  • Fix inline stdin data.
  • Improve error handling.
  • Require python 3.9.

Released nihtest 1.2.0

July 19, 2023

  • Explicitly specify encoding for stdout of subcommands.

Released nihtest 1.1.1

June 27, 2023

  • Fix Windows compatibility.

Released nihtest 1.1.0

June 15, 2023

  • Improve environment variable handling.
  • Reject config file with unknown sections or directives.

Released nihtest 1.0.0

June 10, 2023

  • Initial public release of Python version of 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 NiH Repositories Moved to GitHub

December 14, 2017

We have moved the remaining NiH repositories (cftp, cg, dccserver, img2eps, malint, NeoPop-SDL, ttftot42) from our own Mercurial server to GitHub: nih-at.

This makes it easier to contribute to our software. Feel free to use the issue tracker to report bugs, or submit fixes via pull requests. But please note that these tools are deprecated, so we still will not spend much effort on them. has been retired. If you have a Mercurial checkout, please check out a fresh copy from github:

git clone$REPOSITORY.git

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.

New Website for libzip

October 19, 2017

libzip has moved to its own site at We’ve used the opportunity to completely overhaul the layout and structure of the site.

URLs pointing to will be redirected to the corresponding page on the new site.

News about libzip, including release announcements, will no longer show up on or its main RSS feed. Please check or subscribe to its RSS feed at

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 dccserver 0.5

January 20, 2012

  • cmake support (autoconf still supported)
  • portability fixes

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 img2eps 0.2

July 14, 2005

  • Support for specifying resolution, size, orientation, and placement of image.
  • Support for JPEG 2000 image format.
  • Options to force recompression of image data and to ignore pixel order.
  • Support for EXIF Orientation tag (auto-rotate images).
  • Fix handling of interlaced GIF images
  • LZW compression no longer optional (patent expired).

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 NeoPop-SDL 0.2

July 25, 2004

  • Load ROMs from zip archives.
  • YUV overlay (hardware scaling).
  • Config file (~/.neopop/neopoprc).
  • Joystick support.
  • HQ2x/HQ3x smoothing scalers.
  • Sound and throttling improvements.
  • Speed improvements.
  • Configurable key and joystick bindings.
  • Pause.
  • 10 state save slots.
  • On-screen display.

Released dccserver 0.4

November 2, 2003

  • Added “close” command; close particular connections.

  • Added “info” command; shows current transfer states for all connections. Sending dccserver a SIGINFO (or SIGUSR1 on systems without SIGINFO) signal works too.

  • Added proper timeout handling.

  • Added poll replacement function from Brian M Clapper for building on Darwin.

  • Show time taken by transfers and transfer rate.

  • dccserver can now listen on multiple ports; just specify -p multiple times. Requested by Maik Zumstrull ≶>.

  • Fixed dccsend program to work with mIRC.

  • Add contrib/ from David Oftedal <> for X-Chat users.

Released NeoPop-SDL 0.1

October 20, 2003

  • First release.

Released dccserver 0.3

April 7, 2003

  • Add dccsend program to send files to a remote dccserver. Requested by Antti Aaltonen <>.

  • Try to handle it more gracefully when two or more clients want to write to the same file. Idea from Rudolf Polzer.

  • Add lots of fflushes, some from Rudolf Polzer.

  • Strip paths from file name (some weird clients send them). Requested by Athan <>.

  • Remove superfluous seteuid call. Noted by Athan <>.

  • Mention client ID/client name in most places. Based on patches from Rudolf Polzer <>.

  • Add -e/-i options for easy embedding in irssi. Idea from from Rudolf Polzer <>.

  • Add “quit” command to exit dccserver. Idea from Rudolf Polzer <>.

  • Some minor improvements.

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 dccserver 0.2

January 28, 2003

  • Allow receiving more bytes than filesize; show a warning. Could be useful when sender doesn’t have the complete file when starting the dcc send, and in some other cases. Based on patches by Per von Zweigbergk <>.

  • Install as setuid root; drop privileges as soon as possible, and chroot to current directory. Based on patches by Per von Zweigbergk <>.

  • Debian package support, provided by Aubin Paul <>.

Released img2eps 0.1

October 16, 2002

  • First public release.

Released dccserver 0.1

October 16, 2002

  • First public release.

Released cftp 0.12

September 17, 2002

  • Preliminary support for sftp (requires ssh protocol version 2).
  • Print estimated remaining time for down- and uploads.

Released cg 0.4

May 13, 2002

  • Add yenc support.
  • Rename broken files to filename.broken.
  • CTRL-C/SIGINT handling: write rc file and quit after completely decoding current file.
  • Segfault fix (for postings of the type [422/7]).
  • Ignore some uninteresting comment lines (no .desc file).
  • Don’t assume last line before ‘end’ is not allowed to contain data in uu data.

Released cftp 0.11.2

December 11, 2001

  • New command: rmdir.
  • Don’t default to sending user name as anonymous password.
  • Fix error detection in up/downloads.

Released cftp 0.11.1

September 16, 2001

  • Fix compile problem on Red Hat 7.1.

Released cftp 0.11

September 11, 2001

  • Display transfer rates.
  • Detect stalled connections and abort after stall-timeout seconds.
  • Fix ASCII mode uploads.
  • If initial url is file, download before listing directory.
  • Display progress while reading directories.
  • Write proper URLs (encoding special chars, include user and port).
  • Only ask for password if server wants one.
  • Various bug fixes.

Released cftp 0.10

December 14, 2000

  • Support for IPv6.
  • Various bug fixes.

Released cftp 0.9.3

October 31, 1999

  • Downloads: if size is unknown, use size from server response.
  • mkdir: make directory on server (not really new, but I forgot to mention it).
  • site: send site specific commands.
  • Removed option emacs-status (which has been ignored anyway).
  • Fixed bug with status lines on small terminals (less than 25 columns).

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.

Released ttftot42 0.3.1

March 8, 1999

  • Fixed bug in AFM generation (caused segfaults).

Released ttftot42 0.3

January 4, 1999

  • Handle ISOLatin1 and PDFDoc encodings.
  • New options: --name and --filename (print FontName / file name to stdout).
  • Adjust font checksum in head table of included TrueType font.
  • Omit duplicate entries for .notdef in CharStrings dictionary.

Released ttftot42 0.2

December 10, 1998

  • First public release.