So I wanted to get light output working on StepMania only to discover that because of the way it was programmed the port addresses are hard-coded and because my PC uses a PCI based parallel port card I would have to modify the source and recompile...
I thought this was a exceedingly DUMB design so I did something about it.
I have some programming abilities (albeit not with C++) so rather than modify the source I decided to write a new parallel_lights_io.dll that works the way SM should have worked from the start. That way anyone who wants to add light output to SM can do so by simply adding these files to to their installation directory. Basically all this does is provide you with a .ini file that you can modify with your port addresses instead of having to do it in your source code. (also it uses the freely available and better inpout32.dll instead of the licensed and buggy io.dll that SM was built to use)
Download here: http://solid-orange.com/wp-content/uploads/2014/02/twistedsymphonys_stepmania_parallel_port_io_dll.zip
Supported Versions:
This is tested and working on SM 3.9 Plus Redux and OpenITG Beta 2 in Windows XP... I wont work on any version that has light output intentionally disabled in source (which means vanilla SM 3.9 and 4.0 will not work) I haven't tested it on any other releases or OSs...
If you're using a Linux build then you don't need this... this is only for Windows.
If you're at all interested in getting light output working please feel free to download and try this out... I'm interested to see how it works for other people. You'll obviously need some hardware output on your parallel ports to see it working.
Hardware:
I'm using a Rosewill RC-304 dual parallel port PCI card (it's also low-profile if you're using a half-height PC case) though any properly installed parallel ports should work
As for building a light driver board for your parallel ports there are literally hundreds of ways you can do it... some great info can be found here: http://www.epanorama.net/circuits/parallel_output.html#realworld
If your intention is to hook this up to a real DDR Arcade machine. DDR has a light driver board already installed, you simply need to invert the parallel port outputs by using an opto-isolator OR a few 74 series inverter chips.... OR utilize the transistor/diode/resistor circuit for relay output described in the link above. The circuit requires a lot more soldering but I'm using that because it's self-powered from the parallel port which makes for a cleaner install (opt-isolators or inverter chips would require an outside power source)... the DDR driver boards don't draw much current, they're just checking for an on/off value on the pin.... If you try to power a lamp any larger than an LED then you'll likely blow out your parallel port which would be bad.
You can find pinouts for the DDR light connectors as well as the parallel port output map here: http://beta.stepmania.com/forums/general-questions/show/83#post543
Parallel Port Hardware Testing:
If you're having problems and you want to test your hardware with a program other than StepMania then I recommend this app: http://lpt-port-test-utility.software.informer.com/3.0/
I used that myself quite a bit when developing this little dll. you just plug in your port address and you can turn on and off the output pins on the parallel port to test out your hardware without the use of StepMania.
---------------
I'm just happy to get this working for myself but if it this helps someone else then that's even better...
I thought this was a exceedingly DUMB design so I did something about it.
I have some programming abilities (albeit not with C++) so rather than modify the source I decided to write a new parallel_lights_io.dll that works the way SM should have worked from the start. That way anyone who wants to add light output to SM can do so by simply adding these files to to their installation directory. Basically all this does is provide you with a .ini file that you can modify with your port addresses instead of having to do it in your source code. (also it uses the freely available and better inpout32.dll instead of the licensed and buggy io.dll that SM was built to use)
Download here: http://solid-orange.com/wp-content/uploads/2014/02/twistedsymphonys_stepmania_parallel_port_io_dll.zip
Supported Versions:
This is tested and working on SM 3.9 Plus Redux and OpenITG Beta 2 in Windows XP... I wont work on any version that has light output intentionally disabled in source (which means vanilla SM 3.9 and 4.0 will not work) I haven't tested it on any other releases or OSs...
If you're using a Linux build then you don't need this... this is only for Windows.
If you're at all interested in getting light output working please feel free to download and try this out... I'm interested to see how it works for other people. You'll obviously need some hardware output on your parallel ports to see it working.
Hardware:
I'm using a Rosewill RC-304 dual parallel port PCI card (it's also low-profile if you're using a half-height PC case) though any properly installed parallel ports should work
As for building a light driver board for your parallel ports there are literally hundreds of ways you can do it... some great info can be found here: http://www.epanorama.net/circuits/parallel_output.html#realworld
If your intention is to hook this up to a real DDR Arcade machine. DDR has a light driver board already installed, you simply need to invert the parallel port outputs by using an opto-isolator OR a few 74 series inverter chips.... OR utilize the transistor/diode/resistor circuit for relay output described in the link above. The circuit requires a lot more soldering but I'm using that because it's self-powered from the parallel port which makes for a cleaner install (opt-isolators or inverter chips would require an outside power source)... the DDR driver boards don't draw much current, they're just checking for an on/off value on the pin.... If you try to power a lamp any larger than an LED then you'll likely blow out your parallel port which would be bad.
You can find pinouts for the DDR light connectors as well as the parallel port output map here: http://beta.stepmania.com/forums/general-questions/show/83#post543
Parallel Port Hardware Testing:
If you're having problems and you want to test your hardware with a program other than StepMania then I recommend this app: http://lpt-port-test-utility.software.informer.com/3.0/
I used that myself quite a bit when developing this little dll. you just plug in your port address and you can turn on and off the output pins on the parallel port to test out your hardware without the use of StepMania.
---------------
I'm just happy to get this working for myself but if it this helps someone else then that's even better...