Gráficos en Consolas Antiguas (XIV): 3DO

El estandar 3DO fue una arquitectura creada por RJ Mical y David Needle, ambos habían trabajado previamente en el Commodore Amiga y la Atari Lynx. En realidad 3DO es una continuación del diseño de la Atari Lynx pero con la diferencia que el hardware no estaba diseñado para un sistema portátil de 8 bits sino dirigido a una consola de sobremesa con CD-ROM con los cambios que esto suponía en el hardware.

3DO-models-1041428

El primero de estos cambios fue el uso de una CPU distinta y mucho más capaz, un ARM60 a 12.5 Mhz, la por si sola cual tenía una potencia de 11 MIPS, un salto considerable en comparación con los sistemas de 16 bits que había en el mercado con el 68K, pensad que la Neo-Geo con un 68K a una velocidad similar no llegaba a los 2 MIPS y la comparación con un PC era que la CPU de la consola era el equivalente a un Intel 386 a 33 Mhz, siendo el añadido más importante a la CPU fue el co-procesador matemático para calculo con matrices. El cálculo con matrices es sumamente importante para rotar, escalar y desplazar patrones/sprites, dicho co-procesador le daba una ventaja a la 3DO muy grande respecto a otros sistemas contemporáneos (a excepción de Jaguar).

Antes de entrar en materia sobre el tema gráfico es importante entender los cambios en el sistema de memoria ya que son claves para entender como funcionaba el sistema.

El diagrama de 3DO era el siguiente:

 

Como veis el sistema gráfico, representado en el diagrama como los dos “Graphics Animation Processor”, no tiene acceso directo a la VRAM sino que dicho acceso se realiza a través del controlador DMA. ¿Como es eso si lo habitual es que la VRAM tenga conexión directa con el sub-sistema gráfico? En la documentación sobre la consola nos explican para que sirve la VRAM:

VRAM es una memoria de propósito especial, esto es que la memoria es utilizada principalmente o de forma exclusiva por ciertos elementos particulares del hardware de 3DO (en este caso, el bus SPORT). La VRAM es RAM para operaciones de video y gráficos que implican el bus SPORT.

¿Que es el bus SPORT?

Comparado con el trabajo interno del Cel Engine (el nombre del Blitter), los detalles de transferir la imagen al búfer de imagen con el bus SPORT son chocantemente simples. En esencia, una imagen e fondo se almacena fuera del búfer de imagen y en otra sección de la VRAM. Durante la interrupción vertical de la pantalla NTSC (se refiere al VBlank), el SPORT bus transfiere los contenido de la imagen de fondo en el búfer de imagen, borrando efectivamente todo lo que hay allí para tener un fondo fresco para cualquier proyección de “Cels” o para un dibujado directo en el búfer de imagen.

Sus restricciones son las siguientes:

  • Una transferencia con el SPORT solo se puede realizar durante el periodo VBlank y no durante el escaneo del búfer de imagen para pasar la imagen al televisor. Teniendo en cuenta que la resolución estándar de la consola es de 320×240 pixeles y el limite de lineas en NTSC interlazado es de 262 lineas, esto significa que el bus SPORT solo puede copiar durante unas 22 lineas por fotograma hacía el bufer de imagen.
  • El Bus SPORT solo puede realizar transferencias en la VRAM. no tiene acceso a la RAM principal.

La VRAM de 3DO era de doble puerto, esto significa que se podía leer y escribir al mismo tiempo por lo que:

  • Cuando el DMA escribe en una parte de la VRAM al Video Processor (que se encarga de leer el búfer de imagen y convertirlo en la señal que el televisor entiende) el controlador DMA (por petición del subsistema gráfico) escribe en la VRAM.
  • Cuando el canal de lectura no es utilizado por el Video Processor entonces este es utilizado para leer otra parte de la VRAM y copiar esa parte en el búfer de imagen utilizando el canal de escritura.

Esto significa que el subsistema gráfico utiliza la RAM principal para operaciones de lectura y la VRAM para operaciones de escritura, entrando en conflicto con la CPU ya que cuando uno de los dos procesadores necesita realizar una operación de memoria con la RAM principal acaba por parar al otro, esto se sobrecomplica si tenemos en cuenta que ninguna de las dos partes tiene una cache interna asociada que permita paliar este problema. ¿En que se traduce esto? Pues en el hecho que el subsistema gráfico de 3DO no llegue al máximo rendimiento que podría llegar sin esos cuellos de botella propios del esquema de memoria, los cuales reducen enormemente la tasa de relleno de la consola.

En cuanto al sistema gráfico en si mismo, en la Next Gen numero 12 de Diciembre de 1995, los arquitectos de la consola dijeron:

De una manera similar a la Atari Lynx, organiza los gráficos en “células de animación”. Estas células son imágenes a todo color y de alta resolución capaces de ser desplazadas, escaladas, rotadas, deformadas, se les puede aplicar un mapa de texturas e incluso pueden ser iluminadas.”

Mirad la entrada sobre la Atari Lynx para comprender el funcionamiento del sistema gráfico de 3DO, su sistema gráfico funciona exactamente igual solo que soportando una mayor cantidad de colores en pantalla (15 bits de color) y una resolución mucho más grande (320×240), la combinación del avanzado sistema gráfico con una CPU que era mucho más capaz creaban un sistema que por aquel entonces parecía un salto generacional:

No obstante la 3DO fue un fracaso por su alto precio que la alejo completamente del mercado pero fue una consola muy capaz si tenemos en cuenta lo que era capaz de mostrar a nivel visual en el tiempo que salir. ¿Su mayor handicap? Fuera de la diferencia de potencia con PSX y Saturn (lo cual es normal por aparecer antes) el gran error fue al igual que Saturn no incluir un Triangle Setup por hardware como hizo Sony con PSX. Tengo que hacer una entrada sobre el “Triangle Setup”, pero la dejare aparte de esta serie.

Anuncios