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

(Menu) Organize/re-order Playlists in the XMB #9238

Open klepp0906 opened 5 years ago

klepp0906 commented 5 years ago

A little organization goes a long way. Alphabetical works fine for romlists - and sorting roms manually would be too impractical anyhow, RA would benefit from a means to organize playlists in the XMB.

If trying to stick to the libretro naming conventions (which you obviously should if/where you can, or at least I do) you'll end up with things like PS2 coming before PSP which comes before PS1. Or 3DS coming before DS etc.

If you want to group your playlists with handhelds before consoles or vice versa. Or have PS1 before PS2 before PS3 etc. You dont really have a means to do so at the moment.

tmtvl commented 5 years ago

If I'm reading you correctly, you'd like an option in Playlist Management to set the order of the playlists in the menu?

Something like "Playlist Management->Sort Playlists" with your playlists being shown and then having a way to move each one up or down in the list. When you hit the OK button on a playlist give the options "Move to Top", "Move Up", "Move Down", and "Move to Bottom". That's how I'm envisioning it at the moment.

It seems doable, although I don't know how we should save the setting.

klepp0906 commented 5 years ago

yes, that sounds plenty feasible. ultimately the exact implementation is up to you to decide, taking into account the difficulty of course.

As far as saving goes, I imagine it would have to be a section of retroarch.cfg right? Unless a separate file was made for it in and of itself. Or perhaps a numbering in the playlist.lpl - similar to how the new "label_display_mode": # works. With a number corresponding with where it falls on the playlist left to right or something.

illando commented 5 years ago

That would be great! If it’s not possible to have a 100% custom order, in my opinion also a group of basic settings could be OK. For example: order by consolle release date, alphabetical, manufacture, etc.

MastartP commented 4 years ago

A feature to sort playlists still doesn't exist, am i right? I feel like the ability to manually order consoles and the games on each playlist is the last big step to make retroarch the definitive digital library for videogame preservation. And it is kinda baffling to me, since there so many minor options for customization.

jedinjapan commented 3 years ago

Adding to this feature request: currently playlists are ordered Alphabetically, and this sorting behavior can only be achieved by renaming them, which breaks the naming conventions and any associated dynamic wallpapers/icons/etc. Doing it this way is functional, but "dirty" and not a real solution. But the fact it works on all menu drivers currently does show that supporting arbitrary orders is quite possible at least. I feel like this request should be renamed now as Ozone has taken over as the primary Menu Driver, but this will improve both. @RobLoach would this be possible?

Having the playlist order offer some defaults other than (A-Z) such as (Console/Handheld/Arcade) in various orders, (by Console Generation), or (by release year) would be good defaults to have I think, as well as allowing a (Custom Order) reference that simply name-matches to the order in a separate .cfg file.

Ideally building this functionality into the Desktop Menu and the Ozone/XMB interfaces for nice visual feedback would be ideal, but short term to get the feature in a simple .cfg reference would be fantastic.

RobLoach commented 3 years ago

I'd suggest a few things...

  1. Use Explore feature. It lets you search and browse nicely.
  2. Disable Sort Playlists Automatically
  3. Edit the .json files directly, or use an external tool
  4. Would be great to have this editing in the Desktop UI. I think it's a lot to ask for in a couchtop setting like XMB or Ozone.
jedinjapan commented 3 years ago

Thanks for the reply. I apologize as I tagged you with the hopes of renaming this issue as it is currently labeled as an XMB specific issue/request but applies to most menu drivers. I also think the goal was made unclear: Playlists can be created/edited using the Desktop UI or external tools and with sorting off can have custom orders. But the console/system sort order when using the menu driver cannot be changed unless breaking Retroarch naming conventions, as System sort is always 100% Alphabetical and cannot be disabled. Making a new playlist called "1. Genesis" will place it at the top of the sort, but looks bad and breaks the UI icon naming conventions as well, losing the icons for the Sega Genesis system. There exists no setting to change this alphabetization behavior yet, nor any re-ordering function in the Menu drivers or Desktop UI.

  1. Explore is fantastic, but less so when looking to browse favored groups instead of finding a specific title. While no one wants Retroarch to become a "netflix" style interface, being able to pin favored systems like NES, Genesis, Saturn, and other personal favorites to the top of the sort order positions would make casually browsing your library easier, especially when dealing with small-to-medium sized collections. In short, this is a fantastic feature, but one that serves a separate, parallel purpose. I do not often play Atari for example, but it is always near the top.

  2. This can disable Alphabetical sorting within specific playlists and allow editing with external tools, but this is a separate sorting concern. This does not affect the order of appearance of the system playlists on the Menu driver. What if I want History enabled, but to come last on the list, as I rarely use it?

3 & 4. These are great options for sorting items within said playlists and with Sort Playlists turned off allows moving items to a custom layout. I think for couchtop UI we would be hoping for something akin to re-ordering pinned libraries on a Plex server (link below), which is very remote/controller friendly. Keeping the UI burden down, the user could press or hold a menu hotkey on the system to be given the option to "move Playlist" and re-order them, for example. This could be done within the UI, or could even have a note that once reordered: (Retroarch must be restarted to reflect changes). Etc. https://support.plex.tv/articles/navigating-the-big-screen-apps/

In my mind this would be similar to how search was recently mapped to a retropad button. Having an option to map a dedicated "sort" button hotkey (I would use the X or Triangle position myself), users could short press sort to "grab" a menu item within a playlist (if auto-sort is disabled, otherwise the short press does nothing), or hold sort to grab the playlist itself (if auto-sort systems (a new setting) is disabled, otherwise long-press does nothing). With the relative positions of the systems being written to a new .json file as well.

The above is a complex request however. In lieu of anything that grand, I would suggest if possible adding a very basic implementation first to help those looking for the feature and to build on by storing the system sort order to a json file and adding a setting to toggle system auto sort or use the custom .json. That would still require the user to use outside editors/tools to reorder the .json file, but would give us a start.

nfp0 commented 2 years ago

I would also love this feature. As described, currently there's no way to achieve this without renaming and breaking icon and database association. It's very messy specially now that the History playlist also allows to have icons on it.

Something as simple as a "sort" integer on the .lpl playlist file would suffice.

Khronikos commented 1 year ago

Would be nice to have. I think 1.13 for me had the truncate option by default, which completely messed up the playlists by manufacturer. Not sure why that setting would be default. New users wouldn't know where to go to find it, and I feel manufacturer works best on sorting playlists.

nfp0 commented 1 year ago

@Khronikos Correct me if I'm wrong, but I believe playlists are still sorted the old way by default, even if the manufacturer name is not displayed by default.

My defaults look like this: ozone_sort_after_truncate_playlist_name = "false"

But I see where your confusion (and probably many other users) is coming from. The default changed to false on 1.13.0 It seems the default was true before, so people upgrading are inheriting the true value from their current configs and have their sort order all messed up until they find the setting.