- Indlæg: 1260
- Tilmeldt: tors 12. jan 2006 10:17
- Geografisk sted: Vanløse
- Highscores: 0
- Arcade winning challenges: 0
Nu er jeg 2 gange inden for en måned blevet spurgt om det her, så jeg tænkte at der var basis for at lave en post om hvordan jeg identificerer og verificerer dumpede ROMer };-P
Altså, hvis jeg står med et ukendt board og gerne vil finde ud af hvad det er for et, starter jeg med at dumpe alle soklede ROMer (hvis ingen af dem er soklede, må man igang med at aflodde };-S). Dernæst bruger jeg MAMEs romident option til at prøve at identificere dem.
Jeg bruger ikke MAME til andet end at identificere ROMer, så jeg plejer bare jævnligt at hente den seneste bare-bone version direkte fra http://mamedev.org/, da jeg ikke behøver alt mulig fancy-smancy gui-front-end };-P
Når man har installeret det, vil der i rodmappen ligge mame.exe. Den kan bruges til identificere ROMer med, ved at køre den med option romident:
Den vil så beregne CRC32 for de filer man har fodret den med, og fortælle om det nogen den kender og i hvilke ROM-sæt de optræder. Hvis den ikke kender en fil, melder den enten "NOT A ROM" eller "NO MATCH". Det kan enten betyde at denne ROM ikke er emuleret af MAME eller at den er fejlbehæftet.
Bemærk, at det IKKE er nødvendigt at have nogen ROMer liggende for at MAME kan identificere; det kører udelukkende på de CRC'er der er bygget med i koden.
Bemærk også at der findes et online værktøj der kan gøre det samme, men kun med een fil ad gangen; her får man endda en masse lækker ekstra info også selvom filen ikke genkendes...det findes på adressen http://romident.coinopflorida.com/
Hvis man har dumpet alle ROMer fra et board, er det sjældent at overhovedet ingen af dem bliver genkendt, da fx grafik- og lyd-ROMer tit ikke ændres på bootlegs.
Har man en ROM der ikke er blevet genkendt, vil man typisk gerne finde ud af om det er fordi den er i stykker. Hvis blot een af de andre er blevet genkendt, kan man finde og downloade det relevante ROM-sæt. Man kan nu bruge programmet romcmp (ligger også i MAMEs rod-mappe) til at sammenligne dette sæt med det dumpede:
Hvis man kun giver den eet dir, sammenligner den alle filer med alle filer (krydsproduktet så at sige). Den fortæller også hvis der for en fil fx gælder at dele er ens. Dette kan tit være tilfældet, hvis man har brugt en EPROM der er for stor; man har da brændt det samme image flere gange efter hinanden. Den fortæller også om bits "der sidder fast" osv.
Får man en melding fra romcmp om at en ROM en næsten identisk med een af dem i det hentede sæt, kan det være tegn på at den er i stykker. I sådan et tilfælde plejer jeg at sammenligne de to i en binær differ. Dem findes der rigtig mange forskellige af, og det er et spørgsmål om smag hvilken een man er glad for. Jeg bruger selv een lille kommandolinjebaseret een der hedder VBinDiff (kan faktisk ikke huske hvor jeg har fundet den). Den er meget skrabet, men jeg er ikke meget til smart gui, og den gør præcis det den skal };-P Hvis der forekommer små forskelle sådan lidt hid og did, er det ret sikkert at den er i stykker. Hvis der derimod forekommer ændringer sådan lidt i større klumper, kan det blot være udtryk for at bootleggerne har ændret i koden.
Håber at nogen af jer kan bruge ovenstående til noget. Spørg gerne hvis noget er uklart, eller på anden måde bør uddybes. };-P
Altså, hvis jeg står med et ukendt board og gerne vil finde ud af hvad det er for et, starter jeg med at dumpe alle soklede ROMer (hvis ingen af dem er soklede, må man igang med at aflodde };-S). Dernæst bruger jeg MAMEs romident option til at prøve at identificere dem.
Jeg bruger ikke MAME til andet end at identificere ROMer, så jeg plejer bare jævnligt at hente den seneste bare-bone version direkte fra http://mamedev.org/, da jeg ikke behøver alt mulig fancy-smancy gui-front-end };-P
Når man har installeret det, vil der i rodmappen ligge mame.exe. Den kan bruges til identificere ROMer med, ved at køre den med option romident:
- Kode: Vælg alt
~/> mame.exe -romident <filnavn_eller_dir_eller_zipfil>
Den vil så beregne CRC32 for de filer man har fodret den med, og fortælle om det nogen den kender og i hvilke ROM-sæt de optræder. Hvis den ikke kender en fil, melder den enten "NOT A ROM" eller "NO MATCH". Det kan enten betyde at denne ROM ikke er emuleret af MAME eller at den er fejlbehæftet.
Bemærk, at det IKKE er nødvendigt at have nogen ROMer liggende for at MAME kan identificere; det kører udelukkende på de CRC'er der er bygget med i koden.
Bemærk også at der findes et online værktøj der kan gøre det samme, men kun med een fil ad gangen; her får man endda en masse lækker ekstra info også selvom filen ikke genkendes...det findes på adressen http://romident.coinopflorida.com/
Hvis man har dumpet alle ROMer fra et board, er det sjældent at overhovedet ingen af dem bliver genkendt, da fx grafik- og lyd-ROMer tit ikke ændres på bootlegs.
Har man en ROM der ikke er blevet genkendt, vil man typisk gerne finde ud af om det er fordi den er i stykker. Hvis blot een af de andre er blevet genkendt, kan man finde og downloade det relevante ROM-sæt. Man kan nu bruge programmet romcmp (ligger også i MAMEs rod-mappe) til at sammenligne dette sæt med det dumpede:
- Kode: Vælg alt
usage: romcmp [-d] [dir1 | zip1] [dir2 | zip2]
-d enables a slower, more comprehensive comparison.
Hvis man kun giver den eet dir, sammenligner den alle filer med alle filer (krydsproduktet så at sige). Den fortæller også hvis der for en fil fx gælder at dele er ens. Dette kan tit være tilfældet, hvis man har brugt en EPROM der er for stor; man har da brændt det samme image flere gange efter hinanden. Den fortæller også om bits "der sidder fast" osv.
Får man en melding fra romcmp om at en ROM en næsten identisk med een af dem i det hentede sæt, kan det være tegn på at den er i stykker. I sådan et tilfælde plejer jeg at sammenligne de to i en binær differ. Dem findes der rigtig mange forskellige af, og det er et spørgsmål om smag hvilken een man er glad for. Jeg bruger selv een lille kommandolinjebaseret een der hedder VBinDiff (kan faktisk ikke huske hvor jeg har fundet den). Den er meget skrabet, men jeg er ikke meget til smart gui, og den gør præcis det den skal };-P Hvis der forekommer små forskelle sådan lidt hid og did, er det ret sikkert at den er i stykker. Hvis der derimod forekommer ændringer sådan lidt i større klumper, kan det blot være udtryk for at bootleggerne har ændret i koden.
Håber at nogen af jer kan bruge ovenstående til noget. Spørg gerne hvis noget er uklart, eller på anden måde bør uddybes. };-P