libretro / RetroArch

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

[SUGGESTION] Expanding playlists (cheats, overlays, individual content icons) #6133

Open lordelan opened 6 years ago

lordelan commented 6 years ago

For now I can set up playlists to launch specific games (aka content) with specific cores in one click which is super. Also by the name of the playlist it is set which GUI icons to use for the system and games (e.g. the SNES icon for the playlist and SNES cartridge icon for every entry in that list) and which thumbnails to use (box art, screenshot) which is great as well.

However, RetroArch moved forward and there are a few things that would be fantastic if they will get implemented in future nightlies/releases:

  1. Cheats ->If I want to use cheats for a game I have to load them up manually inside the quick menu everytime. It would be great if they were loaded (loaded means just loaded, not any cheats activated!) as long as the cheat folder with its subfolders and cheat files follows the same name pattern, like it is handled with the thumbnails.
  2. Overlays/Borders -> Here should apply the same as for cheats and thumbnails: As long as an overlay for an individual content (game) is located in the right folder along with its cfg file it will automatically be used when the game is launched. Also if there's a main system overlay it will be used as long as there's no specific game overlay.
  3. Individual content icons -> Every entry in a playlist is represented by a default icon (e.g. a Super Nintendo cartridge for Super Nintendo games). I would love to have (some) individual icons for specific games.

An example: Imagine I have the following folders and files:

/retroarch/roms/Nintendo - Super Nintendo Entertainment System/Aladdin (World).zip /retroarch/roms/Nintendo - Super Nintendo Entertainment System/Ardy Lightfoot (World).zip

/retroarch/cheats/Nintendo - Super Nintendo Entertainment System/Aladdin (World) (Action Replay).cht /retroarch/cheats/Nintendo - Super Nintendo Entertainment System/Ardy Lightfoot (World) (Action Replay).cht /retroarch/cheats/Nintendo - Super Nintendo Entertainment System/Ardy Lightfoot (World) (Game Genie).cht

/retroarch/overlays/Nintendo - Super Nintendo Entertainment System/Nintendo - Super Nintendo Entertainment System.cfg /retroarch/overlays/Nintendo - Super Nintendo Entertainment System/Nintendo - Super Nintendo Entertainment System.png /retroarch/overlays/Nintendo - Super Nintendo Entertainment System/Aladdin (World).cfg /retroarch/overlays/Nintendo - Super Nintendo Entertainment System/Aladdin (World).png

/retroarch/assets/xmb/dot-art/png/Nintendo - Super Nintendo Entertainment System/Ardy Lightfoot (World).png

Now I make a "Nintendo - Super Nintendo Entertainment System.lpl" in my playlists folder which contains both games.

For cheats: I have cheat files for both games as you can see. When I load Aladdin through the playlist, it should automatically load "Aladdin (World) (Action Replay).cht" by looking in the cheat folder for a cheat file that starts with the content name without file extension "Aladdin (World)", use wildcards and ends with ".cht" and take the first one it finds. So for Aladdin it would look for "Aladdin (World)[wildcard].cht". "(Action Replay)" fits into the wildcard so it will automatically load it. If I want to use cheats I just enter the quickmenu and activate those I want. Now as you can see I've got two cheat files for "Ardy Lightfoot (World)" and by picking automatically the first one like I said before, it would pick the "(Action Replay)" file. Since I want to use the "(Game Genie)" cheat file I can either delete the Action Replay one or - and this would be a new feature - set up the specific cheat file I want in the playlist entry.

For overlays: As you can see I have an overlay for Aladdin so this should be picked automatically when I launch the game. There's no overlay for Ardy Lightfoot obviously so it takes the system default overlay for this which is the one named by the system itself -> "Nintendo - Super Nintendo Entertainment System.cfg/png" Another option would be to not load system default overlays in case there's no content overlay there but to set this up in the playlist entry as well. This way I could launch Aladdin (has an overlay so it takes that automatically), launch Ardy Lightfoot for which I set up the default SNES overlay in the playlist entry of Ardy Lightfoot and load Super Soccer which doesn't have an overlay and for which I did not put in the path to the snes default overlay in the playlist as I want to play that game scaled to full screen.

For individual content icons: Now this is short and simple: If there's an individual icon which matches the content name for the theme I'm currently using in XMB, it takes that as a content icon while it still uses the default content icon (SNES cartridge) for all other games in the list. Maybe this could be made optionally as well by adjusting it inside a playlist entry per game.

To not make the old playlists incompatible with RetroArch, new playlists could start with the line: [advanced_playlist] And if that's the case, RetroArch expects 9 instead of 6 lines per game: The usual 6 lines + cheat file overlay cfg file content icon file

Would do you think of this? I'm still on 1.6.7 for now so don't be rude with me if some of my suggestions are already implemented somehow. :)

Edit: As shaders seem to be the better overlays, just replace overlay by shader in my suggestions. :)

i30817 commented 6 years ago

Some of this (for example your game overlay idea) would benefit from my idea to make distributing game cfg files easier:

https://github.com/libretro/RetroArch/issues/6089

While that idea is 'just for cfg files' the same problem of figuring out that some custumization is supposed to apply to a game and having a way to distribute it for cases where a exact dump restriction is undesirable without requiring the user to (unrealistically) adapt their filenames to the hack exists in both cases.

Generally, i'd like at least some important things, have three levels of matching those customizations to a game, a exact crc level (for when a fuzzy identifier doesn't exist,or a hack subverts expectations), a fuzzy level that works on hacks and versions, when possible. Third level being filenames as is usual now.

As for functionality, i've long ago thought that RA should have a icon (green 'correct' and grey incorrect mini-icons would do) for a playlist item that was entered manually / doesn't have scanner whitelisting / probably can't be used on netplay. Many of the advanced functions of RA for metadata and netplay depend on having common dumps or exact crcs and that would be a good indicator that you shouldn't even try to redownload game pictures or enter the lobby for instance.