Open alice-mkh opened 6 years ago
Has this worked before for you?
I don't remember, I think I never tried it in this configuration before. It does work on X11 session though, I tried yesterday.
Looks like known issue https://steamcommunity.com/app/250900/discussions/0/133256240741213021/?ctp=2
Oh wow.
Because I can get the game to start if I go to the DLC and deinstall Afterbirth+..
But this one is different for me, since it doesn't work without it as well.
There's multiple issues in the thread, some of which fixed. Looks like XWayland issues persist
Might be worth it to check for libraries under installation directory. If they're bundling something Wayland-aware but buggy, that could explain things
Seems the only library they bundle is libsteam_api.so
also, running the game manually outputs:
bash-4.4$ ./run-x64.sh
./isaac.x64: error while loading shared libraries: libGLU.so.1: cannot open shared object file: No such file or directory
in both sessions.
Do you get the same error with X11?
Looks like it's supposed to be in Steam runtime https://github.com/ValveSoftware/steam-runtime/blob/master/packages.txt
Do you get the same error with X11?
in both sessions.
Any chance of sharing what is in the shell script, btw?
...The Binding of Isaac Rebirth cat run-i386.sh
#!/bin/sh
export LD_LIBRARY_PATH="lib32:$LD_LIBRARY_PATH"
exec "./isaac.i386" "$@"
...The Binding of Isaac Rebirth cat run-x64.sh
#!/bin/sh
export LD_LIBRARY_PATH="lib64:$LD_LIBRARY_PATH"
exec "./isaac.x64" "$@"
...The Binding of Isaac Rebirth
The lib32
and lib64
dirs contain libsteam_api.so
.
Hm. Those look more or less innocent. It's allowing Steam runtime to be used just fine
Could you please run ldd still on the binaries from within Flatpak container?
bash-4.4$ ldd isaac.i386
linux-gate.so.1 (0xf7eee000)
libGL.so.1 => /app/lib/i386-linux-gnu/libGL.so.1 (0xf7e64000)
libGLU.so.1 => not found
libX11.so.6 => /app/lib/i386-linux-gnu/libX11.so.6 (0xf7d0e000)
libXxf86vm.so.1 => /app/lib/i386-linux-gnu/libXxf86vm.so.1 (0xf7d06000)
libXrandr.so.2 => /app/lib/i386-linux-gnu/libXrandr.so.2 (0xf7cf7000)
libXi.so.6 => /app/lib/i386-linux-gnu/libXi.so.6 (0xf7ce3000)
libopenal.so.1 => /app/lib/i386-linux-gnu/libopenal.so.1 (0xf7c2e000)
libpthread.so.0 => /app/lib/i386-linux-gnu/libpthread.so.0 (0xf7c0f000)
libsteam_api.so => not found
librt.so.1 => /app/lib/i386-linux-gnu/librt.so.1 (0xf7c04000)
libdl.so.2 => /app/lib/i386-linux-gnu/libdl.so.2 (0xf7bfc000)
libstdc++.so.6 => /app/lib/i386-linux-gnu/libstdc++.so.6 (0xf7a6e000)
libm.so.6 => /app/lib/i386-linux-gnu/libm.so.6 (0xf7970000)
libgcc_s.so.1 => /app/lib/i386-linux-gnu/libgcc_s.so.1 (0xf7951000)
libc.so.6 => /app/lib/i386-linux-gnu/libc.so.6 (0xf77b5000)
libGLX.so.0 => /usr/lib/i386-linux-gnu/libGLX.so.0 (0xf7791000)
libXext.so.6 => /usr/lib/i386-linux-gnu/libXext.so.6 (0xf777a000)
libGLdispatch.so.0 => /usr/lib/i386-linux-gnu/libGLdispatch.so.0 (0xf7719000)
libxcb.so.1 => /app/lib/i386-linux-gnu/libxcb.so.1 (0xf76ea000)
libXrender.so.1 => /app/lib/i386-linux-gnu/libXrender.so.1 (0xf76dc000)
libatomic.so.1 => /app/lib/i386-linux-gnu/libatomic.so.1 (0xf76d0000)
/lib/ld-linux.so.2 (0xf7ef0000)
libXau.so.6 => /app/lib/i386-linux-gnu/libXau.so.6 (0xf76ca000)
bash-4.4$ ldd isaac.x64
linux-vdso.so.1 (0x00007fffe4ec1000)
libGL.so.1 => /usr/lib/x86_64-linux-gnu/libGL.so.1 (0x00007fa879d55000)
libGLU.so.1 => not found
libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007fa879c12000)
libXxf86vm.so.1 => /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1 (0x00007fa879c0b000)
libXrandr.so.2 => /usr/lib/x86_64-linux-gnu/libXrandr.so.2 (0x00007fa879bfe000)
libXi.so.6 => /usr/lib/x86_64-linux-gnu/libXi.so.6 (0x00007fa879beb000)
libopenal.so.1 => /usr/lib/x86_64-linux-gnu/libopenal.so.1 (0x00007fa879b33000)
libpthread.so.0 => /usr/lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fa879b13000)
libsteam_api.so => not found
librt.so.1 => /usr/lib/x86_64-linux-gnu/librt.so.1 (0x00007fa879b09000)
libdl.so.2 => /usr/lib/x86_64-linux-gnu/libdl.so.2 (0x00007fa879b04000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fa879972000)
libm.so.6 => /usr/lib/x86_64-linux-gnu/libm.so.6 (0x00007fa8797dd000)
libgcc_s.so.1 => /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fa8797c3000)
libc.so.6 => /usr/lib/x86_64-linux-gnu/libc.so.6 (0x00007fa87960b000)
libGLX.so.0 => /usr/lib/x86_64-linux-gnu/libGLX.so.0 (0x00007fa8795d7000)
libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007fa8795c2000)
libGLdispatch.so.0 => /usr/lib/x86_64-linux-gnu/libGLdispatch.so.0 (0x00007fa879509000)
libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007fa8794dc000)
libXrender.so.1 => /usr/lib/x86_64-linux-gnu/libXrender.so.1 (0x00007fa8794cf000)
libatomic.so.1 => /usr/lib/x86_64-linux-gnu/libatomic.so.1 (0x00007fa8794c5000)
/lib64/ld-linux-x86-64.so.2 (0x00007fa879e07000)
libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007fa8794c0000)
I'm so going to write ldd helper at some point that will use Steam runtime so you don't get the bogus errors about missing libraries that are actually in Steam runtime...
Uh. Looks like I never remembered you ask you for a file listing inside those lib32 and lib64 directories.
The lib32 and lib64 dirs contain libsteam_api.so.
Agh. Looks like I'm blind. I'm assuming it still doesn't work, right?
Not that this resolves your issues (since I would also prefer using native) but it works really well through Proton.
Yeah... I don't really have any better ideas for playing the game since at this point I have no idea what's going on. The only thing I know their forums are full of people complaining this game doesn't work with Wayland.
I'd be interested in seeing the output of an strace. I have a feeling that it's likely relying on some userland for drawing to X, I've seen similar things before in other titles (Stellaris)
I have to add that this issue also affects non flatpaked steam.
EDIT: a possible solution is to run isaac via proton
I'm so going to write ldd helper at some point that will use Steam runtime so you don't get the bogus errors about missing libraries that are actually in Steam runtime...
In all recent Steam Runtime versions, you can use ~/.steam/root/ubuntu12_32/steam-runtime/run.sh ldd $some_binary
(if you are using the Flatpak, get a shell inside the container and run this from there).
I have to add that this issue also affects non flatpaked steam.
If a bug is reproducible by launching the game from inside the non-Flatpak Steam client, please report it to https://github.com/ValveSoftware/steam-for-linux/issues/ and/or to the game's developer.
also, running the game manually outputs:
bash-4.4$ ./run-x64.sh ./isaac.x64: error while loading shared libraries: libGLU.so.1: cannot open shared object file: No such file or directory
If you are running this from the shell inside the Flatpak container, it is not necessarily expected to work. The game is probably relying on being launched in the Steam Runtime LD_LIBRARY_PATH
environment (if you run it from inside Steam, this happens automatically).
[non-recommended debugging command deleted]
The Steam Runtime is definitely meant to include libGLU.so.1
for both word sizes. The 64-bit version is ~/.steam/root/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libGLU.so.1
and the 32-bit version is is ~/.steam/root/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libGLU.so.1
.
@smcv that (invoking Steam runtime run) is not enough and please never tell anyone to use that. There's tons of quirks in app entrypoint that simple are not used unless you use it. Eg Steam Cloud is not functional and chat is broken from many regions.
Going via https://github.com/ValveSoftware/steam-for-linux/issues/6233 to https://steamcommunity.com/app/250900/discussions/0/133256240741213021/?ctp=4#c133258092236470196 it looks like there is a bug in Binding of Isaac:
The game crashes if the Inhibit method of the 'org.freedesktop.ScreenSaver' dbus service is not available.
The Flatpak app exposes that service from your real D-Bus session bus to Steam and games, if available. So if that bug still exists, Binding of Isaac will either work or crash, depending on whether your desktop environment (outside the Flatpak app!) has that API available.
that's not enough
Sure, but it's at least more informative than running the app manually without the Steam Runtime. (But I've deleted the suggestion to enter the Steam Runtime environment manually; hopefully anyone who knows what they're doing enough to work it out and debug this will have the right expectations.)
That screensaver thing requires some thought. I think ideally that should go through a portal.
In principle the xdg-dbus-proxy
could gain support for diverting messages intended for org.freedesktop.ScreenSaver
to org.freedesktop.portal.ScreenSaver
, I suppose...
Imo it would be good user would actually allow inhibiting screensaver explicitly, that is. That's bad for battery.
When the messages have been diverted off to a portal, the portal can do whatever it wants (including asking for permission to do what the app/game wants), but a necessary first step would be to translate from what the game does (which Flatpak can't really change if the game is doing direct D-Bus calls) to something that will reach the portal.
https://gist.github.com/man0lis/ac5f50d1409954c38681353fb6c6921b might be fine for a simple interceptor
It crashes for me on wayland session despite it has access org.freedesktop.ScreenSaver.Inhibit
.
Surprisingly enough, it works on Xephyr display running on XWayland (with software rendering).
Since no one has mentioned it, and someone else try to run the game in the future and is still facing issues stumbles upon this issue....
Running the game via gamescope allowed the game to run for me. i know it does not fix the underlying issue, but at least i am able to play and capture the gameplay now.
go in into the game's properties on steam, and add gamescope %command%
in the launch options box.
Game information The Binding of Isaac: Rebirth
Distribution name and version where applicable Fedora Silverblue 28 and 29
Flatpak info
Problem description Game doesn't run, without any visible errors.
Output:
Does this issue reproduce with native Steam Have not tested