Been thinking about the whole output problem in mame again, namely there isn't any way to control lights, displays ect from within mame. I'm not talking about your lighted buttons on your control panel, I'm talking real hardware that was on real arcade machines (gorf rank lights, turbo's segmented displays, ect...)
Anyway.....
The new artwork system that Aaron made for mame is pretty powerful, and he just happened to update the turbo bezel, which has segmented displays and a 9-led "speedometer" so......
I made a new layout file that makes the speedometer section 1 pixel by 1 pixel at the very top-left hand corner of the screen. I changed the 10 png images to single pixel swatches, with each png having a color value matching the speed displayed (0 is rgb(0,0,0) 1 is rgb(1,1,1) ect...)
Then I setup an external app that gets the pixel value of mame at 0,0 at 60 fps. To my suprise I could accurately determine the speed of the car through my app! What this means is with a bit of work, any light hooked up in mame's artwork system can be controlled externally. The data can be sent to an ledwiz, the parallel port, ect. These external scoreboards could also be re-created in the external app and displayed on a secondary screen. Basically it makes the data available, and what you want to do with it is up to you.
Before you get all excited though:
There are some severe limitations to this method though.
1. Mame's screen brightness must be left at 1, or else all the pixels are tinted.
2. The game can't be ran at a resolution lower than the games native resolution. This makes sense as a 1 by 1 pixel element can't be squashed any smaller.
3. Whenever you pause, obviously the readout is going to change as the screen will get darker.
4. The screen aspect of you monitor, the running resolution and the aspect and resolution of the game as well as orientation must be known by the app. When a game is rotated 90 degrees, it's top left hand corner suddenly becomes it's top right. And the position of multiple pixels for games with complex lights(like turbo which has a speedometer, a 7 segment score display and 4- 7 segment hi score displays) will have to be scaled based on the monitor resolution. Vertical games shown on a horizontal monitor actually place a element assignd to 0,0 at the corner of the game play area, not your monitor, so a lot of calculations would be required to get this to work universally.
5. The "artwork"you've created to track the changes must be visible. This isn't as big a deal as it sounds. You can either make a 1 pixel black border around the screen, or move the art into an area of the screen that is always black. As long as the values you are tracking don't get larger than 20 per element, you can easily use those rgb values and they will appear black to the naked eye.
6. This isn't going to be very responsive on a "puny"system. Of course a puny system isn't going to have an led-wiz or tons of optional hardware hooked to it, so this shoudln't be an issue.
7. Oh and d3d only. The new artwork system doesn't really work well with directdraw.
Anyway, that's what I found out.... questions, comments ect are appreciated.