ValveSoftware / Proton

Compatibility tool for Steam Play based on Wine and additional components
Other
24.58k stars 1.07k forks source link

Foundation (690830) #2318

Open Sebastiangperez opened 5 years ago

Sebastiangperez commented 5 years ago

Compatibility Report

System Information

I confirm:

Symptoms

The game has some error related on his translation game's log output said this: ERROR Core GamCLocalizationManager::loadFile JSON parsing error: 3

Also the game hangs after pressing the market button, keeping the music / sound in the background.

Reproduction

Press play on the Steam button

Vavooon commented 4 years ago

@Sebastiangperez Sure, I always erase the prefix and run the game before I try.

MadByteDE commented 4 years ago

@Vavooon the newest winetricks version seems to be faulty again. I tried it on my system & it skips the last step again.

------------------------------------------------------
warning: Wine-Fehler 30713 wird umgegangen -- Manually extracting the 64-bit dlls
------------------------------------------------------
Executing cabextract -q --directory=/home/larsl/.steam/steam/steamapps/compatdata/690830/pfx/dosdevices/c:/windows/temp vc_redist.x64.exe
Executing cabextract -q --directory=/home/larsl/.steam/steam/steamapps/compatdata/690830/pfx/dosdevices/c:/windows/temp /home/larsl/.steam/steam/steamapps/compatdata/690830/pfx/dosdevices/c:/windows/temp/a10
/home/larsl/.steam/steam/steamapps/compatdata/690830/pfx/dosdevices/c:/windows/temp/a10: WARNING; possible 16776 extra bytes at end of file.
Executing cabextract -q --directory=/home/larsl/.steam/steam/steamapps/compatdata/690830/pfx/dosdevices/c:/windows/temp /home/larsl/.steam/steam/steamapps/compatdata/690830/pfx/dosdevices/c:/windows/temp/a11
/home/larsl/.steam/steam/steamapps/compatdata/690830/pfx/dosdevices/c:/windows/temp/a11: WARNING; possible 16976 extra bytes at end of file.

I don't know why they seemingly change the behavior of winetricks for installing vcrun2017 each version, but I guess this might be the issue. You could try to get your hands on the previous version again (8efa7c2d4b96045bf6dec3a4b60be588c4c9a7da4e6de7c010cb6f21e2fb708f).

Vavooon commented 4 years ago

@MadByteDE Thanks for the tip. Could you send me the working winetricksversion though? There is no way to find it by sha256sum.

MadByteDE commented 4 years ago

@Vavooon I was in the same situation after updating winetricks to test why your installation failed. I manually copy pasted the workaround into the latest winetricks script to make it work. Here is the file: Mega or Gist. You'll need to replace your existing winetricks ( usually located in /usr/bin/ ) and make sure that it's executable. This is just meant as a temporary solution, I'll open an issue on the winetricks git page for this.

Vavooon commented 4 years ago

@MadByteDE Sorry, but are you sure it's the correct one? It still says 20200412-next - sha256sum: 61509663b824d72daafec6a95986e5b256e19e0e8ec1d2b7c4e89cf52665d63b when I run it. The translation is not getting fixed too.

MadByteDE commented 4 years ago

@Vavooon I'm so sorry you're right. I replaced it again for testing purposes. Give me a minute, I'll add the correct links to this post.

edit: Mega Gist

Vavooon commented 4 years ago

@MadByteDE Thanks a lot. Unfortunately, I've faced with another issue:

Executing cabextract -q --directory=/home/vavooon/.steam/steam/steamapps/compatdata/690830/pfx/dosdevices/c:/windows/temp vc_redist.x64.exe
Executing cabextract -q --directory=/home/vavooon/.steam/steam/steamapps/compatdata/690830/pfx/dosdevices/c:/windows/temp /home/vavooon/.steam/steam/steamapps/compatdata/690830/pfx/dosdevices/c:/windows/temp/a10
/home/vavooon/.steam/steam/steamapps/compatdata/690830/pfx/dosdevices/c:/windows/temp/a10: WARNING; possible 16776 extra bytes at end of file.
Executing cabextract -q --directory=/home/vavooon/.steam/steam/steamapps/compatdata/690830/pfx/dosdevices/c:/windows/temp /home/vavooon/.steam/steam/steamapps/compatdata/690830/pfx/dosdevices/c:/windows/temp/a11
/home/vavooon/.steam/steam/steamapps/compatdata/690830/pfx/dosdevices/c:/windows/temp/a11: WARNING; possible 16976 extra bytes at end of file.
cp: cannot create regular file '/home/vavooon/.steam/steam/steamapps/compatdata/690830/pfx/dosdevices/c:/windows/system32/ucrtbase.dll': Permission denied
MadByteDE commented 4 years ago

@Vavooon Could you try to run winetricks with root permissions and try again? Forget about running as root.. this shouldn't be done. If that does not help, you could replace the dll files manually by downloading the vcrun installer from https://aka.ms/vs/15/release/vc_redist.x64.exe , extract the .exe with cabextract -q --directory="vcrun2017" VC_redist.x64.exe, extract the a10 and a11 directories and copy paste the dll's (or just the ucrtbase.dll) into ../steamapps/compatdata/690830/pfx/dosdevices/c:/windows/system32 with root permission.

edit: @gverm over at the winetricks git mentioned something about the file not getting replaced properly sometimes. I think this issue will hopefully be adressed soon via winetricks or wine itself.

MadByteDE commented 4 years ago

@Vavooon could you check the owner of ../steamapps/compatdata/690830/pfx/dosdevices/c:/windows/system32/ucrtbase.dll ? seems like for some reason the file has been installed as another user and that's why you can't replace it with your permissions.

Vavooon commented 4 years ago

Eventually it works! Thanks a lot everyone for your help!

So I'd like to write down all the required steps:

  1. Erase wine prefix for the game: rm -rf /home/$USER/.steam/steam/steamapps/compatdata/690830
  2. Run game (use Proton 5.13+, preview branch for now) and let it re-create prefix
  3. Download https://aka.ms/vs/15/release/vc_redist.x64.exe , extract it with cabextract -q VC_redist.x64.exe, then extract ucrtbase.dll from a10 directory inside the exe.
  4. Copy ucrtbase.dll into /home/$USER/.steam/steam/steamapps/compatdata/690830/pfx/drive_c/windows/system32/, confirm replace.
Vavooon commented 4 years ago

@MadByteDE It's owned by my home user, nothing special. I believe it fails to override the file because cp should be executed with -r key or so.

MadByteDE commented 4 years ago

@Vavooon glad it worked now. Alright, good to know. You should add that you probably needed to install vcrun2017 first, then manually replace the ucrtbase.dll, or did it work without the rest?

Vavooon commented 4 years ago

@MadByteDE Actually replacing the file is the only thing required to fix the issues.

leo-polymorph commented 4 years ago

Hi guys, I'm the technical director at Polymorph Games. First of all: thank you very much for the time and effort you put in invastigating those problems, it really helped us!

Since @smirgol reach out on the Steam forum to talk about the glsl compatibility issue we were able to deploy the fix on the preview branch, and it will reach the full content patch coming soon.

I've also been able to investigate the localization file loading issue, and it should be fixed too. What happened is that proton / wine just ignored our request to open the files as utf8 and was feeding us with row data. It was fixed by adding utf8 DOM in all our utf8 files.

I was not able to test the full game loading since I'm only running linux on a virtual machine (so I can't pass the opengl 4.3 check), but if that was really the last issue, the game should work without the vcrun2017 trick (once the new build will go live, version superior to 1.6.22).

Since the game is still in active developpment, I expect there will be other issues in the future. Even if linux is not our top priority, we'd like to still do what we can to make it easier to experiment Foundation on Linux. So don't hesitate to reach out to us on the Steam forum, or in our Discord, that will be the best way to make sure we're aware of new issues or ideas you have to fix the proton experience.

The discord: https://discord.com/invite/foundation I recommand tagging Minotorious#0534 on #techsupport if you have news about the linux build

Cheers!

leinardi commented 4 years ago

@leo-polymorph It's so rare to see a game studio come in this issue tracker and actually offer any kind of help/support, thanks a lot!

mastercoy commented 4 years ago

I didnt knew this game before reading this comment. Your positon towards us, linux gamers, made me want to play it. Thank you and keep up the good work. @leo-polymorph

MadByteDE commented 4 years ago

@leo-polymorph Thanks for supporting us, it really means a lot!

Sebastiangperez commented 4 years ago

@leo-polymorph Great News man , thanks.

aeikum commented 4 years ago

I've also been able to investigate the localization file loading issue, and it should be fixed too. What happened is that proton / wine just ignored our request to open the files as utf8 and was feeding us with row data. It was fixed by adding utf8 DOM in all our utf8 files.

Heya, Wine/Proton dev here. If you can give us more information about this bug we can work to fix it in Wine. Feel free to respond here, or email me at aeikum@codeweavers.com. Thanks!

Sebastiangperez commented 4 years ago

I've also been able to investigate the localization file loading issue, and it should be fixed too. What happened is that proton / wine just ignored our request to open the files as utf8 and was feeding us with row data. It was fixed by adding utf8 DOM in all our utf8 files.

Heya, Wine/Proton dev here. If you can give us more information about this bug we can work to fix it in Wine. Feel free to respond here, or email me at aeikum@codeweavers.com. Thanks!

I love when people work together for a common purpouse, i wish the humans works like this in every field.

leo-polymorph commented 4 years ago

Hey @aeikum , here is the issue: We have an utf8 file, without DOM, 'localization/locales.txt' We open it that way: _wfopen_s(&m_file, "localization/locales.txt", "rt, ccs=UTF-8");

according to MS doc, the file stream should treat it as utf8 encoded source and convert it to UNICODE as reading. This works as expected on Windows.

image

MS Doc: https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/fopen-s-wfopen-s?view=vs-2015

On proton, the system behaves as if we opened the file like this: _wfopen_s(&m_file, "localization/locales.txt", "rt");

As a workaround, we added utf8 BOM to the file, and now proton reads the file as expected. This is not a problem for us to add the BOM, but it's a difference between windows & proton nevertheless.

aeikum commented 4 years ago

@leo-polymorph Understood, thanks very much for the explanation. We'll take a look.

solacelost commented 4 years ago

FWIW, Linux gamers, running the Preview build and running this script to add the UTF-8 BOM against the entire contents of the localization/en directory got the game up and running for me: https://stackoverflow.com/questions/3127436/adding-bom-to-utf-8-files

Vavooon commented 4 years ago

So after I installed the latest update (1.6.24.1028) the game appears to be fully working on Linux without applying any hacks.

Sebastiangperez commented 4 years ago

So after I installed the latest update (1.6.24.1028) the game appears to be fully working on Linux without applying any hacks.

So, i close this issue or i let it open just in case ?

leinardi commented 4 years ago

Please keep it open.

Sebastiangperez commented 4 years ago

Please keep it open. OK!

Gfurst commented 4 years ago

Hello all, first great work on finding the solution for the issue, the game works apparently flawlessly right now. But may I bring the attention that the issue with BOM still persists for modded content, running a batch script seems to have worked for me, I dunno if that's something the developer can change, but let it be known for any other user.

PiotrCW commented 3 years ago

I've sent patches that are meant to fix it to wine: https://source.winehq.org/patches/data/196591 https://source.winehq.org/patches/data/196592

julrich commented 3 years ago

Did anyone else experience that even starting the game seems to fail after a clean install?

Testing on current Proton (6.3-5). This is what I'm greeted by, after starting: grafik

When manually setting the Proton version to 6.3-5, I'm getting a step further, but the game never actually starts :/ grafik

MadByteDE commented 3 years ago

Did anyone else experience that even starting the game seems to fail after a clean install?

Testing on current Proton (6.3-5).

Seems to be an issue with your setup, not with the game itself. Have you tried other games with Proton? You could post your system informations to see if someone can notice anything. My blind guess is an issue with permissions or another wineserver blocking the launch.. I had issues with the Steam flatpak package, if you use it you could try to install Steam from another source. If other games work fine then try to remove the prefix from your steamapps/compatdata directory and try again.

leinardi commented 2 years ago

Just a word of advice: the game does not seem to work anymore if MangoHud is enabled.

I wanted to play it again today after several months of pause and, when I tried to run it, I saw that was not even starting anymore. I wiped the wine prefix and switched different version of Proton but the result was the same. I was about to collect logs to post here while, to add PROTON_LOG=1, I removed the mangohud %command% from my launch options... and the game started correctly.

Not sure who should look into this issue, if @flightlessmango, Proton or @leo-polymorph but I'm available to help anyone interested with logs and tests.

steam-690830.log

Console output ``` GameAction [AppID 690830, ActionID 9] : LaunchApp changed task to ProcessingInstallScript with "" esync: up and running. wine: RLIMIT_NICE is <= 20, unable to use setpriority safely skipping config: /home/leinardi/.config/MangoHud/wine-explorer.conf [ not found ] skipping config: /media/Steam/steamapps/common/Proton - Experimental/files/bin/MangoHud.conf [ not found ] skipping config: /home/leinardi/.config/MangoHud/wine64-preloader.conf [ not found ] parsing config: /home/leinardi/.config/MangoHud/MangoHud.conf [ ok ] skipping config: /home/leinardi/.config/MangoHud/wine-explorer.conf [ not found ] skipping config: /media/Steam/steamapps/common/Proton - Experimental/files/bin/MangoHud.conf [ not found ] skipping config: /home/leinardi/.config/MangoHud/wine64-preloader.conf [ not found ] parsing config: /home/leinardi/.config/MangoHud/MangoHud.conf [ ok ] GameAction [AppID 690830, ActionID 9] : LaunchApp changed task to SynchronizingCloud with "" GameAction [AppID 690830, ActionID 9] : LaunchApp changed task to SynchronizingControllerConfig with "" GameAction [AppID 690830, ActionID 9] : LaunchApp changed task to SiteLicenseSeatCheckout with "" GameAction [AppID 690830, ActionID 9] : LaunchApp changed task to CreatingProcess with "" GameAction [AppID 690830, ActionID 9] : LaunchApp waiting for user response to CreatingProcess "" GameAction [AppID 690830, ActionID 9] : LaunchApp continues with user response "CreatingProcess" /bin/sh\0-c\0PROTON_LOG=1 mangohud /media/Steam/ubuntu12_32/reaper SteamLaunch AppId=690830 -- '/media/Steam/steamapps/common/SteamLinuxRuntime_soldier'/_v2-entry-point --verb=waitforexitandrun -- '/media/Steam/steamapps/common/Proton - Experimental'/proton waitforexitandrun '/media/Steam/steamapps/common/Foundation/foundation.exe' -fullscreen\0 Game process added : AppID 690830 "PROTON_LOG=1 mangohud /media/Steam/ubuntu12_32/reaper SteamLaunch AppId=690830 -- '/media/Steam/steamapps/common/SteamLinuxRuntime_soldier'/_v2-entry-point --verb=waitforexitandrun -- '/media/Steam/steamapps/common/Proton - Experimental'/proton waitforexitandrun '/media/Steam/steamapps/common/Foundation/foundation.exe' -fullscreen", ProcID 114988, IP 0.0.0.0:0 chdir /media/Steam/steamapps/common/Foundation ERROR: ld.so: object '/media/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/media/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/media/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/media/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object 'libMangoHud.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored. ERROR: ld.so: object '/media/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/media/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/media/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. pid 114993 != 114990, skipping destruction (fork without exec?) GameAction [AppID 690830, ActionID 9] : LaunchApp changed task to WaitingGameWindow with "" GameAction [AppID 690830, ActionID 9] : LaunchApp changed task to Completed with "" Game process updated : AppID 690830 "PROTON_LOG=1 mangohud /media/Steam/ubuntu12_32/reaper SteamLaunch AppId=690830 -- '/media/Steam/steamapps/common/SteamLinuxRuntime_soldier'/_v2-entry-point --verb=waitforexitandrun -- '/media/Steam/steamapps/common/Proton - Experimental'/proton waitforexitandrun '/media/Steam/steamapps/common/Foundation/foundation.exe' -fullscreen", ProcID 115186, IP 0.0.0.0:0 Game process removed: AppID 690830 "PROTON_LOG=1 mangohud /media/Steam/ubuntu12_32/reaper SteamLaunch AppId=690830 -- '/media/Steam/steamapps/common/SteamLinuxRuntime_soldier'/_v2-entry-point --verb=waitforexitandrun -- '/media/Steam/steamapps/common/Proton - Experimental'/proton waitforexitandrun '/media/Steam/steamapps/common/Foundation/foundation.exe' -fullscreen", ProcID 115186 Game 690830 created interface STEAMAPPLIST_INTERFACE_VERSION001 / AppList Game 690830 created interface STEAMAPPS_INTERFACE_VERSION008 / Apps Game 690830 created interface STEAMHTMLSURFACE_INTERFACE_VERSION_004 / HTMLSurface Game 690830 created interface STEAMHTTP_INTERFACE_VERSION002 / HTTP Game 690830 created interface STEAMINVENTORY_INTERFACE_V002 / Inventory Game 690830 created interface STEAMMUSICREMOTE_INTERFACE_VERSION001 / MusicRemote Game 690830 created interface STEAMMUSIC_INTERFACE_VERSION001 / Music Game 690830 created interface STEAMPARENTALSETTINGS_INTERFACE_VERSION001 / ParentalSettings Game 690830 created interface STEAMREMOTESTORAGE_INTERFACE_VERSION014 / RemoteStorage Game 690830 created interface STEAMSCREENSHOTS_INTERFACE_VERSION003 / Screenshots Game 690830 created interface STEAMUGC_INTERFACE_VERSION010 / UGC Game 690830 created interface STEAMUSERSTATS_INTERFACE_VERSION011 / UserStats Game 690830 created interface STEAMVIDEO_INTERFACE_V002 / Video Game 690830 created interface SteamController006 / Controller Game 690830 created interface SteamFriends015 / Friends Game 690830 created interface SteamMatchMaking009 / Matchmaking Game 690830 created interface SteamMatchMakingServers002 / MatchmakingServers Game 690830 created interface SteamNetworking005 / Networking Game 690830 created interface SteamUser019 / User Game 690830 created interface SteamUtils009 / Utils Game 690830 method call count for IClientAppManager::GetAppInstallState : 1 Game 690830 method call count for IClientUtils::RecordSteamInterfaceCreation : 22 Game 690830 method call count for IClientUtils::GetSteamUILanguage : 1 Game 690830 method call count for IClientUtils::GetAppID : 24 Game 690830 method call count for IClientUser::GetSteamID : 1 Uploaded AppInterfaceStats to Steam No cached sticky mapping in ActivateActionSet. ```

System settings

leinardi commented 2 years ago

The issue seems to be already fixed on the master branch of MangoHud.

ghost commented 2 years ago

Still can't Launch game in Linux.

willismonroe commented 1 year ago

For some reason this game thinks that my Intel card is active rather than the AMD card in my desktop: image

Other games work just fine in Steam with proton.

Here's the error message from the logfile:

Running on Intel GPU instead of AMD | Foundation detected a dedicated AMD graphics card in your system, however, the currently active card is an integrated Intel GPU.
To play with better performance, please ensure your monitor is connected to the AMD GPU output and not the motherboard iGPU output.

and a copy of the full logfile: https://pastebin.com/Kp24Yj6e