Thanks for moving the post. I was conflicted since it was emulator specific, but the workaround list import as well but also a general function...
MAME and MESS merged in 0.162...
We need to be able to generate and import softwarelist from there as it's the only command to generate list per system.
From there i can create package of emulator config per system with relative path and also rom lists package to have a ready to use and move around emulation folder.
Nevato theme is great, look forward to have it per system. Already put the rom name as right lcd info...
mame64 -listsoftware neogeo > neogeo.xml (attached)
attract-v2.1.0-win64>attract -i neogeo.xml "mame - snes"
*** Importing Collection/Rom List: neogeo.xml
[Import neogeo.xml] - Imported 0 entries.
[Import Z:\Software\Emulation\Emulators\Mame\Catver.ini] - found info for 0 entries.
[Import Z:\Software\Emulation\Emulators\mame\nplayers.ini] - found info for 0 entries.
https://github.com/mickelson/attract/edit/master/src/scraper_xml.cpp seem to be where the magic happens
Here is the mod that added listsoftware support:
https://github.com/mickelson/attract/commit/431e764e2bdffc671f8241ccb6c230cc96413852https://github.com/mamedev/mame/releases?after=mame0167tried mame0163b_64bit.exe version to generate snes xml list, still not imported with Attract Mode 2.1.0...
Mame listsoftware XML format:
<softwarelists>
<softwarelist name="neogeo" description="SNK Neo-Geo cartridges">
<software name="nam1975">
<description>NAM-1975 (NGM-001 ~ NGH-001)</description>
<year>1990</year>
<publisher>SNK</publisher>
<info name="serial" value="NGM-001 (MVS), NGH-001 (AES)"/>
<info name="release" value="19900426 (MVS), 19910701 (AES)"/>
<info name="alt_title" value="ナム1975"/>
<part name="cart" interface="neo_cart">
<feature name="release" value="MVS,AES" />
<feature name="compatibility" value="MVS,AES" />
<dataarea name="maincpu" size="1048576">
<rom name="001-p1.p1" size="524288" crc="cc9fc951" sha1="92f4e6ddeeb825077d92dbb70b50afea985f15c0" loadflag="load16_word_swap"/>
[...]
</dataarea>
</part>
</software>
<software ...name="bstars">[...]
looking at source code, if "software" is meant to be the root element, it won't work and need to replace software by softwarelists
void FeListXMLParser::start_element(
const char *element,
const char **attribute )
{
if (( strcmp( element, "game" ) == 0 )
|| ( strcmp( element, "software[u][b]lists[/b][/u]" ) == 0 )
|| ( strcmp( element, "machine" ) == 0 ))
doesn't work:C:\mame>mame64 -listsoftware snes>text.xml
work: C:\mame>mame64 -listxml snes>text.xml