For what I propose for the gearshifts to follow the current MAME source, see:
Obviously this does not cover other types of custom controls such as 720. For that maybe some type of PORT_FAKE_CONTROL("xx")/PORT_REAL_CONTROL("xx") system to conditionaly connect them per a UI selection. Where "xx" is the string the UI will show to select from. I have not put a lot of thought into that though.
As for other unused control info. I added PORT_FULL_TURN_COUNT, that tells how many times a control will increment in 1 full turn, such as PORT_FULL_TURN_COUNT(72) for Tempest. This would eventually allow you to specify the full turn count on your control, so it automatically scales the sensitivity to be the same. Eg, specify your control has 1200 count, then the sensitivity would be set to 6%. =72/1200*100. Other info could be added in a similar manner.
Other non emulation things programmers could add are:
XML help based system, were a tag is added to UI items and help.xml is searched for that tag and the info is displayed. help\gamename.xml would also be searched for any extra setup info for that menu item. A UI key such as [F1] would be defined to display the info when the UI is displayed, a menu item is highlighted and the button pressed.
XML based control name override, where control\gamename.xml would be searched to override button/control PORT_NAME info.
Do not p-mail me for help compiling my updates, ask on the board.
Do not request sound for your favorite game. I work on whatever, when I get around to it.
If you have schematics for discrete sound games not easily found on the net, I would be interested.