Doom 3 no es posible en Wii y mucho menos en Gamecube… ¿o si? (II)

Comentario Original:

UrianUrian hace años que vengo esperando tu respuesta a Ricardo Garcés Del Pozo!!

meh

Vale, de acuerdo, le voy a contestar pero que conste que me parece una perdida de tiempo porque la respuesta es obvia, no pensaba responder a un atajo de mentiras encadenado producto de…

crying-waterfalls

Por haber dicho las verdades del barquero, que no es otra que GameCube/Wii no es tan potente ni tan mágica como algunos se pensaban, en especial GameCube en comparación a su época. Pero oye, no es mi opinión, son hechos objetivos.

En fin, al grano.

Yo se que es lo que pasa… “Urian” hasta este momento no a encontrado a nadie que le pare el carro y en este momento lo voy a hecer yo.

Mira pendejín, en primer lugar estas en extremo enajenado con una marca, al hacer un tema de foro con la mas clara intención de fastidiar. ¿o que me vas a decir que tu intención es informar?

¿Pararme el carro a mi? ¿Sabéis el hecho de que sabe más el Diablo por viejo que por Diablo? Llevo días sabiendo que las guerras dialectales no sirven para nada ya que no se ganan por la verdad y la razón, se basan por cansancio, por agotamiento del rival. He conocido gente por internet que creen que tienen razón cuando nadie quiere discutir con ellos porque ya están hartos de la eterna espiral.

Segundo lugar.- parece que tu de bump mapping y normals conoces quizas algo, pero no conoces de algo todavia mas poderoso que esos efectos… no no me refiero al paralax me refiero al DINERO.
Wii nunca mostró todo el potencial por que fue la propia Nintendo la que creo con su filosofia y linea de productos el mercado para Wii, juegos que utilizan normals son costosos de hacer en wii por su diferente arquitectura además de que sus técnicos y artistas son mas cotizados, al no haber en Wii mucho apoyo para estos juegos, las desarrolladoras vieron que no es rentable juegos con gran presupuesto en wii.
Y las pocas que se arriesgaron no lo volvieron a hacer.
Sabes cuantos millones de dolares tienen de presupuesto Gears of War o Uncharted?

Entiende hijo que los juegos se ven mejores POR EL DINERO que invierten y se ven aun mejores si saben que la inversión representará utilidades.
Las capacidades (y deficiencias) de la máquina son aprovechadas hasta mas no poder con un millonario presupuesto. Si no nombras eso en tu seudo análisis es por que quizas todavia sigas viviendo de una mesada y no sepas el valor del dinero, o bien creas que las desarrolladoras son hermanas de la caridad que se avientan tres millones de dólares en un juego y luego los obsequian a los fanboys como tu.

Este…

Joe-Biden-Laughing-Shaking-his-Head

Cuando no se puede, no se puede y punto por mucho que la gente se ponga a realizar castillos en el aire. Doom 3 tal y como fue lanzado en Xbox no es posible en GameCube sin sufrir amplios recortes por una serie de circunstancias que voy a pasar a enumerar.

#1 CPU

El Pentium III a 733Mhz utilizado en la primera Xbox era mucho más rápido y más potente que el PowerPC 750/G3/Gekko utilizado en GameCube, tanto en enteros como en coma flotante, ¿en que afecta esto? Pues en que el tiempo de la escena que consumiría la CPU sería mucho más grande en GameCube que en Xbox incluso si estas tuvieran la misma GPU.

En el caso de Wii, con la subida de velocidad de un 50% entonces la cosa estaría más igualada en ese aspecto.

#2 Memoria RAM

GameCube tiene 24MB de memoria RAM, esto significa menos elementos en pantalla, escenarios más pequeños, menos detalle en las texturas. Xbox tenía 64MB y tanto un sistema como el otro utilizaban compresión S3TC/DXTC para las texturas por lo que no hay ninguna ventaja en GameCube respecto a Xbox en ese aspecto. Luego esta el tema del ancho de banda, la memoria de GameCube son 2.6 GB/seg de los cuales unos 1.3 GB/seg son para la CPU y el resto para la GPU, en Xbox tenemos 1 GB/seg para la CPU y el resto para la GPU.

¿Y que hay del caso de Wii? Su arquitectura utiliza dos pozos de memoria distintos, uno de 24MB que va un 50% más rápido que el de Gamecube y otro de 64MB que tiene más latencia pero el mismo ancho de banda. ¿La particularidad? No puedes utilizar un pozo de memoria para la CPU y otro pozo de memoria para la GPU, lo cual sería lo lógico, solo puedes utilizar uno y ninguno de los dos tiene el ancho de banda del de la Xbox original.Es decir, que la cantidad de datos que se pasarían a la CPU y a la GPU en la versión de Wii serían menores que en la versión de Xbox.

#3 Vertex Shaders

Vamos a la parte peliaguda, un Vertex Shader es un programa que se realiza en la GPU y que consiste en poder manipular los valores de los vértices. Hay tres formas de poder manipular los valores de los vértices de la escena.

  1. Renderizando la geometría de la escena desde un procesador de propósito general.
  2. Renderizando la geometria de la escena desde una GPU que soporte Vertex Shaders.

Pero el Luigi’s Mansion de GameCube los utilizaba…

25103-luigi-s-mansion-gamecube-screenshot-a-mirror

¿Cual es la explicación entonces? Fácil, el juego no rendirizá su geometría desde la GPU sino desde la CPU. Obviamente esta solución es peor que tener una unidad Vertex Shader que realice la operación. La CPU puede interactuar de la GPU de dos formas, una enviado listas de comandos para que dibuje la escena, la otra entrando en la memoria eFB (Búfer de Imagen Embebido) para manipular los datos de esta, pero en ningún momento puede entrar a manipular los datos de la geometría de escena generada en la GX GPU por lo que la única solución que tendría sería la de generar la geometría de la escena en la CPU.

¿Como se compara esto con los Vertex Shader de la Xbox One?

nv20-vertexprocess

Para operar con un vértice necesitamos operar con sus cuatro operandos, podemos tener una unidad de proceso que soporte menos operandos pero la cantidad de ciclos de reloj sería mayor que con 4 o un múltiple de 4. La GPU de Xbox tenía 2 Vertex Shaders capaces cada uno de ellos de operar con los 4 operandos por ciclo y la GPU funcionaba a 233Mhz… ¿pero que hay de la CPU de GameCube? El dibujo de abajo es de una patente de Nintendo, nos da la respuesta directa, ya que es un diagrama de la CPU de GameCube y Wii.

Captura de pantalla 2015-08-17 a las 12.36.52El PowerPC 750/G3 no tiene una unidad de procesamiento vectorial, es decir, capaz de realizar la misma instrucción a diversos operandos en un mismo ciclo, eso fue un añadido de chips posteriores por lo que Nintendo decidíó modificar la unidad de coma flotante para que pudiese admitir hasta 2 operandos. ¿Como? La FPU del PowerPC 750 puede operar en coma flotante de doble precisión (64 bits) por lo que tiene registros de 64 bits y la idea es colocar dos datos de 32 bits y una ampliación en el set de instrucciones de la FPU para poder manejar dos operandos.

Así pues tenemos que la CPU de GameCube maneja 2 operandos a 486Mhz, mientras que la GPU de Xbox 8 operandos a 233Mhz. Esto significa que la CPU de GameCube ni siendo utilizada al 100% para renderizar solo la geometría podría alcanzar la potencia de los Vertex Shader de Xbox y no olvidemos tampoco que esto dejaría a la CPU sin poder hacer el resto del trabajo. ¿Y que hay de Wii? Pues más o menos nos encontraríamos con el mismo panorama.

Es decir, con las mismas condiciones que en Xbox no podríamos renderizar Doom 3 por lo que tendríamos que recortar enormemente el nivel de calidad visual. He visto PCs ejecutando Doom 3 con una GPU que no soporta VS en su interior pero a una tasa de fotogramas horrible, ¿el motivo? Para según que modo de calidad gráfica la escena se renderiza en la CPU, pero en GameCube y en Wii no tenemos esa suerte de tener una CPU lo suficientemente potente.

#4 Stencil Buffer

Mirad esta entrada para conocer lo que es un Stencil Buffer.

Este resulta esencial para Doom 3 y resulta que la GX GPU de GameCube/Wii no lo soporta, este sería un recorte más a realizar en las versiones de GameCube/Wii.

Habitualmente el Stencil Buffer se suele almacenar junto al Z-Buffer, en el caso de la GPU de Xbox tenemos 32 bits para color y 32 bits para Z+Stencil divididos en 24+8. En el caso de GameCube/Wii tenemos 24 bits para Z/Profundidad pero al no tener un Stencil Buffer no podemos hacer efectos que lo precisen, tan sencillo como esto.

#5 Color

La GPU de Xbox puede operar con 32 bits de color, es decir, RGBA con 8 bits por componente. La GX GPU en cambió esta limitada a 24 bits, 6 bits por componente, y 16 bits, 4 bits por componente. ¿Que significa esto? Pues básicamente que la definición de las texturas es mucho menor, mucha gente ignora este hecho que tiene una explicación muy simple… ahorro en la eDRAM.

Esto se puede ver en otra patente de Nintendo referente a GameCube/Wii.

Captura de pantalla 2015-08-17 a las 13.00.52

Tenemos una imagen de 640×528 pixeles almacenada en ella y unos 24 bits de información por pixel. Este diagrama es valido tanto para el búfer de color como para el búfer de profundidad y he de aclarar que esta ladeado.

Pero Urian… ¿acaso la resolución no es de 640×480?

Correcto, el formato NTSC es de 480 lineas en modo no entrelazado (30hz/30 fps) pero no hay que olvidar que realmente son 525 lineas del overscan y unas 3 lineas adicionales del V-Sync. Es decir, lo que hace el DAC de video de la consola es leer del búfer de imagen incluso en los periodos donde no hay nada que representar y cuando ha terminado para el siguiente fotograma vuelve al punto de origen (0,0). Es por esto que Nintendo no pudo ampliar la resolución de GameCube/Wii porque entonces  te cargas el recorrido, te puedes encontrar que una linea se represente a continuación de otra, que los fotogramas salgan saltados. Obviamente a nivel de software con el Dolphin esto se ha solucionado pero a nivel de hardware no es posible.

En fin, al grano, el caso es que tenemos dos búfers de 640*528, independientemente de que las lineas del overscan no se representen estos almacenan datos.

  • 2*(640*528*24 bits)/8= 2027520 bytes = 1.9 MB.

¿Que ocurre si vamos a los 32 bits?

  • 2*(640*528*32 bits)/8 = 2703360 bytes = 2.6 MB.

Es decir, no cabría dentro del búfer de imagen y se tendría que operar desde la memoria principal con la disminución de rendimiento que esto supondría. Si Nintendo hubiese ampliado el búfer de imagen en Wii para soportar los 32 bits de color entonces la calidad visual de muchos juegos de Wii hubiesen sido superiores a las de GameCube, pero se negaron a hacerlo.

Creo que con estos puntos es suficiente para aclarar que Doom 3 con la misma calidad visual que en la versión de Xbox no es posible ni en Gamecube ni en Wii. Son datos, no son invenciones por mi parte, no es una limitación por no querer, es una limitación por limites físicos no por límites de voluntad.

Tercer lugar.- Wii es Arquitectura gamecube, si, pero potenciada a 2 o 3 x por tanto no hará nada que no haga gamecube… pero…….. lo que gamecube no gestionaba bien wii si lo puede hacer.

Eso es directamente mentira, Wii usa la misma GPU y CPU que GameCube pero un 50% más rápidas en cuanto a velocidad de reloj. No es 2 o 3 veces más potente sino un 50% mas potente y esto es un hecho incontestable.

Cuarto lugar.- hay más de una forma de obtener las cosas… los shaders programables reconozco que son mejores, (zelda twilght es increible, pero la iluminación de gears es lo máximo) pero Wii tiene las tevs y mediante EMBM reproduce normal mapping, bump mapping, reflexión y refracción, etc. ¡no solo de Shaders vive el hombre!

¿Sabe la gente lo que es el TEV? Pido perdón a la gente por autocitarme en este caso, pero es que un tema del que ya hable en su día por lo que os recomiendo leer dicha entrada.

¿Pero porque son importantes los shaders? Porque antes de estos los efectos se hacían con máquinas de estado, es decir, con unidades no programables que a partir de unos datos de entrada realizan siempre la misma operación y sacan unos datos de salida. ¿Que ocurre si quieres modificar los datos de un pixel con un programa? Entonces necesitas un Pixel Shader y la cantidad de efectos y la complejidad de estos dependerá de la potencia de estos por lo que la velocidad de renderizado pasa a no ser predecible. ¿Pero que ocurre cuando un efecto no lo puede realizar una GPU sin shaders? Desde el momento en que no lo podemos programar simple y llanamente no lo puede hacer.

¿Pero como se comparan los Pixel Shaders de la GPU de Xbox con el TEV de la de GameCube/Wii?

nv20-pixelshader

Este dibujo corresponde a la GPU de Xbox, tenemos que el sistema puede trabajar con 2 operandos de color (v0 y v1) por pixel que corresponde uno al color de entrada y el otro el valor el operando sobre el que queremos calcular. El proceso entero tarda unas cuatro etapas en total para poder realizar la modificación sobre el pixel.

¿Que hay de la unidad TEV de GameCube/Wii? Es muy similar, aunque con un cambio sustancial.

Captura de pantalla 2015-08-17 a las 13.40.21

El TEV de GameCube/Wii puede soportar hasta 15 etapas pero no nos podemos olvidar que cada etapa consume ciclos de reloj de la GPU, es decir, 15 etapas no significan casi cuatro veces la velocidad sino que podemos escribir shaders más largos sobre un mismo pixel.

Captura de pantalla 2015-08-17 a las 13.43.41

Pero las diferencias no terminan aquí, en el caso de GameCube/Wii se opera con las texturas desde la memoria embebida para ello. Esto significa que no hay una latencia para ir a buscar los datos a la memoria principal y pueden ser leídos directamente desde la cache de texturas por lo que el método de conseguir los datos cambia.

En Xbox si necesitamos el dato de un pixel entonces los datos tienen que hacer el viaje entero ya que el Pixel Shader no tiene ningún método de lectura y se lo ha de pedir al controlador de memoria de la GPU. En el caso de la GX GPU de GCN/Wii en la primera etapa podemos leer de la cache de texturas de forma directa y coger directamente el dato. Es decir, perdemos una etapa en el caso de la GX GPU para la lectura.

Pero en este caso estamos hablando de este juego:

doom3-xbox

Por lo que en el caso de GameCube/Wii deberíamos hacer un port, tenemos que los shaders en Xbox son de cuatro etapas a lo sumo pero que en GameCube/Wii entonces serían 5 por la etapa adicional de lectura. La velocidad de reloj en Xbox es de 233Mhz y la consola tiene 4 unidades de texturas con un Pixel Shader cada una por lo que:

  • 233 Mhz*4 Unidades de Texturas/4 Etapas por unidad= 233 Millones de pixeles tratados.

Gamecube y Wii tiene también 4 unidades de texturas, no obstante en un caso la velocidad es de 162 Mhz y en el otro de 243 Mhz, aunque el chip es el mismo:

  •  162 Mhz* 4 unidades de texturas/5 Etapas por unidad= 129,6 millones de pixeles tratados.
  • 243 Mhz* 4 unidades de texturas/5 Etapas por unidad= 194.4 millones de pixeles tratados.

Es decir, que incluso en este tema tanto GCN como Wii están en desventaja respecto a la primera Xbox.

Checa The Conduit, Silent hill, Super mario galaxy (por poner solo tres) y culturizate. El normal mapping en the conduit y Mario galaxy está hasta en la sopa.

Ah, que has hablado de efectos “fijos”.

Hostías, cuanto sabes, ves y diles los arquitectos de GPUs y creadores de juegos sobre la inutilidad de los shaders anda y lo tontos que son por haber incrementado la calidad visual gracias a estos. ¿Son esos tres juegos superiores técnicamente al Doom 3 de Xbox? Este…

conduit-2

scrn9

070908smg_scr33

Jameson

Yo te digo que le pongo una Xbox original corriendo sus mejores juegos y a muchos se os caen los argumentos. No solo por Doom 3 sino por otros juegos punteros de la consola, los cuales nunca los he visto superados técnicamente por ningún juego de Wii y mucho menos de GameCube.

Quinto.- Doom3 apareció en la magnifica consola XBOX y sabes que? estubo genial!
pero no compitió sola, compitió con el abanderado del GC, se llama Resident evil 4. y en mi opinión quedaron en tablas
RE 4 no tiene Normals, pero tiene bump en algunos momentos (mira de cerca con el riflle a las “momias” -esos que tienes que matarlos en puntos específicos-) pero los mundos en RE4 son mas detallados y abiertos y las cabezas de los enemigos se ven estupendas y no son “triangulares” como en doom 3 donde te vienen enemigos de a uno o de a dos, mientras que en RE4 te vienen de en siete en siete etc.

Lo que tiene Doom 3 no tiene RE4 y viceversa. muy parejos. (y regalandole puntos a Doom3) Y eso es generación pasada.
The Conduit de Wii le da un buen repaso a cada uno de los aspectos destacables de doom 3 (versión Xbox).
Que el arte no es tan bueno en Conduit? de acuerdo. pero de que estamos hablando de técnicos que te pintan sprites de florecitas o de decenas de enemigos en pantalla con todos los efectos aplicados en el mismo instante en mapas grandes y en texturas en alta resolución?

No te me vayas por los cerros que no solo de polígonos vive el hombre. ¿La diferencia? Resident Evil 4 hubiese sido posible en Xbox de manera mucho mejor que Gamecube, tienes suerte que la versión de Xbox no exista y la de PC sea un vulgar por de la de PS2.

RE4 con el nivel de GameCube y Wii se hubiese visto en Xbox e incluso mejor por la mayor cantidad de memoria y potencia gráfica de su GPU, Doom 3 por los motivos que he dicho antes no. ¿Por qué digo esto? Por lo general a nivel visual en los juegos multiplataforma Xbox barra el suelo no solo con PS2 sino también con GameCube.

Por otro lado el nivel artístico de The Conduit es el que es por la limitación de color de GCN/Wii, aparte de no tener un sistema de iluminación como el de Doom 3 por el hecho que la consola no lo puede emular por la falta de Vertex Shaders y del Stencil Buffer… Es que en el fondo estoy perdiendo el tiempo explicando obviedades, se ha de ser muy ciego para pensar que The Conduit técnicamente es superior a Doom 3, pero muy ciego eh.

Sexto y último.- Esa foto que tu pones de Doom3 es versión PC no versión XBOX y sabes que de una a la otra hay muuuucha diferencia. Al menos pudiste ser honesto y no sorprender con una foto falsa a los niños que no vieron en su momento Doom3 version xbox y se creen tus patrañas.

¿Viste como ni hizo falta nombrar Rebel Straike para ponerte en tu lugar pendejín?

¿A tu quien has puesto en tu lugar si se puede saber? Si en el fondo sois todos iguales, con un ego increíble pero incapaces de aportar nada… bubububu… es que ha puesto una imagen de la versión PC… bubububu… ¡Lerdo!

En ningún momento me has argumentado como es que el Doom 3 puede correr en GameCube, yo he dado argumentos suficientes y contrastados como para demostrar que no puede funcionar ni en su versión más paupérrima que es de la de Xbox. Bueno, que digo… si que puede funcionar gracias a esos geniales efectos fijos de la consola, ese resolución de color de 24 o 16 bits dependiendo del caso… puede funcionar con la siguiente versión…

2004115195826_78

Naah, sin exagerar. Creo que un buen ejemplo de lo que nos podríamos esperar en Gamecube/Wii sería a nivel visual algo así como el Doom Resurrection para iPhone, que apareció cuando estos no tenían una GPU que soportase shaders.

doom2 141669-doomscreena_386

En todo caso sigue estando por debajo de la versión Xbox.

En fin, esto es todo. La entrada la he hecho porque me lo han pedido pero esta clara cual es la realidad, discutir sobre ello más con las pruebas encima de la mesa no tiene sentido, yo lo que tenía que decir de este tema ya lo he dicho y hace tiempo que lo deje zanjado.

Anuncios