fufexan / nix-gaming

Gaming on Nix
MIT License
577 stars 55 forks source link

osu-lazer crash on startup #185

Closed Luk45135 closed 5 months ago

Luk45135 commented 6 months ago

When trying to run osu-lazer-bin from the terminal it closes with no output. but when i run /nix/store/1cg7hzjvbxvi4hmb2xhaf4lxjbzphv52-osu-lazer-bin-2024.519.1/lib/osu/osu! it gives me this error:

Process terminated. Couldn't find a valid ICU package installed on the system. Please install libicu (or icu-libs) using your package manager and try again. Alternatively you can set the configuration flag System.Globalization.Invariant to true if you want to run with no globalization support. Please see https://aka.ms/dotnet-missing-libicu for more information.
   at System.Environment.FailFast(System.String)
   at System.Globalization.GlobalizationMode+Settings..cctor()
   at System.Globalization.CultureData.CreateCultureWithInvariantData()
   at System.Globalization.CultureData.get_Invariant()
   at System.Globalization.CultureInfo..cctor()
   at System.Globalization.CultureInfo.get_CachedCulturesByName()
   at System.Globalization.CultureInfo.GetCultureInfo(System.String)
   at System.Reflection.RuntimeAssembly.GetLocale()
   at System.Reflection.RuntimeAssembly.GetName(Boolean)
   at osu.Framework.Development.DebugUtils+<>c.<.cctor>b__14_0()
   at System.Lazy`1[[System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].ViaFactory(System.Threading.LazyThreadSafetyMode)
   at System.Lazy`1[[System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].ExecutionAndPublication(System.LazyHelper, Boolean)
   at System.Lazy`1[[System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].CreateValue()
   at osu.Framework.Development.DebugUtils.get_IsNUnitRunning()
   at osu.Framework.RuntimeInfo..cctor()
   at osu.Framework.RuntimeInfo.get_OS()
   at osu.Framework.Host.GetSuitableDesktopHost(System.String, osu.Framework.HostOptions)
   at osu.Desktop.Program.Main(System.String[])
zsh: IOT instruction (core dumped)

setting DOTNET_SYSTEM_GLOBALIZATION_INVARIANT to 1 doesn't help it just gives me:

No usable version of libssl was found
zsh: IOT instruction (core dumped)
Luk45135 commented 6 months ago

It also seems like they switched to SDL3 #27815

Reckfullies commented 6 months ago

For me it also just fails to launch with no error message in the terminal at all. Checking lazer's log file, it says that it can't find libGL or vulkan on the system, so it fails to create a window and renderer.

I'm pretty sure my system is fine, previous versions of lazer and other opengl/vulkan games still work fine. So I'd guess it is related to the SDL changes they made in the latest update.

I'd bet you are getting the same error as me. The error you posted is unrelated to the actual problem, it only showed that error because you executed it without the wrapper script which provides libraries like libicu and others.

Check the log files inside your osu folder, which is typically at /home/user/.local/share/osu/logs unless you changed the location manually.

Reckfullies commented 5 months ago

Upstream has released a hotfix that reverts the SDL3 update, 2024.521.2, because it was causing issues on Windows too and broke some tablet input stuff. So everything should be working fine again once the package is updated here.

If they switch back to SDL3 again in the future, we will simply need to package SDL3 for Nix and provide that to get it working. I managed to package SDL3 yesterday and got lazer 2024.519 working perfectly. Unfortunately, nixpkgs doesn't seem to have an SDL3 package yet, so I had to do it myself. Won't be needed for now though.

Luk45135 commented 5 months ago

Upstream has released a hotfix that reverts the SDL3 update, 2024.521.2, because it was causing issues on Windows too and broke some tablet input stuff. So everything should be working fine again once the package is updated here.

Kinda expected something like this as SDL3 is still a preview (if I'm looking at the right source) . If they switch back to SDL3 again in the future, we will simply need to package SDL3 for Nix and provide that to get it working. I managed to package SDL3 yesterday and got lazer 2024.519 working perfectly. Unfortunately, nixpkgs doesn't seem to have an SDL3 package yet, so I had to do it myself. Won't be needed for now though.

I'm excited for if SDL3 gets implemented and is stable tho as it should bring improvements to Linux, Vulkan, Wayland and Pipewire.

Luk45135 commented 5 months ago

Fixed with 36d3115d7707e0f99b42e89ed7bb9ad88ad102e8