-
-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RFE: Optionally automatically group cds/content files in playlist #6410
Comments
Hope this idea has a better response than the previous. Seems neater anyway. |
Grouping or a folder structure would be great. |
This wouldn't work for those groups. It's not intended for that and there is not much point. If you want all the versions keep them on a separate zip or unzipped and choose the individual games on the playlist to play. |
But why not aiming for those two use cases? |
Because this a heuristic. There isn't a good heuristic to group versions at the same time as discs and no reason to (unlike groups changing cds or floppies which is something that can help to load savestates). Well there is 1 usecase (using the same config for all the versions of the game), but i'm not confident that a workable version heuristic can be worked and work at the same time with cd change. Instead i'd prefer those cases be handled by #6089 edit: edited out pointless digression |
The reason is "overview in the UI". The user in front of the loader has to select one of the storage mediums. The algorithm (I guess this is your heuristic) is always the same. Therefore it can also be used for game versions. |
What's the point of sharing savestates or shortcuts for changing cds on two different versions of a game? For cd change it makes sense since it's the same game and the user will use all cds in a playthrough so loading different savestates inserting a cd makes sense. For different versions changing medium (cd) is just playing a new game so the savestates should be separate and the entries too. No, i won't recommend grouping versions on the same entry. And to be honest, i find goodroms 'single zip for all versions' a waste of hd space and bad design too, so if you're trying to support that usecase by trying to use this issue, well, you should make your case on another issue. I'd expect that even if it was supported somehow, it would end up with different entries for each rom. This idea is not for zips (only) but for all the content files that RA scanner can admit into a playlist. I myself only have unzipped roms and use external filesystem compression. |
I understand your point now. But what you would like to have is core dependet. Retroarch as UI can only realize your proposal to a certain extent. |
edit: I actually rather doubt this can cause widespread trouble even if it's not whitelisted or blacklisted. Maybe it can disable game configs setups for single games depending on how that is handled (but i'd still like the great benefit of having a single config for multiple cds of the same game, which is basically one of the best reason for the m3u format to exist). A alternative to using m3u filename / using the derived name as config indicator could exist if #6089 is implemented. There the filename is only one of 3 different ways to map a content file to a config from less to more specific. It would be sad if collections lost the ability to get a single config file though (that the m3u loader has). Anyway, the main risks are in the OP: x68k and files (dumps from dumping groups) which the heuristic can't sort by name. For files which the heuristic can't group but should, there is no actual change (they'd be single), so no 'risk' even if it's disappointing. x68k has to be handled special already because it has 2 floppy drives so the 'disc control' scheme doesn't work already. Currently i think you can't even change diskettes (there is a way to start with 2 diskettes loaded which serves to start a game, but if you ever need to change, you're screwed). Main problems should be coding the thing. Maybe RA doesn't have access to a regex library and that could sink this idea. |
Anyway, @Ferk what do you think of this variation? |
Could you create a mock up of what you think this would look like? I'm having trouble understanding what you're proposing. |
Sorry about this delay, but the idea is to make a setting that modifies the behavior of some RA functionality and the game view. Namely:
There are many redump games on the ps1 and others that have 4+ cds. I think it would be a good usability gain to have something like this, if m3u scanning as a 'single game' won't ever happen, for the obvious 'filesystem' solution (that tbf, would only be really valuable if 2-4 were the same and those are all runtime features). If you wanted something visual, I'm not talented at that but it's literally just removing all 'game cd1, game cd2, game cd3...' entries and replace them by 'game'. |
First and foremost consider this:
Description
Refinement of #6324 (comment)
I was convinced by @Ferk that the VFS component or scanner changes of the previous idea were unnecessary so here is the much simpler version that instead changes playlists views a bit more substantially.
Expected behavior
The heuristic is simply to order the files by 'natural name' (not the ordering that screws up and places '1, 11, 2'), then iterate over the list and group files by finding common substrings that start from 0 pairwise, until you find a pair that doesn't end in a " [([]cd #*[)]]" or a " [(]]disc #*[)]]" (or where the number is different from previous +1) and when you do, finish the group (and create a new one on the next iteration). It's simple, especially since RA scanner already only picks up content files (though that might itself be a problem when it picks up both cue/iso and the iso that the cue refers to, but that's a different scanner bug that may or may not exist).
The heuristic works on the script even with different games on the same directory (creates different m3u for each game), so it will also work with a more abstract 'playlist'. For instance:
[Arc the Lad III (USA) (Disc 1).cue, Arc the Lad III (USA) (Disc 2).cue, Bushido Blade (USA).cue]
would turn into:
[ {Arc the Lad III (USA), [Arc the Lad III (USA) (Disc 1).cue, Arc the Lad III (USA) (Disc 2).cue]}, {Bushido Blade (USA), [Bushido Blade (USA).cue]} ]
(it's possible to support content in different dirs if the sort/group heuristic only operates on the filename part of the path, but of course the 'real' paths are complete unlike this simplified example).
This derived struct list could be used both for displaying only a single entry for game in playlists and for filling the cd-change entries automatically, allowing users to use the shortcuts without creating a manual m3u or adding each cd from the GUI.
The short name is the filename not including the match (not including the "(Disc number)" metadata), ie: not the parent dir, etc. If match found, remove extension, trim and remove any duplicate space and If the match is not found, don't include extension anyway.
existing m3u files on a playlist should be ignored in this grouping and appear 'as is' because they're already groups of files. Although a different issue could be hiding from the playlist files that exist already on the m3u if you want to remove duplicates (similar to the hypothetical cue/iso, iso problem above, so the place to fix this might be the scanner)...
Three complications:
Actual behavior
Nothing, no such option.
Steps to reproduce the bug
Bisect Results
[Try to bisect and tell us when this started happening]
Version/Commit
You can find this information under Information/System Information
Environment information
The text was updated successfully, but these errors were encountered: