› Foros › Retro y descatalogado › Consolas clásicas
It's interesting to note that the main issue that made the Saturn difficult to work with, the inability to access memory at the same time from either CPU, was also a major issue on the PS2. The difference was that the PS2 gave the programmer actual mechanisms (Scratchpad, VU local memory, DMA L/S)to get around that issue and stay off the bus during processing, as much as possible.
The bus thing is handled automatically though...
Not really. Yes, cache helps to keep the CPU off the bus (that's the whole idea) but in order to make use of it, you have to constantly stick to the rules of the memory controller and what happens in the events of a cache miss or hit. It's not enough to have cache alone - you need a larger area of memory that is under direct control of the programmer to really help with that.
The more accesses you have to do, the more chance you have of a bus collision and having one of the CPU's stall as it waits for access. That's bad. You don't want that. Programmer friendly scratchpad/locked cache/DMA is how you limit the number of individual accesses, by staying off the bus until you really needed to read/write large chunks of data.
1.- Cómo alguien que se chulea de trabajar diseñando FPGAs (sin que nadie te preguntara al respecto, por cierto, tú sacas el tema a relucir cuando te apetece aún sin venir a cuento para fardar, no te creas que no se te nota), y de conocer al dedillo arquitecturas como la de SNES o el 6502, puede llegar a decir que las cpus 6502/65c816 son arquitecturas RISC y empezar un debate de besugos para seguir erre que erre afirmando eso aún cuando se te estaba diciendo que ni de coña (y por tanto, lo lógico y normal es que te la envainaras no vaya a ser que te cazaran, como fue el caso).
Es un DISPARATE mayúsculo y una clara señal de INVENTs en acción. Porque es que nadie diría eso ni en primero de carrera.
2.- Cómo alguien que dice conocer tanto sobre diseños de cpus es capaz de negar la clara referencia y diseño basado en el 6502 para el SPC700 (misma arquitectura de registros, mismos conceptos de tratamiento de memoria, mismas latencias y juego de instrucciones similar, y hasta el mismo comportamiento "anómalo" en algunas operaciones usando como registro genérico auxiliar uno de los de direccionamiento, con el mismo nombre además, mira qué coña de coincidencia, mismo uso de "página cero" etc). Y basarse para afirmar esto en algo tan absurdo como una diferencia en los OPCODEs, que no en las instrucciones en sí (funcionalidad, latencias, etc).
INVENT detected. Cualquiera con dos dedos de frente ve el enorme paralelismo entre ambas cpus, no por nada la mayoría de ensambladores actuales para 6502 soportan al SPC700 y viceversa. A pesar de su incompatibilidad binaria (seguramente forzada por Sony para evitar problemas de licencia y copyright. no querría pagar dos veces por lo mismo y reutilizar así un producto ya usado previamente y reajustado para esta función) y toda la tostada.
3.- Como alguien que dice estar "desarrollando" su propio código para SNES y modificar un juego, código para una traducción de textos (esfuerzo muy loable, ese mérito no se debe quitar), es capaz de decir a la vez que está desarrollando el código él mismo (algoritmo X de descompresión y blabla) y.... a la vez ir desglosando que será en TRES LENGUAJES de programación distintos como mínimo según cada funcionalidad a desarrollar. Y lo que es peor, usar C++ para desarrollar código para la SNES (lógico de cojones, vamos, usar C++ y orientación de objetos y clases y demás para hinchar código y espacio ocupado con él, en una consola de 16 bits con enormes constricciones en cuanto a memoria RAM y ROM). Y además decir que "no me llega el espacio en un cartucho estándar de X Mb"...
Para cualquiera que haya desarrollado un poco queda muy claro qué significa esto:
Copy & paste de código ajeno.
No hay ninguna justificación para creando código "de nuovo" se use, no digo ya C y ensamblador (aceptable, pero no mucho si tienes problemas de espacio, aunque un buen compilador de C y técnicas de programación decentes apenas tienen sobrecoste en espacio o velocidad contra ensamblador), que puede ser razonable, sino C, ensamblador y... C++ para "algunas cosillas".
La única razón es el uso de código ajeno donde ya esté implementada una serie de funcionalidades a usar, código en C++ y que o no encuentras ese código en C/ensamblador o no quieres adaptarlo a C/ensamblador (porque no es lo mismo escribir tu propio código que ponerse a leer el ajeno y tomarlo como base). Pero entonces hay que decirlo, y viendo cómo te gusta fardar.... te vi clarísimo la patita en ese momento.
Y no entiendas mal, no hay problema en la reutilización de código, por ejemplo libre, para este proyecto. Pero sí lo hay en que lo vendieras como si fuera algo que estuvieras implementando tú.
Así que mejor, para ti, es no hacerme referencia, porque sé de qué cojeas, y que no eres/haces lo que por aquí sueltas, tendrás tus méritos reales, no digo que no, pero no sé dónde comienza la realidad y lo ficticio .
Sexy MotherFucker escribió:@magno @wwwendigo bueno, lo que está claro es que el más ignorante aquí soy yo, por eso recurro a vosotros emocionado con la ilusión de un niño, y además procuro hacerlo públicamente para que otros también puedan enriquecerse de vuestros aportes. Lamento que mis inquietudes hayan provocado el reavive de un pique personal entre vosotros, así que en adelante para futuros hilos procuraré no formularos la misma cuestión a ambos, ya que hacemos un flaco favor al foro fomentando vuestro hastío. Si aún así ya entonces discrepáis será cosa 100% vuestra.
Volviendo al tema del arbitraje del bus, tras leeros y considerar vuestras estimaciones he ido un paso más allá buscando la opinión de rusty, que es el nick que usa ex-programador de Criterion Games que postea en Sega-16, y que ha trabajado en la Ps2, Xbox, o Dreamcast entre otras máquinas. En relación a este mismo asunto su opinión es la siguiente:
rustyIt's interesting to note that the main issue that made the Saturn difficult to work with, the inability to access memory at the same time from either CPU, was also a major issue on the PS2. The difference was that the PS2 gave the programmer actual mechanisms (Scratchpad, VU local memory, DMA L/S)to get around that issue and stay off the bus during processing, as much as possible.
Otro tipo le dice:The bus thing is handled automatically though...
rustyNot really. Yes, cache helps to keep the CPU off the bus (that's the whole idea) but in order to make use of it, you have to constantly stick to the rules of the memory controller and what happens in the events of a cache miss or hit. It's not enough to have cache alone - you need a larger area of memory that is under direct control of the programmer to really help with that.
The more accesses you have to do, the more chance you have of a bus collision and having one of the CPU's stall as it waits for access. That's bad. You don't want that. Programmer friendly scratchpad/locked cache/DMA is how you limit the number of individual accesses, by staying off the bus until you really needed to read/write large chunks of data.
El hilo en cuestión:
http://www.sega-16.com/forum/showthread ... or-instead
Parece opinar más o menos lo que magno, y rusty no es un fanboy anti SEGA que se lee la Wikipedia para ir de guay por los foros angloparlantes, el tipo tiene credibilidad más que nada porque demostró en su momento que su currículum es real.
Ahora yo, carente de autoridad moral en la materia, planteo; ¿y no podría ser un poco ambas cosas? Me refiero a que si bien por un lado como dice magno poner dos procesadores autosuficientes "en línea" con el mismo pozo de memoria dentro de un hardware tan primitivo como el de Saturn, el cual está semi-arbitrado por un micro-controlador, es de facto un cuello de botella. Y por otro lado, aunque lo anterior sea cierto, tampoco es algo dramático como sostiene wwwendigo, ya que muchos cacharros han funcionado así de siempre.
¿O aquí no puede haber medias tintas?
Sexy MotherFucker escribió:Parece opinar más o menos lo que magno, y rusty no es un fanboy anti SEGA que se lee la Wikipedia para ir de guay por los foros angloparlantes, el tipo tiene credibilidad más que nada porque demostró en su momento que su currículum es real.
Ahora yo, carente de autoridad moral en la materia, planteo; ¿y no podría ser un poco ambas cosas? Me refiero a que si bien por un lado como dice magno poner dos procesadores autosuficientes "en línea" con el mismo pozo de memoria dentro de un hardware tan primitivo como el de Saturn, el cual está semi-arbitrado por un micro-controlador, es de facto un cuello de botella. Y por otro lado, aunque lo anterior sea cierto, tampoco es algo dramático como sostiene wwwendigo, ya que muchos cacharros han funcionado así de siempre.
¿O aquí no puede haber medias tintas?
Sexy MotherFucker escribió: Y por otro lado, aunque lo anterior sea cierto, tampoco es algo dramático como sostiene wwwendigo, ya que muchos cacharros han funcionado así de siempre.
Sexy MotherFucker escribió:@magno @wwwendigo bueno, lo que está claro es que el más ignorante aquí soy yo, por eso recurro a vosotros emocionado con la ilusión de un niño
Sexy MotherFucker escribió:@Señor Ventura pero es que no salpica sangre, sino DATOS y corrientes de opinión interesantes.
¡Déjame en paz!
Sexy MotherFucker escribió:magno cuando puedas sería interesante que expandieses un poco lo que propuse con el 68020 y sus FPUs, ya que si no recuerdo mal tienes experiencia con su ensamblador, o con el del 68030 ya no recuerdo.
En el tema en concreto de VF, yo también he leído que la idea es usar un procesador por personaje, pero lamento decir que no me llega primero para saber si realmente es así, y luego hasta que punto se usan los SH-2 para saber cómo van de sobrados.
precisamente está reconocido por uno de los ingenieros que colaboraron en el libro "The rise and fall of SEGA" que se desaconsejó el poner el otro procesador en paralelo por el motivo que he dicho...
En el libro que menciono se habla de que fue una decisión puramente comercial para poner sobre la mesa unos números de procesamiento de polígonos parecidos a los de PS y que no tuvo en cuenta impedimentos técnicos.
danibus escribió:Lo primero agradeceros a todos los mensajes y estoy estudiando vuestras respuestas, porque seguro que me he equivocado en algunas cosas y no he sido claro en otras.
@magno @wwwendigo
Nada de guerras personales aquí por favor, agradezco vuestros comentarios porque se aprende mucho, pero no vale la pena pelearse por estas cosas.
Respecto a Virtua Figther
En el tema en concreto de VF, yo también he leído que la idea es usar un procesador por personaje, pero lamento decir que no me llega primero para saber si realmente es así, y luego hasta que punto se usan los SH-2 para saber cómo van de sobrados.
Para los que no entiendan este ejemplo:
Cada SH-2 calcularía los vértices de cada polígono de su luchador.
Una vez hemos terminado con ambos se ha de mandar al VDP1 los comandos para dibujar esos polígonos.
Si hay que aplicar alguna historia (como iluminación,sombreado,etc), eso ha de incluirse en los comandos mandados al VDP1.
Luego hay que ver qué pasa con el fondo y mandar los comandos necesarios al VDP2.
Luego habría que ver temas de IA, colisiones entre luchadores, sonido,etc.
Y vuelta a empezar.
Por supuesto, si tenemos dos personajes distintos un procesador terminará antes que otro (suponiendo que los 4Kb de la caché les dé).
¿Qué hace ese SH-2 mientras el otro aún está ocupado? Puede esperar (lo cual es un desperdicio) o puede ir haciendo algo, habría que ver cómo y qué podría hacer, porque en ocasiones podría ser un SH-2 y en otras el otro.
Respecto al bus
Cuando dije que el sistema maestro-esclavo era diferente a los actuales lo dije por varias cosas.
En primer lugar físicamente los sistemas actuales de andar por casa (PCs, consolas, móviles, tablets,...) suelen ser sistemas multinúcleo dentro del mismo encapsulado. En el caso de Saturn, es un sistema multiprocesador con 2 procesadores separados.
Segundo porque los S.O. (tal y como habéis comentado) dan soporte, antes no era así y había que hacer este soporte a mano.
Desde el punto de vista lógico tampoco es que cambie mucho, pero antes todo era mucho más rudimentario que ahora. A eso me refería. Eso no significa que no funcionara claro.
Respecto al SH-2
Lo puse en el análisis de 32X
http://www.datasheetcatalog.com/datashe ... 7604.shtml
wwwendigo escribió:Lo primero decir que yo contestaba directamente a la pregunta de sexymotherfucker (¿está bien puesto?)
Lo de Virtua Fighter como no se tenga a mano el código original o se desensamble y se deje uno la vista en él, no hay forma de saber si es cierto o no.
Intentar programar para dos C.P.Us tiene sus problemas.
Virtua Fighter usa una c.p.u diferente para calcular a cada luchador. Las dos CPU empiezan al mismo tiempo, pero hay un tiempo de retraso cuando una tiene que esperar a la otra para "ponerse al día" con la información. Un sólo procesador central de gran velocidad sería preferible. No creo que todos los programadores tengan la habilidad de programar para dos CPUs, la mayoría sólo puede obtener alrededor de una vez y media la velocidad que se obtiene de un sólo SH-2. Creo que sólamente uno entre 100 programadores es suficientemente bueno como para sacar a flote ese tipo de velocidad en Saturn.
Sexy MotherFucker escribió:wwwendigo escribió:Lo primero decir que yo contestaba directamente a la pregunta de sexymotherfucker (¿está bien puesto?)
No, pero lo que menos me preocupa es que escribas mal mi nick xDD.
Cuando pueda te comento una cosa que has dicho en la página anterior, porque no me cuadra.Lo de Virtua Fighter como no se tenga a mano el código original o se desensamble y se deje uno la vista en él, no hay forma de saber si es cierto o no.
Pero hostia:
http://imgur.com/oL5BjDfIntentar programar para dos C.P.Us tiene sus problemas.
Virtua Fighter usa una c.p.u diferente para calcular a cada luchador. Las dos CPU empiezan al mismo tiempo, pero hay un tiempo de retraso cuando una tiene que esperar a la otra para "ponerse al día" con la información. Un sólo procesador central de gran velocidad sería preferible. No creo que todos los programadores tengan la habilidad de programar para dos CPUs, la mayoría sólo puede obtener alrededor de una vez y media la velocidad que se obtiene de un sólo SH-2. Creo que sólamente uno entre 100 programadores es suficientemente bueno como para sacar a flote ese tipo de velocidad en Saturn.
Yu Suzuki en una entrevista para Next Gen en 1995. Como verás también comenta lo mismo que tú dices de que en esa época programar un sistema Dual CPU era un jodido infierno para el desarrollador medio.
Sexy MotherFucker escribió:¿Pero dónde lo reconoce, en ese libro, o en alguna otra entrevista? ¿Se puede leer en Internet todo lo inherente al tema que estamos tratando?
Sexy MotherFucker escribió:Tom Kalinske (ex CEO de SEGA América) dice que a él no le consta que "calzasen" el segundo SH2 por esos motivos, aunque también hay que decir que SEGA Japón fué totalmente hermética y déspota con la filial americana en ese y otros muchos asuntos durante esa época, por lo tanto el hombre lo mismo ni papa de lo que se sucedió en realidad; según dijo en varias entrevistas se pilló un cabreo porque Hideki Sato no le hizo ni puto caso ni a él ni a su equipo en lo referente a sus sugerencias para el diseño de la Saturn.
Andrómeda escribió:@magno Yo estoy contigo al 100% para lo bueno y para lo malo (te equivocarás como todos...pero poco), espero no perderte del foro. Eres un tipo bastante imparcial, complétamente siempre en estado de calma. Magno no es Seguista, no es Nintendero, simplemente hace lo que le gusta hacer y no entra en bucles infinitos hacia la nada.
PD: Si nadie lo hace lo tenía que decir yo.
Sexy MotherFucker escribió:@magno no, si lo que dice en la entrevista que yo digo no es que a él le pareciese normal o bien que implementasen el SH2 extra, sino que él supiese esa decisión no fué motivo porque le viesen las oreias al lobo con Sony y fuesen deprisa y corriendo a "incrustar" otro procesador con un martillo. Como se ha expuesto en este hilo SEGA América apostaba por un 68020 debido a lo extendida que estaba ya la programación en los Motorola, y por supuesto al bajo coste de estos en 1994, pero al margen de los rifi-rafes entre SEGA Japón y la filial americana denostando cualquier sugerencia desde occidente, las buenas relaciones con Hitachi imagino que fueron lo que terminó por decantar la balanza para la inclusión de los SH2 en la Saturn. Según se especula en el hilo de Sega 16 que enlacé antes, al parecer SEGA e Hitachi co-diseñaron el SH2, o cuando menos Hitachi mantuvo muchas conversaciones con ingenieros de SEGA durante su diseño cara a su posible futuro uso en la nueva consola de 32 bits, no sé si en el libro "Auge y Caída de SEGA" dicen algo al respecto de eso.
@utreraman gracias por el aviso, ¿existe alguna edición en castellano?
matasiete escribió:Muchas veces se subestima lo importante (importantísimo) que es cómo de fácil es programar para un hardware. No importa lo potente que pueda ser un hardware si luego no hay nadie en el mundo que tenga los conocimientos necesarios para sacarle partido.
Aparte, no es sólo cuestión de tener el conocimiento, es que si en un sistema P implementar una tarea x es sencillo mientras que en otro sistema S tienes que partirte los cuernos para hacer lo mismo, obviamente nadie va a querer picar para S.
No entiendo cómo Sega, que no eran precisamente unos don nadie, decidieron tirar por la computación paralela. En los 90 la carrera del hardware aún estaba en mejorar el rendimiento por procesador, aún había bastante margen de mejora. El paralelismo estaba aún en pañales. Se dice que Sony les pilló por sorpresa y por eso doblaron capacidad de proceso doblando CPU, pero no sé qué grado de veracidad puede tener eso si ya 32X tiraba de doble CPU. Con un hardware así tan importante o más que el propio hardware era ofrecer un sdk que simplificase el balanceo de tareas, sincronización, acceso a recursos compartidos y demás. Quizás pensaron que iban a ser capaces de hacerlo y al final resultó más difícil de lo que pensaban.
Sexy MotherFucker escribió:@magno no, si lo que dice en la entrevista que yo digo no es que a él le pareciese normal o bien que implementasen el SH2 extra, sino que él supiese esa decisión no fué motivo porque le viesen las oreias al lobo con Sony y fuesen deprisa y corriendo a "incrustar" otro procesador con un martillo. Como se ha expuesto en este hilo SEGA América apostaba por un 68020 debido a lo extendida que estaba ya la programación en los Motorola, y por supuesto al bajo coste de estos en 1994, pero al margen de los rifi-rafes entre SEGA Japón y la filial americana denostando cualquier sugerencia desde occidente, las buenas relaciones con Hitachi imagino que fueron lo que terminó por decantar la balanza para la inclusión de los SH2 en la Saturn. Según se especula en el hilo de Sega 16 que enlacé antes, al parecer SEGA e Hitachi co-diseñaron el SH2, o cuando menos Hitachi mantuvo muchas conversaciones con ingenieros de SEGA durante su diseño cara a su posible futuro uso en la nueva consola de 32 bits, no sé si en el libro "Auge y Caída de SEGA" dicen algo al respecto de eso.
Sexy MotherFucker escribió:@magno no, si lo que dice en la entrevista que yo digo no es que a él le pareciese normal o bien que implementasen el SH2 extra, sino que él supiese esa decisión no fué motivo porque le viesen las oreias al lobo con Sony y fuesen deprisa y corriendo a "incrustar" otro procesador con un martillo. Como se ha expuesto en este hilo SEGA América apostaba por un 68020 debido a lo extendida que estaba ya la programación en los Motorola, y por supuesto al bajo coste de estos en 1994, pero al margen de los rifi-rafes entre SEGA Japón y la filial americana denostando cualquier sugerencia desde occidente, las buenas relaciones con Hitachi imagino que fueron lo que terminó por decantar la balanza para la inclusión de los SH2 en la Saturn. Según se especula en el hilo de Sega 16 que enlacé antes, al parecer SEGA e Hitachi co-diseñaron el SH2, o cuando menos Hitachi mantuvo muchas conversaciones con ingenieros de SEGA durante su diseño cara a su posible futuro uso en la nueva consola de 32 bits, no sé si en el libro "Auge y Caída de SEGA" dicen algo al respecto de eso.
@utreraman gracias por el aviso, ¿existe alguna edición en castellano?
ewin escribió:@danibus Lo dije un par de páginas atrás y lo reitero ahora, un gran post lleno de información útil, bien explicada y, además, (cuanto más dulce, mejor), han acudido más personas a redondearlo con sus aportes.
Espero que, junto al hilo del panzer dragoon saga y unos cuantos mas que, de vez en cuando, van surgiendo en este subforo, podamos dar un poco de luz, dignidad y prestigio a una consola mayoritariamente menospreciada. Con sus luces y sus sombras.
Me estoy leyendo el libro en ingles (The Fall..) e impresiona la de cosas que iban pasando por detrás en bambalinas.
Muchas veces en internet surge una información y , a falta de fuente, se debe dejar en cuarentena. Me gusta ver como hay personas que van acumulando bibliografia para, por lo menos, debatir con conocimiento de causa.
Un gran hilo, si señor.
pd: comprad saturn japos que estan baratisimas y son un consolón!
@ziu si lees el hilo completo verás que todo eso queda ampliamente explicado.
Sexy MotherFucker escribió:@wwwendigo os lo planteé por curiosidad páginas atrás, obviamente de haber optado por el 68020 hubiesen necesitado una FPU anexa para comerse un colín en juegos poligonales, concretamente las compatibles que yo vi son las M68881/82 compatibles también con el 68030:
https://es.wikipedia.org/wiki/Motorola_68881
Pues dime, en tu opinión con un 68020 a 33 mhz (máximo clock según wikipedia), calzando una FPU de esas; ¿Cómo crees que hubiese andado en rendimiento en comparación al combo de los SH2?
Sexy MotherFucker escribió:@wwwendigo es que si nos paramos a pensarlo el R3000 que monta la primera PlayStation tampoco era precisamente para tirar cohetes en 1994, sin embargo al añadirle el co-procesador matemático se convirtió en un cabroncete bastante eficiente para la geometría, siempre dentro de un contexto de baja potencia. ¿Le pega un repaso taaaan grande a un 68020 + la M8882 @33 mhz? Porque lo que vimos de Saturn en el 80% de los casos fué a los SH2 malamente utilizados, y para muchos fué suficiente en la época.
Sexy MotherFucker escribió:@wwwendigo es que si nos paramos a pensarlo el R3000 que monta la primera PlayStation tampoco era precisamente para tirar cohetes en 1994, sin embargo al añadirle el co-procesador matemático se convirtió en un cabroncete bastante eficiente para la geometría, siempre dentro de un contexto de baja potencia. ¿Le pega un repaso taaaan grande a un 68020 + la M8882 @33 mhz? Porque lo que vimos de Saturn en el 80% de los casos fué a los SH2 malamente utilizados, y para muchos fué suficiente en la época.
wwwendigo escribió:Pero en realidad al final el debate sobre estas consolas tiene que ver con otras partes de su arquitectura más que con la cpu principal.
Sexy MotherFucker escribió:wwwendigo escribió:Pero en realidad al final el debate sobre estas consolas tiene que ver con otras partes de su arquitectura más que con la cpu principal.
Lo sé, los programadores/ingenieros siempre acabáis recalcando ese punto ante las flipadas de la peña, simplemente que al estar hablando de consolas con pretensiones "geométricas" de la época me parece coherente elucubrar sobre su "fuente" para los cálculos de transformación, normalmente asentadas en las CPUs -cuando no eran ellas mismas- en los hardwares de aquellos años.
Pues bueno, me doy por satisfecho, una paja mental menos, y un poco más de perspectiva sobre el asunto.
Gracias señor.
wwwendigo escribió:Pero mira que eres "perri"...
Sexy MotherFucker escribió:wwwendigo escribió:Pero mira que eres "perri"...
A ver, ayer te quería consultar que de dónde cujons te sacaste lo de que el Emotion Engine tiene algún bus de 16 bits (¿te refieres al acceder a las VU?), porque a mi entender tanto el externo como el interno son de 64 bits. Y para que veas que soy la polla con cebolla, esto en mi emoción se lo escribo a un ingeniero sin ni siquiera consultarlo en Google, espero que no seas muy duro conmigo, hablo de memoria (supongo)
Y que viva la Saturn joder, que está bien conocer sus tripas (a mí me encanta, no creo que tenga que demostrar nada al respecto), pero al final lo que nos vamos a llevar a la tumba son sus PUTOS JUEGOS.
Esa ram es del tipo SRAM. Este tipo de RAM es muy rápida si hacemos muchas lecturas seguidas, o muchas escrituras. Pero si combinamos ambas, el rendimiento cae en picado.
danibus escribió:@magno Por lo que yo tengo entendido SH-2 = SH7604
Hardware manual y programming manual son dos documentos distintos claro, pero del mismo chip.
Si pones link a lo que tienes lo miro.
danibus escribió:Respecto a la programación si entras aqui
http://antime.kapsi.fi/sega/docs.html
mira en la sección Saturn Graphic Library (SGL)
http://antime.kapsi.fi/sega/files/ST-237-R1-051795.pdf
Hay muchos ejemplos en C