CKMAMERC(5)

NAME
ckmamerc - config file for ckmame, dumpgame, and mkmamedb

DESCRIPTION
The ckmamerc config file sets global or local configuration for running ckmame(1), dumpgame(1), and mkmamedb(1).

By default, the configuration is read from ~/.config/ckmame/ckmamerc and .ckmamerc in the current directory if they exist, in this order.

Many settings can also be specified on the command line.

Later settings override earlier ones.

  SECTIONS
The config file is in TOML format and consists of three types of sections. A section header consists of the name of the section enclosed in square brackets on its own line.

[global]
    The “global” section contains settings that apply in general.

["set name"]
    “set name” sections contain settings for a particular set (see the - -set command line option).

[profile."profile name"]
    Settings can be shared and referenced from multiple sets by defining them in a profile and referencing this. Use sections whose name starts with “profile.” for this. They can be referenced from other sections by using the “profiles” keyword with “profile name” (without the leading “profile.”).

  CONFIGURATION VARIABLES
Most command line options can be used as configuration variables in the config file. Take the name of the long option and use it without the leading dashes. For boolean settings and those with a value, use the
    variable = value
syntax. For example, ckmame(1)'s - -complete-games-only will be written in the config file as
    complete-games-only = true

Options that exist as - -foo and - -no-foo are mapped to a single configuration value with values “true” and “false”.

For full documentation of config file options with corresponding command line options, see the manual page of the command.

Options can use the string “$set” which will be replaced by the set name when used.

The following options are supported by all tools:

rom-db
    String.

profiles
    Array of strings. List of profile names (without the leading “profile.”) whose configuration variables should be merged into the current section.

sets
    Array of strings. Each string is the name of a set.

sets-file
    String. Points to a file that lists sets, one line per set.

update-database
    Boolean.

verbose
    Boolean.

The following options are supported only by ckmame(1) and mkmamedb(1):

roms-zipped
    Boolean.

use-central-cache-directory
    Boolean. Put the cache databases generated by ckmame(1) and mkmamedb(1) below $HOME/.cache/ckmame/. This affects the location of mkmamedb(1)'s .mkmamedb.db (- -directory-cache) and ckmame(1)'s .ckmame.db files for extra-directories (but not for the roms, saved, and unknown directories).

The following options are supported only by ckmame(1):

complete-games-only
    Boolean.

complete-list
    String.

create-fixdat
    Boolean.

delete-unknown-pattern
    String.

extra-directories
    Either an array of strings, or a table where the keys are directories and the values are a table of options. For the second case, the following options are supported:

    move-from-extra
        Boolean.

    use-central-cache-directory
        Boolean.

extra-directories-append
    Same as “extra-directories” but does not override the previous value, but appends to it instead.

fixdat-directory
    String.

keep-old-duplicates
    Boolean.

mia-games
    String.

missing-list
    String.

move-from-extra
    Boolean. Setting this to “false” is the same as using - -copy-from-extra on the command line.

old-db
    String.

report-changes
    Boolean.

report-correct
    Boolean.

report-detailed
    Boolean.

report-fixable
    Boolean.

report-missing
    Boolean.

report-no-good-dump
    Boolean.

report-summary
    Boolean.

rom-directory
    String.

saved-directory
    String.

unknown-directory
    String.

use-torrentzip
    Boolean.

The following variables are only supported by ckstatus(1):

report-status
    Report this set when running ckstatus(1) with - -all-sets. Defaults to “true”.

The following variables are only supported by mkmamedb(1):

dats
    Array of strings, or table where the keys are strings and the values are tables with options. Each string is the (internal) name of a dat. The supported options in the second case are:

    game-name-suffix
        String. Suffix all game names in the dat with the given string argument.

    use-description-as-name
        Boolean.

dat-directories
    Either an array of strings, or a table where the keys are directories and the values are a table of options. Each string is a directory containing dats.

    use-central-cache-directory
        Boolean.

use-temp-directory
    Boolean.

TOML PITFALLS
While TOML is a relatively simple and readable format, it has some unexpected details:

Any key that contains characters other than letters, digits, “-”, and “_” must be quoted using double quotes.

Nested tables can be written in two forms:

Inline using “{” and “}”. However, the complete inline table must be on one line (unlike inline arrays, which can span multiple lines). See “extra-directories-append” in “Big Set” in EXAMPLES below.

As sections with a “”. separating the outer and inner names:
    ["outer table name"."inner table name"]
Note that the “”. must be outside any quotation marks. All settings in this section apply to the inner table. When using this for options that allow tables as values (like “dats”), the keys in this table are not configuration variables and need to be quoted if they contain special characters. See “extra-directories” in “Unzipped Set” in EXAMPLES below.

EXAMPLES

    [global]
    verbose = true
    extra-directories = [ "incoming" ]
    sets = [ "Set using standard settings only" ]
    [profile.incomplete]
    complete-only = true
    report-missing = false
    ["Big Set"]
    verbose = false
    rom-directory = "Big Set ROMs"
    extra-directories-append = { "another-location" = { move-from-extra = true } }
    rom-db = "Big Set.db"
    profiles = [ "incomplete" ]
    ["Unzipped Set"]
    roms-unzipped = true
    rom-directory = "Unzipped Set ROMs"
    rom-db = "Unzipped Set.db"
    ["Unzipped Set".extra-directories]
    "unzipped-incoming" = { use-central-cache-directory = true }

This configuration would by default report verbosely, but override this for the "Big Set" set. It would also set the rom directories and database files for both the "Big Set" and the "Unzipped Set" and not use ZIP archives for the latter.

Example run:
    ckmame --set Big Set

SEE ALSO
ckmame(1), ckstatus(1), dumpgame(1), mkmamedb(1)

AUTHORS
-nosplit ckmame was written by Dieter Baron <dillo@nih.at> and Thomas Klausner <wiz@gatalith.at>.