Hi, sorry for the long delay, life got messy and I started doing some digging.
I’ve followed the instructions for building it myself, resulting in a new “citra” folder with an executable in “dist”
When launching from that “citra.desktop” executable… it works! No more crashing on second boot!
And then I went to add citra to my start menu… and found the original start menu shortcut from the flatpack version was still there. Also, trying to make a shortcut for the .desktop file in citra/dist failed repeatedly, so i tested using the command for the original shortcut, “citra-qt %f” instead for this new shortcut… and that worked.
Confused, given there seemed to be no difference between the shortcuts in the menu manager, I tried the original shortcut again… and it crashed my system when i tried to boot a game on citra.
I found that beyond the details in the menu manager, all three of these options (custom citra-qt shortcut, original shortcut, and new citra.desktop file) had their own .desktop file.
So, I looked at the difference between them.
The citra.desktop file from the flatpack is hosted in user/.local/share/applications
The citra.desktop file from the self build is in user/citra/dist
The custom shortcut with just the citra-qt command is in user/.local/share/applications
The only visible difference, other than file location, between the two formal citra.desktop files is that the original shortcut had NoDisplay=False. Removing that didn’t change anything though and that line was in the custom .dektop file as well, which doesn’t result in the crashing behaviour.
As near as I can tell both files execute the exact same command, opening the same program, but one for some reason causes Citra to crash if you open a game after launching the program a second time.
I am able to ignore/disable that original shortcut, however the fact that it remained on my system after removing the program from my system via the package manager, and the fact that it seems to be identical to the new citra.desktop file, still launches citra, but results in crashing, is of concern.
I cannot attach the files so i will be copying and pasting the code via text boxes.
citra/dist/citra.desktop
[Desktop Entry]
Version=1.0
Type=Application
Name=Citra
GenericName=3DS Emulator
GenericName[fr]=Émulateur 3DS
Comment=Nintendo 3DS video game console emulator
Comment[fr]=Émulateur de console de jeu Nintendo 3DS
Icon=citra
TryExec=citra-qt
Exec=citra-qt %f
Categories=Game;Emulator;Qt;
MimeType=application/x-ctr-3dsx;application/x-ctr-cci;application/x-ctr-cia;application/x-ctr-cxi;
Keywords=3DS;Nintendo;
PrefersNonDefaultGPU=true
.local/share/applications/citra.desktop
[Desktop Entry]
Version=1.0
Type=Application
Name=Citra
GenericName=3DS Emulator
GenericName[fr]=Émulateur 3DS
Comment=Nintendo 3DS video game console emulator
Comment[fr]=Émulateur de console de jeu Nintendo 3DS
Icon=citra
TryExec=citra-qt
Exec=citra-qt %f
Categories=Game;Emulator;Qt;
MimeType=application/x-ctr-3dsx;application/x-ctr-cci;application/x-ctr-cia;application/x-ctr-cxi;
Keywords=3DS;Nintendo;
PrefersNonDefaultGPU=true
NoDisplay=false
.local/share/application/alacarte-made-946d2d8a-aebd-11ec-ac54-a947073cf5d4.desktop
[Desktop Entry]
Name=Citra
Exec=citra-qt %f
Comment=
Terminal=false
Icon=citra
Type=Application
NoDisplay=false
If there is any further followup I can do to help understand this bug and work towards a solution for those encountering it in future, do let me know.