Install Steam
login
|
language
简体中文 (Simplified Chinese)
繁體中文 (Traditional Chinese)
日本語 (Japanese)
한국어 (Korean)
ไทย (Thai)
Български (Bulgarian)
Čeština (Czech)
Dansk (Danish)
Deutsch (German)
Español - España (Spanish - Spain)
Español - Latinoamérica (Spanish - Latin America)
Ελληνικά (Greek)
Français (French)
Italiano (Italian)
Bahasa Indonesia (Indonesian)
Magyar (Hungarian)
Nederlands (Dutch)
Norsk (Norwegian)
Polski (Polish)
Português (Portuguese - Portugal)
Português - Brasil (Portuguese - Brazil)
Română (Romanian)
Русский (Russian)
Suomi (Finnish)
Svenska (Swedish)
Türkçe (Turkish)
Tiếng Việt (Vietnamese)
Українська (Ukrainian)
Report a translation problem
WTF. What the hell Steam.
tl;dr version: run Steam with SDL_AUDIODRIVER=alsa
Long gory version: Turned out that there is a weird interaction between the Ren'py runtime shipped with LLtQ, the PulseAudio libs shipped with Debian (note: I don't even use PA anymore, this is 2024, Pipewire is the new hotness), the Steam Runtime libs, and the specific setup of this old Haswell box (a Dell Optiplex 9020 USFF) that causes PulseAudio to get into the badlands when asked by SDL2 (which in turn is invoked by Ren'py runtime) to initialize audio at startup. Can't really tell WHY, but it took me a few hours to actually identify the guilty here. None of this nonsense happens on my older setup, an Asus K53SD laptop (both are running 64-bit Debian 12, fully up to date including backports)
Ren'py launcher scripts have a neat $RENPY_GDB environment variable you can setup to invoke gdb and debug your game there, but this handy var is UNDOCUMENTED. The proper magical enchant you want is RENPY_GDB="gdb --args" - export that and run Steam with it from a console, then when you try to run your game, it will start GDB instead - type "run" and wait for things to go south, then "bt" will get your precious stacktrace - here is mine: https://paste.rs/Uiqoa
I guess I'll be stashing SDL_AUDIODRIVER=alsa on my initscripts somewhere (I could use "pipewire" too, but many of the Linux builds of the games in my library predate Pipewire for a decade, so...).
Same deal: fresh new Debian 12 setup, LLtQ crashes at start with what it seems to be a malloc() error from deep into the Ren'Py/Python's bowels. Running the whole of Steam via SDL_AUDIODRIVER=alsa fixes things.
Decided to try something else: What about passing the SDL_AUDIODRIVER var through the launch parameters for the specific game? That is, "SDL_AUDIODRIVER=alsa %command%". Surprisingly this does NOT work - the game STILL crashes at start! The entirety of the Steam environment has to be forced to run through ALSA for Ren'Py to not lose its ♥♥♥♥♥♥♥♥♥ mind!
Now I need to figure out why my 12 year old Sandy Bridge laptop can run the game just fine out of the box, but the Debian setup on that one did began life five major releases ago...