Versatile C++ game scraper: Skyscraper
-
@movisman Just tested it with "Another World (Europe)" for Megadrive, and you're right, it grabs the "Out of this world" marquee for some reason. I'll look into it.
-
Nice one. I'm glad you can replicate it! I would need to check, but I think it happens on other systems too. I can probably get you more files to test against if required.
Cheers
-
@movisman I found the reason. I look for the "wheel" and if that isn't found I look for the "wheel-hd" types when scraping the wheel, and for "Another World" there only is a us version of that. The "eu" wheel shows up on the website, but not in the data I get when searching for the game. I'll need to figure out why that is. Perhaps it's hiding behind some other type.
Ok, so this is the reason: For those games they have the "wheel" artwork with "us" region. But it also has the "wheel-hd" artwork with "eu" region.
EDIT: Ok, so I've fixed this now. I've made it so it doesn't just look for "wheel" but every type that has "wheel" in it. So it'll also look through the "wheel-hd" and other wheel types. I've tested this and it works. I just need to make sure it doesn't break any of the other types.
EDIT2: There, fixed! I decided to just re-release 2.8.2 with the fix, so please update again. If you are updating using the "update_skyscraper.sh" script (if you installed it using the RetroPie-Setup you aren't) you'll have to do "rm /home/pi/skysource/VERSION" before updating, otherwise it'll just think you already have the latest version. Also, thank you @movisman for letting me know about this issue. I would never have noticed myself. I would just have assumed it didn't have the wheel for the region.
-
Hi,
Ah, ok just getting my head around it - so what you're saying is because you look for 'wheel' first, it is grabbing the US version because no EU version exists for that? But ignoring the fact that an HD wheel is available for EU?
Is there a way to search both wheel and wheel HD first before going to a fallback?
I also noticed, with Thunder Force, there is only a World and US wheel. No Europe. But World should be the same as Europe. But what must be happening there, is because my rom is (Europe), it looks for that wheel, cannot locate it, so it then goes for the standard priority list for skyscraper, which I believe has US as the next one. I'd have to change the priorities so that 'world' is ahead of 'europe'. This means it would get the correct wheel I guess. Or what i'll likely do is submit the correct logo with 'Europe' as the region.
-
@movisman said in Versatile C++ game scraper: Skyscraper:
Is there a way to search both wheel and wheel HD first before going to a fallback?
Yes, this is exactly what I just changed.
-
Cool! I will give it a try and see how it works. Sorry I didn't see your edit above already explaining that.
Just thinking out loud, if you are now attempting to auto detect region, and then hit the priorities list after that, would it be sensible to have 'world' first in that list? Then eu, us, jp.
The reason I was thinking that, an example:
GameX (Europe).zipWants European boxart and logo/game title, but it isn't available on screenscraper.fr. However World is there, and US is there. World seems to me, to be more likely to have the same boxart and/or title as the European release. However on default priority, if EU cannot be found, it will go for the US release, which is more likely to have a different name, and definitely a different box.
The same goes if you have a (USA) release, if this isn't available but World and Europe are, it could go for World, and then Europe after that.
Does that make sense? I might be missing something to suggest this isn't a good idea, but I think that would possibly work better?
-
Separate question, can I scrape a single rom when using the --localdb switch? For some reason, that doesn't work for me. Running a command on a single rom, for example:
/opt/retropie/supplementary/skyscraper/Skyscraper --unattendskip --refresh -g /home/pi/RetroPie/roms/megadrive -o /home/pi/RetroPie/roms/megadrive/media --relative -p megadrive -s screenscraper -u username:password --videos "insertromnameandpathhere.zip"
Will successfully scrape a single rom to the localdb.
However, when I then run the same command as above but with the localdb as source to pull the rom into the gamelist, it doesn't do it. I believe the same happens when using the query function too.
If I then remove the single rom+quotes at the end of the above command to pull the entire localdb for that system into the gamelist.xml, it will bring the rom in successfully, but unfortunately at the expense of any manual edits I made to the other games (it will overwrite any minor changes you made).
Any idea?
Thanks
-
@movisman said in Versatile C++ game scraper: Skyscraper:
@muldjord
Just thinking out loud, if you are now attempting to auto detect region, and then hit the priorities list after that, would it be sensible to have 'world' first in that list? Then eu, us, jp.
I did this originally, but it turned out many world entries have the japanese versions, so I changed it. -
@movisman said in Versatile C++ game scraper: Skyscraper:
Separate question, can I scrape a single rom when using the --localdb switch? For some reason, that doesn't work for me. Running a command on a single rom, for example:
That is not possible and won't be possible. It would require me to inject only selected entries into the gamelist which is something I don't want to fiddle with.
-
@muldjord said in Versatile C++ game scraper: Skyscraper:
@movisman said in Versatile C++ game scraper: Skyscraper:
@muldjord
Just thinking out loud, if you are now attempting to auto detect region, and then hit the priorities list after that, would it be sensible to have 'world' first in that list? Then eu, us, jp.
I did this originally, but it turned out many world entries have the japanese versions, so I changed it.Ah ok, I see. That's fair enough.
-
@movisman Let me elaborate a bit. I'm not saying it won't ever be able to do that (actually that is what I wrote but whatever), but it's a rather big code rewrite I would have to do for that functionality. And personally I wouldn't ever use it. I change the data in my localdb instead and rescrape. Much better imo.
-
@muldjord said in Versatile C++ game scraper: Skyscraper:
@movisman said in Versatile C++ game scraper: Skyscraper:
Separate question, can I scrape a single rom when using the --localdb switch? For some reason, that doesn't work for me. Running a command on a single rom, for example:
That is not possible and won't be possible. It would require me to inject only selected entries into the gamelist which is something I don't want to fiddle with.
Cool, that's fine, I just wanted to check if it was possible or if I was doing something wrong. If I want to scrape a single game but not have it fiddle with the existing gamelist entries, is my only option at the moment either to edit the db.xml file for that system, or scrape the file to a fresh gamelist.xml and merge it into my existing one?
Thanks!
-
@movisman Second option is your best option as you've already edited the gamelist manually. The first one won't work. If you've already manually edited your gamelist, it won't help to change the data in your localdb files. It will still overwrite the things you've changed upon a rescrape.
-
Ah no yeah I understood that, I haven't made loads of edits to the point where I couldn't rescrape. To be honest since you've improved the region stuff it's going to be quicker for me to rescrape anyway to pick up the correct artwork, so I could rescrape, edit db.xml after and then scrape from the DB.
-
Hiya,
Since I updated this morning, for some reason queries against SH1, CRC, MD5 are not working? It just comes back with 'game xxx not found' on pass 1. Adding the maximum verbosity on the command line shows the correct SHA1 and platform, but it never finds it. I am using literally exactly the same command as I was using previously to obtain a correct scrape for mismatched files. Tried a variety of valid checksums off screenscraper.fr.
Running without query is fine though.
Do you know what might be happening?
Thanks!
-
FYI,
An example command used was:
/opt/retropie/supplementary/skyscraper/Skyscraper --unattendskip --refresh -g /home/pi/RetroPie/roms/dreamcast -o /home/pi/RetroPie/roms/dreamcast/media --relative -p dreamcast -s screenscraper -u username:password --videos --nobrackets --query sha1=058b2eda664ee953caeb5ad35efbbdbcfc60d85f "/RetroPie/roms/dreamcast/Crazy Taxi (USA).chd" --verbosity 3It made a start, then bombs out:
Starting scraping run on 1 files using 3 threads.
Sit back, relax and let me do the work! :)#1/1 (T1) Pass 1 ---- Game 'Crazy Taxi (USA)' not found :( ----
Debug output:
Tried with: 'sha1=058b2eda664ee953caeb5ad35efbbdbcfc60d85f'
Platform: dreamcast0/1/1
This wasn't happening before, but thought i'd share the command I used. I tried a few others, changed my file extensions around etc, but the same result.
Thanks
-
Where have my scan lines gone?
So I had hoped to take a bunch of screenshots myself that included the scanline shader.
The screenshot.png has the scanlines (I've even resized the image in GIMP to the same specs as my artwork.xml and they are still there) but after skyscraper processes the image to create my final png the scanlines have magically disappeared. Is there anything I can do to make sure that the image remains similar to the original or is it a limitation of the artwork manipulation scripts.Also I pick up some noticeable banding (especially noticeable in the gray gradient box), is there anything I can do to help combat that?
Here are a couple of screenshots, the GIMP resized and cropped png and the artwork.xml png, you can tell the missing scanlines. And the associated artwork.ini
<?xml version="1.0" encoding="UTF-8"?> <artwork> <output type="screenshot" width="640" height="480"> <layer resource="screenshot" x="20" width="520" height="390" align="center" valign="middle"> <rounded radius="10"/> <stroke width="1" red="0" green="0" blue="0"/> <stroke width="1" red="156" green="156" blue="156"/> <stroke width="2" red="35" green="35" blue="35"/> </layer> <layer resource="blank.png" align="right" valign="top"> <rounded radius="10"/> <layer resource="wheel" width="161" align="center" valign="middle"> </layer> <rounded radius="10"/> <stroke width="1" red="0" green="0" blue="0"/> <stroke width="1" red="156" green="156" blue="156"/> <stroke width="2" red="35" green="35" blue="35"/> </layer> </output> </artwork>
-
@jakejm79 said in Versatile C++ game scraper: Skyscraper:
Where have my scan lines gone?
If you resize an image with scanlines they will seem to disappear - or at least get smoothed over. That's not a Skyscraper issue but a resize issue in general.
-
@movisman said in Versatile C++ game scraper: Skyscraper:
Hiya,
Since I updated this morning, for some reason queries against SH1, CRC, MD5 are not working? It just comes back with 'game xxx not found' on pass 1. Adding the maximum verbosity on the command line shows the correct SHA1 and platform, but it never finds it. I am using literally exactly the same command as I was using previously to obtain a correct scrape for mismatched files. Tried a variety of valid checksums off screenscraper.fr.
Running without query is fine though.
Do you know what might be happening?
Thanks!
Please update and try again, I fixed some stuff. I need to test the query stuff you mention to see if that has been broken. Gonna look at it sometime soon.
-
Well I understand what you are saying, but if you look at the example, they have both been resized to the same dimensions from the same original screenshot and the scanlines are still prominent in one.
Upon further inspection it looks like skyscraper reduces the screenshots to a 640x* resolution when importing them into the DB (maybe to save space), it appears that whatever interpolation is used with this scaling that causes the problem. Is there a flag or variable that can be change to decide what is used? or at least allow the user the option artwork to be imported to the DB at original dimensions if disk space is not an issue.
OK so it appears the database import is the issue (or if you will responsible) rather than the artwork.xml. I copied the original screenshot to the database directory (and renamed it). Ran Skyscraper and it generated the games artwork, as you can see in the example below the scanlines are visible, not to mention the overall image quality is better, doesn't really make sense to me to have Skyscraper resize the image twice (on DB import and artwork export) especially at the expense of quality.
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.