Skip to content

WirlyWirly/RomM-ES

Repository files navigation

☁️ RomM-ES 🕹️

preview

This "plugin" will allow you to import games from a ☁️ RomM server into 🕹️ ES-DE

Games can be browsed in ES-DE and then downloaded from RomM the first time they are launched

Inspiration for this "plugin" comes from the RomM Playnite Plugin, which works great and does basically the same thing within Playnite

🤖 Dependencies

🖥️ Setup

  1. Enable the ES-DE setting Other Settings > Enable Custom Event Actions

    • The game-start custom event is what will trigger roms to be downloaded on demand when a game is first started
  2. Download\Clone this repo and place the main RomM-ES folder into your ES-DE data directory, alongside the gamelists and downloaded_media directories

    • RomM-ES assumes you are using the ES-DE default ES-DE/downloaded_media/ directory for artwork
  3. Run the GameImporter.py script to generate a settings.ini file, which will appear in the RomM-ES directory. Edit this file with your RomM credentials and the path to where ES-DE scans for roms.

    python "C:\path\to\GameImporter.py"
  4. Move the GameStart.bat (windows) or GameStart.sh (linux) file to the ES-DE/scripts/game-start/ directory, then edit the file with the correct paths to call the GameStart.py script.

    • Create the game-start directory if it does not already exist. Scripts in this directory will be triggered when a game is launched in ES-DE, but before the emulator is actually started. This in-between time is when rom files will actually be downloaded from RomM.

🧭 Instructions

Warning

Exit ES-DE before running the GameImporter.py script, as not doing so can result in undetected\overwritten changes or even corrupted gamelist.xml files.

After doing the setup above, simply call the GameImporter.py script and it will begin importing games from RomM into ES-DE...

python "./GameImporter.py"

After importing, you need only launch a game in ES-DE and it will be downloaded from RomM using the GameStart.py script.

Note

When downloading larger rom files or on slower connections, ES-DE may appear to hang until the download is complete.

ℹ️ Tips

  • If the roms are archived and need to be extracted, specify the file extension of the extracted rom file (no period) in the [ExtractedExtensions] section of the settings.ini file. ES-DE does not allow for changes to the filename when launching a game, so archives that need extraction must be imported with their extracted extension already specified.

  • If you enable the ES-DE option Other Settings > Run in Background (While game is launched), you can avoid the black-screen that may appear while a rom is downloading larger files. You will instead be left inside ES-DE until the download completes and the emulator is started.

  • When importing, byte-sized placeholder files will be created in the ROMs directory of ES-DE. These tiny plain-text placeholder files store the RomM id of that game, which will later be used by GameStart.py to download the game from RomM when it is first launched. If the RomM id changes (such as the game being removed and then re-scanned into RomM), then the download will fail because the RomM id in the placeholder file will no longer be valid. Placeholder files can be updated by performing an import.

  • All metadata is sourced directly from the RomM api and used to create the ES-DE library items, so any edits should be done server side in RomM.

📝 TO-DO

  • Improve error-handling
  • Artwork\Metadata refreshing
  • MixImage uploading from ES-DE to RomM
  • More relative paths and streamlined setup process
  • Go to bed 😩

About

A plugin to import RomM hosted games into ES-DE 🕹️

Topics

Resources

Stars

Watchers

Forks

Contributors

Languages