This program takes a background image and pictures of arcade controls and combines them into a single image. It also takes the controls.xml and your ctrlr file and labels the various controls. So the "Low Punch" button will be labeled "Low Punch". Also, unused buttons are dimmed out.
I've written two versions, one using lex/yacc/C and the other using PHP. Source is included. There are several control images, too, which were created by Frostillicus.
There's one bug I haven't ironed out yet. If more than one control is mapped to the same key code on the same panel, then the label is not printed on all the controls. This happens, for example, when someone daisy chains button 7 to another button.
Multiple panels are supported. The program will decide which panel to use for a given game based on what controls each panel has. You can specify a preferred panel and you can force a game to use a particular panel. Just about every panel will play pacman, but I don't want to play pacman with a flight stick!
The most obvious use for this application will be in conjunction with my artwork display code, which will display the dynamically generated image when pause is pressed. CPMaker just takes a second or two to create an image.
EDIT: dead link removed