andrebrait / 1g1r-romset-generator

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

No way to include a specific beta/demo/sample ROM #31

Open Kapow751 opened 3 years ago

Kapow751 commented 3 years ago

Since "Released ROMs" is prioritized above --prefer and --avoid, the only way to include a specific unreleased alternative seems to be using --exclude on the released ROM, which doesn't work for betas etc. that have the same title. Using --prefer-prereleases isn't an option since that replaces everything with beta versions.

Right now --prefer only affects versions of the same region/language, so a high priority --prefer (maybe --include? or call the old one --prefer-version or --prefer-variant?) would allow a lot more flexibility.

andrebrait commented 3 years ago

Hmm... this is a tricky one to implement. Which of the following would describe better what you want?

  1. "Try prereleases of X region before trying releases of others"
  2. "For game Y, try prereleases of X region before trying releases of others"
  3. "Prioritize this specific prerelease over every other candidate, if it exists"
Kapow751 commented 3 years ago

I would say both 1 and 3. As it is, I'm not sure why anyone would use --prefer-prereleases, since you end up with a weird mix of betas/demos/samples and final releases.

Originally, I was trying to get US protos over Japanese releases (Bashi Bazook, Squashed, etc.). Although it's possible to do this with --exclude on a case-by-case basis, it's easy to overlook something, so a general option would make this much less of a hassle. (This was actually my original issue before I realized --exclude would work, at this point these are really two separate issues.)

However, there's also the case where a game might have been changed for the worse between beta and release, and someone would want the beta of that specific game only. Since they have the same title and region with an extra "(Beta)" at the end, I think the only way to do that right now is an awkward --exclude using regex and $. It would be much easier if there was a higher priority "prefer" option.