Daggerfall Unity 0.10.26 crash on Linux Mint
- jefetienne
- Posts: 170
- Joined: Thu Jan 16, 2020 8:14 pm
- Location: Gallomont, Wayrest
- Contact:
Daggerfall Unity 0.10.26 crash on Linux Mint
I am super happy to see how far we've come along in this new update. That being said, I'm having troubles with the Linux build - it only loads the sky and nothing else. There are also some debug files in the zip archive.
- Interkarma
- Posts: 7247
- Joined: Sun Mar 22, 2015 1:51 am
Re: Daggerfall Unity 0.10.26 crash on Linux Mint
I ran the Linux build on my test Linux notebook earlier without any issues, not sure what the problem is there. I'll spin it up again in a VM when I can later today.jefetienne wrote: ↑Tue Sep 22, 2020 3:48 am I am super happy to see how far we've come along in this new update. That being said, I'm having troubles with the Linux build - it only loads the sky and nothing else. There are also some debug files in the zip archive.
All the builds are created and packaged directly from git via Unity Cloud Build. I don't know any way to strip those debug files at this time.
- jefetienne
- Posts: 170
- Joined: Thu Jan 16, 2020 8:14 pm
- Location: Gallomont, Wayrest
- Contact:
Re: Daggerfall Unity 0.10.26 crash on Linux Mint
Hmm, that's odd. If/when you test with your VM I am experiencing this issue on Linux Mint 19.3 Cinnamon.
- Interkarma
- Posts: 7247
- Joined: Sun Mar 22, 2015 1:51 am
Re: Daggerfall Unity 0.10.26 crash on Linux Mint
Runs OK in my test VM too. I'm using a fresh install of Ubuntu 20.04.1 LTS. DFU installed via DaggerfallGameFiles method and fresh unzip of 0.10.26.
Maybe try changing game files and deleting settings.ini? Are there any errors in your logs?
Maybe try changing game files and deleting settings.ini? Are there any errors in your logs?
- jefetienne
- Posts: 170
- Joined: Thu Jan 16, 2020 8:14 pm
- Location: Gallomont, Wayrest
- Contact:
Re: Daggerfall Unity 0.10.26 crash on Linux Mint
I looked inside the Player.log and I found a couple errors.
Spoiler!
Last edited by jefetienne on Tue Sep 22, 2020 5:12 am, edited 1 time in total.
- Interkarma
- Posts: 7247
- Joined: Sun Mar 22, 2015 1:51 am
Re: Daggerfall Unity 0.10.26 crash on Linux Mint
Interesting, that would indicate something off with Locale object passed to this method.
Locale is loaded async by default from system properties at startup. Can certainly do a null check here and fallback to say "English (en)" for locale name, but that might cause other issues if system locale not being detected and loaded at startup.
Does this work OK if you download tagged 0.10.26 code and build yourself in your dev environment? You might also need to rebuild addressables beforehand (hit me up in PM if any help needed).
If you step through code in your debugger, is locale.name available in this method?
Edit: And I'll split this conversation into its own Help & Support topic so we don't drown the news topic in tech stuff.
Code: Select all
private string GetLocaleFontKey(Locale locale, DaggerfallFont.FontName fontName)
{
return string.Format("{0}_{1}", fontName, locale.name);
}
Does this work OK if you download tagged 0.10.26 code and build yourself in your dev environment? You might also need to rebuild addressables beforehand (hit me up in PM if any help needed).
If you step through code in your debugger, is locale.name available in this method?
Edit: And I'll split this conversation into its own Help & Support topic so we don't drown the news topic in tech stuff.
- jefetienne
- Posts: 170
- Joined: Thu Jan 16, 2020 8:14 pm
- Location: Gallomont, Wayrest
- Contact:
Re: Daggerfall Unity 0.10.26 crash on Linux Mint
I'll have to look into this later today hopefully (it's 1 AM where I am at hehe) but I'm thinking that this part of the HasLocalizedFont method (the one with only one parameter and is part of the stack trace) looks suspicious:
I feel like one or both of those lines should be wrapped inside a StartCoroutine method or using that task/await C# feature since it probably needs to yield until the operation is complete. Maybe op.Result is still null despite being done.
Code: Select all
public bool HasLocalizedFont(DaggerfallFont.FontName fontName)
{
Locale selectedLocale;
var op = LocalizationSettings.SelectedLocaleAsync; <--------------------
if (op.IsDone) <-------------------
selectedLocale = op.Result;
else
return false;
return localizedFonts.ContainsKey(GetLocaleFontKey(selectedLocale, fontName));
}
- Interkarma
- Posts: 7247
- Joined: Sun Mar 22, 2015 1:51 am
Re: Daggerfall Unity 0.10.26 crash on Linux Mint
Having a search around and found the below similar issue on Android from July.
https://forum.unity.com/threads/localiz ... ce.911558/
Code stripping is disabled in our project settings, so shouldn't be that. Possibly a bug in Unity Addressables or Localization that manifests on your distro.
https://forum.unity.com/threads/localiz ... ce.911558/
Code stripping is disabled in our project settings, so shouldn't be that. Possibly a bug in Unity Addressables or Localization that manifests on your distro.
- jefetienne
- Posts: 170
- Joined: Thu Jan 16, 2020 8:14 pm
- Location: Gallomont, Wayrest
- Contact:
Re: Daggerfall Unity 0.10.26 crash on Linux Mint
It could be. Not sure if this helps either, but I can run the Windows exe fine under WINE.
- Interkarma
- Posts: 7247
- Joined: Sun Mar 22, 2015 1:51 am
Re: Daggerfall Unity 0.10.26 crash on Linux Mint
The following code returns an AsyncOperationHandle.jefetienne wrote: ↑Tue Sep 22, 2020 5:23 am I feel like one or both of those lines should be wrapped inside a StartCoroutine method or using that task/await C# feature since it probably needs to yield until the operation is complete. Maybe op.Result is still null despite being done.
Code: Select all
var op = LocalizationSettings.SelectedLocaleAsync;
Code: Select all
var op = LocalizationSettings.SelectedLocaleAsync;
if (op.IsDone)
Debug.Log(op.Result);
else
op.Completed += (o) => Debug.Log(o.Result);
Thank you jefetienne! I'll let you get some sleep.