› Foros › Retro y descatalogado › Consolas clásicas
Duendeverde escribió:Voy a poner un ejemplo. Me acabo de terminar el rogue squadron de n64. El juego tiene 16 misiones y 3 de bonus que te dan por conseguir las medallas de las misiones. Algo parecido a los trofeos actuales.
El juego te lo puedes ventilar en 2h. El resto es rejugar y rejugar para sacar los trofeos. Sacar el oro no es nada fácil. Así aumentas la duración artificialmente.
El juego salió en PC y el instalador de gog me ocupa unos 50MB. ¿50MB por un juego en el que los cd-rom eran ya un estandar?. La siguiente versión de gamecube duraba más de 5h a todo trapo. Entonces ya usaban los mini dvd.
Te gastabas entre 10000 y 15000 pesetas por juego para encontrar bastantes juegos de una duración muy escasa. Que conste que a mí no me gustan los juegos con una duración infladísima, pero muchos en n64 ya eran cortos incluso en su época.
Señor Ventura escribió:Esto no sería posible en una psone/saturn... pero en una n64 si.
https://youtu.be/wgTLx2-rM1w?t=104
Duendeverde escribió:Pero pasaba lo siguiente. Los cartuchos los fabricaba nintendo e iban por encargo. a más capacidad, más caro. Encima nintendo cobraba más por royaltis que sony. Por eso un turok costaba 13000 pesetas e incluso algunos 15000 pesetas, mientras los de nintendo costaban 10000 pesetas. Por eso muchas compañías prefirieron adaptar los juegos al cartucho.
Duendeverde escribió:En cambio antes en psx, los juegos multi disco eran habituales. No sólo en rpg.
Duendeverde escribió:En snes o megadrive no tiene nada ver.
Duendeverde escribió:Juegos en 2d donde muchos escenarios eran sprites. N64 se orientó al 3d y esto requería de mucha más capacidad de almacenamiento. Que yo sepa en n64 no había juegos multicartucho para compensar en ciertos juegos.
Urian escribió:El problema es que Silicon Graphics convencio a Nintendo en pleno 1994, cuando se cerro el diseño general de la consola, de que era mejor colocar 4MB de RAM de serie antes que optar por un lector... ¿La predicción de SGI? Que la RAM en los años siguientes no bajaría de precio...
Urian escribió:Por cierto, en consolas anteriores los procesadores podían acceder directamente a la ROM a la misma velocidad que la RAM, en N64 no ocurre eso y el cartucho pierde esa ventaja, por no hablar de la enorme latencia colocada adrede en el Northbridge/Controlador de Memoria de la que Martin Hollins se dio cuenta y que SGI puso adrede para joder la máquina de Nintendo y que no se supiese que SGI vendia tecnología a sobreprecio. Por suerte en PC llegaron 3Dfx, Nvidia y... SGI acabo siendo historia.
Karaculo escribió:Yo estoy con el compi, para mi a el mario64 le faltan pantallas, y a los juegos de carreras les faltan carreras, no creo que fuera por tamaño de cartuchos, nintendo siempre ha sido muy racano con algunos juegos
EMaDeLoC escribió:@Señor Ventura Aaaah, ahora te entiendo. No no, te estás confundiendo de Killer Instinct. El arcade sacado en 1994 tenía un disco duro con los fondos prerenderizados divididos en fotogramas a lo largo de todo el escenario que se iban cargando según el movimiento del combate, lo que ofrece unos gráficos impresionantes para la época. Para la versión de N64 los gráficos son 3D y se generan en tiempo real. Eso hace que bajen de calidad pero a la vez ocupan muchísimo menos y permiten mucha más libertad de movimientos como zoom, paneos hacia arriba, etc.
Aviso de que en el siguiente vídeo emulan la N64, pero para hacerse una idea ya va bien.
El experimento que hizo radorn que he comentado antes es un ejemplo mucho mejor de la ventaja de carga de datos desde el cartucho.
Señor Ventura escribió:¿Cuanto puede direccionar la n64 en una rom?, ¿se llegó a comentar cuál sería su ancho de banda efectivo?, o realmente son 5 MB/s.
En la N64 no ocurre eso porque la RAM esta subida de prestaciones ya que en realidad trabaja más como memoria de video que como RAM de CPU de verdad. Ya que las mencionas, los 4MB de la RAM de la N64 se comportan como los 4MB memoria de texturas y los 2MB de buffer de vídeo de la primera 3Dfx Voodoo, un 2x1 en toda regla.
La velocidad de acceso a los cartuchos la dan los chip y estando sobre los 5MB/s es más que suficiente, ya que se podría llenar toda la RAM en 1 segundo, muchísimo mejor que los 10-15 segundos de media de la PS1. Y aunque no sea tan buena como la RAM, la velocidad de acceso a la ROM permite cargar muchos datos variados, como demostró Radorn en un vídeo que grabó en que sacaba un cartucho mientras jugaba al Mario 64: hilo_hilo-de-detalles-y-curiosidades-de-n64_2171497_s1200#p1745953764
En cuanto a la relación SGi con 3Dfx, Glide se basa en las librerias OpenGl creadas por SGi, y parte de los que diseñaron el RCP de la N64 fundaron ArtX que diseñaría el Flipper de Gamecube y fueron comprados por ATI. SGi creaba estaciones gráficas, no aceleradoras gráficas, pero en su trabajo se establecieron los cimientos de 3Dfx, ATI y demás compañías.
Urian escribió:Te habrás quedado agusto escribiendo tantas tonterías juntas.
Luego te respondo.
EMaDeLoC escribió:Señor Ventura escribió:¿Cuanto puede direccionar la n64 en una rom?, ¿se llegó a comentar cuál sería su ancho de banda efectivo?, o realmente son 5 MB/s.
Marshall hizo el 64drive con 256MB aunque creo que solo se pueden usar 240MB y el resto es para otras cosas. A mi no me quedó claro como se llegó a esa cifra.
En cuanto al ancho de banda, algunas pruebas sugerian que era más de 5MB/s, pero lo que he comentado antes, con esa cifra llenas toda la RAM en menos de un segundo, y siendo como era, y es, Nintendo de rácana, esas especificaciones le parecerian suficientes para cualquier clase de juego, ya que eliminan las pantallas de carga.
Exceptuando los quake y sus dichosas descompresiones...
EMaDeLoC escribió:Urian escribió:Te habrás quedado agusto escribiendo tantas tonterías juntas.
Luego te respondo.
Pues espero que sea buena respuesta, porque tengo un datasheet de una rambus con una latencia del copón que desmiente cualquier fallo con el controlador de memoria y la achaca a la naturaleza de la propia rambus. ¿Y por qué la eligieron? Relativamente barata de conseguir e implementar, con un ancho de banda altísimo (siempre que le pidieras bloques grandes) y facilmente expandible.
Por cierto, sigo tu blog, muy interesante.
Urian escribió:El problema no esta en la RAMBUS sino en el Northbridge dentro del RCP.
Hiroshi Yamauchi estaba obsesionado en sacar la consola por 25.000 yenes como mucho y cualquier sobrecoste no era bienvenido dentro de Nintendo.
https://disruptiveludens.wordpress.com/2018/08/25/graficos-retro-nintendo64/
strider_hiryu escribió:Una N64 con CD hubiese sido interesante, pero la verdad es que en un cartucho podias hacer juegos bastante completos. Los CD's los terminaban llenando con videos y tracks de audio
EMaDeLoC escribió:Urian escribió:El problema no esta en la RAMBUS sino en el Northbridge dentro del RCP.
Aquí un diagrama del tiempo de acceso de un chip Rambus idéntico a los que usaban las primeras versiones de N64, las que tenían dos chips de 2MB:
(fuente)
Como se puede ver, desde que finaliza la solicitud de lectura hasta que se pueden leer datos pasan 7 ciclos de reloj. A 3'33ns por ciclo significa una latencia de 23'31ns, pero ese ciclo de reloj corresponde 300MHz y el reloj de la RAM de la N64 va a 250MHz, lo que son 4ns de ciclo y una latencia de 28ns por cada operación de lectura. Esperar 7 o 9 ciclos es una autentica barbaridad que por suerte se compensa debido a la alta velocidad de transmisión de los datos, dos bytes por ciclo, que en datos grandes nos dan las cifras teóricas de 500MB/s.
Pero el problema es que al rasterizar el RCP no va a usar datos grandes, sino muchos fragmentos pequeños.
Por ejemplo el RCP rasteriza este triángulo:
El triángulo queda dividido en 4 líneas pintadas de verde. Estas líneas no pueden escribirse en el framebuffer en un solo bloque de datos, hay que hacer un bloque por cada línea. Eso significa 4 peticiones de escritura. Curiosamente la latencia de la escritura era mucho menor que en la lectura, pero al activar el z-buffer se tenía que leer la posición del framebuffer para poder comparar los píxeles y entonces la enorme latencia en lectura lastraba todo el trabajo. Por eso al desactivar el z-buffer World Driver Championship dispara sus polígonos por segundo y por eso también algunos juegos tienen menos líneas y usan triángulos muy anchos para realizar el máximo de transmisión de datos con el menor número de operaciones de memoria (captura de Conker64):
De esta forma se ahorraban varias operaciones de memoria y mejorar los resultados finales.
Por tanto el problema no era el controlador de memoria RAM, sino la memoria en sí.
Parece mala decisión usar rambus con todo lo explicado, pero para el año 94/95 era lo más puntero que había y el coste era razonable. Y que conste Urian que lo del coste es una razón que tú mismo das en tu blog:Hiroshi Yamauchi estaba obsesionado en sacar la consola por 25.000 yenes como mucho y cualquier sobrecoste no era bienvenido dentro de Nintendo.
https://disruptiveludens.wordpress.com/2018/08/25/graficos-retro-nintendo64/
No era una mala memoria, la usaba la propia SGi y también en tarjetas gráficas de PC (los dos chips de la derecha): http://vintage3d.org/images/cirrus/5464.jpg. El problema era llevarla hasta el límite de trabajo como se hace en la N64 donde se come todo el marrón que en otros sistemas se reparten en 3 o 4 memorias RAM dedicadas.
Y bueno, si vas a usar en tus argumentos la batallita de Martin Hollis y sus icosaedros, solo recordar que el propio Martin dice que se resolvió el fallo, no que este estuviese a propósito puesto por SGi. Esa parte te la inventas tú solito.
Y la verdad, esa historia de que un tío a la primera haga un código perfecto y completamente optimizado de una máquina aún en prototipado me suena muy rara, incluso aunque se trate de una eminencia de Rare...
Urian escribió:El mal rendimiento de la memoria no puedes resolverlo de ninguna manera, porque el problema no esta en la CPU ni en la RAM. Si aíslas la RAM no verás el problema, si lo haces con la CPU tampoco, el problema esta en el controlador de memoria y el Northbridge que precisamente son piezas que no son programables y no ejecutan ningún software. ¿El problema? pues que el Northbridge+Controlador de Memoria le añaden una latencia a las instrucciones de la CPU haciendo que su rendimiento sea realmente pauperrimo en comparación como debería ser.
Urian escribió:Eso fue hecho adrede por Silicon Graphics porque no querían que se supiese que un sistema doméstico hubiese rendido igual que sus estaciones de trabajo que costaban 100 veces más a la hora de renderizar escenas en 3D a tiempo real. Y no era la única, Lockhead Martin con Sega y el Model 3 iba diciendo que eso era imposible en un sistema con la misma portencia por menos de $20.000 y un par de años o tres de años después salía Dreamcast a ¡$200! por no hablar del boom de las tarjetas 3D en PC.
Urian escribió:Además, no puedes cablear directamente la RDRAM de N64 que es de 8 bits (+1 de paridad) a 500Mhz a la CPU de N64 que tiene un bus de 62.5 Mhz y de 32 bits. Necesitas una pieza que tome las 8 lineas a 500Mhz y las convierta en 64 lineas de 62.5 Mhz, 32 de ellas se las queda el RCP y 32 de ellas van a los pines de datos de la CPU. Esto que puede parecer "exótico" era la forma de funcionar de las memorias de RAMBUS en la época que necesitaban un controlador de memoria, solo que SGI lo que hizo fue crear uno con un rendimiento pésimo adrede.
Urian escribió:Yo tengo una hipótesis del motivo de la cagada de SGI... En la documentación de la RAMBUS dice:
"33 ns from start of read request to first byte; 1.67 ns per byte thereafter"
Es decir, si haces petición a una cadena de bytes el primero tarda unos 33ns en dar su dato pero luego la cosa va 20 veces más rápida, pues solo tienes que hacer que el controlador de memoria pida los datos no en cadena sino en cuentagotas y... Tienes a la CPU bien capada en rendimiento. ¡Y esto no se puede solventar de ninguna manera por software!
Señor Ventura escribió:Básicamente, lo peor de la n64 es el ancho del bus de la memoria, el rebaje que sufrió la cpu y el rcp, y por lo que comentáis, parece que además configuraron el rcp para que gestionarse mal los accesos a la memoria. Luego está la caché de 4KB, y a lo mejor alguna que otra cosa por ahí que se me escape.
Señor Ventura escribió:¿Cuanta potencia diríais que se podría estar perdiendo?.
Señor Ventura escribió:En el mejor de los escenarios posibles, si todo el proceso de planificación del hardware hubiese optado por la solución más optimizada, ¿a que hardware se habría asemejado en cuanto a gráficos, placas árcade y gráficas de pc incluídas?.
Urian escribió:Lo que es un sinsentido es que existiendo la corrección de perspectiva que permite utilizar poligonos con un area relativamente grande tengamos solo 4KB como cache de texturas, que vale que es el doble que la PlayStation pero el sistema de Sony utiliza texturizado afín, sin corrección de perspectiva y por tanto compone la escena con polígonos de area más pequeña.
Es por ello que la comparación de poligonos por segundo entre ambos sistemas es absurda. N64 puede mover las mismas texturas que PSX sin problemas, además con Mip Maps de cada una pero va a ir peor pq la tasa de poligonos es peor pero eso si haces un port directo, si adaptas la geometria entonces... Pero si tu juego requiere grandes texturas en N64 tendras un problema por los 4KB de cache, por lo que tendrás que subdivivir en texturas más pequeñas y por tanto aumentar la tasa de poligonos.