gnome-games-app doesn't pick up libretro cores due to missing descriptor files

Bug #1682863 reported by Matej Moško
30
This bug affects 5 people
Affects Status Importance Assigned to Milestone
desmume (Ubuntu)
Fix Released
Undecided
Unassigned
genesisplusgx (Ubuntu)
Fix Released
Undecided
Unassigned
gnome-games-app (Ubuntu)
Fix Released
Undecided
Unassigned
libretro-beetle-psx (Ubuntu)
Fix Released
Undecided
Unassigned
libretro-beetle-vb (Ubuntu)
Fix Released
Undecided
Unassigned
libretro-beetle-wswan (Ubuntu)
Fix Released
Undecided
Unassigned
libretro-bsnes-mercury (Ubuntu)
Fix Released
Undecided
Unassigned
libretro-mupen64plus (Ubuntu)
Invalid
Undecided
Unassigned
libretro-snes9x (Ubuntu)
Invalid
Undecided
Unassigned
mgba (Ubuntu)
Fix Released
Undecided
Unassigned
nestopia (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

Ubuntu/Debian and even the upstream "Libretro" team PPA (https://launchpad.net/~libretro/+archive/ubuntu/stable) do not ship the descriptor files for the libretro cores.

Those descriptor files are listed in: https://gitlab.gnome.org/GNOME/gnome-games/tree/master/flatpak/libretro-cores

Due to the missing descriptor files gnome-games-app cannot pick up those cores and play the games.

Those descriptor files should be shipped within the libretro packages and installed alongside the proper .so file.

==Workaround 1==
Just use the upstream flatpak bundle. The most common cores are bundled there together with the descriptor files:

sudo apt install flatpak

flatpak install https://flathub.org/repo/appstream/org.gnome.Games.flatpakref

==Workaround 2==
Add those descriptor files manually:

My example is the Nestopia (Nintendo NES) core

1) Ubuntu installs the cores in /usr/lib/x86_64-linux-gnu/libretro
If you install the libretro-nestopia package the file nestopia_libretro.so will go there automatically

2) See the list above: https://gitlab.gnome.org/GNOME/gnome-games/tree/master/flatpak/libretro-cores

3) Choose the proper file for the core, here it is the file nestopia.libretro

4) Start up gedit with superuser privileges and add this file alongside the .so file. The content of the descriptor file in my example would be:

[Libretro]
Type=Emulator
Version=1.0
Name=Nestopia UE
Module=nestopia_libretro.so
LibretroVersion=1
Authors=Martin Freij;R. Belmont;R. Danbrook;
License=GPL-2.0+;

[Platform:NintendoEntertainmentSystem]
MimeType=application/x-nes-rom;

[Platform:FamicomDiskSystem]
MimeType=application/x-fds-disk;
Firmwares=FamicomDiskSystem;

[Firmware:FamicomDiskSystem]
Path=disksys.rom
MD5=ca30b50f880eb660a320674ed365ef7a SHA-512=d7692af63b107b7e79ccf0d90e5ff7e70325e3196a41b6d4d83aaf8ffa5ca976351f8f31bcb1d497c02f7c699e94e77c27a0813f72aa96b576685acaae5bdad5
Mandatory=true

5) If you use the upstream PPA, the nestopia_libretro.so file is installed to /usr/lib/libretro instead of /usr/lib/x86_64-linux-gnu/libretro. You would have to add the descriptor file in this directory instead.

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in gnome-games-app (Ubuntu):
status: New → Confirmed
Revision history for this message
Kain Zhou (kainzhou) wrote :

Affects me to, same issue trying to boot up NES and SNES games even when the libretto packages are installed.

This is on Ubuntu 17.10

amano (jyaku)
summary: - PSX games not working
+ gnome-games-app not picking up libretro cores
Revision history for this message
Jeremy Bícha (jbicha) wrote : Re: gnome-games-app not picking up libretro cores

I suggest asking the GNOME Games app developer whether pcsx-reloaded should be supported.

https://gitlab.gnome.org/GNOME/gnome-games/issues

When this has been done, please let us know the issue number here.

Otherwise, someone will need to get pcsx-rearmed packaged for Ubuntu (and probably Debian).

summary: - gnome-games-app not picking up libretro cores
+ gnome-games-app does not support pcsx-reloaded
amano (jyaku)
description: updated
description: updated
Revision history for this message
amano (jyaku) wrote : Re: gnome-games-app does not support pcsx-reloaded

I updated the bug description and made it more generic. I seem to remember that it worked when it was introduced in Zesty and broke when being updated to Artful.

jbicha, can you have a look?

Revision history for this message
amano (jyaku) wrote :

Hmm. I guess that libretro-gtk is the emulation related part and probably to blame instead of gnome-games-app

description: updated
summary: - gnome-games-app does not support pcsx-reloaded
+ gnome-games-app and retro-gtk do not support pcsx-reloaded and other
+ libretro cores
amano (jyaku)
summary: - gnome-games-app and retro-gtk do not support pcsx-reloaded and other
+ gnome-games-app and retro-gtk do not pick up pcsx-reloaded and other
libretro cores
Revision history for this message
amano (jyaku) wrote : Re: gnome-games-app and retro-gtk do not pick up pcsx-reloaded and other libretro cores

Exalm on #gnome-games had an idea:

exalm[m]
Ok, so if you see them, but can't run them, it's cores

amano
I see those games but when clicking on them it says that "the system is not yet supported

exalm[m]
Yes, it's cores
ls /usr/lib/libretro
Or lib64
Could you show that output?

amano
amano@amano-desktop:~$ ls /usr/lib/libretro
nestopia_libretro.so snes9x_libretro.so

exalm[m]
Wait
Where are descriptor files?
Are they not packaged?
nestopia.libretro etc

amano
I will search for them, just give me some minutes

exalm[m]
If they aren't packaged, they should be
They were packaged in the cores I tried before
So that's the bug here :)

amano
ok. I searched for the .deb file of libretro and opened it with file-roller
and looked into all the folders in it
there wasn't any nestopia.libtretro file in it
just the usual debian changelog stuff

exalm[m]
Yeah, it's just not packaged
That's the reason of the problem

amano
ok then the proper fix would be to ship the descriptor files within the libretro deb packages

exalm[m]
Yes

Revision history for this message
amano (jyaku) wrote :

So the proper fix seems to be to ship the descriptor files within the .deb packages of the libretro cores and install them alongside the .so files in /usr/lib/libretro

I guess that bug is invalid then and I should file a bug against libretro?

Changed in gnome-games-app (Ubuntu):
status: Confirmed → Invalid
Changed in retro-gtk (Ubuntu):
status: New → Invalid
no longer affects: libarchive (Ubuntu)
amano (jyaku)
summary: - gnome-games-app and retro-gtk do not pick up pcsx-reloaded and other
- libretro cores
+ gnome-games-app and retro-gtk do not pick up pcsx-reloaded and the
+ libretro cores due to missing descriptor files
amano (jyaku)
description: updated
description: updated
Revision history for this message
amano (jyaku) wrote : Re: gnome-games-app and retro-gtk do not pick up pcsx-reloaded and the libretro cores due to missing descriptor files

Added a manual workaround above.

And I have to make a correction: By default the libretro cores go to /usr/lib/x86_64-linux-gnu/libretro

I had the PPA installed and just the files from there go to /usr/lib/libretro

description: updated
amano (jyaku)
summary: - gnome-games-app and retro-gtk do not pick up pcsx-reloaded and the
- libretro cores due to missing descriptor files
+ gnome-games-app doesn't pick up libretro cores due to missing descriptor
+ files
amano (jyaku)
no longer affects: mednafen (Ubuntu)
Revision history for this message
amano (jyaku) wrote :

All affected cores are now listet in this bug.

The good news: 3 of them already ship the required descriptor file:

*libretro-beetle-pce-fast (=Turbografx/PC Engine)
*bsnes_mercury_balanced.libretro (=Super Nintendo), the performance and accuracy versions lack it though
*libretro-gambatte

All the other cores need those files added.

Revision history for this message
amano (jyaku) wrote :

I leave that to "New" so people can find this bug when searching for "gnome-games-app" even when it is (probably) not a gnome-games-app bug.

Changed in gnome-games-app (Ubuntu):
status: Invalid → New
Revision history for this message
amano (jyaku) wrote :

I got snes9x working by manually adding snes9x.libretro:

[Libretro]
Type=Emulator
Version=1.0
Name=snes9x
Module=snes9x_libretro.so
LibretroVersion=1
Authors=BearOso;OV2
License=MIT;

[Platform:SuperNintendoEntertainmentSystem]
MimeType=application/vnd.nintendo.snes.rom;

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in desmume (Ubuntu):
status: New → Confirmed
Changed in genesisplusgx (Ubuntu):
status: New → Confirmed
Changed in gnome-games-app (Ubuntu):
status: New → Confirmed
Changed in libretro-beetle-psx (Ubuntu):
status: New → Confirmed
Changed in libretro-beetle-vb (Ubuntu):
status: New → Confirmed
Changed in libretro-beetle-wswan (Ubuntu):
status: New → Confirmed
Changed in libretro-bsnes-mercury (Ubuntu):
status: New → Confirmed
Changed in libretro-mupen64plus (Ubuntu):
status: New → Confirmed
Changed in libretro-snes9x (Ubuntu):
status: New → Confirmed
Changed in mgba (Ubuntu):
status: New → Confirmed
Changed in nestopia (Ubuntu):
status: New → Confirmed
Revision history for this message
Jeremy Bícha (jbicha) wrote :

amano, one major usability bug for this issue is LP: #1787780

For best results, each of these libretro cores should have an Appstream addon metadata file too.

See https://gitlab.gnome.org/GNOME/gnome-games/issues/79 for the missing libretro files.

no longer affects: retro-gtk (Ubuntu)
Jeremy Bícha (jbicha)
Changed in desmume (Ubuntu):
status: Confirmed → Fix Released
Changed in genesisplusgx (Ubuntu):
status: Confirmed → Fix Released
Changed in gnome-games-app (Ubuntu):
status: Confirmed → Fix Released
Changed in libretro-beetle-psx (Ubuntu):
status: Confirmed → Fix Released
Changed in libretro-beetle-vb (Ubuntu):
status: Confirmed → Fix Released
Changed in libretro-mupen64plus (Ubuntu):
status: Confirmed → Invalid
Changed in nestopia (Ubuntu):
status: Confirmed → Fix Released
Changed in mgba (Ubuntu):
status: Confirmed → Fix Released
Changed in libretro-bsnes-mercury (Ubuntu):
status: Confirmed → Fix Released
Changed in libretro-beetle-wswan (Ubuntu):
status: Confirmed → Fix Released
Changed in libretro-snes9x (Ubuntu):
status: Confirmed → Invalid
Revision history for this message
Jeremy Bícha (jbicha) wrote :

I'm marking libretro-snes9x invalid because it duplicates the functionality of libretro-bsnes-mercury and the GNOME Games app doesn't yet offer a way to handle duplication. I'm marking libretro-mupen64plus invalid because GNOME Games doesn't support that package.

All the rest should have working AppStream metadata and .libretro files in Ubuntu 19.04 which will be released in April.

I intend to work on adding those files to Ubuntu 18.04 LTS to fix this issue there, but I will file individual bugs since it's not very easy to track so many packages with only one Launchpad bug.

Revision history for this message
amano (jyaku) wrote :

Hmm. I cannot say that this bug is fixed. Did that regress somehow?
Where are the descriptor files supposed to have gone to?

amano@amano-desktop:/usr/lib/x86_64-linux-gnu/libretro$ pwd
/usr/lib/x86_64-linux-gnu/libretro
amano@amano-desktop:/usr/lib/x86_64-linux-gnu/libretro$ ls
bsnes_mercury_performance_libretro.so nestopia.libretro
genesis_plus_gx_libretro.so nestopia_libretro.so
mednafen_pce_fast_libretro.so snes9x_libretro.so
mednafen_psx_hw_libretro.so
mednafen_psx_libretro.so

Of those cores installed only nestopia seems to ship a descriptor file

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.