My problems with understanding robertmo solution is how the drivers enter into the equation of game/sound driver/virtual sound card/VDMS and the host sound system. I thought that VDMSound was a complete replacement for the driver/card combination, a replacement that in no way uses whatever drivers Creative orginally provided with their hardware. Or am I mistaken here?
VDMSound emulates the original hardware of the SB sound cards, so you can make sounds sending commands to the emulated card the same way you did with a real one: reading and writing to I/O ports and sending data thru DMA. However, Creative presented developers with a set of drivers that would take care of these functions and present a more tradicional software API. In this case, using these drivers with VDMSound should have the same effect as using them with a real SB card.
Remember: drivers are only pieces of software to present an easy and standard way to talk to hardware, but in the end it's all about I/O ports, memory and interrupts.
Can the game be statically linked with sound drivers for the supported cards, drivers that in turn accesses the I/O ports being virtualised by VDMSound? And will a SOUND variable, pointing to a directory with a different set of drivers and mixers override the statically linked drivers???
In theory, yes, if the programmers that wrote the game decided to go this way. In the real world a few games did this, like robertmo discovered, but I believe the vast majority of games have built-in sound libraries/drivers that could not be easily replaced. From a quick look at WC3, I think there is no option to replace it's internal libs.
I don't fancy taking the PC apart for testing a different sound card. I would much more prefer to get a friend to installe VDMSound and have him test the game.
Looks like a good idea, too. Good luck.
Athlon 64 3200+/Asus K8V-X/1GB DDR400/GeForce FX 5700/SB Live! 5.1