I think this is a summary of the current situation, please let me know if I'm wrong since I have only tried Johnny5 at this time (and unsuccessfully). I will correct this post as mistakes are pointed out. In fact it might warrant its own post once I get the info right, since the controls.dat viewer is becoming the "holy grail" for a lot of us.
This thread is about applications that allow you to display the controls for a specific game using the data from the controls.dat project (the actual data file is either controls.ini or controls.xml),
There are 3 differnet apps: Johnny5, CPViewer and CPMaker
- CPViewer seems to be the easiest to configure but has less features than Johnny5, in particular if you remapped some controls from inside of MAME (for example remap movement to diagonals on an 8-way joystick for Qbert) then CPViewer will not display the right information.
CPViewer has its own layout editor
- Johnny5 doesn't suffer from the limitation of CPViewer but I couldn't get it to work at all (and I'm not the only one with this problem).
Johnny5 also has its own editor but is less user friendly than CPViewer
Johnny5 is more likely to see future development since Howard says he will work on it, whereas JCrouse stated that CPViewer was mostly for his own use and he may not be interested in future development such as CTRL file support.
Both Jonnhy5 and CPViewer are "standalone" applications that can be called from a front end like MameWah, wither at the press of a dedicated button or when launching a ROM
- CPMaker is slightly different in that it is designed to be integrated into MAME (it is a MAME patch) although it seems to be useable as a standalone app (? someone help me here). By integrating it into MAME, you can display the control panel even when the game is running, for example when you pause it.
CP Maker doesn't overlay text onto a background image but actually combines mutliple images to build the final image displayed. One nice thing about this is that it can dim the unused buttons and controls.
CPMAke understands CPViewer's layout so you can use the CPViewer editor.