Steamuxulation redux

frakswe, I can't find "Leisure Suit Larry: Reloaded" in the Steam store and the "Thomas Was Alone" store page has only Windows and Mac icons. What's the deal with that?
 
Here's my quota for the day

I added most of these, with exception of:
  • Broken Sword 1, Zigfrak: seems a bit too obscure.
  • The Fall, Shovel Knight: Treasure Trove: the HOME=/usr/home/${USER} part needs explanation.
  • The 7th Guest, Lifeless Planet, Leisure Suit Larry: Reloaded, Trine: need to know exact app id.
  • Detective Case and Clown Bot, Drox Operative, Exile's End, The Tiny Bang Story: those "libsteam_api.so: cannot open shared object file" errors are quite suspicious.
  • Noir Syndrome: "line 8: exec: java: not found"? Is it even a Java game?
  • Starbound, UnEpic: somewhat suspicious errors.
 
I added most of these, with exception of:
  • Broken Sword 1, Zigfrak: seems a bit too obscure.
  • The Fall, Shovel Knight: Treasure Trove: the HOME=/usr/home/${USER} part needs explanation.
  • The 7th Guest, Lifeless Planet, Leisure Suit Larry: Reloaded, Trine: need to know exact app id.
  • Detective Case and Clown Bot, Drox Operative, Exile's End, The Tiny Bang Story: those "libsteam_api.so: cannot open shared object file" errors are quite suspicious.
  • Noir Syndrome: "line 8: exec: java: not found"? Is it even a Java game?
  • Starbound, UnEpic: somewhat suspicious errors.

Noir Syndrome is indeed a java game, setting $JAVA_HOME=/usr/local/bin/java gets rid of the error but it still needs "libgdx.so" which appears to be a java gamemaker thing,
source is available: https://libgdx.badlogicgames.com/documentation/hacking/Working from source.html , but i'm not going down that rabbit hole.

i worked around those "libsteam_api.so" with LD_LIBRARY_PATH=$PWD %command% ,
Starbound ,Exile's End,Detective Case & Tiny Bang Story i got going after some faffing around with extra libs.

can't continue providing a list now though since i've tainted the linux environment by bringing in more libs etc.

happy to see Alien Isolation + usb gamepad working though. you and the linux compatability team are awesome :p

Code:
AppID

220780    Thomas Was Alone
57640     Broken Sword 1
259430    Zigfrak
255920    The 7th Guest
261530    Lifeless Planet,
231910    Leisure Suit Larry: Reloaded
 
Well, that's a little bit of a mind-bending exercise...

Use Steam Linux binary to run a Java game using the native Freebsd JVM -> You need a Freebsd libgdx.so.

Use Steam Linux binary to run a Java game using a Linux JVM -> You need a Linux libgdx.so.

It looks like Libgdx bundles a bunch of other open source Java native libraries. Missing libgdx might only be the first of many errors.
 
Yes, layers upon layers upon layers of emulation. We can fiddle with one or two popular games to make them work natively, but otherwise that is simply not scalable.

Use Steam Linux binary to run a Java game using a Linux JVM -> You need a Linux libgdx.so.

That should be bundled with the game as well.
 
Does it have a typical Feral launcher? Any workarounds?
Code:
214490    Alien Isolation__________________    + usb gamepad works
                                            sudo ln -s libpcre.so.1 libpcre.so.3
                                            librtmp.so.0 => not found    https://git.ffmpeg.org/rtmpdump.git
                                            libjpeg.so.8 => not found https://www.ijg.org/files/jpegsrc.v8.tar.gz
                                            libSDL2_image-2.0.so.0 => not found    https://www.libsdl.org/projects/SDL_image/release/SDL2_image-2.0.5.tar.gz

nothing besides that. (afaik)
 
Code:
232790    Broken Age_______________________    LD_PRELOAD=fmodfix.so:${LD_PRELOAD} %command%

needed that extra ${LD_PRELOAD} else game refuses to start with fmodfix.
 
not sure if you asked for the output with command or it was just a friendly advice but here it is anyway:


Code:
frakswe@freebsd:/usr/home/frakswe$ procstat -v 26046 | grep "\.so" | rev | cut -w -f 1 | rev | sort -u
/compat/linux/usr/lib/alsa-lib/libasound_module_pcm_oss.so
/compat/linux/usr/lib/ld-2.17.so
/compat/linux/usr/lib/libasound.so.2.0.0
/compat/linux/usr/lib/libc-2.17.so
/compat/linux/usr/lib/libdl-2.17.so
/compat/linux/usr/lib/libgcc_s-4.8.5-20150702.so.1
/compat/linux/usr/lib/libGL.so.1.7.0
/compat/linux/usr/lib/libGLdispatch.so.0
/compat/linux/usr/lib/libGLX_nvidia.so.440.82
/compat/linux/usr/lib/libGLX.so.0
/compat/linux/usr/lib/libm-2.17.so
/compat/linux/usr/lib/libnvidia-glcore.so.440.82
/compat/linux/usr/lib/libnvidia-tls.so.440.82
/compat/linux/usr/lib/libpthread-2.17.so
/compat/linux/usr/lib/librt-2.17.so
/compat/linux/usr/lib/libSegFault.so
/compat/linux/usr/lib/libX11-xcb.so.1.0.0
/compat/linux/usr/lib/libX11.so.6.3.0
/compat/linux/usr/lib/libXau.so.6.0.0
/compat/linux/usr/lib/libxcb-dri3.so.0.0.0
/compat/linux/usr/lib/libxcb-glx.so.0.0.0
/compat/linux/usr/lib/libxcb-present.so.0.0.0
/compat/linux/usr/lib/libxcb-sync.so.1.0.0
/compat/linux/usr/lib/libxcb.so.1.1.0
/compat/linux/usr/lib/libXcursor.so.1.0.2
/compat/linux/usr/lib/libXext.so.6.4.0
/compat/linux/usr/lib/libXfixes.so.3.1.0
/compat/linux/usr/lib/libXi.so.6.1.0
/compat/linux/usr/lib/libXinerama.so.1.0.0
/compat/linux/usr/lib/libXrandr.so.2.2.0
/compat/linux/usr/lib/libXrender.so.1.3.0
/compat/linux/usr/lib/libXss.so.1.0.0
/compat/linux/usr/lib/libXxf86vm.so.1.0.0
/opt/steam-utils/lib32/fmodfix/fmodfix.so
/usr/home/frakswe/.steam/steam/linux32/steamclient.so
/usr/home/frakswe/.steam/steam/ubuntu12_32/gameoverlayrenderer.so
/usr/home/frakswe/.steam/steam/ubuntu12_32/libsteam.so
/usr/home/frakswe/.steam/steam/ubuntu12_32/steam-runtime_0.20200417.0/usr/lib/i386-linux-gnu/libstdc++.so.6.0.21
Age/lib/libfmodevent-4.42.16.so
Age/lib/libfmodex-4.42.16.so
Age/lib/libSDL2-2.0.so.0
Age/lib/libsteam_api.so
 
Hmm… I forgot Steam puts gameoverlayrenderer.so into LD_PRELOAD as well. That's just an overlay, though. It won't affect anything else.
 
idea wasn't an original one,recently messed around with libstrangle and that's what he did aswell in the script. he mentions this in the readme:
"LD_PRELOAD="libstrangle.so:${LD_PRELOAD}" /path/to/game"
"Might crash if used together with other libs that hijack dlsym, such as Steam Overlay. It seems to work with Steam Overlay when placed at the end of LD_PRELOAD for some reason."
 
Hey, this is awesome! Thanks for all your hard work.

I have a question about Audio. Left 4 Dead 2 and TF2 work fine (well, besides VAC, but otherwise it's fine) and audio is working well. But when I try other games like Torchlight 2, Super Night Riders and MadOut Ice Storm, there is no audio. I tried to add:
Bash:
LD_PRELOAD=${LD_PRELOAD}:fmodfix.so %command%
to the startup options, but same thing, no audio. Do I need extra packages for that?

Also, the fmodfix.so...do I need to pull that down manually from somewhere? I can't find that file on the filesystem anywhere, so I'm wondering if I'm missing that piece?

I have the same issue with linux-unigine-heaven/valley; they launch and work but with no sound. Any ideas?

Keep up the great work!
 
Ah, OK. I just cloned the github repo and that works much better! Borderlands 2 and Dying Light are working now, with audio. I have sound now in Super Night Riders and Torchlight 2 but not in MadOut Ice Storm (using fmodfix.so for those).

As far as Unigine benchmarks, I know about the mute/unmute button at the top, but toggling it did nothing. But it seems to be working now though...maybe my volume was down? Anyway, I thought could have been related issue to the steam games, that's why I asked, but it's fine too now :)
This is awesome, thank you!
 
Hey scratchi ,

apparently you posted this in the Phoronix Forums:

Code:
You can install Steam on Freebsd now! Just found this yesterday and been testing it for a bit: Source games work, but VAC servers crash the game. Left 4 Dead 2 single player is fine and you can join non-VAC server in TF2. Some unity games work, but I don't have sound...could be just my machine. Check this out, it's crazy!

The port and package are games/linux-steam-utils

Well, thank you very much, this gave me an idea why TF2 and HL2 Deatmatch would always crash. I filtered the servers to show "non-secure" servers only and that does work! No crash there! So this goes for the comment

Still under investigation.

It looks like the Steam VAC-servers somehow do not accept this linux-steam-client. So is there a way to fix this? There are very few non-secure servers and they have few players and strange custom maps, so this is a big problem.

I would also like to point out that it would be nice to learn such details and the news, that the port games/linux-steam-utils is actually available now, here in this thread.
 
I would also like to point out that it would be nice to learn such details and the news, that the port games/linux-steam-utils is actually available now, here in this thread.

The port is mentioned in this thread a couple of times. VAC has a sentence in the readme.
 
Sorry I missed that.

VAC has a sentence in the readme

Are you referring to this?

Code:
Valve Anti-Cheat doesn't seem to work properly.

So what can be done about that?

A even more important statement to me is this:

Code:
Due to inherent difficulty of running games on Linuxulator as well as many (most?) native Linux ports being broken garbage in general, only the Source engine games are explicitly supported.

If that is true, what can be done to improve the Linuxulator? Would it not even be better to have an up-to-date Ubuntu-implementation of the Linuxulator rather than a CentOS-implementation which is on top of that lacking behind in the version?
 
Valve Anti-Cheat doesn't seem to work properly.

So what can be done about that?

https://svnweb.freebsd.org/base?view=revision&revision=356494, https://svnweb.freebsd.org/base?view=revision&revision=356945 were done about it (by markj@). Unfortunately, that wasn't quite enough. Some bugs are yet to be found.

A even more important statement to me is this:

Due to inherent difficulty of running games on Linuxulator as well as many (most?) native Linux ports being broken garbage in general, only the Source engine games are explicitly supported.

If that is true, what can be done to improve the Linuxulator?

I'm referring there to Linux ports being consistently not great on Linux itself. Nothing can be done about that from our side. Thus you should not expect everything to work.
 
Last edited:
I'm referring there to Linux ports being consistently not great on Linux itself. Nothing can be done about that from our side. Thus you should not expect everything to work.

What are you saying with "Linux ports being consistently not great on Linux itself"? Is that saying that those Linux Games would not work properly on Linux either? If that were so, how could they then be offered by Steam?
 
What are you saying with "Linux ports being consistently not great on Linux itself"? Is that saying that those Linux Games would not work properly on Linux either? If that were so, how could they then be offered by Steam?
The highlight is:
1. The Linuxulator kernel is not up to date
2. Not all Linux call has been implemented into Linuxulator
3. Lots of missing shared libraries (can be added manually)

So, this means FreeBSD has to improve Linuxulator to support more linux app/games, which is out of scope for this project. To make it works for more games, you may try adding those missing libraries. Or you may test the games and report any bug related to Linuxulator to FreeBSD team.
 
Back
Top