Skip to content

Merging

Matt Nadareski edited this page Sep 19, 2025 · 3 revisions

Merging

This page contains information on the various merging modes that are available.

For features that either allow for setting a merging flag (such as forcemerging) or forcing a merging mode to run (such as --dat-full-non-merged), see the following table for values and the merging modes they relate to:

Value Description
split Create Split sets
merged Create Merged sets
fullmerged Create Fully Merged sets
nonmerged or unmerged Create Non-Merged sets
full, fullnonmerged, fullunmerged Create Fully Non-Merged sets
device, devicenonmerged, deviceunmerged Create Device Non-Merged sets

Please note that fullmerged, fullnonmerged, and devicenonmerged are not common and may not be supported as header flags in all programs.

For users of older versions of the program, the behavior of merged used to follow what is now fullmerged, so using the same flag may result in more files per parent set. To keep the same behavior, please use fullmerged.

Definitions

There are a few definitions that are needed that are common among many of the merging types:

  • Child Set - A child set is considered to be a game or machine that contains a romof and/or cloneof tag.
  • Parent Set - A parent set is considered to be a game or machine whose name is used as a romof or cloneof tag value. Usually, if it is used as romof, the parent set is considered to be a BIOS and if it is used as cloneof, it's a direct parent (usually the latest version of a set).
  • Device Reference - Device references are special items that are contained within the ListXML DatFile type that are denoted by device_ref. Device references contain the name of another set that is used in conjunction with the current set in some way.
  • Slot and SlotOption - Slots are special items that are contained within the ListXML DatFile type that are denoted by slot. SlotOptions are subitems of Slots denoted by slotoption. A slot on a set represents an interchangable pieces of the base machine, such as cartridge slots and peripherals. Slot options are the various sets that can be used in those slots, such as keyboards, mice, controllers, and catridges.

Split

Split means that child sets should be processed such that they contain no items in common with their parent sets. This is done both by the use of the merge tag (for disk and rom types), as well as comparison of names to the base. Using this merging mode can reduce the size of any individual set and the amount of duplicate data but does not reduce the total number of sets.

Merged

Merged means that parent sets should be processed such that they contain all children as subfolders in the cloneof parent. Any items that are in common with the parent set or already exist in another child set that has been included are skipped. This is done by the use of the merge tag (for disk and rom types). Using this merging mode reduces the number of sets and slightly reduces the amount of duplicate data stored. However, each individual set is larger.

Full Merged

Full merged means that parent sets should be processed such that they contain all children as subfolders in the cloneof parent. Any items that are in common with the parent set or already exist in another child set that has been included are skipped. This is done both by the use of the merge tag (for disk and rom types), as well as comparison of names to the base. Using this merging mode reduces the number of sets and slightly reduces the amount of duplicate data stored. However, each individual set is larger.

Non-Merged

Non-merged means that child sets should be processed such that they contain all items from their parent sets. Any items that are in common with the parent sets are skipped over. Using this merging mode makes each individual set more likely to be self-contained. However, each individual set is larger and there is no change in the number of sets.

Full Non-Merged

Full non-merged means that child sets should be processed such that they contain all items from their parent sets, device references, and slots. Any items that are in common with the parent sets, device references, or slots are skipped over. Using this merging mode makes each individual set nearly guaranteed to be self-contained. However, each individual set is much larger and there is no change in the number of sets.

Device Non-Merged

Device non-merged means that child sets should be processed such that they contain all items from their device references and slots. Any items that are in common with the device references or slots are skipped over. Using this merging mode makes each individual set more likely to be self-contained. However, each individual set is larger and there is no change in the number of sets.

Clone this wiki locally