libretro / libretro/RetroArch

[Feature Request] Ignore brackets and their content in filenames (for scanning purposes)

Open
#18,290 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

Typically, a game file is named as such Game Name (Region) (Revision). RetroArch has no trouble reading it and properly lodging it in a corresponding database, playlist and even providing thumbnails for the game.

If a file is externally modified (normally for translation and general rom hacking), users tend to rename it, for better organization and clarification. As to not mess with the original naming scheme, any additional information is usually added between brackets, which denote those external modifications; on the other hand, information about the original, untampered, file is kept between parenthesis.

As an example, let's consider a hypothetical japanese game:
My Game (Japan).extension
Translated to english, it could be named:
My Game (Japan) [English Translation].extension

Naturally, RetroArch cannot recognize the translated name. After all, it's not the original file, and it's not humanly possible to add every single little modification for all games into a internal database.

However, although My Game (Japan) [English Translation].extension isn't inside the database, My Game (Japan).extension is. That means, any modified game can be readily recognized, if RetroArch choose to ignore the brackets and their information in any filename. That's what I suggest with this feature request.

Not everyone wants this behavior though. Some people like to have multiple modifications of a same game, so it would disturb their usecase. Thus, the feature could be an option (off by default) inside of Settings > Playlists > Ignore brackets when scanning filenames.

I consider it a middle-ground, a compromise, that could help with the following suggestion:
https://github.com/libretro/RetroArch/issues/15162

And this one, by focusing on manual scan with filename matching, instead of checksum comparison:
https://github.com/libretro/RetroArch/issues/10952

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

Start by tracing manual filename scanning and the Settings > Playlists options described in the request. Done means an off-by-default setting can ignore bracketed filename content for database matching while preserving the existing behavior when disabled.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
tooling
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.