Coder Social home page Coder Social logo

thenizo / linux_rocksmith Goto Github PK

View Code? Open in Web Editor NEW
94.0 5.0 9.0 1.23 MB

Guides to get Rocksmith 2014 running on Linux

Home Page: https://thenizo.github.io/linux_rocksmith/

License: GNU General Public License v3.0

Shell 89.42% Makefile 10.58%
steam rocksmith-linux rocksmith rocksmith2014

linux_rocksmith's Introduction

Rocksmith 2014 on Linux

These are a few Guides to get Rocksmith 2014 running on Linux. In case you haven't tried gaming on Linux yet, other than not working, it won't get harder than this by far for other games.

Disclaimer

This is the bare minimum to get it to work. I don't know if certain changes recommended by other people have a performance impact.

I tested it on Manjaro, Arch and a Linux Mint VM. Due to the VM factor, I was actually able to start the game, but I got about 1fps, definitely not playable.

I have only tested the Steam version.

I take no responsibility and will not guarantee for this working.

Prerequisites

Don't install or copy Rocksmith from/to an NTFS drive. It will not start. (I think that's because of permissions, but I'm not sure.) There's probably a way, but it's easier not having to bother with it.

If you use Proton-GE, install scripts sometimes don't run. In that case, use Valve's Proton for the first start, then switch to Proton-GE.

We will need wine, which is installed in the first step.

Common paths

I will refer to them with variables. You can actually set them as variables via variablename=value and just copy-paste the commands, or replace the text. Keep in mind that these are temporary, so only available in the terminal instance where the variable was defined.

#.## will be a placeholder for the Proton version you use. So for "Proton #.##", an example replacement would be "Proton 7.0".

  • $HOME: Already set, don't worry about it. (redirects to /home/<username>)
  • $STEAMLIBRARY: The Steam Library, where Rocksmith is installed in. You can check it by opening Steam, then going to Steam -> Settings -> Storage. Above the disk usage indicator, there's a path. that's the one we need.
  • $PROTON: A specific location inside your Proton installation
    • Valve Release: /path/to/steamapps/common/Proton\ #.##/dist
    • Other Proton (GE, Valve Experimental/Beta, etc.): It's located in the default Steam Library under compatibilitytools.d/Proton-#.##-GE-#/files
    • Lutris Runners: No specific location, just $HOME/.local/share/lutris/runners/wine/wine-<version>

Example for default paths and Proton 8:

STEAMLIBRARY=$HOME/.steam/steam/
PROTON=$HOME/.steam/steam/steamapps/common/Proton 8.0/dist/

Guides

There are two ways to do this. The one most people on ProtonDB use is quicker, but results in high delay and distorted sound. It routes the sound through ALSA. This can be found in "Other Guides".

Then there's the way of routing the audio through JACK -> wineASIO -> RS_ASIO, which has less delay and sounds better, but also takes longer to set up. These can be found in the table below.

Recent Proton versions:

pipewire non-pipewire
Arch Guide Guide
Debian Guide Guide
Fedora Guide N/A
Steam Deck Guide N/A
NixOS Guide missing

Other Guides:

Other information:

Scripts

These are outated. I'll leave the content here just in case.

Because someone asked, I have written scripts that do everything for you.

For native Steam: wget https://raw.githubusercontent.com/theNizo/linux_rocksmith/main/scripts/native-steam.sh && ./native-steam.sh && rm native-steam.sh

For other Rocksmith installations: wget https://raw.githubusercontent.com/theNizo/linux_rocksmith/main/scripts/other.sh && ./other.sh && rm other.sh

Credits

Thank you all for the work ^^

linux_rocksmith's People

Contributors

thenizo avatar timp4w avatar zurgeg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

linux_rocksmith's Issues

Script buggy - Guide not working

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

  • Line 103: should be sudo not suod
  • Line 133: should be -O not -o
  • Line 144 is missing an fi
  • Path recognition isn't working. Setting Proton path to (...)/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
  • Script output says that I should set up JACK via Carla, your written guide on GitHub only explains Cadence setup

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.

NixOS Guide (Pipewire)

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

Wineasio copy commands not working

# 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"

New Linux User (Steam Deck) - ALSA Method says ProtonTricks & WineTricks not installed

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.

wineasio debugging tips

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.

On arch /w wineasio doesn't seem to work

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
.......................

building wineasio according to debian pipewire instructions

  • Where can the part be found?
  • deb-pipewire-new.md
  • What is wrong with it?

build
rm -rf build32
rm -rf build64
make 32
make 64

  • What should it be instead?
  • Did you test this with an Ubuntu 22.04 LTS box? Because I am for the life of me not able to compile wineasio on such a box

Lutris script

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.

Any way to persist jack routing?

  • Which distro do you use?

Fedora 39

  • Which Proton or wine version do you use?

Proton 8.0 (current version)

  • Do you use pipewire?

yes pipewire-jack-audio-kit (as is default on Fedora)

  • What appears to be the problem? (Describe it as best as you can)

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.

Steamdeck: No output device found, despite following guide.

  • Which distro do you use? Steamdeck, Arch
  • Which Proton or wine version do you use? Proton 8
  • Do you use pipewire? Yes
  • Audio-Device used? Lexicon Alpha, it's on RS_ASIO's supported devices list

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.

=============================================================================

Game broken with PipeWire 1.2 (Debian)

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?)

  • Which distro do you use?
    Debian Sid
  • Which Proton or wine version do you use?
    Proton GE 8.3 (tried with 9.9 as well, same issue)
  • Do you use pipewire?
    Yes
  • What appears to be the problem? (Describe it as best as you can)
    Game doesn't start with LD_PRELOAD, and gives a symbol lookup error in the terminal output.
    /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
    Not sure if this is the cause of the game not starting, but it seems likely to me. Attempting to run VBASIO through Steam (with the same LD_PRELOAD) has the same issue. But running VBASIO through the terminal works fine, and doesn't give the symbol lookup error either.

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.

  • Did you notice any other unexpected behavior?
    No
  • What did you try already?
    Lots of Proton versions. I can't downgrade PipeWire because older versions are gone from the Debian Testing/Sid repos and I don't want to break my system by installing Ubuntu packages.
  • Did you do any of the steps differently or leave them out?
    My game worked fine before the PipeWire update, but yes I did all the steps.

Install part - wrong packages, incorrect ` character

  • Where can the part be found? - Insalling packages
  • What is wrong with it? - character after $USER, packages lib32-pipewire-jack and realtime-privileges in Debian pipewire guidu
  • What should it be instead? - no character, pipewire-jack:i386, no realtime-privileges package

Sandboxing

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.

When launching rocksmith through steam wineasio doesn't work but when launching in terminal it works fine

  • Which distro do you use?
    Manjaro
  • Which Proton or wine version do you use?
    *Experimental and tried 9.0-2
  • Do you use pipewire?
    Yes
  • What appears to be the problem? (Describe it as best as you can)
    When launching the game via Steam rocksmith hangs for a second as it tries to load wineasio.

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

adjust to wineasio 1.2 update

  • Where can the part be found?
    Under the wineasio section, at least in the Arch build guide.
  • What is wrong with it?
    At least in wineasio 1.2.0, 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 did
  • What should it be instead?
    Just change wineasio.dll(.so) to wineasio(arch).dll(.so)

VBASIOTest32 doesn't find devices, but VBASIOTest64 does

Hi, awesome guide, thanks so much, I finally got Rocksmith working without latency!

  • Where can the part be found?
  • Arch with Pipewire, under the wineasio section. Maybe it's the same for the other guides, but I only tried this one.
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 :)

"Please Make Sure Steam is Running to Launch the Game" Error while starting Lutris

  • ArchLinux (Manjaro on desktop rig)
  • Proton-GE 7.33, wine-staging (originally used GE-7.20 for the longest time)
  • no pipewire. I use pulseaudio

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.

Audiophile / Studio grade usb audio

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!

Rocksmith connecting to JACK server but not exposing outputs

  • Which distro do you use?
    Garuda Linux Raptor
  • Which Proton or wine version do you use?
    Proton 7
  • Do you use pipewire?
    Yes
  • What appears to be the problem? (Describe it as best as you can)
    RS2014 appears on "Readable Clients / Output Port" but not "Writable Clients / Input Ports" in QjackCTL.
    RS is giving "To play in Real Tone Cable Mode[...]", and isn't picking anything up. Microphones don't show up either
  • Did you notice any other unexpected behavior?
    Nope. RS connects to JACK just fine other than not being able to add inputs
  • What did you try already?
    • Running through Steam
    • Running through terminal (konsole)
    • Reinstalling rocksmith
    • Remaking my prefix
    • Double checking everything in the guide
    • The ASIO test (which works)
  • Did you do any of the steps differently or leave them out?
    I used wineasio 1.1.0, because 1.2.0 didn't work.

remove regsvr32 step (RS_ASIO got updated)

Here are some instructions: https://github.com/mdias/rs_asio/blob/master/docs/linux/ubuntu_1204_lts.md

What needs to be tested:

  • normal way of this guide, but without running regsvr32 and using wineasio-rsasio instead
  • If that works, do we need to start the game from steam in the special way that is listed in the guide?

Assumuning 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.

Crash when starting Rocksmith after following the guide

  • EndeavourOS (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.

Steam Deck & Garuda Issue

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

image

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.

Non-descriptive title

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.
Screenshot_20220715_163616

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

Fedora 39 steps missing

During the "install wineasio" steps:

  1. After make 32 && make 64 I needed to cd gui && sudo make install to get wineasio-settings gui installed
  2. After I copied libraries to all locations I needed to env 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 library
  3. After above all steps completed and I ran wineasio-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.
  4. preload points to non-existent library (/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%

Wrong copy destination folder

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.

WineASIO not an option despite patching

  • Which distro do you use? - Arch
  • Which Proton or wine version do you use? - Tried both Proton 7 and Proton 8
  • Do you use pipewire? - Yes
  • What appears to be the problem? (Describe it as best as you can)
    • (deleted prefix inbetween testing)
    • normal wine, pfx = ~/wine-test, patch it - VBASIOTester shows WineASIO.
    • Proton, pfx = ~/wine-test, patch it - VBASIOTester shows WineASIO.
    • Generate 221680 Prefix via starting Rocksmith, patch it, then use normal wine - VBASIOTester CAN NOT find WineASIO
    • Generate 221680 Prefix via starting Rocksmith, patch it, then use Proton - VBASIOTester CAN NOT find WineASIO
  • Did you notice any other unexpected behavior? - Not unexpected, but Steam Linux Runtime got updated from Soldier to Sniper. I'm not sure if this has an impact though.
  • Did you do any of the steps differently or leave them out? - I doubt it, since I've read it often enough

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.

enable steam in lutris

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.

Better documentation of the building process of the guides

  • Explain Folder structure
  • Maybe a small readme to point to the comments in the script, if I don't want to explain everything two times.
  • Script
    • Last line of the first comments block
    • whats $path
    • "for every variation" - a bit more precise
    • explanation echo 0 block
    • what "needs fixing"?
    • explain output of echo 13 better

Startup script & debugging improvements for Steam Deck low latency setup

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:

  • start Rocksmith from Steam, having no audio, but with working Steam auth (visible profile & (C)DLC)
  • start Rocksmith from terminal, with working audio, but no Steam auth (missing profile & (C)DLC)

(Feel free to skip to the summary at the bottom for a solution if you are not interested in debugging.)


Setup

  • everything running in Steam Deck desktop mode
  • standard Rocksmith 2014 install on Steam, using default Proton 7.0-6 picked by Valve
  • audio interface as reported by 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

Debugging wineasio errors

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.

Running the Game

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.

Summary

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.)

What Next

@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! ❤️

Can't seem to generate proton launch script.

  • Which distro do you use?

EndeavourOS

  • Which Proton or wine version do you use?

Proton-GE9.1

  • Do you use pipewire?

Yes

  • What appears to be the problem? (Describe it as best as you can)

i can't seem to generate the proton launch script on /tmp. i already put PROTON_DUMP_DEBUG_COMMANDS on launch options.

  • Did you notice any other unexpected behavior?

nope

  • What did you try already?

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).

  • Did you do any of the steps differently or leave them out?

i believe i have followed all the steps

[ger] Problem mit regsvr auf Fedora

(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)

Steam Flatpak Support

(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.

CDLC don't work

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 ;)

RS_ASIO conflicting code/naming

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.)

Rollback of the script

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.

JACK will not work with Rocksmith through Wine/Proton: "Unknown request"

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:

image

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:

QJackCtl Graph:

image

QJackCtl Setup - Settings

image

QJackCtl Setup - Misc

image

Cadence - Tweaks

image

More Info

  • 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.

easier way to launch through steam

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%

No input devices in game

  • 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.

Rocksmith refuses to find any devices even though RS-ASIO can successfully request WineASIO

  • Which distro do you use?
    EndeavourOS
  • Which Proton or wine version do you use?
    I've tried both wine-staging 8.21 (my system wine) and a Lutris runner wine (wine-ge-8-25-x86_64), and I was only able to get WineASIO to properly register on the former; no matter how many times I followed the instructions or made sure WineASIO's libraries were placed in wine-ge-8-25's lib folders, regsvr would not find wineasio.dll and VBASIOTest32 would find nothing.
  • Do you use pipewire?
    Yes.
  • What appears to be the problem? (Describe it as best as you can)
    RS-ASIO's logs indicate it's able to successfully request the ASIO driver for the output device and all 3 inputs but Rocksmith still throws the "no audio output device" error unless I tell it to use a WASAPI output, and even then it still can't find any inputs.
  • What did you try already?
    I've tried using wineasio-settings to reduce the number of inputs and outputs down to 1 input and 1 output, the 2 inputs and one output on my UMC202HD, and ensure it autostarts the JACK server.

Error while compiling wineasio: objbase.h: No such file or directory

  • Which distro do you use?
    Nobara 39 (modified Fedora 39)
  • Which Proton or wine version do you use?
    Wine-9.9 (Staging)
  • Do you use pipewire?
    Yes
  • What appears to be the problem? (Describe it as best as you can)
    When running make 32 or make 64, the following error is displayed:

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

  • Did you notice any other unexpected behavior?
    No
  • What did you try already?
    Reinstalled wine-staging
  • Did you do any of the steps differently or leave them out?
    Nobara uses the winehq repo, so I changed
    sudo dnf install -y gcc make glibc-devel.i686 wine wine-devel.i686 wine-devel.x86_64 ...
    to
    sudo dnf install -y gcc make glibc-devel.i686 winehq-staging.x86_64 ...

some cleaning up to do

  • Fedora non-pipewire guide? No, unless someone asks. Fedora comes with Pipewire. *Done"
  • Fix the debian-based guides
  • in pipewire guides, explain that 256 is debatable, but 48000 isn't.g Done
  • check that the note about the PIPEWIRE_LATENCY flag appears correctly in the non-pipewire guides Done
  • think about maintaining the scripts not gonna do it
  • think about closing the Lutris issue not gonna do it

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.