Skip to content
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

Open
pepinpin opened this issue Jan 2, 2019 · 162 comments
Open

Linux compatibility #2

pepinpin opened this issue Jan 2, 2019 · 162 comments

Comments

@pepinpin
Copy link

pepinpin commented Jan 2, 2019

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

@DatL4g
Copy link

DatL4g commented Jan 4, 2020

Any progress on this @Bakkes ?

@d2vydov
Copy link

d2vydov commented Jan 8, 2020

Bump, Mac OS support also will be so awesome

@DatL4g
Copy link

DatL4g commented Mar 29, 2020

Since Rocket League can only be used with Proton without restrictions, you can theoretically start BakkesMod with protontricks.

Usage

Step 1

Installs winetricks and protontricks

Step 2

Install Visual C++ Redistributable Packages by executing:

$ protontricks 252950 vcrun2019

This installs the VCRedist Packages 2015 - 2019

Step 3 (maybe optional)

This step depends on wether you use Proton 5 (or higher) or not.
If you use Proton >5.0 this is no longer needed.

Setting Runtime Configuration Options for Rocket League to use D9VK.
This can be done by configuring Properties and set Launch Options to

PROTON_USE_D9VK=1 %command%

Step 4

Start Rocket League and wait till it's loadded then run BakkesMod using protontricks

$ protontricks -c 'wine path/to/bakkesmod/BakkesMod.exe' 252950

Maybe use WINEFSYNC or WINEESYNC according to your configuration.

$ WINEFSYNC=1 protontricks -c 'wine path/to/bakkesmod/BakkesMod.exe' 252950
$ WINEESYNC=1 protontricks -c 'wine path/to/bakkesmod/BakkesMod.exe' 252950

However

When I press F2 the game gets totally black and I can't use it.

Issue created here

@DatL4g
Copy link

DatL4g commented Mar 30, 2020

I got BakkesMod fully working after @Bakkes mentioned that Proton is using a diffrent d3dcompiler.lib

Thanks for that by the way

Additional Step

After following my above steps, you have to set a launch option for Rocket League to use the OpenGL-based wined3d.

PROTON_USE_WINED3D=1 %command%

How to use this is described in step 3

However

It's very laggy when you enable this

@BishopT
Copy link

BishopT commented May 5, 2020

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 d3dcompiler.lib?

@DatL4g
Copy link

DatL4g commented May 5, 2020

@BishopT
If you follow my steps exactly you will get it to run but it is practically useless as it is extremely laggy.

@Justkant
Copy link

Justkant commented May 5, 2020

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 PROTON_USE_D9VK=1 %command%, F2 did nothing too, no crash & no window).

Also while using no launch option in X, after injecting the mod, the game always crash and will only work if I use PROTON_USE_WINED3D=1 %command% (and with no lag) to inject the mod.

Linux: 5.6.10-arch1-1
Nvidia: 440.82
Proton: 5.0-7
Gnome: 3.36.2

@BishopT
Copy link

BishopT commented May 5, 2020

@DatL4g I followed steps described here so same steps but vcrun2017 has been installed instead of vcrun2019. Then added PROTON_USE_D9VK=1 %command% in RL launch options

The game is not laggy even with PROTON_USE_D9VK=1 %command%

Linux 5.3.0-51-generic
GTK 3.22.30
Nvidia 435.21
Proton 5.0-7

@DatL4g
Copy link

DatL4g commented May 6, 2020

@BishopT
D9VK launch option is no longer needed in Proton >5.0
Instead follow my additional step.

I'll send my protontricks configuration later.

@BishopT
Copy link

BishopT commented May 6, 2020

My bad, I wanted to say PROTON_USE_WINED3D=1 %command%. Just copy-paste wrong text 😬

@DatL4g
Copy link

DatL4g commented May 6, 2020

@BishopT @Justkant
Here my additional protontricks configuration

Setup

Run protontricks 252950 --gui to get a GUI for your Rocket League protontricks configuration
Choose Default Prefix

Installed DLLs

  • d3dcompiler_42
  • d3dcompiler_43
  • d3dcompiler_47
  • vcrun2017
  • vcrun2019

Installed Fonts

  • corefonts

Linux 5.4.0-7626-generic
Nvidia 440.82
Proton 5.0-7
Gnome 3.36.1

@DatL4g
Copy link

DatL4g commented Jul 14, 2020

I created a post on Reddit in which everything is explained again and how to work around the performance problem

@BishopT
Copy link

BishopT commented Aug 26, 2020

Works like a charm with GloriousEggroll's proton!
Thank you @DatL4g for spotting that one

And many thanks to all the people who contributed to that version :)

@kescherCode
Copy link

kescherCode commented Jan 19, 2021

Ever since EGS support was introduced, suddenly, I get this dialog on injection (for the Steam version!):
image
Note both x86 and x64 versions of vc_redist are installed in the prefix.

image

Here's a version info screenshot, in case something's off there
image

Here's the injector log, if that is of any use.
injectorlog.log
I wonder what the hell is happening between the last line and the one before it in this excerpt, considering the exit code indicated there is 0:

2021-01-20 00-50-27.320 [Info] (IsSafeToInject) Steam is ready!
2021-01-20 00-50-27.337 [Info] (TimerTimeout) Rocket league process ID is 188
2021-01-20 00-50-27.337 [Info] (SetState) Switching from BAKKESMOD_IDLE (1) to INJECT_DLL (9)
2021-01-20 00-50-32.338 [Info] (TimerTimeout) Trying to inject C:\users\steamuser\Application Data\bakkesmod\bakkesmod/dll\bakkesmod.dll
2021-01-20 00-50-32.474 [Info] (TimerTimeout) Already injected check: 0
2021-01-20 00-50-32.485 [Info] (GetPlatform) Z:\mnt\data\kescher\Steam\steamapps\common\rocketleague\Binaries\Win64\RocketLeague.exe || 0000000140000000
2021-01-20 00-50-32.486 [Info] (DetectRocketLeagueFolder) Could not find steamapps folder, detected 0000000001BA6E80
2021-01-20 00-50-32.486 [Info] (GetSteamRocketLeagueDirFromLog) Found RL dir from log: Z:\mnt\data\kescher\Steam\steamapps\common\rocketleague\Binaries\Win64\
2021-01-20 00-50-32.486 [Info] (GetSteamInstallLocation) Automatically detected Rocket League path using log: "Z:\\mnt\\data\\kescher\\Steam\\steamapps\\common\\rocketleague\\Binaries\\Win64\\"
2021-01-20 00-50-32.486 [Info] (GetSteamVersion) Looking for steam manifest in Z:\mnt\data\kescher\Steam\steamapps\common\rocketleague\Binaries\Win64\..\..\..\..\appmanifest_252950.acf
2021-01-20 00-50-32.486 [Info] (GetSteamVersion) Path contains a manifest file
2021-01-20 00-50-32.486 [Info] (GetSteamVersion) Steam buildID 6066322
2021-01-20 00-50-32.486 [Info] (IsSteamVersionReady) Test 6066322
2021-01-20 00-50-32.486 [Info] (IsSteamVersionReady) Comparing steam buildid 6066322 to 6066322
2021-01-20 00-50-32.505 [Info] (InjectDLL) GetExitCodeThread(): 0
2021-01-20 00-50-32.505 [Info] (InjectDLL) Last error: 0
2021-01-20 00-50-32.636 [Info] (SetState) Switching from INJECT_DLL (9) to INJECTION_FAILED (11)

@Mistra
Copy link

Mistra commented Jan 25, 2021

@kescherCode
Confirmed, i have the same exact problem with the same (pointless) log. I've installed the redist both from ms site and from the protontricks console.
Tomorrow I'll keep on digging.

@JokerGermany
Copy link

JokerGermany commented Jan 30, 2021

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.
Then it would work on windows and every os which is supported by wine...
Wouldn't be more work, but then it would work on linux, too...

@eren-kemer
Copy link

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.
Then it would work on windows and every os which is supported by wine...
Wouldn't be more work, but then it would work on linux, too...

Do you happen to know which date/release this first started not working anymore?
Are there any log entries for the issue?
Maybe i could take a look.

@JokerGermany
Copy link

JokerGermany commented Feb 13, 2021

@eren-kemer
Something around
2020-12-02
https://www.reddit.com/r/bakkesmod/comments/k45z46/crashing_when_game_ends/geeje0c?utm_source=share&utm_medium=web2x&context=3

This should be this commit:
bakkesmodorg/AutoReplayUploader@6638caf
It fixes the crash of the game, but they seems to have implemented a hard coded \

@kentslaney
Copy link

kentslaney commented Feb 22, 2021

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.

@kescherCode
Copy link

@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)

@kentslaney
Copy link

kentslaney commented Feb 22, 2021

@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

@blastrock
Copy link

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 :)

@kescherCode
Copy link

@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, ...)

@sadn1ck
Copy link

sadn1ck commented Apr 21, 2021

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

@blastrock
Copy link

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 / and \ like C:\users\steamuser\Application Data\bakkesmod\bakkesmod/dll\bakkesmod.dll (taken from injectorlog.log) and my injector uses a full unix path. I'll try to patch my injector with the same Windows path to see how it behaves and if it's the source of the problem. Or if you are motivated @sadn1ck please go ahead :)

@ayush123460
Copy link

@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.

@blastrock
Copy link

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.

@kentslaney
Copy link

kentslaney commented Apr 22, 2021

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)

@mgalgs
Copy link

mgalgs commented Apr 24, 2021

Thanks @kentslaney . Where does the dll end up during the BakkesModSetup.exe step? I'm running:

WINEESYNC=1 protontricks -c '~/.steam/steam/compatibilitytools.d/Proton-6.5-GE-2/dist/bin/wine64 /home/mgalgs/src/bakkesmod-on-arch-gist/BakkesModSetup.exe' 252950

but it's just exiting with no output and a return code of 0. Can't find the dll in any of these places:

find ~/.steam/steam/ -name bakkesmod.dll
find /opt/steam/steamapps/compatdata/252950/pfx/drive_c -name bakkesmod.dll

Also, what path are you hard-coding in inject.cpp (ws variable in the wmain function)? Guessing that needs to point to the actual dll on your system?

@kentslaney
Copy link

@fiskenslakt Just published bakkesmod-legendary 2.43-7, can you please update and see if that fixes it?

@fiskenslakt
Copy link

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.

@fiskenslakt
Copy link

fiskenslakt commented Sep 13, 2024

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 wine start command from before gives the same mismatch error output.

@kentslaney
Copy link

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'

@fiskenslakt
Copy link

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.

@kentslaney
Copy link

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'

@fiskenslakt
Copy link

powershell actually starts, I successfully ran dir and saw the contents of the directory

@kentslaney
Copy link

kentslaney commented Sep 13, 2024

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 unexpanded_mod and unexpanded_mod.zip in the following:

Expand-Archive -LiteralPath Z:\home\derek\Games\Heroic\rocketleague\TAGame\CookedPCConsole\mods\unexpanded_mod\unexpanded_mod.zip -DestinationPath Z:\home\derek\Games\Heroic\rocketleague\TAGame\CookedPCConsole\mods\unexpanded_mod

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

Slightly unrelated, but do you see thumbnail previews of the maps when searching in the map loader plugin?

Yes, I do. Not sure what to make of that part yet. Maybe try downloading the latest wine under the Wine Manager tab in Heroic?

Last response of the night, I'll get back to you tomorrow.

@fiskenslakt
Copy link

And clicking on a downloaded map and extracting with powershell still doesn't work even with refreshing the maps list?

Correct.

Does the powershell still launch if you run this instead?

Yes it does.

What happens when you try to extract a zip file from the powershell CLI?

Extracting that last map I told you about earlier in said powershell worked. Was able to load into the map successfully after.

What's the output when you try extracting a map after launching the game with

It actually succeeds, first time I've seen it work. Was able to load into the map successfully right away.
small note: I had to make the "Heroic" lowercase in the /opt path.

Maybe try downloading the latest wine under the Wine Manager tab in Heroic?

hmm, ok I'll try that tomorrow.

@kentslaney
Copy link

Oh, I wasn't expecting that, hold off on updating wine in that case. When you launch heroic via the CLI with heroic and start the game, what does it output as the launch command? Given it works when you launch the game with the command I gave, the problem is probably somewhere in the difference between the two

@fiskenslakt
Copy link

@kentslaney
Copy link

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

@fiskenslakt
Copy link

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.

@kentslaney
Copy link

Try setting PROTON_LOG=1 in the Heroic launch options and check your home directory for the log output

@fiskenslakt
Copy link

do you mean launching Heroic with PROTON_LOG=1 heroic? Or setting that as an environment variable for rocket league in the Heroic UI? I tried both and neither resulted in a log file being generated in my home directory.

@kentslaney
Copy link

kentslaney commented Sep 23, 2024

@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.

@fiskenslakt
Copy link

@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.

@fiskenslakt
Copy link

@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?

@kentslaney
Copy link

@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 BAKKES flag.

@kentslaney
Copy link

@fiskenslakt The AURs have been updated; hopefully I'll turn it into a GitHub workflow at some point

@fiskenslakt
Copy link

Sweet thanks, and yea that'd be neat.

@fiskenslakt
Copy link

Hey @kentslaney, I tried updating your package today and it failed:

:: Downloading PKGBUILDs...
(2/2) bakkesmod-legendary-2.46-1                    [--------------------------------------------------------------------------------------------------------------------------------------------------:: Accept changes? [Y/n]: 
==> Making package: bakkesmod-legendary 2.46-1 (Wed 04 Dec 2024 08:54:07 PM EST)
==> Retrieving sources...
-> Downloading dll-2-0-46.zip...
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
Dload  Upload   Total   Spent    Left  Speed
0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 8747k  100 8747k    0     0  39.6M      0 --:--:-- --:--:-- --:--:-- 39.6M
-> Downloading src-2-0-46.zip...
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
Dload  Upload   Total   Spent    Left  Speed
0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 5721k    0 5721k    0     0  9345k      0 --:--:-- --:--:-- --:--:-- 9345k
-> Downloading loopback-2-46-1.zip...
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
Dload  Upload   Total   Spent    Left  Speed
0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100  8257    0  8257    0     0  35090      0 --:--:-- --:--:-- --:--:-- 35090
-> Found pwshwrapper-05ea332.zip
==> Validating source files with sha256sums...
dll-2-0-46.zip ... Passed
src-2-0-46.zip ... Passed
loopback-2-46-1.zip ... Skipped
pwshwrapper-05ea332.zip ... Passed
==> Making package: bakkesmod-legendary 2.46-1 (Wed 04 Dec 2024 08:54:09 PM EST)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
-> Found dll-2-0-46.zip
-> Found src-2-0-46.zip
-> Found loopback-2-46-1.zip
-> Found pwshwrapper-05ea332.zip
==> Validating source files with sha256sums...
dll-2-0-46.zip ... Passed
src-2-0-46.zip ... Passed
loopback-2-46-1.zip ... Skipped
pwshwrapper-05ea332.zip ... Passed
==> Removing existing $srcdir/ directory...
==> Extracting sources...
-> Extracting dll-2-0-46.zip with bsdtar
-> Extracting src-2-0-46.zip with bsdtar
-> Extracting loopback-2-46-1.zip with bsdtar
-> Extracting pwshwrapper-05ea332.zip with bsdtar
==> Sources are ready.
bakkesmod-legendary-2.46-1: parsing pkg list...
==> Making package: bakkesmod-legendary 2.46-1 (Wed 04 Dec 2024 08:54:11 PM EST)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> WARNING: Using existing $srcdir/ tree
==> Starting build()...
==> Entering fakeroot environment...
==> Starting package()...
build version string: BC2_Update53+467296.200.2.46.1
shunted winuser calls for DLL patch: ('0xd3a61', '0xd51cc')
==> ERROR: A failure occurred in package().
Aborting...
error: failed to build 'bakkesmod-legendary-2.46-1':

Is it an issue on my side? If it's relevant, I update/maintain AUR packages with paru.

@kentslaney
Copy link

kentslaney commented Dec 5, 2024

@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 ~/.cache/paru/bakkesmod-legendary), you can delete these lines from the PKGBUILD file, and retry the install with makepkg -sf with the repo directory as the cwd. I'm pretty certain that will solve your issue, but if you want more information, you can remove the 2> >(grep --color=NEVER mismatch >&2) part to see which part of the powershell install is failing.

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.

@fiskenslakt
Copy link

fiskenslakt commented Dec 5, 2024

I was curious, so I just removed the last part to see the error, and it was this:

==> Starting package()...
build version string: BC2_Update53+467296.200.2.46.1
shunted winuser calls for DLL patch: ('0xd3a61', '0xd51cc')
/home/derek/.cache/paru/clone/bakkesmod-legendary/PKGBUILD: line 163: warning: Heroic flag BAKKES is set to 0
warning: Heroic flag PROMPTLESS is set to 0
/home/derek/.config/heroic/tools/wine/Wine-GE-Proton8-26/bin/wine: No such file or directory
==> ERROR: A failure occurred in package().
Aborting...

Bizarrely, that path does exist..

❯ ls ~/.config/heroic/tools/wine/Wine-GE-Proton8-26/bin/wine
/home/derek/.config/heroic/tools/wine/Wine-GE-Proton8-26/bin/wine

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

@kentslaney
Copy link

@fiskenslakt I've just updated the package so that it will only attempt the powershell install if it hasn't been done already

@NitrOP7674
Copy link

@kentslaney Thank you for your work on this, it's making my life a lot easier trying to move off Windows!

bakkesmod-steam works perfectly for me, but I can't get bakkesmod-legendary to work. I am pretty new to arch, so I might be missing something obvious, but I couldn't get it to work either before or after the latest season patch. When I removed the pipe to grep as mentioned above, I'm seeing the following error. Any ideas?

==> Starting package()...
build version string: BC2_Update53+467296.200.2.46.2
shunted winuser calls for DLL patch: ('0xd3a61', '0xd51cc')
Proton: No compat data path?

Thanks again!

@kentslaney
Copy link

kentslaney commented Dec 7, 2024

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. Also, are you running on a steam deck or a desktop?

@NitrOP7674
Copy link

Just to double check, you're using the heroic launcher to run the Epic version, correct?

Yes. I have an Epic account in addition to a steam account.

Can you check that the wine version that you're using in the game settings for me please?

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:

Downloading Powershell Core
0128:fixme:urlmon:InternetBindInfo_GetBindString not supported string type 20
012c:err:winediag:process_attach Failed to load libgnutls, secure connections will not be available.
012c:err:secur32:SECUR32_initSchannelSP no schannel support, expect problems
0128:fixme:urlmon:DownloadBSC_OnStopBinding No cache file
download failed==> ERROR: A failure occurred in package().

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!

@kentslaney
Copy link

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 bakkesmod-legendary package again too. I'd be a little surprised if that was the issue though, since the error looks like a network problem, possibly related to one of these. If you don't need the bakkesmod workshop map plugin, you can just delete the lines causing the problem, following the instructions from here.

It might be nice to remove that dependency at some point too, but one thing at a time.

@NitrOP7674
Copy link

If you don't need the bakkesmod workshop map plugin, you can just delete the lines causing the problem, following the instructions from here.

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests