Mitos alrededor de Nintendo64

Xarman coloco ayer un hilo en al foro de Meristation, cuyo enlace le han retirado, dedicado a mi artículo sobre los gráficos de N64. El hecho que retiren el enlace para que ellos desde sus foros puedan robar el contenido hecho por otros me parece deleznable, sobretodo cuando esos otros no cobran dinero de la publicidad y ellos si. Pero bueno, eso son cosas sin importancia, en todo caso me alegra que haya salido una discusión sana.

En fin, vayamos por los mitos:

N64MitoIBM

Esto es un mito inventado por Moises Cabello, alias Averno, hace ya muchos años en los foros españoles y que por suerte pude comprobar y es completamente falso. Tuve la suerte de preguntarle a ERP, moderador de Beyond3D y desarrollador del motor gráfico de Top Gear Rally y World Driver Championship para N64. ERP me confirmo que la historia es completamente falsa y que el chip no es de IBM sino un MIPS R4300i de arquitectura (MIPS era una empresa propiedad de SGI y funcionaba como ARM hoy en día) y fabricado por NEC Electronics, en realidad tanto el RCP como la CPU estaban fabricados por NEC, actual Renesas, para Nintendo.

N64MitoXarman

Tuve una discusión hace un tiempo con varios desarrolladores y su conclusión es que SGI había capado N64 adrede con tal de defender su negocio principal que eran las estaciones de trabajo de alto precio por un lado y por otro Nintendo con su obsesión de realizar consolas de bajo coste para niños. Obviamente no pudieron escapar al destino una vez las tarjetas 3D hicieron que los PCs echaran del mercado a las estaciones de trabajo SGI para el modelado 3D. La conclusión es que por aquel entonces la mayoría de CPUs solían tener el controlador de memoria fuera del mismo chip y no resultaba un problema excepto en la RDRAM…  y que SGI había capado el controlador de memoria de N64 adrede el rendimiento de esa pieza del hardware con tal de proteger su negocio principal.

Por otro lado, eso de que era Nintendo la que no dejaba tocar el microcódigo es un mito enorme, ni la propia Nintendo tuvo acceso en un principio al microcódigo del RSP y esto se sabe porque el código de Ocarina of Times y Super Mario 64 son simples llamadas al RCP sin cargar ni un solo “micro-código”, algo que permitió realizar el emulador UltraHLE. Más bien la culpable en ese aspecto fue fue SGI y Nintendo la envió a la mierda tan pronto como se encontraron con los problemas una vez N64 se encontraba terminada.

La parte que fue culpa de Nintendo fue el hecho queestaba obsesionada en hacer consolas para niños, a la famosa entrevista a Yamauchi me remito:

¿Consecuencias de esto?

  • No hay unidad CD-ROM para reducir costes.
  • No hay chip de sonido para reducir costes.
  • La configuración de memoria no fue la más eficiente para el hardware.

Primero comentare el tercer punto, hay que tener en cuenta que cuando N64 salió al mercado, en el mundo del PC recibió la primera aceleradora 3D que se convirtió en un referente y en must-have, estoy hablando de la Voodoo Graphics que por si sola se vendía por el mismo precio que una N64:

01_3Dfx_Voodoo_Graphics_Diamond_Monster_3D

¿Que significo? Pues un avance visual como este:

gl-quake-640-480

Cuando veáis los juegos de PlayStation portados a PC a 640×480, con los filtros gráficos de N64 pero sin esas texturas de mala calidad entonces la N64 pasaba a parecerte un mal sistema a nivel técnico y el impacto visual que se supone que tenía que darte la N64 lo daba un PC con la Voodoo Graphics. ¿Cual era el secreto de la tarjeta de 3Dfx?

¿Era mucho más potente la Voodoo Graphics que el RCP? La verdad es que no, su tasa de relleno era solo de 45 Mpixeles y no podía realizar efectos de “2-Cycle” o dicho de otra manera, efectos que requiriesen dos texturas. ¿Entonces cual era su secreto?  El ancho de banda de su memoria, el cual superaba 1GB/seg. En N64 la tasa de relleno era de 62.5 Mpixeles, renderizando a 16 bits y con filtro bilineal necesitas leer unos 8 bytes por pixel de la tasa de relleno. 62.5*8= ¡Todo el ancho de banda que tiene N64 disponible solo para ello! De ahí la necesidad de una memoria en una jerarquia superior como la cache de texturas.

Ahora imaginaos sí Nintendo hubiese colocado un bus de 128 bits con la memoria y la hubiese duplicado a 8MB. Aumentar el ancho de banda significa aumentar los pines de comunicación del chip y hacer que este sea más grande, entonces el rendimiento de las obleas empieza a bajar exponencialmente y el coste de los chips sube, esto por no hablar que el número de chips de memoria lo has de aumentar con el aumento de la interfaz de memoria y con ello los costes del sistema. Una Nintendo obsesionada por los costes decidió tirar no de la configuración más ideal sino de la más barata.

El primer sistema que lanzo SGI con un controlador UMA fue el SGI O2 lanzado en 1996, se supone que N64 se ha basados siempre en el Reality Engine, y quizas con esto meta mucho la pata pero para mi es una versión de muy bajo coste del SGI O2, la arquitectura de dicha estación de trabajo que salió casi a la par que N64 es la siguiente:

SGIO2

¿Diferencias? El ICE era un co-procesador como el MDEC del R3000A de la primera PlayStation y encargado de codificar y descodificar para edición en video digital. Era una pieza que no tiene equivalente en N64, al igual que el IOE era mucho más completo que el motor I/O o motor de E/S de N64 al tener que dar apoyo no solo a los mandos de una consola sino a todo tipo de periféricos, por lo que me gustaría observar es el MRE, que es la pieza que se parece más al RCP de N64.

SGIO2Mem

En primer lugar la CPU era un MIPS R5000 con una cache de segundo nivel, esto recorta enormente la latencia. Nintendo opto por el R4300i por motivos de reducción de costes. En el caso de N64 el bus que comunica la CPU y el RCP podría ser de 64 bits pero de nuevo por motivos de reducción de costes se quedo solo en 32 bits. En cuanto a la comunicación del MRE (equivalente al RCP) con la memoria del sistema el bus como veis es de 256 bits, lo cual es normal en una estación de trabajo pero el ancho de banda de 64 bits de N64 no es suficiente para las necesidades de la arquitectura.

¿Queréis ver el mayor colmo de todos?

O2Mem

Memoria SDRAM señores, memoria SDRAM con un latencia mucho menor que la RDRAM de N64. En 1996 SGI tenía controladores de memoria SDRAM que habrían podido ir al RCP de N64, sustituir la RDRAM por SDRAM y reducir la latencia para ganar rendimiento pero no lo hicieron. Sí Nintendo hubiese colocado una interfaz SDRAM de 128 bits creo que otro gallo hubiese cantado, aunque es muy posible que un RCP con una interfaz de 128 bits fuese demasiado caro para un sistema doméstico de la época y ahí yo este patinando un poco.

¿Falta de tiempo o es que SGI se la metió doblada a Nintendo? Creo que fue una combinación de la obsesión por recortar costes de Nintendo y la defensa de su mercado por parte de SGI que acabaron por joder el diseño de N64.

MitoN64Sonido

N64 carecía de chip de sonido y para colmo tenía que ser el RSP, no la CPU, quien se encargase de perder potencia descodificando el sonido. Tened en cuenta que PlayStation por ejemplo tenía un chip de sonido especializado con 24 canales y el RSP perdía un n% de la potencia por cada n canales. Así pues un juego con la misma calidad de sonido que la PSX/PSone significaba que el 24% de la potencia gráfica de N64 se iba al garete. Todo por las ganas de Nintendo de ir recortando costes en el diseño para que fuese accesible a los críos.

N64Cartucho

Hay que recordar el mito y la mentira defendidos por el marketing de Nintendo, SGI y los N64 Kids.

La falsedad de SGI se comprueba en la Atari Jaguar,consola con cartuchos que salió años atrás y que requería volcar los datos a la RAM por el hecho que su velocidad de lectura no era lo suficientemente rápida. Lo cual también hace N64. Los cartuchos tenían sentido cuando las frecuencias de las CPUs y sus anchos de banda eran tan bajos que acceder a un chip de memoria ROM daba un ancho de banda lo suficientemente grande para la lectura. Pero una vez se convirtieron en un cuello de botella insalvable fue cuando el ancho de banda necesario ya no podía ser proveído por los cartuchos y se empezó a necesitar memoria intermedia para volcar los datos desde donde los procesadores podían leer los datos.

¿Hay que recordar que el plan inicial de Nintendo fue vender la N64 con el 64DD?

database-hardware-nintendo64dd01

El 64DD no era una unidad de cartuchos sino de discos magnéticos con un transferencia de… ¡1MB/seg! A Nintendo no le importaba promocionar los cartuchos y sus ventajas en lo que la velocidad de acceso se refiere al mismo tiempo que vendían la moto con el 64DD. El motivo por el cual Nintendo no añadió una unidad CD-ROM en N64 fue para ahorrar en costes y las consecuencias a nivel de catálogo para la consola las conocemos todos, fueron nefastas.

miton64xarman

El motivo de ello es claro, si miras sobre el papel la arquitectura de N64 y la comparas con la de la competencia entonces de la época se te cae la mandibula al suelo, pero luego la ves en funcionamiento y dices… esto no cuadra. Me he centrado en los cuellos de botella no para negativizar la consola sino para quiterle ese aura de sistema técnicamente perfecto con el que lo han rodeado los N64 Kids durante todos estos años. Incluso Nintendo reconoció indirectamente el desperfecto de N64 con Gamecube.

N64MitoMultiTextura

Los famosos efectos “2-Cycle” conseguido gracias al Color Combiner, lo cual no servían para nada ya que recortaban la tasa de relleno a la mitad. Como curiosidad el CC se encuentra también en Gamecube y Wii, soportando hasta “8-Cycle” y recortando de la misma manera la tasa de relleno de la consola. Pero eso es un tema aparte al ser de una consola aparte. 😉

En realidad lo de los efectos de multitextura es una estupidez, en el PC no se atrevieron con ellos hasta que no hubo suficiente gente que tuvo la Voodoo 2/Riva TNT o superiores. En N64 es algo que funciona tan mal que si yo hubiese sido Nintendo por temas de rendimiento y velocidad en los juegos lo hubiese quitado y habría utilizado el espacio sobrante para al menos aumentar el tamaño de la cache de texturas aunque fuese solo a 8KB.

Uff, el post ha salido un poco largo.

Anuncios