07th-mod / 07th-mod/higurashi-assembly
Linux GNOME desktop environment crash / corrupted configuration file issue
- Dominant language
- C#
- Stars
- 12
- Forks
- 12
- PR merge metrics
- No merged PRs in 30d
Description
Recently a user reported that when they start the game using a GNOME desktop (default for Ubuntu), they would get a window with infinite height, and the game wouldn't startup (black screen)
----
Working configurations:
- XFCE
- bspwm (on Artix linux)
- Ubuntu 20.04 (I assume GNOME)
Not working configurations:
- Ubuntu 19.10; GNOME 3.34.x, x in [0..3], depending on component; proprietary nVidia drivers version 440; Steam beta.
- Ubuntu 18.04 (I assume GNOME)
----
I only tested Ubuntu using XFCE because GNOME had the same problem reported where the window would be infinitely tall and the game wouldn't startup.
The big problem with the GNOME problem is that it will remain, even if you uninstall the game, presumably because the messed up config file is in your ~.config/unity/... folder which never gets cleared unless you go and delete it
So even if the end user re\-installs the un\-modded game, it will still be stuck like that on GNOME. This may make it seem like it's not our mod causing the issue, when (I'm....pretty sure?) it is (see end of the discussion on discord below).
GNOME is the default desktop environment for Ubuntu, which I assume will make up many of our linux users.
I'm raising this in the higurashi\-patch\-compiler section because afaik the writing to the config file is done in the modified .dll. But the actual 'solution' could be just a fix in the installer, the .dll might not need to be modified.
Here was the discussion on discord (names omitted and edit for clarity):
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
Never had mono throw issue with my previous errors
BTW did you read how I got higurashi working nativly on gnome?
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
Install xfce?
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
You had to force it in fullscreen iirc
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
Launch the game in full screen mode
and mark the config read only
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
because after the game quits it sets the screenmanager to be windowed again.
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
That is strange, there's a fullscreen option in the settings
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
there's 2
1
768
1365
0
1080
1920
768
1
1365
screenmanager gets set to 0 after reboot causes the game to first start in window and then swaps to full
however as you progress to later chapters that also becomes a problem
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
I think the game has issue with gtk 3 in windowed mode
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
One of these is a Unity setting (the screenmanager thing), the other one is something MG added but what the hell for?
:thonk:
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
the height of the window always goes infinite beyond chapter 3
I've seen the config height being set to negative numbers or really high numbers
If I swap to windowed mode right now the game would crash my gnome\-shell
oh and the same happens in openbox
that's another desktop
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
Not just that
if you use proton
the same thing happens
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
One would assume that this would be the testing configruation, especially since Steam only officially supports Ubuntu
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
As you know I have used both.
Then later by @tellowkrinkle :
\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
Ugh the reason the full screen works like that was to work around a separate issue involving the game not choosing the right aspect ratio if it started in full screen on my Linux boot
So I made it so the game modifies the unity config on exit so it starts not full screen, then fullscreens itself once the game starts.
Contributor guide
No contributing guide indexed for this repository
Research direction
The issue involves a Unity game configuration file at ~/.config/unity/... that gets corrupted on GNOME desktops, causing infinite window height and startup failure. Examine the modified .dll that writes the config, particularly the logic that sets screenmanager and resolution values on exit. Test the game on a GNOME environment to reproduce the crash, then trace where the config is written and why it produces invalid height/width values.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp, linux, unity
- Domain
- desktop, game-dev
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100