Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature: Added RomM Export #1045

Merged
merged 17 commits into from
Apr 7, 2024
1 change: 1 addition & 0 deletions docs/output/tokens.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ To help sort ROMs into unique file structures for popular frontends & hardware,
- `{onion}` the [OnionOS / GarlicOS](../usage/handheld/onionos.md) emulator's directory for the ROM
- `{pocket}` the [Analogue Pocket](../usage/hardware/analogue-pocket.md) core's directory for the ROM
- `{retrodeck}` the [RetroDECK](../usage/desktop/retrodeck.md) emulator's directory for the ROM
- `{romm}` the [RomM](../usage/desktop/romm.md) manager directory for the ROM
- `{twmenu}` the [TWiLightMenu++](../usage/handheld/twmenu.md) emulator's directory for the ROM

!!! tip
Expand Down
91 changes: 91 additions & 0 deletions docs/usage/desktop/romm.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
# RomM

[RomM](https://github.com/rommapp/romm) is a web-based ROM management solution that allows you to scan, enrich, and browse 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.

## ROMs
maxexcloo marked this conversation as resolved.
Show resolved Hide resolved

RomM uses its own [proprietary ROM folder structure](https://github.com/rommapp/romm/wiki/Supported-Platforms), so `igir` has a replaceable `{romm}` token to sort ROMs into the right place. See the [replaceable tokens page](../../output/tokens.md) for more information.

You can run RomM using [Docker Compose](https://docs.docker.com/compose/). Create a file named `docker-compose.yml` with the following contents, but change all of the environment variables with the value of `CHANGEME!`:

```yaml
version: "3"

# https://github.com/rommapp/romm/blob/997d2cacd4b1980484eb63c2b3ffe65c83133966/examples/docker-compose.example.yml
services:
romm:
image: rommapp/romm
container_name: romm
restart: unless-stopped
environment:
- DB_HOST=romm-db
- DB_NAME=romm
- DB_USER=romm
- DB_PASSWD=CHANGEME!
- ENABLE_RESCAN_ON_FILESYSTEM_CHANGE=true
- ENABLE_SCHEDULED_RESCAN=true
- IGDB_CLIENT_ID=CHANGEME!
- IGDB_CLIENT_SECRET=CHANGEME!
- ROMM_AUTH_SECRET_KEY=CHANGEME!
- ROMM_AUTH_USERNAME=admin
- ROMM_AUTH_PASSWORD=CHANGEME!
volumes:
- ./romm/assets:/romm/assets
- ./romm/config:/romm/config
- ./romm/logs:/romm/logs
- ./romm/redis:/redis-data
- ./romm/resources:/romm/resources
- ./romm/roms:/romm/library/roms
ports:
- 80:8080
depends_on:
- romm-db
romm-db:
image: mariadb:latest
container_name: romm-mariadb
restart: unless-stopped
environment:
- MARIADB_RANDOM_ROOT_PASSWORD=true
- MARIADB_DATABASE=romm
- MARIADB_USER=romm
- MARIADB_PASSWORD=CHANGEME!
expose:
- 3306
volumes:
- ./romm-db:/var/lib/mysql
```

then, run Docker Compose as you would with any other config:

```shell
docker compose up
```

This will create all of the local directories necessary. On your host machine (not from inside the container) you can sort your ROMs into the correct directories like this:

=== ":simple-windowsxp: Windows"

```batch
igir copy zip test clean ^
--dat "No-Intro*.zip" ^
--input "ROMs\" ^
--output "romm\roms\{romm}"
```

=== ":simple-apple: macOS"

```shell
igir copy zip test clean \
--dat "No-Intro*.zip" \
--input "ROMs/" \
--output "romm/roms/{romm}"
```

=== ":simple-linux: Linux"

```shell
igir copy zip test clean \
--dat "No-Intro*.zip" \
--input "ROMs/" \
--output "romm/roms/{romm}"
```
1 change: 1 addition & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ nav:
- usage/desktop/retroarch.md
- usage/desktop/retrodeck.md
- usage/desktop/retropie.md
- usage/desktop/romm.md
- usage/handheld/twmenu.md
- FPGA:
- usage/hardware/mister.md
Expand Down
1 change: 1 addition & 0 deletions src/modules/argumentsParser.ts
Original file line number Diff line number Diff line change
Expand Up @@ -839,6 +839,7 @@ Advanced usage:
{onion} The ROM's emulator-specific /Roms/* directory for OnionOS/GarlicOS (e.g. "GB")
{pocket} The ROM's core-specific /Assets/* directory for the Analogue Pocket (e.g. "gb")
{retrodeck} The ROM's emulator-specific /roms/* directory for the 'RetroDECK' image (e.g. "gb")
{romm} The ROM's manager-specific /roms/* directory for 'RomM' (e.g. "gb")
{twmenu} The ROM's emulator-specific /roms/* directory for TWiLightMenu++ on the DSi/3DS (e.g. "gb")

Example use cases:
Expand Down
Loading
Loading