rommapp / romm

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

[Feature] Launchbox Metadata Import #403

Open Jacksaur opened 1 year ago

Jacksaur commented 1 year ago

Is your feature request related to a problem? Please describe. Launchbox is one of the very best Emulation frontends available, and it's paired with an absolute top tier Games Database alongside it. It's community ran, moderated to a decent standard, full of alternative box art choices and covers a massive variety of games. Plus IGDB is... Kinda awful in some respects. The ability to import the metadata of an existing Launchbox library would be extremely helpful for users aiming to store their collection on their NAS. It would mean that all their manually chosen assets and game details could be carried over, without running a lengthy IGDB scan, and then having to tweak the results to their liking either.

This also in a way provides an easy way to utilize the LBGDB without having to code a whole Scraper for it: As far as I know, they don't have any kind of public API to utilize.

Describe the solution you'd like A tool or option that would allow importing of an existing Launchbox library into a format that can then be read by RomM. Preferably including assigned images. There is already an example of this with Pegasus Frontend. They have a Launchbox plugin that allows for easy exporting of selected games or platforms to the format Pegasus supports: Directly from within Launchbox itself. It's also open source, which perhaps means it could be used as a base to work from? Pegasus uses a text based config file to track games though, while of course RomM uses a proper SQLite Database. I have no coding knowledge myself, so I don't know if that alone would make it too impractical to adapt their plugin. The Launchbox files are already in XML format, perhaps it could be easier to upload and parse that directly in RomM instead?

Describe alternatives you've considered Manually editting the DB and copying over Launchbox's data through a text editor is an option, but obviously extremely time consuming.

zurdi15 commented 1 year ago

I didn't check the details yet but having Launchbox the format as XML, should be easy enough to import into RomM database.

Jacksaur commented 1 year ago

I've attached one of the Platform library files from my installation, if you want to look through it and see how things are formatted.

Image paths don't seem to be included: Images get downloaded to exact folder paths so I guess Launchbox just automatically checks those paths as needed. Would be more work to import those, but I wouldn't mind doing them manually, since you'd only really want one image per game on RomM.

N64.zip

Casuallynoted commented 1 year ago

Big agree on this, if we can get Launchbox metadata working we are golden. They have a lot more cover art and game info for obscure titles or regional exclusives than IGDB does. I tried to fill in the gaps with IGDB by making a bunch of submissions but the review process is just a bit too involved for it to be feasible for every platform. Honestly, even just getting to choose where a game pulls its metadata from might be awesome.

zurdi15 commented 1 year ago

Honestly, even just getting to choose where a game pulls its metadata from might be awesome.

Having a selector to choose different metadata sources is already there tho, but just with one option so users didn't notice 😄 We just need to implement new sources and it will appear there:

image

And it will be something like this:

image

The purple color means that it's selected tho.

Jacksaur commented 11 months ago

Can't believe I never noticed this after years of using the software: It turns out, Launchbox actually saves the entire GamesDB to a local XML file every 24 hours. I expect it'd be much easier for a user to just stick that single file in, and have the scan just search through that single file. As opposed to having users import their games to Launchbox, download the game metadata, then exporting that data back into RomM. Still doesn't include download links for images, unfortunately. Seems like a separate system handles that.

I've uploaded today's copy of the GamesDB here, if you want to look through it. It's definitely sizable, too big for Github!

Merry Christmas!