muldjord / skyscraper

Powerful and versatile game scraper written in c++
GNU General Public License v3.0
489 stars 128 forks source link

MANUALLY Select System/Console type to Scrape through MENU option? #335

Open Dochartaigh opened 2 years ago

Dochartaigh commented 2 years ago

Please kindly add a feature like Universal XML Scraper used to have, where you have an “Auto select your system” option to scrape a folder; and have this be available through a menu.

I run RetroPie 4.7.3 on a RPi4. In the /roms directory I've manually added many different (non-default, non-stock) /roms folders for all sorts of games collections like ones for CPS1/2/3 arcade hardware, NeoGeo arcade, pcengine-CD (disc) games, etc. etc. I've changed the es_systems.cfg to have the same exact , fullname, extensions, command, platform, theme as the regular system, ONLY the being different. Despite my 'pcengine-CD' for instance having ALL the identical settings as "pcengine" EXCEPT the path, it still does NOT scrape a single game.

Also tried editing skyscrapper's .ini following the hashed #-out Amiga example, and that doesn't seem to work either (or I don't have sufficient knowledge to do it correctly).

If there's another way to EASILY do this that I've been missing please let me know. I'm not well-versed enough to purely use this from the command line (like most people aren't the best at Linux terminal commands...), so REALLY hoping it can be added as a simple menu option through the retropie_setup.sh menus. If it HAS to be coded into the Skyscraper .ini (also editable through the setup.sh menu) I'm hoping it's just a line or two (not ~15+ like the Amiga example which I couldn't quite follow all those options). Basically all that should need to be done is select which folder gets scrubbed as which already-existing preset system.

muldjord commented 2 years ago

Please kindly add a feature like Universal XML Scraper used to have, where you have an “Auto select your system” option to scrape a folder; and have this be available through a menu.

I am not really in charge of the RetroPie Skyscraper menu (and I don't ever use it myself, although it is certainly useful for who don't know much about Linux terminals), although I have worked a bit on it a long time ago.

Adding what you are suggesting I recon is quite complicated and probably not feasible to implement in the menu with how Skyscraper is designed. But feel free to ask about it on the RetroPie forums.

And that brings me to:

Also tried editing skyscrapper's .ini following the hashed #-out Amiga example, and that doesn't seem to work either (or I don't have sufficient knowledge to do it correctly).

If I understand you correctly, you might be able to simply set...

[amiga]
inputFolder="/home/pi/RetroPie/roms/YOURFOLDER"

...for all relevant platforms. That will redirect the default roms/amiga folder to any other folder you want. You shouldn't need anything else in the platform sections other than inputFolder="...".

I don't currently plan to do any auto-platform detection as it requires quite a bit of change and I don't currently focus on expanding features for Skyscraper.

Dochartaigh commented 2 years ago

Hello and thank you for the quick reply!

I just got a chance to add those two lines to do that, and it did scrape my new "pce-cd" (the new folder I put all my PC Engine CD games into).... I did have to select the "pcengine" option when scraping, even through the "pce-cd" folder also showed up in the list (which did nothing when I scraped it).

...but it also DELETED all the images/boxart/videos for the regular non-CD "pcengine" folder (and like permanently deleted them so I had to run a new ~2+ hour scrape to get them back) so needless to say this isn't going to work for me.

I had an idea: seems like you're not allowed to have 2x different folders for the same type of content (one for the default "pcengine", then the other "pce-cd" I created myself)? If that is the case, and maybe this will help, but how is this handled on the arcade side of things? RetroPie has in its default configuration multiple arcade-esque folders: arcade, fba, mame-libreto, and neogeo folders in /home/pi/RetroPie/roms. Those folders can be set to run on any emulator (be it MAME 2003, FinalBurn Neo, MAME2016, AdvMAME, etc. etc.) AND they're ALL scraped properly in Skyscraper. I assume all those scape from the same exact overarching "arcade" database, and this is kinda exactly like what I want to do here - scrape two different flavors of the same console - CD games and non-CD games.

Open to any ideas you might have and thank you in advance! I would also like to mention that having custom folders with games of. certain type is pretty common and I know those people in all of the cool videos about their images do this somehow... just missing how exactly they do it... and with Skyscraper being the preeminent scrapper now, it has to be using yours.

Also open to trying command line (which I'm not great at) if this is the ONLY way to do this! thx

muldjord commented 2 years ago

Thank you for your input.

RetroPie has in its default configuration multiple arcade-esque folders: arcade, fba, mame-libreto, and neogeo folders in /home/pi/RetroPie/roms. Those folders can be set to run on any emulator (be it MAME 2003, FinalBurn Neo, MAME2016, AdvMAME, etc. etc.) AND they're ALL scraped properly in Skyscraper. I assume all those scape from the same exact overarching "arcade" database, and this is kinda exactly like what I want to do here

The arcade platforms are added individually with the names you describe. It is not unfortunately not feasible for your use-case, as it would require me to add all platforms with an infinite number of names.

Skyscraper was built to be used with the default RetroPie platforms. This will not change unfortunately, as it is so closely knitted into the design of Skyscraper. I have had several requests for a alias system of some sort though. But at the moment time is the issue. I simply don't work on expanding Skyscraper right now due to working on other programming projects (I have several active projects).

One last note. The RetroPie script uses the folder names to determine what platforms it can scrape. It assumes the user has not created new ones manually. By adding folder manually those will show up when gathering and scraping data. BUT, they will not succeed, as they aren't supported in Skyscraper. Skyscraper simply doesn't know what to do with them and exits.

And one very last note: One thing I should suggest, is to look at your platforms differently. Instead of adding platforms to the base /home/pi/RetroPie/roms folder, instead add them in the appropriate platform subfolders. That would probably work better for you with the current way Skyscraper works. So for instance, if you have several pcengine platform folders, simply move all of them into the /home/pi/RetroPie/pcengine folder (eg. /home/pi/RetroPie/pcengine/variant1, /home/pi/RetroPie/pcengine/variant2). Note that when moving files back and forth between folders and generally messing with your setup, you will probably run into the cache getting confused. To avoid this I would suggest vaccuming it from time to time. But ALWAYS make a backup before you do (copy the /home/pi/.skyscraper/cache folder to somewhere else).