RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login

    Versatile C++ game scraper: Skyscraper

    Scheduled Pinned Locked Moved Ideas and Development
    skyscraperscrapergamelist.xmlscrapinggithub
    1.6k Posts 113 Posters 1.6m Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • muldjordM
      muldjord @victordg
      last edited by muldjord

      @victordg As it turns out, there are actually quite a few of these aliases. I've added the following:

          aliases.append("nintendo power");
          aliases.append("satellaview");
          aliases.append("sufami turbo");
          aliases.append("snes - super mario world hacks");
          aliases.append("super nintendo msu-1");
      

      which will be available in 3.1.5 when it's released (no eta currently).

      If you want to add it in your current version you can just edit the platforms.cpp source code file and add the above lines to the aliases function. Just remember to compile it and install it afterwards, otherwise it'll just keep using your current version.

      EDIT: Actually I've decided to remove the platform check altogether when scraping from ScreenScraper. There's no real need for it as ScreenScraper always returns correct results since it checksum based.

      quicksilverQ V 2 Replies Last reply Reply Quote 0
      • quicksilverQ
        quicksilver @muldjord
        last edited by

        @muldjord how will removing the platform check affect games that are found through name match and have multiple platform entries? Games launched by .sh or .conf files for example.

        muldjordM 1 Reply Last reply Reply Quote 0
        • V
          victordg @muldjord
          last edited by victordg

          @muldjord Nice to know! Both ideas are perfect to me, actually I was also kind of expecting that the platform would be ignored when expliciting the rom hash with --query, so I totally agree to your approach, at least using screenscraper.fr there is no real need to match the platform since hashes are included for every game :) I'm too impatient though so I'll recompile with those aliases to see the NPs and Satellaviews right now :D

          Thumbs up for you @muldjord, Skyscraper is getting better and better.

          EDIT: Just to confirm that now it works as expected. Thanks again @muldjord!

          1 Reply Last reply Reply Quote 1
          • muldjordM
            muldjord @quicksilver
            last edited by muldjord

            @quicksilver said in Versatile C++ game scraper: Skyscraper:

            @muldjord how will removing the platform check affect games that are found through name match and have multiple platform entries? Games launched by .sh or .conf files for example.

            There is a potential chance that a search by romnom (file name) will return an entry for a different platform. And if this entry is "faulty" it will no longer be filtered out by the platform check. But I don't think it will anymore as I am complying exactly with the demands ScreenScraper have for their API calls these days. And that requires a parent system id to be part of the query. This is always prepended to the query, even when using --query. So any false positives should be avoided that way. Even with the platform check disabled.

            1 Reply Last reply Reply Quote 1
            • muldjordM
              muldjord
              last edited by

              Skyscraper 3.1.5 coming up in a few days. I had some leftover changes that are actually pretty cool, some minor additions as requested by users and some platform additions. And I've also added a --cache report:missing=<RESOURCE> option.

              I don't have much time for Skyscraper these days, so I want this stuff out there. I just need to do some testing over the coming days to make sure everything is still a-okay.

              rkosterR 1 Reply Last reply Reply Quote 3
              • rkosterR
                rkoster @muldjord
                last edited by

                @muldjord Thanks for adding those two I submitted the ticket about. :)

                Github/helper scripts * Creativision/Arcadia/Astrocade guide * Amiga guide * Atari 8bit guide

                muldjordM 1 Reply Last reply Reply Quote 1
                • muldjordM
                  muldjord @rkoster
                  last edited by

                  @rkoster said in Versatile C++ game scraper: Skyscraper:

                  @muldjord Thanks for adding those two I submitted the ticket about. :)

                  You're welcome :)

                  1 Reply Last reply Reply Quote 0
                  • muldjordM
                    muldjord
                    last edited by

                    Skyscraper 3.2.0 released: https://github.com/muldjord/skyscraper

                    • Improved output of edit mode to show queue size and initial prioritized resources
                    • Now clearly shows missing resources when adding resources in editing mode
                    • Made '--cache vacuum' more verbose at verbosity level 2 or higher
                    • Removed platform check for screenscraper module as it wasn't really necessary
                    • Added 'videoSizeLimit' config variable (Thank you to 'silverfr0st' for suggesting this)
                    • Now also processes brackets for skipped games (Thanks to 'hexive' for pointing this out)
                    • Added 'arcadia' and 'astrocde' MESS platforms (Thank you to 'raphkoster' for suggesting these)
                    • Added '--cache report:missing=<GROUP or RESOURCE1,2,...>' option (Thank you to JaymesRS for suggesting this)
                    • Added '--fromfile' option allowing you to work on a subset of files taken from a file. Compatible with files created using the '--cache report' option
                    • MobyGames module now includes 'platform' id query when relevant. Should improve result accuracy
                    • Added region support for MobyGames cover artwork
                    • Added A LOT of regions to region autodetection in general
                    • Now no longer creates media folders when in resource gathering mode
                    • Moved help texts for '--cache' options to '--cache help'

                    Lots of interesting stuff in this release. The --cache edit function has been improved a bit to better show what resources are missing on each rom. I've also added a nifty --fromfile <FILENAME> option which allows you to add filenames, one per line, into a file and use it with this option. Skyscraper will then work on those files only. This brings me to the new --cache report:missing option which allows you to create file reports containing filenames of all files missing certain resources. When those are created you can then combine the edit option with the fromfile option and add the missing resources like so --cache edit --fromfile /home/pi/.skyscraper/reports/reportfile.txt.

                    I've also improved region autodetection quite a bit. It will now detect pretty much all relevant regions and / or countries from the rom filename. Also added region support to mobygames covers!

                    As for minor stuff, some new platforms were added and some requested features aswell. Check the list above for all of it.

                    Let me know if you run into problems.

                    Have fun!

                    A Bored NinjaA 1 Reply Last reply Reply Quote 4
                    • A Bored NinjaA
                      A Bored Ninja @muldjord
                      last edited by

                      @muldjord said in Versatile C++ game scraper: Skyscraper:

                      new platforms were a

                      @muldjord Thank you!

                      I'm excited to now be able to scrape my PC Engine CD roms, as I was getting a "Platform not set" error before.

                      Keep up the good work!

                      muldjordM 1 Reply Last reply Reply Quote 0
                      • muldjordM
                        muldjord @A Bored Ninja
                        last edited by muldjord

                        @A-Bored-Ninja This has not been addressed in this release. Otherwise it would have been part of the release notes, sorry. Or have you found some other way of doing it?

                        A Bored NinjaA 1 Reply Last reply Reply Quote 0
                        • A Bored NinjaA
                          A Bored Ninja @muldjord
                          last edited by

                          @muldjord I assumed that when you took the platform option out of screenscraper it would sort of resolve itself for me.

                          Since I have a screenscraper account and get six threads that's always what I use.

                          What I not benefit from the screenscraper platform removal?

                          muldjordM 1 Reply Last reply Reply Quote 0
                          • muldjordM
                            muldjord @A Bored Ninja
                            last edited by muldjord

                            @A-Bored-Ninja Ah, yes, that is correct. I thought you were talking about the "platform alias" option I have under consideration which is not yet implemented (and might not be as it a pretty big change for little gain).

                            1 Reply Last reply Reply Quote 1
                            • O
                              OldSchool
                              last edited by

                              Hi @muldjord, is it possible to "clean up" the media? Let's say I had a bunch of games that were scraped and looking good, but some time later they were deleted for being dupes, or I just didn't want them anymore. Is there an easy way to delete the media associated with those now deleted games without clearing all of the media folders and cache, and scraping everything again? And can the cache be emptied if the games already have their media in the media folders after generating the gsmelist? Because with the cache and media folders combined I believe there's a duplicate of every media file, correct? Thanks for the help.

                              muldjordM 1 Reply Last reply Reply Quote 0
                              • muldjordM
                                muldjord @OldSchool
                                last edited by muldjord

                                @OldSchool Yes, but only from the cache. Please read the documentation for the --cache command here

                                Particularly the --cache vacuum option.

                                Concerning the ES media folder Skyscraper can't and won't keep track of what is in it. Remember that Skyscraper supports multiple frontends. Keeping track of all that is mindbogglingly difficult. But as long as you haven't made manual changes and kept your Skyscraper cache, you can just delete the media folder and regenerate the gamelist and media files. Then it will be "clean" again.

                                O 1 Reply Last reply Reply Quote 1
                                • O
                                  OldSchool @muldjord
                                  last edited by

                                  @muldjord Great! Appreciate the reply.

                                  1 Reply Last reply Reply Quote 1
                                  • muldjordM
                                    muldjord
                                    last edited by

                                    Found a bug in my mobygames cover download code that could result in an endless loop. 3.2.1 just released with this fixed, please update.

                                    1 Reply Last reply Reply Quote 1
                                    • muldjordM
                                      muldjord
                                      last edited by

                                      Skyscraper 3.2.2 released: https://github.com/muldjord/skyscraper

                                      • Added 'bat' scripts to sha1 special handling list (please purge platforms using 'bat' files and rescrape)
                                      • Now discards 'ZZZ(notgame)' results from ScreenScraper
                                      • Fixed double-quote issue when reading titles from scummvm.ini
                                      • Made location of scummvm.ini configurable in config.ini
                                      • Fixed bug in roman and integer numeral conversion functions
                                      • Rewrote the entire 'screenscraper' module to use JSON instead of XML

                                      Fixed some bugs and rewrote the ScreenScraper module from the ground up. I checked out their JSON response format and decided it was a lot cleaner to work with than the XML format. Obviously, with a total rewrite, there can be issues. I've tested it both with unregistered use and with registered use and haven't found any issues beyond what would have happened when using the XML format.

                                      Let me know if you run into problems.

                                      Have fun!

                                      1 Reply Last reply Reply Quote 3
                                      • muldjordM
                                        muldjord
                                        last edited by muldjord

                                        Skyscraper 3.2.3 released: https://github.com/muldjord/skyscraper

                                        • MAJOR: Added support for the 'Pegasus' frontend (set with '-f pegasus')
                                        • Now checks for, and removes, double bracket notes in final game list title
                                        • Fixed minor bug in the 3D gamebox effect renderer
                                        • Completely transparent images are no longer saved when compositing (Thank you to metallkopf for getting me to finally fix this)
                                        • Optimized the final game list assembling code to use game entry references instead of copies
                                        • Optimized all cache resource iterations to use const references instead of copies
                                        • Optimized the entire codebase by removing all Qt-centric foreach iterate-by-copy to use references instead
                                        • Fixed bug where 'screenscraper' would only look for ESRB age classification
                                        • Potential faulty JSON replies from Screenscraper are now saved to '~/.skyscraper/screenscraper_error.json' for easier debugging

                                        Most prominent new feature is the support for the Pegasus frontend. Use it with -f pegasus. Keep in mind that the default artwork.xml is not well suited for the default Pegasus theme, so I suggest using this:

                                        <?xml version="1.0" encoding="UTF-8"?>
                                        <artwork>
                                          <output type="screenshot" width="640"/>
                                          <output type="cover" width="640" height="480">
                                            <layer resource="cover" height="480" align="center" valign="middle">
                                              <gamebox side="wheel" rotate="90"/>
                                            </layer>
                                          </output>
                                          <output type="wheel" height="200"/>
                                        </artwork>
                                        

                                        Which will give you this:

                                        Please also remember to disable the EmulationStation linking in the Pegasus UI settings. And equally important, when a platform has been scraped, remember to add the metadata.pegasus.txt to Pegasus afterwards. The games won't show up until you do.

                                        I've also done quite a bit of optimization resulting in a 10% speed boost when generating game lists. Oh, and completely empy and transparent images are no longer saved in the media folders.

                                        Have fun! And please report any problems you might run into. There's a lot of code rewrite going on at the moment, so some bugs could have snuck in.

                                        1 Reply Last reply Reply Quote 2
                                        • muldjordM
                                          muldjord
                                          last edited by muldjord

                                          A quick note to anyone reading this: There is currently a bug in the ScreenScraper API that causes some searches to return a faulty JSON document (the raw data format). I've reported this to ScreenScraper.

                                          EDIT: They should have fixed this now, so if you still encounter JSON errors, please create a bug report report at the Skyscraper github and attach the screenscraper_error.json file as the Skyscraper output instructs. Thanks! :)

                                          ClydeC D 2 Replies Last reply Reply Quote 3
                                          • ClydeC
                                            Clyde @muldjord
                                            last edited by

                                            @muldjord Yeah, I stumbled upon this yesterday. Thanks for the announcement.

                                            1 Reply Last reply Reply Quote 1
                                            • First post
                                              Last post

                                            Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.

                                            Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.