rommapp / romm

A beautiful, powerful, self-hosted rom manager
https://romm.app
GNU Affero General Public License v3.0
1.9k stars 87 forks source link

[Feature] Enhancing romM with ES gamelist.xml Integration #821

Open silkyclouds opened 5 months ago

silkyclouds commented 5 months ago

Is your feature request related to a problem? Please describe.

  1. I have noticed that IGDB fails to match a significantly high number of ROMs, likely because the platform is not specialized in retro gaming.
  2. Many gaming systems are not recognized at all.
  3. This results in a cluttered interface filled with numerous missing games and unsightly "game not found" logos.

image

Describe the solution you'd like Romm should integrate the ability to utilize well-known, well-documented, and widely adopted ES gamelist.xml files. For more information on what gamelist.xml files contain, see: https://github.com/Aloshi/EmulationStation/blob/master/GAMELISTS.md

Additionally, I am attaching a compressed gamelist.xml file for the 3DO platform as an example, since GitHub does not support uploading XML file formats directly.

The gamelist.xml file includes detailed information for each game, descriptions, and links to both image and video snapshot files. These media files can be easily scraped using nearly any emulation station-based retro gaming frontend and specific tools like Skraper.

Given that complete sets containing both the gamelist and all pre-scraped video and image media are readily available online, it would be prudent for romM to add a feature that enables it to parse the gamelist.xml file, if present, located next to each ROM type in their respective folders.

If the gamelist.xml file exists, romM should read its contents, verify the existence of the ROM in the folder, identify the video gaming platform it is linked to, and automatically retrieve the pre-existing media files from the images and videos folders.

Ultimately, this would allow for an instantly organized and pre-scraped web UI for romM users, eliminating the need to connect to IGDB.

This project simply involves adding an XML parsing feature to romM and seems straightforward to implement.

Technical Implementation Details

File Detection and Parsing: Develop a module within romM that scans each ROM folder for the presence of a gamelist.xml file. Use an XML parser to extract data, including game details like title, description, and media links.

Verification and Association: Verify the corresponding ROM file exists for each XML entry and map game metadata accurately.

Media File Management: Automatically retrieve and link image and video files from specified directories within the romM file structure.

User Interface Integration: Enhance the web UI to display images and videos dynamically, using data from the gamelist.xml.

Describe alternatives you've considered I have explored various retro gaming platforms, including EmulatorJS, LaunchBox, and Batocera, each with their own strengths and weaknesses. However, I believe the web UI of romM is valuable and should be enhanced to become the premier web-managed ROM collection manager and online playable solution.

Additional context Add any other context or screenshots about the feature request here. gamelist.xml.zip

spcano01 commented 4 months ago

Would be a huge feature!

spcano01 commented 4 months ago

ROMM documentation said it's compatible with Emulation Station, but does that mean the older version or ES-DE? It definitely seems to be different than ES-DE, as it puts gamelist in rom folders and has game folders for media vs media types.

I will still use this, just making sure it's not renaming anything and use it for clean and easy retro emulatorjs.

But this could be the one with adding ES-DE compatibility and perhaps Screenscraper.fr (with paid authentication)as a scrapper option.

gantoine commented 4 months ago

But this could be the one with adding ES-DE compatibility and perhaps Screenscraper.fr (with paid authentication)as a scrapper option.

True ES-DE compatibility will come one day, probably 6 months out from that as of today. And yes we're planning a ss.fr integration shortly, just need to find the time to build it...

spcano01 commented 4 months ago

Awesome kit, thank you!