Skip to content

Latest commit

 

History

History
177 lines (126 loc) · 6.97 KB

File metadata and controls

177 lines (126 loc) · 6.97 KB

JACK to ASIO on Arch-based distros

Table of contents

  1. Install necessary stuff
  2. wineasio
  3. Setting up the game's prefix/compatdata
  4. Installing RS_ASIO
  5. Set up JACK with Cadence
  6. Starting the game
  7. Command (No Lutris)
  8. Yes Lutris

Install necessary stuff

If asked, replace jack.

sudo pacman -S cadence carla jack2 lib32-jack2 realtime-privileges
# the groups should already exist, but just in case
sudo groupadd audio
suod groupadd realtime
sudo usermod -aG audio $USER`
sudo usermod -aG realtime $USER`

Log out and back in.

How to check if this worked correctly

For the packages, do pacman -Q <packages here>. Should output the names and versions without errors.

For the groups, run groups. This will give you a list, which should contain "audio" and "realtime".

wineasio

Installing base-devel is very useful for using the AUR and compiling in general.

Compile from source

Download the newest zip and unpack it. Open a terminal inside the newly created folder and run the following commands (stolen from the README, adjusted for Arch folder structure):

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

sudo cp build32/wineasio.dll /usr/lib32/wine/i386-windows/wineasio.dll
sudo cp build32/wineasio.dll.so /usr/lib32/wine/i386-unix/wineasio.dll.so
sudo cp build64/wineasio.dll /usr/lib/wine/x86_64-windows/wineasio.dll
sudo cp build64/wineasio.dll.so /usr/lib/wine/x86_64-unix/wineasio.dll.so
Use the AUR

yay is an AUR helper, which I will use as an example. It will install the AUR package for you. You can do this other ways too, of course

yay -S wineasio --noconfirm

Notes:

  • If you use Manjaro, yay is in their repos.
  • If it exits with an error, try and remove --noconfirm.
  • Tutorial on yay

wineasio is now installed on your native wine version.

How to check if it's installed correctly
find /usr/lib/ -name "wineasio.dll"
find /usr/lib/ -name "wineasio.dll.so"
find /usr/lib32/ -name "wineasio.dll"
find /usr/lib32/ -name "wineasio.dll.so"

This should output 4 paths (ignore the errors).

To install it for Proton, run these:

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

# for Proton versions 6.5 and below
cp /usr/lib32/wine/i386-windows/wineasio.dll "$PROTON/lib/wine/wineasio.dll.so"
cp /usr/lib/wine/x86_64-unix/wineasio.dll.so "$PROTON/lib64/wine/wineasio.dll.so"

In theory, this should also work with Lutris runners (located in $HOME/.local/share/lutris/runners/wine/)

Setting up the game's prefix/compatdata

  1. Delete or rename $STEAMLIBRARY/steamapps/compatdata/221680, then start Rocksmith and stop the game once it's running.
  2. WINEPREFIX=$STEAMLIBRARY/steamapps/compatdata/221680/pfx regsvr32 /usr/lib32/wine/i386-windows/wineasio.dll (Errors are normal, should end with "regsvr32: Successfully registered DLL [...]")

I don't know a way to check if this is set up correctly. This is one of the first steps I'd redo when I have issues.

Installing RS_ASIO

Download the newest release, unpack everything to the root of your Rocksmith installation ($STEAMLIBRARY/steamapps/common/Rocksmith2014/)

Edit RS_ASIO.ini: fill in WineASIO where it says Driver=. Do this for [Asio.Output] and [Asio.Input.0]. If you don't play multiplayer, you can comment out Input1 and Input2 by putting a ; in front of the lines.

Set up JACK with Cadence

(If you use pipewire, skip this.)

  1. Open Cadence. If it says on the bottom left that you should log out and back in, and you already did that, restart your machine.
  2. Go to Configure -> Engine. Make sure that "Realtime" is ticked.
  3. Go to "Driver", select ALSA.
  • If you use the same device for input and output, untick "Duplex Mode" and select the device you want to use in the first line. If you use different devices for in- and output, tick "Duplex Mode" and select the devices in the 2nd and 3rd line. Please note that the names are not that intuitive to begin with.
  • Input Channels: <no. of players>; Output Channels: 2
  • Sample Rate: 48000
  • Buffer Size and Buffer Periods: Bigger Buffer Size equals more stability and higher latency. AFAIK you can reduce the Buffer Size, if you add more Periods, but I'm not sure about that. 256/4 (~5ms) works fine for me.
  1. Press okay and go to `Tweaks -> WineASIO
  • Tick everything
  • Match No. of in- and -outputs
  • Match Buffer size
  1. Press apply
  2. You're set up. To start JACK, you can press "Start" under "System"

Starting the game

Delete the Rocksmith.ini inside your Rocksmith installation. It will auto-generate with the correct values. The only important part is the LatencyBuffer=, which has to match the Buffer Periods.

Steam and JACK need to be running.

If we start the game from Steam, the game cant connect to wineasio (you won't have sound and will get an error message). So there's two ways around that:

Command (No Lutris)

# 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

(PIPEWIRE_LATENCY is only needed, if you use pipewire. For non-pipewire users, it doesn't do any harm. I just wanted to have ONE command)

Yes Lutris

Using Proton outside of it's wrapper is discouraged, but if we use normal wine, the game can't find Steam, which is needed for Steam's DRM.

Open Lutris and add a game:

  • General:
    • Name: Rocksmith® 2014 Edition - Remastered
    • Runner: Wine
    • Release year: 2014
  • Game Options
    • Executable: $STEAMLIBRARY/steamapps/common/Rocksmith 2014/Rocksmith2014.exe
    • Working directory: $STEAMLIBRARY/steamapps/common/Rocksmith 2014/
    • Wine prefix: $STEAMLIBRARY/steamapps/compatdata/221680/pfx
  • Runner options
    • Wine version: Custom
    • (Toggle Advanced options to see this) Custom Wine executable: enter path to dist/bin/wine or files/bin/wine of your desired Proton version
  • System options (only needed for pipewire)
    • Environment Variables: PIPEWIRE_LATENCY=256/48000

(People who don't use the Steam version can just choose whatever runner they like.)

Save this and hit "Play."