Megadrive

A pesar de que Megadrive es considerada técnicamente inferior a Super Nintendo, su principal competidora, en lo relativo a determinados aspectos gráficos y de sonido, esta afirmación no deja de ser una simplificación, pues el que una consola sea más potente que otra es, en este caso, matizable.

Megadrive frente a Super Nintendo

Al contrario que la SNES, que es en mi opinión una consola pseudo-16 bits, la Megadrive es un sistema de 16 bits gobernado por un procesador bastante remarcable, el 68000 de Motorota. Existen muchas opiniones de que es mucho más potente que el usado en SNES, pero en mi opinión son afirmaciones infundadas, y basados en argumentos sesgados. Es cierto que en determinados aspectos es más rápida, sobretodo en el manejo de datos de 16 y 32 bits, pero en su aplicación práctica a los videojuegos no existe una gran diferencia de CPU entre ambas consolas.

Supongo que el principal punto de confusión radica en que el 65816 (CPU de la SNES) funciona a aproximadamente 3.5 Mhz, mientras que el 68000 (CPU de la Megadrive) corre por encima aproximadamente 7.5Mhz. Sin embargo, hablar sólo de hercios es dejar mucha tinta en el tintero. EL funcionamiento interno, o arquitectura del procesador, es tanto o más importante que la velocidad a la que trabaja.

A favor de la arquitectura del 68000 se puede decir que es un 16 bits puro, mientras que el 65816 es un procesador de 16 bits, pero su bus de datos es de sólo 8 bits. Además, el 68000 puede manejar 32 bits internamente, pero con una penalización, ya que su unidad aritmético lógica (ALU) trabaja en 16 bits. O sea, que Megadrive no es una 32 bits, como 32X, Play Station y Saturn, por ejemplo. El problema es que cuando se dice ?"esto es de X bits",? no se suele especificar si se refiere a los bits que puede manejar la CPU, al del bus de datos, o a qué. Y eso da pie a mucho juego en la interpretación y el "barrer para casa".

Sin embargo la mayoría de tareas requieren muchos más ciclos en ser ejecutadas por un 68000 que por un 65816, por lo que en término medio la cosa se iguala bastante.

Otra fuente de confusión es que la Megadrive tiene otro procesador, con su propia RAM, que puede correr en paralelo a éste: un Z80 de 8 bits, donde se puede cargar cualquier código en su memoria, desde una ROM o desde la RAM principal de la consola. Sin embargo esto no quiere decir que los dos procesadores trabajen juntos para todo, o que el Z80 incremente el desempeño del 68000. El Z80, que por cierto permite la retrocompatibilidad con la Master System, se usa principalmente para tareas de sonido. por lo que actúa como co-procesador de audio. La SNES también dispone de un co-procesador de audio, que igualmente es un sistema completo con su propia memoria RAM.

La Megadrive queda ligeramente por detrás de la SNES en cuanto a la calidad visual de sus juegos, básicamente por la potencia y posibilidades que ofrecen sus co-procesadores gráficos ( denominados VDP en Megadrive, y PPU en SNES). En mi opinión el factor que más influye por término medio es la variedad y riqueza tonal de color, y no tanto los planos de scroll, como algunos opinan (de nuevo, basándose en un número aislado, como veremos enseguida). El VDP sólo permite mostrar 61 colores simultáneamente, de una entre 512 posibles, mientras que la PPU de SNES permite usar hasta 256 colores a la vez, extraídos de un conjunto de 32768 (e incluso es capaz de superar los 256 colores simultáneos usando una característica denominada "color directo"). Este hecho tiene un impacto directo y muy apreciable en la mayoría de los casos. Sin embargo, en cuanto a los planos de scroll, están algo más equilibradas. La SNES puede manejar hasta cuatro planos de scroll, mientras que la Megadrive sólo dos (el A y el B), aparte de otro plano más limitado (llamado W, window, o ventana), que es fijo, y que no puede hacer scroll, y no puede solaparse con el plano A. Sin embargo, la flexibilidad del scroll en Megadrive es asombrosa, y salvo que nos conformemos con sólo cuatro colores por plano, la SNES no puede usar sus cuatro planos. Comparar "cuatro" planos frente a "dos y medio" como resumen algunos, es sencillamente impreciso; es posible que la SNES sobresalga un poco, pero sólo un poco.

A esto hay que añadir que la SNES es ligeramente superior en el apartado sonoro.

Megadrive como evolución de Master System

Pero lejos de querer extenderme en comparaciones, mi único objetivo con ello era tratar algunos de los temas que mucha gente confunde. Pasemos a hablar de la Megadrive, que es mucha consola.

Supone un salto considerable frente a la Master System, incorporando ocho veces más RAM, y cuadruplicando su memoria de video, ésta última empleada para almacenar los gráficos niveles, sprites y scroll. Su mejora gráfica es notable. La Master System dispone de un único plano de scroll, mientras que la Megadrive gracias a sus dos planos y su fabuloso control del scroll, es capaz de hacer parallax (efecto de falsa tridimensionalidad o profundidad, que consiste en mover planos de scroll a diferente velocidad), puede mostrar cuatro veces más colores en pantalla, de una paleta más amplia, y manejar más sprites (de 64 a 80) y de mayor tamaño; no sólo de 8x8 u 8x16 como en su predecesora, sino hasta 32x32. También mejora el sonido, y en general su potencia y velocidad en todos y cada uno de los aspectos que se me ocurren.

El diseño de la Megadrive casi contiene a la Master System en sí misma, siguiendo la filosofía de diseño de SEGA, que gustaba de ir ampliando sus sistemas, mejorando los anteriores (algo que hacía sobretodo en sus máquinas arcade). De hecho, con muy poco hardware adicional (básicamente un adaptador para poder conectar los cartuchos al nuevo conector, más ancho), se puede jugar a los juegos de 8 bits en hardware, sin emular. En este caso, se usa el Z80, que suele ser CPU de apoyo, como procesador principal, y el VDP trabaja en el llamado modo 4, que es compatible con la Master System (en contraposición con su modo nativo, el que usan los juegos de Megadrive, el modo 5).

Al igual que ocurría con otras nuevas máquina de la época, la Megadrive podía manejar mucha más memoria que su predecesora, eliminando la necesidad de mapeadores. Esto se debe a el bus de direcciones de la CPU pasa de 16 bits a 24 bits, es decir, de manejar sólo 64Kb, a poder manejar 16Mb. Como anécdota, el 68000 está internamente preparado para manejar hasta la friolera de 4Gb, que en su época dejaba tirados a otros procesadores como el 8086 de Intel.

A nivel de programación, y hablo por experiencia propia, el 68000 es una maravilla. Normalmente las consolas anteriores a la era 32 bits se programan en ensamblador. Es algo así como código máquina, y el desarrollo y mantenimiento de aplicaciones complejas es difícil. Las consolas de 8 bits, como la NES y la SMS son más fáciles de programar, pero prefiero la Megadrive en comparación con la Super Nintendo, no porque su procesador sea ligeramente menos potente, sino antetodo por ciertas incomodidades de cara al programador, que la hacen quizá un poco más propensa a cometer errores, y porque su mapa de memoria, el control de su hardware y su inicialización es más complicado. Que quede claro que esto son opiniones muy personales. Programas cualquiera de las dos consolas de 16 bits es muy entretenido, aunque sobretodo en lo referente al apartado gráfico, es un poco más fácil familiarizarse con la Megadrive.


La consola...


CPU

Es un 68000, de 16 bits con registros internos de 32 bits, que facilitan bastante la labor de operar con datos numéricos grandes, aunque no tiene el rendimiento de un procesador de 32 bits, porque su ALU es de 16 bits, y al operar con 32 bits el procesador actúa por fases. Tiene ocho registros de propósito general, y ocho registros de direccionamiento, incluído el puntero de pila. Esto es también muy cómodo de cara al programador, y aunque al igual que todas las consolas de 8 y 16 bits, está concebido para ser programada en ensamblador, es posible programarla en C con menos penalización que aquellas que emplean los procesadores Z80, y sobretodo 6502 y 65816.

Su bus de datos es de 16 bits, y tiene un bus de direcciones de 24 bits, por lo que puede manejar hasta 16 Mbytes de memoria. Funciona a 7.61 Mhz, (PAL) o 7.67 Mhz (NTSC). Es bastante potente, y fue el corazón de muchas placas arcade, así como de otras consolas como la NeoGeo, cuya CPU era un 68000 pero funcionando a mayor velocidad que el de la Megadrive. También se usó como procesador de apoyo en el MegaCD y Atatri Jaguar, y como CPU en los primeros Machintosh.

VDP

Video Display Processor, o procesador de imagen de vídeo. Como en el resto de consolas, casi todo lo que los juegos son capaces de mostrar se lo deben a este chip. Se encarga de manejar y dibujar los sprites, los planos de scroll, etc.

Se deriva del VDP de la Master System, y es casi totalmente compatible con él, pero añade el modo 5, nativo de Megadrive, e incorpora otras muchas capacidades ya nombradas, como posibilidad de manejar más memoria, más planos, sprites, colores, patrones de scroll más complejos, y también mayor resolución horizontal (de 256 hasta 320 píxels),...

Al ser compatible con el VDP de Master System, y soportar el modo 4, los juegos de ésta funcionan en la Megadrive con sólo activar el Z80 como CPU principal, y usar un adaptador de cartuchos.

RAM

Memoria que se usa como almacenamiento temporal y que es directamente accesible desde la CPU. Tiene una capacidad de 64Kb. Puede parecer poco hoy en día, pero los juegos rara vez requieren más. No hay que olvidar que el software en estas consolas se introducía por cartuchos, en memorias ROM, que son de muy rápido acceso, por lo que la RAM no se usa para cargar partes del juego como se hace en los sistemas de CD-ROM y ópticos en general ("loading...").

VRAM

Memoria que se usa para almacenar los gráficos en uso (tiles), los niveles (o mapas), los sprites y el scroll horizontal. Para las paletas y scroll vertical (menos preciso), existen otras pequeñas memorias llamadas CGRAM y VSRAM dentro del chip gráfico (de 64x9 bits, y 80 bytes respectivamente). Sólo es accesible a través de la VDP, por lo que no cuenta como espacio dentro del mapa de memoria del 68000.

Para poder escribir en ella, el procesador debe solicitarlo al VDP a través del uso de puertos. Puede además hacer uso de un controlador de DMA, para acelerar la transferencia de información a la VRAM, para rellenarla o para realizar copias.

CGRAM

Memoria que se usa para almacenar las cuatro paletas de 16 colores. Está dentro del chip gráfico y su tamaño es de sólo 64x9bits, es decir, que no se estructura en bytes de 8 bits como es habitual. Esto es porque los colores en la Megadrive son de 9 bits, o 512 tonos.

Para poder escribir en ella, el procesador debe solicitarlo al VDP.

VSRAM

Memoria que se usa para almacenar el scroll vertical de los dos planos de scroll. Está dentro del chip gráfico y su tamaño es de sólo 40x11bits, o lo que sería lo mismo 80 bytes agrupados en palabras de 16 bits, de los cuales sólo se utilizan 11 bits.

Desconozco si la memoria es en realidad de 80 bytes, con esos bits sin utilizar, o si es exactamente de 440 bits, o 40 grupos de 11 bits.

El motivo de esta cifra de bits tan inusual, once, es porque esta memoria almacena valores de desplazamiento de entre 0 y 2048, aunque en resoluciones no entrelazadas sólo valen los que están entre 0 y 1024.

Para poder escribir en ella, el procesador debe solicitarlo al VDP.

TMSS

Muy resumidamente, es un sistema de seguridad que SEGA sacó después de que una compañía decidiera sacar varios juegos sin licencia al mercado, que en las primeras Megadrives funcionaban igual que cualquier otro.

Por ello SEGA modificó la consola, y añadió una pequeña BIOS, y un mecanismo por le cual forzaba a los juegos a escribir la palabra ?SEGA? en una dirección de memoria del 68000. Si esto no se hacía en un corto periodo de tiempo, la consola se colgaba.

Es una protección de copyright, para impedir que otras compañía sacaran juegos sin licencia, ya que en teoría, legalmente no podría incluir la palabra ?SEGA? en su ROM sin permiso.


Los cartuchos...


ROM

Casi siempre existe un sólo chip de memoria ROM en el cartucho, y en él se almacena la totalidad del juego. Cabe remarcar que las memorias son de 16 bits, no de 8 bits, como sucedía con la NES y la Master System (e incluso la Super Nintendo, que a pesar de usar una CPU de 16 bits, tiene un bus de datos de 8 bits).

Que la ROM sea de 16 bits significa que en cada dirección se accede a 16 bits a la vez, mientras que en una memoria de 8 bits, se leen 8 bits. Esto puede resultar muy ventajoso, porque la CPU puede leer más datos en un mismo acceso a memoria.

SRAM

Memoria que sirve para salvar partidas, y que es opcional . No todos los juegos la tienen. Para retener la información al retirar el cartucho de la consola, éste lleva una pila que alimenta la SRAM para que no se borre.

Su alimentación es manejada por un pequeño chip que cuando detecta que la consola está encendida, usa la corriente de la propia máquina, y cuando la apagamos, pasa a usar la energía de la pila, evitándo así que al enceder y apagar repetidas veces la consola pudiera borrarse la memoria, cosa que si afectaba, según creo, por ejemplo, a los cartuchos de la NES

.
Decoder (decodificador)

Siempre que hay un chip de SRAM en el cartucho es necesario que haya un "decoder" para interpretar las direcciones que da la consola, y saber a qué chip se está refiriendo. En el caso de la Megadrive es especialmente importante, porque los juegos casi siempre suponen que la memoria RAM se accede en una misma posición, que es justo después de lo que ocuparía una ROM de 16 Mbits (2Mbytes).

Por tanto, si una ROM ocupa 3 o 4 Mbytes, el decodificador dedica los dos primeros Mbytes a la ROM, luego coloca las direcciones de la RAM, y tras ella se puede acceder al resto de la ROM que no cabía en los primeros 2Mbytes. Esta se logra gracias a la electrónica adicional del decodificador.