Merge pull request #18046 from sonninnos/database-multidisk

Improve multidisk game scanning
This commit is contained in:
LibretroAdmin 2025-06-24 21:18:01 +02:00 committed by GitHub
commit 69b82e1fc2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 18 additions and 8 deletions

View File

@ -815,7 +815,17 @@ static int database_info_list_iterate_found_match(
/* Use database name for label if found,
* otherwise use filename without extension */
if (!string_is_empty(db_info_entry->name))
{
/* Use the archive as path instead of the file inside the archive
* if the file is a multidisk game, because database entry
* matches with the last disk, which is never bootable */
char *delim = (char*)strchr(entry_path_str, '#');
if (delim && strcasestr(entry_path_str, " (Disk "))
*delim = '\0';
strlcpy(entry_lbl, db_info_entry->name, sizeof(entry_lbl));
}
else if (!string_is_empty(entry_path))
{
char *delim = (char*)strchr(entry_path, '#');
@ -838,15 +848,15 @@ static int database_info_list_iterate_found_match(
*hash = '\0';
#if !defined(RARCH_INTERNAL)
fprintf(stderr, "Found match in database !\n");
fprintf(stderr, "*** Found match in database! ***\n");
fprintf(stderr, "Path: %s\n", db_path);
fprintf(stderr, "CRC : %s\n", db_crc);
fprintf(stderr, "Playlist Path: %s\n", db_playlist_path);
fprintf(stderr, "Entry Path: %s\n", entry_path);
fprintf(stderr, "Playlist not NULL: %d\n", playlist != NULL);
fprintf(stderr, "ZIP entry: %s\n", archive_name);
fprintf(stderr, "entry path str: %s\n", entry_path_str);
fprintf(stderr, "\tPath: %s\n", db_path);
fprintf(stderr, "\tCRC : %s\n", db_crc);
fprintf(stderr, "\tPlaylist Path: %s\n", db_playlist_path);
fprintf(stderr, "\tEntry Path: %s\n", entry_path);
fprintf(stderr, "\tPlaylist not NULL: %d\n", playlist != NULL);
fprintf(stderr, "\tZIP entry: %s\n", archive_name);
fprintf(stderr, "\tentry path str: %s\n", entry_path_str);
#endif
if (!playlist_entry_exists(playlist, entry_path_str))