Sega Saturn al límite (I)

Aviso: entrada larga

Introducción

Hace tanto tiempo que empecé este post, posiblemente por el 2010 o 2011. En aquel momento me estaba terminado de pasar o recién me había pasado(no soy capaz de acordarme perfectamente) el Panzer Dragoon Saga en mi segunda SS, una model B. Ambas de segunda mano. La primera una model A PAL, de lanzamiento. Que me dio, creo recordar, mi primo Nono de parte de su cuñada Maripaz. Que era la Sega Saturn que tenían en la «mítica» tienda de Legend en mi pueblo. El problema es que no tenia cable de A/V en aquel momento, el que traía, tenia uno de los pines del conector de video de salida de la SS rotos. Me las arregle como puede y la eche a andar, de una forma poco ortodoxa. Soldando los cables, uno a uno, en la parte interior de la consola, en las patas donde correspondían cada color con el pin.

Pero como decía, recién me había pasado el Panzer Dragoon Saga, pero sin antes, no haberme pasado el Panzer Dragoon 1 y Zwei… y unos cuantos juegos más de SS. En esa época, estaba «on fire» jugando a plataformas antiguas, recordando a tope aquellos años 1995/96 cuando no pude tener mi 32bits de turno… ains, ains…

Pero la magia de la nostalgia, aunque casi 16 años después jugué a estos juegos, la emoción era la misma… la magia estaba ahí. Y el recuerdo de las luchas/charlas con amigos de PSX(En Loja con el primo Nono y Fernando Filter principalmente) o las charlas con amigos pro SS como Pablo Vidal en Málaga volvían de nuevo a mi mente, a mi corazón.

Y hoy, después de 24 años desde que salió la SS me veo leyéndome sus SDK oficiales, y aún más increíble: entendiéndolos. Comprendiendo la bella complejidad de esta máquina de SEGA. Y me encuentro resolviendo las deudas pendientes del pasado conmigo mismo y con ella. Buscando la posibilidad de que aquello que no estaba. ¿Por qué fue? o en el mejor de los casos, encontrar la justificación de que si se había podido hacer. Y si, SI se puede, y es más, he descubierto que se hizo… y muy bien que se hizo en algunos casos.

Y he aquí otra tarea en la que me embarcado, la de indagar y entender cómo se hizo en esos juegos, posible lo «imposible», que además fue quizás lo mejor que se pudo hacer en aquel determinado momento, ya histórico. Pues fue un momento lleno de variables que, tristemente, iban en contra de la Sega Saturn misma. Desde la competencia feroz que en aquel momento con la llegada de Sony existió y con las variables en contra provenientes de la misma madre de la consola, la misma SEGA.

Pero intentaré más que centrarme en los aspectos técnicos generales conocidos. Poner el foco en lo que en su momento más dudas me ocasionaron con respecto a la PSX.

Como puesta en claro de las especificaciones técnicas completas de la Sega Saturn, tenemos esta magnifica wiki pagina:

El resto de cuestiones generales técnicas de la Sega Saturn creo que están magníficamente expuestas en estas entradas del compañero Urian:

Tampoco me centraré, al menos en esta entrada, en la parte «política» de la época: los errores y/o circunstancias tan complejas y especiales del momento, donde SEGA y su/nuestra Sega Saturn salieron perdiendo. Esta parte también Urian lo explica muy bien, donde comparto con él muchas de sus reflexiones:

Pero vamos al tajo, a lo que me interesa. Para ello me he valido de un estudio que he ido realizando a medida que iba avanzando en la investigación de los juegos que me parecían mejores de la maquina. En esta hoja de cálculo tenéis los datos que he recopilado de 323 juegos. De los aprox. 1200 títulos en total. Que son un 20% aprox. del total. Vamos por partes:

Indice:

  1. Lo imposible de solventar: Triángulo vs Cuadrángulo.
    1.1 Triángulo vs Cuadrángulo – Bola EXTRA: Mapeado UV
  2. Lo menos complicado: Sombreado Gouraud e iluminación dinámica a color.
  3. Lo complicado I: Suavidad en juegos 3D = 500 / 1.000 / 1.500 / ~2.000 quads frame = 25/30/60 FPS estables.
    3.1 Lo complicado I – Bola EXTRA I: Uso del SCU-DSP
    3.2 Lo complicado I – Bola EXTRA II: Resolución pantalla SD/HD
    3.3 Lo complicado I – Bola EXTRA III: Teselación / LOD escenario / Mip Mapping
  4. Lo complicado II: FMV pantalla completa y calidad color.
    4.1 Lo complicado II – Bola EXTRA I: Función Calculo Color Avanzado “Gradation / Boken / Blur”
  5. Lo complicadísimo: Transparencias y/o semi-transparencias
    5.1 Transparencias y/o semi-transparencias – Bola EXTRA I: Transparencias + Gouraud = «Table FOG» o Depth Cueing
    5.2 Transparencias y/o semi-transparencias – Bola EXTRA II: Reflejos en suelos
  6. Lo complicadísimo II: Render-to-texture
  7. Lo difícil de «ver»: Efectos de sonido de Reverberación y/o Echo
    7.1 Lo difícil de «ver» – Bola EXTRA I: ADPCM y CD-ROM XA
  8. Lo difícil de “cargar”: Carga sin parar el juego
    Conclusiones
    Epilogo
    Referencias
    Glosario

1. Lo imposible de solventar: Triángulo vs Cuadrángulo.

La Sega Saturn tenía como primitiva 3D el cuadrángulo, es decir un polígono de cuatro aristas, no el polígono mínimo de 3 aristas. Los problemas derivados de ello: Hay más vértices que transformar, aunque había formas(a nivel de código y algoritmos del SDK de SEGA) de ahorrar la repetición del cálculo, si se usa un quad como un triángulo. Pero la deformación tanto en la textura como en el sombreado Gouraud persiste. Y para modelar más texturizar objetos exige una dinámica técnica diferente a la del triángulo. Otro asunto es el tema de pasar modelos basados en el triángulo de PSX a SS del tirón, este ocasionó texturizados más feos en nuestra Saturn respecto al original de PSX.

En este punto señalar, como hemos dicho. La SS tiene como primitiva básica el cuadrángulo. Pero siendo más precisos, es el sprite. Es decir, esto se traduce que como diferencia con PSX, las texturas no se proyectan en un espacio UV, tan conocido por artistas de 3D. Las texturas no se ajustan a un espacio. La SS ya tiene este espacio «bloqueado». Esto aun hace más complejo convertir modelos 3D de PSX a SS. Con esta «imposición», o desajuste de espacio UV de textura, la flexibilidad a la hora de texturizar se perdía, ya que jugar con tiles y la escala en un polígono grande, algo muy usado, en SS no sé podria hacer. Habría que usar un quad por tile, componer texturas en tiempo real y/o hacer «mip mapping» precalculado que conllevaría ocupar más VRAM, típicamente 1/3 más por textura.

La realidad era que la SS era una máquina que manejaba Sprites. Fue una máquina eminentemente pensada para juegos en 2D. Pero con la llegada de las 3D, Sega durante su desarrollo final la adaptó al máximo para ello. Esta particularidad radica que al final internamente la SS cuando dibuja caras/polígonos texturizados, lo que hace realmente es distorsionar un sprite cuadrado. Dándole perspectiva y situándolo en el espacio.

¿Al final se consiguió arreglar esta situación de desventaja?

Complicado y posiblemente se solucionó en parte. Dependiendo del título y la compañía que esté detrás de cada uno. Cuando hablamos de ports o versiones desde otros sistemas casi con total seguridad usaron conversores automáticos de mallas de triángulo a cuadrilátero y de las texturas a formato de la SS, para acelerar las conversiones. Con todo, casi seguro, ya que la filosofía de modelado cambia bastante, habría que retocar las conversiones. Para donde en el modelo 3D original había un triángulo si o si, en Saturn una de dos. O se pasaba a un quad deformado o se hacía una textura con forma de triángulo. Ni que decir tiene, que si las mallas salían mal paradas algunas veces, las texturas no iban a ser menos. Con conversiones de color muy incorrectas, que desvirtuaban el arte original en muchos casos. Con el tema de las mallas nos encontramos con dos situaciones:

  1. O se hacía un triángulo forzando dos vértices a la misma coordenada XYZ, desperdiciando proceso de transformación 3D, bastante caro. A no ser que se usase una función especial para «ahorrar» este cálculo. Pero aun ocasionando la distorsión de la textura al forzar al cuadrilátero nativo de SS a ser un triángulo. Se puede ver en algunos juegos como el Resident Evil en sus personajes principales. Como mejora podría crearse una textura pre-deformada para salvar este defecto, con todo los píxeles de la misma se verán distorsionados, como en Impact Racing, The Lost World Jurassic Park o Wipeout 1. Ejemplos de texturas de Impact Racing:
  2. O se usaba un cuadrilátero entero con una textura, con media textura pintada usando una máscara para no pintar la otra mitad. Y simular un triángulo. Se usó en bastantes juegos, por ejemplo Tomb Raider o Shining Force III. Ejemplos de texturas de Tomb Raider:

Con respecto a el problema de los modelados 3D la única manera de minimizar este «sobre proceso», era reducir la carga poligonal remodelando los modelos 3D para compensar esos vértices de más que no se pueden quitar. Lo fácil, era posiblemente reducir la distancia de dibujo u objetos en pantalla o con LOD* más agresivos. También existían trucos en las librerías SBL(Sega Basic Library)/SGL(Sega Graphics Library) para reducir la repetición del cálculo, a costa de cierta precisión.

Por otra parte, la solución al problema de las texturas al igual que los modelados, sería retexturizar… como es obvio esto sería rehacer un juego, prácticamente. Y no era la solución habitual, por desgracia.

En resumen y por orden cronológico empecemos por los buenos ejemplos de remodelado, retexturizado o buenas conversiones, para mí. Por que esta lista no deja de ser muy subjetiva.

  • Loaded (1996)→ Muy buena conversión de gráficos en global.

  • Battle Arena Toshinden URA (1996)→ Modelos bien convertidos y mejor en esta ocasión con las paletas de color.

  • Tunnel B-1 (1996)→ Un conversión de modelados muy correcta, con las paletas de color en general muy bien convertidas, pero quizás mejorando el contraste final.

  • Fighting Force (unreleased) (1996)→ Conversión de modelado y paletas de color perfectas.

  • Hardcore 4×4 (1996)→ Buena conversión de modelos y buena selección de paletas de color, quizas mejorable el contraste final.

  • Pandemonium! (1997)→ Muy buena conversión de gráficos en global con las paletas de color en general muy bien convertidas, pero quizás mejorando el contraste final en algunos casos.

  • Fifa 97 (1997)→ Muy buena conversión de gráficos en global con las paletas de color en general muy bien convertidas, pero quizás mejorando el contraste final.

  • Croc: Legend of the Gobbos (1997)→ Muy buena conversión de gráficos en global con las paletas de color en general muy bien convertidas, pero quizás mejorando el contraste final en algunos casos.

  • The Lost World Jurassic Park (1997)→ Muy buena conversión de gráficos en global con las paletas de color en general muy bien convertidas, pero quizás mejorando el contraste final en algunos casos.

  • Fifa 98 (1997)→ Muy buena conversión de gráficos en global con las paletas de color en general muy bien convertidas, pero quizás mejorando el contraste final.

Ejemplos buenos pero con detalles mejorables:

  • Battle Arena Toshinden Remix (1995)→ Modelos bien convertidos, con paletas de color mejorables

  • Lemmings 3D (1996)→ Texturas deformadas por conversión directa.

  • Impact Racing (1996)→ Texturas pre-deformadas, que desperdician resolución.

  • Tomb Raider (1996)→ Texturas con malas paletas, o con doble cara activadas y no necesario. Casos de color plano, podría haber usado mejor “polígono plano” que “quad con textura con triángulo y replace”

  • Resident Evil (1997)→ Modelos 3D peor proporcionados y texturizados que los originales y con peor sombreado Gouraud.

  • Nascar 98 (1997)→ Texturas deformadas por conversión directa.

Ejemplos donde las conversiones son notoriamente mejorables:

  • Wipeout 1 (1996)→ Texturas deformadas y paleta de color mejorable por conversión directa.

  • Criticom (1996)→ Modelos mejorables, texturas deformadas y paletas de color muy mejorables.

  • Destruction Derby (1996)→ Modelos, texturas y paleta de color muy mejorables.

  • The Incredible Hulk – The Pantheon Saga (1996)→ Modelos correctos, gran cantidad de texturas en baja resolución y algunas a muy alta. Paletas de color y uso de los efectos mejorables.

  • Krazy Ivan (1997)→ Modelos muy mejorables, texturas deformadas y paletas de color muy mejorables.

Finalmente y sin menosprecio a otros, me quedo con tres de los mejores, a mi juicio. En este apartado. Serian:

  • Soviet Strike

    Lanzado en el 1997-02-17, principios de la de la 3ª ola de juegos para SS. Se nota que los desarrolladores Americanos ya estaban fuertemente familiarizados con la maquina y la madurez de sus SDK se notan claramente en este. Aprovecha realmente bien la SS, mostrando Iluminación dinámica a color con Gouraud. Una gran calidad en los FMV a pantalla completa y sonido estéreo, mediante un codec propietario de EA. Usando los dos SH2 de manera magnifica, y mostrando señales de uso del SCU-DSP. También encontramos signos de uso de CD-XA para las narraciones del juego y música MIDI. Rozando un 77% de uso del total de memoria del sistema. Realmente un gran port, en general nada que envidiar a la versión PSX, incluso mejorándola. Es cierto que se tomaron su tiempo, en este caso 4 meses, pero es nada comparado con otros ports para SS. Y nos encontramos con unos gráficos bien convertidos. Texturas, colores, videos… Todo. Demostrando que cuando se hacían bien las cosas, SS estaba a la altura de PSX o por encima. Y viniendo de EA una alegría, compañía que ciertamente se portó medio regular con la maquina, no en este caso. Poniendo a 5 programadores in house a ello. Algo muy inédito en la época para los ports de SS.

  • Wipeout 2097

    Lanzado en el 1997-09-17, mediados de la 3ª ola de juegos para SS. Los desarrolladores Europeos ya tenían la maquina muy por la mano. Aprovecha muy bien la maquina. Los dos SH2, hay signos de uso del SCU-DSP también y también del DSP de sonido. Rozando un 70% del total en recursos de memoria. Implementando el LOD y Mip-mapping de PSX, e incluso mejorando la distancia de dibujo. Misma iluminación, mismos efectos de partículas. Pena que se mantuviese en 20FPS estables al igual que el Wipeout 1. Igualando las principales características del contenido de PSX. Texturas, colores y mallas al mismo nivel que PSX. Otra gran conversión de Tantalus y Perfect Ent. donde llegaron a su culmen con este juego. Les falto llegar a eso codiciados 30FPS, implementar un mejor codec de video, aprovechar las transparencias posibles de SS mejor y finalmente usar los efectos de reverberación del DSP en los túneles. Sin duda, si se hubiese mejorado esto, se hubiese puesto la guinda al pastel de este port, casi perfecto.

  • Zero Divide: The Final Conflict

    Lanzado en el 1997-11-20, ya de los finales de la 3ª ola de juegos para SS. Las Third parties Japoneses no eran tan habilidosas como las Europeas o Americanas, pero en este titulo como en otros ya mostraban un dominio claro sobre la maquina. Estamos ante el único juego del catálogo que en su titulo destaca: «SH2 Featured». Toda una declaración de intenciones, que cumple perfectamente. Usando un 73% del total de la memoria del sistema, pero tan solo un 65% del VDP1, pudiendo haberse introducido más texturas. Como bien dice, utiliza los SH2 con maestría y ademas el SCU-DSP, en este ultimo caso llegando casi al 60%, pocos juegos llegan a este nivel. También se ve el uso de DSP de sonido. Para compensar el uso de menos geometría en los fondos con respecto a PSX, se usa el VDP2 bastante bien, tanto para el suelo como para 3 capas de fondo. Usando 5 de las 6 capas disponibles del VDP2. A nivel de resolución dobla la vertical de PSX, pero esta un poco por debajo en la horizontal. Es complicado encontrar un juego de lucha 3D bien convertido a SS desde PSX. Por supuesto a 60FPS constantes. Este para mi es uno de los mejores. Los colores y las texturas y gráficos están bien convertidos. Mallas, texturas, colores y desajustes correctos. No como en otros casos donde encontramos conversiones con mallas mal convertidas, texturas distorsionadas con colores saturados o con paletas muy malas. Como Criticom o los Toshinden. Sé hecha en falta algún uso de las transparencias de SS, ya que al no usar HiRes les hubiese sido posible usar para las sombras al menos la transparencia de VDP1>VDP2 y si ademas hubiesen implementado estas sombras con la forma del luchador como en PSX, hubiese sido perfecto. Pero en resumen una magnifica conversión y un gran juego de lucha que cierra la saga.

1.1 Triángulo vs Cuadrángulo – Bola EXTRA: Mapeado UV

Como hemos dicho antes. La SS tiene como primitiva básica el quad o sprite. El cual deforma en el espacio para darle perspectiva.

Las ventajas de esto, es una cierta simplificación para el artista para texturizar y para el programador para manejar el espacio de desajuste de la textura y el almacenaje en memoria, este ultimo ciertamente más sencillo que en PSX. Ya que el espacio de desajuste UV en SS viene bloqueado a un espacio cuadrangular ajustado al quad.

También hay otra ventaja que es la deformación por perspectiva, es menor en SS que en PSX y en algunos casos, inexistente.

Desventajas tiene varias. La principal, que rompe la técnica básica y común de texturizado 3D conocida para los artistas y para los programadores: Por tipos de proyección, escala y desajuste del espacio UV. Limita el uso de este espacio UV por parte de los programadores para conseguir cosas nuevas. Como por ejemplo mapa de reflejo, uso de tiles repetidos en un polígono grande, retexturizado de una geometría sometida a teselación, etc…

Otro asunto seria, como convertir automáticamente los modelos texturizados de PSX a SS. Como hemos dicho antes, los resultados en los ports, son muy variables, en su mayoría negativos. Como decimos, las diferencias son grandes. Y buscar un algoritmo que, interprete y recorte cada polígono+textura en PSX y haga algo equivalente en SS, no seria sencillo.

¿Al final se consiguió arreglar esta situación de desventaja?

Si y No. Ahora hemos descubierto que para Sonic R en el efecto de mapa de reflejo, se programo el desajuste de UV por software para recrear el algoritmo gráfico del mapa de reflejo o de ambiente clásico.

Pero no conocemos otros juegos más. Quizás, y es una especulación, Firestorm: Thunderhawk 2 de Core Design que parece usa un motor por software completo para renderizar el 3D. Si es asi, podríamos considerar que las texturas están siendo ajustadas en un espacio UV, porque es lo lógico y común. Menos para los ingenieros de SEGA que diseñaron el VDP1 de la SS o el VDP de Virtua Fighter 1 de la Model 1 XD.

También un conocido desarrollador de la primera etapa de la scene de homebrew de la SS, RockinB. Hizo una implementación y demo hace años, con resultados espectaculares. En su web y un Video de un usuario de Youtube:

 

Quedan las dudas de si:

  1. ¿Con la implementación del equipo de J. Burton en Sonic R, podríamos haber visto reflexiones en un juego de coches como GT en PSX?
    SI. Yo creo que sin problemas. Analizando el reflejo de la pantalla de inicio. Vemos que es un Sprite Normal. Aplicando un Replace/Half-Transparent. Imaginar un coche donde esta la «R», incluso con cantidad de polígonos similar es muy fácil. Seria el coche principal y el resto con un efecto similar pero sin calcular otra vez, repitiendo el principal y listo. Seria un reflejo incluso mejor que el de GT de PSX. Puede a ver algún problema de clipping, pero nada que no ocurra ya o se pueda corregir de alguna manera.
  2. ¿Con la implementación de RockinB seria posible conseguir lo mismo, si es lo suficientemente rápida como para ser usada en un juego completo?
    Aquí no lo veo tan claro. Probando la demostración técnica, se nota que le cuesta y es un solo objeto. Habría que depurar mucho más el código y lo necesario seria escribir el máximo en ensamblador tanto de los SH2 y usar el SCU-DSP. Es justo decir, que con el mapeado plano, que ya es una mejora con respecto al no mapeado UV de SS, funciona muy rápido.

2. Lo menos complicado: Sombreado Gouraud e iluminación dinámica a color.

Pero complicado para la Sega Saturn con respecto a la PSX. El sombreado Gouraud con varias fuentes de luz en movimiento y con color claramente costó, pero Loaded, NiGHTS into Dreams(menos), Burning Rangers, Exhumed, Darklight Conflict, Duke Nukem 3D y Quake lo lograron de sobras. Y todo ello gracias a la simplificación y acceso fácil en las revisiones de los SDK y la creación del «SGL» (aka Sega Graphics Library) para que los desarrolladores pudieran llegar a lo mismo de manera similar a la PSX. También, y hay que ser justos, a la habilidad de algunos desarrolladores.

En este punto me gustaría distinguir, entre sombreado Flat y Gouraud. Y como con o sin Light Sourcing Color afecta al rendimiento general. Como en PSX desde el inicio se dispone de estas características en muchos juegos y en SS no. La iluminación con fuente, en general ya en SS era complicado, pues no estaba integrada en sus SDK desde el inicio. Y había que programarlo, y era un técnica compleja a nivel de geometría y exigente en cálculo. La SS como hemos dicho tenia mucha potencia de cálculo, más que PSX. Pero distribuida en varias partes, mientras la PSX la tenia concentrada y fácil de usar. Muchas veces podemos encontrar juegos donde hay iluminación plana, facetada pero con fuente y color, donde el resultado aun es espectacular. El rendimiento así es menor. Al sumar el Gouraud a la escena la exigencia de cálculo, memoria principal y en la VRAM sube, en ambas maquinas. Finalmente encontrar luces con colores o no, también es por la misma razón. Reducir el uso de memoria y simplificar el cálculo.

Otro detalle, parecido entre las maquinas. Es la forma de iluminar polígonos planos, o el sombreado Plano. Ambas pueden usar el sombreado Gouraud de forma plana, sin degradado, con un color base predefinido o calculado para iluminación dinámica. También se usaba a menudo para colorear partículas o iluminar las letras de los menús. Usarlo para gráficos en 3D, quizás no seria la mejor opción. Porque el proceso de Gouraud tiene un coste en ambas, con o sin degradado, de hecho el mismo. En algunos juegos se usaba otra técnica. Que era hacer niveles de color por luminancia en las paletas de los colores planos o texturas a usar. Era más rápido, cara al proceso gráfico, ocupando algo más de VRAM. Como digo igual en ambas maquinas.

Es curioso como en el SDK de PSX se puede ver claramente como está integrado todo el tema de la iluminación. Haciendo referencia incluso a la luces máximas y tipos de luces que se pueden usar directamente con el GTE, de manera optima y accesible. En este caso hasta tres luces paralelas y una ambiente. Típico aspecto de 3D poligonal sombreado. Donde podemos percibir esa base de color ambiental mas los sombreados direccionales.

Como venimos diciendo, la clave de ver juegos desde inicio con iluminación dinámica a color y Gouraud en PSX fue gracias al procesador «GTE» o motor personalizable de transformaciones geométricas e iluminación. Completamente accesible además mediante librerías en C y C++ de fácil uso y código fuente. También código en ensamblador o macros. Proporcionadas por Sony, desde el minuto 0 de la vida de PSX.

Donde en contra en la SS se tenía que programar usando los dos SH2 como DSP más el SCU-DSP en conjunto con la función Gouraud por hardware del VDP1. Hasta el SGL 2.1 (en 1996-05-05 para Fighting Vipers) o más avanzado, esto no se simplificó de manera similar a la PSX a nivel de librerías. Con código en C y ensamblador y codigo fuente(no en su totalidad). Con la potencia «bruta» de la SS era posible igualar o superar a PSX. Pero pocos programadores se metieron en este jardín. SEGA lo facilito, pero con todo no llego aprovechar al 100% las posibilidades máximas de las SS. Al menos en su SDK, en cual estaríamos hablando que se llegaría a aprovechar entre un 80/90% pues no he podido ver presencia del SCU-DSP integrado con facilidad dentro de SGL, si sin embargo en SBL, pero desconozco el grado de optimización que tienen. O incluso del M68000 para ayudar en los cálculos de transformación geométrica e iluminación. Lo cual en teoría es perfectamente posible. El uso del SH-1 es complicado, al estar en buffer del sistema distinto al principal.

Ya en concreto sobre el sombreado Gouraud en la SS. Resaltar, que la forma, técnicamente hablando, de realizar dicho efecto en SS, es ligeramente diferente a la PSX. Aunque las dos procesaban este efecto por hardware que en la realidad se traducía en una penalización por uso del efecto en las ambas.

Por un lado la PSX hacía el efecto a nivel de triángulo, con 24bit(8:8:8) de profundidad de color que después recortaba a 15bit(5:5:5) en v1 de su GPU para después en su v2 dejarlo en 24bit(8:8:8), finalmente al usar dithering en el framebuffer final, se degradaba el color y las franjas de cambio se disimulaban más que en SS aunque esta usaba una profundidad de 15bit(5:5:5) igual a la v1 de la GPU de PSX. Por otro lado SS necesitaría menos memoria para usarlo, PSX al tenerlo fijo a 24bit(8:8:8), necesitaría más memoria por vértice y quad(2xTris) en su conjunto. Finalmente la SS era capaz de dibujar el sombreado Gouraud en algo de menos tiempo que la PSX.

También, al mezclar el efecto con la textura o polígono plano base la SS lo hacía de forma aditiva que afectaba a luminacia y en el caso de la PSX de forma multiplicativa. Lo que implicaba que visualmente en el caso de SS, el color del degradado tapara la textura base, y en el caso de la PSX se mezclará de forma más suave. Esto ocasionó el aspecto más saturado(oscuro) de los juegos 3D de SS, tan característicos de esta. Y un aspecto más estándar en PSX por esta parte.

Al «final», en esencia, el resultado es el mismo. Suavizar los cambios en las aristas y dar la posibilidad de crear una iluminación suave sobre los polígonos texturizados o no.

¿Al final se consiguió arreglar esta situación de desventaja?

En su mayor parte, con la librería SGL, no por parte de todas las Third parties, pues la mayoría desarrollaban primero en PSX y esto ya limitaba aprovechar la SS por ellos.

Por las first parties de SEGA claramente. Tanto, AM1, AM2, AM3, Sega CS2, Sonic Team, Team Aquila y Team Andromeda. Llevaron la máquina al límite con diferentes resultados. Para mi los más notables y que ponían el listón al nivel de PSX o en algunos casos a más: El Sonic Team con Burning Rangers y el Team Andromedia con Panzer Dragoon Saga

AM2 y AM3 seguían filósofas más de fidelidad a sus arcades, intentando trasladar la más alta cantidad de FPS y resolución a SS. Olvidando el sombreado Gouraud y la iluminación dinámica.

Pero no olvidemos como AM2, más adelante, con Fighters Megamix (antes con Fighting Vipers), pensado para SS y para competir con PSX, también lo lograron. Pero el feeling visual de PSX, lo alcanzaron Sonic Team con su motor 3D (Nights, Sonic Jam[World map] y Burning Rangers) y Team Andromedia con los Panzer Dragoon. Usando sombreado Gouraud con color y fuentes en movimiento. Burning Rangers siendo un juego a una tasa de frames suave y estable(20 FPS), gran colorido, sombreado Gouraud e iluminación con color.

También Camelot Software Planning junto a Sonic Co. compañías detrás de Shining Force III, la serie de RPG exclusivos pensados y procedentes de Japón de la mano de SEGA. Ponen de manifiesto el uso del Gouraud Shading con iluminación dinámica, de manera magistral, durante los combates en 3D. Además de usar el Hardware de la SS de manera sublime durante los mismos. Usando todas los layers de VDP2 junto al VDP1, de manera soberbia. E incluso el SCU-DSP para conseguir efectos 3D espectaculares. En definitiva haciendo uso de todas las capacidades de SS, como las transparencias que veremos más adelante.

Algunas Second parties como Treasure (Guardians Heroes, Radiant Silvergun y Silhouette Mirage), Travels Travels (Sonic R: Gouraud e iluminación a color dinámica, texturas 16bit, varias formas de semi-transparencia con VDP1 y VDP2 ) y Nextech (D-Xhird llevando al límite su motor 3D), también llevaron la SS a unos límites extremadamente altos.

Muchas Third parties finalmente también fueron capaces de integrar el sombreado Gouraud más iluminación al nivel esperado (PSX style).

En sus últimos tiempos allá por el 1998, algunas pequeñas Third parties japonesas explotaron la SS de manera magistral, y el conocimiento de la máquina y la facilidad de acceso a ella mediante SGL ya se asumió por la industria: Ejemplo juegos de lucha y coches como Savaki y Touge King the Spirits 2 son demostraciones claras de ello, donde el uso del Gouraud Shading es completo y perfectamente integrado.

Por poner números concretos en la situación. Estaríamos hablando que del estudio que he realizado un 35,65% tienen algún tipo de iluminación. Un 27,13% de los juegos tienen iluminación con fuente más parecida a la de PSX. E igual o superior a PSX, 3 fuentes de luz o más con fuente y con color, un 5,42%. Si extrapolamos al total del catalogo, como podemos ver son relativamente a PSX muy pocos juegos. Sin entrar en lo bien optimizados que estén.

Ahi va una lista por fecha de publicación y de tipo estudio, de todos los territorios. Detallando el tipo iluminación implementada:

1st Party

  • Virtua Fighter 1 (1994-11-22) → 1 Luz Estática con fuente sin color sombreado Plano con paleta de color.
  • Wing Arms (1995-09) → Primer juego con Iluminación dinámica con 1 luz con fuente sin color con sombreado Gouraud. Mediante SGL 1.0
  • NiGHTS into Dreams (1996-07) → 3 o + Luces de punto y direccionales dinámicas con fuente y color con sombreado Plano/Gouraud
  • Fighting Vipers (1996-08) → 1 Luz Dinámica con fuente y sin color con sombreado Gouraud. Sombras humanas opacas con la Fuente de luz dinámica.
  • Fighters Megamix (1996-12) →1 Luz Dinámica con fuente y sin color con sombreado Gouraud. Sombras humanas opacas con la Fuente de luz dinámica.
  • All Japan Pro Wrestling Featuring Virtua (1997-10) → 1 Luz Estática con fuente sin color + Luz Ambiental con sombreado Gouraud.
  • Burning Rangers (1998-02) → 3 o + Luces dinámicas con fuente y color con sombreado plano/Gouraud.
  • Panzer Dragoon Saga (1998-03)→ 2 luces dinámica con fuente con color Gouraud/plano en 3D juego humano. 3 o + luces dinámicas con fuente con color Gouraud/Plano en 3D Vuelo/Batalla. Mapa de Luz sobre plano VDP2.
  • Pro Yakyuu Greatest Nine ’98 Summer Action (1998-08)→ 1 Luz Estática con fuente sin Color + Luz Ambiental con sombreado Gouraud. Sombras humanas con fuente y animadas. LOD lejano con forma de estrella.

2rd Party

  • Ghen War (1995-12) → 1 Luz estática bake(pre-calculada) sin color sombreado plano/Gouraud en escenario. 1 Luz estática con fuente sin Color con sombreado plano/Gouraud en elementos y enemigos.
  • Congo: The Movie – The Lost City of Zinj (1996-03) → 1 Luz estática bake(pre-calculada) sin color sombreado plano/Gouraud en el escenario. 1 luz estática con fuente no Color con sombreado plano/Gouraud en mano/Arma y en objetos 3D.
  • Pandemonium! (1997-02)→ 3 o + Luces dinámicas con fuente y color con sombreado Plano/Gouraud
  • Sky Target (1997-04) → 1 Luz estática con fuente sin color con sombreado Gouraud/Plano
  • D-Xhird (1997-05)→ 2 Luces dinámicas con fuente y color con sombreado Plano/Gouraud. Sombras humanas con Fuente de luz dinámica y sombreado mesh.
  • Assault Rigs (1997-09-11)→ 1 Luz dinámica con fuente con color + Luz Ambiental con sombreado plano mediante Gouraud.
  • WipEout 2097 (1997-09-17)→ 2 Luces Estática sin fuente con color sombreado plano/Gouraud
  • The Lost World Jurassic Park (1997-10-07)→ 3 o + Luces de punto dinámicas con fuente y color con sombreado Plano/Gouraud. 1 Luz Paralela(Directional) y 2 or + Luces de punto.
  • Duke Nukem 3D (1997-10-29)→ 3 o + Luces de punto dinámicas con fuente y color con sombreado Plano/Gouraud. Iluminación pre-calculada en escenarios con Gouraud.
  • Sonic R (1997-11-21) → 1 Luz estática con fuente con Color Gouraud/Plano. Gouraud Color en el escenario. Fuente y color en los modelos de personajes.
  • Zero Divide: The Final Conflict (1997-11)→ 1 Luz Estática Paralela(Direccional) con fuente y color con sombreado Gouraud en partes de los luchadores y Sombreado Plano mediante Gouraud en todas las partes restantes del luchador y en los planetas/escenarios de la pantalla de selección de escenario/enemigo.
  • Quake (1997-12-03)→ 3 o + Luces de punto dinámicas con fuente y color con sombreado Plano/Gouraud. Iluminación pre-calculada en escenarios con Gouraud.
  • Shining Force III (1997-12-11)→3 o + Luces dinámicas con fuente y color con sombreado Plano/Gouraud
  • Zap Snow Boarding Trix 98 (1997-12-18)→ 1 Luz Estática bake(Pre-calculada) con Color con sombreado Gouraud en el escenario. 1 Luz Dinámica no fuente si color con sombreado plano en personaje.
  • Stellar Assault SS (1998-02)→ 3 o + Luces dinámicas con fuente y color con sombreado Plano/Gouraud
  • Radiant Silvergun (1998-07) → 1 Luz con fuente no Color con sombreado Plano/Gouraud en elementos 3D y enemigos.

3st Party

  • Tama – Adventurous Ball in Giddy Labyrinth (1994-11-22)→ 1 Luz Estática con fuente sin color sombreado Plano con paleta de color.
  • Victory Boxing (1995-10-20)→2 Luces dinámicas paralelas(direccionales) con fuente sin color con sombreado plano mediante Gouraud.
  • Tadaima Wakusei Kaitakuchuu! (1995-11)→ 1 Luz Estática con fuente sin color con sombreado plano/Gouraud
  • Robo-Pit (1996-02)→ 1 Luz Estática con fuente sin color con sombreado plano/Gouraud
  • Loaded (1996-06)→3 o + Luces dinámicas con fuente y color con sombreado Plano/Gouraud
  • Blam! Machinehead (1996-08)→ 1 Luces Paralela(Direccional) con fuente sin Color con sombreado Plano/Gouraud en assets 3D. 1 Luz Estática bake(pre-calculada) sin color con sombreado Gouraud/Plano en escenarios.
  • Exhumed (E) / Powerslave (U) (1996-09) → 3 o + Luces de punto dinámicas con fuente y color con sombreado Plano/Gouraud. Iluminación pre-calculada en escenarios con Gouraud.
  • Tunnel-B1 (1996-10)→ 3 o + Luces de punto dinámicas con fuente y color con sombreado Plano/Gouraud. Iluminación pre-calculada en escenarios con sombreado plano.
  • Mighty Hits (1996-10)→ 1 Luz Estática con fuente sin color con sombreado plano/Gouraud en modelos 3D y algunos mini-juegos. 1 Luz bake(Pre-calculada) con sombreado Plano/Gouraud en todo el resto.
  • Tomb Raider (1996-10)→ 1 Luz Estática con fuente sin color con sombreado plano/Gouraud en personajes y modelos 3D. 1 Luz bake(Pre-calculada) con sombreado Plano/Gouraud en el escenario.
  • Street Racer (Extra) (1996-11-16) → 1 Luz Paralela/Direccional Estática bake(Pre-calculada) sin Color con sombreado Gouraud en todos los Assets 3D.
  • Fighting Force [Judgement Force] (1996-11-26 Unreleased) → 1 Luz Estática bake(Pre-calculada) sin Color con sombreado Gouraud solo en selección de personajes en los modelos.
  • Harcore 4×4 (1996-12) → 1 fuente de Luz estática paralela en coches y modelos 3D. 1 Luz Bake(pre-calculada) con sombreado Gouraud/Plano en escenarios/terreno.
  • NHL 97 (1996-12)→ 1 Luz bake(pre-calculada) sin color con sombreado plano/Gouraud en personajes y modelos 3D.
  • Fighting Illusion K1 Grand Prix (1997-01)→ 2 Luces Paralelas(Direccionales) con fuente y Color con sombreado Plano/Gouraud. Sombras humanas transparentes con la Fuente de luz estática.
  • Soviet Strike (1997-02)→ 3 o + Luces de punto dinámicas con fuente y color con sombreado Plano/Gouraud.
  • Die Hard Trilogy (1997-02)→3 o + Luces de punto dinámicas con fuente y color con sombreado Plano/Gouraud.
  • Drift King Syutokoh Battle 97 / Shutokou Battle ’97: Tsuchiya Keiichi & Bandou Masaaki (1997-02)→ 1 Luz Estática con fuente sin color con sombreado Gouraud en vehiculos y mapa circuito menús. 1 Luz bake(Pre-calculada) sin Color con sombreado Flat en escenarios.
  • MechWarrior 2: 31st Century Combat (1997-04)→1 Luz Estática con fuente sin color con sombreado Gouraud. Sin Luces Dinámicas.
  • Touge King the Spirits 2 (1997-04)→ 2 o + Luces Estáticas con fuente y color con sombreado Plano/Gouraud solo en coches. Luz del coche en modo nocturno en carretera y degrada a oscuro en el horizonte. Degradación del escenario a oscuro en el horizonte usando Luminancia de color con sombreado plano.
  • Swagman (1997-06)→1 Luz Estática con fuente sin Color con sombreado Plano/Gourand en assets 3D. Uso de Gouraud para Intensidad de luz en elementos 2D. Sombras proyectadas 2D con fuente de luz sombreadas con Mesh.
  • Darklight Conflict (1997-07)→ 3 o + Luces de punto y direccionales dinámicas con fuente y color con sombreado Plano/Gouraud.
  • Resident Evil (1997-07)→ 1 Luz Dinámica con fuente sin color con sombreado Plano/Gouraud en los modelos y assets 3D.
  • Croc: Legend of the Gobbos (1997-09)→ 1 Luz bake(pre-calculada) no color en personaje, escenario y resto juego en 3D. 1 Luz Estática con fuente sin color en elementos 3D en menús. 1 Luz Dinámica con fuente sin color en Logotipo 3D del menú principal.
  • Ninpen Manmaru (1997-12)→ 1 Luz Dinámica con fuente sin Color Flat/Gouraud en escenario, enemigos y assets 3D. 1 Luz Bake(pre-calculada) con sombreado Gouraud en personaje principal.
  • Savaki (1998-04)→2 Luces Dinámicas con fuente y color con sombreado Gouraud.
  • Virtual Kyōtei 2 (1997-12-04) → 1 Luz Dinámica con fuente sin color con sombreado Plano/Gouraud en los modelos y assets 3D.
  • Code R (1998-07-09)→2 Luces Locales Dinámicas con fuente y color con sombreado Gouraud.

Finalmente de nuevo me quedo con otros tres de los mejores juegos en este apartado. Que serian:

  • Fighting Illusion K1 Grand Prix
    Publicado a principios del 1997 solo en Japón, principios de la 3ª ola de software para la SS. Para mi el juego de lucha 3D técnicamente más completo del catálogo de SS. No desde el análisis de jugabilidad. Si no técnicamente, estamos hablando de que tenemos iluminación dinámica a color y con fuente con hasta un luz directa y otra difusa. Escenarios completamente 3D y grandes. Uso del VDP2 para el escenario. Deph Cueing para la lejanía. Sombras transparentes sobre el plano VDP2 con forma humanas y desde un punto de luz. Gran cantidad de geometría en pantalla. Modo VDP2 HD para UI. Gran uso del color y degradados del Gouraud del VDP1. Una velocidad entre 25 y 30FPS estables. Usando los dos SH2. Usando un 68% del total de memoria del sistema. Pero sin usar el SCU-DSP y el DSP de sonido.
    Como port en general con respecto a PSX, fue sobresaliente. Igualando la mayoría de las características: cantidad de polígonos, iluminación, color y calidad de FMV. Añadiendo más contenido como compensación: Efectos en escenarios, sombras luchadores, más luchadores, menor tiempo de carga… Solo algo menos de resolución en el 3D y el FMV algo más pequeño, pero casi a pantalla completa. Y todo ello con una diferencia de 5 meses, es bastante, pero fue lo normal por desgracia entre los juegos de 1ª ola y principios de la 3ª ola. Ya a mediados de la 2ª ola los SDK de SS mejoraron mucho y se pusieron casi a la par de PSX, traduciéndose los buenos resultados en este momento, principios del 1997.
  • Quake
    Publicado a finales del 1997, final de la 3ª ola. Como vemos el nivel en la maquina ya es muy alto. Por supuesto usando magníficamente el sombreado Gouraud en todo el escenario, textura animada del agua y para la iluminación dinámica a color, esta ultima incluso mejor que la de PC. Quizás falto ver esta iluminación en el arma, como en PC. Posible por otra parte, utilizando(por ejemplo) el Color Offset o Line Color Screen sobre la capa del arma, que era un gráfico 2D.
    Aprovecha los dos SH2 más el SCU-DSP, este ultimo casi seguro que para el 3D (animaciones o transformaciones de vértice, no se puede concretar fácilmente). Pero si podemos concretar, que sé esta usando el 50% de la memoria disponible del SCU-DSP y un 43% de sus registros totales. Prueba inequívoca de que sé esta usando. Notar que es el único juego de la, por otra parte, magnifica Lobotomy Software. Con 3 programadores principales más dos de apoyo. Y desarrollando a la vez el port de Duke Nukem 3D. Y con solo dos meses de diferencia entre ambos.
    Aprovechando un 66% del total de la memoria, versus el 88% de Duke 3D. No deja de ser curioso la verdad. Posiblemente, la complejidad y variedad de Duke3D era mayor. Aunque Quake tenia enemigos y objetos en 3D.
    De cualquier forma una versión que no tenia que invidiar mucho a la de PC, comprendiendo la potencia y coste de este en la época. Y el resultado final en FPS y resolución fue medio-alto. Igualando la resolución estándar de PC(320×240) y con unos FPS entre 15 y 30 FPS. Ademas Quake en SS, se renderizaba a 16bit, prohibitivo para el PC en aquella época. Y salvando que requería 8MB de RAM mínimos, y en SS disponía de 2MB RAM principal, más 1,5MB VRAM y 0,5MB de RAM para sonido. En total 4MB RAM, que es la mitad del mínimo de PC. Se tuvieron que reducir los escenarios y frames de enemigos por ello. Pero el port mantuvo la esencia total del original, con niveles completos sin cargas intermedias, texturas, sonidos, features y ¡todo!. Señalar que aunque se puede ver un uso mínimo del M68000 y del SCSP-DSP.
    Como curiosidad, destacar que Lobotomy no utilizo “expresamente” nunca el M68000 para el proceso de sonido principal, menos aun el SCSP-DSP. El uso mínimo quizás responda a la reproducción de las pistas de CD para la música. Siendo realmente asombroso el jugo que le sacaron a los dos SH2, y en este juego al SCU-DSP.
    Comentar también como curiosidad, que posiblemente junto al resto de sus juegos. Ellos son de los pocos que usan para acelerar los gráficos del VDP1 la función User Clipping, en este juego hasta en 30 ocasiones por Frame. Unos genios. Quien sabe si hubiesen podido llegar un poco más lejos aun con la maquina. Al menos, nos quedo otro grandísimo juego para el 1997.
  • Shining Force III
    Publicado también a finales del 1997, nos encontramos ante el mejor RPG de SS sin dudarlo. Con el permiso del magnífico Panzer Dragoon Saga. Y es uno de los juegos que mejor aprovecha la maquina, particularmente en el sombreado Gouraud es espectacular. Usándolo en todo el 3D: mapas y batallas, con hasta tres luces dinámicas a color, resultando en una iluminación magnifica.
    Haciendo un uso del 83% de la memoria total disponible, con picos del 95% de uso de la RAM principal.
    Con una espectacular intro FMV, a toda pantalla, suave y en estéreo. Usando el VDP2 para poner hasta 32bit de color en pantalla.
    Usando todas las unidades de proceso para el 3D. Específicamente el SCU-DSP para hacer “render to texture” para efectos de textura procedurales. Llegando a un uso del 100% de la memoria del SCU-DSP y casi un 40% de los registros disponibles. Usando todas las capas del VDP2 de forma magistral. Y todos los modos de transparencia posibles de la maquina, tanto la semi-transparencia del VDP1, como los diferente modos de transparencia del VDP2: Combinados con el VDP1 o propios del chip. Para sombras y toda clase de efectos de luz, magia o partículas sobre todo en los combates 3D. Pero también en cinemáticas y en el mapa de juego. En este repaso al uso de los chips especiales de la maquina, no podíamos dejar de hablar del SCSP-DSP. Que en este juego, podemos estar hablando del mejor uso que he oído. Las melodías, cantidad y los efectos de DSP que se usan en ellas son espectaculares. Pudiendo percibir perfectamente el uso de Reverberación y Chorus en muchas de sus notas, y pudiéndose ver en el visualizador de canales de Yabause el uso de los 32 canales. Hay más juegos con uso magnifico(PDS, Radiant Silvergun…), casi como en este. Pero Shining Force III pone el listón casi en el infinito con la música.

Fin primera parte.

7 comentarios

  1. Más de quince años sin verte y me encuentro con esta serie de magníficos artículos, firmados por ti, sobre Sega Saturn, enlazados desde hidden Palace, y solo unos días de haberme acordado de ti. Y no por casualidad, sino a raíz de haber desempolvado por enésima vez mis dos sega saturn y recordar a la vez tu pasión por esta consola cuando íbamos a la universidad y que veo, con admiración, que tu dedicación ha transformado en conocimientos que te agradezco que compartas abiertamente.
    Felicidades por unos artículos más que interesantes y, de nuevo, muchas gracias.
    Me queda pendiente por leer el artículo sobre el ZX Spectrum, que también he desempolvado tras quedarme loco al ver motores que evitan el Color Clash, o demos en las que se muestran colores que me habrían hecho perder dinero en una apuesta si me hubieran dicho que eran de un spectrum. (Paralactika)

  2. Comento sobre la diferencia de dos juegos de las placas arcade ST-V Titan y Zinc, por lo que encontré, ninguno de los dos publicados ni en Saturn ni PSX, aunque quizas con otros nombres?.

    ST-V Titan: Tecmo World Cup ’98 (Tecmo, 1998)
    Resolución en el juego: 704×448 (entrelazado) a 60fps, ejecutado en MAME, realmente todo se mueve a la vez por frame terreno de juego y animaciones, no como el por ejemplo Die Hard Arcade (702×240?) que en cada imagen por segundo se intercala una de animaciones y otra con un cambio de perpectiva del escenario de fondo.
    Colores contados de una captura al azar unos 600.

    Zinc: Tecmo World Cup Millenium (Tecmo, 2000)
    Resolución el el juego: 512×240 (progresivo) a 30fps, ejecutado en MAME
    Colores contados de una captura al azar unos 700, (unos 100 más).

    Evidentemente són dos juegos diferentes. Pero aún así dá que pensar que Saturn sin contar con todos los efectos «bonitos» de PSX, en fuerza bruta podria ser superior en alrededor un 50% por lo bajo y un 70% siendo ya rozando la fantasia.

  3. Otra comparación que puede resultar «odiosa»:

    Mientras el Hyper Athletes de Konami (en placa arcade KonamiGV) tiene una resolución de 512x480i a 30fps… Athlete Kings 702x480i a 60fps… aunque Nagano Winter Olympics ’98 de Konami con 640x480i a 30fps, extrañamente su «oponente» Winter Heat de Sega con la misma resolución del Athlete Kings (este ultimo a 60fps) pero esta vez Winter Heat rinde a 2x30fps*, será por el mayor detalle?, o tiene mas personajes en pantalla en algun momento del juego?.

    *Lo de 2x30fps en Winter Heat, me refiero al extraño efecto (que también está en Die Hard Arcade) en el que las animaciones de los personajes són a 30fps, pero el renderizado se reparte: en un frame solo se renderizan las animaciones, en el siguiente frame no hay nuevo renderizado de animación pero el fondo sí se renderiza, es decir, se intercambian el renderizado a cada frame los personajes y fondo (en Athlete Kings evidentemente esto es simultáneo). Supongo que será que como el VDP1 (personajes) y el VDP2 (fondos) són independientes, Sega Saturn se lo puede permitir, consiguiendo unos «60fps entrelazados.» Astuto pero no deja de ser una artimaña.No sé si se lo sabia usted pero me resulta raro raro raro y curioso a la vez. Se lo comento porque no he encontrado información al respecto ni en sus artículos ni por internet. Esto en la placa arcade ST-V emulada en MAME, se supone que las versiones Saturn también lo tendrán, aunque no tengo ni idea de cuantos juegos de Saturn utilizaran esto.

Responder a Urian Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.