-
Notifications
You must be signed in to change notification settings - Fork 58
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
add: Rocket league umu #197
base: master
Are you sure you want to change the base?
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 |
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++ Redistributable
in the prefix, however even after trying to installvcrun2019
with 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?