Página 1 de 3
Ir a la página 1, 2, 3  Siguiente
 

Mensaje Arquitectura 3D de la Saturn

#1  Ryo Suzuki 23 Julio 2010, 09:44 PM

Me ha sorprendido mucho este articulo. Centrado en el proceso técnico de la Saturn al renderizar y poner en pantalla imagenes tridimensionales.

saturn_mainboard

No conocia este blog pero muy interesante. Y ya digo, no creo que existan muchos textos asi en español en la web.

Igual discrepais en algunas cosas, pero seguro que os gustará leerlo, aquí lo tenéis.

Edito: Lo cito aqui tambien para preservarlo por si acaso desaparece:

Citar:
Las generaciones del 3D (SegaSaturn)
General 27 Abril, 2010

Este artículo es único y exclusivamente sobre la arquitectura de Saturn respecto al 3D.

Arquitectura General del sistema

Geometry Engine
Saturn no tiene lo que se llama un hardware específico que haga el trabajo de un Geometry Engine, es por ello que siempre se ha dicho que Saturn esta pensada para el 2D y no para el 3D, en este caso comparte las mismas limitaciones que la 3DO pero con la diferencia de hacer el trabajo con procesadores mucho más potentes para ello por lo que los resultados son mejores.
El primer modo es el uso del SH2 Dual (la CPU de Saturn) para hacer dicho trabajo, el resultado en este modo no es mejor que el del 32X con mayor calidad de imagen gracias a los VDP de Saturn, se ha de tener en cuenta que el 32X y Saturn comparten la misma CPU pero a velocidades de reloj distintas, dicho modo fue el usado en la primera generación de juegos para Saturn con resultados que fueron altamente criticados.

Sega decidió buscar una solución al problema del 3D usando un procesador que no estaba pensado para dichas tareas, el del controlador de memoria. En el control de las direcciones de memoria siempre se acaba sumando, (restando) y multiplicando pero jamás dividiendo. El caso es que Sega decidió usar dicho procesador como Geometry Engine pero de una forma muy curiosa, este no podía dividir por lo que para dividir se necesitaba el uso combinado del SCU con el SH2 y usando ensamblador, lo que resultaba un tedio para los desarrolladores que veían que tanto el PC como PlayStation y el hecho de que ambos sistemas se pudieran programar en C.
Los primeros juegos de segunda generación estuvieron marcados por la triada Virtua Cop, Virtua Fighter 2 y Sega Rally, a partir de ese punto las capacidades 3D de Saturn no mejoraron para nada, se comento durante mucho tiempo que Sega inauguraría la tercera generación de juegos a nivel técnico con el lanzamiento de Virtua Fighter 3 para la consola, pero jamás llegamos a ver dicho juego ni la información sobre la tercera generación técnica de la consola.
Los datos son realmente confusos en ese periodo, las fuentes venidas de Japón hablaban de que los juegos de tercera generación iban a correr en una Saturn sin modificaciones mientras que Sega America afirmaba que existía un Add-On al estilo 32X pero el fiasco reciente de los add-on de Saturn cancelo completamente el proyecto y Sega se acabo centrando en una nueva máquina. Lo más seguro es que dicho Add-On no fuera más que un chip+Memoria que se colocaría en el slot de cartuchos de Saturn, dicho chip se trataba de un Geometry Engine+Triangle Setup que descargaba completamente al SCU de dicha tarea y era mucho más facil de manejar para los programadores.
No se sabe que títulos estaban siendo desarrollados que tuvieran como elemento mandatorio el add-on para poder jugar, solo se comenta que una versión de Virtua Fighter 3 (por lo visto hubo dos en desarrollo, la primera para el add-on y la segunda para una Saturn pelada) y Tomb Raider II, que al final fue cancelado, se hicieron para dicho add-on.
CPU
La CPU de Saturn son dos Hitachi SH2 que no funcionan en paralelo sino en modo maestro-esclavo, esto significa que:
Solo un procesador tiene acceso a la memoria principal y se comunica con otros periféricos
Existe una comunicación directa entre ambos procesadores
El segundo procesador pese a ser de caracteristicas iguales acaba funcionando como un co-procesador del primero
La arquitectura SuperH es una arquitectura RISC que diseño Hitachi originalmente para ser usada como microcontrolador, su bajo coste es lo que hizo que Sega se decantara por dicho procesador para el 32X y para Saturn en vez del 68030 que era el plan inicial, la elección de los procesadores de Hitachi no se hizo por rendimiento sino por coste, no obstante la elección de dichos procesadores llevo consigo ciertas limitaciones.
Pese a que el Program Counter y com ello el Memory Acces Register y el Memory Buffer Register eran de 32 bits, el registro de instrucciones era solo de 16 bits. la mayoría de instrucciones eran del tipo Instrucción(16 bits)+Dirección de Memoria. Esto era debido a que el procesador se diseño inicialmente para funcionar como microcontrolador y unicamente soportaba 2^16 bits de redireccionamiento que son 64K.
Falta de una MMU para el manejo de memoria, cosa que si que tienen todos los procesadores de la serie 68K, esa fue la mayor perdida respecto a la elección del SH2 en vez del 68030
En la parte buena estaba el hecho de que el rendimiento de la CPU era el doble por cada ciclo de reloj respecto al 68030.
Memoria
El Saturn Control Unit no se diseño para encargarse de facilitar el calculo geométrico en las escenas 3D a tiempo real sino que hace el trabajo de comunicar a los diferentes procesadores entre si con la memoria del sistema, aunque en las especificaciones técnicas se relata a la memoria de forma separada la realidad es que se encuentra de forma unificada y es el SCU el encargado de ir manejando los diferentes accesos que tienen los diferentes procesadores.
La distribución de memoria es como sigue:
2MB de memoria para el código principal del programa. De estos se usan 512K como cache para el CD-ROM
1MB para el VDP1 repartidos en 512K y 2 bloques de 256K.
512K para el VDP2
512K para el subsistema de sonido
La memoria RAM es ampliable a través del slot de cartuchos que tiene la consola, aparecieron durante la vida de la consola dos expansiones distintas, la primera de ellas de 1MB creada por SNK y la segunda por parte de Capcom con una capacidad de 4MB. Dichos cartuchos se usaban para conseguir mayores resoluciones en pantalla para los juegos en 2D debido a que internamente Saturn podía trabajar con resoluciones mayores pero se veía completamente limitada por el tamaño de su framebuffer.
Los VDP
Los VDP son 2 coprocesadores gemelos funcionando a 7.2Mhz cada uno de ellos encargados de generar los gráficos de la consola. Estos me servirán para explicar como funciona un sistema de video en una consola basada en una unidad óptica puesto que la forma de acceder a los datos y manejarlos es completamente diferente que en los sistemas de cartuchos.
Mientras en los sistemas de cartuchos la única memoria necesaria en el sistema es el framebuffer, en el caso de los sistemas basados en unidades ópticas debido a la lentitud del medio de almacenamiento se acaba necesitando una mayor cantidad de memoria disponible en el sistema para manipular los datos relacionados con el video. Dicha memoria de video se divide en los siguientes elementos:
Una lista de comandos FIFO (First In/First Out) que funciona en formato pila que marca lo que tiene que hacer el procesador, los comandos estan en formato instrucción propia del procesador gráfico+dirección de memoria del dato a manipular.
Unos datos de entrada para ser manipulados, estos pueden ser sprites ya procesados, sprites pre-procesados como geometría 3D ya transformada a sistema cartesiano para su rasterizado.
Una porción de memoria que se reserva al buffer de la imagen final, cuando la porción de memoria se llena es enviada directamente a la pantalla/monitor a través del RAMDAC para generar la imagen final, en algunos sistemas se puede retrasar el tiempo de envió de la imagen final para poder manipularla.
VDP1
El VDP1 es lo que podríamos llamar un Blitter, su trabajo es la manipulación a tiempo real de los sprites que forman parte de la escena pero que no forman parte de los fondos. El VDP1 soporta mapeado de texturas pero no lo soporta aplicado a triángulos sino a sprites por lo que es necesario que en los juegos de Saturn se usen cuadrados para definir la geometría de la escena 3D en vez de triángulos.
El VDP1 funciona de manera pasiva y no tiene controlador de memoria asignado, esto significa que la gestión de memoria tiene que hacerse siempre de manos del programador, esto resulta enormemente tedioso ya que esto hace que el programador tenga que borrar manualmente el framebuffer al final de cada ciclo de reloj gastando de forma estúpida ciclos de procesamiento de la CPU y el SCU.
En los primeros 512K asignados al VDP1 se almacena por un lado la lista de comandos a hacer como también los datos a manipular, esto pueden ser sprites pre-generados que han sido cargados desde el CD-ROM a esta memoria como direcciones de memoria a la principal como quads previamente transformados al sistema cartesiano y enviados al VDP1 para su texturizado y manipulación a tiempo real.
Los últimos 512K estan divididos en dos modulos de 256K, el primero de ellos es accedido por el VDP1 para colocar los sprites resultantes tras la manipulación/generación de estos, el segundo es accedido por el VDP2 para dibujar la escena en pantalla. Cuando el VDP1 ha dibujado un frame es necesario saltar al otro banco de memoria y decirle al VDP2 que lea el ya generado, cuando un frame ha sido leido por el VDP2 es necesario vaciarlo completamente para ser usado por el VDP1.
VDP2
Se trata del rasterizador que existe dentro de Saturn y es el único de los 2 VDP que tiene acceso directo al DAC para dibujar la escena en pantalla, su trabajo es el de manipular los fondos y es por ello que tiene 512K divididos en 4 bloques de 128K, el VDP2 puede manipular los datos en sus direcciones de memoria asignadas y el framebuffer asignado el VDP1 lo trata como un buffer trasero al cual no puede manipular pero si leer.
El dibujado en pantalla en el caso de Saturn se produce de atrás hacía adelante (siendo los sprites generados por el VDP1 los últimos en ser dibujados en pantalla), el VDP2 tiene asignados 4K de memoria para almacenar los valores de color para ser mostrados en pantalla, cada 8 ciclos el VDP2 dibuja un pixel nuevo en pantalla a través de 3 direcciones de memoria especiales asignadas para las coordenadas cartesianas y el color en pantalla.  Saturn carece completamente de buffer de profundidad por lo que es completamente incapaz de saber cuando un pixel se superpone a otro, simplemente los dibuja todos.
El VDP2 realmente dibuja de forma sistemática de arriba a abajo y de izquierda a derecha, su contador de programa doble siempre apunta al siguiente sprite en cuanto a la resolución, cualquier cambio en la posición del próximo pixel se traduce como un salto por lo que es necesario controlar dichos saltos para evitar que zonas de la imagen se queden sin dibujar.
¿Era impotente Saturn?
La verdad es que no, si comparabas los juegos de PC aparecidos contemporeaneamente a la salida de Saturn (1994-1995) entonces veías que la consola de Sega hacía un muy buen papel, los juegos de primera generación no eran menos complejos que Descent, el cual apareció por aquellas fechas, no obstante fue a partir de 1996 que se empezó a ver las limitaciones que tiene la consola en cuanto al 3D.
¿Era difícil de programar?
Saturn se programaba en C, curiosamente los programas a ejecutar por parte de los diferentes procesadores de apoyo eran enviados en forma de puntero a estructura que incluían dentro los diferentes comandos de cada uno de los procesadores de apoyo, inicialmente eran los desarrolladores los que tenían que controlar ciertos aspectos del hardware pero a medida que fue pasando el tiempo Sega fue descargando trabajo a los desarrolladores así como el permitir el uso de herramientas middleware como 3D Studio para la generación de escenas en 3D.
El único problema real que tenía Saturn era la combo SCU+SH2, en PlayStation existía un procesador para el calculo de la geometría 3D que es el GTE, en el caso de la consola de Sony solo era necesario enviar los datos de cada vertice para que fueran procesados de forma automática y a tiempo real, en el caso de Saturn se tenía que cargar un programa para el SCU.

 




____________
Ayúdame a mantener este y otros proyectos, pulsa aquí

sega_firma

Choose a job you love, and you will never have to work a day in your life. (Confucius)
 
avatar
japan.png Ryo Suzuki Sexo: Masculino
Alfonso Martínez González
Webmaster
Webmaster
Shenmue Freak
 
Registrado: Agosto 2005
Ubicación: 難波
Mensajes: 10762
  • Volver arriba Página inferior
 

Mensaje Re: Arquitectura 3D De La Saturn

#2  Nekketsu 24 Julio 2010, 12:35 AM

al leer el articulo no pude dejar de pensar que proyecto tan ambicioso y sobretrabajado tenian pensado
con la Saturn y ciertamente la Megadrive tambien sufrio ese super mega esfuerzo, cosas asi...
desgraciadamente por culpa de la economia y el precio de el material, no fueron bien acogidas por el
consumidor, es una lastima sinceramente, siempre pensé que la expansion de ram, era una tactica muy
inteligente de hacer expandido y mas duradero su periodo de vida como consola... desgraciadamente
los puntos que dije antes la terminaron por fusilar
 




____________
Las epocas pasan, Sega se rehusa a morir en el corazon de su gente
varigeoreimipose
 
avatar
chile.png Nekketsu Sexo: Masculino
Donante Unreleased €
Miembro de la Elite
Miembro de la Elite
 
Registrado: Enero 2008
Mensajes: 1193
  • Volver arriba Página inferior
 

Mensaje Re: Arquitectura 3D De La Saturn

#3  commander 24 Julio 2010, 11:22 AM

Yo la verdad me pierdo mucho al leer estas cosas,corregidme si me equivoco...entonces la Saturn tenía más limitaciones de las que creíamos??,Sega Rally y VF2 fueron sus "techos" a nivel técnico?? (era imposible ir más allá sin adds on?),pero aun siendo todo esto cierto...como podía mover ese famoso Shenmue?y sin add on
 



 
avatar
blank.gif commander Sexo: Masculino
Donante Unreleased €
Segata Sanshirō
Segata Sanshirō
 
Registrado: Noviembre 2008
Mensajes: 478
  • Volver arriba Página inferior
 

Mensaje Re: Arquitectura 3D De La Saturn

#4  Blackwolf 24 Julio 2010, 07:16 PM

Interesante articulo pero algunas afirmaciones no parecen muy coherentes o no están muy claras.

De todos es bien sabido que los desarrolladores se decantaron por otros sistemas debido a que la arquitectura interna de la Saturn era muy  difícil de programar respecto a las demás consolas pero en este punto del articulo: - El caso es que Sega decidió usar dicho procesador como Geometry Engine pero de una forma muy curiosa, este no podía dividir por lo que para dividir se necesitaba el uso combinado del SCU con el SH2 y usando ensamblador, lo que resultaba un tedio para los desarrolladores que veían que tanto el PC como PlayStation y el hecho de que ambos sistemas se pudieran programar en C - da a entender que los programadores se decantaron por los demás sistemas por que eran mas fáciles gracias a sus arquitecturas internas y a que se podían programar en C para luego decir aquí: - ¿Era difícil de programar? Saturn se programaba en C - que la Saturn también se programa en C.

Son ideas mías o después de esta frase: - tanto el PC como PlayStation - parece que falte algo…

En este otro punto: - Los primeros juegos de segunda generación estuvieron marcados por la triada Virtua Cop, Virtua Fighter 2 y Sega Rally, a partir de ese punto las capacidades 3D de Saturn no mejoraron para nada, se comento durante mucho tiempo que Sega inauguraría la tercera generación de juegos a nivel técnico con el lanzamiento de Virtua Fighter 3 - parece indicar que la Saturn había tocado fondo y todos los juegos que salieron posteriormente no mejoraron para nada y que veríamos el siguiente cambio con la tercera generación con el juego Virtua Fighter 3.

Entonces… todos los juegos que salieron en el año 98 y que claramente eran superiores a los 3 títulos nombrados anteriormente, como los catalogamos…

Haber si algún experto nos ilustra más…  
 



 
avatar
blank.gif Blackwolf 
Staff Unreleased
 
Registrado: Diciembre 2005
Mensajes: 565
  • Volver arriba Página inferior
 

Mensaje Re: Arquitectura 3D De La Saturn

#5  darksnake666 24 Julio 2010, 11:22 PM

Coincido con Blackwolf en sus observaciones, eso si no soy un experto en hardware.  En el tema del C no se si meten la pata, omiten información, o puede que sega al desarrollar las herramientas de programación sacara un traductor de C a ensamblador, de todas formas el texto tal cual está confunde. Sobre la segunda y tercera generación de juegos yo creo que no están muy acertados porque Panzer Dragoon Azel y Burning Rangers lo dicen todo, otra cosa es que pasaran desapercibidos entre los últimos coletazos de la SS, los juegos de PSX y N64.
 



 
avatar
 darksnake666 
SEGA Junior
SEGA Junior
 
Registrado: Junio 2008
Mensajes: 96
  • Volver arriba Página inferior
 

Mensaje Re: Arquitectura 3D De La Saturn

#6  RACCAR 25 Julio 2010, 12:03 AM

Es cierto eso, son 2 incoherencias bastante gordas.

Alguien que dice que el techo de Saturn lo pusieron juegos como Sega Rally, no tiene ni pajolera idea de lo que dice. Sin ir mas lejos el Sega Touring Car Championship ya supero a Sega Rally, y no fue precisamente el unico
 




____________
firma
 
avatar
spain.png RACCAR Sexo: Masculino
Segata Sanshirō
Segata Sanshirō
 
Registrado: Julio 2010
Ubicación: Madrid
Mensajes: 401
  • Volver arriba Página inferior
 

Mensaje Re: Arquitectura 3D De La Saturn

#7  josesnk 27 Julio 2010, 09:48 AM

interesantisimo documento que va a a dar bastante que hablar

yo no tengo ni pajolera idea de programacion,pero por lo leido saturn esta claro que sega metio la garza desde el principio

una maquina con esa arquitectura era un problemon para los desarrolladores de juegos,y encima en aquellas circunstancias no habia tiempo ni ganas de invertir pasta en ella.

menudo panorama tuvo la pobre
 



 
avatar
blank.gif josesnk Sexo: Masculino
SEGA Fan
SEGA Fan
 
Registrado: Diciembre 2007
Mensajes: 194
  • Volver arriba Página inferior
 

Mensaje Re: Arquitectura 3D de la Saturn

#8  darumo 27 Julio 2010, 11:39 AM

Lo que pasa es que los kits de desarrollo despues facilitaron tareas, lo mas probable es que parte del engorro de tirar de ensamblador despues fuese cambiado por funciones optimizadas para usar en C, cuando te tienes que preocupar de menos cosas y estas mas "en el juego" que en programarte las funciones el tiempo se aprovecha mas y se le saca mejor resultado.

Lo de los topes en las consolas siempre ha sido contradictorio, incluso en PSX tambien ha ocurrido, decian que el maximo de PSX era el "Porche challenge", despues salio Ridge Racer Type 4 que le pega un repaso que lo deja en mal lugar, Tekken 2 tambien fue "tope", despues salio Soul Edge, Tekken 3 y Tobal n2, y ya no digamos lo que demostró PSX con Metal Gear Solid. En Saturn pasa igual.

josesnk, si vieras lo limpio y eficaz que es el kit de desarrollo de PSX verias cuanto Sega metio la pata, hace unos años puede ver en formato digital lo que era el manual de comandos del Kit de PSX, era jodidamente facil de entender, super ordenado y tremendamente completo y detallado (lo abarcaba todo, desde comandos sencillos para el manejo de la memory card hasta la lectura del dualshock, dibujado de la pantalla, sonido, etc... ), y no tengo ni idea de programacion C, un programador experto se ahorra dias de programacion usando parte de esos comandos, me recordaban a la facilidad que te da los comandos que te puedes encontrar en un Basic. Esta facilidad es la que enganchó a cientos de pequeñas compañias (despues habia mucha patata, pero tambien habia en cambio juegos buenos de muchas de estas)
 



 
avatar
spain.png darumo Sexo: Masculino
Super Moderador
Super Moderador
Donante Unreleased €
 
Registrado: Septiembre 2005
Ubicación: Málaga
Mensajes: 2988
  • Volver arriba Página inferior
 

Mensaje Re: Arquitectura 3D De La Saturn

#9  macleood 05 Septiembre 2010, 03:49 PM

EXCELENTE ARTICULO  Ryo
Nunca había visto bien explicado este tema

Es triste ver como SEGA metió la PATA en el diseño de la SATURN...  

Quizás otra hubiera sido la historia si en vez tratar de aumentar tanto el ciclo de vida de la MEGA DRIVE desarrollando ADD ON (SEGA CD, 32X), tanto SEGA AMERICA como SEGA JAPON se hubieran unido en el diseño y desarrollo de la SATURN,  creando una nueva consola con buena capacidad tanto en 3D (la tendencia de la época) como en 2D...  
SEGA no hubiera perdido su ubicación dentro de las compañías creadoras de Hardware.

Imagino que una de las causas de la caída de SEGA fue esa rivalidad entre las oficinas de SEGA JAPON / EE.UU. cada una empeñada en sus propios proyectos  

Aun así existen en SATURN juegos con características 3D que son excelentes para la época... Ejemplos BURNING RANGERS, PANZER DRAGOON ZWEI.
 




____________
Mi colección SEGA

34g2hdh
 
avatar
chile.png macleood Sexo: Masculino
SEGA Junior
SEGA Junior
 
Registrado: Septiembre 2008
Ubicación: Santiago - Chile
Mensajes: 50
  • Volver arriba Página inferior
 

Mensaje Re: Arquitectura 3D de la Saturn

#10  saturn_worship 05 Septiembre 2010, 11:07 PM

El documento es medio válido, que tratándose de Sega Saturn ya es para aplaudir.

Antes de irrumpir con un mega-post como el que pienso irrumpir, quisiera aclarar varias cosas.

1.No es que Saturn fuese diseñada como una consola 2D por el uso de quads y maneras un tanto "ortodoxas" para programar en 3D, es que, hay que tener en cuenta la época, y prácticamente SEGA y NAMCO tenían el monopolio del 3D en los arcades, y las cosas (al contrario que hoy en dia que se comparten engines librerias etc) se hacian muy "de puertas para adentro", cada empresa tenía su metodología para el 3D y SEGA tenía los quads (MODEL1,2 Y 3...).

2.Cierto, uno de los estigmas de SATURN fué la falta de un Geometry Engine (si no ocurre nada raro, tanto model 1 como model 2 no lo tienen, y no hace falta decir como se las gasta model2 no? ;) )

3.Saturn se podía programar en C, y en Ensamblador, y como dije en el primer punto, SEGA no concebía en aquella época que third parties minúsculas en comparación pudiesen manejar con solvencia tecnología 3D, por ello no esperaba gran cosa de las third parties, SONY les puso el manejo del 3D en bandeja, y ahi es donde empezó la "batalla"... SEGA había concebido Saturn como un sistema que iba a ser explotado por ellos mismos (más concretamente los gurús de SEGA JAPÓN), por lo que los métodos tradicionales de programación iban a ser suficiente....

El lanzamiento de Saturn fue muy mal planeado, lo que arrastró unas dificultades enormes al sistema en los mercados USA/UK.

"Los primeros juegos de segunda generación estuvieron marcados por la triada Virtua Cop, Virtua Fighter 2 y Sega Rally, a partir de ese punto las capacidades 3D de Saturn no mejoraron para nada"


YouTube Link


YouTube Link


YouTube Link


YouTube Link


Hahahahahahahahahahahahahahahahahhahaahahhahahahahahahahahahahahaha
 



 
avatar
blank.gif saturn_worship 
Staff Unreleased
Moderador
Moderador
Arqueologo Sega Saturn
 
Registrado: Abril 2007
Mensajes: 1198
  • Volver arriba Página inferior
 


Ocultar¿Este tema fue útil?
Compartir este tema
Correo a un amigo Facebook Twitter Windows Live Favorites MySpace del.icio.us Digg SlashDot google.com LinkedIn StumbleUpon Blogmarks Diigo reddit.com Blinklist co.mments.com
technorati.com DIGG ITA linkagogo.com meneame.net netscape.com newsvine.com yahoo.com Fai Informazione Ok Notizie Segnalo Bookmark IT fark.com feedmelinks.com spurl.net

Página 1 de 3
Ir a la página 1, 2, 3  Siguiente