Skip to content

Configuration File

Below is a breakdown of each section of the config.yml file and its purpose. You can find a full example of the file in the config.example.yml file.


Exclude Section

Control which platforms, ROMs, or files to ignore during scanning.

Platforms

Exclude entire platforms (folders) from being scanned.

Example:

exclude:
    platforms: ["ps", "ngc", "gba"]

ROMs

Fine-tune which ROMs or files are excluded.

Single File ROMs

Applies to ROMs that are single files (not in subfolders).

  • extensions: Exclude files by extension
  • names: Exclude files by name or pattern (supports Unix wildcards)

Example:

exclude:
    roms:
        single_file:
            extensions: ["xml", "txt"]
            names: ["info.txt", "._*", "*.nfo"]

Multi-File ROMs

Applies to ROMs stored as folders (multi-disc, with DLC, etc.).

  • names: Exclude entire folders by name
  • parts.names: Exclude files by name or pattern from within multi-file ROM folders
  • parts.extensions: Exclude files by extension from within multi-file ROM folders

Example:

exclude:
    roms:
        multi_file:
            names: ["final fantasy VII", "DLC"]
            parts:
                names: ["data.xml", "._*"]
                extensions: ["xml", "txt"]

System Section

Customize how RomM interprets your folder and platform names.

Custom Folder Names

Map your custom folder names to RomM's recognized platform names.

Example:

system:
    platforms:
        gc: "ngc" # Treats 'gc' folder as GameCube
        psx: "ps" # Treats 'psx' folder as PlayStation

Versions

Associate a platform with its main version. This also tells RomM to fetch metadata from the main version source.

Example:

system:
    versions:
        naomi: "arcade"

Filesystem Section

Specify the folder name where your ROMs are located if it differs from the default.

Example:

If your ROMs folder is named my_roms instead of roms:

filesystem:
    roms_folder: "my_roms"

Scan Section

Configure metadata scanning priorities and media assets to download.

Priority

Customize the order in which metadata providers are queried during scans.

Metadata

Controls metadata provider priority order.

Provider list in default order:

  • igdb - IGDB (highest priority)
  • moby - MobyGames
  • ss - Screenscraper
  • ra - RetroAchievements
  • launchbox - Launchbox
  • gamelist - ES-DE gamelist.xml
  • hasheous - Hasheous
  • flashpoint - Flashpoint Project
  • hltb - HowLongToBeat (lowest priority)

Example:

scan:
    priority:
        metadata:
            - "igdb"
            - "ss"
            - "moby"

Artwork

Controls artwork provider priority order for cover art and screenshots.

Default: Same as priority.metadata

Example:

scan:
    priority:
        artwork:
            - "igdb"
            - "ss"
            - "moby"

Region

Sets preferred region for cover art and game title (Screenscraper only).

Default: ["us", "wor", "ss", "eu", "jp"]

Example:

scan:
    priority:
        region:
            - "us"
            - "eu"
            - "jp"

Language

Sets preferred language for cover art and game title (Screenscraper only).

Default: ["en", "fr"]

Example:

scan:
    priority:
        language:
            - "en"
            - "es"
            - "fr"

Media

Configures which media assets to download (Screenscraper and ES-DE gamelist.xml only).

Media types:

  • box2d - Normal cover art (always enabled)
  • box3d - 3D box art
  • miximage - Mixed image of multiple media
  • physical - Disc, cartridge, etc.
  • screenshot - Screenshot (enabled by default)
  • title_screen - Title screen
  • marquee - Transparent logo
  • fanart - User uploaded artwork
  • bezel - Bezel displayed around the EmulatorJS window
  • manual - Manual in PDF format (enabled by default)
  • video - Gameplay video (warning: large file size)

Example:

scan:
    media:
        - box2d
        - screenshot
        - manual
        - bezel

EmulatorJS Section

Configure EmulatorJS per-core options and controls.

Debug

Enable debug mode to log available options to the browser console.

Example:

emulatorjs:
    debug: true

Cache Limit

Cache limit per ROM in bytes. Set to null for unlimited.

Example:

emulatorjs:
    cache_limit: 52428800 # 50 MB

Settings

Configure core-specific settings. Use default to apply settings to all cores.

Example:

emulatorjs:
    settings:
        parallel_n64: # Use the exact core name
            vsync: disable
        snes9x:
            snes9x_region: ntsc
        default: # These settings apply to all cores
            fps: show

Controls

Map keyboard and controller controls for each player.

Example (2-player SNES):

emulatorjs:
    controls:
        snes9x:
            0: # Player 1
                0: # Button mapping
                    value: x # Keyboard mapping
                    value2: BUTTON_2 # Controller mapping
            1: # Player 2
                0:
                    value: /
                    value2: BUTTON_2

See EmulatorJS documentation for control mapping details.


Tip

You can find examples of full binded batocera or es-de config files.

Warning

Only uncomment or add the lines you need. Any omitted or empty sections will use RomM's defaults.

For a full example, see the config.example.yml file.