Closed retrobit closed 11 months ago
Hi there. That's ok to file it as issue atm. I have read the comment you mentioned in the original Skyscraper repo.
It should be solvable by adding to peas/platforms_idmap and es_systems.cfg files as you did (Solution 2 you have been sketching).
Edits in xy_platforms.json are not needed and moreover they will be overwritten with each Skyscraper update, as these files are only a reference for editing the platforms_idmap CSV. If you add -1 to the platfroms_idmap CSV, the aliases from peas are tried to find a match. When a scraping side does provide a dedicated key for the Satellaview, great, otherwise you should check the scraping site (as you did) under which System the ROM in questions is listed. Then use either a matching entry (snes in your case) or if there is no match in the xy_platforms.json use -1 and add the scraping site system name in the aliases in the peas file.
I checked the ES code, and the multiple platform names in a es_systems.cfg in <platform>
is only evaluated if you scrape from within ES, thus it is unrelated to Skyscraper.
HTH
Clarifying the role of the three files and how they relate to each other was very helpful! Also explaining that <platform>
is used by ES, but not by Skyscraper.
I feel foolish, not seeing https://gemba.github.io/skyscraper/PLATFORMS/#supported-platforms-and-how-to-add-new-platforms-for-scraping and https://github.com/Gemba/skyscraper#skyscraper-configurable-platforms-enhancement earlier... Though I think the former could use a rewrite to be more clear.
I will add my use case after I have finished and got it working, and then maybe others can follow more easily 😄
I've documented my use case, end-to-end, so it should be easy for anyone to follow and to learn by doing. Feel free to use as an example for the official documentation under the Supported Platforms and how to add new Platforms for Scraping section. Note: since this was documentation I made for myself, there are redundancies with the official documentation that can be safely removed.
This step-by-step use case will add the non-EmulationStation-standard system satellaview
to the frontend, and scrape with the Screenscraper scraping module. Similar can be done for other frontends and scraping modules.
Note: "system" and "platform" terms can be interpreted as the same, the only difference being the context of what program/file uses it for
Note: This example use case will have some redundant information from the official documentation on this
Note: Close EmulationStation before starting
There are 4 files at play here:
es_systems.cfg
- EmulationStation systems configuration
platforms_idmap.csv
- Skyscraper mapping of platforms to scraping modules
peas.json
- short for "platforms, extensions/formats, aliases and scrapers" - Skyscraper mapping of these internally
aliases
" array are tied to platforms in platform_idmap.csv
screenscraper_platforms.json
- Screenscraper platform-specific settings
*_platforms.json
files have same purpose, but for other scraping source moduleses_systems.cfg
Add
<system>
<name>satellaview</name>
<fullname>Satellaview</fullname>
<path>/home/pi/RetroPie/roms/Nintendo - Satellaview</path>
<extension>.7z .bin .bs .smc .sfc .fig .swc .mgd .zip .7Z .BIN .BS .SMC .SFC .FIG .SWC .MGD .ZIP</extension>
<command>/opt/retropie/supplementary/runcommand/runcommand.sh 0 _SYS_ snes %ROM%</command>
<platform>satellaview,snes</platform> <!--Not used by Screenscraper, but by built-in ES scraper and maybe others-->
<theme>satellaview</theme>
</system>
Note: This is a copy of the snes
entry, replacing field values where appropriate. If your theme doesn't support Satellaview, you can revert the <theme>
field to snes
.
platforms_idmap.csv
Add
satellaview,107,-1,-1
107
points to the entry in screenscraper_platforms.json
, while the -1
entries mean satellaview
isn't supported as a platform by mobygames_platforms.json
or tgdb_platforms.json
(at least yet). -1
means it when scraping, it will look under the aliases
defined for satellaview
in peas.json
when provided via -p satellaview
as the platform to scrape on the command line.
peas.json
Add
"satellaview": {
"aliases": [
"snes",
"nintendo power",
"snes - super mario world hacks",
"sufami turbo",
"super famicom",
"super nintendo",
"super nintendo (snes)",
"super nintendo entertainment system (snes)",
"super nintendo msu-1"
],
"formats": [
"*.bin",
"*.fig",
"*.mgd",
"*.sfc",
"*.smc",
"*.swc"
],
"scrapers": [
"openretro",
"screenscraper"
]
}
Note: This is a copy of the snes
entry while adding snes
and removing satellaview
in the aliases
array.
gamelist.xml
as in the sample use case using Skyscraper -p satellaview -s screenscraper
and Skyscraper -p satellaview
Thanks. I compiled your usecase in the documentation.
Thank you, and thanks for creating this fork and actively maintaining it 😀
Maybe you'll see a pull request from me in the future 🙃
Not a bug, but that was the only issue choice.
Wasn't sure if I should create a new issue here or refer to the previous issue from the original repo.
I added a comment to the existing feature request that I think might be useful.
Thank you!