Gemba / skyscraper

Powerful and versatile game data scraper written in Qt and C++.
https://gemba.github.io/skyscraper/
GNU General Public License v3.0
50 stars 14 forks source link

[Enhancement] ScreenScraper fanart support #86

Open PRAEst-76 opened 1 month ago

PRAEst-76 commented 1 month ago

This may have been requested previously, but is it possible that Skyscraper could grab fanart from ScreenScraper etc.? This is supported by many ES themes.

Gemba commented 3 weeks ago

From a cursory look only Screenscraper provides fanart data, but this is not an issue. More important: Which themes do you use for EmulationStation, and where do they display the fanart? Can you provide a screenshot with the fanart section highlighted? And also how is this information stored in the gamelist.xml file?

PRAEst-76 commented 3 weeks ago

I believe thegamesdb also hosts fanart.

Themewise I'm currently using Artflix Cobalt on Batocera. When I scrape with the builtin scraper, in the fanart views the fanart is displayed in the background.

screenshot-2024 10 22-23h04 41 screenshot-2024 10 22-23h05 14

Ckau-book also have fanart/wallpaper views.

screenshot-2024 10 22-23h09 49

Even the standard carbon theme shows fanart in the background it it's available.

screenshot-2024 10 22-23h13 27

In the gamelist it features amongst the other art asset entries, eg.

<thumbnail>./images/Dragon Riders - Chronicles of Pe
rn (Europe)-thumb.png</thumbnail>
<fanart>./images/Dragon Riders - Chronicles of Pern
(Europe)-fanart.jpg</fanart>
<manual>./manuals/Dragon Riders - Chronicles of Pern
 (Europe)-manual.pdf</manual>

Hope this helps.

Gemba commented 2 weeks ago

Ah. I see, makes sense. Thanks. For ES-DE fanart support should be feasible with reasonable effort. Currently Skyscraper does not have Batocera ES frontend support and it is also not on my next priorities. Mainly as their gamelist format heavily deviated from the ES gamelist format and their documentation is not up-to-date.

However, not all is lost. Maybe you know from the top of your head what to do with the remarked elements (see example below) when they are not present, from where do they get sourced/what to fill in for new games in the gamelist, do they need to be filled in at all?

    <game id="2342"> <!-- id: source? maybe retroachievements? mandatory? automatically filled in by batocera? -->
        <path>./romfilename.zip</path>
        <name>Game Displayname</name>
        <desc>Some game description ...</desc>
        <image>./images/romfilename-image.png</image> <!-- ok: basename of <path/> elem plus "-subtype" -->
        <video>./videos/romfilename-video.mp4</video>
        <marquee>./images/romfilename-marquee.png</marquee>
        <thumbnail>./images/romfilename-thumb.png</thumbnail>
        <manual>./manuals/romfilename-manual.pdf</manual>
        <boxback>./images/romfilename-boxback.png</boxback>
        <rating>0.8</rating>
        <releasedate>19920301T000000</releasedate>
        <developer>Nintendo</developer>
        <publisher>Nintendo</publisher>
        <genre>Simulation</genre>
        <players>1</players>
        <crc32></crc32> <!-- calculated_by_batocera? or sourced from scrape source? mandatory? -->
        <md5></md5> <!-- calculated_by_batocera? or sourced from scrape source? mandatory? -->
        <lang>en</lang> <!-- mandatory? -->
        <region>eu</region> <!-- mandatory? -->
        <cheevosHash>from_retroachievements, if existing for game</cheevosHash> <!-- mandatory? -->
        <cheevosId>from_retroachievements, if existing for game</cheevosId> <!-- mandatory? -->
        <scrap name="ScreenScraper" date="20231109T170315" />
    </game>
PRAEst-76 commented 2 weeks ago

I don't think any elements are mandatory. The game id AFAIK is the ScreenScraper game id. crc32, md5 and the achievement guff i think are done by Batocera. I've been using Skyscraper to create the gamelists for use with Batocera with no obvious issues. lang and region are probably useful to have though. I didn't realise Skyscraper wasn't adding them.

Not had a lot of use for achievements myself but the hashing info is here: https://docs.retroachievements.org/developer-docs/game-identification.html . They mostly seemed to be based on md5 checksums

Gemba commented 1 day ago

Thanks, @PRAEst-76. I will also loop in @nadenislamarre for additional information: Can you comment on the assumptions we have made here so far on Batocera's Gamelist format and mandatory/optional elements/attributes. For the mandatory elements/attributes: If not obvious, how are they calculated respective where do they source from?