-
Notifications
You must be signed in to change notification settings - Fork 25
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
Linux compatibility #2
Comments
Any progress on this @Bakkes ? |
Bump, Mac OS support also will be so awesome |
Since Rocket League can only be used with Proton without restrictions, you can theoretically start BakkesMod with protontricks. UsageStep 1Installs winetricks and protontricks Step 2Install Visual C++ Redistributable Packages by executing:
This installs the VCRedist Packages 2015 - 2019 Step 3 (maybe optional)This step depends on wether you use Proton 5 (or higher) or not. Setting Runtime Configuration Options for Rocket League to use D9VK.
Step 4Start Rocket League and wait till it's loadded then run BakkesMod using protontricks
Maybe use WINEFSYNC or WINEESYNC according to your configuration.
HoweverWhen I press F2 the game gets totally black and I can't use it. |
I got BakkesMod fully working after @Bakkes mentioned that Proton is using a diffrent Thanks for that by the way Additional StepAfter following my above steps, you have to set a launch option for Rocket League to use the OpenGL-based wined3d.
How to use this is described in step 3 HoweverIt's very laggy when you enable this |
Hi, I encounter same assertion failed even with the additional step. I just get a frozen screen instead of black screen. Any clue? How can I check the RL launch option is well taken into account? How can I check that it uses the right |
@BishopT |
I can confirm that, even with the additional step, I still encounter the assertion failure described in bakkesmodorg/BakkesModInjectorCpp#8 I can also say that while running on Gnome using X, and trying to run rocket league with the OpenGL-based wined3d, I don't get the very laggy behavior that @DatL4g talk about. But when using Gnome with Wayland I get the laggy behavior and I can only start rocket league with the OpenGL-based wined3d (if not the game won't start, probably related to dx11 with xwayland, haven't tried Also while using no launch option in X, after injecting the mod, the game always crash and will only work if I use Linux: 5.6.10-arch1-1 |
@BishopT I'll send my protontricks configuration later. |
My bad, I wanted to say |
@BishopT @Justkant SetupRun Installed DLLs
Installed Fonts
Linux 5.4.0-7626-generic |
I created a post on Reddit in which everything is explained again and how to work around the performance problem |
Works like a charm with GloriousEggroll's proton! And many thanks to all the people who contributed to that version :) |
Ever since EGS support was introduced, suddenly, I get this dialog on injection (for the Steam version!): Here's a version info screenshot, in case something's off there Here's the injector log, if that is of any use.
|
@kescherCode |
Didn't have this issue, i only can't use the autouploader Feature, because of a "FIX" which they released... Would be nice if they would develop against the wine sdk. |
Do you happen to know which date/release this first started not working anymore? |
@eren-kemer This should be this commit: |
Any progress @Mistra @kescherCode? I'm running into the same error and I've tried everything I can think of. I also ran into this issue on the way, though I'd be surprised if it's relevant to this one. Also I recently enabled AMD SVM, though, again, I doubt it's related. |
@kentslaney No, still no progress. None of the things you mentioned should make a difference (vcrun2015 is not an issue here, and I use an Intel CPU) |
@kescherCode Sorry, with AMD SVM I just meant that I have hardware emulation enabled, which changes how instruction addressing happens in (particularly 64 bit) virtual environments. I know Wine Is Not an Emulator and it does on the fly conversion, but I wasn't sure if it might quietly enable some optimization that BakkesMod isn't expecting. Edit: turned it off and the bug still happens |
I'd really like this to work too. I investigated this last error a bit about the injection failing because of vcredist. It looks like for some reason the injection from bakkesmod.exe always fails. I have written my own injector (by copy-pasting pieces from bakkesmod) and used that instead. I can confirm that the injection is indeed successful from wine logs. Also, starting bakkesmod.exe after this injection makes it say that everything is alright and you need to press f2. Now the issue is that I get a black screen in the game as soon as inject the dll. The game is still running, making sounds and responding to inputs, but the screen is black. Btw, I'm using the epic version of the game on Proton 5.13. You can find my dll injector here: https://gist.github.com/blastrock/6958033f03a0bdffa52c6dfa2ce0e60a in case someone wants to take this further. If someone has a hint or two to debug this blackscreen, please do tell :) |
@blastrock the blackscreen issue has always been the case, and you need to use a custom Proton version for this not to happen (proton-ge-custom, wine-tkg-git proton, ...) |
can confirm, @blastrock 's method worked for me with proton-tkg 6.5, had to update a few commands (was getting winpthread dll error, so had to add -static flag) https://gist.github.com/sadn1ck/d68cfdc28067b329bc82e7f80ab0b71e |
Thanks @kescherCode . I didn't know these forks of proton, I haven't got time to test one yet, but I will definitely do. @sadn1ck thanks for testing! So this injector does work for other people than me. Now I'm not sure what to conclude from that. I really wrote that by copy pasting code from bakkesmod, so it should do pretty much the same thing. The only difference I noticed is that bakkesmod uses a Windows path with a mix of |
@blastrock on the recommendation of @sadn1ck i have tried the same injector of yours by changing the rocket league path (i'm using the epic launcher through lutris due to steam issues) with wine-tkg, and can confirm it works. I don't believe it's a problem caused by the injector. However, I do believe you should try the staging build of wine if you're unsure about a fork. |
Ok, I just tested again with proton ge, it does work! Thanks! I also tested replacing the path with a Windows path as I said just before, but the injector still works. I can't explain why the official injector doesn't work. |
Thanks @blastrock! I got it working on Ubuntu 20.04, Proton GE 6.5 r2, command sequence looked roughly like: sudo apt install mingw-w64
mkdir -p ~/Games/bakkes
cd ~/Games/bakkes
curl -LO https://gist.githubusercontent.com/blastrock/6958033f03a0bdffa52c6dfa2ce0e60a/raw/1e9f4208eac9f8392e670f9465b3fae3b8503645/inject.cpp
curl -LO https://github.com/bakkesmodorg/BakkesModInjectorCpp/releases/download/1.9.5/BakkesModSetup.exe
curl -LO https://github.com/bakkesmodorg/BakkesModInjectorCpp/releases/download/1.9.5/BakkesModInjectorWin7.zip
unzip BakkesModInjectorWin7.zip
# run setup if not already done to create the dll
WINEESYNC=1 protontricks -c '~/.steam/steam/compatibilitytools.d/Proton-6.5-GE-2/dist/bin/wine64 /home/$USER/Games/bakkes/BakkesModSetup.exe' 252950
# update the ws variable in wmain on line 115 of inject.cpp using the output from this:
find ~/.steam/steam/ -name bakkesmod.dll
x86_64-w64-mingw32-c++ -I/usr/x86_64-w64-mingw32/include\;/usr/x86_64-w64-mingw32/lib inject.cpp -municode -std=c++17 -static-libgcc -static-libstdc++ -static -o inject.exe
# actual command
WINEESYNC=1 WINEPREFIX=/home/$USER/.steam/steam/steamapps/compatdata/252950/pfx/ WINEPATH=/usr/x86_64-w64-mingw32/include\;/usr/x86_64-w64-mingw32/lib ~/.steam/steam/compatibilitytools.d/Proton-6.5-GE-2/dist/bin/wine64 inject.exe
WINEESYNC=1 protontricks -c '~/.steam/steam/compatibilitytools.d/Proton-6.5-GE-2/dist/bin/wine64 /home/$USER/Games/bakkes/BakkesMod.exe' 252950 (This is a guide not a script, doesn't really copy/paste) |
Thanks @kentslaney . Where does the dll end up during the
but it's just exiting with no output and a return code of 0. Can't find the dll in any of these places:
Also, what path are you hard-coding in |
@fiskenslakt Just published |
Hmm, updated, then restarted rocket league. Tried downloading a map in the map loader plugin, and it failed to extract it like usual. Slightly unrelated, but do you see thumbnail previews of the maps when searching in the map loader plugin? In bakkesmod console, I see it logged that it loaded a bunch of previews and shows the paths of .jfif files. I don't see any thumbnails though, not even for the maps I've extracted manually and can successfully load into, odd. |
Oh here's the output btw: ==> Starting package()...
build version string: BC2_Update52+458534.197.2.43.7
shunted winuser calls for DLL patch: ('0xd3a61', '0xd51cc')
Hive: HKEY_CURRENT_USER\Software\Wine\AppDefaults
Name Property
---- --------
ConEmu64.exe
Version : win81
PSPath : Microsoft.PowerShell.Core\Registry::HKEY_CURRENT_USER\Software\Wine\AppDefaults\ConEmu64.exe
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_CURRENT_USER\Software\Wine\AppDefaults
PSChildName : ConEmu64.exe
PSDrive : HKCU
PSProvider : Microsoft.PowerShell.Core\Registry
Hive: HKEY_CURRENT_USER\Software\ConEmu
Name Property
---- --------
.Vanilla
ColorTable00 : 5645313
PSPath : Microsoft.PowerShell.Core\Registry::HKEY_CURRENT_USER\Software\ConEmu\.Vanilla
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_CURRENT_USER\Software\ConEmu
PSChildName : .Vanilla
PSDrive : HKCU
PSProvider : Microsoft.PowerShell.Core\Registry
ColorTable14 : 65535
PSPath : Microsoft.PowerShell.Core\Registry::HKEY_CURRENT_USER\Software\ConEmu\.Vanilla
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_CURRENT_USER\Software\ConEmu
PSChildName : .Vanilla
PSDrive : HKCU
PSProvider : Microsoft.PowerShell.Core\Registry
powershell64_installed
powershell32_installed edit - oh and that |
try WINEPREFIX="$HOME/Games/Heroic/Prefixes/default/Rocket League" "$(jq -r .Sugar.wineVersion.bin < "$HOME/.config/heroic/GamesConfig/Sugar.json")" start 'C:\windows\system32\WindowsPowerShell\v1.0\powershell.exe' |
output: ❯ WINEPREFIX="$HOME/Games/Heroic/Prefixes/default/Rocket League" "$(jq -r .Sugar.wineVersion.bin < "$HOME/.config/heroic/GamesConfig/Sugar.json")" start 'C:\windows\system32\WindowsPowerShell\v1.0\powershell.exe'
05cc:err:fsync:fsync_init Server is running with WINEFSYNC but this process is not, please enable WINEFSYNC or restart wineserver. |
how about WINEFSYNC=1 WINEPREFIX="$HOME/Games/Heroic/Prefixes/default/Rocket League" "$(jq -r .Sugar.wineVersion.bin < "$HOME/.config/heroic/GamesConfig/Sugar.json")" start 'C:\windows\system32\WindowsPowerShell\v1.0\powershell.exe' |
powershell actually starts, I successfully ran |
And clicking on a downloaded map and extracting with powershell still doesn't work even with refreshing the maps list? Does the powershell still launch if you run this instead? WINEFSYNC=1 WINEPREFIX="$HOME/Games/Heroic/Prefixes/default/Rocket League" "$(jq -r .Sugar.wineVersion.bin < "$HOME/.config/heroic/GamesConfig/Sugar.json")" start powershell.exe What happens when you try to extract a zip file from the powershell CLI? For example, replace
What's the output when you try extracting a map after launching the game with BAKKES=1 LD_PRELOAD= WINEPREFIX="$HOME/Games/Heroic/Prefixes/default/Rocket League" WINEFSYNC=1 LEGENDARY_CONFIG_PATH="$HOME/.config/heroic/legendaryConfig/legendary" /opt/Heroic/resources/app.asar.unpacked/build/bin/x64/linux/legendary launch Sugar --wine "$(jq -r .Sugar.wineVersion.bin < "$HOME/.config/heroic/GamesConfig/Sugar.json")" --language en
Yes, I do. Not sure what to make of that part yet. Maybe try downloading the latest wine under the Last response of the night, I'll get back to you tomorrow. |
Correct.
Yes it does.
Extracting that last map I told you about earlier in said powershell worked. Was able to load into the map successfully after.
It actually succeeds, first time I've seen it work. Was able to load into the map successfully right away.
hmm, ok I'll try that tomorrow. |
Oh, I wasn't expecting that, hold off on updating wine in that case. When you launch heroic via the CLI with |
What's the output when you try to extract a map after starting the game with the same launch command heroic is using? HEROIC_APP_NAME=Sugar HEROIC_APP_RUNNER=legendary GAMEID=umu-0 HEROIC_APP_SOURCE=epic STORE=egs STEAM_COMPAT_INSTALL_PATH=/home/derek/Games/Heroic/rocketleague BAKKES=1 PROMPTLESS=1 LD_PRELOAD= WINEPREFIX="/home/derek/Games/Heroic/Prefixes/default/Rocket League" WINEDLLOVERRIDES=winemenubuilder.exe=d WINE_FULLSCREEN_FSR=0 WINEESYNC=1 WINEFSYNC=1 PROTON_EAC_RUNTIME=/home/derek/.config/heroic/tools/runtimes/eac_runtime PROTON_BATTLEYE_RUNTIME=/home/derek/.config/heroic/tools/runtimes/battleye_runtime ORIG_LD_LIBRARY_PATH= LD_LIBRARY_PATH=/home/derek/.config/heroic/tools/wine/Wine-GE-Proton8-26/lib64:/home/derek/.config/heroic/tools/wine/Wine-GE-Proton8-26/lib GST_PLUGIN_SYSTEM_PATH_1_0=/home/derek/.config/heroic/tools/wine/Wine-GE-Proton8-26/lib64/gstreamer-1.0:/home/derek/.config/heroic/tools/wine/Wine-GE-Proton8-26/lib/gstreamer-1.0 WINEDLLPATH=/home/derek/.config/heroic/tools/wine/Wine-GE-Proton8-26/lib64/wine:/home/derek/.config/heroic/tools/wine/Wine-GE-Proton8-26/lib/wine LEGENDARY_CONFIG_PATH=/home/derek/.config/heroic/legendaryConfig/legendary /opt/heroic/resources/app.asar.unpacked/build/bin/x64/linux/legendary launch Sugar --wine /home/derek/.config/heroic/tools/wine/Wine-GE-Proton8-26/bin/wine --language en |
You're gonna love this... So if I launch rocket league with that command directly, extracting a map actually works, was able to load into the map successfully afterward. Feeling like I was crazy, I launched the game via heroic normally and tried, extraction failed. OK, I tried launching heroic via the terminal and then launching rocket league, extraction failed. Even worse, there's no output in the terminal. |
Try setting |
do you mean launching Heroic with |
@fiskenslakt I've seen your comment and the next thing for me to do is try to reproduce the conditions from what I already know. If you just want to play with bakkesmod, your best bet is to switch your launcher's wine option to the latest default wine only GE or the system default via pacman. I'm planning to look into the issue further either way, I've just been focusing on other things recently so it might take a bit. |
@kentslaney no problem, it still works as is, it's not the end of the world to have to unzip maps manually. Not seeing the thumbnail previews when searching maps is a bit more inconvenient, but I can live with that as well if I must. Thanks for all your work on this. I'll be around. |
@kentslaney After rocket league updated today, I can no longer load into a map (freeplay, trainingpack) while bakkesmod is active without rocket league crashing. Are you seeing the same thing or is this just happening to me? |
@fiskenslakt it's because the bakkesmod version is stale and a new release hasn't been published yet (see here). I'll update the repo when it's released but until then turn off the |
@fiskenslakt The AURs have been updated; hopefully I'll turn it into a GitHub workflow at some point |
Sweet thanks, and yea that'd be neat. |
Hey @kentslaney, I tried updating your package today and it failed:
Is it an issue on my side? If it's relevant, I update/maintain AUR packages with |
@fiskenslakt The install worked for me and I've just confirmed that BakkesMod is working via Heroic Launcher on my machine. The only thing that happens after it logs the DLL addresses is it installs the powershell wrapper, which shouldn't be necessary for you since you're updating instead of doing a fresh install. If you go to your package manager's cache directory for the repo (probably I've been meaning to make it so the powershell install only happens on fresh versions and not for updates (mostly since it's slow), but I haven't gotten around to it. |
I was curious, so I just removed the last part to see the error, and it was this:
Bizarrely, that path does exist..
For now I suppose I'll remove the whole code block like you suggested, but I assume the next time you update the package it'll be back and I'll presumably get the error again. EDIT - As expected, package built successfully after removing that section |
@fiskenslakt I've just updated the package so that it will only attempt the powershell install if it hasn't been done already |
@kentslaney Thank you for your work on this, it's making my life a lot easier trying to move off Windows!
Thanks again! |
Just to double check, you're using the heroic launcher to run the Epic version, correct? You can technically run the steam version through heroic too if you wanted. Can you check that the wine version that you're using in the game settings for me please? It seems like you're using proton, which isn't supported for the EGS version yet. If there's no option other than proton in that menu, you might have to install a system version of wine. I'll look into proton for the EGS EXE at some point too. |
Yes. I have an Epic account in addition to a steam account.
I had changed this to GE-Proton9-20 and things seemed to work fine that way. Should I go back to "Wine Default - wine-9.20"? I tried this and it did some extra stuff but then still failed later:
I did try to set up bakkesmod manually per (your?) instructions above, so maybe I screwed up the wine environment somehow? And yes, I'm running on a desktop. Thank you! |
If you're worried about having screwed up the wine environment, you can delete the WinePrefix folder under settings and run the game again to redo the install from scratch. You'd have to install the It might be nice to remove that dependency at some point too, but one thing at a time. |
This worked, thanks! I don't need the workshop plugin - I can do workshop maps on the steam version. Out of curiosity, do you have a preferred way to share the bakkesmod folder between the steam & heroic versions? Would a simple symlink work or would that mess things up? For now I just copied all the cfg/plugins/data files from my old windows drive and that seems to be fine, though it doesn't share some of the things like the Deja Vu plugin's data, or other configuration that I'd prefer to be mirrored. |
Hi, now that steam is fully and properly supported on Linux, any plans on bringing this awesome mod on it ?? I m dying to get better at RL and I m sure your mod is the perfect tool for it
Thx in advance
The text was updated successfully, but these errors were encountered: