thenizo / linux_rocksmith Goto Github PK
View Code? Open in Web Editor NEWGuides to get Rocksmith 2014 running on Linux
Home Page: https://thenizo.github.io/linux_rocksmith/
License: GNU General Public License v3.0
Guides to get Rocksmith 2014 running on Linux
Home Page: https://thenizo.github.io/linux_rocksmith/
License: GNU General Public License v3.0
IIRC the game crashes at start when using pipewire.
(I don't have a log to share right now)
Hi, thanks for a great guide & kudos to all contributors too!
I've been trying to run a low latency Rocksmith setup on Steam Deck using my audio interface. However, I run into problems when running the game. Basically, it was only possible to run one of the following scenarios exclusively:
(Feel free to skip to the summary at the bottom for a solution if you are not interested in debugging.)
lsusb
: ID 1235:8210 Focusrite-Novation Scarlett 2i2 Camera
Relevant bits from RS_ASIO.ini
[Asio]
BufferSizeMode=custom
CustomBufferSize=256
[Asio.Output]
Driver=WineASIO
[Asio.Input.0]
Driver=WineASIO
Relevant bits from Rocksmith.ini
[Audio]
LatencyBuffer=4
ExclusiveMode=1
Win32UltraLowLatencyMode=1
Running Rocksmith from Steam, the following error was produced in RS_ASIO-log.txt
.
0.348 [INFO] RSAggregatorDeviceEnum::UpdateAvailableDevices
0.348 [INFO] AsioHelpers::FindDrivers
0.357 [INFO] WineASIO
0.357 [INFO] RSAsioDeviceEnum::UpdateAvailableDevices - output requesting ASIO driver: WineASIO
0.357 [INFO] Creating AsioSharedHost - dll: wineasio.dll
6.392 [ERROR] ASIO Error: WineASIO does not return error messages
6.392 [INFO] Destroying AsioSharedHost - dll: wineasio.dll
6.393 [ERROR] RSAsioDeviceEnum::UpdateAvailableDevices - failed.
6.393 [INFO] RSAsioDeviceEnum::UpdateAvailableDevices - input[0] requesting ASIO driver: WineASIO
6.393 [INFO] Creating AsioSharedHost - dll: wineasio.dll
6.401 [ERROR] ASIO Error: WineASIO does not return error messages
6.401 [INFO] Destroying AsioSharedHost - dll: wineasio.dll
6.401 [ERROR] RSAsioDeviceEnum::UpdateAvailableDevices - failed.
6.401 [INFO] DebugDeviceEnum::UpdateAvailableDevices - 0 render devices, 0 capture devices
Having no more debugging info, I tried running Rocksmith again with more verbose launch options.
PROTON_LOG=1 %command%
Then, when inspecting Proton log file at ~/steam-221680.log
, an interesting bit showed up.
======================
Proton: 1675326504 proton-7.0-6e
SteamGameId: 221680
Command: ['/run/media/mmcblk0p1/SteamLibrary/steamapps/common/Rocksmith2014/Rocksmith2014.exe', '-uplay_steam_mode']
Options: {'forcelgadd'}
depot: 0.20230222.42118
pressure-vessel: 0.20230220.0 scout
scripts: 0.20230220.0
soldier: 0.20230222.42118 soldier 0.20230222.42118
Kernel: Linux 5.13.0-valve36-1-neptune #1 SMP PREEMPT Mon, 19 Dec 2022 23:39:41 +0000 x86_64
======================
...
7414.932:0118:011c:trace:loaddll:build_module Loaded L"E:\\SteamLibrary\\steamapps\\common\\Rocksmith2014\\RS_ASIO.dll" at 0FF40000: native
7415.291:0118:011c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\wineasio.dll" at E1AA0000: builtin
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
exec of JACK server (command = "/usr/bin/jackd") failed: No such file or directory
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
Unable to open a JACK client as: Rocksmith2014
7421.319:0118:011c:trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\wineasio.dll" : builtin
7421.328:0118:011c:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\wineasio.dll" at E1AA0000: builtin
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
Unable to open a JACK client as: Rocksmith2014
7421.329:0118:011c:trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\wineasio.dll" : builtin
This log file confirmed that both wineasio & rs_asio DLLs loaded successfully.
Additionally, it seems like running Rocksmith directly from Steam results in some missing audio related socket file. This explains why wineasio complains about no devices available - since it is not able to connect to pipewire.
However, there is an interesting solution available which I found by complete coincidence.
After some tinkering, I found a way to make both audio & Steam auth work (without cracking anything).
First, start Rocksmith from Steam with the following launch options.
PROTON_LOG=1 PROTON_DUMP_DEBUG_COMMANDS=1 %command%
This instructs Proton to dump a game launch script at /tmp/proton_deck/run
.
#!/bin/bash
#Run game or given command in environment
cd "/run/media/mmcblk0p1/SteamLibrary/steamapps/common/Rocksmith2014"
DEF_CMD=("/run/media/mmcblk0p1/SteamLibrary/steamapps/common/Rocksmith2014/Rocksmith2014.exe" "-uplay_steam_mode")
PATH="/home/deck/.local/share/Steam/steamapps/common/Proton 7.0/dist/bin/:/usr/bin:/bin" \
TERM="xterm" \
WINEDEBUG="-all" \
WINEDLLPATH="/home/deck/.local/share/Steam/steamapps/common/Proton 7.0/dist/lib64//wine:/home/deck/.local/share/Steam/steamapps/common/Proton 7.0/dist/lib//wine" \
LD_LIBRARY_PATH="/home/deck/.local/share/Steam/ubuntu12_64/video/:/home/deck/.local/share/Steam/ubuntu12_32/video/:/home/deck/.local/share/Steam/steamapps/common/Proton 7.0/dist/lib64/:/home/deck/.local/share/Steam/steamapps/common/Proton 7.0/dist/lib/:/usr/lib/pressure-vessel/overrides/lib/x86_64-linux-gnu/aliases:/usr/lib/pressure-vessel/overrides/lib/i386-linux-gnu/aliases" \
WINEPREFIX="/home/deck/.local/share/Steam/steamapps/compatdata/221680/pfx/" \
WINEESYNC="1" \
WINEFSYNC="1" \
SteamGameId="221680" \
SteamAppId="221680" \
WINEDLLOVERRIDES="steam.exe=b;dotnetfx35.exe=b;dotnetfx35setup.exe=b;beclient.dll=b,n;beclient_x64.dll=b,n;d3d11=n;d3d10core=n;d3d9=n;dxgi=n;d3d12=n" \
STEAM_COMPAT_CLIENT_INSTALL_PATH="/home/deck/.local/share/Steam" \
WINE_LARGE_ADDRESS_AWARE="1" \
GST_PLUGIN_SYSTEM_PATH_1_0="/home/deck/.local/share/Steam/steamapps/common/Proton 7.0/dist/lib64/gstreamer-1.0:/home/deck/.local/share/Steam/steamapps/common/Proton 7.0/dist/lib/gstreamer-1.0" \
WINE_GST_REGISTRY_DIR="/home/deck/.local/share/Steam/steamapps/compatdata/221680/gstreamer-1.0/" \
MEDIACONV_AUDIO_DUMP_FILE="/home/deck/.local/share/Steam/steamapps/shadercache/221680/fozmediav1/audiov2.foz" \
MEDIACONV_AUDIO_TRANSCODED_FILE="/home/deck/.local/share/Steam/steamapps/shadercache/221680/transcoded_audio.foz" \
MEDIACONV_VIDEO_DUMP_FILE="/home/deck/.local/share/Steam/steamapps/shadercache/221680/fozmediav1/video.foz" \
MEDIACONV_VIDEO_TRANSCODED_FILE="/home/deck/.local/share/Steam/steamapps/shadercache/221680/transcoded_video.foz" \
"/home/deck/.local/share/Steam/steamapps/common/Proton 7.0/dist/bin/wine64" c:\\windows\\system32\\steam.exe "${@:-${DEF_CMD[@]}}"
Running /tmp/proton_deck/run
script from terminal makes both audio & Steam activation work reliably!
At this point, I had crackling sound from my Scarlett Focusrite 2i2 audio interface which was fixed by amending the script to include PIPEWIRE_LATENCY
env variable.
...
PIPEWIRE_LATENCY="256/48000" \
"/home/deck/.local/share/Steam/steamapps/common/Proton 7.0/dist/bin/wine64" c:\\windows\\system32\\steam.exe "${@:-${DEF_CMD[@]}}"
I think I found the proper buffer size of 256 by inspecting pw-top
entries when the game was running. The standard recommendation to try 48/96/192 as buffer size for Focusrite 2i2 didn't work correctly.
As a side note, it might be a good idea to save /tmp/proton_deck/run
under a different path. Otherwise it will be overwritten the next time Rocksmith is run from Steam. Also, the generated script doesn't contain any env vars defined in game launch options by default.
The way of launching Rocksmith on Steam Deck as described in the guide, when using Steam installation defaults and custom terminal script, results for me in either Steam auth/profile/(C)DLC working or wineasio working with the audio interface at all.
By running Rocksmith from Steam with PROTON_DUMP_DEBUG_COMMANDS=1 %command%
launch option, it is possible to generate a Proton script that works flawlessly. It is unknown, why the very same Proton works from terminal script, and doesn't work from Steam directly. (pipewire/jack socket connection problem might be a good lead.)
Debug output can be produced with PROTON_LOG=1 %command%
launch option, to verify wineasio & rs_asio are registered and running. Solving the pipewire/jack socket issue would allow it to run without resorting to customized Proton scripts. (Maybe Steam runtime misses/doesn't see pipewire-jack client libs? or it is some container isolation problem?)
Gaming mode might be a bit more tricky to figure out, as the default Deck audio devices need to be disabled from Desktop mode anyway. But solving the socket issue would also possibly enable Gaming mode setup. (I can smell HDMI related issues already.)
@theNizo Should we extend the Steam Deck guide? I could try integrating relevant info as a PR.
Someone more knowledgeable might be able to tinker with custom Proton version and patch audio socket issue.
Anyway, back to my bass. Thanks! โค๏ธ
build
rm -rf build32
rm -rf build64
make 32
make 64
Debian 11
Proton 7.0-2
Thanks to your native-steam.sh script I've finally managed to play RS on linux. Working perfectly after I executed the script, followed by few commands I ran manually.
The only issue I have is with the CDLC. They don't appear in the songs list no matter what I tried.
"Cherub rock" doesn't appear in the songs list as well, although it should, because the file does exist and in the dlc folder. So I guess this is the main issue I need to fix...
The D3DX9_42.dll (from customsforge) is in the RS root folder, and the _p.psarc files are in the dlc folder, so it's probably not a silly mistake.
I suspect it has something to do with the fact RS is running externally from terminal and not directly from steam, because when I do run RS from steam, the "Cherub rock" and the rest of my CDLC are shown, but there's "no audio output device is detected" error, so it's unplayable.
Will appreciate any help ;)
A Fedora guide would be great.
And here's a detailed log that I wrote as I was doing things for the 2nd+3rd time in case I missed something, over 2 separate days.
I feel like I'm really close, so hopefully you see some small mistake that I migh've made.
The whole process is "successful" and I ran everything as it's written in the Steamdeck guide, afaik.
# Running Rocksmith on a Steam Deck!!!!
https://github.com/theNizo/linux_rocksmith/blob/main/guides/setup/deck-pipewire.md#install-necessary-stuff
https://github.com/theNizo/linux_rocksmith/blob/main/guides/start-script/proton-8.md
https://github.com/theNizo/linux_rocksmith/blob/main/guides/setup-rs-asio.md
=============================================================================
Instal "qpwgraph" on Discover, "graph manager dedicated to PipeWire"
=============================================================================
Prep the OS packages (Deck = Arch = Pacman) and OS-user-groups
-----------------------------------------------------------------------------
# disable readonly mode
sudo steamos-readonly disable
sudo pacman-key --init
sudo pacman-key --populate archlinux
sudo pacman -S realtime-privileges wine-staging
# These packages are already on SteamOS so I did not install them:
# pipewire-alsa pipewire-pulse pipewire-jack lib32-pipewire-jack pavucontrol
# the groups should already exist, but just in case
sudo groupadd audio
sudo groupadd realtime
sudo usermod -aG audio $USER`
sudo usermod -aG realtime $USER`
=============================================================================
Log out and back in. Or reboot, if that doesn't work.
Those groupadds and usermods need it -- though they should exist anyway...?
Do it just in case.
=============================================================================
Define variables for $PROTON and $STEAMLIBRARY used throughout
You can put them in the .bashrc for having many terminals open easier
-----------------------------------------------------------------------------
##### VARIABLES FOR SETTING UP ROCKSMITH2014 (see ~/Applications/rocksmith/)
STEAMLIBRARY=/home/deck/.steam/steam/
# GE Proton 8
PROTON=/home/deck/.steam/steam/compatibilitytools.d/GE-Proton8-32/files/
# Proton 8 (non-GE, hopefully more tested/stable??)
PROTON=/home/deck/.steam/steam/steamapps/common/Proton\ 8.0/dist/
# Rocksmith wine prefix specifically
WINEPREFIX=/home/deck/.steam/steam/steamapps/compatdata/221680/pfx
=============================================================================
Build and "install" `wineasio` on the system itself (sudo cp into /usr/lib*)
-----------------------------------------------------------------------------
# build
rm -rf build32
rm -rf build64
make 32
make 64
# Install on normal wine
sudo cp build32/wineasio32.dll /usr/lib32/wine/i386-windows/wineasio32.dll
sudo cp build32/wineasio32.dll.so /usr/lib32/wine/i386-unix/wineasio32.dll.so
sudo cp build64/wineasio64.dll /usr/lib/wine/x86_64-windows/wineasio64.dll
sudo cp build64/wineasio64.dll.so /usr/lib/wine/x86_64-unix/wineasio64.dll.so
=============================================================================
Copy those DLLs into the Proton version used by Rocksmith
-----------------------------------------------------------------------------
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"
=============================================================================
To register wineasio (so that it can be used in the prefix),
run the `wineasio-register` script that comes in the wineasio zip
while setting the WINEPREFIX to Rocksmith's.
I get a wine-UI window with "is being updated..."; if that's useful.
-----------------------------------------------------------------------------
env WINEPREFIX=$STEAMLIBRARY/steamapps/compatdata/221680/pfx ./wineasio-register
=============================================================================
ISSUE STARTS (maybe!)
The `./wineasio-register` command prints some errors -- but not on repeated
runs and only in a first one. Not sure when that resets, but I got back to it
and it did this again.
It might output even more errors about creating DLLs, I don't think
these are all there were.
But, it claims "successfully" so maybe it's nothing. I can't tell.
On repeat runs, that "is being updated..." is not there anymore; if that's useful.
-----------------------------------------------------------------------------
... some stuff printed with any wine run ....
011c:err:setupapi:create_dest_file failed to create L"C:\\windows\\system32\\atl100.dll" (error=80)
0130:err:setupapi:create_dest_file failed to create L"C:\\windows\\system32\\atl100.dll" (error=80)
0130:err:winediag:gnutls_process_attach failed to load libgnutls, no support for encryption
0130:err:winediag:process_attach failed to load libgnutls, no support for pfx import/export
wine: configuration in L"/home/deck/.steam/steam/steamapps/compatdata/221680/pfx" has been updated.
regsvr32: Successfully registered DLL '/usr/lib32/wine/i386-unix/wineasio32.dll.so'
'/usr/lib/wine/x86_64-windows/wineasio64.dll' -> '/home/deck/.steam/steam//steamapps/compatdata/221680/pfx/drive_c/windows/system32/wineasio64.dll'
regsvr32: Successfully registered DLL '/usr/lib/wine/x86_64-unix/wineasio64.dll.so'
=============================================================================
At this point, we can use an ASIO tester app, `VBAsioTest_1014`
Download it, and run the EXE with the Rocksmith's Wine so it uses all the installed things.
-----------------------------------------------------------------------------
WINEPREFIX=$STEAMLIBRARY/steamapps/compatdata/221680/pfx "$PROTON/bin/wine" ./VBASIOTest32.exe
=============================================================================
ANOTHER ISSUE (now a fatal one I assume)
Open it up, select "WineASIO" in the window-top-menu in `Devices` dropdown.
The log claims "Driver not found" despite seeing WineASIO ...!!
What am I missing?!
-----------------------------------------------------------------------------
#0001 ------------------------------------------------------
#0002 (32Bits) TEST ASIO DEVICE: WineASIO
#0003 OPEN ASIO DEVICE Error: Driver not found
=============================================================================
Now the last thing, modify Rocksmith to run itself correctly.
Copy the WineASIO files to the Rocksmith game folder.
Do all those edits to all .ini files as the guide says.
Add some env vars to the Rocksmith Steam-command
(Steam games library -> RS2014 -> Properties... -> Launch Options)
-----------------------------------------------------------------------------
LD_PRELOAD=/usr/lib32/libjack.so PIPEWIRE_LATENCY=256/48000 %command%
=============================================================================
And it doesn't work. I still get the usual message. No crash, but no audio output.
Still complains about not finding an output device.
I've disabled all devices but Lexicon Alpha in `pavucontrol` Configuration tab.
I also have qpwgraph open, monitoring that graph.
No Rocksmith entry, no change after running Rocksmith.
=============================================================================
As brought up by people using Fedora, finding a solution to sandboxed versions of Steam would be nice.
Snaps and Flatpaks don't have access to all resources. This could make the communication difficult between Rocksmith over a sandboxed version of Steam and JACK.
If you press plus in the new Lutris version, you are asked what you want to do. This is an easy way to start a yaml script and add the game configuration this way. Less work for the reader of the guide.
During the "install wineasio" steps:
make 32 && make 64
I needed to cd gui && sudo make install
to get wineasio-settings gui installedenv WINEPREFIX=$STEAMLIBRARY/steamapps/compatdata/221680/pfx wineasio-settings
-> OK (which updates wineprefix settings). Optionally can also edit number of devices in the driver device (I changed from default 16 -> 2 for simplicity). Without this step Steam installation of wine would not register the librarywineasio-register
the library would still not show up, I needed to run env WINEPREFIX=$STEAMLIBRARY/steamapps/compatdata/221680/pfx regsvr32 wineasio.dll
to actually register it, after which everything works./usr/lib/libjack.so
is for non-pipewire jack installation), correct command that worked for me was LD_PRELOAD=/usr/lib/pipewire-0.3/jack/libjack.so PIPEWIRE_LATENCY=256/48000 %command%
First of all, I want to thank you @theNizo for this Repo. Rocksmith was something I was never able to play on Linux and this is a huge step for finally being able to only use a single system on my PC.
This issue is not to ask for help: thanks to this repo I was able to make this work on my NixOS machine.
I tried to make it a bit general so I could share it: https://github.com/TimP4w/nixos/tree/main/patches/rocksmith2014
It's still WIP but it's working pretty consistently for me.
If there is a need or general interest, I could also make a PR here.
The only issue is the latency which is quite high unfortunately. But I'll try to work on that
Cheers
OS - Arch Linux
I remember that some time ago I managed to launch RS and make it work with RS-ASIO but only from the command line. Not sure where i wrote about it back then. Anyways, using proton v7 and wineasio compiled from github, spits out this. Didn't try the aur package because it does the same thing (pulls the repo, compiles and copies the files in lib dirs).
0.000 [INFO] - Wrapper DLL loaded (v0.5.7)
0.000 [INFO] PatchOriginalCode
.......................
0.335 [INFO] AsioHelpers::FindDrivers
0.339 [INFO] WineASIO
0.339 [INFO] RSAsioDeviceEnum::UpdateAvailableDevices - output requesting ASIO driver: WineASIO
0.339 [INFO] Creating AsioSharedHost - dll: wineasio.dll
0.340 [INFO] Destroying AsioSharedHost - dll: wineasio.dll
0.340 [ERROR] RSAsioDeviceEnum::UpdateAvailableDevices - failed.
0.340 [INFO] RSAsioDeviceEnum::UpdateAvailableDevices - input[0] requesting ASIO driver: WineASIO
0.340 [INFO] Creating AsioSharedHost - dll: wineasio.dll
0.340 [INFO] Destroying AsioSharedHost - dll: wineasio.dll
0.340 [ERROR] RSAsioDeviceEnum::UpdateAvailableDevices - failed.
0.340 [INFO] DebugDeviceEnum::UpdateAvailableDevices - 0 render devices, 0 capture devices
.......................
Fedora 39
Proton 8.0 (current version)
yes pipewire-jack-audio-kit (as is default on Fedora)
I need to re-create routing in Jack patchbay every time I start Rocksmith. Not sure if it is expected and whether there are any workarounds for that. In theory jack can be told to auto-route devices based on last known configuration. And it appears to do so for other things, but not wineasio device.
Edit:
I switched to qJackCtl
instead, where I can go to (less graphical) patchbay, setup the plugs and save the profile with these connections. Then when the "rocksmith 2014" device comes up (when game started), I can tab-out to qJackCtl and hit "Acitvate", which will reconnect all devices as I need them. Then when game exited I should de-activate the profile, otherwise the game will crash on next start. This is an improvement, though still not ideal.
(original: #21 (comment))
eben, ich vermute das irgendwas mit dem regsvr nicht richtig tut. die dll wird ums verrecken nicht kopiert, und ich vermute, dass die deswegen auch nicht in dem winecfg erscheint. aber das sind alles nur mutmassungen, ich bin auch absolut kein wine-profi. habe mal einen thread im forum erstellt https://forum.winehq.org/viewtopic.php?t=37066
was vielleicht noch sein koennte, ich hab das wie in https://wiki.winehq.org/Fedora dokumentiert installiert, der guide ist fuer f36, ich hab aber f37... glaube jetzt nicht dass es daran liegt, aber ausschliessen mag ichs auch nicht.
[oli@DESKTOP-E83VF5L ~]$ regsvr32 "/home/oli/.local/share/Steam/steamapps/common/Proton 7.0/dist/lib/wine/i386-unix/wineasio.dll"
002c:fixme:winediag:LdrInitializeThunk wine-staging 7.12 is a testing version containing experimental patches.
002c:fixme:winediag:LdrInitializeThunk Please mention your exact version when filing bug reports on winehq.org.
regsvr32: DLL '/home/oli/.local/share/Steam/steamapps/common/Proton 7.0/dist/lib/wine/i386-unix/wineasio.dll' erfolgreich registriert
[oli@DESKTOP-E83VF5L ~]$ regsvr32 "/home/oli/.local/share/Steam/steamapps/common/Proton 7.0/dist/lib/wine/i386-unix/wineasio.dll.so"
002c:fixme:winediag:LdrInitializeThunk wine-staging 7.12 is a testing version containing experimental patches.
002c:fixme:winediag:LdrInitializeThunk Please mention your exact version when filing bug reports on winehq.org.
regsvr32: DLL '/home/oli/.local/share/Steam/steamapps/common/Proton 7.0/dist/lib/wine/i386-unix/wineasio.dll.so' erfolgreich registriert
[oli@DESKTOP-E83VF5L ~]$ find $WINEPREFIX -name "wineasio.dll"
[oli@DESKTOP-E83VF5L ~]$
hab es zu testzwecken umgestellt auf proton 7, ansonsten wรคre noch experimentell verfรผgbar, aber ich glaub nicht dass es daran liegt. wine-devel waere auch noch verfuegbar ;)
Originally posted by @damnms in #21 (comment)
Hi, tried to setup RS2014 on Manjaro using your guide and native-steam.sh script.
For once the script contains a few syntax errors and typos
sudo
not suod
-O
not -o
fi
(...)/steamapps/common/Proton 7.0
tries to copy the wineasio files into (..)/Proton 7.0/lib
when it should be (..)/Proton 7.0/dist/lib
After fixing those issues, setting up JACK and running the game via the rocksmith.sh I still get the error that RS2014 can't find any audio device.
Hope this feedback helps in some way.
RS_ASIO looks for wineasio.dll
, not 32
. I asked the developer to add both DLLs as a potential source (first 32, then no suffix, for compatiblity). Just mentioning. (Edit: I know the current Arch Pipewire guide has it manually copying over as wineasio
, just mentioning for anyone's clarity.)
~/wine-test
, patch it - VBASIOTester shows WineASIO.~/wine-test
, patch it - VBASIOTester shows WineASIO.So, basically, the prefixes generated by Steam are broken.
This is new behavior.
Does anyone else experience this? If you test that, please backup your working prefix first.
make build ARCH=i386 M=32
make[1]: Entering directory '/home/matthew/Desktop/1/wineasio-master'
gcc -c -I. -Irtaudio/include -I/usr/include/wine -I/usr/include/wine/windows -I/usr/include/wine-development -I/usr/include/wine-development/wine/windows -I/opt/wine-stable/include -I/opt/wine-stable/include/wine/windows -I/opt/wine-staging/include -I/opt/wine-staging/include/wine/windows -m32 -D_REENTRANT -fPIC -Wall -pipe -fno-strict-aliasing -Wdeclaration-after-statement -Wwrite-strings -Wpointer-arith -Werror=implicit-function-declaration -D_REENTRANT -O2 -DNDEBUG -fvisibility=hidden -o build32/asio.c.o asio.c
asio.c:44:10: fatal error: objbase.h: No such file or directory
44 | #include "objbase.h"
| ^~~~~~~~~~~
compilation terminated.
make[1]: *** [Makefile.mk:102: build32/asio.c.o] Error 1
make[1]: Leaving directory '/home/matthew/Desktop/1/wineasio-master'
make: *** [Makefile:17: 32] Error 2
sudo dnf install -y gcc make glibc-devel.i686 wine wine-devel.i686 wine-devel.x86_64 ...
sudo dnf install -y gcc make glibc-devel.i686 winehq-staging.x86_64 ...
Good afternoon. I'm having problems.
Setup:
DISTRIB_ID=Manjaro Linux
DISTRIBUT_RELEASE=21.3.3
DISTRIBUT_CODENAME=Ruah
DISTRIBUT_DESCRIPTION="Manjaro Linux"
Audio card: Behringer U-Phoria UMC202
Proton 7.0.3
I tried both on ubuntu and here.
I tried to do everything according to your instructions and then tried using your script. The outcome is one. Nothing works.
And it's always the same mistake. Can you tell me something?
Here is the installation log from your script: Rocksmith_log_en.txt
Here is the ASIO log from the game: RS_ASIO-log.txt
EndeavourOS
Proton-GE9.1
Yes
i can't seem to generate the proton launch script on /tmp. i already put
PROTON_DUMP_DEBUG_COMMANDS
on launch options.
nope
i tried the
LD_PRELOAD
method and it works. wineasio seems to be running, the problem is when i tinker with patchbay it crashes the game (like the guide said, has high probability of crashes).
i believe i have followed all the steps
Hello, do you have a way to "cancel" the script or to return to Pulseaudio and use the quick and dirty method ?
Thanks for all.
setting environment variable LUTRIS_ENABLE_PROTON to have the value 1 before starting Lutris works a lot better than manually linking Proton installations as runners. With this set, Lutris will detect all installed Proton branches other than Experimental as valid runners.
Which distro do you use?
EndeavourOS
Which Proton or wine version do you use?
Proton Experimental
Do you use pipewire?
Yes with wireplumber.
What appears to be the problem? (Describe it as best as you can)
I connected my bass via the U-PHORIA UM2 to my PC.
In game, I set the device to "direct mode" but under input devices it simply says "none" and I can't select any device.
The input device is working in pavucontrol.
Did you notice any other unexpected behavior?
I don't think so.
What did you try already?
Basically tried the guide, tried disabling all other input devices in case there's something going on there. Also tried the VBASIOTest, but I can't seem to test any input devices there. Output devices work in VBASIOTest and ingame.
Did you do any of the steps differently or leave them out?
No, followed the Arch Pipewire guide to the t.
This method use to work with no issues for at least half a year; however, as recent as this post date, I have been having issues getting Rocksmith2014 to work with CDLC and official DLC; this has occurring for about 3 days.
I have followed the aforementioned steps for non-pipewire method multiple times to get the same error: Please make sure steam is running to launch the game
. The game does pick up my audio interface (Focusrite Scarlett Solo 2nd Gen) and I can play songs with no issue. The problem is my DLC and CDLC do not appear while launching with Lutris; launching with Steam gives the audio error it normally does, but my DLC and CDLC appear. Steam is running the whole time, just to clarify
I have tested this on both my normal Manjaro desktop and my newly installed Archlinux laptop; the issue appears on both. Something else I noticed is Lutris can launch the game even if Steam isn't running. This never happened previously, always giving a message about unable to initialize Steam API
or something.
Not sure if an update to a package or a recent change in Steam is the cause, but I would like to figure out the problem quickly and get back to playing.
PIPEWIRE_LATENCY
flag appears correctly in the non-pipewire guidesEndeavourOS (Fully up to date, LTS Kernel, proprietary NVIDIA drivers)
Proton 7.0-3
Pipewire
What appears to be the problem?
When following the arch-pipewire-new guide, after running the commands to launch the game, Rocksmith will open and crash either immediately or a few seconds into loading. Terminal includes these lines which seem to be related to the crash:
Attempting to load original DLL from: C:\windows\system32\avrt.dll
Load OK; fetching procedure addresses...
01bc:fixme:avrt:AvSetMmThreadCharacteristicsW (L"Pro Audio",2821FF2C): stub
01c0:fixme:avrt:AvSetMmThreadCharacteristicsW (L"Pro Audio",2887FE90): stub
wine: Unhandled page fault on execute access to 751EEF48 at address 751EEF48 (thread 0024), starting debugger...
Unhandled exception: page fault on execute access to 0x751eef48 in 32-bit code (0x751eef48).
Did you notice any other unexpected behavior?
I don't believe so
What did you try already?
I deleted and redid the prefix step but the crash still persists
I also tried disabling avrt.dll and that seemed to fix it, however this is an RSASIO file which is required for this setup.
I'd be happy to provide more info if needed, this seems to be related to RSASIO, mainly the avrt.dll file, I'm not 100% sure though.
When coping wine asio to proton folder, your guide on arch with pipewire says:
cp "$PROTON/lib64/wine/x86_64-windows/wineasio64.dll" "$PROTON/lib/wine/x86_64-windows/wineasio.dll"
cp "$PROTON/lib64/wine/x86_64-unix/wineasio64.dll.so" "$PROTON/lib/wine/x86_64-unix/wineasio.dll.so"
The destination folder doesn't exist, I think is wrong,
May this is the correct command:
cp "$PROTON/lib64/wine/x86_64-windows/wineasio64.dll" "$PROTON/lib64/wine/x86_64-windows/wineasio.dll"
cp "$PROTON/lib64/wine/x86_64-unix/wineasio64.dll.so" "$PROTON/lib64/wine/x86_64-unix/wineasio.dll.so"
*Similar that you have done above, coping the same file with different name
First of my, my very first post here. Second, THANK YOU.
I already could make Rocksmith run on arch linux, but had to format and I'm doing it again.
I'm struggling really hard on setting $STEAM path because it has a space on the path, I tried to use the path on single ' ' and double " " quotes , substitute the space to ?, *, /040, \ but nothing worked, spend more than a week trying to figure out with no success, I had to drop it and use the whole path.
Just got some feedback.
I recently purchased a Behringer U-Phoria UMC404HD and wanted to use it with Rocksmith 2014, via Wineasio RS_ASIO. It took me 3 days to figure out what I was doing wrong.
First of all, this particular class of hardware is currently having some kernel support issues. I was able to get it to work with Linux-LTS 5.15.85, and with 6.0.13, but I can't get any sound in or out in any software with 6.1.1.
On the Wine side, I additionally had to:
WINEPREFIX=~/.local/share/Steam/steamapps/compatdata/221680/pfx wineasio-settings
Then in the ui, set the number of channels to match my audio device, 4-in and 4-out. I also had to set the buffer size to 256, to match what I was using in the steam launch command.
The steam launch command I was using to assist with the trouble shooting is:
/usr/bin/pw-jack -v -s 48000 -p 256 %command%
Just wanted to record my findings somewhere. Hope this helps somebody!
Here are some instructions: https://github.com/mdias/rs_asio/blob/master/docs/linux/ubuntu_1204_lts.md
What needs to be tested:
wineasio-rsasio
insteadAssumuning it works, think about whether you want the now outdated steps to be collapsed with a <details>
tag (in case someone wants to use the old version), or move the steps to the cut out ones.
# add to Proton version !! watch out for variables !! cp /usr/lib32/wine/i386-windows/wineasio.dll "$PROTON/lib/wine/i386-windows/wineasio.dll" cp /usr/lib32/wine/i386-unix/wineasio.dll.so "$PROTON/lib/wine/i386-unix/wineasio.dll.so" cp /usr/lib/wine/x86_64-windows/wineasio.dll "$PROTON/lib64/wine/x86_64-windows/wineasio.dll" cp /usr/lib/wine/x86_64-unix/wineasio.dll.so "$PROTON/lib64/wine/x86_64-unix/wineasio.dll.so"
The first 2 commands told me no such file or directory exists, the last 2 said
"cp: '/usr/lib/wine/x86_64-unix/wineasio.dll.so' and '/lib64/wine/x86_64-unix/wineasio.dll.so' are the same file"
Hi, awesome guide, thanks so much, I finally got Rocksmith working without latency!
WINEPREFIX=$STEAMLIBRARY/steamapps/compatdata/221680/pfx $PROTON/bin/wine /path/to/VBASIOTest32.exe
What is wrong with it?
To check if wineasio has been installed correctly for the prefix, you recommend using VBASIOTest32, which (for me at least) didn't find any devices, but VBASIOTest64 worked. I started the tutorial from scratch twice because i couldn't find my devices and thought I did something wrong.
What should it be instead?
WINEPREFIX=$STEAMLIBRARY/steamapps/compatdata/221680/pfx $PROTON/bin/wine /path/to/VBASIOTest64.exe
Thanks again for the awesome work :)
Hi,
I have tried out this guide on two different systems (steam & a Garuda Linux PC), and have run into the same problem with both of them.
The issue occurs when I try to install wineasio through the given steps. It reads and looks something like this:
rm -rf build32 rm -rf build64 make 32 make 64 make build ARCH=i386 M=32 make[1]: Entering directory '/home/scythe/Downloads/wineasio-1.1.0' make[1]: *** No rule to make target 'rtaudio/include/asio.h', needed by 'build'. Stop. make[1]: Leaving directory '/home/scythe/Downloads/wineasio-1.1.0' make: *** [Makefile:15: 32] Error 2 make build ARCH=x86_64 M=64 make[1]: Entering directory '/home/scythe/Downloads/wineasio-1.1.0' make[1]: *** No rule to make target 'rtaudio/include/asio.h', needed by 'build'. Stop. make[1]: Leaving directory '/home/scythe/Downloads/wineasio-1.1.0' make: *** [Makefile:18: 64] Error 2
I also tried to run the shellscript provided and got this:
groupadd: group 'audio' already exists groupadd: group 'realtime' already exists cp: cannot stat '/usr/lib32/wine/i386-windows/wineasio.dll': No such file or directory cp: cannot stat '/usr/lib32/wine/i386-unix/wineasio.dll.so': No such file or directory cp: cannot stat '/usr/lib/wine/x86_64-windows/wineasio.dll': No such file or directory cp: cannot stat '/usr/lib/wine/x86_64-unix/wineasio.dll.so': No such file or directory
I installed wine-staging and uninstalled regular wine prior to all of this based on the guide's suggestion. Please help. There seems to be what should be an obvious step missing that Linux novices like me are missing.
Getting wineasio set up correctly was a bit fickle for me.
I'd suggest:
And making sure you get WINEPREFIX=$pfx "$proton/bin/wine" ~/Downloads/VBASIOTest32.exe
working.
In my case it was both the realtime permissions not working yet,
and needing to redo WINEPREFIX=$pfx wine64 regsvr32 wineasio.dll
.
Mainly posting to see if other distros are having the same issue, whether it's a packaging bug on Debian or an upstream PipeWire regression. Or maybe something totally unrelated (Steam update?)
/home/bence/.local/share/Steam/compatibilitytools.d/GE-Proton8-3-RS/files/bin/wine: symbol lookup error: /run/host/lib/i386-linux-gnu/pipewire-0.3/jack/libjack.so: undefined symbol: pw_log_topic_register
The game also fails to start even if I remove RSASIO, just having that LD_PRELOAD causes the issue. But of course, the game doesn't have audio if I don't have the LD_PRELOAD in the launch options.
Hi and thank you so much for this summary.
I followed your guide for Debian (I am using Debian 11) using various versions of Proton (from 5.13.* to Experimental), however I always end up with the same error. I don't have any issues with REAPER with JACK however, everything works as expected and I can hear sound.
I thus wanted to ask whether you experienced something similar. Every time I try to start Rocksmith from within Steam, I get this error message and I will not be able to hear anything in Rocksmith, nor will my guitar be detected:
In QJackCtl I can see the following errors in the log pane:
Tue Apr 5 21:20:35 2022: Disconnecting 'REAPER:out1' from 'system:playback_1'
Tue Apr 5 21:20:35 2022: Disconnecting 'REAPER:out2' from 'system:playback_2'
Tue Apr 5 21:20:35 2022: Disconnecting 'system:capture_1' from 'REAPER:in1'
Tue Apr 5 21:20:35 2022: Client 'REAPER' with PID 74307 is out # TO HERE I DISCONNECTED REAPER
Tue Apr 5 21:21:15 2022: ERROR: CheckSize error size = 81 Size() = 85 # FROM HERE I STARTED ROCKSMITH
Tue Apr 5 21:21:15 2022: ERROR: CheckRead error
Tue Apr 5 21:21:15 2022: ERROR: Unknown request 1801678674
Tue Apr 5 21:21:15 2022: ERROR: Unknown request 1953066355
Tue Apr 5 21:21:15 2022: ERROR: Unknown request 825242216
Tue Apr 5 21:21:15 2022: ERROR: Unknown request 52
Tue Apr 5 21:21:15 2022: ERROR: Unknown request 0
Tue Apr 5 21:21:15 2022: ERROR: Unknown request 0
Tue Apr 5 21:21:15 2022: ERROR: Unknown request 0
Tue Apr 5 21:21:15 2022: ERROR: Unknown request 0
Tue Apr 5 21:21:15 2022: ERROR: Unknown request 0
Tue Apr 5 21:21:15 2022: ERROR: Unknown request 0
Tue Apr 5 21:21:15 2022: ERROR: Unknown request 0
Tue Apr 5 21:21:15 2022: ERROR: Unknown request 0
Tue Apr 5 21:21:15 2022: ERROR: Unknown request 0
Tue Apr 5 21:21:15 2022: ERROR: Unknown request 0
Tue Apr 5 21:21:15 2022: ERROR: Unknown request 0
Tue Apr 5 21:21:15 2022: ERROR: Unknown request 0
Tue Apr 5 21:21:15 2022: ERROR: Unknown request 2048
Tue Apr 5 21:21:15 2022: ERROR: Unknown request 256
Tue Apr 5 21:21:15 2022: ERROR: Unknown request 4294967040
Tue Apr 5 21:21:15 2022: ERROR: Unknown request 511
Tue Apr 5 21:21:15 2022: ERROR: Cannot read socket fd = 85 err = No such file or directory
Tue Apr 5 21:21:15 2022: ERROR: CheckSize error size = 81 Size() = 85
Tue Apr 5 21:21:15 2022: ERROR: CheckRead error
Tue Apr 5 21:21:15 2022: ERROR: Unknown request 1801678674
Tue Apr 5 21:21:15 2022: ERROR: Unknown request 1953066355
Tue Apr 5 21:21:15 2022: ERROR: Unknown request 825242216
Tue Apr 5 21:21:15 2022: ERROR: Unknown request 52
Tue Apr 5 21:21:15 2022: ERROR: Unknown request 0
Tue Apr 5 21:21:15 2022: ERROR: Unknown request 0
Tue Apr 5 21:21:15 2022: ERROR: Unknown request 0
Tue Apr 5 21:21:15 2022: ERROR: Unknown request 0
Tue Apr 5 21:21:15 2022: ERROR: Unknown request 0
Tue Apr 5 21:21:15 2022: ERROR: Unknown request 0
Tue Apr 5 21:21:15 2022: ERROR: Unknown request 0
Tue Apr 5 21:21:15 2022: ERROR: Unknown request 0
Tue Apr 5 21:21:15 2022: ERROR: Unknown request 0
Tue Apr 5 21:21:15 2022: ERROR: Unknown request 0
Tue Apr 5 21:21:15 2022: ERROR: Unknown request 0
Tue Apr 5 21:21:15 2022: ERROR: Unknown request 0
Tue Apr 5 21:21:15 2022: ERROR: Unknown request 2048
Tue Apr 5 21:21:15 2022: ERROR: Unknown request 256
Tue Apr 5 21:21:15 2022: ERROR: Unknown request 4294967040
Tue Apr 5 21:21:15 2022: ERROR: Unknown request 511
Tue Apr 5 21:21:15 2022: ERROR: Cannot read socket fd = 85 err = No such file or directory
Tue Apr 5 21:21:16 2022: ERROR: CheckSize error size = 81 Size() = 85
Tue Apr 5 21:21:16 2022: ERROR: CheckRead error
Tue Apr 5 21:21:16 2022: ERROR: Unknown request 1801678674
Tue Apr 5 21:21:16 2022: ERROR: Unknown request 1953066355
Tue Apr 5 21:21:16 2022: ERROR: Unknown request 825242216
Tue Apr 5 21:21:16 2022: ERROR: Unknown request 52
Tue Apr 5 21:21:16 2022: ERROR: Unknown request 0
Tue Apr 5 21:21:16 2022: ERROR: Unknown request 0
Tue Apr 5 21:21:16 2022: ERROR: Unknown request 0
Tue Apr 5 21:21:16 2022: ERROR: Unknown request 0
Tue Apr 5 21:21:16 2022: ERROR: Unknown request 0
Tue Apr 5 21:21:16 2022: ERROR: Unknown request 0
Tue Apr 5 21:21:16 2022: ERROR: Unknown request 0
Tue Apr 5 21:21:16 2022: ERROR: Unknown request 0
Tue Apr 5 21:21:16 2022: ERROR: Unknown request 0
Tue Apr 5 21:21:16 2022: ERROR: Unknown request 0
Tue Apr 5 21:21:16 2022: ERROR: Unknown request 0
Tue Apr 5 21:21:16 2022: ERROR: Unknown request 0
Tue Apr 5 21:21:16 2022: ERROR: Unknown request 2048
Tue Apr 5 21:21:16 2022: ERROR: Unknown request 256
Tue Apr 5 21:21:16 2022: ERROR: Unknown request 4294967040
Tue Apr 5 21:21:16 2022: ERROR: Unknown request 511
Tue Apr 5 21:21:16 2022: ERROR: Cannot read socket fd = 85 err = No such file or directory
Tue Apr 5 21:21:16 2022: ERROR: CheckSize error size = 81 Size() = 85
Tue Apr 5 21:21:16 2022: ERROR: CheckRead error
Tue Apr 5 21:21:16 2022: ERROR: Unknown request 1801678674
Tue Apr 5 21:21:16 2022: ERROR: Unknown request 1953066355
Tue Apr 5 21:21:16 2022: ERROR: Unknown request 825242216
Tue Apr 5 21:21:16 2022: ERROR: Unknown request 52
Tue Apr 5 21:21:16 2022: ERROR: Unknown request 0
Tue Apr 5 21:21:16 2022: ERROR: Unknown request 0
Tue Apr 5 21:21:16 2022: ERROR: Unknown request 0
Tue Apr 5 21:21:16 2022: ERROR: Unknown request 0
Tue Apr 5 21:21:16 2022: ERROR: Unknown request 0
Tue Apr 5 21:21:16 2022: ERROR: Unknown request 0
Tue Apr 5 21:21:16 2022: ERROR: Unknown request 0
Tue Apr 5 21:21:16 2022: ERROR: Unknown request 0
Tue Apr 5 21:21:16 2022: ERROR: Unknown request 0
Tue Apr 5 21:21:16 2022: ERROR: Unknown request 0
Tue Apr 5 21:21:16 2022: ERROR: Unknown request 0
Tue Apr 5 21:21:16 2022: ERROR: Unknown request 0
Tue Apr 5 21:21:16 2022: ERROR: Unknown request 2048
Tue Apr 5 21:21:16 2022: ERROR: Unknown request 256
Tue Apr 5 21:21:16 2022: ERROR: Unknown request 4294967040
Tue Apr 5 21:21:16 2022: ERROR: Unknown request 511
Tue Apr 5 21:21:16 2022: ERROR: Cannot read socket fd = 85 err = No such file or directory
My configuration looks like this:
I repeatedly tried to set everything up again, precisely following the guide. I tried every Proton version available, all resulting in the very same error. For Proton 5.13 and below I followed this Reddit thread.
When looking for this error I found several issues such as this or this which imply that it might be a incompatibility with the Steam runtime. I don't know exactly, but it obviously seems to work for you.
I would really appreciate any help :)
Thanks for reading and thanks again for this comprehensive guides.
Thanks for providing this guide. Admittedly quite lost/overwhelmed with Linux right now (Using a Steam Deck which I believe is Arch-based). Tried the JACK to ASIO method thinking that was the best way to use the RTC but could not get that method to work past step 1.
Pivoted to the ALSA method and Konsole says ProtonTricks + WineTricks not installed. Wondering how to get those installed on the system. Appreciate any guidance you can offer or any updates to the SOP that "idiot-proof" for folks like me, thanks in advance.
In your guides you say the way to launch "without lutris" is:
# cd is necessary for the Rocksmith.ini and the DLC folder cd $STEAMLIBRARY/steamapps/common/Rocksmith2014 PIPEWIRE_LATENCY=256/48000 WINEPREFIX=$STEAMLIBRARY/steamapps/compatdata/221680/pfx $PROTON/bin/wine $STEAMLIBRARY/steamapps/common/Rocksmith2014/Rocksmith2014.exe
However an easier way is to open the Rocksmith 2014 game properties in steam, and under launch options, add the following:
PIPEWIRE_LATENCY=256/48000 %command%
wineasio
section, at least in the Arch build guide.make 32
outputs wineasio32.dll
and wineasio32.dll.so
. Ditto for make 64
(but with 64 instead of 32 obviously). The guide says to copy wineasio.dll
and wineasio32.dll.so
for both archs. This can be seen in the "building wineasio" section of this terminal recording I didwineasio.dll(.so)
to wineasio(arch).dll(.so)
(Opening as separate issue as it is more specific than #30.)
Coming from Fedora, I was trying to run Rocksmith 2014 in com.valvesoftware.Steam
Flatpak.
I managed to build wineasio
extension, using com.valvesoftware.Steam
as runtime, which inherits the org.freedesktop.Platform
runtime itself. (This essentially mimics how other Steam compatibility tools like com.valvesoftware.Steam.CompatibilityTool.Proton
are packaged with Flatpak.)
Above solves the problem of building & packaging but doesn't automatically configure any installations of Proton to actually use wineasio.dll
. (This is because all extensions are just layers over base Steam app.)
So I manually copied the files into target Proton library & prefix dirs, and registered. (I installed GE-Proton7-55
using https://davidotek.github.io/protonup-qt/ for this specific proof of concept.)
# install 32-bit wineasio files in Proton
cp /app/share/steam/compatibilitytools.d/WineASIO/lib32/wine/i386-windows/wineasio.dll /var/data/Steam/compatibilitytools.d/GE-Proton7-55/files/lib/wine/i386-windows/
cp /app/share/steam/compatibilitytools.d/WineASIO/lib32/wine/i386-unix/wineasio.dll.so /var/data/Steam/compatibilitytools.d/GE-Proton7-55/files/lib/wine/i386-unix/
# install 64-bit wineasio files in Proton
cp /app/share/steam/compatibilitytools.d/WineASIO/lib/wine/x86_64-windows/wineasio.dll /var/data/Steam/compatibilitytools.d/GE-Proton7-55/files/lib64/wine/x86_64-windows/
cp /app/share/steam/compatibilitytools.d/WineASIO/lib/wine/x86_64-unix/wineasio.dll.so /var/data/Steam/compatibilitytools.d/GE-Proton7-55/files/lib64/wine/x86_64-unix/
# make wineasio DLLs loadable in game(s) from Proton prefix
cp /app/share/steam/compatibilitytools.d/WineASIO/lib32/wine/i386-windows/wineasio.dll /mnt/funky/SteamLibrary/steamapps/compatdata/221680/pfx/drive_c/windows/syswow64/
cp /app/share/steam/compatibilitytools.d/WineASIO/lib/wine/x86_64-windows/wineasio.dll /mnt/funky/SteamLibrary/steamapps/compatdata/221680/pfx/drive_c/windows/system32/
# register wineasio as available DLL in Proton (wondering, is this necessary anymore?)
WINEPREFIX=/mnt/funky/SteamLibrary/steamapps/compatdata/221680/pfx /var/data/Steam/compatibilitytools.d/GE-Proton7-55/files/bin/wine regsvr32 wineasio.dll
WINEPREFIX=/mnt/funky/SteamLibrary/steamapps/compatdata/221680/pfx /var/data/Steam/compatibilitytools.d/GE-Proton7-55/files/bin/wine64 regsvr32 wineasio.dll
Starting the game with PROTON_LOG=1
leads to the familiar error about missing jack socket.
55639.287:0114:0118:trace:loaddll:build_module Loaded L"Z:\\var\\mnt\\funky\\SteamLibrary\\steamapps\\common\\Rocksmith2014\\RS_ASIO.dll" at 1D9F0000: native
55639.419:0114:0118:trace:loaddll:build_module Loaded L"C:\\windows\\system32\\wineasio.dll" at D53B0000: builtin
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
Unable to open a JACK client as: Rocksmith2014
For Flatpak, it seems necessary to add additional permissions which Steam Flatpak misses by default. (Those can be added from Flatseal or the command line.)
--filesystem=xdg-run/pipewire-0 # pipewire socket
--socket=system-bus # not sure about this one, might be necessary for realtime mode?
This still didn't fix the jack socket error, however the cleanup
section from the linked issue is interesting. It basically says, remove any default (non-pipewire?) jack libs from org.freedesktop.Platform
runtime, which Steam Flatpak doesn't do. (Cleaning this up would make sense, as we are trying to avoid the original jack library, and use pipewire-jack instead.)
cleanup:
- /bin/jack*
- /lib/libjack*
This got me thinking, can we LD_PRELOAD
proper jack implementation here? I wanted to preload the correct .so
but interestingly, org.freedesktop.Platform
does not provide pipewire-jack.
Also, jack (pipewire?) versions differ from host to container, and that can possibly be a problem according to ValveSoftware/steam-runtime#307 (comment) and ValveSoftware/steam-runtime#438 (comment). Yet, we cannot just ditch jack here and switch to pulseaudio, for obvious reasons.
# fedora 37 host
% find /usr -name '*libjack.so.0*' -o -name '*libpipewire-0.3.so.0*' 2>&-
/usr/lib64/libpipewire-0.3.so.0
/usr/lib64/libpipewire-0.3.so.0.370.0
/usr/lib64/pipewire-0.3/jack/libjack.so.0
/usr/lib64/pipewire-0.3/jack/libjack.so.0.370.0
# flatpak container
[๐ฆ com.valvesoftware.Steam ~]$ find /usr -name '*libjack.so.0*' -o -name '*libpipewire-0.3.so.0*' 2>&-
/usr/lib/i386-linux-gnu/libjack.so.0
/usr/lib/i386-linux-gnu/libjack.so.0.369.0
/usr/lib/i386-linux-gnu/libpipewire-0.3.so.0
/usr/lib/i386-linux-gnu/libpipewire-0.3.so.0.369.0
/usr/lib/x86_64-linux-gnu/libjack.so.0
/usr/lib/x86_64-linux-gnu/libjack.so.0.369.0
/usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0
/usr/lib/x86_64-linux-gnu/libpipewire-0.3.so.0.369.0
This seems to be a general blocker at this point. I didn't try the "generate proton script and run as non-steam game" workaround yet, maybe that gives some more insight into what's going on here.
WineASIO log:
`0.153 [INFO] Creating AsioSharedHost - dll: C:\windows\system32\wineasio.dll
6.211 [ERROR] ASIO Error: WineASIO does not return error messages
6.211 [INFO] Destroying AsioSharedHost - dll: C:\windows\system32\wineasio.dll
6.211 [ERROR] RSAsioDeviceEnum::UpdateAvailableDevices - failed.`
However 15 seconds later it says no output device can be found and launches the game without sound. However when I launch the game in terminal with the old workaround command you mentioned in the guide it works fine however it doesn't detect Steam is open.
I'm unable to use the WineASIO debug terminal command since launching in terminal works fine
Did you notice any other unexpected behavior?
Nothing that wasn't mentioned
What did you try already?
Reinstalled WineASIO a bunch of times. I also tried the tool you suggested to see if everything works and it does. I even installed the windows version of reaper into Rocksmiths prefix and that also worked fine
Did you do any of the steps differently or leave them out?
No
I'd prefer to launch with Steam for convenience compared to terminal and so it can track my hours and use achievements
Which distro do you use? UBUNTU 22.04 LTS
Which Proton or wine version do you use? GE 3-70
Do you use pipewire? NO
What appears to be the problem? (Describe it as best as you can)
Just a question really. Does a gamepad work for you with the Lutris - Debian - non-pipewire solution?
https://github.com/theNizo/linux_rocksmith/blob/main/guides/setup/deb-non-pipewire-old.md
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.