RainwayApp / bug-tracker

Report all issues found with Rainway here, or make suggestions for new features. 🐜
https://rainway.io/
27 stars 3 forks source link

ROM support #321

Open AetherCollective opened 5 years ago

AetherCollective commented 5 years ago

Developer friendly TL;DR at the bottom.

As the title says, I'd like to see ROM support for Rainway. I have an idea on how to go about this.

So we currently have support for some of the most popular game launchers: Steam, Origin, Uplay, Battle.net App, Epic, Discord, etc. They all do one thing really great for Rainway. They make it easy for Rainway to look at a file, parse it, and figure out what games are installed, where, how to launch them, what to name them, etc. Well there are tools for ROMs that do the same thing. These tools are commonly referred to as Front-Ends.

There are a few front-ends that do a fantastic job managing ROM collections. Like the game launchers mentioned above, everyone of these programs create playlist files that store all the metadata for the game. Every front-end generates files that can be parsed to learn or build an absolute execution path, friendly rom name, and other metadata.

I know these front-ends can be supported. Launchbox, EmulationStation, RetroArch

There is also Hyperspin, but I have never used it and thus don't know if you can get the necessary information to parse the games. It's comparable to launchbox so it should work be possible hopefully.

Furthermore, since ROMs are searchable via the API for TGDB or IGBD, no extra work would need to be done to grab the image and description metadata. Video metadata for Rainway Droplet feature would need some work. AFAIK there is no videos on either IGBD or TGDB, so we would need to get them elsewhere for Droplet to work for these games. There are a few sites that offer APIs (even downloadable files for CDNs). EmuMovies.com, screenscraper.fr

When the developers are ready to tackle this, mention me. I can direct you to which files need parsed to build executable paths

Thoughts?


TL;DR

We currently use game launchers like steam & origin to find installed games. We can also use game launchers (called front-ends) like LaunchBox, EmulationStation, & RetroArch to find installed ROMs.

Parsing ROM friendly names & executable paths will need work. Each front-end generates files that can be parsed to build a working executable path.

Parsing image & description metadata is already done. (igdb & tgdb both support ROMs).

Parsing videos for Droplet will need work. There are APIs and downloadables (CDN support) for video files on sites like emumovies.com and screenscraper.fr.

Thoughts?

AetherCollective commented 5 years ago

Might be possible to fork the parser from this project: https://github.com/sselph/scraper

Written in GO and MIT licensed

andrewmd5 commented 5 years ago

Early on I wrote ROM support, hand writing parsers for a number of formats. We are revisiting this in a future update now that we have the means to prevent them from appearing on consoles.