Hacker News new | past | comments | ask | show | jobs | submit login
The sad case of Unreal Engine 1 on Mesa and Linux in 2020 (gamingonlinux.com)
62 points by Lammy 16 days ago | hide | past | web | favorite | 24 comments

Argh. Unreal engine 1 can be a real pain, even on windows!

Just recently I tried running Deus Ex and had to use the hacked .exe files and a custom graphics mode for it to not have serious issues.

Tim Sweeney said he'd like to release the Unreal 1 source code one day (5 years ago) and it's stuff like this that would be sooooo much better even if we could only get Unreal itself and not further forks like Deus Ex.

(For instance, with doom modding they had to totally reverse engineer STRIFE but it properly works on modern systems now!)

I've been playing Deus Ex from GOG.com on Linux (under Wine) myself and it has worked great.

But I think that an open-source release of Unreal Engine 1 that could potentially give us the power to fix these issues, would be great. The final thing that Deus Ex needs before becoming perfect is an open-source engine (kinda like OpenMW).

> But I think that an open-source release of Unreal Engine 1 that could potentially give us the power to fix these issues, would be great.

It'd also let us mod things way beyond what's reasonably possible by default, port the thing to other CPU architectures, port to other OSes..

I'm quite disappointed that the games industry at large doesn't care about their customers enough to open source their code.

For anyone who missed it, EA just announced that they will release the C++ source code of Red Alert 1. (It's not completely clear whether they will release all of the source.) [0]

You're right though, it's a pity this doesn't happen more often. As we've seen with Quake and classic DOOM, it doesn't even have to amount to a giveaway, as the game assets can remain payware.

[0] https://news.ycombinator.com/item?id=23249964

They might want to avoid 3rd party licensed software issues, and/or possibly in their archaic restricted mindsets, any user enjoying a decades old game ported to current hardware becomes one less customer purchasing a new title.

Check GMDX. Also, The Darkest Mod.

Does it get that bad? I had various issues with UE1 applications but most of the time just adding a modern OGL/DX9/10/11 renderer library solves everything.

I started hacking on this again as well (especially classic Unreal Tournament/UT99). Would love to play some Facing Worlds, but was not able to get it to work on a modern 64-bit MX system w/ nvidia binary drivers.. however, did get UT2004 working! (no sound so far though)

But, heads-up, maybe this will work in your Unreal Engine 1 hacking: the awesome Icculus put together a small tarball of the needed libc5 libraries..


Check out the thread where I found this -- it's quite a read:


And, as much as I hate to say it, reading that old 2005 thread still rings true: Windows apps still tend to work, even 25 years later, but Linux apps don't tend to work even a year or two later. Backwards compatibility hasn't really been a thing in Linux, but it should be.

Also see https://www.smokin-guns.org/ (based on Q3A) and my 64-bit build of it from a few years ago: https://github.com/jamiesonbecker/smokinguns

As far as old windows games are concerned, I've experienced that they often run more stable and performant with wine on linux than on a newer windows version.

> however, did get UT2004 working! (no sound so far though)

It has been some time since I tried, but IIRC UT2004 requires the OSS sound API. It can be emulated with Pulseaudio using `paoss`. This is due to an old version of SDL being shipped. IIRC, deleting the SDL so, or upgrading it works, and also provides other niceties, such as alt-tab support, steam overlay, etc.

There's also a project from Icculus to expose an SDL 1.2 API for SDL2, but I haven't tried it. IIRC his video demonstration used UT2004 on Wayland.

BTW, this is why statically compiling is a bad thing, and LGPL a good one: let users upgrade the libraries :)

Icculus also created this: https://www.icculus.org/ut99-emscripten/

Can Emscripten use existing binaries? Because I thought it needs the original source code (maybe Icculus asked for the source). Combining this with a websocket proxy for networking support makes a really easy way to setup instant LAN parties (no deployment) and in general have a decent way to preserve these games.

Linux has a "fix the source and recompile" mentality to backwards compatibility.

Which, for an open source OS, is honestly not that unreasonable, even if it is frustrating for cases where you have old binaries with no source.

For these old binaries, there probably wouldn't even need to be any source-fixing; a straight recompile would probably be enough.

(Ironically, another poster downthread points out old UE1 apps often don't run on Windows, either, without binary modification, so it's not like MS is squeaky-clean there either.)

Linux (mostly) doesn't have a problem with binary backwards compatibility. It's everything around Linux that is generally the problem.

Linus is adamant about new versions of the kernel not breaking compatibility with userspace. The problem is with the rest of the system.

did the linux kernel system call changes or is it only a problem with libc?

The system calls should be fine; Linux only tends to kill system calls if there are security issues that can't be fixed in a compatible way.

Linux has a hard policy that the kernel should never break userspace.

Sadly, userspace provides no such guarantees.

libc and sdl

I've found that UT99 works incredibly well under wine.

However, what's more awesome is that there's an unofficial update currently in beta (v469) and I can confirm it runs well on modern Linux


I created a Dockerfile to run Unreal Tournament 1 in Linux using Docker. It works quite well.


The most ironic part is that all the failing games are easy to run with Wine.

Now I'm wondering if they'd run better through Wine in WSL.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact