RomM scans the directory you mount atDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/rommapp/romm/llms.txt
Use this file to discover all available pages before exploring further.
/romm/library inside the container and builds your entire game database from what it finds there. Getting the folder layout right is the most important step before running your first scan — the structure tells RomM which platform each game belongs to, whether a game spans multiple files, and how to categorize extras like DLC or manuals.
Top-level layout
The library directory contains aroms/ subfolder, and beneath that one folder per platform. Each platform folder holds either individual ROM files (single-file games) or subfolders (multi-file games):
RomM normalizes platform folder names when matching them to its internal platform list — capitalization and spaces are ignored during lookup. A folder named
Nintendo Switch, nintendo-switch, or switch will all resolve correctly as long as an alias or slug match exists. Using the exact RomM slug is still the most reliable approach.Configuring the roms/ subfolder name
The roms/ subfolder name is not hardcoded. You can change it with the filesystem.roms_folder key in your config.yml:
library/retro_games/<platform>/ instead of library/roms/<platform>/. The default value is roms.
RomM also supports an inverted layout (Structure B) where the platform folder sits at the top level and contains the roms subfolder:
roms/{platform}) takes priority when both layouts are detected simultaneously, so existing libraries will not break if a stray Structure B directory appears alongside them.
Platform folder names and custom mappings
If your existing library uses different folder names — for examplegc instead of ngc, or ps1 instead of psx — you can define custom mappings in config.yml without renaming any directories:
[your folder name]: [RomM platform slug]. Platforms listed in exclude.platforms are skipped entirely during scans:
Multi-file games
Any subfolder found directly inside a platform directory is treated by RomM as a multi-file game. This covers multi-disk titles, games with separate update or DLC files, and any other release that ships as more than one file:RomM does not recurse further into subdirectories inside a multi-file game folder. Files nested more than one level deep inside the game subfolder are ignored during hash calculation but are still indexed as part of the game entry.
DLC, updates, patches, mods, and other categories
When files are organised inside a multi-file game subfolder, RomM automatically categorizes them based on the subfolder path components. The recognized category names and their folder-name conventions are:| Category | Folder name (singular or plural) | Example path |
|---|---|---|
dlc | dlc / dlcs | game/dlcs/expansion.pkg |
update | update / updates | game/updates/v1.1.nsp |
patch | patch / patches | game/patches/fix.ips |
mod | mod / mods | game/mods/texture-pack.zip |
hack | hack / hacks | game/hacks/randomizer.ips |
manual | manual / manuals | game/manuals/booklet.pdf |
demo | demo / demos | game/demos/trial.bin |
translation | translation / translations | game/translations/en.ips |
prototype | prototype / prototypes | game/prototypes/early-build.bin |
cheat | cheat / cheats | game/cheats/codes.cht |
soundtrack | soundtrack / soundtracks | game/soundtracks/ost.flac |
screenshot | screenshot / screenshots | game/screenshots/title-screen.png |
exclude.roms.multi_file section in config.yml:
Tag support
RomM parses tags embedded in ROM filenames following the No-Intro and Redump naming conventions. Tags appear in parentheses() or square brackets [] and are used to record region, language, revision, version, and other metadata. Parsed tags are stored per game and are fully filterable in the RomM UI.
Region tags — parenthesised region names or standard two-letter codes are recognised and normalised:
Rev or v / ver / version:
Multiple values inside a single tag group can be comma-separated. For example,
(USA, Europe) is parsed as two separate regions, and (En, Fr, De) is parsed as three separate languages.BIOS and firmware files
BIOS and firmware files should be placed in the top-levelbios/ directory inside your library, not inside the roms/ folder: