Skip to content

alexanderadam/rocksmith-2014-wine-docker

 
 

Repository files navigation

🐋 Docker container image for 🎸 Rocksmith 2014 Remastered from 🌀 Ubisoft

❔ What is it about?

Rocksmith, Rocksmith 2014 and Rocksmith 2014 remastered are music video games by Ubisoft.

It is the best guitar training software I found but it is not natively available on Linux.

So far you will need virtualization or a compatibility layer like Wine or Proton (see protondb) to run it. And even then you might run into various issues. It would be nice being able just to install and run it via winepak (i.e. flatpak install winepak com.ubisoft.rocksmith2014) but so far there's no pak available. You also might be interested in that petition on change.org to support Rocksmith on Linux natively.

Proton is working for some people but still needs various fixes.

So this repository is basically an attempt to bring an easier 🎸 Rocksmith experience to 🐧 Linux. Simply pulling and running a proper prebuild Docker image would be nice solution.

⚠️ Disclaimer ⚠️

  1. I did not get it working. I'm running Rocksmith 2014 within a "real" Windows machine now (dual boot — and it has bugs even there). I guess the repository could be finished but currently I'm not seeing what is missing.
  2. This repository is basically a merge of @PedrioliLab's and @scottyhardy's repositories plus some tweaks and hints I found somewhere else. I think I linked all of them, so this might also help if you are struggeling with Rocksmith 2014 remastered on Wine in general.

⚙️ How to run

🔧 Setup

You can build the image with docker build -t rocksmith . (or just use ./build.sh).

Afterwards might want to run ./run.sh setup /usr/bin/winecfg first, to check whether audio is working in the audio tab and to install wine gecko and wine mono.

This image is using the wine archive which does not provide wine-gecko or wine-mono. This means you will be asked if you want to download those components. For best compatibility, it is recommended to click Yes here.

🎸 Playing Rocksmith

Afterwards you might want to install or run Rocksmith by pointing wine to the executable of the mounted installer volume:

$ ./run.sh '/usr/bin/wine /home/user/rocksmith/Rocksmith2014.exe'

❗ Errors and Pitfalls

🐌 Poor performance

You can workaround the problem by disabling d3d11.

winecfg ➡️ Libraries ➡️ [New override for library: ] d3d11 ➡️ Add ➡️ Edit... ➡️ Disable

And you might want to use the ./ini_generator.sh (from playonlinux) to edit or generate Rocksmith.ini.

I had to lower the resolution even on "Windows" to have it working without stuttering although I'm running it with more than enough resources and a peroper graphic card. So this would obviously most probably be necessary on Linux machines, too.

🔌 Real Tone Cable not working

Call pavucontrol and disable Rocksmith Guitar Adapter in the Configuration tab. You can check this with:

$ pactl list sources | grep -i 'Rocksmith'

If this command returns nothing it is successfully disabled. Otherwise you might check with pacmd as well.

If this is not working you might want to switch to ALSA instead of Pulseaudio:

$ ./run.sh winetricks settings sound=alsa

If this isn't working either, you should switch back with

$ ./run.sh winetricks settings sound=pulse

🔇 No sound or message ERROR SOUND INITIALIZATION

If you see something like No audio output device is detected. Please connect and enable an audio output device then restart Rocksmith 2014.

You may want to try a solution from this Wiki page. Good luck!

💻 Black screen when starting the game

Seems to be related to external monitors. Try using just one monitor or run wine virtual desktop emulation in Graphics tab of winecfg.

⚠️ Other errors

You might want to follow one of those:

or DidYouKillMyFather's guide from reddit:

  1. Open a terminal
  2. Enter WINEPREFIX=~/.steam/steam/steamapps/compatdata/221680/pfx winetricks sound=alsa and press [Enter]
  3. Enter WINEPREFIX=~/.steam/steam/steamapps/compatdata/221680/pfx winecfg and press [Enter] * If either of these fail, run sudo apt install wine-development winetricks to install WINE and winetricks
  4. Go to Drives, select Z:, and set it to ~/.steam in the Path box
  5. Click OK
  6. If the game does not pick up your guitar, run apt install pavucontrol (assuming you're on Ubuntu or Mint)

That should do it for you. If it doesn't, do the following:

  1. From the above step 4, change Z: to ~/.local/share/Steam
  2. Run echo "default-fragments = 5" | sudo tee -a /etc/pulse/daemon.conf and echo "default-fragment-size-msec = 2" | sudo tee -a /etc/pulse/daemon.conf
  3. In Steam, right-click Rocksmith and then enter Properties. From there go Set Launch Options and enter PROTON_NO_D3D11=1 %command%
  4. Click OK and then close the Properties window

If you have any further problems you may be SoL for now. I'll decode what all this gibberish is a little later.

Explanations:

WINE can have different prefixes, which is like different Windows installations with tweaks to get specific applications running. By default you have a ~/.wine folder. I'm not sure how far along you are in your Linux journey, but ~ means "Home Directory" and points you towards /home/$USER/ (you can see this by opening a terminal and entering echo $USER and echo $HOME). This is the default WINEPREFIX, but every Proton game as a folder (.../pfx) which is it's own WINEPREFIX and has whatever tweaks it needs to be able to run, provided it's on the whitelist.

In other words, in that command WINEPREFIX=~/.steam/steam/steamapps/compatdata/221680/pfx winecfg you're telling WINE that you want its "root" to be ~/.steam/steam/steamapps/compatdata/221680/pfx and then run winecfg within that root. Same thing for the winetricks command.

The Z: drive is just a "fake" drive that follows the Windows naming scheme (A: - Z:, as opposed to the near infinite sd_/hd_/vd_/xd_ format that Linux has). You're setting this drive to look in your Steam's data folder, where Rocksmith will be able to see it. Some distributions use ~/.steam but most of them use ~/.local/share/Steam. Sometimes people will make a symbolic link between the two, especially if they distrohop a lot.

pavucontrol is a program that makes PulseAudio a lot easier to use. It's almost like a mixing board that allows for finer control over all of your sound devices.

tee is a program that redirects whatever you entered into a specified file. You can do this with redirects too (echo "test" > example.txt) but it's easier to use tee when you need superuser permissions. tee -a appends to the file, so you don't overwrite previous information. (EXAMPLE: echo "Hi" | tee example.txt echo "Hi again" | tee -a example.txt)

💡 Hints

If you have the Rocksmith USB cable anyway, you also might want to have a look at guitarix, rakarrack (recent patches on GitHub), Ardour and Hydrogen.

🚧 TODO