theNizo / linux_rocksmith

Guides to get Rocksmith 2014 running on Linux
https://thenizo.github.io/linux_rocksmith/
GNU General Public License v3.0
100 stars 10 forks source link

Script buggy - Guide not working #5

Closed datWeazel closed 2 years ago

datWeazel commented 2 years ago

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

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.

theNizo commented 2 years ago

IIRC I didn't really test it. suod makes me think that too, because it's a common typo of mine.

I thought I noted somewhere that I didn't test it.

I'll fix the things you told me and will put a warning in front of it, but I'm kind of on the fence of testing it thoroughly, because I don't really have spare machines

theNizo commented 2 years ago

I still get the error that RS2014 can't find any audio device.

If you tried the guide, that info alone is really generic. Assuming you used the script though, I could have a look into what it did wrong. Otherwise, your JACK setup might not be correct - again, missing details to help further.

datWeazel commented 2 years ago

Yea can't give much more information tbh. I never used JACK so I have no idea what I'm doing. I changed some stuff and now the game doesn't even start anymore.

wine: Call from 00000001700315D8 to unimplemented function ntdll.dll.RtlGetLocaleFileMappingAddress, aborting
wine: Call from 7BC2EA60 to unimplemented function ntdll.dll.RtlGetLocaleFileMappingAddress, aborting

So yea I'll see what I can do. My main goal with this issue was to let you know that some stuff's wrong in the script which prevents it from running correctly.

datWeazel commented 2 years ago

Got a more useful error using latest Proton-GE:

JackShmReadWritePtr1::~JackShmReadWritePtr1 - Init not done for -1, skipping unlock
JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for 0, skipping unlock
Unable to open a JACK client as: Rocksmith2014
Unloading original DLL
terminate called after throwing an instance of 'std::system_error'
  what():  Resource temporarily unavailable
wine: Assertion failed at address F7FC2549 (thread 0024), starting debugger...
0024:err:virtual:alloc_area_in_reserved_or_between_callback Could not map in reserved area.
../src-wine/dlls/ntdll/unix/virtual.c:1442: create_view: Assertion `!((UINT_PTR)base & page_mask)' failed.
0024:err:seh:NtRaiseException Unhandled exception code 80000101 flags 1 addr 0xf7fc2549

So basically it seems like latest Proton-Experimental doesn't work for some reason (at least for me) but Proton-GE works. Now I gotta figure out how to setup JACK correctly. But I think you guide isn't the best place to help with that.

theNizo commented 2 years ago

Sorry, I was busy with something else but wanted to reply as quick as possible.


IIRC I didn't really test it.

Addition: This is about the script. I've done the process by hand a hundred times.


Script output says that I should set up JACK via Carla

I've just noticed that this is in your first message. This is a mistake, Cadence is the tool I meant.

I changed some stuff and now the game doesn't even start anymore.

Without knowing your experience with wine/proton, I would start at deleting the prefix (steamapps/compatdata/221680) and creating a new one by starting the game again.

So basically it seems like latest Proton-Experimental doesn't work for some reason (at least for me) but Proton-GE works

The whole game, or the JACK-ASIO setup to the game? I'd assume the first here, since by the next sentence you didn't manage to get it to work yet.

I don't know which one of those things you meant: game doesn't start (probably because of version differences), or something else regarding the Rocksmith setup.

Now I gotta figure out how to setup JACK correctly

Assuming that you use Cadence and also start JACK from there, you can send me 3 screenshots and I can tell you if you did it correctly:

Also, is "Realtime" ticked in Cadence -> Configure -> Engine?

that info alone is really generic

I'll try this again: What steps did you take and what did you try? - Wait, from what I've seen, you ran the script and it didn't work. I mean, to debug yourself and/or get it to run, you can try to do it manually.

What I wrote there is in regards to this error message:

image

... which means that the game and RS_ASIO work together, but something in the chain of JACK -> WineASIO -> RS_ASIO is not set up correctly. To get a basic idea where the issues could be, I needed an answer to the question. Also any errors that popped up are good info.


My main goal with this issue was to let you know that some stuff's wrong in the script which prevents it from running correctly.

Alright then. If you want me to try and help you, reopen the issue. Your choice.


(Oh, btw, ignore the assignment and unassignment I did before posting this, I was testing something I didn't know about)

datWeazel commented 2 years ago

Hi, I managed to get everything working.

The Game ran fine when starting via Steam but since I don't have the RTC my guitar wasn't picked up. That's why I searched and found your guide and script.

First I tried the script, fixed the issues I stated in my first post and tried starting the game via the .sh. Game started, but showed the "No audio output device is detected." Error. After that I deleted the prefix and tried different Proton Versions via the Steam properties. But none worked.

What finally worked:

  1. I installed Proton-GE and set Rocksmith 2014 to use the latest Proton-GE via the Steam properties for the game.
  2. I copied the wineasio files the way you described in you guide (and the way the script does it)
    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"
  3. I setup JACK via Cadence the way your guide described.
  4. I double checked everything, rebooted and tried starting the game via the .sh but got the Unable to open a JACK client as: Rocksmith2014 error message.

And this is what (I think) fixed it:

  1. I created the following file: /etc/security/limits.d/audio.conf with this content:
    @audio - rtprio 95 
    @audio - memlock unlimited
  2. Reboot
  3. Started game via the .sh and everything is working (~except CDLC, game doesn't start if the D3DX9_42.dll is in the game folder but I'm working on it.~ <- CDLC works, just had to redownload the .dll from customsforge)

So yes, your guide does indeed help. But it seems that my Step 5 might be important for some. I found step 5 in this reddit post and it seems that it sets some priorities/privileges for realtime. (Unchecking realtime in Cadence didn't work so no idea if this really was what fixed it or some other reboot magic.)

theNizo commented 2 years ago

I created the following file: /etc/security/limits.d/audio.conf with this content:

I remember. Somewhere down in the linked Reddit post is where I originally posted the Arch-based guide. While debugging the script just now I also noticed that it doesn't check for these lines existing.

As far as I can tell, you have an Arch-based distro, which confuses me. The point of realtime-privileges (which the script also installs) is adding a file like this, (it's /etc/security/limits.d/99-realtime-privileges.conf on my system).

Could you give me the output of pacman -Q realtime-privileges please? Also, does the file I mentioned exist on your system?

datWeazel commented 2 years ago

It should have worked with the realtime-privileges package. No idea why it failed. I'm not even sure anymore that my audio.conf file changed anything. Maybe it really was some reboot magic combined with Proton-GE.

pacman -Q realtime-privileges Output: realtime-privileges 4-1


ls /etc/security/limits.d/ Output:
10-gamemode.conf 10-gcr.conf 99-realtime-privileges.conf audio.conf


cat /etc/security/limits.d/99-realtime-privileges.conf Output:

@realtime - rtprio 98
@realtime - memlock unlimited
@realtime - nice -11

groups Output:
sys network power realtime docker lp audio wheel weazel

theNizo commented 2 years ago

Thank you, that's perfect.

It's interesting indeed. The difference is 95 and 98, and there's another line. I don't know if this makes a difference though, but if I had to guess, I think it shouldn't... Now I'm confused, but thanks anyways ^^