Howdy,
Yes -- you can choose to view the board as 39 independently addressable PWM LED drivers. The control protocol is geared around RGB stuff, but for the most part, you can treat the items as independent. One thing that is wired in to RGB is the current control. If you set 20ma or 10ma output for a "LED", it affects all three LED colors (R, G and B) so if you needed different current on each LED, you might have to group similar requirements together. If you want more than 13 RGB LEDs, you can hook 2 or more controller boards to the same serial line. Each board can have it's own unique address, so theoretically, you can control 3,302 RGB LED or 9,906 "normal" LEDs on a single serial port (in reality, loading on that line would be too much to drive so many boards without some sort of booster/amplifier, but you can easily run 6 or 7 controllers on a single line (maybe more -- I only have tried 6 so far).
The PWMs have a constant current source so you don't need any resistors between the controller and the LEDs. The anode can hook to any DC power supply that shares ground with the controller boards ground and has a V+ of no more than 7 volts. In practice, I use the same +5 that I feed the controller as the "common" for all the LED anodes.
As for the software, I've written a simple front end that I use. It does use controls.dat to figure out how many buttons the game uses and which other controls (trackball, 4 or 8 way joystick or spinner). However, since there is no color info about buttons, games that are "fresh off the boat" from control.dat have a pre-determined color pallet. The front end allows you to then edit the colors on a per game/button basis.
It should be pretty easy to refit such stuff into a persons favorite front end. Commands you send over the serial line look like
#000100 -- Turn on LED #0 on board #0
#0001FF -- Turn all LEDs on board 0
#000200FFFF00 -- set LED #0 color to yellow
#000000 -- Turn off LED #0 on board #0
#FF00FF -- turn all leds on all boards off
(both the board target (first hex pair) and the LED target (3rd hex pair -- command is 2nd hex pair) support wildcards).
You could even write a small app that was a wrapper around the MAME executable that looked at the selected game and controls.dat and configure the lights appropriately and then invoked MAME. Then set your FE to run that instead of MAME and no changes are needed to the FE.
Gerry