I need a vanilla ASCII, tab-separated list of the arcade games which I have in my "roms" directory of MAME, with at least the following entries: game name, year, manufacturer. Also good would be to have genre. Can I get this with MAME using command line parameters? I know it has the year, manufacturer.... information stored, but how do I retrieve it without painstakingly going manually through each game?
-
2off-topic, because not about playing games, but of meta-game nature.– DrFishCommented Sep 17, 2013 at 11:38
-
2That a moderator answered this in 2012 would seem to indicate that this is not off topic.– SevenSidedDieCommented Sep 17, 2013 at 23:27
-
1This seems to be about how to use an emulator, which seems to be on-topic as per the Arqade Meta post, What's the official stance on console emulation?– galacticninjaCommented Sep 18, 2013 at 10:16
2 Answers
The game files themselves only contain the ROM data from the arcade cabinet - they don't contain any information about the game itself. That information is stored in XML files (in my copy of MAME, these are stored in the "hash" directory) that ship with MAME.
MAME has a command line option "-listxml" which can be used to dump this XML list to the command line, and you can filter it, but this might get somewhat tedious if your library is large.
There are a couple of listing tools available that can list and export lists of ROMs along with the data you're looking for. There may also be MAME front-ends that have this functionality, although it's not a primary feature of most front ends, so short of downloading them all and testing them, I can't give a concrete recommendation.
Finally, if you're not afraid to do a little script work yourself, there are a million ways to just access the XML file directly and extract the elements you need. Perhaps this StackExchange question about parsing XML files from the command line would spark some creative ideas. You'd have to list the rom directory, and then parse/filter the XML entries to only print the relevant information for the files you actually have available.
I think you have to parse the output of -verifyroms
then pass each working romset name to -listxml for full info or -listfull for just name/description.