You can sign up to get a daily email of our articles, see the Mailing List page!

A look at the Penumbra Collection on Linux with Mesa in 2020

By - | Views: 11,168

When I switched to using Linux full time in the spring of 2007, my first recourse for gaming was either emulation or playing many of my old ported favourites from id Software. It did not take me long to start looking further afield in search of other quality Linux native titles, but in a time when digital distribution was in its infancy, and the Indie revolution that it would bring had not quite started yet, new games were few and far between.

At the same time, a small startup in Sweden was hard at work trying to expand their original Penumbra tech demo into a series of full fledged episodic horror games. The Penumbra Collection would be the ultimate result of that effort, with Linux support being provided by Edward Rudd. It would even go on to have its first instalment included as part of the original Humble Indie Bundle. The game soon caught my eye due to its strong graphics and advanced physics engine.

I have never been one to be frightened by video games, but thanks to its skilful environmental storytelling, strong writing, and accomplished vocal talent, the Penumbra Collection got its hooks into me all the same. Frictional Games would go on to even greater acclaim with the release of Amnesia: The Dark Descent only a few months after I first played, but it is the Penumbra Collection that is always going to hold a special place in my heart.

It pains me to say then, in spite of the still excellent support that Frictional Games gives to our platform, that the state of the Penumbra Collection for a number of Linux users has become such a mess. Ten years on I found myself with little option other than running my old copy of the Penumbra Collection from the now defunct Desura service; the closure of the company’s own storefront leaving no other recourse for those wishing to avoid the use of Steam.

Regardless, the version of the game that I have (1.1.1 released on December 4, 2014) appears even now to be the most recent release of the Penumbra Collection. This includes a number of much appreciated quality of life improvements over earlier versions such as offering support for more modern display resolutions, better audio handling through the use of an improved OALWrapper, and everything being reworked to run on top of SDL2.

 

At first blush the game installed and ran great, right up until I tried to leave the fishing boat at the start of the first episode in the series Penumbra: Overture. Upon attempting to load the next level the game would immediately crash to the desktop; a similar problem occurred upon using the vice at the start of the second episode Penumbra: Black Plague. It did not take long for me to discover that the solution was to build a custom Mesa package yet again.

For whatever reason, the Penumbra Collection will crash when Mesa is built with compiler optimizations applied. This can be mitigated by Arch Linux users through the use of the Arch Build System, or by generating your own Mesa build manually. Either option is far from ideal of course, and while officially the game does only support proprietary vendor drivers, almost all users of both AMD and Intel graphics hardware on Linux will now run into this issue.

Also alarming is that while trying to diagnose the problem I uncovered a separate bug that causes the game to crash when using modern versions of the libvorbis library. My copy of the Penumbra Collection came bundled with an older "libvorbis.so.0" file included in the the game's various "lib" directories, so I was able to sidestep this issue, but it is always a bad sign when a game refuses to run off the libraries that come supplied with your Linux distribution.

Ten years on the Penumbra Collection plays as strong as ever, even if my appreciation for Overture has increased as my over familiarity with Black Plague has lessened its impact. More than any other game, I wish I could go back to 2010 and play these titles with a fresh pair of eyes, especially since solving puzzles in the wrong order can on occasion confuse the narrative. What need do I have for the severed hand of Dr. Eminiss when I already have one in my bag?

Frictional Games are hard at work on their next Amnesia title, and while I know that keeping old games updated can become an aggravating support burden, I do still hope that the developers can come back to the Penumbra Collection, fix up these issues that will continue to plague a growing number of Linux users, and then spread the game to even more stores. To be left with creaking binaries from a shuttered distribution service is disheartening for a game that remains so dear to me.

Article taken from GamingOnLinux.com.
19 Likes, Who?
We do often include affiliate links to earn us some pennies. We are currently affiliated with GOG, Humble Store and Paradox Interactive. See more here.
About the author -
author picture
Hamish Paul Wilson is a free software developer, game critic, amateur writer, and farm labourer living in Alberta, Canada. He is an advocate of both DRM free Linux gaming and the free software movement alongside his other causes, and more information on him can be found at his icculus.org hompage where he lists everything he is currently involved in.
See more from me
25 comments
Page: 1/3»
  Go to:

NeoTheFox 22 May 2020 at 10:21 am UTC
These are my favorite horror games. I've been recently replaying them with my friend who got sucked into frictional games with SOMA. They hold up.
mirv 22 May 2020 at 10:56 am UTC
View PC info
  • Supporter
  • Top Supporter
That is a most curious selection of fixes to get those games running. I'll admit that I've always wanted to play the Penumbra Collection, but....haven't. Too many other distractions.

Still, fixing by disabling mesa optimisations suggests invalid graphics options, not catching the errors on them, and basically just assuming it might all work out ok (which was pretty much how OpenGL development went some years ago to be fair).
I'd be really curious about what they're up to - and if it's a Mesa issue at its core, or a fault of the dev. Kind of hard to say which, even with going through the linked frictional games forum posts (for bonus points because wow I'm apparently distracting myself and immediately looking into all this this stuff). Out of interest, glTexParameter with param=0x2901 suggests that GL_REPEAT is either being used when it's not a valid option, or is being given as a wrong argument.
....hey I wonder if the offending GL calls could be intercepted by a shim layer and fixed up? Kind of like how libstrangle intercepts swap buffer calls. No, I have enough things clamouring for my attention!

It's nice to see current development efforts are looking at mistakes of the past and offering ways around them; SDL2 has many options to work around a lot of issues. So hopefully problems like this will be fewer are further between for future titles.
Linas 22 May 2020 at 11:34 am UTC
View PC info
  • Supporter
  • Top Supporter
These kind of issues with older games on new systems is exactly why we need Linux-runtime containers that Valve are working on in Steam. Otherwise we will lose a lot of great games to bit-rot in no time.

For me personally Penumbras more down to earth "this could happen to you too" setting resonated with me much more than Amnesias more fantasy oriented "it's basically magic" approach. Penumbra: Black Plague is one of my all time favourite games.
mirv 22 May 2020 at 11:41 am UTC
View PC info
  • Supporter
  • Top Supporter
https://github.com/FrictionalGames/HPL1Engine

I don't suppose that's the engine and be compiled to work with the game assets? Because maybe the core Mesa issue could be fixed from within the engine itself. If that's the case, I can try peek into the problem on the weekend.
F.Ultra 22 May 2020 at 12:23 pm UTC
mirvhttps://github.com/FrictionalGames/HPL1Engine

I don't suppose that's the engine and be compiled to work with the game assets? Because maybe the core Mesa issue could be fixed from within the engine itself. If that's the case, I can try peek into the problem on the weekend.

It should be, they release the source to the game back in the day due to the HumbleBundle (if I'm not mistaken releasing the source was one of the requirements for one of their bundles).

There is some external dev activity on their forum: https://www.frictionalgames.com/forum/forum-28.html

And according to the first post there:
QuoteThere is a LOT of code here. 2 libraries and one game. So don't be afraid to discuss and ask questions on pieces of the code. Lets all collaborate and build some documentation for the HPL1 Engine as well as the OALWrapper library. Ideally I would like to see clean documentation appear on the github wiki pages so there is a good reference this codebase.

So the source should not only be for the engine but also for the first game.

Overture have it's own forum for source here: https://www.frictionalgames.com/forum/forum-29.html and it uses the same engine so I think the code is similar and the only difference between the games are scripts but I have not looked into it so I don't really know.
F.Ultra 22 May 2020 at 12:34 pm UTC
I just tested Overture on my Ubuntu 18.04 and I experienced no crashes when leaving the fishing boat, this was using the Steam version so this is most likely due to the game using the Steam runtime.
x_wing 22 May 2020 at 1:12 pm UTC
F.UltraI just tested Overture on my Ubuntu 18.04 and I experienced no crashes when leaving the fishing boat, this was using the Steam version so this is most likely due to the game using the Steam runtime.

Or the issue is with radeon driver. As Hamish has to compile without optimizations, it would be great that he also keep the debug symbols and then generate and core dump with the crash. That way we would know if the crash comes from the heart of Mesa or somewhere else.
mirv 22 May 2020 at 1:15 pm UTC
View PC info
  • Supporter
  • Top Supporter
Well if anyone can replicate it from the asset files from either the steam or gog (windows only) releases, I'll poke my nose in and see if I fix it. I'm fundamentally lazy however, so I'm not going to search through it on my own, and even a savegame or anything to reach the crash point(s) would be appreciated.
mos 22 May 2020 at 3:04 pm UTC
The 1.1.1 ver is available at the storefront if you've previously got it there back in the day.

Gave it a quick go, and was greeted with a black screen, grabbed input, and a hung process to be kill 9'ed... A 20 yo port of UT99 behaves better for me right off the bat literally without any post-install intervention.
Providing an up to date sdl2 helped and the game seems to run fine after that, no crash on leaving the boat.. or after falling down the rabbit hole either.

Ubuntu 20.04, stock kernel/mesa, radeonsi (maybe the crash occurs with amdgpu?)

PS if Hamish's pc info is up to date he must be also using radeonsi, so it could be down to how Arch builds its mesa by default


Last edited by mos on 22 May 2020 at 3:22 pm UTC
x_wing 22 May 2020 at 3:34 pm UTC
mosPS if Hamish's pc info is up to date he must be also using radeonsi, so it could be down to how Arch builds its mesa by default

Amish list a HD6870, which uses radeon driver. But now that you mention Arch builds, you made me recall of this issue:

https://gitlab.freedesktop.org/mesa/mesa/-/issues/2973

So the issue is not with gcc optimization level but with link-time optimizations:

https://git.archlinux.org/svntogit/packages.git/commit/trunk?h=packages/mesa&id=3deacbde16a2a03b5a5e4c69052f4f95b8922a4f

EDIT: Worht mention that this is an issue with gcc 10, with gcc 9 Mesa can be compiled with lto without any problem.


Last edited by x_wing on 22 May 2020 at 3:35 pm UTC
While you're here, please consider supporting GamingOnLinux on Patreon, Liberapay or Paypal. We have no adverts, no paywalls, no timed exclusive articles. Just good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!

You need to Register and Login to comment, submit articles and more.


Or login with...