Anyone running > 1.7 with SoundBlaster XFi-cards?
by Stefan Lundmark · in Torque Game Engine Advanced · 09/06/2008 (11:47 am) · 8 replies
I'm having issues with two of our machines that run on XFi. I'm getting the infamous ha20x2k.sys driver bluescreen randomly when initing or destroying the SFX device. This is not the case in TGEA 1.03 stock and neither in our FMOD enhanced build. No other games on these rigs cause the same bluescreen.
If I put on WinAmp (and some music) before starting TGEA I can hear a "pop" when the SFX device gets created.
Any clues?
Edit: Seems this is related to Create's driver and only affects OpenAL.
Still, works great with "FMOD's OpenAL". But other games (Unreal Tournament 3 and LoTR, to mention a few) also seem to have the same issue, but all got workarounds ranging from disabling hardware sound to installing a newer OpenAL driver, and I've tried all that.
If I put on WinAmp (and some music) before starting TGEA I can hear a "pop" when the SFX device gets created.
Any clues?
Edit: Seems this is related to Create's driver and only affects OpenAL.
Still, works great with "FMOD's OpenAL". But other games (Unreal Tournament 3 and LoTR, to mention a few) also seem to have the same issue, but all got workarounds ranging from disabling hardware sound to installing a newer OpenAL driver, and I've tried all that.
About the author
#2
Well if its a BSOD and the problem occurs in retail games as well... its a bad driver to blame.
SFX in TGEA 1.7 doesn't init EAX explicity... its possible that DSound/OpenAL/XAudio messes with EAX under the hood.
While it may be possible to figure out how Torque can trick the driver into not crashing... it seems friutless to go down that path in the long run.
09/06/2008 (1:53 pm)
Weird stuff.Well if its a BSOD and the problem occurs in retail games as well... its a bad driver to blame.
SFX in TGEA 1.7 doesn't init EAX explicity... its possible that DSound/OpenAL/XAudio messes with EAX under the hood.
While it may be possible to figure out how Torque can trick the driver into not crashing... it seems friutless to go down that path in the long run.
#3
09/06/2008 (3:06 pm)
Agreed, just talking out loud here. For individual developers it might be worth it, but I can see how it wouldn't fit into Torque, or any game engine.
#4
09/06/2008 (3:30 pm)
@Stefan - Have you tried the XAudio provider for SFX?
#5
09/06/2008 (3:50 pm)
I haven't! I'll check that out, thanks!
#6
09/06/2008 (9:27 pm)
I get this error in City of Heroes on occasion with an X-Fi soundcard, so it does pop up in retail games... or at least that one. I haven't noticed any particular chain of events which will trigger the crash, though, it does seem as you say, random.
#7
It's an OpenAL issue and hence you'll see it in most games that use OpenAL.
It doesn't seem to work, Tom. The TGEA 1.7.1 release plan says instructions will be provided on how to enable XAudio2 support, but there are no such articles on TDN, and Google agrees. There's one error about functions that differ from xAudio2.h's definition for SFXXAudioVoice to remain abstract, and when I did nail that one there were linker errors in other parts of the source. It's a stock build so I'm sure I'm just missing something.
09/07/2008 (3:51 pm)
Quote:
I get this error in City of Heroes on occasion with an X-Fi soundcard, so it does pop up in retail games...
It's an OpenAL issue and hence you'll see it in most games that use OpenAL.
Quote:
The XAudio provider for SFX?
It doesn't seem to work, Tom. The TGEA 1.7.1 release plan says instructions will be provided on how to enable XAudio2 support, but there are no such articles on TDN, and Google agrees. There's one error about functions that differ from xAudio2.h's definition for SFXXAudioVoice to remain abstract, and when I did nail that one there were linker errors in other parts of the source. It's a stock build so I'm sure I'm just missing something.
#8
First you need to add the following to your Projects\XXXXX\config\project.conf file...
The error about the abstract function is that MS changed one of the callbacks after 1.7.1 shipped... it should be a simple and obvious change.
Your linker errors were probably because you didn't link against x3daudio.lib... but if you add the 'includeModule' as i show above it will take care of that for you.
09/07/2008 (4:23 pm)
@Stefan -First you need to add the following to your Projects\XXXXX\config\project.conf file...
// Modules includeModule( 'atlas' ); includeModule( 'core' ); includeModule( 'T3D' ); includeModule( 'xaudio' ); // ADDED!
The error about the abstract function is that MS changed one of the callbacks after 1.7.1 shipped... it should be a simple and obvious change.
Your linker errors were probably because you didn't link against x3daudio.lib... but if you add the 'includeModule' as i show above it will take care of that for you.
Torque Owner Stefan Lundmark
If you head into your XFi Control Panel and change from Gamer Mode to Entertainment Mode there are no longer any crashes or audio popping. This suggests that EAX is screwing up in Creative drivers somewhere, and they have no intention to fix it (search trough their forums, should you be curious).
However, I suspect that if you skip EAX in your OpenAL init you'll be able to avoid the crashes altogether. I haven't checked up on that just yet, but will soon.