add: Rocket league umu - #197
Conversation
|
In my case the game doesn't seem to launch at all. |
|
I guessed perhaps I was not adding umu to PATH correctly, but I just removed umu from my config and RL still seems to work without issues, and looks like the path is set correctly. I added WINEPREFIX to umu scripts as well, maybe legendary was not directing to the correct game files. Though I am not confident that was the issue for you. it could be helpful if you shared with which attributes/values you call rocket-league in your config and what the output is when you start rocket-league from the terminal |
|
Currently testing directly from the repo using this patch diff --git a/pkgs/default.nix b/pkgs/default.nix
index 234bbf5..576a177 100644
--- a/pkgs/default.nix
+++ b/pkgs/default.nix
@@ -86,6 +86,7 @@
rocket-league = pkgs.callPackage ./rocket-league {
wine = config.packages.wine-tkg;
inherit (config.packages) umu;
+ useUmu = true;
};
star-citizen = pkgs.callPackage ./star-citizen {Output log is Removing |
|
I just noticed we were not adding gamemode to the path correctly, but I don't think that was the issue with your case anyway. Honestly, when I run rocket-league, the output is pretty similar, I don't see any noticeable difference, except the game runs normally. Perhaps we can try looking into umu logs like that; $ UMU_LOG=debug rocket-league |
|
Sure, here's the log. |
|
I just compared the output with the output on my end, it looks pretty similar except for the To debug further I would recommend creating a shell with umu-run and legendary-gl, they try to manually run the game directly through umu-run, With the dry run option, the last command should print the command legendary will run and just exit. Then you can try manually running this command without including gamemode or any other dependencies in the way. Also, it might be worth trying to setup the envvar PROTONPATH=GE-Proton to use a different version of proton. But at this point, it becomes a little too much work and I am not confident that this kind of debugging can get us somewhere, so one option is to leave the PR in this state as a draft and come back to it when there are new releases or improvements from umu project. Honestly, it is a bit sad to see that even nix struggles with the "it works on my machine" problem. |
|
@emrebicer following your instructions I managed to get it to launch after a |
|
That is very good to hear, so does the PR also work after the nix flake update by any chance? Or just the dry-run? If it is only the dry run, then perhaps you can try prepending the |
|
Only the dry-run works. Strangely enough, it also works if I prepend |
|
I think I found the culprit here. I moved to another (physical) place where I don't have access to the desktop I have developed the changes for this PR, but I have my Nvidia desktop that is mentioned at #186 . On this desktop. I can reproduce the issue you are having, I simply can't run Rocket League with Umu with this PR. I did do some digging and I believe the issue is with the environment variable Again, it was working without issues on my other desktop, but apparently, there is something wrong with it so it doesn't work on my Nvidia machine or your environment... So I suggest for now we focus on making Rocket League work in any environment with umu and ignore bakkesmod case at the moment. Given that, I pushed a commit that removes the line where we set the mentioned env var. With that change, Rocket League Umu works on my Nvidia machine as well without issues. (A side note: there are no performance issues with umu, so this PR might lead to closing #186 as well.) Can you please try with the latest change as well? If it also works for you without issues, then we can focus on how we can support bakkesmod with Umu as well, I guess I can open an issue about it at the Umu project repo and ask for their help/recommendations about it. |
|
@emrebicer I'm terribly sorry for the delay, the notification must have slipped my view. I've just tested this, seems to work well despite the gamemode errors (which are probably a skill issue on my part). |
|
No worries, I also get many gamemode errors that go However despite the error, looks like gamemode is being activated, as the output of Update: Looks like there is an issue with the same error message here, but to my understanding, it is also not something to worry about if gamemoded status is returning gamemode is active, which is the case. |
|
Okay, then hopefully it will be fixed upstream. Thanks for looking into it. |
|
Hello, since there has been some time passed I wanted to update the dependencies and give another look into the issue within this PR. So I have synced my fork with upstream nix-gaming and now it points to My suspicion is that this is happening because we are trying to start Umu with a wrapper, namely (NOTE: as a refresher, that env var is only needed because I want to include support for bakkesmod, and to run 2 programs in the same prefix, we need that env var) However, I came to realize that even though that env var borks rocket league (with legendary) for some reason, we are setting it for bakkesmod and bakkesmod still works fine with it. That being said, I tried first launching Rocket League and then bakkesmod, which ended up in an environment where both run simultaneously using umu with the same prefix. So that already felt like an improvement, but running them at the same time is not enough, as stated at the top comment of this PR, even though bakkesmod launches, when we want to inject the mod into the game it still shows a warning that goes HOWEVER, even though there is such an error, the mod seems to inject and I can use it within the game. (By pressing F2 in the game to access the bakkesmod menu). Following that finding, I started looking for a solution to the missing dependency of I wanted to share my findings here hoping that someone might provide some help or suggestions regarding the mentioned issues, also perhaps it might be helpful for future encounters with umu issues. All that being said, one can argue that, now a user can play RL with umu, and even though it is not perfect a user can use bakkesmod with it as well. So I wonder if that would be somewhat satisfactory for merging this or should we halt it until all the mentioned issues are fixed. So TLDR;
|
|
I'd suggest trying older |
|
I tried installing all the vcrun20xx versions that I see on the winetricks verbs, but none of them resulted in a different behavior. I am not sure about the resulting DLLs, but I found vcruntime140.dll and kernel32.dll copied them to the same folder as bakkesmod.exe and tried rerunning things, it did not change any behavior either. I don't know how to override DLLs on wine, googling suggested using winecfg, not sure how well winecfg is supported for proton but gave it a shot and ran it by setting the target umu prefix. Under the libraries tab, there are some DLLs but I did not see a way to override the DLL by path, it lets me choose the load order for native or builtin. So if you have some, I would appreciate some tips for achieving the overriding DLL suggestion. Other than that I found other things such as, if I run Another thing I tried was to create a .bat script to launch bakkesmod and RL at the same time just for testing purposes (I wanted to create an environment where I run both of them without setting So my take on these findings is; for whatever reason using |
29a4b41 to
a228d1a
Compare
a228d1a to
7729f6d
Compare
|
@emrebicer it's been a while, and now that RL requires EAC to play, I've decided to revisit this. I've rebased this PR and integrated it with the changes made in #353 to try to fix #362. It seems we need GE-Proton to be able to use the EAC runtime, as standard umu builds do not have the necessary integration. I also haven't tried to fiddle with bakkesmod, but it's worth a check. Going forward we may only be able to play Rocket League with GE-Proton, so I believe we can remove the wine codepath. |
|
Hello @fufexan, I am a bit surprised to see that there is an issue regarding the eac update. Since I have been using my own fork for playing Rocket League, and even with eac update, I did not have any issues, the legendary binary just made the update, and things worked. Looking at my config, I have been using Since I was using umu, I think the wine parameter was not being used anyway, and it seems things work with umu-launcher, by default (unless PROTONPATH is set) I think it uses UMU-Proton. I believe the only reason I did not finalize and merge this PR was that there was an issue with umu where it was not allowing 2 simultaneous programs to run in the same pressure vessel. So when I ran Rocket League and Bakkesmod at the same time, it was throwing an error saying that it failed, even though it would still attach and work. I wanted to make sure things worked without flaws before I merged this. I have been keeping an eye on that Umu issue, but it is still not fixed to this day. That being said, there were some updates regarding the bakkesmod as well. Due to the EAC update, it is not possible to use the mod during online gameplay anymore, so it is not as convenient as it used to be (personally, I have not used it since the EAC update). However, it still might be cool to have it available in nix-gaming for people who would like to benefit from the mod for offline gameplay. Seems like Psyonix also supports this. I wanted to share my insights in this comment, but I can gladly help with testing or updating the package. |
|
I have been doing some testing on the rebased branch, and I was not able to start RL after the integrated changes. I tried with not setting a wine option (I think it defaults to However, umu-launcher seems to work out of the box. I can just set useUmu to true, and the game starts right away without any issues. At least for online gameplay with EAC, I had no issues. I also tried to launch the game without eac and the game launches, bakkesmod also launches, however does not attach to the game even though it was started without EAC. I suspect it might be related to the umu-launcher issue mentioned in my previous comment. It would be nice if we could have other people test this as well. If this behaviour is consistent, I suggest we just default to using the umu-launcher (or perhaps fully disable the wine option and only offer umu?), and regarding bakkesmod, even though I think it would be cool to keep the support, it is becoming a burden and does not offer the benefits it once used to, so honesly it might also make sense to get rid of it as well, or just keep it here and revisit it once the umu-launcher issue is resolved. |
|
Revisiting this (again). I've tried running it with umu, without PROTONPATH set, with and without If I set |
EAC option is enabled by default, and can be disabled by passing in -noeac to the legeandary launch command.
With the introduction of easy anticheat to RL, the wine option does not work anymore, so remove the wine option and force umu launcher.
This is the environment variable that dictates which proton should the umu-launcher use. It defaults to GE-Proton but can be customized to other proton builds.
the bakkesmod does not work atm, but I am in favor of keeping it, once the upstream bug is fixed, it can still be useful. It defaults to false and maybe we can add a mark/warning about it. If these changes seem good I think we can consider merging now. |
Bakkesmod does not work with umu yet, so show an error message when enabled.
|
@emrebicer wanted to let you know I got bakkesmod working again on master 1f64f73. |
|
@fufexan Seems to work as intended on my end; well done! Feel free to ping me about future requests for RL. |
After seeing the discussion at #151 and PR #193, I wanted to introduce Umu to Rocket League as well. Finally, I had some free time and made Rocket League work with Umu.
However, there is still an issue that I could not find a solution to yet. If I enable umu, I can run bakkesmod alongside rocket-league, however once bakkesmod tries to inject, it fails and gives an error message that goes
Injection failed, please download vc_redist.x86.exe and restart your PC. A Google search made me believe that the error message is implying I should haveMicrosoft Visual C++ Redistributablein the prefix, however even after trying to installvcrun2019with winetricks (umu-run winetricks vcrun2019) or manually running the installer.exe (VC_redist.x86.exe or x64) in the prefix through umu, I still get the same error message bakkesmod.I have been looking into possible solutions but could not get far. I wonder if anyone here has a suggestion to find a solution for that.
So TLDR; RL works with umu, and bakkesmod runs but does not inject. Any ideas on how can I fix that?