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 · 147 comments
Open

Linux compatibility #2

pepinpin opened this issue Jan 2, 2019 · 147 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

kentslaney commented Sep 9, 2024

@fiskenslakt I haven't been able to get plugins working on the steam version either but I haven't looked into it yet. Hopefully I'll get back to you soon with more info.

Proton logs (both missing libraries are in the dll folder)

185581.374:0138:013c:err:module:import_dll Library pluginsdk.dll (which is needed by L"C:\\users\\steamuser\\AppData\\Roaming\\bakkesmod\\bakkesmod\\plugins\\pluginmanager.dll") not found
185767.170:0138:013c:err:module:import_dll Library bakkesmod.dll (which is needed by L"C:\\users\\steamuser\\AppData\\Roaming\\bakkesmod\\bakkesmod\\plugins\\airdribbleplugin.dll") not found

Plugins work again if you change PROMPTLESS to 0 in the launch options, suggesting the problem is that it's using the filename bakkesmod_promptless.dll instead of bakkesmod.dll since the patched instructions are nowhere near the part going wrong.

@fiskenslakt
Copy link

fiskenslakt commented Sep 9, 2024

@kentslaney huh, that seems to have fixed it yea, thanks! What is PROMPTLESS normally responsible for?

edit - Not sure if it's working 100% however, while I was able to install the workshopmaploader plugin, it's very laggy when the plugin is focused and maps fail to download successfully. Console suggests it's failing to extract the map zip file. I haven't tested any other plugins yet.

@kentslaney
Copy link

With the original DLL on desktop, you have to click through this prompt every time you inject BakkesMod
Screenshot from 2024-09-08 19-26-38

It doesn't happen on the steam deck presumably because that version of proton doesn't implement the message box call. dll_patch.py rewrites the function call to MessageBoxA with an instruction to set the return code to 'yes', padded out by noops to keep the address space the same.

@fiskenslakt
Copy link

Oh interesting, I've not seen that prompt, even after setting PROMPTLESS to 0, so I guess it doesn't happen on heroic either?

@fiskenslakt
Copy link

Looks like Speedflip Trainer works, so it might just be Workshop Map Loader that has issues. Trying to redownload a map I've already tried downloading crashes the game entirely it seems.

@kentslaney
Copy link

I don't know whether it is able to verify the version number for the epic games version or if the difference is that it's using wine instead of proton. While checking, I found a mistake in the wine version detection for bakkesmod-legendary (forgot about --wrapper), so I'm going to need to fix some stuff before I can answer your question.

@kentslaney
Copy link

kentslaney commented Sep 10, 2024

It looks like the issue with Workshop Map Loader is that it's trying to launch PowerShell. From the proton logs:

03a0:fixme:powershell:wmain stub.
03a0:fixme:powershell:wmain argv[0] L"powershell.exe"
03a0:fixme:powershell:wmain argv[1] L"Expand-Archive"
03a0:fixme:powershell:wmain argv[2] L"-LiteralPath"

This is in spite of having a copy of powershell.exe (C:\windows\system32\WindowsPowerShell\v1.0\powershell.exe), though its GUI won't launch when I call it directly either. Search results suggest that it's not a unique problem.

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 PROMPTLESS injector (legendary: 2.43-4, steam: 2.43-5), but proton still doesn't work on legendary since the injector is launched on a separate wine server and therefore can't see the process to inject into.

Tentative roadmap:

  • Proton support for Legendary/Heroic (giving up until further notice)
  • powershell.exe
  • (longer term) look into Decky Loader and check whether the ImGUI bindings can be rerouted

@fiskenslakt
Copy link

Interesting, I appreciate you looking into it.

Regarding the PROMPTLESS fix, does that mean setting the env var to 1 will work in 2.43-4?

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.

@kentslaney
Copy link

I've added powershell support to the latest versions (legendary: 2.43-6, steam: 2.43-7) and the plugin window lag seems to have resolved itself.

I can't seem to get the injector running on the same wineserver as proton, and when I launch cmd manually afterwards (setting WINEFSYNC, WINEPREFIX, WINELOADER, WINESERVER, STEAM_COMPAT_INSTALL_PATH, STEAM_COMPAT_CLIENT_INSTALL_PATH, and STEAM_COMPAT_DATA_PATH using proton run cmd), the injector doesn't seem to have any effect. Given that the PROMPTLESS injector is no longer a problem, I'm going to just leave things where they are on proton support for legendary.

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.

@fiskenslakt
Copy link

Thanks again for your work on this @kentslaney. I updated to 2.43-6 but extracting zip files still doesn't work for me for some reason. I also still had the lag when the workshop map plugin was focused. I did come to the quite obvious conclusion that I can just extract them myself via unzip in a terminal. I also manually added and extracted the missing textures and that interestingly fixed the lag.

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.

but I'd appreciate it if you continue to report problems during normal usage @fiskenslakt. Thank you for the feedback you've given already.

Happy to continue reporting on issues as I come across them, and my pleasure.

@kentslaney
Copy link

kentslaney commented Sep 12, 2024

@fiskenslakt even after deleting the wine prefix, I can't seem to reproduce your issue. Could you please reinstall bakkesmod-legendary and paste the output from the package() section? (starts with the build version string) Also, what's the output of this command?

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

@fiskenslakt
Copy link

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

@kentslaney
Copy link

kentslaney commented Sep 13, 2024

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

@fiskenslakt
Copy link

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?

@kentslaney
Copy link

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.

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

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