-
Notifications
You must be signed in to change notification settings - Fork 24
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 |
It looks like the issue with Workshop Map Loader is that it's trying to launch PowerShell. From the proton logs:
This is in spite of having a copy of I'm not sure why the "expand with BAT" option doesn't work. When I expand the textures/maps manually via CLI the plugin seems to work fine. The workshop map plugin window is laggy on both platforms for me too. I've fixed plugins with the Tentative roadmap:
|
Interesting, I appreciate you looking into it. Regarding the I imagine a bunch of plugins rely on powershell for providing textures, so it would be cool if you managed to get that working. I do wonder what causes the lag, very curious. Thanks for your work on this, let me know if I can help in anyway, testing things, etc. |
I've added powershell support to the latest versions (legendary: I can't seem to get the injector running on the same wineserver as proton, and when I launch Decky Loader seems mostly set up for system-wide mods rather than per-game ones, making me wonder if a plugin that acts as an AUR installation manager would be the more appropriate approach. It still doesn't resolve the issue of controller support for the bakkesmod window though, which I was hoping could live in the plugin tab. I'm still hopeful that ImGUI can be set up to display there, but there's also an open source external GUI that can be adapted if needed. At the very least the plugin window should have an option to send an F2 input to the game so a keyboard isn't needed. I believe the current setup should be mostly stable, so I'm probably putting decky loader support on hold for at least a little while. I don't think the repos need a full QA vetting or anything, but I'd appreciate it if you continue to report problems during normal usage @fiskenslakt. Thank you for the feedback you've given already. |
Thanks again for your work on this @kentslaney. I updated to Bizarre that powershell doesn't work for me still, but I was able to successfully load into a workshop map and that's all that really matters.
Happy to continue reporting on issues as I come across them, and my pleasure. |
@fiskenslakt even after deleting the wine prefix, I can't seem to reproduce your issue. Could you please reinstall find "$HOME/Games/Heroic/Prefixes/default/Rocket League" -name powershell.exe | xargs -i sh -c 'ls -l "{}" && sha256sum "{}"' Edit: actually, maybe run the command before reinstalling, while you know you still have the broken state |
This is the output: ❯ find "$HOME/Games/Heroic/Prefixes/default/Rocket League" -name powershell.exe | xargs -i sh -c 'ls -l "{}" && sha256sum "{}"'
-rwxr-xr-x 1 derek derek 7680 Sep 11 23:13 '/home/derek/Games/Heroic/Prefixes/default/Rocket League/drive_c/windows/syswow64/WindowsPowerShell/v1.0/powershell.exe'
eb3a0bbc46693ce35383ec4f258635a91162346a2f025d3e49162f0949458b6b /home/derek/Games/Heroic/Prefixes/default/Rocket League/drive_c/windows/syswow64/WindowsPowerShell/v1.0/powershell.exe
-rwxr-xr-x 1 derek derek 7680 Sep 11 23:13 '/home/derek/Games/Heroic/Prefixes/default/Rocket League/drive_c/windows/system32/WindowsPowerShell/v1.0/powershell.exe'
290e4fa9636e73fcb230815cb121b9eb3db2aa1983a7a692714e90a0ae1a7fc8 /home/derek/Games/Heroic/Prefixes/default/Rocket League/drive_c/windows/system32/WindowsPowerShell/v1.0/powershell.exe |
@fiskenslakt that's what it should be. Does your output match for this one too? $ find "$HOME/Games/Heroic/Prefixes/default/Rocket League" -name pwsh.exe -o -name 7zr.exe -o -name ConEmu.exe | xargs -i sh -c 'ls -l "{}" && sha256sum "{}"'
-rwxr-xr-x 1 kds kds 591360 Sep 10 11:58 '/home/kds/Games/Heroic/Prefixes/default/Rocket League/drive_c/users/kds/AppData/Local/Temp/7zr.exe'
1b16c41ae39b679384b06f1492b587b650716430ff9c2e079dca2ad1f62c952d /home/kds/Games/Heroic/Prefixes/default/Rocket League/drive_c/users/kds/AppData/Local/Temp/7zr.exe
-rwxr-xr-x 1 kds kds 2256128 Jul 23 2023 '/home/kds/Games/Heroic/Prefixes/default/Rocket League/drive_c/ConEmu/ConEmu.exe'
a7eadf0436b0b44ce94babb90ff0a75ca5db414412cbb0e7849f2ddac2541142 /home/kds/Games/Heroic/Prefixes/default/Rocket League/drive_c/ConEmu/ConEmu.exe
-rwxr-xr-x 1 kds kds 282032 Jan 11 2024 '/home/kds/Games/Heroic/Prefixes/default/Rocket League/drive_c/Program Files/PowerShell/7/pwsh.exe'
a8876dae24fa8a7fbc2155fdac0649e9af02ceabc45c8ae59e916fc0152e52fa /home/kds/Games/Heroic/Prefixes/default/Rocket League/drive_c/Program Files/PowerShell/7/pwsh.exe and if so, what happens when you run WINEPREFIX="$HOME/Games/Heroic/Prefixes/default/Rocket League" wine start 'C:\windows\system32\WindowsPowerShell\v1.0\powershell.exe' |
It matches yes. Interesting: ❯ WINEPREFIX="$HOME/Games/Heroic/Prefixes/default/Rocket League" wine start 'C:\windows\system32\WindowsPowerShell\v1.0\powershell.exe'
wine client error:0: version mismatch 759/804.
Your wineserver binary was not upgraded correctly,
or you have an older one somewhere in your PATH.
Or maybe the wrong wineserver is still running? |
Oh right, you're starting rocket league with a wine version that doesn't match the system and I forgot to have my install script check the config file for the wine binary's path. Not sure how I missed that after all my attempts trying to get proton support working. Give me a minute. |
@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. |
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: