luxtorpeda-dev / packages

Package build scripts and support for luxtorpeda client
https://luxtorpeda.org
zlib License
37 stars 28 forks source link

Prey 2006 crash #231

Closed rea987 closed 3 years ago

rea987 commented 3 years ago

Prey fails to launch on Mint 19.3 As of 30th Jan 2021, Prey (2006) fails to launch via luxtorpeda-dev on Mint 19.3.

To Reproduce Steps to reproduce the behaviour:

  1. Install Prey 2006
  2. Launch Prey to initiate package installation
  3. Right after the installation, the game fails to launch

Expected behaviour Properly launching the game

Additional context

Game installation + package installation + 1st launch attempt: https://gist.github.com/rea987/888b44bde0289a7cf23abfe0a0065fc4

2nd launch attempt: https://gist.github.com/rea987/54bc461a2b1c1a9406b59086e2014560

Usual retail Linux installation of Prey can be launched in the same system even with SDLCL. Removing existing ~/.prey doesn't have an effect.

Edit: ./prey: 43: export: 2006: bad variable name line in the end is peculiar.

NerosTie commented 3 years ago

Tested on my side and everything works perfectly (Arch).

d10sfan commented 3 years ago

Has it worked on that computer before, the lux downloaded version? What's on that line for the prey command it is attempting to execute?

Was anything changed on steam or prey for your system? And you may want to try deleting the ready file and the linux official folder and letting it redo the setup

d10sfan commented 3 years ago

I just tried it again on my system and it worked fine. Line 43 of the prey script talks about a library path update, so your LD_LIBRARY_PATH may not be setup correctly on your system in general.

rea987 commented 3 years ago

I entirely deleted Prey, ~/.steam, ~/.local/share/Steam, ~/.prey, /.cache/luxtorpeda to reinstall Steam, luxtorpeda-dev, Prey and the Prey Linux package on both Mint 19.3 and Ubuntu 20.10, results are the same;

Game installation + package installation + 1st launch attempt: https://gist.github.com/rea987/07ce499aa9dd2b58071e636f15be8ac6

2nd launch attempt: https://gist.github.com/rea987/9599759706663c8971aa157f7ff143d5

However, Manjaro 20.2 launches the game via luxtorpeda-dev just fine: https://gist.github.com/rea987/37dc86d80a95b6e608b60d4707db56c0

Also, I am not sure whether WARNING: Non-portable: path contains uppercase characters: base/home/r/.local/share/Steam/steamapps/common/Prey 2006/linuxdata/ warnings are related. Though, as they happen on Manjaro after passing the point where the game crashes on Mint and Ubuntu, I presume they aren't important.

d10sfan commented 3 years ago

Are there any differences in the file system between those two distros you have installed?

Where are you seeing this error: "WARNING: Non-portable: path contains uppercase characters: base/home/r/.local/share/Steam/steamapps/common/Prey 2006/linuxdata/" I didn't see that in the logs you sent.

What do you see on your line 43 for the prey executable? The one that the launch is complaining about.

Has this worked on your Mint installation before? If so, what has changed?

Also, does the game work if you run the installed version directly in the steam directory after luxtorpeda-dev has set it up?

rea987 commented 3 years ago

Where are you seeing this error: "WARNING: Non-portable: path contains uppercase characters: base/home/r/.local/share/Steam/steamapps/common/Prey 2006/linuxdata/" I didn't see that in the logs you sent.

However, Manjaro 20.2 launches the game via luxtorpeda-dev just fine: https://gist.github.com/rea987/37dc86d80a95b6e608b60d4707db56c0

Has this worked on your Mint installation before? If so, what has changed?

I believe it worked in some point around the time Rune package was introduced. Then I uninstalled it, afterwards it ceased to work. However, I have never tried it on Ubuntu 20.10 installation before, it's a fresh install. Retail installation always works. I have some concerns regarding localization, I will make a native Ubuntu 20.04 installation in US English to make sure this will. Will report you later in this week.

rea987 commented 3 years ago

I installed and fully updated Ubuntu Mate 20.04.2 LTS 64-bit (US English): https://gist.github.com/rea987/571386e72a131d47371ecfe07139233b

Just like Mint Mate 19.3 and Ubuntu Mate 20.10, Prey (2006) fails to launch on Ubuntu Mate 20.04.2:

Game installation + package installation + 1st launch attempt: https://gist.github.com/rea987/86a3c010b8849474b7fa82a9a4c6c50e

2nd launch attempt: https://gist.github.com/rea987/ef9a544ca07846635435f265df77c0bd

Are there any differences in the file system between those two distros you have installed?

Both Manjaro 20.2, Mint 19.3, Ubuntu 20.10 and Ubuntu 20.04.2 have Prey (2006) installed in ~/.local/share/Steam/steamapps/common/Prey 2006. File system of all Linux distros is ext4. Only Manjaro is able to launch.

What do you see on your line 43 for the prey executable? The one that the launch is complaining about.

https://gist.github.com/rea987/99497ee267632da4ed190c96201f76a7 export ORIG_LD_LIBRARY_PATH=${LD_LIBRARY_PATH}

Also Half-Life: Absolute Zero fails to launch on Mint 19.3 and Ubuntu 20.04.2:

Game installation + package installation + 1st launch attempt: https://gist.github.com/rea987/521a5718e19dd44a140406fee2cb1bb6

2nd launch attempt: https://gist.github.com/rea987/05c0a75b75c20933145437df34ddabb5

Following line is peculiar; ./xash3d.sh: 35: export: Zero:/home/r/.local/share/Steam/ubuntu12_32/steam-runtime/pinned_libs_32:/home/r/.local/share/Steam/ubuntu12_32/steam-runtime/pinned_libs_64:/usr/lib/x86_64-linux-gnu/libfakeroot:/lib/i386-linux-gnu:/usr/local/lib:/lib/x86_64-linux-gnu:/lib:/lib/i386-linux-gnu/sse2:/home/r/.local/share/Steam/ubuntu12_32/steam-runtime/lib/i386-linux-gnu:/home/r/.local/share/Steam/ubuntu12_32/steam-runtime/usr/lib/i386-linux-gnu:/home/r/.local/share/Steam/ubuntu12_32/steam-runtime/lib/x86_64-linux-gnu:/home/r/.local/share/Steam/ubuntu12_32/steam-runtime/usr/lib/x86_64-linux-gnu:/home/r/.local/share/Steam/ubuntu12_32/steam-runtime/lib:/home/r/.local/share/Steam/ubuntu12_32/steam-runtime/usr/lib:/home/r/.local/share/Steam/steamapps/common/Half-Life: bad variable name

However, other Luxtorpeda-dev packages that I tried successfully launched.

Quake 3: Arena (ioquake3): https://gist.github.com/rea987/a95c678ca78708e7f70a2dfa75c88793

Unreal Tournament 2004: https://gist.github.com/rea987/55bd25e822511e3101cb5ed142002ab4

Rune Classic: https://gist.github.com/rea987/0ddb64c41adeba5a7d9342b5496da8e0

Serious Sam 2: https://gist.github.com/rea987/374e2c89c4d3b98f227c7190f2a28d41

Warzone 2100: https://gist.github.com/rea987/370ff6621372ecdb93071d96fadc8882

d10sfan commented 3 years ago

The two issues seem to be related in that it seems to have issues with either spaces or characters like -

What happens if you launch Terminal and point it to the steam directory of Prey 2006 and run it directly? Does that work? Not a installed version separate, but the game installed on by luxtorpeda-dev in the steam directory.

rea987 commented 3 years ago

The two issues seem to be related in that it seems to have issues with either spaces or characters like -

Perhaps using " " or ' ' would solve the issue.

What happens if you launch Terminal and point it to the steam directory of Prey 2006 and run it directly?

You mean with LD_LIBRARY_PATH? Can you please post the exact command? I am not really good at such things.

d10sfan commented 3 years ago

For the launch test, do the following:

Then see if the game works for you.

The issue seems to be inside the prey launch script itself,, that is bundled with the game, not one that I control, or something unique to your Linux environment. This will help determine where the issue may be launching it like this.

rea987 commented 3 years ago

Run the following command: ~/.steam/steam/ubuntu12_32/steam-runtime/run.sh ./run-prey.sh

https://gist.github.com/rea987/7d0321cad256661390261675e539422e

I am happy to let you know that this command successfully launched the game without an issue on Ubuntu 20.04.2.

d10sfan commented 3 years ago

Interesting, that seems to point to some sort of pathing issue. Not sure why it works outside of steam but not in Steam. I'm guessing it has something to do with the library paths. What does your steam launch look like? As in how are you launching steam?

Also, you might want to print out your LD_LIBRARY_PATH on steam versus when you run in Terminal.

rea987 commented 3 years ago

What does your steam launch look like? As in how are you launching steam?

https://gist.github.com/rea987/f8a27e940499c84bf63080918ffec6f1

Also, you might want to print out your LD_LIBRARY_PATH on steam versus when you run in Terminal.

Again, sorry for being noob but I will ask for exact command if possible.

d10sfan commented 3 years ago

Probably the simplest way to do that is to edit the prey shell script (inside linuxdata) and after line 40 add the following lines

echo "$PREY_DATA_PATH"
echo "$LD_LIBRARY_PATH"

Then run the game inside steam and outside steam (using the command I gave you earlier) and send the results here.

d10sfan commented 3 years ago

This may also point to some issue with your system and 32-bit engines. The two you mentioned as not working are both 32-bit.

You can see this list here: https://luxtorpeda-dev.github.io/packages.html

For more if you want to compare, the ones that show "NO" on the 64-bit column are 32-bit engines.

rea987 commented 3 years ago

Probably the simplest way to do that is to edit the prey shell script (inside linuxdata) and after line 40 add the following lines

Following is the edited shell script of the game; notice lines 41 to 44, ~/.local/share/Steam/steamapps/common/Prey 2006/linuxdata/prey:

https://gist.github.com/rea987/f6bd0a9a00e8468be2ed2d854212991e

outside steam (using the command I gave you earlier)

The game runs fine;

https://gist.github.com/rea987/7791729221b52aa22ce8855499ae9562

Then run the game inside steam

The game still fails to launch when launched from Steam,

1st attempt: https://gist.github.com/rea987/285d91db1d25a13bd47187ec767e8c41

2nd attempt: https://gist.github.com/rea987/26321dca76ea38a066525ec3046a2c3b

Now, ./prey: 46: export: 2006: bad variable name line points 3 line later than the original due to added lines. Also, /home/r/.local/share/Steam/ubuntu12_32/steam-runtime/pinned_libs_32:/home/r/.local/share/Steam/ubuntu12_32/steam-runtime/pinned_libs_64:/usr/lib/x86_64-linux-gnu/libfakeroot:/lib/i386-linux-gnu:/usr/local/lib:/lib/x86_64-linux-gnu:/lib:/lib/i386-linux-gnu/sse2:/home/r/.local/share/Steam/ubuntu12_32/steam-runtime/lib/i386-linux-gnu:/home/r/.local/share/Steam/ubuntu12_32/steam-runtime/usr/lib/i386-linux-gnu:/home/r/.local/share/Steam/ubuntu12_32/steam-runtime/lib/x86_64-linux-gnu:/home/r/.local/share/Steam/ubuntu12_32/steam-runtime/usr/lib/x86_64-linux-gnu:/home/r/.local/share/Steam/ubuntu12_32/steam-runtime/lib:/home/r/.local/share/Steam/ubuntu12_32/steam-runtime/usr/lib:/home/r/.local/share/Steam/steamapps/common/Prey 2006 line appeared which wasn't originally there and similar to previous Half-Life: Absolute Zero crash:

https://gist.github.com/rea987/521a5718e19dd44a140406fee2cb1bb6 (line 3964)

This may also point to some issue with your system and 32-bit engines. The two you mentioned as not working are both 32-bit.

Rune Classic and Serious Sam 2 lux packages that work are 32 bit. Unreal Gold package which is 32 bit also launches without a problem;

https://gist.github.com/rea987/81ebfb6ad502e692b1a0d89eccea902e

$ file UnrealLinux.bin UnrealLinux.bin: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.4, stripped

d10sfan commented 3 years ago

The addition of those lines was not to try and fix anything, this was just to add some logs to see if there was a difference that was visible.

It looks like this is the culprit: "/home/r/.local/share/Steam/steamapps/common/Prey 2006", this is in the ld_library_path on steam, but not in the non-steam part. Can you check your launch options in steam as well?

Also, try editing the prey script to add quotes to see if that fixes it:

export ORIG_LD_LIBRARY_PATH="$LD_LIBRARY_PATH"
rea987 commented 3 years ago

Also, try editing the prey script to add quotes to see if that fixes it:

export ORIG_LD_LIBRARY_PATH="$LD_LIBRARY_PATH"

That let me to successfully launch Prey via Steam;

https://gist.github.com/rea987/c745442019b40af062e074f477901921

Editing 43rd line of the original prey shell script with quotation marks as you instructed did the trick.

https://gist.github.com/rea987/41f5005b6d37de68dc33b8b62ff1e9f0

Can you check your launch options in steam as well?

I don't have any launch option for Prey or Half-Life: Absolute Zero. Speaking of which, I usually use __GL_THREADED_OPTIMIZATION=1 %command% launch option for OpenGL games on my system. Does using Steam's game launch option for luxtorpeda games have an affect or shall I edit respective luxtorpeda scripts for that?

As, Prey problem can be solved right now, how about Half-Life: Absolute Zero? Also, why don't Arch based distros need quotation marks whereas Ubuntu based distros do?

d10sfan commented 3 years ago

Those arguments like GL_THREADED_OPTIMIZATION should work fine in launch options, without having to touch any luxtorpeda configuration

I pushed up a change (https://github.com/luxtorpeda-dev/packages/commit/cbb8d1a0e74401bdfa313714d73d170105418625) which bypasses the original prey launch script and fixes the library path so it should work. I'm guessing there's some difference in the shell environment or locale with Ubuntu.

It looks like Absolute Zero has the same issue, where it's doing an export of the library path. I fixed it in https://github.com/luxtorpeda-dev/packages/commit/cb07ef66018e7d44a143c83c100151f0596c52e7

Let me know here if you run into any further issues with these two. You should be able to launch the game as normal again on Steam, and it'll download the new assets automatically.

Jpxe commented 3 years ago

I also have a similar problem. I can launch Prey from run-prey.sh but not from Steam. If I launch it from Steam it will just crash immediately, after that run-prey.sh will also crash. But if I first run setup-prey.sh and then run-prey.sh, the game will launch.

d10sfan commented 3 years ago

@ToughGuyKunio Once you manually run the setup-prey script, are you then able to run the game through steam after that?

If so, that may mean that you had a ready file that was blocking it, from a failed setup attempt. If you delete it, that should force it to run again.

Jpxe commented 3 years ago

No It won't launch from Steam, only from terminal.

d10sfan commented 3 years ago

@ToughGuyKunio Ok, if you launch steam in terminal, it should output what is going on in the terminal window. If you put that into a file and upload it here, I can look over the log and see what may be going on.

Jpxe commented 3 years ago

It actually started one time now when I launched steam from the terminal. Very strange. Tried it again and it crashed. Here's the crash output: https://gist.github.com/ToughGuyKunio/129818f7fcd27c13ca27fafeee1f7e63

d10sfan commented 3 years ago

@ToughGuyKunio

Looks like this is the issue:

SDL is using audio backend 'pulseaudio'.
allocated a mix buffer of 32768 bytes
SDL_AudioSpec: 44100 freq, S16LSB, 2 channels, 512 samples.
Opening audio device...
Assertion 'm' failed at ../pulseaudio/src/pulse/mainloop.c:940, function pa_mainloop_iterate(). Aborting.
signal caught: Aborted
si_code -6

Seems like something happened when it tried to launch the audio. It randomly is happening to me as well now, when I haven't seen this before, which makes me think this is a new issue possibly related to a steam update.

I have been working on a new version of the compatibility tool using the new container-based runtime, you can try it out if you want by downloading the alpha 33. Then pick Luxtorpeda (Runtime) for the game.

For me, I haven't been able to replicate the issue with the new runtime version, so that should be a good fix.

Jpxe commented 3 years ago

I tried the Luxtorpeda (runtime) with the new release and it seems Prey crashes sometimes and work sometimes. I've made gists from both outputs down below. I don't think I got all output from the working one since it printed so many "empty read" lines that the terminal history got cut short

Crash with runtime outuput: https://gist.github.com/ToughGuyKunio/f3436d324ffc45f3214d99818a48374a Working with runtime output: https://gist.github.com/ToughGuyKunio/7506e0e52a7a67eb65b20e0e821fc0a2

d10sfan commented 3 years ago

@ToughGuyKunio Interesting, it seems to be that same audio crash. I am unable to replicate, it may be some issues with your host system's audio stack, although not sure what that could be.

Sadly there's not much that can be done that I know of since it's failing inside the closed source binary.

Out of curiosity do you have any issues with quake 4 or doom 3, if you own those? Those use the same engine, although doom 3 uses an open source implementation.

You may also want to try pipewire, if you're using pulseaudio directly.

Jpxe commented 3 years ago

Doom 3 works fine but Quake 4 also crashes immediately. But it's not the same error message as Prey as far as I can tell?

Quake 4 crash output: https://gist.github.com/ToughGuyKunio/ddec1f9512b02116e2c106e6333b5e28

I'll see if I can test pipewire next, thanks for the tip.

Jpxe commented 3 years ago

I uninstalled Pulseaudio and installed Pipewire. Quake 4 seems to work every time now.

Prey is still hit and miss. giving the same error message when it fails. Still calling it pulseaudio for some reason (pactl info shows pipewire).

SDL is using audio backend 'pulseaudio'.
allocated a mix buffer of 32768 bytes
SDL_AudioSpec: 44100 freq, S16LSB, 2 channels, 512 samples.
Opening audio device...
Assertion 'm' failed at pulse/mainloop.c:921, function pa_mainloop_iterate(). Aborting.
signal caught: Aborted
si_code -6
Please post the following data to https://bugzilla.icculus.org/ ...

I think I'll stick to using Proton for these two games, the native versions, even when they work, give me sub 60 fps performance and they run much better with proton. Thanks for all your help!

d10sfan commented 3 years ago

@ToughGuyKunio In the quake 4 log for some reason it seemed the first time the install failed. But at least the rest of them seemed to work.

And yeah sdl would still see it as pipewire, if you've got the whole pipewire pulse thing installed, which lets pipewire take over and mimic pulse.

I wish they had open sourced those two games' engine versions as well, since the original versions have issues. There is someone working on a mod of sorts for quake4 to the open source engine, once that gets better I may see if that's an option.

And not a problem, happy to help