Esta entrada me ha costado horrores hacerla por el hecho que la documentación disponible sobre el Model 3 es realmente escasa y la informacíón contradictoria que hay en diferentes partes de internet enorme por lo que la tarea para entender la arquitectura del Model 3 ha sido titánica en estos últimos días.

Para empezar Lockheed Martin/GE Aerospace o como se llamase en cada momento nunca revelo información exacta sobre su arquitectura Real3D Pro-1000. y en concreto de la configuración exacta de su placa de video del Model 3, si a esto le sumamos que no hay diagramas de ningún tipo y no se sabe que hace cada uno de los chips en placa, serigrafiados con un código de Sega que no nos dice información alguna.

Lo único que sabemos es que es una arquitectura que se basa en el pipeline de rasterización como utilizaba Silicon Graphics en la época con OpenGL, pero no utiliza OpenGL para describir la escena y tiene como origen los simuladores militares contra los que competía frente a Evans & Sutherland que fue la proveedora de la tecnología para el System 22 de Namco.

Hay que tener en cuenta que toda la arquitectura de Sega para sus Model deriva de los Compu-Scene Image Generator que Lockheed Martin había desarrollado para el mercado militar. Inicialmente esos simuladores no utilizaban chips dedicado para el 3D sino que hacían uso de complejas estructuras de chips TTL para implementar la lógica, pero es que principios y mediados de los 80 no existía la tecnología para nadie para hacer siquiera chips enteros que pudiesen hacen siquiera una función en concreto del pipeline 3D por lo que erán máquina complejas con decenas por no decir centenares de chips.

Los continuos nodos de fabricación acabaron convirtiendo los conjuntos de chips TTL en ASICs dedicados y con el tiempo en procesadores 3D como los que tenemos hoy en día ya desde hace ya casi un par de épocas, pero el primer paso en todo eso fue la llegada del 3D a tiempo real en los salones recreativos, de esto hable recientemente en la entrada «El advenimiento del 3D» y por uno de los comentarios que dejastéis en el blog pues me puse a investigar sobre el Model 3, su hardware y a sacar conclusiones.

Conclusiones a través de ensayo y error, tras ver una y otra vez como habían cosas que no cuadraban e información confusa…

El mercado del 3D a tiempo real estaba copado a finales de los 80 y principios de los 90 por los simuladores militares, no solo no existía la tecnología para escalar hacía abajo sino tampoco el interés. La entrada en los salones recreativo en forma de los dos primeros Model y el System 22 no resultaban un incentivo para disminuir el número de chips e ir integrando cada vez más los procesadores y las diferentes memorias.

Esto llevo a que tan pronto el hardware doméstico fue lo suficientemente para el 3D a tiempo real acabo por reemplazar por completo toda la industria que había dominado dicho sector y convirtió a empresas como Lockheed Martin, Evans&Sutherland e incluso Silicon Graphics en unos cadaveres, fue un caso enorme de disrupción de abajo hacía arriba y en el caso de Lockheed Martin y en concreto su división Real3D que fue la que diseño el Model 3 es un caso flagrante de empresa que por miedo a dejar un mercado lucrativo acaba siendo disruptada.

Sega con los dos primeros Model, realmente no integro la tecnología de los Compu-Scene de GE Aerospace ( Os recomiendo mi entrada sobre el Model 2 en la seríe Gráficos Retro.), lo que hicieron fue asesorar en el hardware a Sega y Fujitsu pero el Model 3 en cambio fue un producto completo de ellos al 100%, no solo de asesoramiento.

Dicha esta «pequeña» introducción vamos al tema, que es el Model 3 en si mismo, el cual apareció en los salones recreativos en la segunda mitad de 1996 y nos dejo en aquella época a muchos con la mandíbula en el suelo de lo impresionante que se veía por aquel entonces.

En esta entrada voy a intentar describir de manera pormenorizada como funciona el hardware del Sega Model 3, algo que me ha llevado mucho tiempo en poder cocinar en forma de esta entrada que espero que disfrutéis y me sepáis perdonar la ausencia durante estos días ya que personalmente estaba…

#1 CPU, Memoria y Almacenamiento

En primer lugar se ha de aclarar que no existe un hardware que podamos llamar Model 3 sino que tenemos dos distintos (Step 1 y Step 2) y luego dos sub-versiones para cada uno de ellos y la organización en placa es dispar entre ellos, aparte de que hay algún que otro componente que cambia su posición, esto hace que seguir la arquitectura del Model 3 sea algo sumamente complejo.

Para empezar, el Model 3 se compone por varias placas distintas, cada una de ellas conectada a la principal, a la que llamamos CPU Board, en realidad no deja de ser lo mismo que un PC con varios puertos de expansión distintos ocupados por diversas tarjetas haciendo cada una función distinta dentro del sistema.

Las placas son las siguientes:

  • La CPU Board que incluye la CPU, la RAM principal del Model 3 y el subsistema de sonido.
  • La Video Board que contiene el sistema gráfico.
  • La Comm Board que contiene el sistema de comunicaciones para los juegos en local, el control de los juegos y la salida de vídeo.
  • La ROM Board que es la placa donde se almacenan los datos de cada juego.
  • La MPEG Board (Opcional) que es una segunda placa para el audio utilizada en algunos juegos.
  • La Security Board (Opcional) que tiene un mecanismo de descompresión de datos utilizado en algunos juegos.

De todas ellas solo nos interesan las dos primeras de cara a definir como funciona el sistema gráfico del Model 3.

#2 CPU+Audio Board

Pese a que hay varios modelos de la CPU Board, todas siguen una arquitectura común con una serie de puntos comunes.

Como se puede ver la placa es enorme, con una cantidad ingente de chips y sus memorias, algo que hace que a simple vista parezca que estemos ante una arquitectura sumamente complicada que requiere unos conocimientos nunca vistos para desentrañarla.

  • La primera observación que podemos hacer es que hay una gran cantidad de puerto SCSI para el resto de placas, que son las ranuras de color blanco que vemos en los extremos y que sirven para la comunicación entre las diferentes placas, en realidad una buena parte de los chips iienen que ver con dichas interfaces.
  • La segunda observación es que el hardware de sonido compuesto por un 68K como controlador y 2 DSP de Yamaha así como sus correspondientes memorias se encuentran en la CPU Board.
  • La tercera observación es que a la derecha de donde esta la CPU (bajo el disipador blanco) esta el Northbridge del sistema, al cual esta conectada la CPU a través de su FSB (Front Side Bus) y que comunica la CPU con el resto de componentes. El bus utilizado es de unos 33Mhz

En cuanto a la CPU, todos los Model3 utilizan un PowerPC 603e fabricado por Motorola, a diferentes velocidades pero siempte con un bus frontal de 33Mhz. Se trata de la misma CPU utilizada en los Apple Macintosh de la época y un salto considerable respecto al i960 del Model 2, no solo en velocidad de reloj sino también en el hecho de que tiene un IPC mucho más alto dado a ser un procesador super-escalar que se situa entre los P5 y los P6 de Intel en cuanto a potencia.

El bus frontal es de unos 33 Mhz que es la velocidad base antes de aplicar el multiplicador y curiosamente solo los modelos con dicho bus han terminado en los diferentes diseños del Model 3, de las dos placas (Step 1 y Step 2) lo único que es requisito es que la CPU tenga un bus de 33 Mhz por lo que esto hace que los modelos que se puedan utilizar sean:

  • 66 Mhz
  • 100 Mhz
  • 133 mhz
  • 166 Mhz

El siguiente punto a tener en cuenta es la RAM, esta cambia de una placa a otra y no he encontrado información acerca de la del Step 1 pero si del Step 2 donde tenemos unos cuatro chips modelo TC59S1616AFT-12 conectados a un bus de 64 bits con la CPU principal.

La memoria parece funcionar a una frecuencia de 12ns, lo que significa que la velocidad de la memoria es de 83Mhz, con un bus de 16 bits por chip y por tanto esto significa que el ancho de banda con la CPU principal es de 664MB/s en total, en cuanto a la densidad, cada chip es de unos 2MB en total por lo que tenemos unos 8MB de memoria RAM en los Model 3. Dicha cantidad de memoria no parece espectacular teniendo en cuenta que era lo habitual en PC en pleno 1996 e incluso por aquel entonces era algo muy justo por lo que teniendo en cuenta que estamos hablando de un hardware que viene del mercado de los simuladores pues no parece algo muy impresionante por el momento y es un hardware relativamente estándar en lo que a CPU y memoria se refiere.

#3 ROM Board

En cuanto al forma de almacenar los juegos, Sega utilizo una serie de placas llenas de chips de ROMs, estas placas hacen la misma función que los cartuchos de las consolas antiguas.

Uno de los motivos del sobreprecio de las recreativas basadas en los Model era que utilizaban ROMs extremadamente caras ya que eran de alta velocidad con tal de poder volcar los datos lo más rápidamente posible a las diferentes memorias y en algunos casos incluso para tener acceso directo a los datos.

La composión y organización de las ROMS es la siguiente:

  • CROM, cuya densidad no cambia entre el Step 1 y el Step 2, unos 20 chips de 4MB cada uno que hacen un total de 80MB solo para lo que es el código de programa.
  • VROM, un total de 16 chips de 2MB cada uno en el Step 1 y de 4MB en el caso del Step 2. Existe el mito de que el Model 3 tenía una ingente cantidad de VRAM, luego veréis que no era así pero si que tenía una ingente de VROM.
  • SROM, los primeros 2 chips de 512KB de densidad cada uno, los otros 2 chips de 4MB, almacenaban las muestras de sonido utilizadas en el juego.

Además, como se puede ver la ROM Board no tiene una sino varias interfaces SCSI que son las encargadas de comunicar esta con los diferentes caminos de datos y memorias RAM del sistema en la que volcar los datos necesarios desde la ROM Board,, el uso de varios canales es para garantizarse que no hay problemas de contención a la hora de leer los datos desde los diferentes componentes.

#4 Video Board (Model 3 Step 1)

Voy a analizar en esta entrada la placa del Model 3 Step 1, la cual la podéis ver en la siguiente fotografía.

Fuente: Briconsola

El nombre del hardware es Real3D Pro-1000 ya que Real3D era la marca de Lockheed Martin para el mercado no militar, el sistema gráfico se compone por 4 chips distintos que son los siguientes:

  • 2x Geometry Engine
  • 2x Texture Unit

Os dejo la organizacion de la Videoboard en forma de diagrama para que podáis seguir mejor la entrada.

Con las piezas puestas en su sitio vamos a analizar el hardware que compone la Video Board.

#4.1 Geometry Engine

En el Model 3 tenemos dos chips que en conjunto forman lo que es el Geometry Engine, ambos son dispares pero se encargan de toda la étapa geométrica y de la fase de rasterizado.

Se trata de un Geometry Engine un tanto particular y atípico porque dado que la interfaz SCSI-II no es lo suficientemente rápida para poder enviar los datos de la geometría en cada fotograma lo que hace es tener almacenada en una memoria los datos de la geometría que se van a utilizar en la escena, es decir, los datos de los modelados son volcados desde la VROM a la SDRAM asignada al Geometry Engine y almacenados ahí para su uso a la hora de componer los fotogramas y tenemos que tener en cuenta que una cosa es la geometría de una escena, la existente en todo el nivel de juego y la otra es la geometría que calcula por escena que es lo que vemos en cada fotograma.

En realidad en el caso de las Pro-1000 nos encontramos ante una arquitectura que es rara de ver en sistemas domésticos pero no era tan rara en los simuladores de la época, se trata de una arquitectura del tipo Sort-First.

La idea detrás de una arquitectura sort-first es que tenemos la geometría de la escena ya ordenada según su posición y le asignamos un canal de geometría diferente a cada uno para renderizar la escena en paralelo. Esto no es un Tile Renderer al uso ya no dividimos la pantalla sino el escenario, es decir, toda la geometría del escenario es calculada al mismo tiempo independientemente de si es visible o no por el jugador. Esto que suena muy ineficiente era esencial para simulaciones donde todos los elementos en escena tenían que estar activos y sobretodo era útil para poder construir la escena desde diferentes puntos de vista.

Es decir, en cada fotograma lo que se hace es crear y ordenar la estructura de datos que contiene la geometría de la escena así como los punteros a los mapas de texturas y las diferentes instrucciones para cada primitiva a través de todo el pipeline. Esto conlleva a que la forma de definir la escena en el Model 3 sea distinta de APIs al estilo OpenGL y ha dado muchos problemas a la hora de crear los emuladores del sistema y es lo que provoco que Sega viese con recelo portar la mayoría de juegos desde el Model 3 a Dreamcast ya que la mayoría de juegos fueron ineditos en la consola.

El Geometry Engine esta acompañado por unos 8 chips de SDRAM, modelo HM5241605 de la que desconocemos su velocidad exacta, pero si la densidad de cada chip, la cual es de 512KB para cada uno, haciendo un total de 4MB de RAM para el Geometry Engine para almacenar la geometría de la escena.

Para la Pro-1000, un polígono todos los datos que se le van a aplicar desde un principio para renderizar la escena, mientras que APIs como Direct3D y OpenGL tienen acceso a los datos en cada escena, en el Pro-1000 su API obliga tener todo referenciado desde el principio. Puede almacenar en la base de datos unos 100.000 poligonos por cada 8MB pero en el Model 3 tenemos solo unos 4MB por lo que el Model 3 puede almacenar hasta unos 50.000 polígonos por escena en total. ¿Pero cuantos puede mostrar por fotograma? Unos 16.500 poligonos por fotograma a 60hz o 33.000 a 30hz.

Dado que trabaja con la geometría previamente ordenada, esta se encuentra en una estructura de datos en forma de árbol, en cada fotograma el sistema a la hora de descartar la geometría hace servir un algoritmo de función que le permite descartar las primitivas más alejadas de la cámara y no procesarlas durante el renderizado. Esto elimina una enorme cantidad de trabajo computacional a la hora de procesar la imagen, además que esto esta bajo el control mismo del sistema ya que la Pro-1000 realiza esto por cada actualización de fotograma, aparte de determinar que nivel de detalle es el adecuado para cada elemento en pantalla. Dicho de otra manera, el Model 3 utilizaba los métodos de culling que vamos a empezar a ver ahora en las GPUs de PC (Mesh/Primitive Shaders) pero a la escala de su época y a través de función fija.

Los sistema de descarte de poligonos no visibles eran caros de implementar en sistemas domésticos dada la mayor complejidad de la circuitería y más en una época donde los Geometry Engine eran escasos de ver. Incluso cuando aparecieron los primeros hardwares comerciales con esta funcionalidad carecían de los mecanismos que tiene el Geometry Engine de la Pro-1000 en el Model 3.

El siguiente punto es la iluminación, el sistema tiene 3 formas de renderizar según la iluminación…

  • Flat Shading, donde se asigna un color uniforme por polígono. (Nunca utilizado)
  • Gouraud Shading, donde se asigna un color por vertice. (Nunca utilizado pero no estoy seguro).
  • Sun + Gouraud Shading,

La idea del Sun Shading es muy parecida a la de los mapas de sombras y luces utilizados hoy en día, pero de forma limitada. En este caso se trata de colocar un objeto «sol» en el escenario y el sistema renderizará la escena con el objeto sol como cámara pero no la texturizará, simplemente almacenara el resultado del Z-Buffer del mismo pero en una precisión muy reducida, solo 6 bits, luego durante la etapa de Blending anterior a la composición final de la imagen se combinará con los fragmentos emitidos por las unidades de texturas.

En cuanto al modo Flat Shading, no se si os acordaréis de imagenes que cierta gente quiso pasar como si fuesen de Saturn.

Están renderizadas por el Model 3 en modo Flat Shading y de ahí a que se van tan raras.

Por otro lado, los Geometry Engine son los encargado del rasterizado… que es después de calcula la posición de todo los elementos en el espacio 3D esta es trasformada en fragmentos que son enviados a la 3D-RAM y que los Texture Engine leeran para aplicar el mapeado de texturas.

Desde que la 3D RAM es la memoria que sirve como búfer de imagen también, si volcasemos a video lo que envían los Geometry Engine veríamos algo parecido a esto:

Bueno, no son videos del Model 3 de manera directa, sino del Model 2 pero os para que os hagáis una idea.

Lo normal en las tarjetas de PC de la época era que la unidad de rasterizado no escribiese el resultado en una memoria sino que fuesen transmitidos lo fragmento a la unidad de texturas, en el caso del Model 3 Step 1 no es así, en realidad los dos Geometry Engine salvando las distancias de cara a la potencia equivaldrían a un Model 1 si estuviesen en solitario. Es más, al igual que el Model 1 y el Model 2 pueden rasterizar tanto Quads como Triangulos.

#4.2 Texture Units

Tenemos unos dos Texture Units en el Model 3 Step 1, las cuales tienen dos pozos de memoria asignada completamente distintos, en una de ellas se almacen las texturas de la escena y es leida durante el proceso de texturizado, a la otra escriben las Texture Units, la segunda es llamada 3D RAM y es de donde la unidad de texturas toma los fragmentos que deja la unidad de rasterizado por un lado y luego escribe los fragmentos ya texturizados.

La M5M4V4169 es lo que se conoce como Cached DRAM, se compone por un lado de una memoria SRAM a una alta velocidad y con una densidad de 16KB y por el otro lado de DRAM normal, la CDRAM le debe su nombre a que la SRAM funciona como un sistema de cache y le da esa capacidad al procesador este conectado, acelerando las búsquedas de los datos al volcar en la SRAM como si fuese una cache los datos más utilizados y recortando por completo los tiempos de búsqueda de los datos.

Por lo que la memoria propiamente dicha para el texturizado son los 8 chips del tipo M5M4V4169 que funcionan a 15ns (66 Mhz) que tiene asignado cada Texture Engine, cada uno tiene un busde 16 bits por chip por lo que cada Texture Engine tiene un bus de 128 bits con la CDRAM. la densidad de cada chip de memoria es de 2MB, por lo que el Model 3 Step 1 tiene unos 16MB de memoria para texturas por Texture Engine y por tanto un total de 32MB.

El Model 3 suele utilizar dos formatos de texturas de 16 bits distintos, aunque el Pro-1000 soporta otros, Sega solo utilizaba dos formatos para estas.

  • 5 bits rojo, 5 bits azul, 5 bits verde, 1 bit alfa
  • 4 bits rojo, 4 bits azul, 4 bits verde y 4 bits alfa.

Las unidades de texturas tienen tres tipos no solo son las encargas de realizar el texturizado de los fragmentos que lee de la 3D RAM y que previamente han escrito sino de realizar el Filtro de texturas, el Model 3 tiene suficiente ancho de banda para realizar filtro trilineal (Bilineal+Mip Mapping) y lo hace con una precisión de 16 bits por pixel, y puede hacerlo sin problemas gracias al enorme ancho de banda que le proporciona la memoria CDRAM.

66 Mhz* 16 bits por chip*8 chips= 1056 MB/s

Podemos saber la tasa de texturizado con trilineal de 32 bits.

1056/ 8 muestras*2 bytes por muestra= 66 MTexeles/s por Texture Engine.

Unos 133 Mtexeles en total en el Model 3 Step 1.

Estas escriben los texels a la 3D RAM que tratare en la sección siguiente.

#4.3 La 3DRAM

Pese al nombre de 3D RAM (o FBRAM que significa Framebuffer RAM) nos parezca indicar que estamos hablando de una memoria RAM al uso en realidad no es así y estamos ante lo que tradicionalmente se llama RAM Computacional o Procesador en Memoria.

Mirando el esquema general de la 3DRAM podemos ver que se trata de la clásica unidad ROP que tienen los procesadores gráficos pero con memoria embebida.

Los ROPS son un concepto muy antiguo que deriva de los llamados Blitter que empezarón a popularizarse a partir del Commodore Amiga, un Blitter no es más que un dispositivo que realiza un traslado de un dato de una memoria a otra pero con una operación realizada en dicho dato, es decir, se trata de un proceso basado en leer el dato en un origen, modificarlo y enviarlo a un destino, a este tipo de operaciones se las llama Read-Modify-Write o RMW.

La idea de la 3DRAM es hacer que ese proceso que suele tardar varios ciclos de memoria se resuelva en uno solo, para ello es clave la llamada SRAM Pixel Cache, una memoria de 2048 bits de almacenamiento que esta compartimentada en 8 bloques de 256 bits y que tiene 3 puertos de acceso a la mismael primero de ellos es uno de lectura+escritura con un ancho de banda de 256 bit que le permite intercambiar datos con la DRAM que funcionaría como una especie de cache de segundo nivel y almacenaría lo que es uno de los búfers de imagen en esos 4 bancos. El segundo y tercer puerto son puertos de 32 bits de lectura y escritura respectivamente donde están conectadas los ROPS/Pixel ALUs/Blending Units.

Gracias a esto se pueden realizar operaciones como la generación del Z-Buffer y la mezcla RGB en un solo ciclo en vez de varios, y esto incluye efectos especiales como el Alpha Blending. Esto se traduce en que la tasa de relleno no se ve reducida al no necesitar varios ciclos para una operación. Y si, se que a muchos os sonara esto porque en muchas consolas de videojuegos lo hemos visto posteriormente al Model 3, pero lo que más se le parece es a una en concreto.

Cuando lo he estado estudiando a fondo lo primero que se me ha venido a la cabeza, es una sensación de…

¿Un dispositivo de memoria pensado para el búfer de imagen con un montón de ALUs para acelerar el proceso de ciertas operaciones? Lo primero que se me ha venido a la mente es ni más ni menos que la Daughter Die del ATI Xenos que es la GPU de Xbox 360. Y un detalle, cuando Lockheed Martin cerro Real3D una buena parte de sus ingenieros fueron comprados por una tal ATI Technologies para crear ATI Orlando, quienes acabaron siendo el departamento que diseñaría con el tiempo la GPU Xenos también conocida como C1.

Los Geometry Engines del Model 3 Step 1 al tener la unidad de rasterizado también exportan el resultado a la 3D RAM para generar el Z-Buffer en esa etapa, lo hacen utilizando un formato Z-Buffer de 24 bits+Stencil de 8 bits y el Geometry Engine tiene acceso durante la fase de rasterizado al contenido de la 3D RAM para aplicar el algoritmo de eliminación de superficies ocultas utilizando ambos búfers para determinar que fragmentos van a texturizarse o no, por lo que la 3D RAM también sirve de puente entre los 2 Geometry Engine y las 2 Texture Units, ya que estas últimas texturizarán los fragmentos creados en la étapa de rasterizado.

Si nos movemos a la etapa posterior al texturizado que es la fase de blending y la de dibujado en el búfer final veremos lo que es la 3D RAM en todo su esplendor y para que sirve. Dentro de la 3D RAM sus ALUs son de 8 bits porque lo que hacen es trabajar con los componentes RGBA de un pixel en concreto por lo general (aunque se pueden utilizar para el Z-Buffer) pudiendo trabajar con precisiones de 4 y 8 bits que son las precisiones clásicas. La 3D RAM se penso por parte de Sun y Mitsubishi para las clásicas operaciones de Blending del estandar OpenGL con la idea de que a mediados de los 90 la propia Silicon Graphics lo utilizará, pero no solo SGI sino todos los fabricantes de sistemas 3D a tiempo real y esta comprobado que no solo Lockheed Martin/Real 3D lo utilizo sino también su competencia Evans & Sutherland, por ejemplo sus tarjetas para PC RealImage utilizaban las memorias CDRAM y 3DRAM de Mitsubishi.

En el pipeline actual la étapa de RGB Blending se ha reemplazado por los Fragment/Pixel Shaders, a nivel general e independientemente de la arquitectura, las Texture Units lo que hacen es enviar los fragmentos generales a las unidades de Blending, hable de la evolución de estas unidades en la entrada Gráficos Retro: Color Combiners, Register Combiners y Pixel Shaders. Así como la funcionalidad de las mismas.

Hoy en día toda la etapa de rasterización se encuentra en la GPU y a finales de los 90 el último nivel de integración antes de la unidad geométrica fue combinar la unidad de Blending dentro de los procesadores gráficos, pero antes no era así y la 3D RAM era una forma de implementar esta funcionalidad y la memoria. Pensad que antes de la implementación de este tipo de unidades la mayoría de tarjetas tenían la memoria para las texturas y el búfer de imagen completamente separadas.

El tema de las Pixel ALUs como he comentado era clásico en la época, todos los sistemas las tenían para hacer cierto efectos especiales. Antes del estandar de los Pixel/Fragment Shader no se agrupaban en bloques de 2×2 pixeles sino por pixeles unitarios, como cada pixel tiene 4 componentes (R,G,B,A) se asignaba una ALU por cada pixel en una configuración SIMD4 y esto era común en todos los sistemas de la época.

Color Combiners en el Graphics Synthesizer.

Como los 4 pixeles de un Fragmento tienen 16 componentes las ALUs pasaron a estar en configuración SIMD16 y con el tiempo fueron aumentando su precisión, primero 8 bits, luego coma flotante de 16 bits, coma flotante de 24 bits… Hasta llegar a los 32 bits que se usan ahora habitualmente desde hace ya más de una década.

Volviendo al Model 3, en todos los juegos, antes de enviar el fotograma final al «Mezclador de Video» lo que hace es realizar un último efecto de Blending y que tiene que ver con la iluminación. Si os acordáis antes he comentado que el Geometry Engine del Pro-1000 puede generar un mapa de luces con una precisión de 6 bits (64 valores), pues bien, lo que hace la unidad de Blending es acumular el valor de cada texel que le viene de la Texture Unit, lo acumula y en el siguiente ciclo toma el valor correspondiente del mapa de luces y los combina para sacar un fragmento iluminado para exportarlo en forma de pixel en formato RGBA8888.

No obstante envia solo 16 bits por ciclo al Video Mixee, y estos 16 bits corresponden a 2 componentes de color de 2 pixeles distintos dentro de la misma area correspondiente a esa 3DRAM, por lo que la tasa de relleno final es de que cada 3 ciclos de reloj 2 pixeles y dicha memoria 3DRAM funciona a 100 Mhz y esto hace unos 133 Mpixeles por lo que hay una correlación 1:1 con la tasa de texturizado.

No olvidemos que 2 de los 4 chips de la 3DRAM son utilizados para almacenar el Z-Buffer y el Stencil Buffer. Y la 3DRAM requiere que ambos bufers se coloquen en memorias distintas. Tampoco olvidemos que la imagen es renderizada en estereo y por tanto tenemos no 2, sino 4 bufers y se almacenan cada uno de ellos en un chip de 3DRAM distinto.

#4.4 Video Mixer

El Video Mixer genera 4 planos distintos, cada uno de ellos a una resolución de 496×384 pixeles y en formato RGBA5551 donde el bit de alpha nos indica si el fragmento es semi-transparente o no, de estos planos uno de ellos es el plano 3D generado por el Pro-1000 que es el único que presenta en formato RGBA8888 de todos ellos y que reemplaza a los otros dos. El dibujado de las 3 capas adicionales no afecta a la tasa de relleno del Model 3.

En realidad es el mismo sistema de mezcla final de vídeo que se encontraba en los Model anteriores y que proviene del System 24 de la propia Sega y que también estaba en el Model 2.

Model 3 Step 2

El Model 3 Step 2 utiliza otra Video Board distinta a la del Step 1, la cual es más confusa siquiera que la primera, no la he tratado en esta entrada porque necesita un análisis distinto y con esta he tenido una tarea titánica.

Espero que me sepáis disculpar, la entrada sobre el Model 3 ha sido ardua y pesada, de días y mucho ensayo y error. El hecho de incluir la Step 2 hubiese sido mortal para mi.

Esto es todo, como siempre tenéis el Discord y los comentarios de la misma entrada para comentar el contenido de la misma.