History Playlist & Thumbnails

I have downloaded thumbnails/covers for all the systems/playlists I use and they display fine.

After launching a game it gets added to the content_history.lpl playlist and sure enough the thumbnails display there too no problem… for most systems. However for some systems they no longer work. For example all my NES games are fine, all GBA games display no thumbnails if browsing the history playlist.

By enable logging I see that retroarch seems to search in the “Nintendo - Game Boy” subdirectory which is wrong, it should be in the “Nintendo - Game Boy Advance” subdirectory. Similarly SNES games are fine but for the Megadrive/Genesis retroarch wants to look into the “Sega - Game Gear” dir and that doesn’t work.

If I open up the content_history.lpl file I can see that “db_name” is blank for many entries and maybe that’s confusing retroarch? (Although it’s blank for my NES games too, and the thumbnails do display as expected).

Any ideas?

How did you add those games? Using “manual scan”? If so, you need to select the correct system name when adding them.

It is correct in my playlists AFAIK.

For example a random entry:

  "path": "..\\..\\ROMS\\Nintendo\\Game Boy Advance\\ROMS-GBA\\Sabre Wulf (USA).zip#Sabre Wulf (USA).gba",
  "label": "Sabre Wulf (2004, Rare, GBA)",
  "core_path": "cores\\vbam_libretro.dll",
  "core_name": "Nintendo - Game Boy Advance (VBA-M)",
  "crc32": "73787A16|crc",
  "db_name": "Nintendo - Game Boy Advance.lpl"

But when I run it retroarch adds this entry in the history playlist:

  "path": "D:\\Games\\Emulators\\ROMS\\Nintendo\\Game Boy Advance\\ROMS-GBA\\Sabre Wulf (USA).zip#Sabre Wulf (USA).gba",
  "label": "Sabre Wulf (2004, Rare, GBA)",
  "core_path": "D:\\Games\\Emulators\\RetroArch\\RetroArch-v1.19.1\\cores\\vbam_libretro.dll",
  "core_name": "Nintendo - Game Boy Advance (VBA-M)",
  "crc32": "",
  "db_name": ""

Note the empty db_name field. If I go and manually add “Nintendo - Game Boy Advance” it will then find the thumbnails! However this is a dynamically created playlist I have no control over, retroarch just doesn’t add the correct value it seems. (Although like I said it’s the same for NES games but in that case it finds the thumbnails, so it’s weird).

Maybe deleting the history playlist could help. So a new one would be created. Try that.

A new file doesn’t make a difference.

I have a slight suspicion that if the db_name is absent retroarch tries to get its info from the core info file. For VBA-M that i’m using this is the line from its .info file:

database = “Nintendo - Game Boy|Nintendo - Game Boy Color|Nintendo - Game Boy Advance”

Retroarch goes for the 1st one which is wrong. For other cores it’s the correct one by accident, or because the core is associated with one database only. This would also explain why it’s looking in the “Nintendo - Game Boy” directory specifically. I suppose the correct db_name should be carried over from our playlists to the history file but that’s not currently happening.

Then I’m out of ideas. I use the mgba core, which emulates both the regular Game Boy and the Game Boy Advance, and thumbnails are working fine in favorites and history playlists.

1 Like

Interesting, then one final question is the db_name empty in your case in your content_history.lpl file and what’s your retroarch version?

Not empty. Mine has values like "db_name": "Nintendo - Game Boy Color.lpl", for example. I’m using RetroArch v1.20.

Yeah, that’s why it works then, needs the correct db_name.

Tried with v1.20 earlier but no luck here. All my plists have the correct db_name and if I add individual games to “Favorites” it carries over as expected, just not in History for whatever reason.

Thanks for trying to help!

1 Like

You could try to mess with the “Playlist” options in the settings and see if something is amiss there. Or, as a last resort, even deleting the retroarch.cfg file, to make sure there’s no conflicting leftovers after updates.

I can confirm that I have seen this behavior with the history playlist starting sometime early last year. I think this started with RetroArch 1.17. I think there may have been a recent change to thumbnail matching for that version that broke things in this manner. I tested renaming the thumbnail folder to sega - game gear for a system that was not loading thumbnails, and it loaded the thumbnails.

So it does seem as stated earlier that it is looking in the wrong db name for the thumbnails for some systems. In my case, mostly Sega systems besides Dreamcast, Saturn, and Game Gear that do load properly. I can confirm that Game Boy Advance also seems to have this problem as stated earlier in this thread.

Something is definitely wrong if it is trying to load thumbnails from a completely different system.

1 Like

I think something related to this might have messed things up.

https://github.com/libretro/RetroArch/pull/16082

1 Like

Or actually this, that mentions “use first database name for thumbnails if core has multiple”

https://github.com/libretro/RetroArch/pull/16062

1 Like

Things work fine here (reminding that I’m not using Windows), but I try to do things as by the book as possible. All my thumbnails are stored in a folder called thumbnails, and each system has the proper name matching the playlist (i.e.: Nintendo - Game Boy Advance). Anyway, RetroArch’s thumbnail detection is pretty wonky, as it usually demands perfect name matching. That’s one of the main issues it has against other frontends.

Can you provide some more details of one occurrence that does not work, including core and content name? And also whether the content was opened originally from a playlist that has correct thumbnail display, or some other way (load content, command line etc.)?

Hi, I stumbled upon this thread while searching for a solution with the exact same issue, so I can confirm that the issue is indeed that for some reason, running games from files does not correctly save db_name in the History or Favorites playlists (it does it correctly, when you run the game from a platform-specific playlist, created by scanning).

As an example, I have a game for GBA called “Summon Night - Swordcraft Story”.

  • I ran a file called Summon Night - Swordcraft Story.gba with mGBA and it ended in the History playlist without a db_name (meaning it couldn’t match any thumbnails).
  • Then I ran a copy of that file called Summon Night - Swordcraft Story (USA).gba just to be sure, but to the same result:
  • When I previously scanned the same file into a GBA playlist, it scanned correctly
  • And when I play the game from that GBA playlist, it did update the item in the History playlist to have the correct values and it does load thumbnails correctly for it.
  • Also if I manually fill the db_name value for the auto-generated entry as Nintendo - Game Boy Advance.lpl or even just Nintendo - Game Boy Advance, it works as well

The workaround for the time being is simple, now that I know the issue is in the db_name value - I can either fill the value in the favorites .lpl file manually, or generate the big platform playlists and favorite the games from there, but hopefully the technical reason can be found and fixed as well.

(Note: Just to be sure, I did update to the latest nightly version, but it’s been happening for a while, I think, since previously i had something like 1.19)

1 Like

You actually clarified how you loaded the game and I could finally reproduce the issue. There’s only a problem if the content is loaded through Main Menu > Load Content; otherwise, loading through a playlist works fine. I imagine this happens because the “load content” option is generic, letting the user roam through his directories and select whatever he likes, to whatever core he wishes. Even if a fix is attempted, it becomes pretty hard to detect the correct database related to the content, unless there’s some sort of folder structure to suggest the game’s association. You’d better open a proper issue on GitHub, if you wish.

1 Like

I also can confirm the behavior with Game Boy Advance games thumbnails not showing in History, if run with “Load Content…”. Same issue with Master System games running with SMS Plus GX (can run GG and MS). For other cores it works, because there is only one database to match to.

As pointed out by efrainm23, it only uses the first entry if there are multiple entries divided by |: https://github.com/libretro/RetroArch/pull/16062/files

         strlcpy(tmp_buf, db_name, sizeof(tmp_buf));
            /* If db_name comes from core info, and there are multiple 
             * databases mentioned separated by |, use only first one */
            strlcpy(tmp_buf, db_name, (size_t) (pos - db_name)+1);
1 Like