SSDR conflicts with other programs.

  • 1
  • Problem
  • Updated 4 years ago
  • Solved
I have the game GTA V on my computer. It will not run unless SSDR is completely uninstalled. If I disable all the startup programs and, or run it in the safe mode, it will not run. It will just crash on launch. It will only run with SSDR completely uninstalled and that includes the DAX drivers. Of course the manufacturer of the game has said it is SSDR. My only clue is there is something in the DAX drivers that causes this. This is because if I uninstall SSDR, it will still crash upon startup, then when I uninstall the DAX drivers. It will launch and run fine.   What I am looking for are some ideas on how to fix this. Or maybe a way to boot up the machine to make it appear as if the Flex software was never installed on it, when I want to use the game. At any time I can completely uninstall SSDR and all is fine. Any ideas?

Thanks for the help.    Dan 
Photo of KM6CQ - Dan

KM6CQ - Dan

  • 184 Posts
  • 37 Reply Likes

Posted 4 years ago

  • 1
Photo of Neal - K3NC

Neal - K3NC, Elmer

  • 561 Posts
  • 191 Reply Likes
Dan

I would bet its the DAX drivers as opposed to SSDR. I have one game that expects the default sound device to be assigned to a real device (like speakers, etc) and I have to disable the DAX sound devices before it will run.

Go to the control panel, look under sound devices and disable the DaX entries and see if it will now work.
Photo of Peter K1PGV

Peter K1PGV, Elmer

  • 553 Posts
  • 322 Reply Likes
HOW does GTA crash?  What happens?  What is the message that's displayed?

There are TONS of reasons that GTA "crashes" on startup, the most common (according to Google) is the  ERR_GFX_D3D_INIT crash.

Tell us more and maybe we can help you.

Peter
K1PGV
Photo of KM6CQ - Dan

KM6CQ - Dan

  • 184 Posts
  • 37 Reply Likes
Okay Peter, to answer your question. When I start the game it will not launch. It crashes and I get the error message I have attached. Neal suggested I turn off all the DAX items under sound devices. I did. I first turned off all devices under playback, it still crashed. I then turned off all devices under recording. And it now works. Now I need to figure out which one is causing it. 
Photo of Mike va3mw

Mike va3mw

  • 824 Posts
  • 199 Reply Likes
One of the 2 vendors is not playing nice. The question is who.
Photo of Bob Craig, K8RC

Bob Craig, K8RC

  • 262 Posts
  • 105 Reply Likes
It's a combination of both.

Some programs react negatively to having large numbers of audio devices present. As a developer, has it become necessary to plan for several dozen audio devices being present? Powers of 2 being the magic number, 32 would seem to be a reasonable number but a system with 3 HDMI monitors and a FlexRadio installation easily exceeds this. A step up to keeping track of 64 audio devices is necessary?

And FlexRadio continues to install those dozens of drivers even for 6300s that can not use more than 2. They say selectively installing fewer is "problematical".

Each side points to the other as being the true source of the problem. We are in the middle.
Photo of Peter K1PGV

Peter K1PGV, Elmer

  • 553 Posts
  • 322 Reply Likes

But why would an application need to "plan for" any maximum number of audio devices at all?  Wouldn't it be best-practice to determine the number of devices and then dynamically size your tracking structure? Of course it is.

Developers love to do things like make fixed size arrays for these things -- "How many audio devices can a system HAVE, really?  I know!  We'll make it a compile-time constant, so it can be easily changed."  Ugh.

Now, I grant you that it's easier to change SSDR, DAX and the DAX Drivers than it is to improve the development practices of every other software developer in the world.  The real question is how hard is it to dynamically poof-up the audio channels that are needed.

Peter
K1PGV

Photo of Bob Craig, K8RC

Bob Craig, K8RC

  • 262 Posts
  • 105 Reply Likes
So you're asking me, the "don't know anything about ham radio programmer", to dynamically allocate memory (MUCH more complicated to program because range limits, error trapping and other sanity checks must be implemented to prevent memory leaks, security problems and other mayhem) to accommodate a piece of equipment I don't even know exists?

Show of hands: How many of the installed base of users (NOT including .gov and .mil) are actually using all those channels? Not many since that set includes only 6700s for starters.

It would be far better if we could install only what we need.

6300 users need 2 transmits and 2 receives because that's all they can use. 

Even SO2R on a 6700 would rarely use more than 4 and 4. That would let you work split on both of the virtual rigs simultaneously.

Unless you're working for NSA or on the ISS monitoring ships (saw the video) you rarely need 8x8, not to mention the duplicitous I/Q devices. 
Photo of Tim - W4TME

Tim - W4TME, Customer Experience Manager

  • 9197 Posts
  • 3557 Reply Likes
Hand raised.  Last weekend I was decoding RTTY on 8 separate bands using 8 instances of Fldigi during the contest.  SO8R was a blast to operate.
Photo of Peter K1PGV

Peter K1PGV, Elmer

  • 553 Posts
  • 322 Reply Likes
So you're asking me, the "don't know anything about ham radio programmer", to dynamically allocate memory (MUCH more complicated to program because range limits, error trapping and other sanity checks must be implemented to prevent memory leaks, security problems and other mayhem) to accommodate a piece of equipment I don't even know exists?

In short, yes.  This has nothing to do with ham radio. Writing code that statically sizes structures that are used to track resources over which you have no control is absolutely not best practice. Because whatever number you pick will be wrong at least 95% of the time.  Pick too large: Waste memory.  Pick too small:  Miss resources.  Statically sizing structures is a lose/lose situation.

If dynamically sizing structures is MUCH more complicated, you're programming in the wrong language.  Seriously.  Ignoring the .Net languages, even if you're using C++ you're going to put this in a some std:: "collector" structure and iterate through it intelligently.  In which case, all the problems you mentioned just don't exist.

Now, having SAID all that, I'll repeat what I said earlier: "I grant you that it's easier to change SSDR, DAX and the DAX Drivers than it is to improve the development practices of every other software developer in the world."

But statically sizing structures to track system resources outside of your control is poor engineering practice. There's no two ways about it.

Peter
K1PGV

Photo of Bob Craig, K8RC

Bob Craig, K8RC

  • 262 Posts
  • 105 Reply Likes
HOW ABOUT SLOBBERING 24 DRIVERS ALL OVER A SYSTEM THAT CAN USE NO MORE THAN FOUR OF THEM (me & my 6300) AS A POOR USE OF RESOURCES??

That's a waste of resources FAR in excess of the "wasteful" use of static structures in  all the software by other authors on my system COMBINED.

How about an indictment of Flex for not making DAX scalable?

The "official" response I received some time ago is they don't want to take the time to do it.
Photo of KM6CQ - Dan

KM6CQ - Dan

  • 184 Posts
  • 37 Reply Likes
Okay Neal that worked. We are getting somewhere. I disabled every box on playback. It did not work. Then I disabled every box on Recording also and it worked. So now I need to figured out what I really need to disable. As you know, there were well over 50 items to have to go through and disable. I am also attaching a screenshot of the error message I get. 
Photo of KF4HR

KF4HR

  • 827 Posts
  • 274 Reply Likes
Dan - When SSDR loads it captures several sound card ports in your PC.  If your game is crashing due to a sound card conflict (DAX, etc) try disabling the Flex Recording and Playback sound card ports (all 40 of them), and see if your game runs.  Of course you'll need to re-enable all the Flex sound card ports when you want to run SSDR again. 

KF4HR  
Photo of W7NGA

W7NGA

  • 451 Posts
  • 190 Reply Likes
I cannot download files from the Arduino IDE because it assigns the COM port to one already assigned as a FlexRadio Virtual Serial port. I remove the Virtual port device, use the Arduino, and then reinstate SSDR. The conflict is obvious when viewed from the Device Manager.
(Edited)
Photo of KM6CQ - Dan

KM6CQ - Dan

  • 184 Posts
  • 37 Reply Likes
I have now only enabled the first two DAX channels on both recording and playback in "Sound" on windows control panel. Any of the first two channels that said "unplugged I left disabled. Now GTA will launch and play. Even if I am running SDR and DAX audio. An unexpected bonus is, when I go to select sound devices from my digital programs, the only thing that appears from DAX is what is enabled. The fragmented cluster of the disabled DAX junk does not appear. 
Photo of K6OZY

K6OZY, Elmer

  • 542 Posts
  • 212 Reply Likes
Official Response
I play this game too and had the same issue.   It is not a problem with SSDR or DAX, it's a problem with GTAV crashing when it indexes too many sound cards in your system.   You have to disable the DAX devices to reduce it.   I was able to reproduce it by adding in a ton of virtual audio cables to prove it wasn't SSDR specifically.   Unfortunately, Rockstar doesn't care and they aren't going to fix it.   You will have to live with it and disable the DAX sound cards in the device manager before playing GTAV.   I have a dedicated gaming PC that I don't use for ham stuff, but I know that doesn't help you any.  :)
Photo of Peter K1PGV

Peter K1PGV, Elmer

  • 553 Posts
  • 322 Reply Likes


I was able to reproduce it by adding in a ton of virtual audio cables to prove it wasn't SSDR specifically

That it's a problem with GTA being overwhelmed by the number of serial ports makes sense.  The fact that the game's authors don't know how to write code that enumerates serial ports without limits is a bit, ah, surprising... but then again, I suppose they didn't expect anybody to be running their game on a system with four dozen serial ports either.

We're starting to see a trend here... there is apparently some software that doesn't like so many serial ports in the system. It seems to me that a valuable change to DAX would be to have it create and delete its serial ports dynamically.  Admittedly, I haven't really looked at the overall architecture deeply enough to know if this is realistic -- I suspect some sort of architectural change would be necessary.  But I *do* know that it *is* possible to make serial ports dynamically appear and disappear at will (this happens all the time when you plug-in a USB to Serial converter... Poof!  A serial port gets created!  Unplug it... Poof!  It's gone.)

Peter
K1PGV

Photo of Steve K9ZW

Steve K9ZW, Elmer

  • 1565 Posts
  • 771 Reply Likes

IDEA - To accommodate poorly written cohabitating programs could DAX add a global DAX-down/DAX-full/DAX-minimum toggle that would temporarily cycle through a DAX totally disabled, DAX totally running and a DAX in a minimum usable configuration (for sleep/wakeup/monitoring features where a pipe needs to be maintained) series of modes?

73

Steve K9ZW


Photo of Bob Craig, K8RC

Bob Craig, K8RC

  • 262 Posts
  • 105 Reply Likes
This is desirable!
A 2/4/8 switch or install option.  I would leave it in 2.
See my post earlier in this thread.
Photo of DrTeeth

DrTeeth

  • 1687 Posts
  • 389 Reply Likes
The simple solution is to multi-boot. Just have a Windows partition for that game only. Very easy to set up and no having to disable and then enable sound cards.
Photo of K6OZY

K6OZY, Elmer

  • 542 Posts
  • 212 Reply Likes
That's a simple solution?  That's the same as saying you should buy two cars because you don't like to adjust the seat position after every time your wife takes it for a spin.  LOL
Photo of DrTeeth

DrTeeth

  • 1687 Posts
  • 389 Reply Likes
Yes, it is very simple indeed. Every one of my PCs multi-boots. This one has 4 versions of Windows on it and 5 Linux distros all in primary partitions courtesy of this gem http://www.terabyteunlimited.com/boot....
(Edited)
Photo of K6OZY

K6OZY, Elmer

  • 542 Posts
  • 212 Reply Likes
I have the same issue the OP is posting about.  I simply disable my DAX cards, play the game, and re-enable them when finished.  It's a few extra steps.   Definitely not work adding another OS for.    

Personally I keep all my gaming on a different computer entirely that I dub my "Wintendo".  It is a lean install without AV or any other normal protection since I literally only play games on it.  No email, no browsing, nothing...
Photo of DrTeeth

DrTeeth

  • 1687 Posts
  • 389 Reply Likes
Could there be a way of dealing with the DAX cards via a batch file, possibly using Powershell?
Photo of K6OZY

K6OZY, Elmer

  • 542 Posts
  • 212 Reply Likes
You can disable these devices via command line, but its always kind of unpredictable on if a reboot is needed.   If you don't release the sound card devices properly by closing DAX and other apps that may have it open while you are disabling it, the system will require a reboot to disable them.   If you do close everything, it disables gracefully.

I use a program called DevManView.  It's free and updated often and has W10 support.

http://www.nirsoft.net/utils/device_manager_view.html

You would disable a device like this:

devmanview.exe /disable "[Device Name]"

Where you replace [Device Name] with the verbose name in Device manager.

It works much better than the native devcon.exe that comes with Windows.
(Edited)
Photo of DrTeeth

DrTeeth

  • 1687 Posts
  • 389 Reply Likes
Thanks for that.
OT:- I have the full range of Nirsoft tools and Sysinternals tools here in Nirlauncher and Windows System Control Centre(er), sometimes cannot see the wood for the trees with so many useful utils.
Photo of Dudley - WA5QPZ

Dudley - WA5QPZ

  • 212 Posts
  • 45 Reply Likes
Several years ago there was a program that you could manage your sound cards with (and their drivers)   with a little searching on the Internet you should be able to find some program that will with just one or two keystrokes could disable or enable a range of drivers.   

-Dudley