libretro / RetroArch

Cross-platform, sophisticated frontend for the libretro API. Licensed GPLv3.
http://www.libretro.com
GNU General Public License v3.0
10.4k stars 1.84k forks source link

PSX games on "Explore" menu listed under "Unknown" filter, despite database containing entries with metadata #12576

Open jackcmedia opened 3 years ago

jackcmedia commented 3 years ago

First and foremost consider this:

Description

"Explore" menu lists games as having "unknown" developer, release year, genre and franchise, despite having associated a database entry with most of those details available.

On RetroArch 1.9.5, I have the following games scanned into my collection, with the following details being available:

Given the above details, I'd expect that the PSX games are correctly listed in the "Explore" menu under their associated "Developer", "Release Year" and "Genre". The only time I expect the games to be listed as "Unknown" is when listing them by "Franchise".

However, all PSX games are listed under "Unknown" except when filtering by "System Name".

Expected behavior

When using the explore function to check the scanned games in my collection, I get the following results:

Actual behavior

When using the explore function to check the scanned games in my collection, I get the following results:

Steps to reproduce the bug

  1. Scan rom directory containing the games.
  2. Verify that all games scanned have an associated database entry with Developer, Release Year, Genre and/or Franchise.
  3. Use the "Explore" menu to filter by "Developer", "Release Year", "Genre" and/or "Franchise".
  4. Games filtered by "Developer", "Release Year", "Genre" or "Franchise" show as "Unknown" despite having those values in their database entries.

Bisect Results

N/A, I don't know how to do this

Version/Commit

Environment information

Screenshots

jackcmedia commented 3 years ago

Interesting, I tried adding more PSX games (Saiyuki - Journey West, being one of them) and those are correctly populating the various filters of the "Explore" menu.

seraphlive commented 3 years ago

Similar issue occurred to me when I scanned a folder with a almost full set of nes/famicom roms. In the "Explore" menu, the release date only shows 1986~1990, while I definitely have roms released since 1983. Most roms are under the Unknown section.

I also checked one rom in the Unknown section for its information and it can properly be linked to the database entry.

I'll try to completely clear the play list file and try to import all the roms again later to see if the problems still exist.

seraphlive commented 3 years ago

I tried again and found that Famicom disk system roms I imported work fine. Only metadata of NES ROMs can be displayed in "Explore" tab.

Screenshot of 1.9.6 macOS metal version:

image

Also found this issue #11275 back from 2020. Looks like they are related.

jackcmedia commented 3 years ago

Issue persists on 1.9.9.

While debugging the code at [1] found that, for both Vagrant Story (USA) and Parasite Eve (USA), no metadata is returned from Sony - Playstation.rdb, a database which holds the metadata of PSX games.

Inspecting said database, found that both Vagrant Story (USA) and Parasite Eve (USA) are listed twice:

SLUS-01040GH and SLUS-00662-0 are listed first on the database, and neither have the metadata that I was expecting to find (developer, publisher, franchise, year of release, etc). The other ones, SLUS-01040 and SLUS-00662, are listed towards the bottom and do contain the metadata.

I'm thinking that I probably have the rereleases and, when fetching the details, processing stops at the first match. This results in the "Unknown" values due to missing metadata, which is curious since reading the database entry from within RetroArch shows the complete metadata and both serial numbers (failed to notice this when first reporting the issue).

Not sure if the same occurs for @seraphlive with the NES roms.

[1] https://github.com/libretro/RetroArch/blob/master/menu/menu_explore.c#L402-L741

jackcmedia commented 3 years ago

Some progress:

I downloaded and compiled my own RDBs, by following the instructions at [1]. Along the way, I found that the Sony - Playstation.dat from REDUMP [2] is the only source that lists both Vagrant Story (USA) and Parasite Eve (USA) twice.

After removing the duplicate entries from said source, compiling Sony - Playstation.rdb and running RetroArch with it, the result is that both games can be correctly filtered using the "Explore" function.

Sample RDB with Vagrant Story (USA) (SLUS-01040GH) removed: Sony - PlayStation.zip

Filter by Developer - Vagrant Story (USA) is now listed under Squaresoft: image

Filter by Publisher - Vagrant Story (USA) is now listed under Squaresoft: image

Filter by Release Year - Vagrant Story (USA) is now listed under 2000: image

Filter by Genre - Vagrant Story (USA) is now listed under Action: image

I lack the expertise to implement a solution, but I can think of a few proposals:

[1] https://github.com/libretro/RetroArch/tree/master/libretro-db#compiling-all-rdbs-with-libretro-build-databasesh [2] https://github.com/libretro/libretro-database/blob/b706aa6877ca2f82db7b4e6a5216da0ac13f85ad/metadat/redump/Sony%20-%20PlayStation.dat


TL;DR: