shkhln / linuxulator-steam-utils

Steam launcher for FreeBSD
MIT License
126 stars 12 forks source link

Empire Total War for Linux is playable #80

Closed BostonBSD closed 2 years ago

BostonBSD commented 2 years ago

Empire Total War for Linux starts up and plays like normal. It appears nearly the same as on a Linux system, it's not quite as smooth as on Windows with the same hardware, but perfectly playable.

I do have some sort of odd issue with steam-utils though. When it starts up I get the message below in the terminal. The steam windows open like normal, but I cannot click on anything. I need to press control-C in the terminal {look at the last line} to end the process, steam doesn't exit, but proceeds to operate like normal. Everything is functional and clickable.

It looks like an authentication problem, it's probably my own fault though. Maybe something with polkit.

System startup time: 4.92 seconds
BuildCompleteAppOverviewChange: 117
RegisterForAppOverview 1: 6ms
RegisterForAppOverview 2: 6ms
Installing breakpad exception handler for appid(steam)/version(1642451672)
Could not connect to X session manager: Authentication Rejected, reason : None of the authentication protocols specified are supported and h
                                                            ��&

Installing breakpad exception handler for appid(steam)/version(1642451672)
Warning: failed to set thread priority: set failed for -10: -1: setpriority() failed
Installing breakpad exception handler for appid(steam)/version(1642451672)
Warning: failed to set thread priority: set failed for -10: -1: setpriority() failed
^CCould not connect to X session manager: Authentication Rejected, reason : None of the authentication protocols specified are supported and h
shkhln commented 2 years ago

10500? Currently titled "Total War: EMPIRE - Definitive Edition".

Could not connect to X session manager: Authentication Rejected, reason : None of the authentication protocols specified are supported and h

…ost-based authentication failed

BostonBSD commented 2 years ago

10500? Currently titled "Total War: EMPIRE - Definitive Edition".

Yes that's it.

... The terminal doesn't print out "ost-based authentication failed" although I would assume that is what was meant. Maybe a font issue, the terminal is UTF8.

shkhln commented 2 years ago

Yes that's it.

Noted.

BostonBSD commented 2 years ago

I think I figured out a workaround. Starting steam like this appears to prevent this issue: LD_PRELOAD={$LD_PRELOAD}:monofix.so steam

LD_PRELOAD=${LD_PRELOAD}:monofix.so steam

shkhln commented 2 years ago

That does precisely nothing.

BostonBSD commented 2 years ago

That does precisely nothing.

Lol. It appears to be a sporadic issue.
After several restarts it works unreliably.

If I could reproduce the problem reliably, I could give you more information.

Three out of five restarts using the stated command does work as intended. Zero out of several restarts using just "steam" works as intended.

Perhaps I should assume after a single restart the shell script somehow changes the environment variables for subsequent restarts? This may explain something.

I should note that starting "Total War" directly without setting any environment variables or entering into the steam platform first nearly always works as intended [and when I exit the game the steam platform also works as it should].

This post is only referencing the steam platform itself without anything else.

BostonBSD commented 2 years ago

I fixed this message:

(steam:64489): GdkPixbuf-WARNING **: 23:18:32.413: Cannot open pixbuf loader module file '/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache': No such file or directory

This likely means that your installation is broken.
Try running the command
  gdk-pixbuf-query-loaders > /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache
to make things work again for the time being.

By running this: /compat/linux/usr/bin/gdk-pixbuf-query-loaders-32

And copying the output to: /compat/linux/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache

===== Now it also tells me:

Installing breakpad exception handler for appid(steam)/version(1642451672)
Warning: failed to set thread priority: set failed for -10: -1: setpriority() failed
Installing breakpad exception handler for appid(steam)/version(1642451672)
Warning: failed to set thread priority: set failed for -10: -1: setpriority() failed
[2022-02-14 23:31:37] Background update loop checking for update. . .
[2022-02-14 23:31:37] Checking for available updates...
[2022-02-14 23:31:37] Downloading manifest: https://cdn.akamai.steamstatic.com/client/steam_client_ubuntu12
^CInstalling breakpad exception handler for appid(steam)/version(1642451672)
[2022-02-14 23:32:07] Download skipped: /client/steam_client_ubuntu12 version 1642451672, installed version 1642451672, existing pending version 0
[2022-02-14 23:32:07] Nothing to do

Notice that it enters into a background update loop, which I never waited around for previously. If I cancel out of that loop with a control-C, steam becomes responsive and works as it should.

If I start a game directly I am willing to bet that either the loop completes the update before I finish the game or never enters the update loop.

The update loop might not start on every platform startup, which may explain the difficulty in reproducing this issue.

I also noticed that the shell script tries to call the "lspci" command

sh: lspci: command not found

Which obviously wouldn't work because that is a GNU/Linux command and we're using FreeBSD. If this message were coming from a BSD shell script, which I think it isn't.
I think it is coming from a Linux script, but the CentOS userland does not have an lspci command. The Ubuntu userland does have an lspci command [the alternative linux compat userland], which I am not using for steam-utils.

I also get this message:

ERROR: ld.so: object 'steamfix.so' from LD_PRELOAD cannot be preloaded: ignored.

That also might have something to do with this.