SEGA 32X: Análisis /técnico de consola y juegos (ojo 56K)

SEGA 32X: Análisis /técnico de consola y juegos

32X fue el add-on para Megadrive que pretendía ser una forma barata de añadir capacidades poligonales y mejores gráficos y sonido. Tuve la megadrive y nunca tuve 32X, así que siempre tuve curiosidad por ver lo que era capaz de hacer.
Lo cierto es que es un HW muy curioso y voy a tratar de mostrar su funcionamiento interno de una forma sencilla. No voy a entrar en detalles de bajo nivel, no se pretende, simplemente a ver el funcionamiento genérico.

La idea, como siempre, aprender algo nuevo, por Internet hay bastante información confusa. Así podremos contestar a la preguntas típicas con un poco de conocimiento:
¿Es un add-on que depende de la MD o es casi un sistema completo?
¿Era un sistema difícil de programar?
¿Acertaron al cancelar 32X?
¿Sus juegos representan el techo del HW o hay espacio para la mejora?

Por supuesto, si veis errores o desvaríos se agradecerá cualquier comentario.


32X Especificaciones

CPUs: Dual SH2 RISC, aprox a 23MHz
RAM principal: 256KB
Video RAM: 256KB (2x128)
Resolución de pantalla: 320x224
Velocidad del reloj: 23 MHz
Profundidad de color: Hasta 32768 colores (15 bits por pixel).
Cantidad de modos de video: 3
Sonido: PWM de 2 canales (estéreo)


Antes de ver como funciona vamos a ver el esquema general del 32X:

Imagen

Para el que no lo ha visto nunca, una explicación rápida:
- La 32X se conecta por el puerto de cartucho a la MD y a su vez tiene un puerto de cartucho propio, donde poder conectar cartuchos de MD o de 32x.
- La salida de vídeo de la MD se conecta como entrada a la 32X y ésta tiene su propia salida de vídeo.

Obviamos, para simplificar:
Fuentes de alimentación.
El estéreo de la MD.
Mega CD.

Veamos internamente lo que hay en el 32X:

Cartucho 32X
Es un cartucho “normal”, similar a los de MD, no tiene chips tipo SVP.
El contenido del cartucho puede ser leído tanto por el 32X como por la Megadrive (68000 y Z80) pero la 32X tiene prioridad en caso de que ambas lo intenten a la vez. Eso sí, si la MD accede y está leyendo el cartucho, si el 32X quiere acceder al cartucho, debe esperar a que termine la MD.

Al insertar el cartucho y encender la consola, lo usual es copiar del cartucho (usualmente llamado ROM) los recursos (sprites, tiles, música,etc) que vayamos a necesitar en la RAM del 32X (en el diagrama pone SDRAM), para que el 32X tenga acceso rápido a ellos. Esto es así porque el acceso a la RAM es mucho más rápido que el acceso a la ROM.
Lo mismo se puede decir con respecto a la MD. La MD tiene 64KB de RAM propia, donde puede almacenar lo que necesite para no acceder continuamente a la ROM. Dependiendo de cómo esté diseñado el juego, puede que la MD acceda a menudo al cartucho, esto si no está bien hecho podría penalizar a 32X.

La megadrive no puede acceder directamente a la memoria principal. Tampoco “sabe” que hay 1 o 2 procesadores, simplemente sabe que hay un periférico, el 32X. Afortunadamente la MD se diseñó para ello y entre ambos aparatos hay una serie de registros que permiten a la MD y al 32X intercambiar datos.

Como la ROM puede ser mucho más grande que la RAM, iremos copiando los recursos cuando lo necesitemos (esto es así tanto para 32X como para MD). Por ejemplo, antes de empezar un nivel, copiamos en RAM los tiles y gráficos de ese nivel.


HITACHI SH2

fuente: http://www.datasheetcatalog.com/datashe ... SH-2.shtml

Tenemos 2 procesadores Hitachi SH2 como CPU del 32X. Ambos comparten memoria RAM(SDRAM), es así porque se conectan ambos a través del mismo bus. Cada uno de ellos es MUCHO más potente que el motorola 68000:

MD: CPU motorola 68000 MIPS: 1.3
32X: CPU: Hitachi 1xSH2 MIPS: 25 (con 2xSH2 nunca llegaremos al doble, recordemos los problemas de compartir bus).

A diferencia de las cpus que tenemos en ordenadores y móviles hoy día, no es una cpu dual, si no que ambos procesadores están montados siguiendo un esquema maestro-esclavo. El SH2 maestro es el que decide cuándo y cómo va a trabajar el SH2 esclavo, que no puede acceder al bus (y por ende a la memoria principal del 32X) sin su autorización.

Esto es así porque ambas tienen acceso al exterior por un mismo bus, que es común tanto para acceder a la memoria como a otras partes del 32X (p.e. al VDP).

A diferencia de las cpus multi-núcleo actuales, el trabajo no se va repartiendo si no que es la cpu maestra la que va “encargando” tareas a la cpu esclava. Esta última no puede acceder al bus hasta que la maestra la autorice. Una vez termine una tarea el SH2 esclavo, o si necesita acceder a la memoria principal, avisará primero a la cpu maestra y ésta le dará acceso al bus. La cpu esclava puede hacer lo mismo que la maestra, por ejemplo, acceder al VDP. No está “encerrada”. Pero ambas están conectadas por un sólo bus a todo.

¿Cual es el inconveniente de tener un sólo bus? A menudo un SH2 tiene que esperar a que el otro termine y ceda su turno de acceso al bus, quedándose “a la espera de su turno”. Para evitar esto, en la medida de lo posible, el doble SH2 tiene una pequeña memoria propia, llamada caché, de 4 Kbytes de tamaño, para poder trabajar internamente.

Es curioso pero Hitachi “vende” el SH2 en sus hojas de especificaciones como una CPU de bajo consumo y barata. No como un chip potente. 32X y Saturn salen a la venta en 1994, pero en 1992 este era el roadmap de Hitachi:
    Disponibles SH1 y SH2 (SH2 tenía previsto empezar su producción en Octubre de 1993).
    En preparación SH3 y SH4 (SH4 fue el procesador de la Dreamcast).

De nuevo, según Hitachi, el SH2 destaca, entre otras cosas, por:
    Capacidad para multiplicaciones/divisiones (ideal para el el cálculo de coordenadas/transformaciones 3D)
    Se puede adquirir con configuración dual (la de 32X y Saturn, precisamente).

Este diagrama es muy curioso, veamos potencia vs consumo en SH2 y chips populares como el intel 486 y Pentium:

Imagen

SH2 no era un chip potente, de hecho en el diagrama aparece la versión nominal del SH2 a 28.7MHz (32X iría a 23MHz aprox, Saturn a 28.7MHz), Pentium y 486 obtienen más rendimiento pero consumen bastante más. Y eso implica disipadores y ventiladores, 32X no tenía ventilación activa y por tanto necesitaba un consumo contenido.

32X se vende como consola de 32bits, pero ¿lo es? Dice Wikipedia que “Los SH2 usan un conjunto de instrucciones de 16 bits, aunque la longitud de los registros y de los buses de datos son de 32 bits, lo que da una excelente densidad de código. Durante su desarrollo, la memoria era bastante cara.”

Lo primero sería preguntarse qué significa que una consola es de "8 bits","16 bits","32 bits",etc.
Normalmente decimos que una consola es de "x" bits si su microprocesador principal trabaja con "x" bits. Nos referimos que ese microprocesador trabaja con registros, instrucciones, buses de direcciones y buses de datos de 16 bits.
Dicho esto parece intuitivo pensar que una consola o un micro ordenador de 16 bits, tenían buses de 16 bits, instrucciones de 16 bits, etc.
Todo igual. Sin embargo esto no tiene porqué ser así.

Una consola de 16 bits no tiene porqué trabajar sólo a 16 bits, podría trabajar a 8 bits por ejemplo. Y al revés.
El procesador principal de la MD, el motorola 68000, es considerado comúnmente como procesador de 16 bits ya que sus buses son de 16 bits, pero internamente trabaja con registros de 32 bits (!) y sus instrucciones son de 32bits. ¿Es entonces de 16 o de 32bits? La respuesta os la dejo a vosotros, pero es más la época (la época de los 16bits) que las especificaciones.

Los SH2 hemos dicho que usa instrucciones de 16 bits, sus buses externos son de 16 bits también (pero los internos son de 32bits), pero los registros son de 32bits, y su ALU (la parte del chip que hace sumas,restas, multiplicaciones, etc puede operar a 16 o 32 bits).
Por tanto desde cierto punto de vista podríamos decir que 32X es un addon de 32bits, pero igualmente podríamos decir que es de 16bits.
No obstante, en el contexto de la época, lo que podía hacer 32X está por encima de lo que podían hacer, en general, las consolas de 16bits (con alguna excepción claro).

¿Por qué a 23Mhz y no a 28.7Mhz? Es decir, ¿por qué no poner al máximo el chip y perder potencia? 32X debe funcionar a un múltiplo de la velocidad de MD para que ambas se puedan sincronizar y comunicarse. Veamos porque esto es un poco raro de explicar:

La megadrive parte de un master clock (un oscilador) de 53Mhz (53.6931 NTCS, 53.203 PAL), dividiendo esa frecuencia por 7 obtenemos:
53.6931/7 = 7.67 MHz (Genesis)
53.203/7 = 7.61 MHz (Megadrive)
Por eso el Motorola va a 7.6MHz.

Si ahora multiplicamos la frecuencia del procesador de MD por 3, obtenemos la velocidad a la que va 32X: 23.01136 MHz (NTSC), 22.801467 MHz (PAL)

Si quisiéramos ir un poco más allá, multiplicaríamos la frecuencia del procesador de MD por 4, pero eso nos da 30Mhz, pasándonos de la frecuencia máx de funcionamiento que Hitachi garantizaba.


LA RAM

La memoria RAM aparece en el diagrama como SDRAM. Son un total de 2 Mbits.

Como curiosidad decir que 2 Mbits son 256 KB (kilobytes) (en consola las compañías siempre se daba el tamaño en Mbits por marketing,“más grande mejor”). Hoy día 256KB nos pueden parecer ridículos, cualquier PC de gama lleva 4 u 8 GB. La MD tenía 64KB y vaya maravillas se hicieron.

La RAM de 32X sólo puede ser accedida por los SH2 del 32X (la MD no puede usar esa RAM).


Interface General (I/F& PWM)
Es el encargado de conectarlo todo.

Desde el punto de vista del 32X, este componente permite a los SH2 leer del cartucho, acceder al VDP y controlar el chip de sonido. Pero además permite a 32X comunicarse con la MD.

Gracias a este componente la MD puede acceder al cartucho, comunicarse con los SH2 e incluso al VDP del 32X.

No he encontrado un diagrama donde ver los diferentes buses que conectan todo, así como su capacidad y velocidad. En algunas webs hay algo de información pero es diferente en cada una así que si alguien postea un diagrama lo añado aquí.



VDP
Es la “tarjeta gráfica” del 32X. Por un lado “dibuja” las imágenes del juego, generadas por los SH2, en los framebuffers (lo explico en el siguiente punto).
Por otro lado este chip controla cómo se combina la imagen generada por la megadrive con la imagen generada por el 32X. Puede poner la de megadrive “por detrás” y la de 32X delante o bien al revés, a gusto del programador. Internamente se dice que 32X “tiene prioridad” si su imagen aparece por delante de la de MD, y viceversa.

Lo habitual y lo recomendado por Sega era que la MD cree el fondo (y gestione su scroll), y la 32X gráficos poligonales delante. Es lo que pasa p.e. con Virtua Fighter 32x

Veamos un diagrama bastante esclarecedor:

Imagen


Para el que no lo entienda, MD tiene por HW varios planos sobre los que dibujar (Scroll B, Scroll A, Windows, Sprite), cada uno ideado para una cosa determinada. MD crea la imagen y se la manda a 32X.

32X, a su vez, tiene 2 framebuffers (lo veremos en el siguiente punto), elige uno de los dos y combina dicha imagen con recibida de MD, una de las dos tendrá “prioridad” y se pintará por encima de la otra.

La resolución es la misma que la MD, cosa lógica ya que la idea es que ambas colaboren al crear la imagen. La 32X es capaz de sacar 320x224px (NTSC) o 320x240px (PAL).

Si en un determinado momento la 32X no está generando imagen, podemos utilizar cualquier resolución soportada por la MD (que tiene otras además de la anteriores mencionadas).
Es lo que ocurre cuando metemos un juego de MD en la 32X, en ese caso solo trabaja la MD pero como la salida de imagen es a través de 32X, la imagen de MD debe respetarse.

32X y su VDP tiene 3 modos de funcionamiento que permiten hasta 32.768 colores por pixel, aunque la mayor parte de los juegos suelen funcionar a 256 colores.

    Modo Packed Pixel: 256 colores. Para cada pixel de la pantalla se guarda un índice que luego buscaremos en una paleta de colores. Puede usarse a pantalla completa. Este sería el modo a usar equivalente en una consola tradicional 16bits.
    Modo Direct Color: Se reservan 16 bits por pixel, 15 de ellos indican el color de cada pixel de la pantalla (hasta 32.768 colores), el bit restante se reserva para indicar la prioridad respecto a la imagen de megadrive. No se puede usar a pantalla completa por temas de restricciones de memoria, lo veremos a continuación.
    Modo Run Length: 256 colores. Partiendo de la esquina izq-sup de la pantalla (lo que vendría a ser la coordenada (0,0) se indica un color y cuanto pixels se van a pintar con ese color, y se pintan del tirón. Y así con cada cambio de color y línea a línea. Es como la compresión RLE (de ahí el nombre del modo), si hay pocos cambios de color con pocas instrucciones podremos representar toda la pantalla, ideal para dibujar polígonos planos, en cambio si hay muchos cambios (como cuando se dibujan muchos sprites y tiles), es contraproducente. No se puede usar a pantalla completa igual que en Direct Color, ya que se usan también 16bpp (8 para indicar cuántos píxeles pintar y 8 bits para el color).

Además una cosa curiosa, podemos empezar a dibujar con un modo y en el momento que queramos, cambiarlo. Esto será efectivo a partir de la siguiente línea. Todavía no he averiguado si fue usado en algún juego, pero permite p.e. dibujar parte de la escena en un modo determinado (por ejemplo la ventana del juego) y otra con otro más adecuado (por ejemplo un inventario).

¿Por qué Direct Color y Run Lenght tienen limitaciones?
Bueno, veamos qué necesitamos en modo direct color (32.768 colores) a la máxima resolución (320x240px):

320px x 240px x 16 bits/px = 1.228.800 bits.

Es decir, cada pantalla (cada frame) generado necesita al menos 1.228.800 bits de información a guardar en el framebuffer. Pero el framebuffer no tiene tanta capacidad al ser de 1Mbit (1.048.576 bits)

Así que no podemos hacerlo a no ser que bajemos resolución o no pintemos parte de la pantalla (franjas negras). Si bajamos a 320x224…
320px x 224px x 16 bits/px = 1.146.880 bits ... Ahora tampoco!!

Ahí tenemos el motivo, la memoria de framebuffer no es suficiente para crear una imagen a pantalla completa a 16bits de color. Colocar memorias de más capacidad encarecería más la consola. Recordemos que en la época de los 16/32bits la memoria era todavía carísima. La solución es crear la imagen a menor resolución. A 320x204px como máximo. (320x204x16=1.044.480 bits, cabe en el framebuffer!!)

Así creamos la imagen del juego de 32X con una resolución menor a la máxima para que nos quepa en el framebuffer, y luego con la MD creamos una imagen a resolución “normal”, podemos poner un borde negro o un marcador bien grande. El VDP mezcla ambas imágenes y… tachán! Magia!

Bueno, magia no, porque desde el Spectrum se ha venido haciendo eso. Si no te llega para dibujar toda la pantalla, por restricciones de memoria o porque la CPU no da más de sí… pues no dibujes toda la pantalla!

Doom de 32X es un claro ejemplo. Sólo parte de la pantalla es dibujada en 3D, que es la parte que más ciclo de computación consume. Luego tenemos los marcos (que siempre son los mismos), por lo cual se gestionan más o menos rapidamente. Y finalmente el marcador inferior, que lo hace la MD:

Imagen


¿Es el VDP sofisticado? Lo cierto es que es bastante simple. El VDP no permite rotar, escalar ni realizar sofisticados efectos gráficos. Es, probablemente, el mayor defecto que se puede achacar a 32X, el VDP no está diseñado para realizar efectos por HW, al fin y al cabo no se puede maximizar un sprite ya que, para 32X, ¡los sprites no existen!
Para eso está la MD claro, pero entonces dependemos de tecnología anticuada.

Esto fue solucionado en la Saturn con un VDP “de verdad”, que permitía hacer efectos de toda la imagen o de parte de ella, gestionar scrolls, realizar transparencias, etc. Por supuesto, el precio era mucho mayor.

Resumiendo, cualquier efecto, gráfico, scroll,etc debe ser calculado por los SH2 antes de enviar el resultado al VDP. Es el principal talón de aquiles de 32X porque implica que todo se debe hacer programando y al mismo tiempo es su mayor virtud, porque su simpleza debería hacer barato el addon.



COMO DIBUJA 32X

32X no tiene nada que ver con la MD (y con el resto de consolas de 8/16 bits) en cuanto a “generación de gráficos”. Esto es bastante curioso.

Las entonces consolas tradicionales, como la MD, trabajan con sprites, tiles, planos de scrolls, etc teniendo diversos límites en cuanto a su número, tamaño y número de colores.
Es por eso que dibujar en 3D en una consola tradicional era tremendamente costoso pues su HW no estaba pensado para ello. Poder se podía, pero con tremendas dificultades.

El 32X, al contrario que la MD, no tiene un VDP que le permita hacer “cosas” con los sprites, gestionar planos de scroll, etc. La 32X está pensada para dibujar “de otra forma”. Son los SH2 los que van a trabajar para “dibujar” la imagen, dibujan directamente en el framebuffer.

Hacer un scroll parallax, rotar un sprite… Nada de esto puede hacer el VDP de 32X.
Si queremos hacer esto, hay que hacerlo “a mano” con los SH2.

Además hay que tener otra cosa en cuenta. Al ser el VDP de 32X tremendamente simple, no podemos hacer un scroll parallax, ni rotar sprites, ni escalarlos… todo debe hacerse a mano desde los SH2, y esto consume ciclos de computación. Esto es una desventaja, ya que perdemos ciclos de los SH2 en tareas gráficas cuando podían estar con otras cosas.

Pero para eso tenemos la MD y esta era la idea de Sega.

Los SH2 son mucho más potentes que el Motorola, pero para no desperdiciar ciclos de computación nos podemos apoyar la MD. Así la MD puede gestionar p.e. un scroll de fondo y el resto, como los sprites principales y todas las otras tareas (como gestionar la IA de los enemigos), lo hacemos desde el 32X.

Con ello mantenemos la 32X haciendo lo que sabe por un lado, la MD lo que sabe por otro, y el VDP de 32X lo junta todo.

El VDP del 32x gestiona que framebuffer “pinta” la TV (lo veremos a continuación) y según el modo de vídeo seleccionado gestiona las paletas de colores.
Al contrario de lo que podemos leer en algunos foros y webs por internet, por HW el VDP del 32X no puede hacer Gouraud shading ni texture mapping, todo se hace por software con los SH2, con el coste de procesador que eso implica.
Según el modo de vídeo seleccionado el VDP puede pintar en la pantalla de determinadas formas siguiendo las instrucciones de los SH2. Generalmente es el SH2 esclavo el que accede al VDP para “dibujar” la pantalla.

Pongamos un ejemplo para ver como trabaja el 32X.

En el modo RLE, 32X le dice al VDP, en una sola instrucción, cuantos pixeles consecutivos pintar de un color determinado. Por ejemplo que pinte 30 pixels consecutivos con un color determinado. Luego otro color para pintar hasta el final de la línea. Saltamos a la siguiente línea y vuelta a empezar. Es decir, para imágenes poligonales “planas”, donde hay normalmente pocos cambios entre pixels, la forma de trabajar es ideal.

Como ejemplo. VF 32X:

El fondo lo dibuja la MD, además del marcador. También mueve el scroll:
Imagen


32X pinta los personajes, el suelo y. Si nos fijamos, solo polígonos planos, cada polígono tiene un solo color, si miramos una línea, hay pocos cambios dentro de cada línea:

Imagen


Si lo juntamos todo:

Imagen


Si bien esta forma de dibujar es buena para polígonos, es lenta para dibujar un Sonic, con cantidad de sprites/colores diferentes en pantalla.


FRAME BUFFER

Se trata de la memoria a partir de la cual se pinta la pantalla. Recordemos que tiene una capacidad de 256KB (2x128). Hay dos porque mientras se muestra un fotograma (“frame”) por la TV, se está creando el siguiente en el otro.

Vamos a explicar esto con más detalle. Cuando la TV nos muestra una imagen, lo que la consola hace es mandarle una señal con la imagen según el contenido de uno de los framebuffers. Las TVs de “tubo” tradicionales dibujan de izq a dcha y de arriba a abajo. Por tanto dibujar una imagen o frame no es instantáneo, tarda un tiempo determinado (aunque es muy rápido y el ojo humano no puede verlo).

Mientras esto ocurre, la consola va ejecutando instrucciones y escribiendo en el otro framebuffer. Al terminar la TV de mostrar la imagen, hay un tiempo durante el cual la TV no pinta, la consola aprovecha para cambiar de framebuffer y, entonces, la TV vuelve a pintar la imagen usando el nuevo contenido.

Hemos visto que no tenemos espacio suficiente en la memoria del FB para almacenar una imagen a 32K colores, pero en cambio tenemos espacio más que suficiente para una imagen a 256 colores. Esto se puede aprovechar para crear un scroll sin tener HW dedicado. En vez de dibujar sólo la pantalla visible, pintamos tanto como podamos (podemos dibujar hasta 408 líneas, mostramos 320). En cada frame, el VDP le manda a la TV una imagen desplazada 1px adicional en sentido horizontal, como si una cámara “avanzara”. Esto es fácil de hacer porque el VDP tiene una tabla donde guarda que mostrar del FB, se va cambiando a mano y, tachán, un scroll.

Imagen


También podemos darle otro uso, y es dibujar en el área visible la pantalla del juego y dejar, en la parte no visible, datos que necesitemos (como tiles o sprites), ya que acceder a ellos desde los SH2 es más rápido que acceder al cartucho. Parece una tontería pero he leído que hay desarrolladores de la scene que han usado esta memoria para pasar datos a la MD.


SONIDO

32X recoge el sonido generado por la MD, lo mezcla con el que ella misma puede crear y lo manda a la TV.

Los juegos de MD normalmente usan el Z80 como apoyo para crear sonidos, esto es lógico ya que aunque el Motorola 68000 también puede usarse para procesar sonidos, normalmente dejamos esa tarea al Z80 para liberar un poco de faena al 68000.

Con respecto al sonido, la mayoría de títulos de 32X son juegos “tipo megadrive” que corren desde el Motorola 68000/Z80 y usan los SH2 como apoyo para generar efectos de sonido puntuales. Como 32X apenas tuvo vida muchos devs simplemente hicieron lo que venían haciendo en MD, es lógico y normal que se hiciese así.

Hay excepciones a esta forma de trabajar. Knuckles Chaotix es el mejor ejemplo, tanto 32X como MD crean parte de la melodía (cada una unos instrumentos), que se mezclan para crear la melodía completa.

Tal y como está hecho 32X, tiene todo el sentido del mundo NO darle el peso del procesamiento de sonido a los SH2, que bastante tienen con gestionar la ROM y procesar todo lo que tenga que ver con gráficos 3D.

Un programador homebrew comentaba en sega16 que el peor escenario era que los SH2 tuviesen que acceder a la ROM (porque necesitaran datos que no estuviesen en su memoria) y, en ese momento, la MD estuviese accediendo al cartucho para cargar datos para generar sonidos. En ese momento tienes a los SH2 parados (ya que el bus está ocupado). La forma de evitar esto es llevar a la memoria de 32X lo que necesites en una fase determinada, y desde la MD ir accediendo al cartucho ocasionalmente para cargar datos (como la música o algún efecto), intentando no molestar a los SH2.


¿CÓMO FUNCIONA TODO JUNTO?

Dicho esto… ¿cómo funciona el 32X? Pues depende. Básicamente hay 2 posibilidades:

La mayoría de juegos de 1a gen de 32X corren el juego como si fuese un juego de megadrive y usan el 32X como co-procesador gráfico, como si fuese un potente SVP.

En estos juegos tenemos gran carga de sprites+scrolls, esta parte la ejecutaría el motorola 68000 (+ Z80) mientras que el 32X podría hacer pequeñas tareas como rotar sprites, hacer algun efecto de sonido, mostrar gráficos vectoriales o poligonales. Tampoco hemos de extrañarnos, no podemos esperar sacar un HW nuevo como 32X y que los programadores lo aprovechen al 100%, es normal que hagan lo que saben (programar para MD) e ir mejorando poco a poco. Knucles Chaotic es un ejemplo en sus fases 2D.

La forma de usar 32X como “co-procesador” es sencilla de entender.
Primero dejamos en los SH2 de 32X un programa que “no hace nada” pero que tiene todas las funciones que vamos a necesitar (como rotaciones o escalados).
Cargamos en MD todo lo que necesitemos (tiles, sprites).
Cuando necesitamos hacer algo que se salga de las capacidades de MD, le enviamos un aviso a los SH2, y le pasamos lo que queremos modificar y cómo, por ejemplo, hacer una rotación de un sprite determinado de “x” grados, y dibujarlo en la posición (x,y).
32X entonces carga el sprite en su memoria y lo rota, y tal cual lo transfiere al FB, para que se vea en pantalla.


La segunda posibilidad es que podemos correr el juego desde el 32X para hacer cosas que la MD no puede, y dejarle pequeñas tareas a la megadrive para liberar un poco a los SH2, como por ejemplo la música, los efectos o dibujar el marcador. Los Virtua Fighter y Racing funcionan de esta manera.

Realmente no es necesario usar la MD más que para recoger el input de los mandos, si así lo queremos. Tampoco hace falta usar el SH2 esclavo necesariamente, pero no hacerlo es desperdiciar recursos porque al fin y al cabo ambos SH2 son igual de capaces.


JUEGOS DE PRIMERA GENERACIÓN (año 1994)

Vamos a ver algunos juegos para ilustrar todo lo anterior, veremos algunos de los mejores juegos de lanzamiento (Doom, Virtua Racing Deluxe, Star Wars Arcade) y luego algunos de los mejores lanzados al año siguiente.

DOOM 32x

Imagen


Título de lanzamiento del 32X. Fue desarrollado por el propio Carmack, que hizo al mismo tiempo la versión para Atari Jaguar. Además se hizo a toda ostia para el lanzamiento de la consola, un par de meses tardaron, así que tenemos el primer problema en el poco tiempo de desarrollo del juego.

Era una buena versión pero tenía pegas: no va a pantalla completa, faltan algunos mapas, el sonido es regulero, falta 1 arma (que se puede conseguir con un truco) y faltan algunos enemigos. Mantiene, hasta cierto punto, el frenetismo y suavidad del PC.

Carmack decidió que el programa principal correría en la 32X y de la música se encarga la MD, lo cual siempre ha sido la explicación de su mala calidad. No obstante creo que fue demérito del compositor que no supo aprovechar bien el chip Yamaha de la MD.
¿Por qué no aprovecharon mejor las capacidades sonoras del 32X si no querían usar el chip de MD? Posiblemente el desarrollo atropellado de 2 meses tenga que ver con esto.


La MD también se encarga de dibujar la barra de estatus, además del menú, es decir, la MD se dibuja con prioridad sobre la 32X (por encima). Curiosamente los números del marcador (munición, vida, etc) son sprites.

Imagen


El primer mandamiento del programador de 32X es copiar de la ROM los recursos que necesitemos a la RAM. De esa forma los SH2 trabajan directamente con los datos. Como la RAM es pequeña comparada con la ROM, habrá que copiar tantos como puedas y evitar acceder a la ROM durante el juego, intentando hacerlo en los momentos de “pausa”, cambios de fase y cosas así.

Pero Doom accede constantemente a la ROM mientras jugamos. El juego ocupa 3MB, aunque algunos prototipos eran más grandes, finalmente el cartucho se lanza con esa capacidad. En PC los requisitos mínimos eran 4MB de RAM (4096KB) pero la 32X tiene 256Kbytes de RAM (!).
Pasar de un PC con “mucha” RAM a un sistema limitado como es una consola es un cambio bastante grande. Posiblemente por eso Carmack y compañía decidieron leer directamente la ROM en vez de cargar solo lo que se necesitaba en cada momento.
A pesar de penalizar los tiempos de acceso, el framerate del juego es aceptable (siempre en el contexto de la época).

Para comparar un poco con el mundo PC, yo tuve en su época un 386DX40 (un clon de 386 de AMD a 40Mhz) y tenía que jugar con un marco (como el de 32x), si quería que se moviera de manera aceptable a baja calidad. Jugando en alta calidad o jugabas con un 486 o iba a pedales, aun haciendo el marco enorme y la ventana de juego pequeña. Es decir, el port de 32X es similar en prestaciones al de un “caro” PC con un 386 y 4MB RAM, no está mal ciertamente.

El caso de la falta de mapas, sprites de animación y armas del original, ya es cosa del tamaño del cartucho. Que BFG no esté accesible al faltar el nivel donde se consigue (solo se puede conseguir con un truco) es un detalle hasta cierto punto feo, pero ahí se mezclan varias cosas, un cartucho mayor implica royalties más caros y menos beneficios para el editor que publica el juego, por otro lado meter más contenido no hace sino agravar el problema la falta de memoria de la consola comparado con el PC.

Curiosamente los primeros prototipos del port de 32x funcionaban a pantalla completa y mantenían la geometría original de los mapas de PC, pero hay demasiados slowdowns, motivo por el que se puso un marco y se simplificaron los mapas.

Aquí tenéis un enlace de uno de esos prototipos (la música NO es del juego obviamente):
https://www.youtube.com/watch?v=dcHoZ45bG-w

Muchos devs actuales de la scene de Sega opinan que el port es mejorable sobre todo por el tema del acceso continuo a la ROM, pero para nada fue un mal port.


VIRTUA RACING DELUXE
Juego de lanzamiento y fantástica conversión del arcade.
Para ponernos en contexto:
VR en Arcade (placa model 1): Hasta 180.000 polígonos planos
VR en MD SVP: Hasta 6500 polígonos planos con 16 colores
VR en 32x: Hasta 50.000 polígonos

Al igual que en VF, MD se usa para el fondo 2d y para casi todos los sonidos, pero a diferencia del VF, 32X dibuja todo lo demás, la MD no usa su otra capa ni usa sprites para dibujar nada:

Imagen

Como decía, 32X se usa para todo lo demás, 3d, los marcadores, y algunas melodías, como la melodía de inicio y la de los menús:

Imagen


Claramente mejora el port de MD, más colores, mejor sonido, más polígonos en pantalla, tiene 2 coches y 2 circuitos adicionales:

Imagen


Por supuesto, no llega al nivel del arcade pero no está nada mal para una consola doméstica, se nota sobretodo en la resolución:

Imagen
Imagen


El juego está ciertamente simplificado no solo por la carga poligonal, la detección de colisiones es mucho peor y otras (como al golpear señales de tráfico) directamente no existe.

La versión de VR de MD usa 15 colores (4 bits) mientras que la VR Deluxe de 32X (no está muy claro) parece usar el modo “direct color”. De ahí que no sea necesario tanto usar tramas, en la MD se abusa mucho de ellas (no había otra), en VRD se usa para las sombras y algún efecto.


STAR WARS ARCADE
Juego de lanzamiento, conversión del arcade de Sega.
Utiliza polígonos planos (sin texturas). Se mueve entre 20 y 30 fps, es decir, bastante bien.

Imagen
Imagen


El juego tiene varios modos e incluso cooperativo (uno maneja la nave y otro es el artillero).

Para lograr el máximo rendimiento, el motor del juego da prioridad a los polígonos respecto al resto de cosas en pantalla, para ello actualiza con mayor frecuencia los polígonos que otros elementos como los disparos, el marcador, o “el viento” espacial.

Es decir, todo lo que dibuje la MD se actualizará más lentamente que lo dibujado por el 32X.
32x dibujas las estrellas (puntitos), las naves, los asteroides, los rayos láser y las explosiones (todo son polígonos).

La MD dibuja el cockpit, los marcadores, las marcas de las naves a derribar

MD hace la música, 32X los efectos.

Lo dibujado por MD se dibuja SOBRE lo dibujado por 32X.


JUEGOS DE SEGUNDA GENERACIÓN (año 1995)
Algunos de los juegos que aparecieron en 1995 eran mejores que los lanzados el año anterior, los desarrolladores habían mejorado sus motores y habilidades para sacarle más rendimiento al 32X.

VIRTUA FIGHTER 32X

Fantástica conversión del arcade hecha por AM2.
Los modelos 3D están claramente simplificados respecto al arcade y a la conversión de Saturn (que incluso salió un poco antes), pero en cambio no hay baile de polígonos como en la Saturn, todo parece más estable y se mueve igual de bien.

Aquí la MD se usa para los fondos 2d, las letras del ranking, el logo de Sega en el inicio
La 32X para el 3d, el sonido, el fondo del ranking y el logo de AM2, curioso.

Comparamos Arcade (model 1) vs 32x vs Saturn

Imagen


32x vs Saturn

Imagen

Imagen


La MD dibuja las barras de vida en una capa, el fondo de nubes y arena en otra, el tiempo y las “marcas” de victoria son sprites.

Jugadores, sombras y suelo, dibujado por 32X.

La 32X dibuja con prioridad sobre la MD, es decir, dibuja por encima.


MORTAL KOMBAT 2

Interesante conversión del arcade, hay mejoras respecto a la versión de MD, pero hay detalles que dan que pensar sobre la dificultad técnica de hacer ciertas cosas con el tandem 32X-MD, ya que la mejora es muy ligera, en mi opinión podía haberse hecho más.

La MD dibuja los fondos:
Imagen

Por otro lado, la 32x se usa para dibujar el marcador, los personajes y los elementos que están delante de estos, como la cadena que se ve en la siguiente captura:
Imagen

Al no dibujar sprites, todos los colores que la MD puede manejar se destinan a dibujar los fondos, que son ligeramente mejores que el port de MD. ¿Cómo que todos los colores van al fondo?

Técnicamente la MD puede tener 64 colores en pantalla, bueno, no exactamente.
El VDP de MD soporta 4 paletas de 16 colores (4x16=64), pero cada paleta uno de los colores se reserva para representar el fondo del sprite (que será tratado como transparente para los sprites pero puede ser usado como color de fondo en background), así que al final tenemos 4x15=60+1=61 colores.
Esas paletas podemos aplicarlas a sprites, tiles y planos con ciertas restricciones. Por ejemplo un plano solo puede tener 1 paleta (16 colores). Un sprite solo puede tener los colores de 1 paleta, por tanto no puede tener más de 16 colores. Y así.
Sin entrar mucho en detalle, digamos que se solía reserva 1 paleta para el personaje principal, 1 para el fondo y las otras multiuso. Por tanto la elección de colores era vital y eso hacía que a veces los fondos fueran un poco sosos.

Pero en MK2 32X, la MD puede dedicar todas las paletas a los fondos, así que eso que hemos ganado. No obstante visualmente tampoco se aprecia mucho, por lo menos yo no lo aprecio mucho:

Imagen


Varios desarrolladores se quejaron de que los drivers para el sonido y la documentación de 32x respecto a este era muy deficiente y escasa en su momento.

¿Por qué no rehicieron todo el sonido para que sonara mejor? Posiblemente el ahorro de costes y maximizar beneficios hizo mella en la programación de este juego. La MD se usa incluso para algunas voces digitalizadas (sabemos que no es su fuerte).


KNUCKLES CHAOTIX

El 2D plataformas de 32X.
La MD dibuja los fondos, fondo parallax en una capa, escenario (suelo, palmera) en otra.
MD también hace parte de la melodía principal e incluso los anillos (capa de sprites). Es decir, no se limita a dibujar los fondos:

Imagen


Por otro lado, 32X dibuja los personajes, algunos elementos como los power ups y el HUD. Es curioso que en algunos juegos el HUD sea dibujado por la MD y en otros no.

Imagen

En esta captura se ve uno de los personajes con efectos de escalado en el sprite hecho por el 32X. No lo mencionamos en el MK2 pero igual que en Chaotix, al manejar el 32X a los personajes (en vez de hacerlo la MD), se aprovecha para que éstos sean más coloridos, al poder poner más colores la 32X.

En muchos juegos de MD encontramos que los sprites de personajes y fondos (e incluso el marcador) comparten algún color.

Las fases de bonus son son una versión mejorada de las fases del Sonic 2, esta vez con el “tubo” en 3D. Ciertamente son atractivas pero petardean un poco:

Imagen


En cuanto al sonido, MD crea parte de la melodía principal, 32x añade instrumentos y efectos y los junta para crear la melodía que podemos escuchar por los altavoces.

Es decir, MD y 32X colaboran para crear los gráficos y el sonido.


TEMPO

Un título peculiar. Es un 2D plataformas, como Knuckles Chaotix, pero funciona de forma totalmente distinta.

En las fases “normales” la MD dibuja los personajes, el escenario y HUD, 32X dibuja los fondos que están animados y con efectos de scalings.

En esta captura se puede ver bien, en el fondo tenemos un degradado de colores imposible en “circunstancias normales” para la MD. Imposible porque si lo hacemos tal cual en la MD, comprometemos las paletas de colores y pocos colores diferentes quedarían para la mega. los sprites. No se aprecia en la captura pero los colores van rotando rápidamente (naranjas, rojos, verdes, azules, etc), por lo que de intentar hacerlo en la MD, o ponemos sprites pobres en color, o al final los sprites también “rotarian” dichos colores.

Imagen

Luego tenemos el mensaje “x 2 PTS” que tiene efectos de escalado.

Otro ejemplo, en el fondo tenemos, además del scroll de fondo, muchos objetos moviéndose por el fondo (no se aprecia en la captura):

Imagen

En la MD, hacer esto implica bien usar sprites para simular fondos y el límite de sprites en pantalla y por línea haría difícil hacer algo así sin los parpadeos habituales. No es así en este juego gracias a que 32X no tiene esos “límites”.


Las fases de “jefes”, al revés. La MD dibuja los fondos y 32X los jefes, que se agrandan y reducen de tamaño, se escala su tamaño, rotan y tienen una profundidad de color y degradados muy suave:

Imagen


La secuencia de inicio del juego la hace 32x exclusivamente.

Como Knuckles, el sonido se hace con la colaboración de MD y 32x.


KOLIBRI
Un shooter donde la nave es un.. colibrí!!

Es muy colorido, posiblemente el más bonito de 32X. El juego..bueno.. lo hicieron el mismo equipo que Ecco the Dolphin, así que la jugabilidad es muy particular. Pero ¿y desde el punto de vista técnico?

Totalmente en 2D, corre a 60fps pero tiene truco, además del colibrí y de los enemigos, no hay complicados efectos parallax, no hay enemigos gigantes, poco en el escenario con lo que chocarse, es decir, es bastante simple en ese sentido.

Imagen

Los fondos “lejanos” son de MD, fijaros en las tramas (puntitos) en las nubes, los árboles o en el terreno. En cambio el fondo “cercano” y los sprites los genera la 32X, no hay más que ver el cesped y las flores. Este juego muestra el máximo colorido de los juegos lanzados en 32X.


STELLAR ASSAULT (SHADOW SCUADRON)

Un matamarcianos 3d que se mueve increíblemente suave, utiliza polígonos planos (sin texturas). Se mueve a unos 20 fps.

Imagen


Es uno de los pocos juegos que usan el modo de 15 bits direct color para colores, 32.768 colores. Para ello reduce la parte dibujada a 228x224px para que los framebuffers no se peten.

La MD dibuja el cockpit y la 32X todo lo demás.

Imagen


DARXAID

Un matamarcianos 3d con polígonos texturados.

Ojo, y en Español, menudo detallazo traducirlo a varios idiomas. Sólo fue lanzado en Europa.

Atractivo y toda una demostración tecnológica. Como hemos explicado antes, 32x no tiene nada HW para ayudar a texturizar polígonos, es por tanto el motor del juego el que usa los SH2 para ello. Durante el juego va bastante bien, pero en las partes de aterrizaje y despegue 32x se queda un poco corto, pero claro tenemos texturas y parece que incluso iluminación. La MD solo se usa para la música.

Todo lo dibuja la 32X. Todo.

Imagen

Imagen

Imagen


METAL HEAD

Otro juego 3d con polígonos texturados. Lamentablemente se mueve muy lento y tosco, aunque en la época era la leche.
La MD crea el Cockpit y el fondo, la 32x el 3D.


Imagen

Imagen


Mucha gente ve este juego como el techo de 32X, al menos con respecto a los juegos que se lanzaron. Muy posiblemente lo sea, pero el juego es repetitivo hasta la saciedad, un juego muy top en la técnica pero no en lo jugable.


FIFA 96

Título sólo lanzado en Europa. EA sacó, a diferencia de lo hecho en las consolas de 16bits, un FIFA en “medio” 3D. Porque no todo está hecho en 3 dimensiones.

Los jugadores son sprites creados por la MD, el estadio está hecho en 3d por el 32x.
El resultado es muy bueno (recordemos que hablamos de otra época) en lo visual.
La cámara no es fija como el típico FIFA isométrico 2D, podemos cambiarla, y en ciertos eventos que lo requieran hace zoom in-out, como en un saque de banda por ejemplo.

Imagen

Imagen

La cámara es un problema pues es bastante lenta, muchas veces la pelota se sale de la visión y tarda un segundo o dos en centrar el juego. Esto ya pasaba en las versiones isométricas realmente. No es muy distinto jugablemente respecto a esas versiones.
El sonido y la música simplemente pasables en cuanto a la aportación que podía dar 32X.

Parece un juego sin terminar de pulir.


PROTOTIPO: XMEN MIND GAMES

Este juego nunca fue lanzado al mercado, fue cancelado en 1996. Es más una demo técnica que un juego.


Imagen

Imagen

Los enemigos, objetos del escenario y el protagonista son hechos en 2D, todo se escala según nos acercamos o alejamos. El personaje es inmortal en este prototipo, ya que no muere ni en la típica lava.

Las paredes y el suelo sí parecen estar hechos en “3D” con texturas, tipo Wolfestein. Hay cierta “niebla” N64 style. Podemos movernos en todas las direcciones, recorrer el escenario, disparar a los enemigos e interactuar con algún objeto.

Los sprites son toscos pero enormes, no hay ralentizaciones pero sí que se queda el personaje atascado en muchas partes. No parece muy jugable pero el manejo de sprites y 3D texturado es notable, de seguir desarrollándose quizá hubiese sido un buen juego.

Desde luego una mejora enorme en cuanto a polígonos texturados.

Imagen

No va desde el emulador, por lo que veo solo desde la máquina original que yo no poseo, por tanto no puedo ver si la MD colabora, pero intuyo que todo funciona desde 32X, ya que lo 2D se escala constantemente según nos movemos.



PROTOTIPO: Zyrinx 32X Demo Tape

Zyring fue una desarrolladora Danesa. Citando a Wikipedia:

“El primer juego desarrollado por Zyrinx fue Subterrania para la Mega Drive de Sega. Durante el desarrollo el equipo se trasladó a Boston. Más tarde, el equipo desarrolló los juegos Red Zone y Scorcher. La tecnología de renderización 3D Zyrinx fue mostrada en un video promocional de Sega 32X. El equipo se disolvió en 1998 porque su editora Scavenger quebró…
Un hecho interesante acerca de la compañía es que estaba compuesta exclusivamente por personas que habían participado activamente en la demoscene del Amiga a finales de 1980 y principios de 1990”.

Esta demo puede verse en youtube, hay ejemplos de flat shaded polygons, texture mapping, gouraud shading, iluminación.

No es un juego, así que no me extenderé mucho.

Enlace (es un ripeo de un vhs, calidad lamentable lamentablemente)
https://www.youtube.com/watch?v=4r3Cb4zr9Kc

Imagen

Imagen


Como curiosidad, hay otros vídeos de prototipos para el 32X en youtube, por ejemplo de Sonic, pero son tan lamentables que no vale la pena comentarlos.





CONCLUSIONES

Obviemos el hecho de que fue un fracaso comercial, que fue lanzado a destiempo y abandonado, eso está claro.

Centrándonos sólo en el HW, Sega hace un addon que aprovecha la MD tratando de simplificarlo lo máximo posible, de forma que sea barato y simple.

Comercialmente se trata de vender que la MD todavía está al día y el plus lo dará 32X. Para ello lo 2D clásico lo hará la MD y el 3D será tarea del 32X. Cada aparato, MD y 32X, tiene sus fortalezas y sus debilidades y la idea es aunar lo mejor de cada una.

No es mala idea, pero es rocambolesca, es puro Sega de antaño.

Porque programar para dos aparatos totalmente diferentes (cpu risc vs cpu cisc, sprites/tiles vs polígonos), mezclando video y sonido, es una pequeña locura.

Por ello veo totalmente normal los ñordos que sacaron para la 32X, al fin y al cabo si el programador medio no estaba acostumbrado al mundo poligonal y a la programación multi-núcleo y multi-dispositivo, este add-on no lo ponía fácil.

¿Podría haberse hecho mejor? Desde luego a toro pasado… desde un punto de vista técnico y después de ver las opiniones de muchos devs de varios foros de desarrollo indie, en general la opinión más extendida es que el hardware de 32X hubiese sido mejor de la siguiente manera:

CPU: Deberian haber metido 1 sólo SH2 como procesador, más barato y no más dolores de cabeza con el multinúcleo.

Como hemos visto antes, no podemos ponerlo a más frecuencia. Así que 23MHz es el tope.

RAM: Meter mas RAM para evitar acceder al cartucho lo más posible, pero quizá mejor un bus de 32bits en vez de 16, puedes mover el doble de datos a la misma frecuencia, y es más barato probablemente el bus que meter ram de más capacidad.

Framebuffer: De más capacidad, porque si no el modo de 32K colores lo tienes seriamente limitado de partida. No obstante poco importante, en esa época 256 colores estaban más que bien. Pero la RAM es cara, por tanto difícil elección.

VPD: Y sobre todo y por encima de todo, un VDP de verdad, que pudiese hacer cosas, por simples que fuesen, hubiese ahorrado muchos ciclos al SH2. Obviamente esto no iba a ser barato pero lo cierto es que Sega tenía los VDP de Saturn hechos, podían haber adaptado uno de ellos, simplificando y mutilando un poco el chip.

En fin, espero que os haya gustado este análisis, seguro que me dejo muchas cosas por comentar y muchos errores por subsanar. Gracias por vuestra atención.
@danibus espectacular el hilo que te has currado,una pasada.La verdad que aclara mucho el tema de la programación para la seta y los problemas que tuvo para programar los juegos.Gracias.
Muy buen análisis. Veo mucho tiempo detrás. Gracias.

Si el 32X no ofrece herramientas hardware, sino que todo se hace por software, mi razonamiento es que los juegos mejorarían progresivamente según los programadores fuesen construyendo y optimizando sus librerías.

¿Por qué los juegos utilizan la Megadrive si la 32X es infinitamente más potente? Pues porque sin librerías específicas resulta mucho más fácil hacer algo con la Megadrive que con el 32X.
@matasiete

Y por que para hacer un fondo, resulta mucho más económico en espacio de ROM que lo haga la Mega en lugar de la 32x
Sexy MotherFucker está baneado del subforo por "faltas de respeto"
Dios, venía a irrumpir en el hilo con estas intenciones:

Imagen

Pero al final me voy a tener que callar la puta boca.

@danibus gracias tío xD. Imagino que ya has visto los reportajes de Digital Foundry sobre la màquina.
Sexy MotherFucker escribió: @danibus gracias tío xD. Imagino que ya has visto los reportajes de Digital Foundry sobre la màquina.


En mi opinión, no son nada del otro mundo. Se limita a visitar todos los juegos diciendo qué parte está hecha por la Mega y qué parte por el 32X, pero no hay mucho más fondo ni explicaciones técnicas, como sí hay en este post de @danibus.
Sexy MotherFucker está baneado del subforo por "faltas de respeto"
@matasiete cierto, cierto, o sea, a ver; a mí me fueron de utilidad para hacerme con una idea general de la 32x, pero el punto de vista de danibus es mucho más preciso; joder es que flipo con el nivel que hay en EOL, y luego la fama de «cloaca» no le beneficia, pero vamos, que yo he amortizado mi cuenta con CRECES.
En dos palabras

SEN-SA-CIO-NAL.

Esta noche me lo leo bien ,pero enhorabuena por el curro y el detalle ;-)

newdreamer
@danibus BRUTAL, te mereces todos mis respetos. [tadoramo] [tadoramo]

Grandioso trabajo! [flipa]

Gracias [beer]
Acojonante articulo te has currado compañero. Y da gusto leerlo. Mis dies [beer]
Curro impresionante, gracias por compartir!!
[beer]
impresionante hilo, WoW [oki] [plas]
Sexy MotherFucker escribió:@danibus gracias tío xD. Imagino que ya has visto los reportajes de Digital Foundry sobre la màquina.


Gracias a todos, efectivamente he cogido capturas de su vídeo, ayudó mucho a decidirme para hacer este hilo.

A mí me han quedado algunas dudas, pero en general creo que se entiende como funciona la seta. Esto lo sacan dos años antes un poco más barato...

No he destacado una cosa, y es que se habla mucho de la guerra Sega América y Japón.
Pero fueron ingenieros japos los que ayudaron a crear 32x, fue AM2 la que crea VF para 32x, los chips SH2 duales son los mismos que la Saturn (lo mismo para hacer un pedido mayor a Hitachi y bajar el precio por chip, quien sabe).

No sé, yo creo que Sega, una vez más, probó a tirar por varios caminos en vez de centrarse en uno, luego la competencia de Sony les obligó a abandonar 32x. Quizá si Sony hubiera tardado un año más, 32x hubiera tenido más recorrido y Saturn hubiese salido después. Todo esto imaginaciones mitad claro.

Una vez más gracias por los comentarios, y a ver si alguien que tenga la 32x prueba los prototipos de Doom32x o de Xmen. Que me envíe un privado si no los sabe encontrar.
EvilDemon está baneado por "clon de usuario baneado"
Currada de puta madre, gracias por su tiempo señor.
genial post
y con todo lo leido,me deja asombrado las cosas raras que llegó a sacar sega,jaja
Pillo sitio para leerlo mas detenidamente.

Gracias por publicarlo.
La 32X, tal cual es, no es mala idea, incluso el timing fue adecuado. Eso en todo el mundo, excepto en Japón, pero es que Japón es diferente. En el 95 SoJ tomó el control de todo, pisó a SoA, y extendió automáticamente al resto del mundo la estrategia que pensaban que iba a funcionar en Japón. ¿Qué pasó? Que la Saturn medio funcionó en Japón, pero Sega se suicidó en USA, Europa y demás mercados donde tenía dominio.

La 32X hubiese sido un éxito simplemente si se hubiese mantenido en el mercado sin abandonarla, esto es una reducción del precio un 20% respecto al precio de salida (algo típico en todas las consolas, ninguna mantiene el precio inicial) y la evolución de una hipotética segunda y tercera generación de juegos, con las compañías teniendo ya listas sus librerías y más conocimiento del hardware.
@danibus enhorabuena por el pedado de curro crack.

Por si quieres meterlo por ahí, te dejo la doc oficial que hay, que siempre hay gente que le gusta curiosear o aprender:
https://segaretro.org/32X_official_documentation
Versión mejorada del manual de hardware: http://www.tmeeco.eu/BitShit/32x_hardware_manual.pdf
Me ha encantado el hilo, una información excelente, bien organizada, bien explicada y muy ameno de leer. ME has alegrado la mañana XD

Sólo dos puntualizaciones minúsculas:

danibus escribió:
    Las instrucciones de 16 bits, al ser más pequeñas, pueden decodificarse más rápido que las de 32.
    Por un lado las instrucciones de 16 bits, al ser más pequeñas, ocupan menos memoria. La memoria es MUY cara (en la época) y es MUY limitada.


Las instrucciones de 16 bits sí que ocupan más memoria pero no se decodifican más rápido que las de 32. El juego de instrucciones en el caso de un mismo micro es el mismo, por lo que no se añaden más instrucciones por pasar de 16 bits a 32 bits, y menos siendo una arquitectura RISC. Es decir, si el micro tiene 256 instrucciones, tanto si la instrucción es de 16 bits como de 32 bits, se usan 8 bits para decodificar la instrucción. Lo que cambia es que el operando incluido en la instrucción puede ser de más bits.


danibus escribió:Aunque los SH2 son capaces de manejar buses de 32, 16 y 8 bits, 32X tiene buses de 16 bits imagino que por simplificar y abaratar costes.
Por tanto 32X es un addon de 32bits.


Esto igual es un lapuses, pero la 32X tiene buses de 16 bits, por lo que realmente es un addon de 16 bits, no de 32.
Impresionante el hilo, felicidades por el curro y compartir.

Yo tengo muchas dudas respecto a la 32x, incluso en escenarios más favorables no la veo que pudiera haber triunfado, ya que la moda en la época eran los gráficos 3ds, tanto en los salones arcade como en consolas domésticas. No había la diversidad de hoy en día y TODA la industría se guiaba por el mismo patronaje, y lo que mandaba en 1994 era el salto a las 3ds cosa que 32x manejaba con poquísima soltura. Si se hubiera enfocado al mercado japonés (sin la absurda pelea Sega América y Sega Japón), donde los juegos 2d siguieron 2/3 años más (ahí teneis el ejemplo de los juegos snes de 95/96) hubieran salido auténticas joyas.

Respecto al hadware en sí, no soy ningún experto, pero una cosa que me llama la atención es que pese a tener una paleta de colores muy superior a MD, a efectos prácticos seguia habiendo limitación de cuantos mostrar en pantalla.
magno escribió:Me ha encantado el hilo, una información excelente, bien organizada, bien explicada y muy ameno de leer. ME has alegrado la mañana XD

Sólo dos puntualizaciones minúsculas:

danibus escribió:
    Las instrucciones de 16 bits, al ser más pequeñas, pueden decodificarse más rápido que las de 32.
    Por un lado las instrucciones de 16 bits, al ser más pequeñas, ocupan menos memoria. La memoria es MUY cara (en la época) y es MUY limitada.


Las instrucciones de 16 bits sí que ocupan más memoria pero no se decodifican más rápido que las de 32. El juego de instrucciones en el caso de un mismo micro es el mismo, por lo que no se añaden más instrucciones por pasar de 16 bits a 32 bits, y menos siendo una arquitectura RISC. Es decir, si el micro tiene 256 instrucciones, tanto si la instrucción es de 16 bits como de 32 bits, se usan 8 bits para decodificar la instrucción. Lo que cambia es que el operando incluido en la instrucción puede ser de más bits.


Lo repasaré, estuve mirando también el Motorola y lo mismo me he colado.

magno escribió:
danibus escribió:Aunque los SH2 son capaces de manejar buses de 32, 16 y 8 bits, 32X tiene buses de 16 bits imagino que por simplificar y abaratar costes.
Por tanto 32X es un addon de 32bits.


Esto igual es un lapuses, pero la 32X tiene buses de 16 bits, por lo que realmente es un addon de 16 bits, no de 32.


Respecto a eso, bueno, ¿qué es una consola de 16 bits? Quiero decir, el Motorola tiene buses de 16 bits pero internamente trabaja con registros de 32bits. Lo voy a repasar también y modificaré el post inicial.

Gracias por los apuntes, hmmmmm, menudo cacao llevo entre el motorola y los sh2 XD
@danibus
Muy agradecido compañero, brutal curro! Info concreta y concisa, y todo muy bien explicado, [plas]

Si es verdad que lo más extendido en la red es leer qué hacía la Mega y qué hacia el 32X, con tu aporte componente a componente del HW, y juego a juego, me queda más claro, ;)

Lo dicho, gracias!!! [beer]


PD: Yo también soy de los que piensa que Metal Head fue su techo técnico, por lento que se mueva, jeje. Pena no haber contado con una vida comercial más larga para ver cuánto de sí daba en ese aspecto...
Mis dies al hilo.
Acá los dejo
Buenísimo el hilo.

Parece mentira que alguien se atreviese a programar algo para semejante tinglado.

Con semejante arquitectura parece mentira que los juegos simplemente funcionen.
da gusto ver como alguien profundiza tanto en un sistema que no valora casi nadie, gracias y felicidades ;)
Espectacular análisis...

Pienso que en una tercera gen de juegos, ya que a duras penas empezó la segunda, hubiéramos visto cosas mucho mejores. En los últimos juegos se intuye que los programadores ya tenían algún truco para aprovechar mejor la máquina...a su nivel le paso un poco lo que a la Saturn, herramientas incompletas, muchas dudas y poca documentación...

...Siempre recuerdo como al final de la vida comercial del aparato, Sega llegó a anunciar un daytona...me quedaré con las ganas de ver que hubiera salido de ahí...
danibus escribió:Respecto a eso, bueno, ¿qué es una consola de 16 bits? Quiero decir, el Motorola tiene buses de 16 bits pero internamente trabaja con registros de 32bits.


Sí, es como el caso de PC-Engine, que nunca estuvo claro si era de 16 bits o de 8, o la SNES que tiene bus de 8 bits y micro de 16. Y creo que tampoco es muy importante aunque comercialmente quede impactante.
Como te comentaba antes, tener más bits en una instrucción no implica que el juego de instrucciones sea más grande, lo único es que te traes más operandos en cada lectura de instrucción, con lo que la ejecución es más eficiente, y el espacio direccionado de memoria puede ser más grande.
matasiete escribió:La 32X, tal cual es, no es mala idea, incluso el timing fue adecuado. Eso en todo el mundo, excepto en Japón, pero es que Japón es diferente. En el 95 SoJ tomó el control de todo, pisó a SoA, y extendió automáticamente al resto del mundo la estrategia que pensaban que iba a funcionar en Japón. ¿Qué pasó? Que la Saturn medio funcionó en Japón, pero Sega se suicidó en USA, Europa y demás mercados donde tenía dominio.

La 32X hubiese sido un éxito simplemente si se hubiese mantenido en el mercado sin abandonarla, esto es una reducción del precio un 20% respecto al precio de salida (algo típico en todas las consolas, ninguna mantiene el precio inicial) y la evolución de una hipotética segunda y tercera generación de juegos, con las compañías teniendo ya listas sus librerías y más conocimiento del hardware.


Coincido...

Tener la Seta y acabar lanzando una "all in one" y ya tienes el reciclaje de todas las consolas de principios de los 90.
digase...

MegaDrive------------------ Saturn
Master System ------------- Neptuno/32X
Game Gear ------------------ Nomad

Es que encima tienes a los desarrolladores trabajando mas años para la Mega a secas reconvertida a portatil y alimentas 3 máquinas de un plumazo...
¡¡Felicidades por el curro!!
He disfrutado mucho con este reportaje. [oki]
Muy buen hilo, mucha información sobre este add on que pasó con más pena que gloria.
Estupendo hilo, a la consola se le podia haber sacado bastante jugo, una pena que durara un suspiro.
Pedazo de curro...que maravilla de hilo...enhorabuena y gracias por tu trabajo!!!
Gracias por el aporte, este tipo de hilos siempre son bienvenidos.
Hay un par mas de prototipos el Soulstar X y el Virtua Hamster
Articulo sensacional, super detallado y con muchas horas detrás, gracias!

Lo mas curioso que me ha resultado es lo caso del juego Tempo, el como se invierten los papeles en los jefes finales, curiosísimo :)

Por añadir un apunte más, faltaría por añadir aquellos juegos que utilizaban el hardware de la Megadrive, el de 32x y el del MegaCD a la vez...¡aquello si que tenía que ser una locura para los programadores!
¡Increíble trabajo de investigación y aporte de datos que has realizado! Gracias por compartirlo.

En su época tuve el 32x, allá por el 96 por una liquidación del hipercor por 5000 pesetas, y la verdad es que el chasco fue tremendo. Traía el Motocross Championship que la verdad me encantó, muy divertido, pero siempre pensé que podría haber sido un juego de Mega Drive. Más tarde ahorrando pedí por correo al Centro Mail el Knucles Chaotix tras ver muchas imágenes en revistas, creyendo que sería un increíble Sonic de 32 bit... ¡Ya vaya palo me llevé!
Al tiempo se me estropeó la consola, me deshice de los juegos y ahí acabó mi historia con él...

@danibus Recuerdo que en la revista Super Juegos de diciembre de 1994, el la primera página de la misma, aparecía un anuncio del 32x con la frase, "toda la potencia de un 486 a 50Mhz". La he buscado pero no la encuentro, por si alguien la tiene y puede escanear la imagen.
Imagen

Dicho esto, ¿a qué procesador de la época se podría realmente comparar el SH a 25Mhz? En el diagrama sale muy mal parado [+risas] ¿Un 386?
comprador escribió:¡Increíble trabajo de investigación y aporte de datos que has realizado! Gracias por compartirlo.

En su época tuve el 32x, allá por el 96 por una liquidación del hipercor por 5000 pesetas, y la verdad es que el chasco fue tremendo. Traía el Motocross Championship que la verdad me encantó, muy divertido, pero siempre pensé que podría haber sido un juego de Mega Drive. Más tarde ahorrando pedí por correo al Centro Mail el Knucles Chaotix tras ver muchas imágenes en revistas, creyendo que sería un increíble Sonic de 32 bit... ¡Ya vaya palo me llevé!
Al tiempo se me estropeó la consola, me deshice de los juegos y ahí acabó mi historia con él...

@danibus Recuerdo que en la revista Super Juegos de diciembre de 1994, el la primera página de la misma, aparecía un anuncio del 32x con la frase, "toda la potencia de un 486 a 50Mhz". La he buscado pero no la encuentro, por si alguien la tiene y puede escanear la imagen.
Imagen

Dicho esto, ¿a qué procesador de la época se podría realmente comparar el SH a 25Mhz? En el diagrama sale muy mal parado [+risas] ¿Un 386?


yo creo que es complicado comparar estos procesadores...al final seria CISC vs RISC o me equivocó? hay ciertas tareas específicas en los que uno estaria sobre el otro...y bueno el caso es que los sh eran dos, incluyendo el esclavo que dudo mucho, que el DOOM, juego con el que podríamos comparar un 486, aprovechara...no deja de ser una conversión hecha a todo correr....

Noticia del daytona de 32x
Imagen
@DIE y no solo daytona usa,en esa imagen tambien se anuncia el dynamite headdy para 32x
crazy2k4 escribió:@DIE y no solo daytona usa,en esa imagen tambien se anuncia el dynamite headdy para 32x


No puedo evitar tener una enorme curiosidad por saber que hubiera resultado de ese daytona, porque aunque la lógica me dicte que sería una mierda, Sega es Sega...
DIE escribió:
crazy2k4 escribió:@DIE y no solo daytona usa,en esa imagen tambien se anuncia el dynamite headdy para 32x


No puedo evitar tener una enorme curiosidad por saber que hubiera resultado de ese daytona, porque aunque la lógica me dicte que sería una mierda, Sega es Sega...


¿Por qué iba a ser una mierda? Todos los ports de arcades Sega hechos para el 32x son dignos.

Por supuesto que sería muy recortado, pero eso no significa que fuese mal juego.
@danibus , estupendo artículo, lo he leído por encima y son muy interesantes los aspectos técnicos de la seta.
Muchas gracias por el aporte, es digno de leerse varias veces.
DIE escribió:
crazy2k4 escribió:@DIE y no solo daytona usa,en esa imagen tambien se anuncia el dynamite headdy para 32x


No puedo evitar tener una enorme curiosidad por saber que hubiera resultado de ese daytona, porque aunque la lógica me dicte que sería una mierda, Sega es Sega...

jaja ya ves,yo tambien tengo esa curiosidad,y no se,viendo como salio virtua racing,y virtua fighter,quiza les hubiera quedado algo digno,aunque a saber,daytona era algo muy gordo para saturn,imagina para 32x...
@DIE "al final seria CISC vs RISC". La verdad es que no entiendo mucho de procesadores, más allá de comparar un Intel con otro específico para videoconsolas, por eso preguntaba [+risas]

Por cierto he encontrado la imagen del anuncio comparando la potencia de Mega Drive 32X con un 486 a 50 Mhz...
Imagen

y la otra otra página
Imagen


Por cierto, ¿así podría haber sido Daytona Usa 32x?
https://www.youtube.com/watch?v=px-nVOdfU6c

[boing]
comprador escribió:Por cierto, ¿así podría haber sido Daytona Usa 32x?
https://www.youtube.com/watch?v=px-nVOdfU6c

[boing]


No creo, la cosa iría por una menor carga poligonal una distancia de dibujado menor y pienso que al menos en el coche principal si le habrían añadido texturas aproximadas al original, nunca lo sabremos...pero Sega parecía atreverse...
De hecho no recuerdo donde leí que el Virtua Fighter ronda los 30000 poligonos, igual el Daytona es que el que hubiera sacado los higadillos al Add-on
@DIE gracias por la aclaración [beer]
Me ha venido a la mente el juego de motocross que comenté que era una castaña técnicamente pero divertido...

Motocross Championship 32x
Imagen

Según lo explicado en el primer post, ¿la imagen de las gradas de fondo y la barra de estatus la generaría MD y todo lo demás la 32X? El sonido es una basura, así que entiendo que también sale a través de la MD.

¿Realmente no hubiese sido posible este juego en Mega Drive de 16bit?
https://www.youtube.com/watch?v=mbc5TijjD3A
comprador escribió:@DIE gracias por la aclaración [beer]
Me ha venido a la mente el juego de motocross que comenté que era una castaña técnicamente pero divertido...

Motocross Championship 32x
Imagen

Según lo explicado en el primer post, ¿la imagen de las gradas de fondo y la barra de estatus la generaría MD y todo lo demás la 32X? El sonido es una basura, así que entiendo que también sale a través de la MD.

¿Realmente no hubiese sido posible este juego en Mega Drive de 16bit?
https://www.youtube.com/watch?v=mbc5TijjD3A


Si creo que este juego (salvo en el color) hubiera sido posible en 16 bit tal cual. Es el juego con el que estrene la 32x de chaval, venía en pack...
Acongojante articulo. Mi más sincera enhorabuena. Estos son los hilos que hacen que entre en este foro a menudo y que lo mantienen vivo.

Un saludo
Magnifico articullo muy interesante e instructivo.

Me llama espercialmente la atencion la parte de las 2 capas en las que se mezcla el trabajo de la megadrive con el 32X, ya que nunca me lo habia planteado de esa manera.

Un autentico currazo de post
DIE escribió:
crazy2k4 escribió:@DIE y no solo daytona usa,en esa imagen tambien se anuncia el dynamite headdy para 32x


No puedo evitar tener una enorme curiosidad por saber que hubiera resultado de ese daytona, porque aunque la lógica me dicte que sería una mierda, Sega es Sega...

incluso se rumoreaba que vendria con un editor de circuitos. :O
61 respuestas
1, 2