mw |
MAME Fan
|
|
|
Reged: 01/01/07
|
Posts: 76
|
|
|
Send PM
|
|
|
MAME 0.162 -listsoftware
#340834 - 06/01/15 06:28 AM
|
|
|
Now that MAME is consolidated with MESS, I was curious to try using clrmamepro to process the software lists.
I found something interesting, the "-listsoftware" command doesn't list all the software lists. When using this command line:
Code:
MAME64 -listsoftware > "MAME SL.xml"
You get a nice big file about 46 MB long. I thought it would contain the same information as the contents of the hash folder's 377 .xml files. But it turns out there are only 355 software lists in the "MAME SL.xml" file.
That's 22 missing software lists, and they don't appear when importing the solftware lists into clrmamepro. This is the list if items not appearing from the "MAME -listsoftware" command:
Code:
3do_m2 advantage amiga_flop amigaaga_flop amigaecs_flop amigaocs_flop bml3_flop cd32 cgenie_cart dim68k exl100 genius lisa2 nascom_flop pippin_flop pippin sawatte snes_vkun tandy6k vreader vsmile_cd wicat
Puzzled by this result, I tried creating the individual software lists one at a time on the command line. This worked fine:
Code:
MAME64 -listsoftware abc1600 > abc1600.xml
That gave me a nice 9 KB file. Well, abc1600 wasn't missing, so I expected that to work, and it did.
How about one of the missing ones, like pippin?
Code:
MAME64 -listsoftware pippin > pippin.xml
That gave me a very tiny file. Here are the contents:
Code:
No software lists found for this system
Hmmm. What's going on?
Please try this out for yourself, this will test six at a time. Copy and paste the following into a CMD window after changing the directory to where you have unpacked the MAME 0.162 binary from the MAMEdev site:
Code:
for %f in (pippin pippin_flop n64dd nascom_flop nascom_socket abc1600) do mame64 -listsoftware %f >%f.xml (that command is all on one line, it got wrapped by this messageboard)
Even though nascom_socket is not on the missing list, it cannot be successfully be created as a single .xml file. There are others, too. How many?
I ran these commands to check all 377:
Code:
md rehash for %f in (hash\*.xml) do mame64 -listsoftware %~nf > rehash\%~nf.xml (that's two lines)
There were 171 that had valid .xml files, 7 that produced the "No software lists found for this system" all by itself inside the file without any .xml code, and 199 that each produced a zero length file.
So the question is, Is this the expected behavior of the listsoftware command?
Note: This is not an attempt to find another way to discern the arcade ROMs from the MESS BIOS ROMs.
EDIT:
Found another interesting thing, some of the individually created .xml files have more than one software list inside.
For example this one, CDTV (Amiga CDTV CD-ROMs), when created with this command:
Code:
mame64 -listsoftware cdtv > rehash\cdtv.xml Has several other amiga software lists in it:
Code:
amiga_workbench amiga_hardware amiga_apps cdtv Well, it's supposed to have "cdtv", but why are the other three in there?
So I tried removing the three amiga .xml files from the hash folder, and tried to create the cdtv by itself. This time it worked, only producing the data for cdtv in the cdtv.xml.
Moving on, I tried cd32. When the hash folder is fully populated, the resulting file has multiple software lists in it (the same extra three as "cdtv" had). When I remove the three extra ones from the hash folder, the result is an empty cd32.xml. So work-around that worked on "cdtv" isn't working for "cd32".
Edited by mw (06/01/15 10:09 AM)
|
|
|
|
Re: MAME 0.162 -listsoftware
[Re: mw]
#340841 - 06/01/15 10:06 AM
|
|
|
> So the question is, Is this the expected behavior of the listsoftware command?
yes, because in some cases we add software list per dumper requests even before the corresponding driver is written, or before the system BIOS is dumped, or before the code necessary to load the dumped images is created thus you end up with software lists which contain valid dumps and document them, without being hooked up to any MAME/MESS driver (and thus without being accessible to the -listsoftware command)
eventually, all lists will be hooked up to the emulator, but for the time being the existence of the xml allows to document all we currently know about those dumps, which is better than not having anything at all
also, you can always use the batch scan/rebuild options of cmpro to handle those xml files separately (fwiw, personally I prefer to handle *all* software lists via such option ;-) )
|
|
|
mw |
MAME Fan
|
|
|
Reged: 01/01/07
|
Posts: 76
|
|
|
Send PM
|
|
|
Re: MAME 0.162 -listsoftware
[Re: etabeta]
#340842 - 06/01/15 10:13 AM
|
|
|
> > So the question is, Is this the expected behavior of the listsoftware command? > > yes, because in some cases we add software list per dumper requests even before the > corresponding driver is written, or before the system BIOS is dumped, or before the > code necessary to load the dumped images is created > thus you end up with software lists which contain valid dumps and document them, > without being hooked up to any MAME/MESS driver (and thus without being accessible to > the -listsoftware command) > > eventually, all lists will be hooked up to the emulator, but for the time being the > existence of the xml allows to document all we currently know about those dumps, > which is better than not having anything at all > > also, you can always use the batch scan/rebuild options of cmpro to handle those xml > files separately (fwiw, personally I prefer to handle *all* software lists via such > option ;-) )
OK, thanks for responding.
Yes, I have used the batch mode.
I guess all that work in clrmamepro to handle the [SOFT] systems isn't fully utilized yet, due to the issues you point out.
|
|
|
|
Re: MAME 0.162 -listsoftware
[Re: mw]
#340943 - 06/02/15 02:36 PM
|
|
|
> I guess all that work in clrmamepro to handle the [SOFT] systems isn't fully utilized > yet, due to the issues you point out.
well, in fact it works as intended: softlists which are not hooked up to the emulator cannot be accessed by the option -listsoftware (which pass through the emulation) you can either decide to scan them separately, or to ignore them until we hook them up to the emulator... of course, we hope you decide for the former
|
|
|
mw |
MAME Fan
|
|
|
Reged: 01/01/07
|
Posts: 76
|
|
|
Send PM
|
|
|
Re: MAME 0.162 -listsoftware
[Re: etabeta]
#340973 - 06/02/15 09:08 PM
|
|
|
From you explanation, I gather there are various levels in softwarelist support. Candidates for software list inclusion could be categorized as follows:
- Not listed in a .xml file of the hash folder.
- Listed in a commented-out area of a .xml file in the hash folder.
- Listed in the main body of a .xml file in the hash folder, but not wired into MAME.
- Listed in the main body of a .xml file in the hash folder, and wired into MAME, but has the supported="no" tag.
- Listed in the main body of a .xml file in the hash folder, and wired into MAME, and does not have the supported="no" tag.
And of course, some may be nodumps or baddumps.
The reason that categories 2 and 3 exist is to provide partial documentation for eventual inclusion as categories 4 or 5.
And any candidate could be loaded by name from either the command line or internal GUI when in category 5. If the candidate was in the other categories, it might be able to be loaded by full path\filename, provided that it's structure was compatible with the default wiring of that particular driver in MAME. And only categories 4 and 5 will produce output with the -listsoftware command.
Is that about it?
My original assumption was that MAME -listsoftware produced the de-commented contents of the various .xml files in the hash folder. That is, categories 3, 4, and 5 as listed above.
Thank you for clearing that up.
Edited by mw (06/02/15 09:12 PM)
|
|
|
|