• Stars
    star
    894
  • Rank 51,071 (Top 2 %)
  • Language
    Python
  • License
    GNU General Publi...
  • Created over 1 year ago
  • Updated 9 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A beautiful, powerful, self-hosted rom manager

Buy Me A Coffee

Overview

RomM (stands for Rom Manager) is a game library manager focused in retro gaming. Manage and organize all of your games from a web browser.

Inspired by Jellyfin, allows you to manage all your games from a modern interface while enriching them with IGDB metadata.

โšก Features

  • Scan 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
  • EmuDeck folder structure compatibility
  • Multiple files games support
  • Download games directly from your web-browser
  • Edit your game files directly from your web-browser
  • Region, revision/version and extra tags support
  • 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

Preview

๐Ÿ–ฅ Desktop


Expand to preview

Desktop home Desktop gallery Desktop details Desktop search


๐Ÿ“ฑ Mobile


Expand to preview

Mobile home Mobile gallery Mobile details Mobile search


The RomM community

Wiki
Discord

Installation

๐Ÿณ Docker

Docker should be installed and set up before running the image.

  1. Generate an API key for IGDB, and set the CLIENT_ID and CLIENT_SECRET variables. This is required to run a library scan. Instructions on generating the ID and Secret are here. Note that IDGB requires a Twitch account with 2FA enabled to generate the ID and Secret.
  2. Verify that your library folder structure matches one of the options listed in the following section.
  3. Create a docker-compose file. See the following example docker-compose.yml file for reference. Customize for your setup and include the CLIENT_ID and CLIENT_SECRET vareiables where indicated in the environment section of the file.
  4. Launch the container:
docker-compose up -d

If configured correctly, Romm will automatically run an initial scan on your library.

Configuration

๐Ÿ“ Folder structure

RomM accepts two different folder structure by priority. RomM will try to find the structure 1 and if it doesn't exists, RomM will try to find structure 2.

Review the Platforms support section for device naming conventions, and the Configuration file section to override default system names in the folder structure, if your directories are named differently.

  • Structure 1 (high priority) - roms folder at root of library folder:
library/
โ”œโ”€ roms/
   โ”œโ”€ gbc/
   โ”‚  โ”œโ”€ rom_1.gbc
   โ”‚  โ”œโ”€ rom_2.gbc
   โ”‚
   โ”œโ”€ gba/
   โ”‚  โ”œโ”€ rom_1.gba
   โ”‚  โ”œโ”€ rom_2.gba
   โ”‚ 
   โ”œโ”€ ps/
      โ”œโ”€ my_multifile_game/
      โ”‚   โ”œโ”€ my_game_cd1.iso
      โ”‚   โ”œโ”€ my_game_cd2.iso
      โ”‚
      โ”œโ”€ rom_1.iso
  • Structure 2 (low priority) - roms folder inside each platform folder
library/
โ”œโ”€ gbc/
โ”‚  โ”œโ”€ roms/
โ”‚     โ”œโ”€ rom_1.gbc
โ”‚     โ”œโ”€ rom_2.gbc
|
โ”œโ”€ gba/
โ”‚  โ”œโ”€ roms/
โ”‚     โ”œโ”€ rom_1.gba
โ”‚     โ”œโ”€ rom_2.gba
|
โ”œโ”€ ps/
โ”‚  โ”œโ”€ roms/
โ”‚     โ”œโ”€ my_multifile_game/
โ”‚     โ”‚  โ”œโ”€ my_game_cd1.iso
โ”‚     โ”‚  โ”œโ”€ my_game_cd2.iso
โ”‚     โ”‚
โ”‚     โ”œโ”€ rom_1.iso

โš™๏ธ Configuration file

RomM can be configured through a yml file.

For a configuration change to take effect, RomM must be restarted.

Check the config.yml example.

Check the docker-compose.yml example to see how to bind it.

Naming convention

๐ŸŽฎ Platform support

If the RomM folder 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.


Platform support list
slug name games metadata
3ds Nintendo 3DS โœ…
amiga Amiga โœ…
acpc Amstrad CPC โœ…
arcade Arcade โœ…
atari atari โŒ
atari2600 Atari 2600 โœ…
atari5200 Atari 5200 โœ…
atari7800 Atari 7800 โœ…
coleco coleco โŒ
c64 Commodore C64/128/MAX โœ…
cpc cpc โŒ
cps1 cps1 โŒ
cps2 cps2 โŒ
cps3 cps3 โŒ
daphne daphne โŒ
dc Dreamcast โœ…
doom doom โŒ
dos DOS โœ…
fairchild fairchild โŒ
fba2012 fba2012 โŒ
fbneo fbneo โŒ
fds Family Computer Disk System โœ…
game-and-watch Game & Watch โœ…
gb Game Boy โœ…
gba Game Boy Advance โœ…
gbc Game Boy Color โœ…
genesis-slash-megadrive Sega Mega Drive/Genesis โœ…
gamegear Sega Game Gear โœ…
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 โŒ
pc-98 PC-98 โœ…
pce pce โŒ
pcecd pcecd โŒ
pico pico โŒ
pokemon-mini Pokรฉmon mini โœ…
ps PlayStation โœ…
ps2 PlayStation 2 โœ…
ps3 PlayStation 3 โœ…
ps4 ps4 โŒ
psp PlayStation Portable โœ…
psvita PlayStation Vita โœ…
saturn Sega Saturn โœ…
sega32 Sega 32X โœ…
scummvm scummvm โŒ
segacd Sega CD โœ…
segasgone segasgone โŒ
sms Sega Master System/Mark III โœ…
sgb sgb โŒ
sgfx sgfx โŒ
snes Super Nintendo Entertainment System โœ…
supervision supervision โŒ
switch Nintendo Switch โœ…
virtualboy Virtual Boy โœ…
wii Wii โœ…
win PC (Microsoft Windows) โœ…
wiiu Wii U โœ…
wonderswan WonderSwan โœ…
wonderswan-color WonderSwan Color โœ…
xbox Xbox โœ…
xbox360 Xbox 360 โœ…
xboxone Xbox One โœ…

๐Ÿ“‘ Tags support

Games can be tagged with region, revision or other tags using parenthesis in the file name.

  • Regions will be detected according to the following dictionary:
shortcode 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

*Aditionally, region can be set adding "reg-" as prefix: (reg-E) / (reg-Spain) / (reg-USA)

  • Revision tags must be prefixed with "rev " or with "rev-": (rev v1) / (rev-v1) / (rev-whatever)

  • Any other tag can have any structure

  • Example: my_game (E)(rev v1)(fav)(aditional_tag).gba

NOTE: Tags can be used with the search bar to help to filter your library.

โ› 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

๐ŸŽ– Credits