I have a collection of ROM files for the NES, SNES, Nintendo 64 and others. These ROMs match exactly those games that I own or owned growing up.
Recently, I found out about the "No-Intros" database, and thus made a script to import all the filenames and hashes into my database. I then looped through all my ROM files and checked if they match their data.
None of them do.
I have very carefully double-checked that it's not a bug in my script. My database does contain the correct information from their database.
I do it like this:
- Pick a ROM file, such as:
Tetris (Europe).nes
- Calculate the SHA1 hash sum for the file, in this case:
817169b819aadaae52cce6b3d8d2fc24270566d7
- Check what SHA1 hash No-Intros claims that this exact file name has in my database:
66883b9eddec933e36b6bff0479cefd2434ffb40
- Conclusion: They don't match!
Apparently, every single ROM I have is modified somehow.
Now, I vaguely know that many ROMs circulating over the decades have been "dirty" ones with modified headers (but otherwise identical game contents), messing up the hashes. That's likely what's happening here. I also vaguely know about programs that can scan and "repair" dirty ROMs to make them clean. However, I feel very, very scared about running software on my computer, so this would have to be a last resort, plus I'm not sure I can find any usable such software.
If possible, I would like to "clean" the ROMs myself with some simple logic or some very trustworthy self-contained script or something. But even more than that, I would like to know if my guess is even right at all.
I assume that No-Intros' data is correct, or at least is not so massively incorrect as to give the wrong hashes for every single ROM I own.
This makes me feel uneasy. I hate the thought of having some kind of "hacked" ROMs where some dude in 1997 or something modified the game slightly so that it runs differently. I want to be sure that I have only the exact data on the cartridges. Nothing more and nothing less.
This is all very confusing to me since my ROMs follow a very strict naming convention. For example: Zelda II - The Adventure of Link (Europe) (Rev B).nes
. It seems unlikely (although definitely possible still) that somebody would go out of their way to rename bad ROMs to such a strict and specific naming scheme.
What do you suggest?