Overview
Inspired by Jellyfin and after found that the awesome Gameyfin project is not supported for arm64 architectures and it is a general game library manager, I decided to develop my own game library solution, focused on retro gaming.
For now, it is only available as a docker image (amd64/arm64)
⚡ Features
- Scans your game library (all at once or by platform) and enriches it with IGDB metadata
- Access your library via your web-browser
- Possibility to select one of the matching IGDB results if the scan doesn't get the right one
- Download games directly from your web-browser
- Edit your game files directly from your web-browser
- Works with SQLite or MaridDB (SQLite by default)
- Responsive design
- Light and dark theme
🛠 Roadmap
- Upload games directly from your web-browser - issue #54
- Manage save files directly from your web-browser - issue #55
- Set a custom cover for each game - issue #53
- EmuDeck folder structure compatibility - issue #52
- Multiple files games support - issue #40
Prerequisites
⚠️ Folder structure
RomM accepts two different folder structure by priority. RomM will try to find the structure 1. If it doesn't exists, RomM will try to find structure 2
- Structure 1 (priority high) - roms folder at root of library folder:
library/
├─ roms/
├─ gbc/
│ ├─ rom_1.gbc
│ ├─ rom_2.gbc
│
├─ gba/
│ ├─ rom_1.gba
│ ├─ rom_2.gba
│
├─ gb/
├─ rom_1.gb
├─ rom_1.gb
- Structure 2 (priority low) - roms folder inside each platform folder
library/
├─ gbc/
│ ├─ roms/
│ ├─ rom_1.gbc
│ ├─ rom_2.gbc
|
├─ gba/
│ ├─ roms/
│ ├─ rom_1.gba
│ ├─ rom_2.gba
|
├─ gb/
│ ├─ roms/
│ ├─ rom_1.gb
│ ├─ rom_1.gb
Preview
🖥 Desktop
📱 Mobile
Docker image
Last version of the docker image
🐳 Installation
Check the docker-compose.yml example
Get API key from IGDB for the CLIENT_ID and CLIENT_SECRET variables.
Platforms support
🎮 Naming convention
If the RomM folders structure is followed, any kind of platform/folder-name is supported for the core features. For having extra metadata as well as cover images and platforms icons, the following table shows how to name your platforms folders. This will change over the time, adding games metadata for more platforms. Make sure that the platforms folder names are lowercase.
| slug | name | games metadata |
|---|---|---|
| 3ds | Nintendo 3DS | ✅ |
| amiga | Amiga | ✅ |
| arcade | Arcade | ✅ |
| atari | atari | ❌ |
| coleco | coleco | ❌ |
| commodore | commodore | ❌ |
| cpc | cpc | ❌ |
| cps1 | cps1 | ❌ |
| cps2 | cps2 | ❌ |
| cps3 | cps3 | ❌ |
| daphne | daphne | ❌ |
| dc | Dreamcast | ✅ |
| dos | DOS | ✅ |
| fairchild | fairchild | ❌ |
| fba2012 | fba2012 | ❌ |
| fbneo | fbneo | ❌ |
| fds | Family Computer Disk System | ✅ |
| gb | Game Boy | ✅ |
| gba | Game Boy Advance | ✅ |
| gbc | Game Boy Color | ✅ |
| gg | gg | ❌ |
| gw | gw | ❌ |
| intellivision | Intellivision | ✅ |
| jaguar | Atari Jaguar | ✅ |
| lynx | Atari Lynx | ✅ |
| md | md | ❌ |
| megaduck | megaduck | ❌ |
| ms | ms | ❌ |
| msx | MSX | ✅ |
| n64 | Nintendo 64 | ✅ |
| nds | Nintendo DS | ✅ |
| neocd | neocd | ❌ |
| neogeo | neogeo | ❌ |
| nes | Nintendo Entertainment System | ✅ |
| ngc | Nintendo GameCube | ✅ |
| ngp | ngp | ❌ |
| odyssey | odyssey | ❌ |
| pce | pce | ❌ |
| pcecd | pcecd | ❌ |
| pico | pico | ❌ |
| poke | poke | ❌ |
| ps | PlayStation | ✅ |
| ps2 | PlayStation 2 | ✅ |
| psp | PlayStation Portable | ✅ |
| scummvm | scummvm | ❌ |
| segacd | Sega CD | ✅ |
| segasgone | segasgone | ❌ |
| sgb | sgb | ❌ |
| sgfx | sgfx | ❌ |
| snes | Super Nintendo Entertainment System | ✅ |
| supervision | supervision | ❌ |
| switch | Nintendo Switch | ✅ |
| wii | Wii | ✅ |
| win | PC (Microsoft Windows) | ✅ |
⛏ Troubleshoot
- After the first installation, sometimes the RomM container can have problems connecting with the database. Restarting the RomM container may solve the problem.
🧾 References
- Complete changelog
🎖 Credits
- Pc icon support - Keyboard and mouse icons created by Flat Icons - Flaticon