I would say that the internal mechanics are indeed less specific and that's why it is inaccurate. At least from what I've seen of the source.
Mame's -listinfo is setup to only list one input type (8wayJoy or spinner or pedal). But what about DOT (like SirPoonga said) or other games with a (push button) spinner and an 8wayJoy. Or driving games with: a spinner and a pedal, or a paddle and two pedals. Mame -listinfo shows incomplete data.
Are you going to try to include these mutliple control type game from the beginning, or maybe add multiple control-types support later? (Your example does not say one way or the other) These are a small percent of mame, though, so don't halt the project trying to shoe horn the feature in.
Some of you seemed to have an interest in helping and trust me there will be work to be done. If you guys think I can make a list for all 3000 games then forget it... I will expect a lot of help from the community to make these files and I will complie them into a single list periodically. If you guys are really all for this, what I will do is post a list of all the games being worked on so that you guys don't repeat work and you can send them to me. Even if it's just one game it would help a lot. This will be similar to the mameinfo project in that it will take a handful of people, at the very least to get it done.
As I said last post, I'll play, I mean collect data on, a bunch'o games for the project.
Another question is how do we match the mame name of the button to the caption when the data is collected? Unfortunately the only way to do it is manually. Klov is good about putting the buttons functions but they are in the order they appear on the arcade control panel, not the way mame numbers them. A good example of this is the mortal kombat games as they have a wierd layout. You pretty much have to re-define those buttons anyway so that might be another issue, which I think could be fixed with a secondary set of skin files. Just for those special games that require remapping. Or perhaps custom button name support, like mkbutton1 or ect.... any ideas on this problem?
I suggest use mame's button numbering, and assume the user's ctrlr.ini files do the remapping.
Button1 = "fire", Button2 = "jump" in the cp veiwer game information files.
The buttons in the skin include the keyboard or joystick equivalent ('ctrl', 'alt', 'joy1_button1, mousebutton1, whatever). (Alternate: the buttons are button1, button2, ect, and the veiwer assumes the buttons are mame's default keyboard equiv.)
Then the cp veiwer takes the gamename, looks at the ctrlr.ini folder for any remapping, and then makes the link between label and skin button.
Example: the skin button (shown with greenbutton.png) is the 'alt' key; ctrlr.ini for this game says alt key is mame_button2; and the skin info file for this game has mame_button2 labeled "special").
This will handle remaps by the ctrlr.ini method, including situations where two cp buttons are mapped to one mame button (say, the two middle buttons in a 6 button reactangle 'OR' mapped to "block" in mk). The alternate would be fine for most players, since most people just use ipac's/Xarcade's/hotrod's standards, and would be more intuative. However, it would be great if the user could change the skin's button to the acutal key the button is mapped to also (probably as an "advanced" feature?).