Pidgeot / python-lnp

Cross-platform re-implementation of the Lazy Newb Pack launcher.
ISC License
65 stars 10 forks source link

Starting PyLNP from Steam fails (linux) #75

Closed Pidgeot closed 4 years ago

Pidgeot commented 4 years ago

Info: Lazy Newb Pack 04024r2-x64 with PyLNP 0.9.5a from bitbucket. Kubuntu linux 14.10 stderr.txt and stdout.txt empty

I added PyLNP as a "Non-steam game" to my library in steam to let my friends know I'm playing dwarf fortress. I tried adding the binary directly and also the "startlnp" script but get the same issue with both.

It doesn't seem to show the GUI when launching it from steam. I can see the PyLNP process using 100% of one processor core but other than that nothing happens and I have to terminate it to end the program.

This is a trivial issue, since it works fine when run directly, and I understand if you won't accept this as a bug.

[Issue created by eq_tolbin: 2015-03-06]

[Comment created by eq_tolbin: 2015-03-06] I downloaded the source and copied it into the lazy newb pack folder. I then changed the shortcut in steam to run launch.py instead of the PyLNP excecutable. Good news! It's working now.

I feel a bit silly that I didn't think of trying this from the start. I'm perfectly happy with this solution. Thanks!

[Comment created by Pidgeot: 2015-03-06] I am unfortunately not able to get Steam running in my VMs, so I can't attempt to reproduce this myself.

However, looking at the Steam issue tracker, I found this bug report: Error causing multiple games to crash: ERROR: ld.so: object 'gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded: ignored.

This indicates that Steam might be causing the problem, so I'm going to close this issue for now. If Steam fixes that issue and PyLNP still doesn't work, let me know and I'll consider re-opening it.

One possible workaround would be downloading the source code for PyLNP and running that instead of the binary. It is possible that Steam doesn't play nice with PyInstaller-created binaries (which PyLNP is); running the Python script might avoid the crash. You'll need to install python-tk from your package manager before you can run PyLNP from source code.

[Comment created by eq_tolbin: 2015-03-06] I can launch kcalc, amarok and a few others from within steam without any problems.

I tried disabling the steam overlay in options and running PyLNP from steam again. Got the same error as before.

Searched for the error and found some info on Steam runtime issues. Tried to remove the runtime libs that cause issue on arch linux but it didn't have any effect.

[Comment created by Pidgeot: 2015-03-06] It would make a lot of sense that it can't do that, since the overlay, AFAIK, only works with OpenGL applications (and PyLNP is just a plain desktop application), but a lack of overlay support shouldn't entirely prevent the program from launching...

Can you launch other, non-OpenGL programs as non-Steam games (e.g. a calculator?) If not, that would indicate a problem with Steam.

[Comment created by eq_tolbin: 2015-03-06] I started steam from the console so I could see steams output log. I get this when I try to start PyLNP from steam.

ERROR: ld.so: object '/home/username/.steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.

I don't know for sure but maybe it's trying to add the steam overlay to the program and failing.

[Comment created by Pidgeot: 2015-03-06] I certainly cannot reproduce the issue on Windows, so this seems to be an issue with Linux specifically (or rather, the Steam version of Linux).

I'll see if I can get Steam running in a Linux VM and make some tests, but something tells me this issue might not really be fixable on my part.