LO + BASICO SOBRE…

Parte 4: LA MEGADRIVE
Llamada Genesis en Estados Unidos


CONOCIENDO A LA MEGADRIVE (por dentro).

A pesar de que la Megadrive es técnicamente inferior a la Super Nintendo, su principal competidora, en realidad esto se debe a que los coprocesadores de la ésta última son más potentes. Lo de “técnicamente inferior” en este caso se refiere a la calidad gráfica y de sonido, principalmente, que son aspectos importantes para el juego. Pero en cierto modo es una simplificación, y el que una consola sea más potente que otra es matizable.

Al contrario que la SNES, que es en mi opinión una consola pseudo-16 bits, con una CPU modesta, la Megadrive es un sistema de 16 bits gobernado por una CPU bastante potente, el 68000 de Motorota. Por tanto, la capacidad de proceso de la Megadrive es superior a la de la SNES, cosa que podría sorprender a algunos.

El 65816 (CPU de la SNES) corre a aproximadamente 3.5 Mhz.

El 68000 (CPU de la Megadrive) corre a aproximadamente 7.5Mhz.

A pesar de que el 65816 es un procesador de 16 bits, su bus de datos es de 8 bits, mientras que el de la Megadrive es de 16 bits. Por si fuera poco, el 68000 puede internamente manejar 32 bits, otra sorpresa para algunos, que creen que las 32 bits empezaron con la 32X, Play Station y la Saturn, por ejemplo. El problema es que cuando se dice “esto es de X bits” no se especifica si se refieren a los bits que puede manejar la CPU, al del bus de datos, o a qué. Y eso da pie a mucho juego.

Aunque debo decir que no todo en el 68000 es superior al 65816. Hay código que es menos eficiente en él, por ejemplo ciertos accesos a memoria. Aunque al correr a más del doble de MHz me da la impresión que ni en esos casos quedaría por atrás...

Además de la clara ventaja que supone el 68000, la Megadrive tiene otro procesador, con su propia RAM, que puede correr en paralelo a éste, un Z80 de 8 bits. Éste permite además retrocompatibilidad con la Master System, y se usa principalmente para tareas de sonido, aunque en principio se puede cargar cualquier código en su memoria, desde una ROM o desde la RAM principal de la consola.

Pero a pesar de esto, la Megadrive queda por detrás de la SNES. ¿Por qué? Como dije, porque los procesadores gráficos y de sonido de la SNES son muy potentes, y apoyan estupendamente a su modesta CPU. Digamos que la potencia de la consola está más distribuida, mientras que en la Megadrive se concentra en su CPU. La inferioridad gráfica se debe a su VDP (chip de vídeo), que es inferior a las PPU de la SNES. Por ejemplo, sólo permite mostrar 64 colores simultáneamente, de una paleta de 512, mientras que la SNES permite hasta 256 colores a la vez, de una paleta de 32768. Además, la SNES puede manejar hasta 4 planos de scroll, mientras que la Megadrive sólo 2 (el A y el B), aparte de otro plano más limitado (llamado window), que es fijo, y que según creo no puede hacer scroll, y no puede solaparse con el plano A, es decir mostrarse uno encima del otro. A esto hay que añadir que la SNES permite reproducir sonido digitalizado, y de mayor calidad

Pero las comparaciones son odiosas… sólo quería aprovechar para tratar algunos de los temas que mucha gente no muy entendida confunde. Pasemos a hablar de la Megadrive, que es mucha consola.

Supone un salto considerable frente a la Master System, incorporando 8 veces más RAM, y 4 veces más memoria de video para gráficos, niveles, etc… Su mejora gráfica es notable. La Master System sólo permitía un plano de scroll. Ahora con la Megadrive se puede hacer efecto parallax (efecto de falsa tridimensionalidad que consiste en mover planos de scroll a diferente velocidad), puede mostrar 4 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 de 8x8 u 8x16 en la SMS, hasta 32x32 en la Megadrive). También mejora el sonido, y por supuesto su potencia y velocidad.

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áquina 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 la 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, 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 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, cuyo procesador no sólo es menos potente, sino que lo que es peor de cara al programador, tiene una arquitectura más oscura y menos intuitiva, más propensa a cometer errores. Además tiene menos registros, más puertos, es más complicado inicializarla, etc. Yo que he sido más simpatizante de Nintendo, prefiero desarrollar para la Megadrive. Los proyectos de SNES me han dado bastantes problemas, y a veces deja de ser divertido. Pero que quede claro que esto son opiniones muy personales, y no digo que no me guste programar para SNES, sólo que es una lastima que no llevara un 68000, que por cierto es lo que quería su diseñador. Algo que se tuvo de desestimar por problemas de costes.


SOBRE LA CONSOLA

CPU Es un 68000, de 16 bits con registros internos de 32, y que funciona a 7.61 Mhz, (PAL) o 7.67 Mhz (NTSC). Tiene 8 registros de propósito general, y 8 registros de direccionamiento. 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 más rápido que el de la Megadrive. También se usó como procesador de apoyo en el MegaCD, Atatri Jaguar,…
PPU 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, sprites, colores, resolución,... 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 usa como almacenamiento temporal. Es accesible desde la CPU. Tiene 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 se usa para guardar cierta información sobre el juego, y se aprovecha muy bien. Se le suele llama WRAM (supongo que Work RAM, memoria de trabajo).
VRAM Memoria que se usa para almacenar los gráficos en uso (patterns), los niveles (en las llamadas Name Tables), los sprites, etc. Sólo es accesible a través de la VDP, por lo que no cuenta como espacio dentro del mapa de memoria del 68000.
TMSS Muy resumidamente, es un sistema de seguridad que SEGA sacó después que una compañía decidiera sacar varios juegos sin licencia al mercado. En las primeras Megadrives estos juegos iban 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 alguna compañía sacara juegos sin licencia, ya que en teoría, legalmente no podría incluir la palabra “SEGA” en su ROM sin permiso.

SOBRE LOS CARTUCHOS

Los cartuchos de Megadrive son bastante sencillos... tal vez los más sencillos que he visto, en cuanto a lo que es entender su funcionamiento.

Como sucede con la Super Nintendo, gracias a que la consola es capaz de direccionar 16Mb de memoria, y los cartuchos casi nunca superan los 4Mb, no es preciso usar mapeadores. El uso de decodificadores se reserva casi exclusivamente a los casos en los que se usa un chip de SRAM para salvar partidas. En estos cartuchos, suele haber otro integrado pequeño de 8 patas, que se encarga de gestionar la alimentación de la memoria SRAM.

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, la Master System, y 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.
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 la 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 2Mb. Por tanto, si una ROM ocupa 3 o 4 Mb, el decodificador dedica los 2 primeros Mb 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 2Mb. Esta tarea es realizada por el decodificador.

 

VOLVER