Che cos'è un file ROM?

Un file ROM è una copia digitale del chip di memoria di sola lettura da una cartuccia di gioco fisica o da un disco. Quando estrai i dati da una cartuccia, il file binario risultante contiene un'intestazione — un piccolo blocco di byte all'inizio — che descrive il gioco e l'hardware per cui è stato creato. Ogni famiglia di console utilizza la propria struttura di intestazione univoca, quindi un ROM NES appare fondamentalmente diverso da un ROM Game Boy o Sega Genesis a livello di byte.

L'intestazione in genere memorizza informazioni come la regione di destinazione, il tipo di memory mapper, le dimensioni di ROM e RAM e un codice identificativo del gioco. Questo rende possibile rilevare la console di origine dal file stesso, senza affidarsi esclusivamente all'estensione del file.

Descrizione dello strumento

Carica qualsiasi file ROM e lo strumento identificherà istantaneamente a quale console di gioco appartiene. Legge l'intestazione binaria, la confronta con le firme note delle console e restituisce il nome della console insieme ai metadati specifici del sistema come regione, codice gioco, tipo di mapper, dimensioni ROM/RAM e hash crittografici (CRC32 e SHA-1). Sono supportati anche gli archivi ZIP contenenti un ROM — lo strumento estrarrà e analizzerà il primo ROM trovato all'interno.

Console supportate

Console Chiave sistema Note
NES / Famicom nes Intestazioni iNES 1.0 e NES 2.0; rileva mapper e sub-mapper
Super Nintendo sfc Rileva LoROM / HiROM, velocità ROM, co-processori (SuperFX, SA-1, DSP)
Nintendo 64 n64 Analisi dell'intestazione, rilevamento della regione, varianti byte-swap (.z64, .v64)
Game Boy / Color gb Rileva tipo MBC, dimensione RAM, compatibilità GBC / SGB
Game Boy Advance gba Estrae ID gioco e tipo di salvataggio (SRAM / Flash / EEPROM)
Nintendo DS nds Codice gioco, regione, codice unità (compatibile DSi), capacità dispositivo
Sega Genesis / Mega Drive genesis Titolo nazionale e internazionale, numero seriale, regione
Sega Master System sms Intestazione TMR SEGA, codice prodotto, regione
Sega Game Gear gg Basato sul formato di intestazione Master System
PC Engine / TurboGrafx-16 pce Identificazione di base
WonderSwan ws Intestazione di fine ROM, ID gioco, modello
WonderSwan Color wsc Intestazione di fine ROM, ID gioco, modello

Esempi

Risultato del caricamento di un ROM NES

Console rilevata  NES / Famicom
Chiave sistema    nes
CRC32             7d2d8d2c
SHA-1             a793e28a...
Versione NES      iNES 1.0
Mapper            4
PRG ROM           256 KB
CHR ROM           128 KB
Regione           NTSC

Risultato del caricamento di un ROM SNES

Console rilevata  Super Nintendo (SNES)
Chiave sistema    sfc
CRC32             b19ed489
Tipo ROM          LoROM
Velocità ROM      SlowROM
RAM               8 KB

Funzionalità

  • Rilevamento della console dai byte di intestazione: Identifica la console leggendo le parole magiche binarie e le strutture di intestazione, non solo l'estensione del file
  • Supporto per archivi ZIP: Carica un file .zip contenente un ROM e lo strumento analizza automaticamente il ROM all'interno
  • Metadati specifici del sistema: Visualizza tipo di mapper, regione, codice gioco, titolo, numero seriale, dimensioni ROM e RAM a seconda della console rilevata
  • Output hash doppio: Calcola CRC32 e SHA-1 contemporaneamente, i due checksum più comunemente utilizzati nei database di verifica ROM
  • Analisi lato server: L'elaborazione avviene sul server utilizzando la libreria roomie, quindi non si applicano limitazioni JavaScript lato client all'analisi dei file

Casi d'uso

  • Organizzazione di una libreria ROM: Identifica rapidamente i file ROM senza etichetta o con nome errato e ordinali per console senza dover aprire un emulatore
  • Verifica dei dump ROM: Confronta l'hash CRC32 o SHA-1 con i database No-Intro, Redump o TOSEC per confermare che un ROM è un dump noto e affidabile
  • Configurazione dell'emulatore: Conferma il mapper e la regione esatti di un ROM NES o SNES prima di configurare un emulatore che richiede queste informazioni manualmente

Limitazioni

  • Il rilevamento si basa sulla presenza di un'intestazione valida nel file. I ROM senza intestazione o corrotti potrebbero non essere riconosciuti.
  • Viene analizzato un solo ROM per caricamento. Per gli archivi ZIP con più ROM, viene elaborato solo il primo file corrispondente.
  • Il rilevamento della console copre i sistemi elencati sopra; i formati ROM per altre piattaforme non sono supportati.