libretro / RetroArch

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

[Feature Request] Display names for playlist entries #14174

Open romatthe opened 2 years ago

romatthe commented 2 years ago

Currently, playlist items in RetroArch have a name that is used for pretty much all purposes: displaying the title in all menus, sorting it in playlists, matching for automatic thumbnail and screenshot downloads, etc. This field is known as "label" in the playlist format.

There are a fairly large number of occasions where I want to change the title of a playlist item, but I also don't want to break other functionality associated with the "label".

Some examples:

  1. Games that have received translation patches (where I keep patches alongside the original game dumps for softpatching) and where I would like to change the title to an English one.
  2. The trimming of some of the ROM information that appears alongside the game title, for example:
    • Langrisser II (Japan) (Rev B) -> Langrisser II (Japan)
    • Suikoden (USA) (Rev 1) -> Suikoden (USA)
    • Dragon Quest IX - Sentinels of the Starry Skies (USA) (En,Fr,Es) -> Dragon Quest IX - Sentinels of the Starry Skies
  3. Correcting the titles for titles that have received small bug fixes.

Right now it's a bit of a pain to do all of this without breaking some other functionality within RetroArch that relies on a games title/label for identification.

So, I propose the introduction of a new field to items in the playlist format: Display Name ("display_name").

It's a very modest proposal. The Display Name is something that will only used for, well, displaying a games title in the various RetroArch menus, as well sorting the entries in those menus. When automatically fetching thumbnails, title screens and screenshots, RetroArch will still rely on the "label" property of the playlist entry. For the sake of simplicity, I'd propose that you can only change this through the Desktop Menu for now.

There are two way to implement this I think. Whenever you perform an automatic scan of a file or directory to import a game dump into RetroArch, the system either:

Hopefully this makes sense. If not, let me know.

whmzsu commented 2 years ago

Good idea ! Thus will also solve the retroarch on switch native OS with atomsphere to display the non-ASCII language titles while sametime support the thumbnails problems.

romatthe commented 2 years ago

I'd submit a draft PR for this myself if I could but my C++ isn't very good unfortunately.

20Phoenix commented 1 year ago

Hey, that's what I'm also waiting for. For first it would be enough to just have a new playlist entry "thumbnail" String value that is used for getting the thumbnails. "label" only for the GUI as the name to show in the list. The folder scanning function should generate beside the "label" the second String "thumbnail" with the same value".

short: 1.) new playlist entry: char "thumbnail" 2.) first time building playlist should set "thumbnail" = "label" 3.) GUI uses "label" as shown name (like now), but thumbnail-download uses "thumbnail" for searching (instead of now also label). 4.) For first it would be enough to enter the "label" manually by using an editor for the playlist file. future: Edit name option in RA.

I would really celebrate that.

20Phoenix commented 1 year ago

@LibretroAdmin Hello, I'm impudent and make a reminder to this request which is worth to disturb you. 😁 I can't program anymore, but shouldn't be too much changings in playlist.h + playlist.c + task_pl_thumbnail_download.c. A huge project, I've no good overview.

doraemon0711 commented 9 months ago

I also strongly support your idea, especially for users whose native language is not English. Many times, I hope that my playlists can display Chinese names. However, if the label attribute is modified, the database and thumbnails become unusable. As far as I know, many people maintain a database and thumbnails with the same names as the modified label on their own, making it impossible to use RetroArch's scan and other features.

Unfortunately, my skills in C and C++ are not good either. I hope other developers can provide some assistance. Thank you :)