Un cartucho no cabe en su ROM, y un disco de PlayStation no cabe en un .iso
Dos formatos, dos pérdidas distintas. Redump registra el disco de Symphony of the Night en dos pistas y la segunda no cabe en un «.iso»; el firmware del DSP-1 iba dentro del cartucho de Super Mario Kart y no salía por el conector.
ROM e ISO nombran dos operaciones distintas. Un volcado ROM copia el contenido de un chip de memoria de solo lectura. Una imagen de disco copia una secuencia de sectores grabados sobre una superficie. Uno lee un componente; la otra, un soporte. Ninguno se lleva todo el original.
El primer error está en la palabra. «.iso» no es un formato de imagen: la extensión viene de ISO 9660, que en Ecma International es ECMA-119, «Volume and file structure of CD-ROM for information interchange», de diciembre de 1986. Es una norma de sistema de archivos: dice cómo se ordenan los directorios dentro del disco, no cómo se copia el disco. Se propagó desde el CD-ROM de PC, donde las dos cosas casi coinciden: una pista de datos y nada más.
Un disco de consola no es una sola pista
ECMA-130, la norma del CD-ROM físico, fija la unidad: «A Sector shall comprise 2 352 bytes», de los cuales sólo 2 048 son datos de usuario en el modo (01); el resto es sincronía, cabecera y corrección de errores. Y una pista no basta. Redump registra el Castlevania: Symphony of the Night estadounidense (SLUS-00067) con dos: datos en modo 2, 538 655 040 bytes, y audio, 44 676 240 bytes: cuatro minutos y trece segundos de música. Un «.iso» no tiene dónde poner la segunda. De ahí el par BIN/CUE: el .bin guarda los sectores crudos, el .cue guarda la lista de pistas. Y algo queda fuera incluso así: la protección de ciertos discos vive en el subcanal, fuera de todo sector; DuckStation pide entonces un .sbi al lado de la imagen.
Un cartucho tampoco es una ROM
Del otro lado, lo simétrico. Un cartucho es una placa: la ROM de máscara y, según el juego, un mapper, un chip de bloqueo o una pila con memoria que se escribe —la pieza que el Famicom Disk System no necesitaba porque su disquete ya era regrabable—. Nada de eso cabe en el volcado, y por eso el formato iNES añadió una cabecera de 16 bytes para anotarlo: el mapper, la disposición de las nametables y, en un bit, «the presence of persistent saved memory».
El caso extremo es el DSP-1, coprocesador de una decena de juegos de Super Nintendo, entre ellos Pilotwings y las primeras copias de Super Mario Kart. Su firmware venía dentro del cartucho y aun así no está en la ROM: higan pide esos 8 KiB aparte, porque no salían por el conector. En el foro de NESdev lo explican así: esos chips no tienen ninguna orden que los haga escribir su firmware afuera, porque la consola nunca lo necesitó. Los que existen se volcaron destapando el chip. Es el mismo problema del archivo BIOS, con otro nombre.
Ni «ROM» ni «.iso» copian el medio: copian lo que el medio deja leer de corrido. Lo demás —la pila, el firmware, las pistas de audio, el subcanal— viaja en un archivo anexo o no viaja.
[ Fuentes ]
- ECMA-119, «Volume and file structure of CD-ROM for information interchange» — norma de sistema de archivos, número ISO 9660, primera edición de diciembre de 1986 · Ecma International
- ECMA-130, 2.ª edición, junio de 1996 — «A Sector shall comprise 2 352 bytes»; con el byte de modo en (01) los datos de usuario ocupan las posiciones 16 a 2 063, y en (02) las posiciones 16 a 2 351 · Ecma International
- Castlevania: Symphony of the Night (USA, SLUS-00067) — dos pistas: datos en modo 2 (229 020 sectores, 538 655 040 bytes) y audio (18 995 sectores, 04:13:20, 44 676 240 bytes) · Redump
- DuckStation README — formatos admitidos (bin/cue, CHD, ECM, MDS/MDF, CCD, PBP) y archivos SBI de subcanal: «make sure that the CD image and its corresponding SBI (.sbi) file have the same name» · Stenzek / GitHub
- Firmware — higan requiere el firmware de los coprocesadores por separado (DSP-1, 8 KiB, en una decena de juegos; Cx4, 3 KiB); «the groups responsible for such things (eg No-Intro) do not agree, and they split the firmware files into separate archives» · higan / bsnes
- iNES — la cabecera de 16 bytes anota el número de mapper, la disposición de nametables y «the presence of persistent saved memory» del cartucho · NESdev Wiki
- Dumping the DSP1B firmware — «The existing DSP firmwares were dumped by decapping»; esos chips «have no command that will get them to write all their firmware out, since that is not something the console would ever need to do» · NESdev Forums
Lo que importó de verdad
Un correo por semana con las 5 noticias que mueven la industria y el mejor video vertical. Nada de refritos de notas de prensa.
[ Síguenos donde leas ]
Sin algoritmo que decida por ti: el correo y el RSS llegan enteros. En las redes publicamos los cortes.