unexpectedpanda / retool

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

[Feature Request] Option to somehow incorporate T-En dats in 1G1R #304

Open geogolem opened 7 months ago

geogolem commented 7 months ago

Describe the feature This may be beyond the scope of Retool.. but Right now I use Retool to create a NoIntro 1G1R set using the Region precendence for English Speakers option as well as a filter for English language. Note that this excludes games that were released only in Japan unless they were officially in English.

I also use the T-En dats here: https://archive.org/download/En-ROMs/DATs/ to create a set of all games translated into English...

The merging of the 2 above sets provides me with a set that includes basically all english roms with the region precendence specified in Retool... exluding non english roms but then reintegrating those roms translated into english.

Expected behavior

This works fine for me for the most part -- but I am thinking I would prefer to remove the English language filter when using retool to produce my 1g1r set so that non english Japanese (or other region) roms would still be included if there is no official english counterpart --> however, then when I bring inthe T-En translated roms I need to manually seek out and replace the non English Japanese (or other counterparts) that the translation is based on...

I realize the T-En dats don't necessarily specify what game the translation is being patched on...but maybe this information could be somehow added to retool... so that I can produce a true 1G1R set with non english roms replaced by the T-En counterparts....

I believe it may be the case, that the T-En dat always has NoIntro naming for the roms but with more data appended... Maybe this could be somehow used to replace entries in the 1G1R Retool Processed dat, with corresponding entries from the T-En dat?

I don't know how difficult or feasible this would be.. but I suspect it would be a matter of someone (maybe me) creating a parent list for all the roms in the T-En dat... Does that make sense?

geogolem commented 7 months ago

Just wanted to chime in with an example:

The NoIntro SNES dat has:

    <game name="Accele Brid (Japan)" id="0020">
        <description>Accele Brid (Japan)</description>
        <rom name="Accele Brid (Japan).sfc" size="2097152" crc="4a736c38" md5="70688d5943868455f6c515dab44dbf57" sha1="8c9b8623d51d646631c0e5bc592440db4cfd1eab" sha256="9d5664d2b240a3b16ab8717a96c6d59e773ae6a3826e083ede41c3cce122fefb"/>
    </game>

however, in the T-En dat.. there is an entry:

    <machine name="Accele Brid (Japan) [T-En by Aeon Genesis v1.00]">
        <description>Accele Brid (Japan) [T-En by Aeon Genesis v1.00]</description>
        <rom name="Accele Brid (Japan) [T-En by Aeon Genesis v1.00].sfc" size="2097152" crc="43a1e6c6" md5="a3a3ededc23f537220bf17bf5ae90f4c" sha1="8e301af46cfda7dbb8ecc2faeeeb20c7fd8a95cd"/>
    </machine>

It would be nice to be able to make a 1G1R set in Retool but have that non english game replaced with the T-En from the T-En dat...

EDIT: I'm also not sure what should happen.. sometimes there are multiple translations in the T-En for the same rom.. so which one should be selected?

Maybe one might want to just include all the T-En translations... (i.e. multiple versions of T-En roms) but exclude the corresponding non T-En original the T-En rom is based on... I mean, if this is all one wants, it could be accomplished in a script.. Open T-En dat.. for each game entry in the dat, grab the corresponding noIntro Filename portion, search for corresponding entry in the dat produced by retool, and remove that entry...

I mean retool could have an option for that too maybe... you provide it a T-En dat, and it will remove all corresponding entries from the NoIntro 1G1R dat it produces...

Then you could have a collection with 1G1R (excluding games that have corresponding T-En, even if there are multiple T-En versions)

unexpectedpanda commented 7 months ago

I can understand the desire, but Retool support for these DAT files is a stretch too far, I'm afraid. Here are the hurdles to overcome:

In terms of removing T-En titles from No-Intro or Redump DAT files, Retool doesn't do analysis across DAT files, which is a big architectural shift to make. A previous request wanted to be able to select, say, a PS2 title over the same GameCube title, which is a similar idea with a similar problem — it's too much work for now, and there are definitely higher priorities in the short term.

The best possible solution I can think of with the current architecture is to provide an option like Remove titles that match T-En DAT file title names. Pointing at a folder of T-En DAT files and stripping the names of [] tags to match them against No-Intro and Redump in theory might work, but it'll break down if No-Intro or Redump renames their titles and T-En doesn't keep pace. It should be fine as a first step though, which means the most likely path is for me to build some kind of parser to generate an initial diff for all the DAT files, and build out clone list functionality to map the remaining files that don't match.

So it's not a no, but it's also definitely not a yes. If it happens, it'll be a long way out. In the meantime, you can potentially compile a list of titles you want to remove, and add them to Exclude in the Overrides tab, wrapping them in <> to also remove related titles.

geogolem commented 7 months ago

So it's not a no, but it's also definitely not a yes. If it happens, it'll be a long way out. In the meantime, you can potentially compile a list of titles you want to remove, and add them to Exclude in the Overrides tab, wrapping them in <> to also remove related titles.

Thanks for your response and the suggestion.. I will look into using the Excludes etc. I really just wanted to open the feature request in the hopes that someone might already have a solution.

A similar situation exists for the SNES MSU-1 enhanced ROMS: https://www.romhacking.net/?page=hacks&genre=&platform=&game=&category=&perpage=20&order=&dir=&title=MSU&author=&hacksearch=Go

I will do the exclusion thing there too.. it is a very similar situation but there are no corresponding dats and its easier to manage since it is only for a single system --> the exclusions should work nicely for that.