libretro / RetroArch

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

(Menu) RDB and Curosrs in Playlists #4787

Open larrykoubiak opened 7 years ago

larrykoubiak commented 7 years ago

Description

Extend rdb and cursors functionality and integrate it with playlists, and add supporting functionalities in query and file hashing

Expected behavior

  1. Implementation of link between playlist and rdb/cursors (via crc32 for the time being)
  2. Improvement of the search functionality to return query results from the rdb and use those results to launch content
  3. Improve rdb structure to allow for a 4 level data structure, the proposed structure being:
    • System (currently rdb name) e.g. Nintendo - Super Nintendo Entertainment System
    • Software (the name of the actual content, e.g. Chrono Trigger
    • Release (the name of the release, basically the "rom name"/zip name) e.g. Chrono Trigger (Japan)
    • Rom/file : Chrono Trigger (Japan).sfc
  4. Implementation of a "hash cache", meaning storing the list of files of a particular directory (and sub-directories) along with their hash values (crc32,md5,sha1)

Actual behavior

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/43505286-feature-request-libretro-db-improvements?utm_campaign=plugin&utm_content=tracker%2F296058&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F296058&utm_medium=issues&utm_source=github).
RobLoach commented 7 years ago

All great ideas! Any clue on how we could move in this direction?

larrykoubiak commented 7 years ago

there's a lot of code to sift through, but as far as libretro-db goes, it's a matter of rewriting the c-converter to be able to a) parse xml b) create a chain of RDT_MAP inside the rdb to replicate the structure

I just have a hard time expressing that in those callback functions

Ezwen commented 5 years ago
  • There is no concept of parent-clone relationship in rdb, making a preferred release (based on region, version, language....) impossible.

It is indeed not always very easy to explore a large game collection because of this limitation. I would love to be able to have one only entry per title in my playlists, and to be shown all locally available releases only after selecting the title. This would make game lists much smaller when lots of clones, hacks and releases are present.