jcnils / protonhax

Run programs inside your game proton's environment.
BSD 3-Clause "New" or "Revised" License
118 stars 7 forks source link

Protonhax loads program but not properly on 5.13 #1

Closed ImpactKaizer closed 3 years ago

ImpactKaizer commented 3 years ago

Wanted to let you know that it works kinda but with 5.13 it runs and closes the program (Cheat engine / Fling Trainer) . On the pluses side it doesn't crash the game anymore if it cannot load this might cause of Steam Runtime Library added to 5.13 container I have no idea how to disable that as of now if you require any additional information do let me know and I'll try my best to assist with this issue.

ERROR: ld.so: object '/home/ahmad/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/ahmad/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/ahmad/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object '/home/ahmad/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
Setting breakpad minidump AppID = 570940
Steam_SetMinidumpSteamID:  Caching Steam ID:  76561198054568248 [API loaded no]

ImpactKaizer commented 3 years ago

Tried with other Game (1150640) Yu-Gi-Oh! Legacy of the Duelist : Link Evolution still the same result

ERROR: ld.so: object '/home/ahmad/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/home/ahmad/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/home/ahmad/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/home/ahmad/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. Setting breakpad minidump AppID = 1150640 Steam_SetMinidumpSteamID: Caching Steam ID: 76561198054568248 [API loaded no]

jcnils commented 3 years ago

Thanks for posting it here.

This error ERROR: ld.so: object '/home/ahmad/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/home/ahmad/.local/share/Steam

It can be ignored https://wiki.archlinux.org/index.php/Steam/Troubleshooting#Wrong_ELF_class

I need to understand what is going on with steam.

Could you please:

Go to /usr/bin/protonhax

And add this on the second line of the file

set -x
exec >/tmp/protonhax.$$.log 2>&1

It will save protonhax debug log into /tmp/protonhax.*.log

To debug what is happening with the game, could you set launch options and add PROTON_LOG=1

It will be something like this PROTON_LOG=1 protonhax init %command%

Once you run the game, there will be a log file of the game in your home directory, named steam-$GAMEID.log

ImpactKaizer commented 3 years ago

Thanks for posting it here.

This error ERROR: ld.so: object '/home/ahmad/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/home/ahmad/.local/share/Steam

It can be ignored https://wiki.archlinux.org/index.php/Steam/Troubleshooting#Wrong_ELF_class

I need to understand what is going on with steam.

Could you please:

Go to /usr/bin/protonhax

And add this on the second line of the file

set -x
exec >/tmp/protonhax.$$.log 2>&1

It will save protonhax debug log into /tmp/protonhax.*.log

To debug what is happening with the game, could you set launch options and add PROTON_LOG=1

It will be something like this PROTON_LOG=1 protonhax init %command%

Once you run the game, there will be a log file of the game in your home directory, named steam-$GAMEID.log

As Requested I added the game log from my home directory if you also need the ones in /tmp/ Dir let me know also.

steam-1150640.log

jcnils commented 3 years ago

Yeah, please. I need more information to understand what is going on with your computer.

Also, besides the protonhax log could you please try to run the game with an version of proton that used to work? (and send the logs too)

ImpactKaizer commented 3 years ago

Sorry for the late reply as the laptop I used got its NVME corrupted and I had to start from scratch . but anyway here are the logs from the tmp DIR and protonhax last worked on 5.0-10 on steam protonhax.3898.log protonhax.4739.log

ImpactKaizer commented 3 years ago

Yeah, please. I need more information to understand what is going on with your computer.

Also, besides the protonhax log could you please try to run the game with an version of proton that used to work? (and send the logs too)

Here are also the logs for a game with lower version of proton 5.0-10 steam-335300.log protonhax.3898.log protonhax.4739.log protonhax.18967.log protonhax.19212.log

vickyorlo commented 3 years ago

Something weird is going on with 5.13, I tried it with Cheat Engine and Monster Hunter World, and got really strange results: Cheat Engine would not launch and protonhax would hang after the following messages:

ERROR: ld.so: object '/home/vic/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/vic/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/vic/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object '/home/vic/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
Setting breakpad minidump AppID = 582010
Steam_SetMinidumpSteamID:  Caching Steam ID:  76561198000702425 [API loaded no]

Monster Hunter World would instead repeatedly show connection errors, making the game unplayable. Normally such an error pops up once and the game goes into offline mode, but here the error would immediately pop up after dismissing it.

CE not launching seems to be consistent with the previous reports, but it interfering with the game is unexpected to say the least.

jcnils commented 3 years ago

Thanks for the uptades, @ImpactKaizer and @vickyorlo.

I will find some time to take a look on those issues this weekend. Maybe add some more information to the logs files.

Also, it would be nice to have the launch options you are using.

@ImpactKaizer, next time could you please put your logs in a gist or pastebin. One of those files is gigantic, and I cannot download it. Don't run the game for long for the steam log, or else you will have a gigantic file.

The logs I read it seems that

protonhax.3898.log protonhax.4739.log Are for 5.13

protonhax.18967.log protonhax.19212.log Are for 5.0

Did any of those games work? Did cheat engine start with any of those games? I saw that you are using 71 and the x86 executable. Did you install it, or are you using the zip version? Also have you tried the other executable? Cheat_Engine.exe instead of x86 ?

@vickyorlo the log you sent doesn't mean much. I need the logs from protonhax and steam. Also, detail the version of Cheat Engine and how you installed it. please refer to the previous messages to understand it better.

but it interfering with the game is unexpected to say the least. That is the purpose of Cheat Engine, isn't ?

Also, if you guys only want to cheat on the game, and are in a hurry, please try Frostworkx SteamTinkerLaunch It will install Cheat Engine properly for you so you can use with the container you run the games.

ImpactKaizer commented 3 years ago

Thanks for the uptades, @ImpactKaizer and @vickyorlo.

I will find some time to take a look on those issues this weekend. Maybe add some more information to the logs files.

Also, it would be nice to have the launch options you are using.

@ImpactKaizer, next time could you please put your logs in a gist or pastebin. One of those files is gigantic, and I cannot download it. Don't run the game for long for the steam log, or else you will have a gigantic file.

The logs I read it seems that

protonhax.3898.log protonhax.4739.log Are for 5.13

protonhax.18967.log protonhax.19212.log Are for 5.0

Did any of those games work? Did cheat engine start with any of those games? I saw that you are using 71 and the x86 executable. Did you install it, or are you using the zip version? Also have you tried the other executable? Cheat_Engine.exe instead of x86 ?

@vickyorlo the log you sent doesn't mean much. I need the logs from protonhax and steam. Also, detail the version of Cheat Engine and how you installed it. please refer to the previous messages to understand it better.

but it interfering with the game is unexpected to say the least. That is the purpose of Cheat Engine, isn't ?

Also, if you guys only want to cheat on the game, and are in a hurry, please try Frostworkx SteamThinkerLaunch It will install Cheat Engine properly for you so you can use with the container you run the games.

Thanks for the reply,

But is a way to disable SLR (steam linux runtime) manually? Wanted to see if it's the that's the cause of it.

Also any EXE with 5.13 it's the same result cause also want to use trainer files.

Cause STL you have to disable SLR to enable CE.

jcnils commented 3 years ago

I don't think the SLR is the cause with protonhax, I just ran a few tests with 5.0, 5.13 and Experimental, and they all worked. The only thing it changes are the parameters steam call to run a game %command% What caused the problem with the old version of protonhax was the position of the command we need to run other .exe

On your logs it seems that it is calling it right, it is supposed to be something like this: /usr/bin/envload /run/user/7890/protonhax/12345/env /home/you/SteamLibrary/steamapps/common/Proton\ 5.13/proton run /home/you/CheatEngine.exe

So it is finding the right proton and calling it. I am not sure what is crashing your games.

That is why I was checking the other logs to see what is going on.

On your log 3898

8 + printf %s '/mnt/Database/SteamLibrary/steamapps/common/Proton 5.13/proton'

It found the right proton

9 + printf %s /mnt/Database/SteamLibrary/steamapps/compatdata/1150640/pfx

It found the right prefix for the game

On your log 4739

  • /usr/bin/envload /run/user/1000/protonhax/1150640/env '/mnt/Database/SteamLibrary/steamapps/common/Proton 5.13/proton' run /mnt/Database/CE71/cheatengine-x86_64.exe

It seems to be calling the right command.

I asked about the STL, so I can filter out the possible reasons for the crash. If it runs there, it is possible to run it here.

Also, to take something out of the way, are you able to open cmd ? protonhax cmd <appid>

Edit: Are you using steam-runtime or steam-native ?

ImpactKaizer commented 3 years ago

I don't think the SLR is the cause with protonhax, I just ran a few tests with 5.0, 5.13 and Experimental, and they all worked. The only thing it changes are the parameters steam call to run a game %command% What caused the problem with the old version of protonhax was the position of the command we need to run other .exe

On your logs it seems that it is calling it right, it is supposed to be something like this: /usr/bin/envload /run/user/7890/protonhax/12345/env /home/you/SteamLibrary/steamapps/common/Proton\ 5.13/proton run /home/you/CheatEngine.exe

So it is finding the right proton and calling it. I am not sure what is crashing your games.

That is why I was checking the other logs to see what is going on.

On your log 3898

8 + printf %s '/mnt/Database/SteamLibrary/steamapps/common/Proton 5.13/proton'

It found the right proton

9 + printf %s /mnt/Database/SteamLibrary/steamapps/compatdata/1150640/pfx

It found the right prefix for the game

On your log 4739

  • /usr/bin/envload /run/user/1000/protonhax/1150640/env '/mnt/Database/SteamLibrary/steamapps/common/Proton 5.13/proton' run /mnt/Database/CE71/cheatengine-x86_64.exe

It seems to be calling the right command.

I asked about the STL, so I can filter out the possible reasons for the crash. If it runs there, it is possible to run it here.

Also, to take something out of the way, are you able to open cmd ? protonhax cmd <appid>

Edit: Are you using steam-runtime or steam-native ?

Thanks for the update, I been using stl and that's why I mentioned it since you need to disable steam linux runtime to get to use cheat engine cause it we'll load just with no access permission in stl and you have to toggle off SLR for you to gain access to cheat engine functionality.

I also use terminal only for protonhax and never used cmd command also not sure what you mean by runtime or native .

jcnils commented 3 years ago

Weird, I never had to disable SLR to have access to other tools.

I asked about the steam-runtime(or steam-manjaro) and steam-native because they are some of the ways to install steam on linux. How did you install your steam? Pacman ?

Also, I asked if you can run cmd just to figure it out if there is any error related or if you can run it properly.

vickyorlo commented 3 years ago

Sorry about not posting logs yet, but I noticed something interesting again: I was playing another game via Steam Remote Play and tried to open Cheat Engine. Doing that made my Steam crash and disconnected the Remote Play session. After restarting Steam, I tried using Cheat Engine without Remote Play and I noticed that it caused the Steam Overlay to stop working. Which makes me think that what this script does somehow interferes with Steamworks - would certainly explain the problems with MHW. I used Proton 5.0-10 for this. Edit: Opening Cheat Engine with Monster Hunter World on Proton 5.0-10 works just fine. I'm not sure if this should be spun off into its own issue or not. Edit 2: Now I cannot reproduce this at all. I'll keep you updated.

jcnils commented 3 years ago

@vickyorlo No worries, do it on your time.

What protonhax does is just figure out the container running the game and send a command to open a file there. This can be done by command line if you know the parameters.

When there was an update to 5.13, it just changed the way it figures out the container. The logs would help to figure out if the commands are right.

There are a few other things that might cause problems, but I am not sure because I never faced anything that people reported. If you are still having problems, I will ask a few questions if you don't mind:

How did you install steam ? How did you "install" cheat engine? Does the cheat engine open with 5.13 ? Also, could you please try to open CMD protonhax cmd <appid>

I am asking those things because everyone has a different environment.

vickyorlo commented 3 years ago

I tried again recently with Sonic Mania and Proton 5.13. Cheat Engine does not open at all. protonhax cmd does open the command line. Here's some logs:

protonhax.345640.log protonhax.346125.log protonhax.346148.log

I'm running Arch, Steam was installed from the repository, CE was not installed per se but is kept around as loose program files (I have done this before on Windows and Linux both, it works)

CE opens just fine on Proton 5.0, logs again.

protonhax.347982.log protonhax.348109.log

jcnils commented 3 years ago

Hi @vickyorlo , thanks for the logs.

It seems that it is calling the right commands for cmd, proton 5.0 and 5.13.

But I don't know what is causing your problem with 5.13

If you want to do some more tests I suggest a few things.

1 - once you start the game try to run the command from terminal (this is just for the game 584400) /usr/bin/envload /run/user/1000/protonhax/584400/env '/home/vic/.local/share/Steam/steamapps/common/Proton 5.13/proton' run /mnt/Utsuho/_home/tools/Cheat Engine 7.2/cheatengine-x86_64.exe Instead of protonhax run

2 - once you start the game go to /mnt/Ran/SteamLibrary/steamapps/compatdata/584400/pfx/drive_c/ put a copy of your cheat engine there, and run using /usr/bin/envload /run/user/1000/protonhax/584400/env '/home/vic/.local/share/Steam/steamapps/common/Proton 5.13/proton' run /mnt/Ran/SteamLibrary/steamapps/compatdata/584400/pfx/drive_c/cheatenginepath/CE.exe - update to your path.

Take note of what messages you see there, it might give us more information of why it is not working.

Is your cheat engine the nosetup options ? The one that comes in a zip folder?

vickyorlo commented 3 years ago

envload:

ERROR: ld.so: object '/home/vic/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/home/vic/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/home/vic/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/home/vic/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. Setting breakpad minidump AppID = 584400 Steam_SetMinidumpSteamID: Caching Steam ID: 76561198000702425 [API loaded no] Exactly the same as protonhax run.

Seems to be some success trying to run it from inside the prefix, though? It doesn't crash, but it throws up access violation errors: image I guess that's progress, though CE obviously doesn't work yet. I can't start a scan - trying to attach to the game just throws an access violation error and does not attach. I even tried installing it from a fresh .exe, still same problem.

jcnils commented 3 years ago

ERROR: ld.so: object Those errors are steam/linux related. https://wiki.archlinux.org/index.php/Steam/Troubleshooting#Wrong_ELF_class

The minidump part might have more information on why it crashed.


Can you please try using the CE from zip ? https://www.cheatengine.org/downloads.php , look for the text if you wish to have the raw files without any configuration of file access permission by the setup click here. and download from there.

Also, try to remove 5.13 from steam and install it again. Or try Experimental.


Two more things that you can try to debug is to run the steam game using lutris, and try to run cheat engine there.

Another thing to try is the SteamTinkerLaunch, it will download and install CE for you on the right place and right permissions.

Those might help figure out what is the problem.

It doesn't seem that the problem is with protonhax because its whole reason is to get this command right /usr/bin/envload /run/user/1000/protonhax/584400/env '/home/vic/.local/share/Steam/steamapps/common/Proton 5.13/proton' run what-needs-to-run-here

It seems that the command was right.

I will close this issue for now. But we can still use here to help you debug your problem.

If we discover that it is something that I can add to protonhax in the future to make people's lives easier I reopen and add the feature to the code.