Skip to content

Folder Structure

RomM requires one of these folder structures for proper operation. It will first attempt to detect Structure A (recommended), and if not found, will fall back to Structure B. This auto-detection ensures flexibility while encouraging organization best practices.

Folder Organization

RomM organizes content in two main categories: ROMs and BIOS files.

  • Structure A (Recommended): Both ROMs and BIOS files have their own dedicated root folders, with platform folders inside each.

  • /roms/{platform}/ - Contains all game files for that platform

  • /bios/{platform}/ - Contains all BIOS files for that platform

  • Structure B (Fallback): Each platform has its own root folder containing both a ROMs folder and a BIOS folder.

  • /{platform}/roms/ - Contains all game files for that platform
  • /{platform}/bios/ - Contains all BIOS files for that platform

Note

The BIOS folder is entirely optional and only needed for platforms that require BIOS files.

When using Docker, the volume mount point differs based on your chosen structure:

  • Structure A: Mount the parent folder of the roms folder
  • Structure B: Mount the parent folder of the platform folders

For multifile games (games stored as folders with multiple files or folders inside), RomM will detect special folders inside the game and will display with special tags in the webUI:

  • dlc
  • hack
  • manual
  • mod
  • patch
  • update
  • demo
  • translation
  • prototype

Tip

For folder naming conventions, review the Platform Support section. To override default system names in the folder structure (if your directories are named differently), see the Configuration File section.

Structure A (recommended) Structure B (fallback)
library/roms/{platform}/{game} library/{platform}/roms/{game}
        library/
        ├─ roms/
        │  ├─ gbc/
        │  │  ├─ game_1.gbc
        │  │  └─ game_2.gbc
        │  │
        │  ├─ gba/
        │  │  ├─ game_3.gba
        │  │  └─ game_4/
        │  │     ├─ game_4.gba
        │  │     ├─ dlc
        │  │     │  ├─ game_4_dlc_1.7z
        │  │     │  └─ game_4_dlc_2.7z
        │  │     ├─ hack
        │  │     │  └─ game_4_hardmode.rar
        │  │     ├─ manual
        │  │     │  └─ game_4_manual.pdf
        │  │     ├─ mod
        │  │     │  └─ game_4_crazy_mode.zip
        │  │     ├─ patch
        │  │     │  └─ game_4_patch_v1.1.zip
        │  │     ├─ update
        │  │     ├─ demo
        │  │     ├─ translation
        │  │     └─ prototype
        │  │
        │  └─ ps/
        │     ├─ game_5/
        │     │   ├─ game_5_cd_1.iso
        │     │   └─ game_5_cd_2.iso
        │     │
        │     └─ game_6.iso
        │
        └─ bios/
           ├─ gba/
           │  └─ gba_bios.bin
           │
           └─ ps/
              ├─ scph1001.bin
              ├─ scph5501.bin
              └─ scph5502.bin
      
        library/
        ├─ gbc/
        │  └─ roms/
        │     ├─ game_1.gbc
        │     └─ game_2.gbc
        │
        ├─ gba/
        │  ├─ roms/
        │  │  ├─ game_3.gba
        │  │  └─ game_4/
        │  │     ├─ game_4.gba
        │  │     ├─ dlc
        │  │     │  ├─ game_4_dlc_1.7z
        │  │     │  └─ game_4_dlc_2.7z
        │  │     ├─ hack
        │  │     │  └─ game_4_hardmode.rar
        │  │     ├─ manual
        │  │     │  └─ game_4_manual.pdf
        │  │     ├─ mod
        │  │     │  └─ game_4_crazy_mode.zip
        │  │     ├─ patch
        │  │     │  └─ game_4_patch_v1.1.zip
        │  │     ├─ update
        │  │     ├─ demo
        │  │     ├─ translation
        │  │     └─ prototype
        │  │
        │  └─ bios/
        │     └─ gba_bios.bin
        │
        └─ ps/
           ├─ roms/
           │  ├─ game_5/
           │  │  ├─ game_5_cd_1.iso
           │  │  └─ game_5_cd_2.iso
           │  │
           │  └─ game_6.iso
           │
           └─ bios/
              ├─ scph1001.bin
              ├─ scph5501.bin
              └─ scph5502.bin
      

Note

RomM can be setup without a prior folder structure. If files are manually uploaded from the webUI, RomM will automatically create the folder Structure A

Configuration file

RomM's behavior can be customized using a config.yml file or through the Library Management page in the Settings menu. You can grab the example config.example.yml file and adapt it to your library.

What is shown in the Library Management page is the content of the config.yml. For more details read the configuration file section.

Naming Convention

Tag Support

Games can be tagged with region, revision, or other tags by using parentheses in the file name. RomM will parse both tags with [] and ().

  • Regions and languages will be identified with both supported shortcodes and names. Additionally, you can set a custom region/language adding a reg or reg- prefix (e.g. reg MyOwnLang or reg-MyOwnLang)
  • Revision tags must be prefixed with rev or rev- (e.g. rev v1 or rev-1)
  • Other tags will also be imported, for example: tetris [1.0001](HACK)[!].gba

Tags can be used to search for games in the search bar. For example, searching for (USA) will return all games with the USA tag.

Supported Languages

Code Language
Ar Arabic
Da Danish
De German
El Greek
En English
Es Spanish
Fi Finnish
Fr French
It Italian
Ja Japanese
Ko Korean
Nl Dutch
No Norwegian
Pl Polish
Pt Portuguese
Ru Russian
Sr Serbian
Sv Swedish
Zh Chinese
nolang No Language

Supported Regions

Code Region
A Australia
AS Asia
B Brazil
C Canada
CH China
E Europe
F France
FN Finland
G Germany
GR Greece
H Holland
HK Hong Kong
I Italy
J Japan
K Korea
NL Netherlands
NO Norway
PD Public Domain
R Russia
S Spain
SW Sweden
T Taiwan
U USA
UK England
UNK Unknown
UNL Unlicensed
W World