Before filling your rom folders, you need to understand what you are handling: two files carrying the same game name can behave very differently under emulation.
Emulation means reproducing on one machine the behaviour of a game written for another. On its original machine (console, arcade cabinet), a game is not emulated: it runs natively. It is stored in read-only memory chips — on the board or inside a cartridge — whose content is called a ROM (Read Only Memory).
An emulator loads that ROM and runs the program it contains, adapting to the resources available (peripherals, execution speed…). For simplicity, "rom" refers both to the chip and to the file reproducing its content.
More recently, games shipped on CD-ROM or DVD are copied into an image file called an ISO. The principle is identical: the emulator reads the image the way the original drive read the disc.
There are often several versions of the same dump for a given game, and most of them are obsolete: bad dumps, hacks, fakes, overdumps, underdumps… Which is exactly why knowing where your file comes from matters.
A consistent set of roms for a given system is called a romset.
.dat fileA .dat file (sometimes .xml) is a reference catalogue: it lists every known game for a system, with its signatures (CRC32, MD5, SHA1) and its exact size.
Compared against your collection by the right software — clrMamePro, Romulus, RomCenter, RomVault… — it immediately tells you which files are correct, which are broken and which are missing. It is the basic tool for sorting and updating your roms.
A header is the first few bytes of a rom. It tells the emulator the rom size, the game region, the mapper used, the mirroring type, the target machine… Some emulators refuse to launch a game without one.
On SNES, headers were added by the copiers of the day (Super Wild Card .swc, Super Magic Card .smc) to "sign" and lock roms. They serve no purpose today, except to keep old hacks written for ZSNES or early Snes9x versions working. Unheadered versions match the actual content of the cartridge chips.
On NES, these are iNES headers, which describe the various board types and cartridge revisions — in particular co-processors (MMC chips) and sound chips (Konami VRCx). Some emulators need them; more recent ones such as Nestopia or Mesen ship their own database and find the right descriptor from the rom's CRC32.
Preservation groups do not all pursue the same goal: some chase the perfect copy, others exhaustiveness. That changes everything in day-to-day use.
No-Intro focuses on cartridge-based games (Master System, SNES, Nintendo 64, Game Boy…). It keeps only the best roms, free of errors and alterations, as close as possible to the original cartridge, and generally keeps a single working version per region (US, Europe, Japan, France…) plus official revisions (Rev 1, Rev 2, Beta…).
These are the best sets if you intend to use netplay: every player must have exactly the same rom.
.dat files: datomatic.no-intro.org.
Redump focuses on optical media games (PlayStation, Saturn, GameCube, Dreamcast…). Same philosophy as No-Intro: the most faithful possible copy of the original disc. Redump images are larger than TOSEC or TruRip ones, but of higher quality, which is directly noticeable under emulation.
.dat files: redump.org/downloads. The list of discs not yet dumped is on the Redump wiki.
TOSEC aims at exhaustiveness: floppies, cartridges and CDs, but also magazines, manuals and videos, for computers as well as consoles (Atari ST, Amiga, Commodore, Dreamcast…). It is a cataloguing and naming system, whose mission is to identify everything in circulation.
The downside is immediate: it contains the good roms and the bad ones, broken files, extra save files, hacks, fakes, homebrews… It is not unusual to find twenty-seven versions of the same game, only three of which actually work.
TOSEC is excellent for archiving, but hard to use as-is for playing. Only use it when there is no No-Intro or Redump alternative — and then take the time to sort it carefully.
.dat files: tosecdev.org.
TruRip focuses on CD-based games and aims for the most exact duplicate of the original media — without the headers or adjustments that make games behave properly in emulators. It is the most purist approach, but also the most incomplete: many games are missing on several platforms, and the group is barely active today.
GoodTools pursues a goal close to TOSEC for some cartridge systems: gathering every game and every version of every game. You will therefore end up with a dozen versions of Super Mario (USA, JP, EUR, pirate versions, alternates…). It is a cataloguing system, not a purification one: these sets mix roms of several origins and are unsuitable for netplay.
Most of the tags in brackets and parentheses appended to filenames come from this system: see Tags used in rom filenames.
Arcade is a case of its own: the romset must match the exact version of the emulator you use. The .dat files matching the cores shipped with Recalbox are already on your machine, in the arcade network share — see Sorting and updating your roms.
To fully understand arcade (split/merged/non-merged romsets, BIOS, CHD, dependencies), read Arcade in Recalbox.
The platform-by-platform recommendation table is on the Which romsets to use with Recalbox page.