Τι είναι ένα αρχείο ROM;

Ένα αρχείο ROM είναι ένα ψηφιακό αντίγραφο του chip μνήμης μόνο για ανάγνωση από ένα φυσικό κέρμα παιχνιδιού ή δίσκο. Όταν εξάγετε τα δεδομένα από ένα κέρμα, το προκύπτον δυαδικό αρχείο φέρει μια κεφαλίδα — ένα μικρό μπλοκ byte στην αρχή — που περιγράφει το παιχνίδι και το υλικό για το οποίο δημιουργήθηκε. Κάθε οικογένεια κονσόλας χρησιμοποιεί τη δική της μοναδική δομή κεφαλίδας, επομένως ένα NES ROM φαίνεται θεμελιακά διαφορετικό από ένα Game Boy ή Sega Genesis ROM σε επίπεδο byte.

Η κεφαλίδα συνήθως αποθηκεύει πληροφορίες όπως η περιοχή προορισμού, ο τύπος mapper μνήμης, τα μεγέθη ROM και RAM, και ένας κωδικός αναγνώρισης παιχνιδιού. Αυτό καθιστά δυνατή την ανίχνευση της κονσόλας προέλευσης από το αρχείο μόνο, χωρίς να βασίζεστε αποκλειστικά στην επέκταση αρχείου.

Περιγραφή εργαλείου

Ανεβάστε οποιοδήποτε αρχείο ROM και το εργαλείο θα αναγνωρίσει αμέσως σε ποια κονσόλα παιχνιδιού ανήκει. Διαβάζει τη δυαδική κεφαλίδα, την αντιστοιχίζει με γνωστές υπογραφές κονσόλας και επιστρέφει το όνομα της κονσόλας μαζί με μεταδεδομένα ειδικά για το σύστημα, όπως περιοχή, κωδικό παιχνιδιού, τύπο mapper, μεγέθη ROM/RAM και κρυπτογραφικά hashes (CRC32 και SHA-1). Υποστηρίζονται επίσης αρχεία ZIP που περιέχουν ένα ROM — το εργαλείο θα εξάγει και θα αναλύσει το πρώτο ROM που βρίσκεται στο εσωτερικό.

Υποστηριζόμενες κονσόλες

Κονσόλα Κλειδί συστήματος Σημειώσεις
NES / Famicom nes iNES 1.0 και NES 2.0 κεφαλίδες· ανιχνεύει mapper και sub-mapper
Super Nintendo sfc Ανιχνεύει LoROM / HiROM, ταχύτητα ROM, συν-επεξεργαστές (SuperFX, SA-1, DSP)
Nintendo 64 n64 Ανάλυση κεφαλίδας, ανίχνευση περιοχής, παραλλαγές byte-swap (.z64, .v64)
Game Boy / Color gb Ανιχνεύει τύπο MBC, μέγεθος RAM, συμβατότητα GBC / SGB
Game Boy Advance gba Εξάγει ID παιχνιδιού και τύπο αποθήκευσης (SRAM / Flash / EEPROM)
Nintendo DS nds Κωδικό παιχνιδιού, περιοχή, κωδικό μονάδας (συμβατό με DSi), χωρητικότητα συσκευής
Sega Genesis / Mega Drive genesis Τίτλος εγχώριος και εξωτερικός, σειριακός αριθμός, περιοχή
Sega Master System sms Κεφαλίδα TMR SEGA, κωδικό προϊόντος, περιοχή
Sega Game Gear gg Βασίζεται στη μορφή κεφαλίδας Master System
PC Engine / TurboGrafx-16 pce Βασική αναγνώριση
WonderSwan ws Κεφαλίδα τέλους ROM, ID παιχνιδιού, μοντέλο
WonderSwan Color wsc Κεφαλίδα τέλους ROM, ID παιχνιδιού, μοντέλο

Παραδείγματα

Αποτέλεσμα ανεβάσματος NES ROM

Detected Console  NES / Famicom
System Key        nes
CRC32             7d2d8d2c
SHA-1             a793e28a...
NES Version       iNES 1.0
Mapper            4
PRG ROM           256 KB
CHR ROM           128 KB
Region            NTSC

Αποτέλεσμα ανεβάσματος SNES ROM

Detected Console  Super Nintendo (SNES)
System Key        sfc
CRC32             b19ed489
ROM Type          LoROM
ROM Speed         SlowROM
RAM               8 KB

Χαρακτηριστικά

  • Ανίχνευση κονσόλας από byte κεφαλίδας: Αναγνωρίζει την κονσόλα διαβάζοντας δυαδικές λέξεις magic και δομές κεφαλίδας, όχι μόνο την επέκταση αρχείου
  • Υποστήριξη αρχείων ZIP: Ανεβάστε ένα αρχείο .zip που περιέχει ένα ROM και το εργαλείο αναλύει αυτόματα το ROM στο εσωτερικό
  • Μεταδεδομένα ειδικά για το σύστημα: Εμφανίζει τύπο mapper, περιοχή, κωδικό παιχνιδιού, τίτλο, σειριακό, μεγέθη ROM και RAM ανάλογα με την ανιχνευθείσα κονσόλα
  • Διπλή έξοδος hash: Υπολογίζει CRC32 και SHA-1 ταυτόχρονα, τα δύο πιο συχνά χρησιμοποιούμενα checksums σε βάσεις δεδομένων επαλήθευσης ROM
  • Ανάλυση στην πλευρά του διακομιστή: Η επεξεργασία γίνεται στον διακομιστή χρησιμοποιώντας τη βιβλιοθήκη roomie, επομένως δεν ισχύουν περιορισμοί JavaScript στην πλευρά του πελάτη για ανάλυση αρχείων

Περιπτώσεις χρήσης

  • Οργάνωση μιας βιβλιοθήκης ROM: Αναγνωρίστε γρήγορα αρχεία ROM χωρίς ετικέτα ή με λάθος όνομα και ταξινομήστε τα κατά κονσόλα χωρίς να χρειάζεται να ανοίξετε έναν εξομοιωτή
  • Επαλήθευση ROM dumps: Διασταυρώστε το hash CRC32 ή SHA-1 με βάσεις δεδομένων No-Intro, Redump ή TOSEC για να επιβεβαιώσετε ότι ένα ROM είναι ένα γνωστό καλό dump
  • Ρύθμιση εξομοιωτή: Επιβεβαιώστε τον ακριβή mapper και την περιοχή ενός NES ή SNES ROM πριν διαμορφώσετε έναν εξομοιωτή που απαιτεί αυτές τις πληροφορίες χειροκίνητα

Περιορισμοί

  • Η ανίχνευση βασίζεται στην παρουσία μιας έγκυρης κεφαλίδας στο αρχείο. Τα ROM χωρίς κεφαλίδα ή κατεστραμμένα ενδέχεται να μην αναγνωρίζονται.
  • Αναλύεται μόνο ένα ROM ανά ανέβασμα. Για αρχεία ZIP με πολλαπλά ROM, επεξεργάζεται μόνο το πρώτο αντιστοιχούμενο αρχείο.
  • Η ανίχνευση κονσόλας καλύπτει τα συστήματα που αναφέρονται παραπάνω· οι μορφές ROM για άλλες πλατφόρμες δεν υποστηρίζονται.