The snap version doesn't load some cores

Hello, I’ve tried the snap version of RetroArch and have a weird issue: while most cores work fine, some just don’t load at all. When trying to, nothing happens, RetroArch keeps displaying “No core” at the bottom; if one is already loaded, trying to load a “faulty” one keeps the previous one. They appear as installed in the menu (with the # sign on the right) and the .so files are in the cores dir as expected, they’re not 0 bytes files, nothing seems off.

So far, I’ve seen the issue with two cores: Dolphin and Mesen. Not sure if there are others.

Using Xubuntu 21.04 with RetroArch 1.9.3. It already happened with 1.9.2.

I don’t have the same issue with the flatpak version, the same cores work fine.

Is it a known bug? Is there a log somewhere that might show what is happening? I’ve tried to run RetroArch from a terminal but there’s no output that appears when trying to load the cores.

The error it’s having is:

[ERROR] Error(s): /snap/retroarch/515/usr/lib/x86_64-linux-gnu/libstdc++.so.6: version GLIBCXX_3.4.26 not found (required by /home/[redacted]/snap/retroarch/515/.config/retroarch/cores/mesen_libretro.so)

It’s related to a mismatch between the GLIBCXX version on our buildbot and the one used to build the snap. I’m not really sure what to do about it, as I was under the impression it would solve itself once snapcraft.io switched over to bionic for their build farm but that doesn’t seem to be the case :confused:

Oh, ok. So I guess I’ll have to stick with the flatpak version.

Have you tried contacting the snap mainteners? I see that there are similar issues on their forum (like that one)?

Can you try updating to the ‘edge’ channel? I just updated to core20 (up from core18) to see if that would resolve this.

With the edge build, when I run RetroArch, I have a message about a missing lib:

/snap/retroarch/555/usr/local/bin/retroarch: error while loading shared libraries: libpulsecommon-13.99.so: cannot open shared object file: No such file or directory

At OS level on 21.04, I have libpulsecommon-14.2.so installed (part of the libpulse0 package). I’ve tried to create a symlink just in case but in doesn’t change anything, I assume RA is looking for it in the snap files only.

Ah yeah, it still needed some work beyond just getting it to build, apparently. Anyway, it seems to be working now if you want to give it another shot.

Just tried, it starts and the problematic cores seem to load properly now.

I’ve quickly tried a NES game with Mesen, it works. On the other side, I’ve tried a GameCube game with Dolphin and it doesn’t work: RA opens a window with a black screen and crashes after a few seconds. The same game works with the flatpak version. I’m not sure if it’s a configuration issue (I’ve copied the same content in the system dir of both) or related to a limitation of the snap version.

That’s probably something else, yeah. I’ll see what I can do about that, but in the meantime, thanks for testing on the snap. I’ll probably wait until the next stable to push it out to everyone but keep the edge builds for anyone that needs the incompatible cores.

Ok. I guess I’ll stick with the flatpak version for now (unless I manage to find out why the GC games don’t load) but I’ll be happy to test the snap version again in the future if needed.

1 Like

If you checked your logs with the snap version, were you having any errors with making directories for the problem cores?

I’m using /snap/ for retroarch and because snap apps are generally read-only occasionally it causes issues with certain retroarch cores.

For instance, on PPSSPP I cannot save games, at least not “normally”. Checking the logs shows a mkdir error, showing that it was unable to create the directory ( PPSSPP creates directories named things like UCUS99885561 in order to emulate accessing a memory stick pro duo. ) claiming it as read only.

I can work around this bug by minimizing retroarch, going into the log file, checking for the name of the directory it attempted to make, then going into my save folder for PSP and manually creating the folder named whatever it tried to create, then going back in game at which point the save I was trying to make will appear as “corrupted data” at which point I am able to overwrite it and save normally to that slot from that point on. Weird workaround, but it works. My save folder is RW and all users have full permissions for it, but snap/retroarch disagrees with this for some inexplicable reason.

If you mean for Dolphin after the snap update, I haven’t. I’m not sure where to find the logs

You may be able to correct that by connecting plugs. We used to connect a bunch of them automatically, but they don’t allow packages to do that anymore, it seems :stuck_out_tongue:

It’s in your retroarch.log file.

Where exactly that is located depends on your system. You can find out pretty easily though by firing up retroarch and go to settings->Directory and one of the directories should be “system event logs”, Usually something like snap/retroarch/config/retroarch/logs but it may be different for each user.

1 Like

It would be nice if it could be fixed by plugs, but either my understanding of plugs is wrong since they changed it from snap-interfaces command style, or it’s setup correctly and just isn’t working for some unknown reason.

when I check the snap plug connections for retroarch it shows both home and removable-media as connected, and I even sudo reconnected them to be sure, but it just doesn’t work. I’ve tried moving my save folder to a removable media SD card too, doesn’t matter where I try to put it PPSSPP still always gives a mkdir error when trying to create folders -but can create other file types just fine, just can’t make folders-. Whether this is a bug with PPSSPP and snap, or a bug with snaps alone, or my system just borked, I have no idea, and unless anyone has any ideas I really don’t feel like digging through my system to track down whatever obscure conflict is causing this when I have a workaround ( An annoying workaround, but it does work ). If it wasn’t for the fact that PPSSPP is the only core that has this problem for me I would probably just give up and delete the snap package then install from the direct repository.

heh, yeah, snaps (and flatpaks) seem to have annoying sandbox quirks like this pretty often… I’ll try to reproduce on my end.