Tabla de Contenidos
RomM
Aplicación web para la gestión de colecciones de juegos, especialmente ROMs. También permite jugar a esas ROMs desde el propio navegador.
Características
- Gestiona tu biblioteca de juegos: escanea tus ROMs, agrégales etiquetas, carátulas y metadatos automáticamente con fuentes como IGDB o MobyGames.
- Soporte para más de 400 plataformas (consolas, micro ordenadores, etc)
- Juega directamente desde el navegador: gracias a EmulatorJS, juega sin instalar nada adicional.
- Self-hosted y abierto: tú mismo alojas la aplicación (por ejemplo con Docker), mantienes el control de tus datos y puedes extenderlo o integrarlo con otras herramientas.
- Aplicaciones nativas e integraciones para jugar desde donde queramos: Playnite (Windows), Argosy Launcher (Android) o consolas portátiles con CFW (como TrimUI).
Instalación
Docker
Ejemplo de fichero Docker Compose:
version: "3" volumes: mysql_data: romm_resources: romm_redis_data: services: romm: image: rommapp/romm:latest container_name: romm restart: unless-stopped environment: - DB_HOST=romm-db - DB_NAME=romm # Should match MARIADB_DATABASE in mariadb - DB_USER=romm-user # Should match MARIADB_USER in mariadb - DB_PASSWD= # Should match MARIADB_PASSWORD in mariadb - ROMM_AUTH_SECRET_KEY= # Generate a key with `openssl rand -hex 32` - SCREENSCRAPER_USER= # These are the recommended metadata providers - SCREENSCRAPER_PASSWORD= # https://docs.romm.app/latest/Getting-Started/Metadata-Providers/#screenscraper - RETROACHIEVEMENTS_API_KEY= # https://docs.romm.app/latest/Getting-Started/Metadata-Providers/#retroachievements - STEAMGRIDDB_API_KEY= # https://docs.romm.app/latest/Getting-Started/Metadata-Providers/#steamgriddb - HASHEOUS_API_ENABLED=true # https://docs.romm.app/latest/Getting-Started/Metadata-Providers/#hasheous volumes: - romm_resources:/romm/resources # Resources fetched from IGDB (covers, screenshots, etc.) - romm_redis_data:/redis-data # Cached data for background tasks - /path/to/library:/romm/library # Your game library. Check https://docs.romm.app/latest/Getting-Started/Folder-Structure/ for more details. - /path/to/assets:/romm/assets # Uploaded saves, states, etc. - /path/to/config:/romm/config # (Optional) Path where config.yml is stored ports: - 80:8080 depends_on: romm-db: condition: service_healthy restart: true romm-db: image: mariadb:latest container_name: romm-db restart: unless-stopped environment: - MARIADB_ROOT_PASSWORD= # Use a unique, secure password - MARIADB_DATABASE=romm - MARIADB_USER=romm-user - MARIADB_PASSWORD= volumes: - mysql_data:/var/lib/mysql healthcheck: test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"] start_period: 30s start_interval: 10s interval: 10s timeout: 5s retries: 5
Estructura de directorios
Si queremos que RomM detecte automáticamente nuestra bibilioteca de ROMs, podemos optar por dos organizaciones:
- Estructura A
- Estructura B
Si no existe ninguna estructura de directorios, los ficheros se pueden subir desde la interfaz web de RomM y la aplicación automáticamente creará la Estructura A.
Estructura A
La recomendada. Tanto ROMs como BIOS tienen sus directorios dedicados.
/roms/<PLATAFORMA>//bios/<PLATAFORMA>/
Ejemplo:
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
Estructura B
Cada plataforma tiene su propia carpeta donde se almacenan tanto las ROMs como las BIOS:
/<PLATAFORMA>/roms/<PLATAFORMA>/bios
Ejemplo:
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
Configuración inicial
Al entrar por primera vez a http://localhost:8080 (o la IP y puerto que hayamos configurado), se nos presentará un asistente para elegir:
- Estructura de la biblioteca de roms (ver sección más abajo)
- Creación del usuario administrador.
- Orígenes de metadatos para completar automáticamente información sobre nuestras roms.

