romm logo
romm logotype

A beautiful, powerful, self-hosted rom manager.


[![license-badge-img]][license-badge] [![release-badge-img]][release-badge] [![docker-pulls-badge-img]][docker-pulls-badge] [![discord-badge-img]][discord-badge] [![unraid-badge-img]][unraid-badge] [![wiki-badge-img]][wiki]
# Table of Contents - [Table of Contents](#table-of-contents) - [Overview](#overview) - [Features](#features) - [Preview](#preview) - [Installation](#installation) - [Configuration](#configuration) - [Folder Structure](#folder-structure) - [Configuration File](#configuration-file) - [Scheduler](#scheduler) - [Naming Convention](#naming-convention) - [Platform Support](#platform-support) - [Tag Support](#tag-support) - [Community](#community) - [Support](#support) - [Our Friends](#our-friends) # Overview RomM (ROM Manager) allows you to scan, enrich, browse and play your game collection with a clean and responsive interface. With support for multiple platforms, various naming schemes, and custom tags, RomM is a must-have for anyone who plays on emulators. ## Features - Scans and enhance your game library with metadata from [IGDB][igdb-api], [Screenscraper][screenscraper-api] and [MobyGames][mobygames-api] - Metadata available for [400+ platforms][platform-support] - Play games directly from the browser using [EmulatorJS][wiki-emulatorjs] - Share your library with friends with limited access and permissions - Official apps for [Playnite][playnite-app] and [muOS][muos-app] - Supports mutli-disk games, DCLs, mods, hacks, patches, and manuals - Parse and [filter by tags][tag-support] in filenames - View, upload, update, and delete games from any modern web browser ## Preview | 🖥 Desktop | 📱 Mobile | | :-----------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------: | | desktop preview | mobile preview | # Installation To start using RomM, check out the [Quick Start Guide][wiki-quick-start-guide] in the wiki. If you are having issues with RomM, please review the page for [troubleshooting steps][wiki-troubleshooting] and common issues, or join the [Discord][discord-invite] for support from the community. # Configuration ## Folder Structure As mentioned in the installation section, RomM requires a specific folder structure. The two supported structures are as follows:
Structure A (recommended) Structure B (fallback)
library/roms/gbc/game_1.gbc library/gbc/roms/game_1.gbc
        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
        │  │     ├─ hacks
        │  │     │  └─ game_4_hardmode.rar
        │  │     ├─ manuals
        │  │     │  └─ game_4_manual.pdf
        │  │     ├─ mods
        │  │     │  └─ 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_cd1.iso
           │  │  └─ game_5_cd2.iso
           │  │
           │  └─ game_6.iso
           │
           └─ bios/
              ├─ scph1001.bin
              ├─ scph5501.bin
              └─ scph5502.bin
      
> [!TIP] > For folder naming conventions, review the [Platform Support][platform-support] section. To override default system names in the folder structure (if your directories are named differently), see the [Configuration File][configuration-file] section. ## Configuration File RomM's "understanding" of your library can be configured with a `config.yaml` file or through the `config` tab in the `Control Panel` under the `Settings` section. Refer to the [example config.yml][configuration-file-example] file for guidance on how to configure it and the [example docker-compose.yml][docker-compose-example] file on how to mount it into the container. ## Scheduler The scheduler allows you to schedule async tasks that run in the Redis container at regular intervals. Jobs can be run at a specific time in the future, after a time delta, or at recurring internals using cron notation. The [wiki page on the scheduler][wiki-scheduled-tasks] has more information on which tasks are available and how to enable them. # Naming Convention ## Platform Support If you adhere to the [RomM folder structure][folder-structure], RomM supports all platforms listed on the [Supported Platforms][wiki-supported-platforms] page. **The folder is case-sensitive and must be used exactly as it appears on the list.** When scanning your library, RomM will use the folder name to determine the platform and fetch the appropriate game information, metadata, and cover art. ## Tag Support Games can be tagged with region, revision, or other tags by using parentheses in the file name. Additionally, you can set the region and language by adding a prefix: (USA), [reg-J], (French), [De]. - Revision tags must be prefixed with **"rev "** or **"rev-"** (e.g. **(rev v1)** or **(rev-1)**) - Other tags will also be imported, for example: **my_game [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. # Community Here are a few projects maintained by members of our community. Please note that the RomM team does not regularly review their source code. - [romm-comm][romm-comm-discord-bot]: Discord Bot by @idio-sync - [DeckRommSync][deck-romm-sync]: SteamOS downloader and sync by @PeriBluGaming - CasaOS app via the [BigBear App Store][big-bear-casaos] Join us on Discord, where you can ask questions, submit ideas, get help, showcase your collection, and discuss RomM with other users. [![discord-invite-img]][discord-invite] ## Support Consider supporting the development of this project on Open Collective. [![oc-donate-img]][oc-donate] ## Our Friends Here are a few projects that we think you might like: - [EmulatorJS](https://emulatorjs.org/): An embeddable, browser-based emulator - [RetroDECK](https://retrodeck.net/): Retro gaming on SteamOS and Linux - [ES-DE Frontend](https://es-de.org/): Emulator frontend for Linux, macOS and Windows - [Gaseous](https://github.com/gaseous-project/gaseous-server): Another ROM manager with web-based emulator - [Retrom](https://github.com/JMBeresford/retrom): A centralized game library/collection management service - [Steam ROM Manager](https://steamgriddb.github.io/steam-rom-manager/): An app for managing ROMs in Steam [folder-structure]: #folder-structure [platform-support]: #platform-support [tag-support]: #tag-support [configuration-file]: #configuration-file [docker-compose-example]: examples/docker-compose.example.yml [configuration-file-example]: examples/config.example.yml [wiki]: https://docs.romm.app/latest/ [wiki-supported-platforms]: https://docs.romm.app/latest/Platforms-and-Players/Supported-Platforms/ [wiki-troubleshooting]: https://docs.romm.app/latest/Troubleshooting/ [wiki-emulatorjs]: https://docs.romm.app/latest/Platforms-and-Players/EmulatorJS-Player/ [wiki-scheduled-tasks]: https://docs.romm.app/latest/Maintenance/Scheduled-Tasks/ [wiki-quick-start-guide]: https://docs.romm.app/latest/Getting-Started/Quick-Start-Guide/ [license-badge-img]: https://img.shields.io/github/license/rommapp/romm?style=for-the-badge&color=a32d2a [license-badge]: LICENSE [release-badge-img]: https://img.shields.io/github/v/release/rommapp/romm?style=for-the-badge [release-badge]: https://github.com/rommapp/romm/releases [discord-badge-img]: https://img.shields.io/badge/discord-7289da?style=for-the-badge [discord-badge]: https://discord.gg/P5HtHnhUDH [unraid-badge-img]: https://img.shields.io/badge/Unraid-f57842?style=for-the-badge&labelColor=ee512b [unraid-badge]: https://forums.unraid.net/topic/149738-support-eurotimmy-romm-rom-manager-by-zurdi15/ [wiki-badge-img]: https://img.shields.io/badge/Wiki-736e9b?style=for-the-badge [docker-pulls-badge-img]: https://img.shields.io/docker/pulls/rommapp/romm?style=for-the-badge&label=pulls [docker-pulls-badge]: https://hub.docker.com/r/rommapp/romm [discord-invite-img]: https://invidget.switchblade.xyz/P5HtHnhUDH [discord-invite]: https://discord.gg/P5HtHnhUDH [oc-donate-img]: https://opencollective.com/romm/donate/button.png?color=blue [oc-donate]: https://opencollective.com/romm [igdb-api]: https://api-docs.igdb.com/#account-creation [screenscraper-api]: https://www.screenscraper.fr/membreinscription.php [mobygames-api]: https://www.mobygames.com/info/api/ [big-bear-casaos]: https://github.com/bigbeartechworld/big-bear-casaos [romm-comm-discord-bot]: https://github.com/idio-sync/romm-comm [deck-romm-sync]: https://github.com/PeriBluGaming/DeckRommSync-Standalone [playnite-app]: https://github.com/rommapp/playnite-plugin [muos-app]: https://github.com/rommapp/muos-app