mdias / rs_asio

ASIO for Rocksmith 2014
MIT License
1.02k stars 99 forks source link

ASIO LINK PRO causes rocksmith to crash on startup #406

Closed Armedorrr closed 3 months ago

Armedorrr commented 10 months ago

ASIOLINKPRO drivers are called ASIOVADPRO. ASIOVADPRO is causing the game to crash on startup. Whenever the driver is disabled or deleted, the game starts with no issue.

Armedorrr commented 10 months ago

pls figure out why ASIO LINK PRO crashes rocksmith and fix it

mdias commented 9 months ago

You need to post both RS_ASIO.ini and RS_ASIO-log.txt for me to be able to see anything about what might be happening.

Bikonja commented 8 months ago

I'm not convinced ASIO Link Pro is causing the crash. I have both that and Behringer XR18 installed and active, plus a whole bunch of other audio drivers. My Rocksmith was crashing so I started trying things. I left all drivers enabled, but in Rocksmith/RS ASIO config disabled ASIO, Rocksmith was still crashing. Then I disabled the Begringer X Air driver and Rocksmith started working (obviously without sound from the XR18). After seeing this issue, I tried reenabling the XR18, but disabling ASIO Link Pro driver and Rocksmith once again loaded fine and this time the XR18 worked perfectly as well.

Looking at RS_ASIO-log.txt there's nothing there, however looking at the Rocksmith crash dump, I can see it's trying to access memory that it does not have access to "The thread tried to read from or write to a virtual address for which it does not have the appropriate access.". Not quite sure what to make of that, but it doesn't seem like either driver itself is causing the crash, more like some sort of interaction between the two, which might or might not be one of the drivers fault. With that said, it is still possible it's ASIO Link Pros fault given the way it works is it essentially interfaces with other ASIO drivers, so it's entirely possible that the scenario is:

  1. Rocksmith loads the wanted driver (in my case the XR18) and locks the device
  2. Rocksmith continues to evaluate other drivers to see what's available
  3. Once it reaches ASIO Link Pro, ASIO Link Pro tries to start and get a lock on the (in my case) XR18 driver and as RS already has a lock it can't and it crashes

Something like that could be possible, though I've tried selecting a different driver in ASIO Link Pro and starting Rocksmith and it still crashes.

mdias commented 8 months ago

RS ASIO doesn't load anything (other than the special case of wineasio for linux) while figuring out which drivers are installed/available; it just looks in the windows registry.

Only after finding out the drivers the user requested (in the ini file) it will try to load the ASIO driver. Also unless WASAPI is enabled in the ini file, it should also completely avoid any of the normal driver enumeration that windows does. However the game itself might do that in some other unpatched area of the code.

It would be helpful to know if these crashes still happen without RS ASIO in the mix, as this may very well be completely unrelated to RS ASIO.

Bikonja commented 8 months ago

How do I completely remove RS ASIO to test? (Just to make sure I didn't miss anything)?

mdias commented 8 months ago

Just renaming avrt.dll to something else like avrt_bak.dll will completely disable it.

Bikonja commented 8 months ago

Yup, after renaming Rocksmith still crashes (and I see RS_ASIO-log.txt also isn't updated indicating it is genuinely disabled, yes).

mdias commented 8 months ago

Thank you for testing that. Unfortunately this seems to indicate the issue is indeed some sort of conflict between those 2 drivers and there's not much I can do to help there.