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

Roms with (World) are being preferred, even if they are clonesof. #43

Open ZacharyFoxx opened 1 year ago

ZacharyFoxx commented 1 year ago

I used this command:

python3 generate.py -r USA,BRA,EUR -l en --no-bios --no-program --no-enhancement-chip --no-proto --no-beta --no-demo --no-sample --no-pirate --no-homebrew --no-promo -d snes.dat

In the result, the program is choosing the rom Darius Force (World) (Darius Cozmic Collection).zip, even though in the dat file it is marked as a clone of the rom Super Nova.

I manually checked the CRC of the roms and they match what is in the dat.

Since I specified the USA region, shouldn't it disregard the World rom?

snes.dat.zip

andrebrait commented 1 year ago

World means USA+EUR+JPN. It therefore doesn't discriminate between them. USA and World are both "USA".

You can maybe get it to avoid Collection ROMs by using --avoid Collection, for example, or tell it to avoid "(World)".

jmf626 commented 1 year ago

Hi, the exact same thing happened to me. Maybe it would be a good idea to separate the roms (World), for example adding a 'WOR' (World) line and remove the |(World) from USA, Japan and Europe string, I think it would be much more customizable.

andrebrait commented 1 year ago

Hi, the exact same thing happened to me. Maybe it would be a good idea to separate the roms (World), for example adding a 'WOR' (World) line and remove the |(World) from USA, Japan and Europe string, I think it would be much more customizable.

For whatever reason I didn't see your comment here. Sorry for taking so long to get back to you.

I kinda get where you're coming from, but it's a little weird if you think about it. World is literally USA+EUR+JPN. There's no reason to actually prefer (USA) or (USA, Europe) or (USA, Japan) over (World) other than ROM name, is there?

I may be understanding it wrong. Let me know if I am.

World usually just means that a game has probably little text (and the little is there is in English), or that it is thoroughly localized in the first place, so it gets released, unmodified, across all major regions. Those games might even have a (USA) variant or something, but I have no idea why those would be preferred.

I can add a specific option for such thing (for those who aren't so fond of using --avoid) but is there any reason why that should be the default?

jmf626 commented 1 year ago

Hi! First of all thanks for answering me, there's no problem for the delay.

Let me give you an example with nes game Super C (USA), Super Contra (Japan), Probotector II (Europe).

It turns out that the (World) released version of this game is Probotector II - Return of the Evil Forces (World) (Contra Anniversary Collection), which is the European (censored) version of the game. Therefore, for example when you do -r USA,EUR,JPN the program is indirectly prioritizing a European version over an American one. Ideally, the program should keep the American version Super C (USA) instead (World) version. As you will see it's not something critical, but it happens in some other games too. This can be solved by separating the World region, in order to prioritize USA, let's say -r USA,WOR,EUR,JPN.

I created a fork of your program with this very little modification and I also added an independent filter for the roms [b], if you are interested you can review it, I was testing it and I got the results I was looking for.

I hope I was clear, as english is not my first language. Thank you again for your answer and for your excellent program, so far the most useful and understandable of all the 1G1R I've tried.

Goodbye!

andrebrait commented 1 year ago

Ok, that makes sense. I guess there's a reason for that, indeed, in the context of newer releases being potentially changed over the originals.

Ok, I'll see if I can add an option for that.