unexpectedpanda / retool

Retool: a better filter tool for Redump and No-Intro DAT files.
BSD 3-Clause "New" or "Revised" License
349 stars 23 forks source link

Prioritize languages without filtering for them #259

Closed n00b-sauce closed 1 year ago

n00b-sauce commented 1 year ago

I have found situations where there are multiple variations of a game that match both region and language filter and I can find no way to ensure retool selects my preferred match.

For example filtering for only English language with Europe as the priority region on Wii dat gives

+ Disney-Pixar Toy Story Mania! (Europe) (En,Es,Sv,No,Da)
  - Disney-Pixar Toy Story Mania! (Europe) (En,Fr,De,It,Nl)
  - Disney-Pixar Toy Story Mania! (USA) (En,Fr,Es)

+ DreamWorks Kung Fu Panda (Europe) (En,Fr,Nl)
  - DreamWorks Kung Fu Panda (Europe) (En,It)
  - DreamWorks Kung Fu Panda (USA) (En,Fr)

+ Inazuma Eleven Strikers (Europe) (En,Es,It)
  - Inazuma Eleven Strikers (Europe) (En,Fr,De)

+ Space Chimps (Europe) (En,Fr,De,Es,It)
  - Space Chimps (Europe) (En,Es)
  - Space Chimps (USA) (En,Fr)

+ Surf's Up (Europe) (En,Fr,De,Es,It)
  - Surf's Up (Europe) (En,Fr,Es)
  - Surf's Up (USA) (En,Fr,Es)

Desired

+ Disney-Pixar Toy Story Mania! (Europe) (En,Fr,De,It,Nl)
  - Disney-Pixar Toy Story Mania! (Europe) (En,Es,Sv,No,Da)
  - Disney-Pixar Toy Story Mania! (USA) (En,Fr,Es)

+ DreamWorks Kung Fu Panda (Europe) (En,Fr,Nl)
  - DreamWorks Kung Fu Panda (Europe) (En,It)
  - DreamWorks Kung Fu Panda (USA) (En,Fr)

+ Inazuma Eleven Strikers (Europe) (En,Fr,De)
  - Inazuma Eleven Strikers (Europe) (En,Es,It)

+ Space Chimps (Europe) (En,Fr,De,Es,It)
  - Space Chimps (Europe) (En,Es)
  - Space Chimps (USA) (En,Fr)

+ Surf's Up (Europe) (En,Fr,De,Es,It)
  - Surf's Up (Europe) (En,Fr,Es)
  - Surf's Up (USA) (En,Fr,Es)

Disney-Pixar Toy Story Mania! and Inazuma Eleven Strikers don't select the desired match. If I could give higher priority to Fr and De over Es it would choose the correct result.

The only workaround I can see is add French and German to the language filter resulting in a dat containing non English games, then run that dat through again with only English on the language filter.

Forgive me if I'm missing a way to get the desired result already.

unexpectedpanda commented 1 year ago

You're understanding correctly, and your workaround is the only way currently to achieve what you want.

So I can understand better when thinking this through for potential support; if you want English only titles, why does the remainder of the supported languages matter to you? Are you likely to just play the title in English anyway?

n00b-sauce commented 1 year ago

Thanks for clarifying, I have the work around correct.

Fair question. They are the ones that match the discs released here, the ones I have dumped.

unexpectedpanda commented 1 year ago

I see, so this is one of those situations where "Europe" is not actually Europe-wide, it's Redump calling something "Europe" when two or more European countries have the same release. The desire perhaps isn't so much the language, as securing the local release and the language is a proxy for that.

I guess this could also in theory affect the default language the title loads up in for some systems.

It's not a straightforward problem to solve, but I have a better idea now of the motivation behind the desire, thanks. There was a similar request some time back, but that person never explained why they wanted the feature, so it was hard for me to justify building something I didn't understand, especially when it adds a lot of complexity.

unexpectedpanda commented 1 year ago

This has been addressed in v2.00.4.

Filter by English, but then set your region order as Europe, France, Germany. This effectively gives you the following language order:

  1. English (explicitly in the language filter, and also the implied language for Europe)
  2. Spanish
  3. Portuguese
  4. French

While still restricting the titles to only those that support English. I might put some further thought into adding language priority vs filter further down the line.