Don't add arcade bios to gamelists
Describe the bug Skyscraper can't distinguish arcade bios that shouldn't be added to gamelists
To Reproduce scrape a mame romset that requires bioses
Expected behavior shouldn't pick the bioses
Special circumstances nay. I scrape for AttractMode+. AttractMode's romlist generation does skip bioses hopefully. But Skyscraper must replace it otherwise it won't copy cached scraped data, bummer
Terminal output really not worth
Technical information
- Skyscraper version: 3.16.1
- Configuration switches applied : Skyscraper -p arcade -e MAME -i /home/arcade/shared/roms/
- Internet connection: fiber
- OS and Version : GroovyArcade (Arch Linux)
Additional context
Thanks for highlighting this. Some questions to get this report right:
- Does AM+ have a different output format than AM (which Skyscraper produces)? If yes: What are the differences?
- Could you provide an Arcade ROM title with Bios files as example?
- Also what is the current output of Skyscraper's AttractMode and what is the expected output? (I could not make sense of the notes in special circumstances)
Thanks again.
AM+ is fully retrocompatible with AM. Just AM is in a dead end without any activity for a signifcant time
Rom example: take the neogeo system and on of its roms, say garou.zip, it requires the neogeo bios file neogeo.zip. The only reliable way is to parse the mame.dat file (just an XML file) and find if a a rom depends on a bios. In our example here, when parsing the mame.dat:
- garou is
<machine name="garou" sourcefile="neogeo/neogeo.cpp" romof="neogeo">-> theromoflinks to a machine name - for the bios itself:
<machine name="neogeo" sourcefile="neogeo/neogeo.cpp" isbios="yes">
But that's not the only case ! you have some "devices" that have been dumped (ex: qsound and qsound_hle). These are not game roms. Again, in the mame.dat:
<machine name="qsound" sourcefile="devices/sound/qsound.cpp" isdevice="yes" runnable="no">machine name="qsound_hle" sourcefile="devices/sound/qsoundhle.cpp" isdevice="yes" runnable="no">
In the end, I think that anything with attributes runnable ="no" or isbios="yes" should be skipped.
I tried to reproduce the issue, but had no success:
Skyscraper -p arcade -f attractmode -e MAME
With the input- and gamelist-folder ~/RetroPie/roms/arcade/
tree ~/RetroPie/roms/arcade/
.
├── garou.zip
└── neogeo.zip
Resulted in this attractmode file MAME.txt:
#Name;Title;Emulator;CloneOf;Year;Manufacturer;Category;Players;Rotation;Control;Status;DisplayCount;DisplayType;AltRomname;AltTitle;Extra;Buttons;Series;Language;Region;Rating
garou;Garou - Mark Of The Wolves;MAME;;2000;SNK;Fighting / Versus, Fighting;2;;;;;;;;;;;;;0.95
and this output (default media folder):
tree ~/RetroPie/roms/arcade/
.
├── garou.zip
├── MAME.txt
├── media
│ ├── covers
│ ├── flyer
│ ├── manuals
│ ├── marquee
│ │ └── garou.png
│ ├── marquees
│ ├── screenshots
│ ├── snap
│ │ ├── garou.mp4
│ │ └── garou.png
│ ├── texture
│ ├── textures
│ ├── videos
│ ├── wheel
│ └── wheels
└── neogeo.zip
I deliberated added an entry to MAME.txt manually neogeo;Neogeo Bios;... but ended up in a clean MAME.txt as shown above, after running the Skyscraper command again.
What are the chances that GroovyArcade does add something into the MAME.txt or does add it by the frontend used in GroovyArcade (maybe there is an option in the GroovyArcade frontend to recognize only the MAME.txt entries and ignore any files in the directory (e.g. neogeo.zip)).
Currently I have no indicators that Skyscraper could be causing the reported issue.
One more thing: Maybe neogeo.zip ended up in the Skyscraper cache for some reason. You can check with Skyscraper -p arcade --cache edit ~/RetroPie/roms/arcade/neogeo.zip. If you see for any property "missing" or "NO" then it is not in the cache.
I need to investigate what happened. my romlist only had the default roms, not the one I added and scraped. But all roms did display for some unknown reason, including BIOS. Will do further testing in the coming days.
@substring Did you find a combination which indicates that Skyscraper is the cause?
no, haven't had time to retest it. I remember that first I struggled like always with skyscraper with that useless artwork.xml that was missing, then I wanted to scrape w/o using cache. In the end, I had something showing up in Attract Mode. But the name of games weren't in the romlist nor anywhere else, I just couldn't find where AM would pick up the names, but as AM+ filtering methods don't output such names and it does skip bioses, I couldn't only consider it came from Skyscraper. Let's close the issue, I'll reopen it if it happens again and I can have a step by step to reproduce it.