libretro / libretro/RetroArch

[Feature Request] Add support for merging playlist entries of the same game but different languages.

Open
#10,402 1 comment 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C
Stars
14.1k
Forks
2.2k
Avg merge
7h 35m
Merged PRs (30d)
51

Description

Description

Currently, if you have two roms of the same game that have different languages, two playlist entries appear for each of them.

Expected behavior

Those two playlist entries should be merged into one, and an option should be added in the playlist entry sub-menu to select the language to be launched.

Actual behavior

The entries are not merged and it makes the playlist look messy.

Steps to reproduce the bug
  1. Have two roms of the same game with different languages
  2. Scan them

So, this is what I propose. This shouldn't be hard to do, my idea is to use .m3u files for this, the same way we use them to merge multidisc games into one. This is how it goes:

Add an option to the playlist entry sub-menu to change the current disc index to launch, and the game language. Example:

PlayStation (Playlist)
....|-Final Fantasy VII
........|-Run
........| Rename
........| Remove
........| Disc Index: 2 (NEW!)
........| Language: EN (NEW!)
........| Set Core Association
........| Reset Core Association
........| Information
........| Download Thumbnails

So this is how it should work, RetroArch currently supports .m3u files (as in, you can add them to it via the Desktop Menu and it will detect the ammount of discs a game has and change between them accordingly when setting a new index), so, adding a Disc Index option before you run the game to let you directly run that disc without having to open the game first and change it later should not be a big deal. But how can we make RA detect a game language? Simple, we will use a bit of custom formatting for .m3u files.

Currently, .m3u files are formatted like this:

Final Fantasy VII (Disc 1).cue
Final Fantasy VII (Disc 2).cue
Final Fantasy VII (Disc 3).cue

RetroArch detects three entries, so it knows there's three discs, and the line number (I pressume) lets it know the index of each one. If we want to make RA detect the language, we could format .m3u like this:

EN
Final Fantasy VII (EN) (Disc 1).cue
Final Fantasy VII (EN) (Disc 2).cue
Final Fantasy VII (EN) (Disc 3).cue

JP
Final Fantasy VII (JP) (Disc 1).cue
Final Fantasy VII (JP) (Disc 2).cue
Final Fantasy VII (JP) (Disc 3).cue

That's my idea at least, we could put some special character to let RA know which is a language tag and which is a .cue entry but this alone should work (with the necessary modifications of course). RA should ignore any entry in the .m3u file that is not directly below the language tag that it's set to. Coupled with this we could also make RA detect .m3u files directly instead of having to add them manually? What do you guys think?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Review RetroArch's playlist scanning, .m3u handling, and the playlist entry sub-menu described in the issue. First confirm whether the proposed language-grouped .m3u format is compatible with current playlist behavior. Done means same-game entries with different languages appear as one entry and the sub-menu can select the language to launch.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
frontend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.