¿Qué es un archivo ROM?

Un archivo ROM es una copia digital del chip de memoria de solo lectura de un cartucho de juego físico o disco. Cuando vuelcas los datos de un cartucho, el archivo binario resultante lleva un encabezado — un pequeño bloque de bytes al principio — que describe el juego y el hardware para el que fue construido. Cada familia de consolas utiliza su propia estructura de encabezado única, por lo que una ROM de NES se ve fundamentalmente diferente de una ROM de Game Boy o Sega Genesis a nivel de bytes.

El encabezado típicamente almacena información como la región objetivo, tipo de mapeador de memoria, tamaños de ROM y RAM, y un código identificador del juego. Esto hace posible detectar la consola de origen solo del archivo, sin depender únicamente de la extensión del archivo.

Descripción de la herramienta

Carga cualquier archivo ROM y la herramienta identificará instantáneamente a qué consola de juegos pertenece. Lee el encabezado binario, lo compara con firmas de consolas conocidas, y devuelve el nombre de la consola junto con metadatos específicos del sistema como región, código de juego, tipo de mapeador, tamaños de ROM/RAM, y hashes criptográficos (CRC32 y SHA-1). También se admiten archivos ZIP que contienen una ROM — la herramienta extraerá y analizará la primera ROM encontrada dentro.

Consolas soportadas

Consola Clave del sistema Notas
NES / Famicom nes Encabezados iNES 1.0 y NES 2.0; detecta mapeador y sub-mapeador
Super Nintendo sfc Detecta LoROM / HiROM, velocidad de ROM, coprocesadores (SuperFX, SA-1, DSP)
Nintendo 64 n64 Análisis de encabezado, detección de región, variantes con intercambio de bytes (.z64, .v64)
Game Boy / Color gb Detecta tipo MBC, tamaño de RAM, compatibilidad GBC / SGB
Game Boy Advance gba Extrae ID de juego y tipo de guardado (SRAM / Flash / EEPROM)
Nintendo DS nds Código de juego, región, código de unidad (compatible con DSi), capacidad del dispositivo
Sega Genesis / Mega Drive genesis Título nacional e internacional, número de serie, región
Sega Master System sms Encabezado TMR SEGA, código de producto, región
Sega Game Gear gg Basado en formato de encabezado Master System
PC Engine / TurboGrafx-16 pce Identificación básica
WonderSwan ws Encabezado de fin de ROM, ID de juego, modelo
WonderSwan Color wsc Encabezado de fin de ROM, ID de juego, modelo

Ejemplos

Resultado de carga de ROM de NES

Consola detectada  NES / Famicom
Clave del sistema  nes
CRC32              7d2d8d2c
SHA-1              a793e28a...
Versión NES        iNES 1.0
Mapeador           4
PRG ROM            256 KB
CHR ROM            128 KB
Región             NTSC

Resultado de carga de ROM de SNES

Consola detectada  Super Nintendo (SNES)
Clave del sistema  sfc
CRC32              b19ed489
Tipo de ROM        LoROM
Velocidad de ROM   SlowROM
RAM                8 KB

Características

  • Detección de consola desde bytes de encabezado: Identifica la consola leyendo palabras mágicas binarias y estructuras de encabezado, no solo la extensión del archivo
  • Soporte para archivos ZIP: Carga un archivo .zip que contiene una ROM y la herramienta analiza automáticamente la ROM dentro
  • Metadatos específicos del sistema: Muestra tipo de mapeador, región, código de juego, título, número de serie, tamaños de ROM y RAM dependiendo de la consola detectada
  • Salida de hash dual: Calcula CRC32 y SHA-1 simultáneamente, los dos checksums más comúnmente utilizados en bases de datos de verificación de ROM
  • Análisis del lado del servidor: El procesamiento ocurre en el servidor utilizando la librería roomie, por lo que no se aplican limitaciones de JavaScript del lado del cliente al análisis de archivos

Casos de uso

  • Organizar una biblioteca de ROM: Identifica rápidamente archivos ROM sin etiquetar o mal nombrados y ordénalos por consola sin necesidad de abrir un emulador
  • Verificar volcados de ROM: Compara el hash CRC32 o SHA-1 con bases de datos No-Intro, Redump o TOSEC para confirmar que una ROM es un volcado conocido y válido
  • Configuración de emulador: Confirma el mapeador exacto y la región de una ROM de NES o SNES antes de configurar un emulador que requiera esta información manualmente

Limitaciones

  • La detección se basa en la presencia de un encabezado válido en el archivo. Las ROM sin encabezado o corruptas pueden no ser reconocidas.
  • Solo se analiza una ROM por carga. Para archivos ZIP con múltiples ROM, solo se procesa el primer archivo coincidente.
  • La detección de consola cubre los sistemas listados arriba; los formatos de ROM para otras plataformas no son soportados.