Daggerfall Unity on Linux with Wayland

Discuss Daggerfall Unity and Daggerfall Tools for Unity.
Post Reply
darrelwatson
Posts: 1
Joined: Fri May 31, 2024 3:30 am

Daggerfall Unity on Linux with Wayland

Post by darrelwatson »

Hello,
I couldn't find anything specific on Wayland. I tried to run Daggerfall Unity and i'm using Wayland and the program would run but I wouldn't see anything. In the terminal I could see Started on Desktop 0 at 0 x 0 by 0 hz.

I thought this might be a Wayland issue and it turns out it is? Maybe. I got Daggerfall Unity running with the following:

SDL_VIDEODRIVER=x11 ./DaggerfallUnity.x86_64

Is there anyone else runs into this issue? How to solve it?

User avatar
Deepfighter
Posts: 141
Joined: Sun Mar 22, 2015 10:24 am
Location: Iliac-Bay
Contact:

Re: Daggerfall Unity on Linux with Wayland

Post by Deepfighter »

It's a well known problem and won't be fixable for the time being (see here).
Head of the German Daggerfall translation - www.daggerfalldeutsch.de
and German translator for The Elder Scrolls V: Skyrim and Lore-Expert for The Elder Scrolls: Online

amylevering
Posts: 1
Joined: Mon Aug 19, 2024 7:00 am

Daggerfall Unity and Linux

Post by amylevering »

So I just went through an ordeal with playing Daggerfall Unity on Linux. When I would try to start it, I would get output that it started on Desktop 0 at 0 x 0 hz. This led me down a rabbit hole but I fislope gamegured it out. It has to do with running Wayland. Daggerfall Unity doesn't seem to work with Wayland out of the box. This is easy to get past though just use XWayland. You can accomplish this by the following:

SDL_VIDEODRIVER=x11 <your daggerfall unity executable>

Just thought I would share this here if anyone else ran into this problem.

User avatar
pango
Posts: 3463
Joined: Wed Jul 18, 2018 6:14 pm
Location: France
Contact:

Re: Daggerfall Unity on Linux with Wayland

Post by pango »

The topic was already mentioned, merging threads.
Mastodon: @pango@fosstodon.org
When a measure becomes a target, it ceases to be a good measure.
-- Charles Goodhart

User avatar
pango
Posts: 3463
Joined: Wed Jul 18, 2018 6:14 pm
Location: France
Contact:

Re: Daggerfall Unity on Linux with Wayland

Post by pango »

On a slightly different topic (but still about obsolescence under Linux), Unity3D 2019.4 may eventually become an issue for development under Linux, because the Editor depends on a library that's no longer even installed by recent distros, but at least that library can still be installed manually (and importantly the Unity games don't depend on it)
https://tooter.social/@pango/112873596335376669
Mastodon: @pango@fosstodon.org
When a measure becomes a target, it ceases to be a good measure.
-- Charles Goodhart

User avatar
pango
Posts: 3463
Joined: Wed Jul 18, 2018 6:14 pm
Location: France
Contact:

Re: Daggerfall Unity on Linux with Wayland

Post by pango »

Not related to Wayland, only to Linux, but I noticed that some mods (like Distant Terrain) fail with a strange exception

Code: Select all

System.TypeInitializationException: The type initializer for 'System.Console' threw an exception
It turns out it's an incompatibility between old versions of mono and the new format terminfo entries. Since we don't really have the opportunity to upgrade the mono version bundled inside Unity 2019.4 player, a workaround is to define TERM to point to some terminfo entry in old format:

Code: Select all

TERM=xterm ./Daggerfall\ Unity.x86_64
source
Mastodon: @pango@fosstodon.org
When a measure becomes a target, it ceases to be a good measure.
-- Charles Goodhart

User avatar
pango
Posts: 3463
Joined: Wed Jul 18, 2018 6:14 pm
Location: France
Contact:

Re: Daggerfall Unity on Linux with Wayland

Post by pango »

I tried setting $TERM from inside DFU as a workaround, but it doesn't seem to prevent the crash :(

Code: Select all

diff --git a/Assets/Game/Addons/ModSupport/ModManager.cs b/Assets/Game/Addons/ModSupport/ModManager.cs
index a4e4d68eb..3de5dd831 100644
--- a/Assets/Game/Addons/ModSupport/ModManager.cs
+++ b/Assets/Game/Addons/ModSupport/ModManager.cs
@@ -779,6 +779,12 @@ namespace DaggerfallWorkshop.Game.Utility.ModSupport
 
             try
             {
+                // Workaround for an incompatibility between the version of Mono bundled with Unity3D 2019.4 and new terminfo format
+                // That trigger an exception inside System.Console   https://github.com/mono/mono/issues/6752
+#if UNITY_STANDALONE_LINUX || UNITY_EDITOR_LINUX
+                System.Environment.SetEnvironmentVariable("TERM", "xterm");
+                Debug.LogFormat("TERM forced to {0}", System.Environment.GetEnvironmentVariable("TERM"));
+#endif
                 assembly = Compiler.CompileSource(source, true);
                 return assembly;
             }
Mastodon: @pango@fosstodon.org
When a measure becomes a target, it ceases to be a good measure.
-- Charles Goodhart

Post Reply