Open highon10kyears opened 9 months ago
Hey, sorry for getting back so late.
As far as I understand, you don't have the game on Steam and are therefore using Lutris here. Regardless, I tried it (Rocksmith Steam version only nags you when not running it from Steam, but lets you play) and got it working.
regsvr would not find wineasio.dll
are you running regsvr
directly (which is not done in the guide anymore), or does the error appear when using the wineasio-register
script?
it's able to successfully request the ASIO driver [...] but Rocksmith still throws the "no audio output device" error
I think I can help the most by having a look at it myself. Could you please send me the log?
I'm running the wineasio-register script— I only tried running regsvr manually after it failed to work. I tried wineasio-register again, attempting to make sure I had the right wineprefix and Lutris' wine version:
and I was able to get it to successfully register the DLL:
but if I try VBASIO32Test.exe on the same prefix and wine:
Here's the most recent RS_ASIO-log, although this was from when I swapped over to wine-staging 8.21.
I can replicate that.
What you are doing:
env WINEPREFIX=/home/g3intel/.local/share/wineprefixes/rocksmith2014 /home/g3intel/.local/share/lutris/runners/wine/wine-ge-8-25-x86_64/bin/wine ./wineasio-register
What you should be doing:
env WINEPREFIX=/home/g3intel/.local/share/wineprefixes/rocksmith2014 ./wineasio-register
What and why: You are using wine to run a (Linux) shell script. You don't want to call wine.
(Since the script runs even when wine is called before it, the behavior regarding your command is different to what I thought. Anyway, don't call wine and it should work as intended.)
Turn on exclusive mode in the Rocksmith.ini - it didn't work without it on my system.
... your log says 11 capture devices. This could be an issue.
I like to use pavucontrol to control my audio devices, which works on pipewire with the pipewire-pulse
package. Rocksmith will select the default device as the first one, then tie all others to it as long as input slots are free. I can't see a pattern, but the order stays the same over multiple sessions.
If you want to play multiplayer, you need to adjust the channels in the RS_ASIO.ini, which would be number of input in the patchbay minus 1. (I just figured this out and will update the guide.)
I checked and I do have Exclusive Mode enabled in Rocksmith.ini, and it was already enabled— I don't remember ever going to turn it off. I tried executing ./wineasio-register without running it through wine (copy-pasted from your "should be doing" example just to be sure), and it did successfully register. I also used pavucontrol to disable all inputs and outputs except for my UMC202HD, and even tried the Direct and Pro Audio modes to cut it down to one input and output available, period; however, running Rocksmith 2014 on ge-8.25 wine or my system wine-staging still results in the no output devices available error.
do have Exclusive Mode enabled in Rocksmith.ini
Assuming you're using the newest version of RS_ASIO, you'd also have been told when starting the game. I misjudged that from the logs.
UMC202HD
This could be the problem.
I'm seeing unsupported sample rate: 48000
in your log. Rocksmith only does 48000 Hz sample rate, meanwhile your device is probably set to something different.
I'd recommend to first try onboard audio, to be sure whether it is your audio interface. If that works, continue to read. If it doesn't, report back.
I now assume that you're already using the enviroment variable PIPEWIRE_LATENCY=256/48000
. I also assume that you want to use that audio interface.
In that case, I would try to temporarily set the audio interface to a different sample rate when playing Rocksmith.
The command I found in this post seems to work: pw-metadata -n settings 0 clock.force-rate 48000
Firing off that pipewire command and using my system wine-staging has gotten it to the point that it's recognizing my audio output device, but the audio is distorted and sped-up; once I get to the in-game device selection, it initially showed that RS_ASIO 2 was receiving some kind of audio input— but it did not register anything when I got to the calibration screen. RS_ASIO-log.txt Here's the most recent RS_ASIO-log.
I'm sorry again, I forgot to answer.
For "normal" jack, I'd recommend to lower the buffer size and increase the buffer periods. 256/4 worked for most people. The distorted sound happens if your PC can't handle it. If I set the buffer size higher than 256 (eg. 512 or 1024) on my machine, it will sound the same to what you hear.
You can try PIPEWIRE_LATENCY=128/48000 <rest of the command>
for a start.
I'm not sure if and how you can set the buffer periods in Pipewire. Looking at this thread, maybe you could try setting that with the first value of PIPEWIRE_RATE
.
You could also try setting the latency in the Rocksmith.ini. It has to match the buffer periods anyway (Which apparently didn't matter for pipewire because the periods are never set anywhere else in the guide).
My apologies for the delayed back and forth on my end, as well - breaking my foot seeing Devil Master and Hulder didn't help, aha
Reducing the buffer size to 128 removed the distortion, so that's progress. It's successfully finding output devices, I can hear the non-distorted output, and in qpwgraph I can see it binding to my input device— tested with the Real Tone Cable I have for Rocksmith+, plugged into my onboard audio, and with the UMC202, set to Pro Audio so that it's down to one input and output— but I'm still seeing no activity on any of the listed devices when I try to select Microphone mode in Rocksmith and there's definitely no input in game on the calibration screen.
I drew this just to absolutely make sure you configured this correctly.
It doesn't matter what type of device you connect to which channel, the names that are displayed in Rocksmith don't mean anything. For example, I've just connected a microphone to Channel 0 (which is called RealToneCable) and I got audio.
If that is not the problem, I'm out of ideas, sorry
I was able to reproduce this issue from https://github.com/theNizo/linux_rocksmith/issues/42#issuecomment-1916192928
And believe I have the solution: keep the wineasio32
and wineasio64
filenames we copy to Proton.
In this copy snippet:
# !!! WATCH OUT FOR VARIABLES !!!
cp /usr/lib32/wine/i386-unix/wineasio32.dll.so "$PROTON/lib/wine/i386-unix/wineasio.dll.so"
cp /usr/lib/wine/x86_64-unix/wineasio64.dll.so "$PROTON/lib64/wine/x86_64-unix/wineasio.dll.so"
cp /usr/lib32/wine/i386-windows/wineasio32.dll "$PROTON/lib/wine/i386-windows/wineasio.dll"
cp /usr/lib/wine/x86_64-windows/wineasio64.dll "$PROTON/lib64/wine/x86_64-windows/wineasio.dll"
Note we are copying a file called wineasio32
| wineasio64
, but in the destination renaming it to wineasio
.
The register script however does not expect this name.
Instead, try to copy the files with original names:
# !!! WATCH OUT FOR VARIABLES !!!
cp /usr/lib32/wine/i386-unix/wineasio32.dll.so "$PROTON/lib/wine/i386-unix/wineasio32.dll.so"
cp /usr/lib/wine/x86_64-unix/wineasio64.dll.so "$PROTON/lib64/wine/x86_64-unix/wineasio64.dll.so"
cp /usr/lib32/wine/i386-windows/wineasio32.dll "$PROTON/lib/wine/i386-windows/wineasio32.dll"
cp /usr/lib/wine/x86_64-windows/wineasio64.dll "$PROTON/lib64/wine/x86_64-windows/wineasio64.dll"
And run the registration (again).
env WINEPREFIX=$STEAMLIBRARY/steamapps/compatdata/221680/pfx ./wineasio-register
The initially mentioned test command should work!
WINEPREFIX=$STEAMLIBRARY/steamapps/compatdata/221680/pfx $PROTON/bin/wine /path/to/VBASIOTest32.exe
Rather than the #0003 OPEN ASIO DEVICE ERROR: Driver not found
the test sound should play when selecting the device.
Note we are copying a file called wineasio32 | wineasio64, but in the destination renaming it to wineasio. The register script however does not expect this name.
???
It's only called "wineasio" (without numbers) in the files in the Proton installation directory. It's called "wineasio##" (where # would be a digit) everywhere else.
The register script doesn't care about what files are in the Proton installation directory.
Instead, try to copy the files with original names:
Works for Rocksmith too. We can change that if you want to.
Unfortunately, VBASIOTest gui won't show up on my system when started with Proton, so it's not easy for me to test anything regarding VBASIOTest at the moment.