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
- RomM
- ES-DE
- Python 3.10+
pip install -r requirements.txt
-
Enable the ES-DE setting
Other Settings > Enable Custom Event Actions- The
game-startcustom event is what will trigger roms to be downloaded on demand when a game is first started
- The
-
Download\Clone this repo and place the main
RomM-ESfolder into yourES-DEdata directory, alongside thegamelistsanddownloaded_mediadirectories- RomM-ES assumes you are using the ES-DE default
ES-DE/downloaded_media/directory for artwork
- RomM-ES assumes you are using the ES-DE default
-
Run the
GameImporter.pyscript to generate asettings.inifile, which will appear in theRomM-ESdirectory. Edit this file with your RomM credentials and the path to where ES-DE scans for roms.python "C:\path\to\GameImporter.py" -
Move the
GameStart.bat(windows) orGameStart.sh(linux) file to theES-DE/scripts/game-start/directory, then edit the file with the correct paths to call theGameStart.pyscript.- Create the
game-startdirectory 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.
- Create the
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.
-
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 thesettings.inifile. 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.pyto 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.
- Improve error-handling
- Artwork\Metadata refreshing
- MixImage uploading from ES-DE to RomM
- More relative paths and streamlined setup process
- Go to bed 😩
