Contents · Français

Naming conventions and DAT files

Choosing the convention

The source, the DAT file and the convention are set in the Collection step, in that order: the Source frame (the only required field), then the DAT catalogue frame (optional), which also holds the convention, and, with the MAME convention, the MAME files frame (optional). Without a DAT, a sentence under the field recalls that the games are then only recognised from the names of their files. A cross at the end of a file or folder field empties it: that is how you stop using a DAT, a CHD folder, or a category or rating file.

The Collection step

The Convention list, in the DAT catalogue frame, offers:

The effective convention also selects the filter settings shown in the Filters page (TOSEC, or No-Intro / Redump, also used for MAME and its software lists).

How names are read

TOSEC

A TOSEC name holds its information in a fixed order:

Title v1.1 (demo) (1991)(Publisher)(System)(Video)(Country)(Language)(Copyright)(Status)(Media)[flags].ext

For instance Another World v1.1 (1991)(Delphine)(FR)(Disk 1 of 2)[cr Quartex].adf. RomSieve reads the title, the version, the date, the publisher, the system (A500, AGA, C64...), the video standard (PAL, NTSC), the countries, the languages (en, fr-de, M3 for "3 languages"), the media (Disk 1 of 2, Side B, Tape 1) and the flags in brackets:

Flag Meaning
[!] Verified dump
[a], [a2] Alternate dump
[b] Bad dump
[o], [u] Overdump, underdump
[v] Infected by a virus
[cr], [t], [h], [f], [m], [p] Crack, trainer, hack, fix, modification, pirate release
[tr Fr] Translation

A file whose name does not follow at least Title (date)(publisher).ext is non-conforming.

No-Intro and Redump

Title (Region) (Languages) (Rev 1) (Beta) (Disc 2).ext

For instance Super Mario World (USA).sfc or Final Fantasy VII (Europe) (Disc 1).cue. RomSieve reads the regions, the languages, the revision, the development status (Beta, Proto, Sample...), the unofficial releases (Unl, Pirate, Hack...), the modern re-releases (Virtual Console, Switch Online, Classic Mini...) and the disc number.

Optical media

A descriptor (.cue, .gdi, .ccd) and its tracks (.bin, .img, .sub...) form a set: they are analyzed, renamed and transferred together, on disk as well as inside archives. When a set has to be renamed to avoid a conflict, the descriptor is rewritten to point to the renamed tracks.

DAT files

A DAT file lists the ROMs of a collection with their name, size and checksums (CRC32, often MD5 and SHA-1). RomSieve reads the Logiqx XML (.dat, .xml) and ClrMamePro (.dat) formats published by TOSEC, No-Intro and Redump.

With a DAT:

Some details:

Verify the SHA-1

The CRC32 is short: two different files may share it. With Verify SHA-1 checked (in the advanced options), RomSieve also computes the SHA-1 of each file identified by its CRC32 when the DAT provides one (Redump DATs do), and rejects the match if it differs. It is safer but slower, since each identified file is read again (a file inside a ZIP has to be decompressed).

Verify the content of the archives

A file in an archive (ZIP, 7z, RAR) is identified by the CRC32 the archive records for it, without being read, and a MAME set is copied as it is: a damaged archive whose header is right passes for complete. With Verify archive contents checked (in the advanced options), RomSieve decompresses every file of every archive and compares its content with that CRC32, as the full scan of a ROM manager does. A damaged file is non-conforming ("File damaged in its archive"), and a game with a damaged track is damaged as a whole; a damaged MAME set is non-conforming ("Damaged archive"), its ROMs counted as missing: repair it with a ROM manager. The first analysis is much slower, since every archive is decompressed; the result is then kept in the cache of the headers, and only a new or changed archive is read again. A file of a 7z or RAR archive that records no CRC32 cannot be verified.

Calculation speed

CRC computation, in the preferences window, sets how many files are hashed at the same time: 1 file at a time suits a hard disk drive best; 2, 4, 8 or Automatic speed the analysis up on an SSD, an NVMe drive or a fast NAS. The result never depends on it. It is a sort option: it is saved in the profiles, and loading a profile can change it. The checksums are cached: a second analysis of unchanged files is much faster.

MAME DATs

A MAME DAT (the output of mame -listxml, or a non-merged or merged DAT made by SabreTools) makes the MAME convention detected: the badge shows MAME (detected). It can also be chosen in the list, but it requires a MAME DAT.

With this convention, the unit is the set: an archive (ZIP or 7z) bearing the short name of a machine (sf2.zip).

Romset types

RomSieve sorts the archives as they are: it never rebuilds, repairs nor converts a set.

Romset An archive holds With RomSieve
non-merged All the ROMs of its machine, BIOS included Each parent and each clone is a set of its own: 1G1R and the filters choose between them.
merged The parent and all its clones Sorted as it is, with its clones: 1G1R and the filters choose the whole archive, not a clone.
split Only the ROMs of its own machine A parent is sorted normally. A clone does not run without the set of its parent: it is reported, and in 1G1R it always loses to its complete parent.

In a merged or split collection, the games take from the BIOS sets the ROMs they share with their BIOS: put the BIOS and device sets in the source, and RomSieve sorts those the kept games need. To change the romset type, use a romset manager such as clrmamepro or RomVault.

Samples are not supported, and a file outside an archive (except a CHD) is not a MAME set.

Machine categories

The MAME DAT does not tell the genre of a machine. The community publishes category files, which RomSieve reads when you enter one in the Categories field of the Collection step (--categories option on the command line):

A category followed by * Mature * marks a machine for adults. A clone the file does not list takes the category of its parent. The categories feed the filters, the search of the table and the {genre} and {category} variables of the folder pattern. A missing or unreadable file is reported in the log, and the sort goes on without categories.

Machine ratings

progettosnaps also publishes bestgames.ini, which rates a few thousand arcade games out of 100, by range of ten (from 0 to 10 (Worst) to 90 to 100 (Best Games)). Enter it in the Ratings field of the Collection step (--ratings option on the command line): a clone takes the rating of its parent, and a machine the file does not list is unrated. The ratings feed the rating filters and the size limit; the detail panel of the table shows them.

MAME software lists

Besides its arcade machines, MAME emulates consoles and computers, whose cartridges, disks and tapes it describes in software lists: one list per kind of media (megadriv for the Mega Drive cartridges, a2600, cpc_flop...). A Software List ROMs collection holds one folder per list, and one archive per software in it (megadriv/sonic.zip). RomSieve reads two kinds of DATs for a list:

Each of these DATs makes the MAME software list convention detected (the badge shows MAME list (detected)), from the publisher its software name. The convention can also be chosen in the list, but it requires the DAT of the list.

To sort one list, choose its DAT and, as the source, the folder of the list (Software List ROMs/megadriv).

To sort several lists at once, choose a folder of DATs: Browse... next to the DAT field, then Folder of DATs (MAME software lists)…, or --dat <folder> on the command line. The folder holds a DAT per list: the Software List ROMs folder of the DatRoot of ROMVault, or the hash folder of MAME. An output of MAME that holds several lists (mame -getsoftlist, mame -listsoftware) works the same way. The source is then the folder that holds a folder per list (Software List ROMs), and Scan subdirectories recursively must be checked.

Split sets. The Pleasuredome collections are split: the archive of a clone only holds the ROMs it does not share with its parent. With the hash file, RomSieve knows it: a kept split clone takes its parent with it (the Required badge), as MAME needs it. A SabreTools DAT lists only the own ROMs of a clone and names no parent: the clone looks complete, and nothing tells that it needs its parent. In MAME 0.289, this concerns 868 of the 41,505 clones of the lists, most of them in nes (416) and msx2_flop (114); use the hash file for these lists.

Archives

With Inspect archives (ZIP, 7z, RAR) (advanced option, checked by default), RomSieve lists the files inside each archive and identifies them by the CRC32 recorded in the archive, without extracting anything. The kept files are extracted by the sort; the archive itself stays in place, even in Move mode.

CHD files

RomSieve reads the header of .chd files (versions 3 to 5) and their track list without decompressing them. An unreadable or incomplete CHD is non-conforming.