andrebrait / 1g1r-romset-generator

A small utility that uses No-Intro DATs to generate 1G1R ROM sets
GNU General Public License v3.0
213 stars 20 forks source link

Few filtering errors #49

Open xXAquaNightXx opened 2 months ago

xXAquaNightXx commented 2 months ago

py generate.py -r USA,EUR -l en --no-all --no-unlicensed --all-regions-with-lang --prefer-parents --no-scan -e zip -d "gba.dat" -i "D:\My Rom Sets\1g1r test" -o "D:\My Rom Sets\1g1r test\done"

This is the code I ran on complete no-into GBA set, and it got a few errors.

  1. It pulled: "Sims, The - Bustin' Out (USA, Europe) (En,Fr,De,Es,It,Nl)" instead of "Sims, The - Bustin' Out (USA) (En,Fr,De,Es,It,Nl) (Rev 1)". I know I asked to --prefer-parents but I think maybe you can alter it to prefer the highest revision if the parent has a revision (this would be a really good upgrade). Maybe a --highest-revision tag?

  2. It pulled "Polly Pocket! - Super Splash Island (USA) (Vivendi)" (this is a clone) instead of "Polly Pocket! - Super Splash Island (USA) (DSI)" (this is the parent) although i have the --prefer-parents tag.

  3. It pulled "Kid Paddle (Europe) (Fr,Nl)" this is not an english game but it is only available in those 2 languages. Maybe because --prefer-parents is on? It should maybe grab the parent only if its in the selected language?

This is a great script you have going here. I think would be the best alternative to retool with a little fine tuning since retool is no longer being maintained and seeing as this uses the no-into clone dats that are available. It pulled all of the same roms retool did with a few (only missed 6 roms) with the exceptions concerning the revisions and multi carts (this is okay because it makes it a true 1g1r). Maybe you can also look at the config file of retool for the exclusions it uses. Thank you for your work.

andrebrait commented 1 month ago

So, some background:

  1. This is happening because (USA, Europe) contains two of the regions you want whereas (USA) contains only one. The file with more region matches ends up scoring higher than the one with only USA, so it doesn't even reach the point where being a parent is used as an untie criteria. "--highest-revision" is already the default, but it also only comes after the region evaluation. Perhaps I can tune that, but this script is in maintenance mode now (soon to be replaced by DATROMTool).
  2. That one I have no clue what went wrong. It should have preferred the parent. It's a bug then.
  3. If language filtering is on, then this is wrong. If no language filtering was passed to the script, it would've preferred it because it's the parent, I suppose, but that's one of the very last untie criteria, so I think this is a bug.

Could you please zip the DAT and post it here?

And regarding retool, yes, I'm aware of it and I've been in contact with its developer. I'm a bit lagging at that, but my new tool will not only use the same rules, but also the same game databases, if no DAT is provided.