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.5m 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
      last edited by muldjord

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

      • For 'screenscraper', 'thegamesdb', 'mobygames' and 'arcadedb' Skyscraper will now no longer fetch the artworks if user has requested it to remain uncached (Thank you to user 'herbymachine' for the request)
      • Added '--skipexistingmedia' option to allow for faster gamelist generation in cases where some artwork already exists in the gamelist media folder (Thank you to 'jacrify' for suggesting this)
      • Added '--flags' command-line option that collects certain flag-like options into one
      • Added deprecated warnings to all options that are now moved to the '--flags' option
      • Added '*.cue' extension to '3do' platform (Thank you to 'therealdealneil' for the suggestion)
      • Implemented a hack for the 'daphne' platform that will add the game info to the 'game.daphne' folders instead of the 'game.zip' files (Thank you to 'AlCzervik' for pointing this out)

      Several new features made it into this one that have been a long time coming. For one, when scraping any platform and user has requested any particular artwork resource not to be cached, the artwork will no longer be fetched from the sources either. This saves bandwidth and will provide faster resource gathering. So if you use the --nocovers and so on options (which are now deprecated, read on below), this will be useful to you.
      A somewhat similar feature is the option to now skip any artwork generation if the artwork already exists in the media output folder. This can be done with the flags --flags skipexistingTYPEs where TYPE is cover, screenshot and so on. Remember the sat the end, so it's --flags skipexistingcovers. So basically, if the only thing you've changed is the textual data and you want to regenerate the gamelist only with that, you can now skip some or all of the artwork compositing to save a lot of time.

      So, this is 3.5.0, and a rather substantial change to the command-line options have also snuck in. I was getting increasingly annoyed with how bloated the Skyscraper --help output was getting. It shows way too many options that are often only used in niche cases. I wanted to do away with that. So all options that do not require a parameter, which means they are basically flags, have now been collected in the --flags FLAG1,FLAG2 option. To see all available flags simply type Skyscraper -p PLATFORM --flags help. I will probably make this a bit smarter in the coming releases. Specifically I want it to only show flags that are relevant in relation to what mode Skyscraper was started in. For instance, if -s MODULEisn't set, it shouldn't show the --flags forcefilename option in the flags help text as it is not relevant when -s MODULEis left out. So it will be a contextual flags help. For now though, it just shows all flags.

      @mitu The old options are still there, but should be corrected in the retropie script sometime soon'ish, as I plan to remove them from Skyscraper entirely in a few months. I won't do so without warning of course, but for now they are clearly marked as Deprecated in the Skyscraper --help output. If you want me to I can look over the script myself and see if I can figure out how to migrate them to the new --flags unattend,forcefilename,... format. Let me know what you think.

      1 Reply Last reply Reply Quote 2
      • A
        AlCzervik @muldjord
        last edited by AlCzervik

        @muldjord Still not showing with v3.5.0. What can I do to help? When I kill EmulationStation I do see the following error (not sure if this is related at all):
        lv10: Error finding/creating FileData for "/home/pie/RetroPie/roms/daphne/roms"

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

          @AlCzervik I just tested it on lair, works fine.

          Please recheck that Skyscraper has been updated to 3.5.0 at the top when you run it. For a more thorough fix, first exit EmulationStation (Very important!) then try running:

          $ Skyscraper -p daphne -s screenscraper --refresh --flags unattend
          $ Skyscraper -p daphne --flags unattend
          

          That should do it. For it to work you need the lair.daphne folder with the files inside. And there needs to be a roms/lair.zip file, just as it describes on the RetroPie daphne page you linked above.

          A 1 Reply Last reply Reply Quote 0
          • A
            AlCzervik @muldjord
            last edited by

            @muldjord I reconfirmed 3.5, ran your commands, and still no art. I then removed everything from the daphne folder, restarted and no game (as expected). I then re-added all the files to lair.daphne and the roms folders under daphne. So the daphne folder only had lair.daphne and roms and the roms folder contained lair.zip. Rebooted and Dragon's lair was operational. Played a few rounds to confirm. I then exited EmulationStation again, re-ran the two commands you list above and still nothing via EmulationStation. I once again see the following error after quitting EmulationStation now: lv10: Error finding/creating FileData for "/home/pie/RetroPie/roms/daphne/roms", skipping. I think that has to be part of the issue. Lair is operational so I know the folders are setup correctly. Let me know what screenshots you'd like.

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

              @AlCzervik Can you please paste the contents of /home/pi/RetroPie/roms/daphne/gamelist.xml here as a codeblock? I'm kind of thinking that maybe some other gamelist is overriding it. I just need to verify that it even exists and that the contents look as it is supposed to.

              A 1 Reply Last reply Reply Quote 0
              • A
                AlCzervik @muldjord
                last edited by

                @muldjord Here you go:

                <?xml version="1.0"?>
                <gameList>
                <folder>
                <path>/home/pi/RetroPie/roms/daphne/roms</path>
                <name>Dragon's Lair</name>
                <cover />
                <image>/home/pi/RetroPie/roms/daphne/media/screenshots/lair.png</image>
                <marquee>/home/pi/RetroPie/roms/daphne/media/marquees/lair.png</marquee>
                <video />
                <rating>0.8</rating>
                <desc>Originally released in the arcades as a laserdisc game, Dragon's Lair is an interactive cartoon movie. Players control Dirk the Daring as he struggles his way through a dungeon to fight Singe, the Dragon, and rescue the beautiful Princess Daphne. The game consists of animated scenes, during which the player has to press direction buttons or the sword button in the right moment to trigger the next segment of the movie.</desc>
                <releasedate>19830601T000000</releasedate>
                <developer>Sullivan Bluth Interactive</developer>
                <publisher>Cinematronics</publisher>
                <genre>Platform, Plateform / Run Jump, Action / Adventure</genre>
                <players>2</players>
                </folder>
                </gameList>

                muldjordM 2 Replies Last reply Reply Quote 0
                • muldjordM
                  muldjord @AlCzervik
                  last edited by muldjord

                  @AlCzervik Thanks, something is definitely wrong with that. <path>/home/pi/RetroPie/roms/daphne/roms</path> should be <path>/home/pi/RetroPie/roms/daphne/lair.daphne</path>. I find that a bit odd as it worked when I tested it here. I'll look into it.

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

                    @AlCzervik 3.5.1 out now where this is fixed. It only happens when you only have a single rom for the daphne platform. Which is why it didn't happen on my setup where i have two. But it's fixed for instances where the is only one as well now.

                    Please update and run Skyscraper -p daphne.

                    A 1 Reply Last reply Reply Quote 1
                    • mituM
                      mitu Global Moderator
                      last edited by mitu

                      Not quite, but progress. Here's what it generated in my gamelist:

                        <folder>
                          <path>/home/pi/RetroPie/roms/daphne/lair.daphne</path>
                          <name>Dragon&apos;s Lair</name>
                          <cover />
                          <image>/home/pi/RetroPie/roms/daphne/media/screenshots/lair.png</image>
                          <marquee>/home/pi/RetroPie/roms/daphne/media/marquees/lair.png</marquee>
                          <video />
                          <rating>0.8</rating>
                          <desc>Originally released in the arcades as a laserdisc game, Dragon&apos;s Lair is an interactive cartoon movie. Players control Dirk the Daring as he struggles his way through a dungeon to fight Singe, the Dragon, and rescue the beautiful Princess Daphne. The game consists of animated scenes, during which the player has to press direction buttons or the sword button in the right moment to trigger the next segment of the movie.</desc>
                          <releasedate>19830601T000000</releasedate>
                          <developer>Sullivan Bluth Interactive</developer>
                          <publisher>Cinematronics</publisher>
                          <genre>Platform, Plateform / Run Jump, Action / Adventure</genre>
                          <players>2</players>
                        </folder>
                      
                      
                      
                      <folder>
                          <path>/home/pi/RetroPie/roms/daphne/astron.daphne</path>
                          <name>Astron Belt</name>
                          <cover />
                          <image>/home/pi/RetroPie/roms/daphne/media/screenshots/astron.png</image>
                          <marquee>/home/pi/RetroPie/roms/daphne/media/marquees/astron.png</marquee>
                          <video />
                          <rating>0.6</rating>
                          <desc>In Astron Belt, you fly through the universe battling alien ships to make your way to fight the main Alien Battle Cruiser.  Along the way, you fly across alien planets, through tunnels, through trenches, and get involved in a few astro-dogfights with enemy space fighters</desc>
                          <releasedate>19830710T000000</releasedate>
                          <developer>Sega</developer>
                          <publisher>Sega</publisher>
                          <genre>Shoot&apos;em Up, Shooter, Shooter / Plane, 1st person</genre>
                          <players>1</players>
                        </folder>
                      

                      Note that I have a single game (lair.daphne), and the roms sub-folder has multiple entries (for multiple games), which have been thoroughly scraped :). The gamelist has all the .zip scraped data for each zip found under roms, but with paths similar to the entry above.

                      Daphne is a weird system.

                      1 Reply Last reply Reply Quote 0
                      • A
                        AlCzervik @muldjord
                        last edited by

                        @muldjord Worked! And it looks glorious !
                        F453C513-0BC8-417A-8A0A-E9CB15ED3656.jpeg

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

                          @AlCzervik Awesome! Thanks for testing

                          @mitu Sure is. To my knowledge it is also the only system that launches from a folder and not a file. I played a bit of Dragon's Lair 2. Damn it's hard! But it works pretty well.

                          Did you see my mention in https://retropie.org.uk/forum/topic/11826/versatile-c-game-scraper-skyscraper/1420 about the (soon-to-be) deprecated flags that are now moved to --flags? I can give it a go updating it myself if you like.

                          mituM 1 Reply Last reply Reply Quote 0
                          • mituM
                            mitu Global Moderator @muldjord
                            last edited by mitu

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

                            Did you see my mention in https://retropie.org.uk/forum/topic/11826/versatile-c-game-scraper-skyscraper/1420 about the (soon-to-be) deprecated flags that are now moved to --flags? I can give it a go updating it myself if you like.

                            Yes, I'll have to update the script to make use of them. I wouldn't mind if you do it instead of me :), but it's no trouble.

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

                              @mitu Great, I'll look into it at some point. But we should probably hold out on it until there's a reasonable chance that people have updated to the 3.5.x versions. Otherwise it won't work for pre-3.5.x users when the script is using the --flags options.

                              1 Reply Last reply Reply Quote 0
                              • KN4THXK
                                KN4THX @muldjord
                                last edited by

                                @muldjord Thank you, it seems to have been my fault but the result was strange. I failed to have the user"pass line uncommented properly so it was not detecting my thread count and said I was logged in as an anonymous user (which limited me to 1 thread).

                                What was weird was my scrape count kept going up in my SS account when monitoring it in real time. Not sure if that is any relevant info to you but everything works dandy now and you are much appreciated in every way. I thank you and hope you are staying safe.

                                "If you're gonna play the Game Boy, You gotta learn to play it right" - https://www.youtube.com/watch?v=FYLGl92ETNQ

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

                                  @KN4THX Hm, that makes little sense. If the entire userCreds="USER:PASS" line was commented I can't see how ScreenScraper would know it is you who is scraping. It has to have been entered somewhere, somehow. Maybe it wasn't entirely commented? I dunno. Glad you like the scraper and got it working.

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

                                    @mitu I've forked and updated the skyscraper.sh script to use the --flags FLAG1,FLAG2 format. I've also added version checks for at least 3.5 to the gathering and generating functions that will display a message in case the user needs to update. Lastly I've updated all the places where the old flags were mentioned in the help texts so they now show the new --flags versions.

                                    Should I just create a pull request for the RetroPie-Setup project?

                                    mituM 1 Reply Last reply Reply Quote 1
                                    • mituM
                                      mitu Global Moderator @muldjord
                                      last edited by

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

                                      Should I just create a pull request for the RetroPie-Setup project?

                                      Why not ? I'll take a look - just be careful with those tabs :).

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

                                        @mitu Yeah, I know. I think I got it right... Not 100% sure though. :D I'll make a pull request.

                                        EDIT: Here it is: https://github.com/RetroPie/RetroPie-Setup/pull/3119

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

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

                                          • MAJOR: Added video conversion support through config.ini option 'videoConvertCommand="COMMAND %i %o"' option. See docs for more details.
                                          • Removed deprecated '<cover>' node and replaced it with '<thumbnail>' for ES gamelist generation (Thank you to 'yisraeldov' for letting me know)
                                          • Added simple error handling for media network requests
                                          • '--flags help' and '--cache help' no longer requires '-p PLATFORM' to be set
                                          • Changed 'worldofspectrum' scraping module to use https

                                          Most prominent new feature is the addition of video conversion options. The videos delivered by the scraping sources can vary quite a lot in codec and color format. The new videoConvertCommand="COMMAND %i %o" config.ini option allows you to funnel the videos through an external command, before saving them to the cache. This all happens on the fly.
                                          I have added an example command in the config.ini.example file. Obviously, if you use ffmpeg as the example uses, you need to install it first. For RetroPie and other Debian-derived distros you can install it with sudo apt install ffmpeg. Read more about the possibilities here. The video conversion makes good use of the --verbosity N option. So be sure to use --verbosity 3 when testing your own commands to ensure everything works as expected.

                                          Let me know if you test this out.

                                          1 Reply Last reply Reply Quote 3
                                          • ohmycommodoreO
                                            ohmycommodore
                                            last edited by

                                            Using it a week or so ago, it completely missed on some major systems like Sega and SNES and more. I'll have to try it again. Odd that I could see it scraping for those systems but in the end presented me with nothing.

                                            muldjordM 1 Reply Last reply Reply Quote 0
                                            • 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.