ValveSoftware / steam-runtime

A runtime environment for Steam applications
Other
1.19k stars 86 forks source link

Ren'py based Novels on 64bit fedora 25 #68

Open adityashah1212 opened 7 years ago

adityashah1212 commented 7 years ago

I noticed that when running a ren'py based novel a 64bit fedora 25, the game does not start. If I run the game a setting launch options to RENPY_PLATFORM=linux-i686 %COMMAND% it works. Although if I try to run the game directly by locating it in steamapps folder by running RENPY_PLATFORM=linux-x86_64 '/home/xxxx/.steam/steam/steamapps/common/Sepia Tears/sepiatears.sh' it works. I am using Xorg based gnome desktop with NVIDIA GeForce 740M card and proprietary drivers from Negativo17 repo, with STEAM_RUNTIME enabled. My guess here is that ren'py detects 64bit linux and tries to run in 64bit mode but steam-runtime fails to satisfy the runtime requirements and game crashes (though there are no log files in the game directory, probably since it never reached the execution state). I don't know if steam supports 64bit linux runtime or not, but if it doesn't then there should a inbuilt workaround in steam itself to force the game to run in 32bit mode. I have noticed this happen with CUPID - A free to play Visual Novel, Trick and Treat - Visual Novel, Sepia Tears and One Thousand Lies.

kisak-valve commented 7 years ago

Hello @adityashah1212, please copy your system information from steam (Steam -> Help -> System Information) and put it in a gist, then include a link to the gist in this issue report. Additionally, please include /tmp/dumps/<username>_stdout.txt after trying to run a renpy game from steam. If this log is not available, then completely close steam, then run steam from a terminal to get the same terminal spew.

adityashah1212 commented 7 years ago

Ok I get a crash when I open system information in steam, I am able view it until click on the window to copy, here is stdout for that aditya_stdout.txt and the crash dump assert_20170128103744_1.zip Looking at the stdout there seems to be an issue with communication with dbus

To next point of the stdout for the game aditya_stdout.txt Here it seems python is unable to find pygame_sdl2 module

kisak-valve commented 7 years ago

So, the key detail in the log looks like Could not import pygame_sdl2. My google-fu may not be working very well today, but it looks like a system variant of this package is not available for Fedora 25.

Starting with the 2017-01-19 steam client, we use system libraries when they are available over the steam runtime.

Does running steam with STEAM_RUNTIME_PREFER_HOST_LIBRARIES=0 steam from a terminal allow you to run renpy games from steam? If it does then this issue is an incompatible mix of system and steam runtime libraries.

adityashah1212 commented 7 years ago

That solves the problem yes. But there is a little confusion that I am facing, if it is the problem with library not being present on the distribution shouldn't it automatically fallback to steam-runtime for it, and even bigger question is why is it looking for pygame_sdl2 in system libraries only for 64bit, because it runs fine when I set RENPY_PLATFORM=linux-i686 %COMMAND% in steam launch options, while fails if I set RENPY_PLATFORM=linux-x86_64 %COMMAND%.

adityashah1212 commented 7 years ago

I don't know why steam was crashing yesterday, but here is the System Information

kisak-valve commented 7 years ago

I can confirm this is occurring with Cupid VN on Gentoo linux, steam runtime enabled. Additionally, the game runs without workaround with the steam runtime disabled or with RENPY_PLATFORM=linux-i686. Pygame_sdl2 is bundled with the game along with a fair amount of python 2.7, so it's unclear what is going on here.

kisak-valve commented 7 years ago

So, the issue here is that renpy requires LD_LIBRARY_PATH not find the system's python so that it falls through to the game-bundled variant.

On my system, steam's new behavior with STEAM_RUNTIME_PREFER_HOST_LIBRARIES=1 includes /usr/lib64 in LD_LIBRARY_PATH which pulls system python that may not contain all needed dependencies.

Previously brought to the attention of a renpy dev at https://github.com/renpy/renpy/issues/428#issuecomment-50998879, per-game workaround at comment.

kisak-valve commented 7 years ago

Per discussion on irc, this issue is fixed upstream by https://github.com/renpy/renpy/commit/7e409222f2e8ea2d6cf74d4263e78d6d3a533e7e and is included in 6.99.12 or newer.