Aller au contenu

Calcul Des Crc Sans Les Headers


Messages recommandés

Bonjour,

J’ai un pti problème pour identifier les roms par leur crc.

Je sais que les roms peuvent contenir un header et que ce header peut varier pour une même rom. Par conséquent il est préférable d’identifier les roms en calculant le crc en faisant abstraction des headers.

Prenons un exemple :

Pour les roms snes, j’ai trouvé l’info suivante :

2) Division d'une Rom-snes.

2.1) Header.

N'oubliez pas avant tout que les rom correspondent à des données pompées à partir d'un support cartouche fonctionnant sur une console et pas un ordinateur PC!!

Ces fichiers (Rom) obtenus sont ensuite adapté afin de tourner par le biais des émulateurs sur votre PC.

Il y a au départ de la Rom une toute petite portion qui n'existait pas à l'origine sur la cartouche ; elle ne contient que quelques octets et une longue suite de 00 00 00 etc..

On appel ça le "Header" et il a une particularité c'est d'avoir toujours une taille CONSTANTE de 200 OCTETS. (soit de 00 à 1FF octet ,hé oui n'oubliez pas le zéro il compte lui aussi!!)

Comme le header n'existe pas à l'origine lorsque vous vous trouvez à l'adresse 200(PC) la rom va elle en fait lire cette adresse comme étant 00.*

Résumons  header=200 octets de 00 à 01FF (PC)

                    début réelle de la rom à 200(PC)

                    adresse PC(200) = adresse SNES(00)*

* en fait l'adresse snes "00" n'existe pas elle correspond plutôt a C0 00 00 ou à 80 00 suivant le type

de rom ce qui va être abordé plus bas.

Source: http://finaltranslation.uhrft.org/docs/FaqdeLag.php3

Pour identifier les roms snes, j’ai le dat de clrmamepro : qui références les roms snes avec leur crc correspondant (crc calculé sans les headers).

par conséquent pour identifier une rom snes je doit calculer les crc de mes roms sans les headers, c-a-d en faisant abstraction des 200 premiers octets . Mais là je rencontre un problème, si j’ai des roms snes sans headers ( et j’en ai) dans ce cas je vais calculer le crc sans prendre les 200 premiers octets de la roms et par conséquent, je vais obtenir un crc qui ne correspondra pas à ma liste de roms ( .dat).

ma question est donc : comment identifier si une rom contient un header ou pas ? ou y a t’ il une règle qui permettent de calculer les crc à partir du bon octet ( du début si la roms n’a pas de header et après le headers si la roms en contient un )?

J’ai constaté avec romcenter qu’il identifie bien mes roms et qui me donne bien les crc sans prendre les headers (pour les roms avec headers et ceux sans) il y a donc forcément une astuce… mais je n’arrive pas à trouver d’infos :'(

Voilà, si quelqu’un pouvez me renseigner ou éventuellement me donner des liens vers + d’infos ou me rediriger vers des gars qui pourrait m’aider, j’en serais ravi. :class:

@+

Dgé

Lien vers le commentaire
Partager sur d’autres sites

Il y a des utilitaires qui enlèves les headers si ils sont présents ! :class:

En effet les émulateurs n'en non plus besoin

Et en plus des headers les roms sont sous divers formats encriptages qui modifient les crcs ...

(pour la snes, le .bin .smc .swc .sfc ...)

Donc pas facile de s'y retrouver !

Ces même utilitaires peuvent en général aussi changer le format de la rom

Pour la snes ils me semble que SnesTools se charge de tout ça

(je crois me souvenir qu'il est en ligne de commande dos et je sais plus si il gère le zip)

il est sur le site

http://www.emunova.net/emulation/utilitaires/snes.htm

pour d'autre utilitaires snes

http://www.consolemul.com/utilitaires.php?machine=28

autrement pour avoir des datfiles (pour clrmame ou romcenter) de qualité je te conseille ceux de No-Intro :lol:

http://www.gbadat.altervista.org/index.htm

Tout leurs dats sont sans header et dans un seul format qui est en locurence pour la snes le sfc

Et ils ne listent que les roms commerciales et que dans des bonnes versions :lol:

Modifié par Dark_Kaze
Lien vers le commentaire
Partager sur d’autres sites

salut et merci Dark_Kaze, encore moi avec mes questions sur les crc :lol:

Il y a des utilitaires qui enlèves les headers si ils sont présents ! :lol:

En effet les émulateurs n'en non plus besoin

Et en plus des headers les roms sont sous divers formats encriptages qui modifient les crcs ...

(pour la snes, le .bin .smc .swc .sfc ...)

effectivement j'ai testé avec HbSnesTools.exe pour supprimer les headers et pour vérifier les crcs.

mais cela ne m'arrange pas, je ne voudrais indentifier les roms des utilisateurs sans qu'ils aient à supprimer les headers et sans changer le formats de leur roms... de plus pour les autres platforms ( or snes) on ne trouve pas bcp de tools qui permettent de supprimer automatiquement les headers des roms.

pour vérifier les crcs et les headers de mes autres roms, j'ai du télécharger un editeur hexadecimal et supprimer les headers à la mano. et là je vois mal demander aux utilisateurs de se demerder à supprimer les headers de leur roms...

il doit bien y avoir une astuce :lol: comment les tools comme romcenter et autres arrivent à identifier les roms sans que l'on soit obligé d'intervenir nous même sur nos roms ?

je cherche uniquement à identifier les roms que les utilisateurs possèdent pour y faire associer des donnèes rien de plus... mais c'est pas simple...

concernant les dats de No-Intro,

yep tu me les avais déjà conseillé, je vais vérifier mais je penses que ces dats sont inclus dans ma liste :class:

@+

Modifié par dgemily
Lien vers le commentaire
Partager sur d’autres sites

salut et merci Dark_Kaze, encore moi avec mes questions sur les crc  ;)

Encore toi :P

Non je blague: rebienvenu :P

Pourquoi ne pas creer un compte utilisateur ?

effectivement j'ai testé avec HbSnesTools.exe pour supprimer les headers et pour vérifier les crcs.

mais cela ne m'arrange pas, je ne voudrais indentifier les roms des utilisateurs sans qu'ils aient à supprimer les headers et sans changer le formats de leur roms... de plus pour les autres platforms ( or snes) on ne trouve pas bcp de tools qui permettent de supprimer automatiquement les headers des roms.

pour vérifier les crcs et les headers de mes autres roms, j'ai du télécharger un editeur hexadecimal et supprimer les headers à la mano. et là je vois mal demander aux utilisateurs de se demerder à supprimer les headers de leur roms...

il doit bien y avoir une astuce  :(  comment les tools comme romcenter et autres arrivent à identifier les roms sans que l'on soit obligé d'intervenir nous même sur nos roms ?

je cherche uniquement à identifier les roms que les utilisateurs possèdent pour y faire associer des donnèes rien de plus... mais c'est pas simple...

Ah oui c'est vrai tu veux programmer un utilitaire :P

Bon premierement, si, on trouve plein de tools même sur les autres plateformes (il y en a tjs un) ;)

Par exemple ceux que j'ai utilsé il y a pas longtemps

pour la pce pcetoy pour la n64 tool64 pour la megadrive gensuite ...

va voir sur le site de consolemul:

http://www.consolemul.com/rubriques.php?rub=2

Ensuite, voila les choses comme je les vois:

Concernant les headers:

Ils sont apparuent il y a longtemps avec les 1er copieurs de jeux

Donc chaque copieur avait son format de header et son encodage de la rom

(par exemple pour le codage de la n64 il y a "Big Endian", "Byteswapped" ou "Little Endian" d'ou les 3 formats de fichiers differents)

Et par la suite je ne pense pas qu'il y ai eu de standardisation comme les id-tags des mp3 par exemple ...

Alors comment fond les outils et les emulateurs pour voir si il y a un header ?

La réponse est simple ils ont deja l'encodage avec le format de fichier, ensuite ils savents que les roms ont des tailles standarts (c'est des puces memoires à l'origine)

(par exemple secret of mana (fr) sa taille est de 2Mbits soit 2 Mo sans header)

(et de plus les headers ont des tailles standarts aussi mais admettons que ce n'est pas le cas, par exemple si par hasard 2 headers ont ete rajoutté ...)

l'utilitaire ou l'emulateur ouvre le fichier comme il a affaire à un fichier faisant un peu plus de 2 mo il considere que la rom sans header fait 2 mo

donc en partant de la fin il charge la rom, la convertit au format qu'il connait dont il se sert de reference en interne ... et calcule son crc

qu'il recherche ensuite dans sa liste !

Et voila miracle ça marche il reconnait secret of mana ^^

concernant les dats de No-Intro,

yep tu me les avais déjà conseillé, je vais vérifier mais je penses que ces dats sont inclus dans ma liste  :delire:

Et je te les reconseille encore :P

Pour ta liste sans header c'est ces dats qu'il te faut mais mentionne que tu les a utilisés !

Lien vers le commentaire
Partager sur d’autres sites

Pourquoi ne pas creer un compte utilisateur ?

quel serait mes avantages ^^

Ah un dernier conseil avant de faire un utilitaire multisysteme concentre toi sur un seul et rajoutte d'autre systeme petit a petit mais ça tu t en doutais déjà

en fait je taf ( bénévolement bien sûr :( ) sur un centre multimedia , style windows media center mais bcp mieux et gratuit :P

je taf donc sur pleims de projets en même temps liés à ce soft et notamment l'integration des jeux vidéos . mais perso ça va faire au moins un an que je n'ai pas joué avec mes roms, j'ai pas le temps mais chuuuuuuut :delire:

Ah oui c'est vrai tu veux programmer un utilitaire

oui et non :P en fait j'essaie de construire l'application mais ce n'est pas moi qui la programme:

je construis d'un côté des grosses databases de donnèes sur les roms( contennant notamment les crc et la taille des roms), et je veux que l'appli scanne les roms de l'utilisateurs pour les mettre en relation avec nos databases pour finalement en construire une uniquement avec les roms presents dans les répertoires de l'utilisateur. mais pour ça j'essaie de trouver le moyen le + sûr pour identifier les roms...

ton explication sur le calcul des crc me semble logique :P je vais essayer de faire + de recherches pour etre sûr des astuces utilisées pour identifier les roms.

Pour ta liste sans header c'est ces dats qu'il te faut mais mentionne que tu les a utilisés !

don't worry, je vais le faire bien sûr :P

n'hésitez pas à me donner des infos sur la taille des roms, le calcul des crc, les headers etc...

je cherche les règles( tailles des roms des headers etc..) concernant les platforms ( SNES, NES, GBA, Megadrive, Master System, Zinc, Nintendo 64, le reste je verrais + tard ;) )

merci d'avance,

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

Salut,

Je pense finalement que je vais utiliser un tool pour scanner les roms présent dans un dossier et construire une liste de ces roms avec les bons crc correspondants.

Je connais, romcenter, clrmame,ucon64 et les goodtools. si vous en connaissez d’autres je suis preneur :class: ( surtout si il s peuvent s’utiliser en lignes de commandes…)

@+

Modifié par dgemily
Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

Chargement
×
×
  • Créer...

Information importante

By using this site, you agree to our Conditions d’utilisation.