What's new

MD5 codes of good roms (idea for n64 emulators)

OP
Hacktarux

Hacktarux

Emulator Developer
Moderator
Here, is a md5 library in visual basic, if you don't understand how to use that, i don't know what to say....
 

Reznor007

New member
Doomulation said:

I understand THAT.
But generally, what I don't understand is how to calculate the code.

And about the DLL, it can call c/c++ dlls. Just needn't do much trouble like saying FileP for argument of something that can do as a long...

Just do a search for MD5 on Yahoo or something, and you can probably find something about the algorithm.
 
OP
Hacktarux

Hacktarux

Emulator Developer
Moderator
icepir8 said:
Hacktarux:

Great Idea. who is going to build the list of MD5s for good roms?

Smiff has already done one, you can find this list on the first post of this thread. You can also find on this thread two lists built by flow and slougi, i have to check if there is any difference between these files, i don't think there's any difference but it has to be checked.
 

Doomulation

?????????????????????????
So I'm just gonna call MD5File with a filename and it returns the MD5 code?

And that code is CLEAR as hell. I don't understand how anybody CAN'T understand it.
 

rob in london

amiga nut
doomulation i think you need to buffer it instead of calling it with the filename, as unless you byte-swap it so they're all in the same file format, the same rom will generate different codes depending on how the data is arranged
 

Doomulation

?????????????????????????
rob in london said:
doomulation i think you need to buffer it instead of calling it with the filename, as unless you byte-swap it so they're all in the same file format, the same rom will generate different codes depending on how the data is arranged
Yeah, well, I was wondering 'cuz there was no explanation.
 

Doomulation

?????????????????????????
Hacktarux,
you've got a problem.

The process takes TOO much time! Takes forever just to load about 40 roms in the utility using it.

And secondly, trying this on Yoshi's Story (J) [!] returned a value of which i couldn't find in the list attached at the start.
 
OP
Hacktarux

Hacktarux

Emulator Developer
Moderator
What you mean by forever ?
Is it with your vb utility or with my little command line tool ?
Remember that Smiff and others have launched it on ~1000 roms and maybe they have to wait a few hours but they have not waited forever.

I have scan 50 roms over a lan and it takes about 10 mins.

For the Yoshi's Story problem, i have to ask again if it is with my tool or with your program that you obtain this value ? If it is with my tool, i'm almost sure that you have a bad dump. If it is with your program, check that you have all the bytes loaded and that you have correctly byteswapped it in your program.
 

StrmnNrmn

Moderator
Calculating an nd5 digest of each rom seems like an excellent method or verifying good and bad dumps to me. True, it's slow (especially over a full set of roms), but you can be quite clever and cache the results in a database, so you only need to calculate the results once (or until the rom changes on disk).
 

Doomulation

?????????????????????????
StrmnNrmn said:
Calculating an nd5 digest of each rom seems like an excellent method or verifying good and bad dumps to me. True, it's slow (especially over a full set of roms), but you can be quite clever and cache the results in a database, so you only need to calculate the results once (or until the rom changes on disk).
I've also thought about caching it, though, it still takes forever to load. And that must be changed.
Just loading an application and you have wait hours before you can use it? No thanks.

Hacktarux: I did it all with your tool. And yoshi's story was (J) [!], which means a good dump.
 
OP
Hacktarux

Hacktarux

Emulator Developer
Moderator
Doomulation said:

I've also thought about caching it, though, it still takes forever to load. And that must be changed.
Just loading an application and you have wait hours before you can use it? No thanks.

Hacktarux: I did it all with your tool. And yoshi's story was (J) [!], which means a good dump.

Firstly, we don't have to process all the roms before running the emu. We just have to check a rom when it is loaded and when the code is not in the cache. (If we want to add an option to check all the roms, we have to warn the user that it will take time)

Secondly (J) [!] doesn't mean that it's a good dump. It only means that someone have checked the rom with goodn64 and it was a good dump. But the file may have been altered since by transmission errors...
 

StrmnNrmn

Moderator
Why can't you just calculate the md5 digest when you need it - i.e. when the user starts to run the rom? The interface could just show "n/a" for roms that had not been checked. You could then add an option to scan all roms ("Warning, this operation may take several minutes"..), or check them using a lower-priority thread in the background.

But really, if you want to know for sure whether a rom is a good or bad dump, I don't see any option but performing a hash of every single byte of the file. What's going to take the time is the reading from disk (and decompression if zipped) - not the choice of hash function (md5, crc64 or whatever).
 

Doomulation

?????????????????????????
StrmnNrmn said:
Why can't you just calculate the md5 digest when you need it - i.e. when the user starts to run the rom? The interface could just show "n/a" for roms that had not been checked. You could then add an option to scan all roms ("Warning, this operation may take several minutes"..), or check them using a lower-priority thread in the background.

But really, if you want to know for sure whether a rom is a good or bad dump, I don't see any option but performing a hash of every single byte of the file. What's going to take the time is the reading from disk (and decompression if zipped) - not the choice of hash function (md5, crc64 or whatever).
Actually, dave gave me a c++-compiled DLL of which can perform the same thing to compare the whole file in a speed of about 40 roms in 2 seconds when unzipped.

When zipped, however, it took 260 seconds.
And about the md5...visual basic does not support multi-thread. VB .net does however, which is what I current have and is trying to learn.

And I did think of using what you said StrmnNrmn, by using a thread in the background to do this work, and to try to check a special rom when chosen to, and updating the gui when one rom has been checked.

This feature requires me to have a CRC database, but that's no problem.
 
OP
Hacktarux

Hacktarux

Emulator Developer
Moderator
I need some explanation about your dll ! For me such performances are impossible.

proof:
to execute a hash algorithm whatever it is and how much you optimize it, it needs to read all the bytes of each roms.

If we consider that each roms have 16 Mb length on average. Then 40 roms * 16 = 640 Mb : nearly the size of a cdrom.

And you say that you read a whole cdrom in 2 seconds !!!!!!!

Congratulation doom, your hard drive is able to burn a cdrom at 1083x :D

Try to calculate the maximum speed in nero and you'll see that it is impossible....
 

Doomulation

?????????????????????????
Hacktarux said:
I need some explanation about your dll ! For me such performances are impossible.

proof:
to execute a hash algorithm whatever it is and how much you optimize it, it needs to read all the bytes of each roms.

If we consider that each roms have 16 Mb length on average. Then 40 roms * 16 = 640 Mb : nearly the size of a cdrom.

And you say that you read a whole cdrom in 2 seconds !!!!!!!

Congratulation doom, your hard drive is able to burn a cdrom at 1083x :D

Try to calculate the maximum speed in nero and you'll see that it is impossible....
Dave reported this. I haven't tested myself. Ask dave.
 

ShadowPrince

Moderator
Seems,that he mean only time needed for calculating md5 sum,Hack.Without loading rom time,althought even this not explain record time of 2 sec :).May be 20 sec ?

Anyway i compiled the list of good codes for everyone who's
intrested.Based on the great project 64 rdb file. (slightly changed)
If someone have more complete list of roms with goodn64 sums ,than please leave me private message.(i can't make goodn64 work on my machine).Best to post here scan list of goodn64.

I have two problems with current list :

1.[FC70E272-08FFE7AA-C:50]
Good Name=Spacestation Silicon Valley (E) OR (F) [!]
Good Code=
2.[2F700DCD-176CC5C9-C:45]
Good Name=Turok - Dinosaur Hunter (U) (V1.1) OR (v1.2) [!]
Good Code=
If someone have those 4 roms,please post here their checksums in md5 format and goodn64 format.
 

Top