› Foros › Retro y descatalogado › Consolas clásicas
Conker64 escribió:juegos de luces, si se van a usar muchas capas simultaneas y algunas a pantalla completa lo que más me preocuparía es por mirar en cuales se puede desactivar el Z-Buffer, como hacen Goldeneye y Perfect Dark por ejemplo.
Señor Ventura escribió:Si sustituyes una ram por otra físicamente exactamente igual, pero con mejores latencias, para los programas es exactamente igual, pero para el hardware además mejora el rendimiento.
¿Puede llegar a acelerar juegos?, o solo aumentar tasa de frames... pues depende del programa.
Pero en si, incompatibilidad de hardware, absolutamente cero mientras respetes el tipo de memoria, su disposición física, etc.
Hablamos de la ram de la n64 con otra exactamente igual, pero que siempre ofrezca tasas de transferencia cercanas a 500MB/s tanto con bloques grandes de datos, como con bloques pequeños de datos.
Pues oye, igual te casca un 25% mas de rendimiento, lo suficiente para que los juegos bloqueados a 30fps nunca bajen a 20, o 15fps. Ya es algo.
Me da que hasta me quedo corto.
AxelStone escribió:@riffraff Me he perdido un poco en el hilo de todo lo que estaís debatiendo, pero me ha llamado mucho la atención de esos videos que pones sobre las invocaciones en Zelda. Efectivamente para tratarse de un título de peso, las invocaciones son realmente casposas.
No sé lo que juega en contra, si el cartucho, los límites poligonales, la capacidad de texturas... Sea lo que sea se ve terriblemente...casposo.
Conker64 escribió:@riffraff
Sí, el additive blending no se usaría de forma comercial, solo en la scene si sabes lo que haces.
dirtymagic escribió:@SuperPadLand
Es con el motor del Zelda OoT, 20 Fps posiblemente en el punto más alejado 15 fps, 2 cycle, cutscene y geometría sin colisión, cuando la cámara está lo más alejada y se ve el escenario entero son 7800 triángulos, el backculling, le rebajará un poco pero tampoco creo que mucho por la perspectiva, tiene mucho por optimizar, que es en lo que estoy trabajando, LOD en CADA sector , Torre y reactor y Cull manual, para evitar renderiza zonas que tapan otras estructuras y pasar las superficies que se puedan a 1 cycle.
Salud.
Conker64 escribió:Otra opción es usar la CPU, gracias al acceso del framebuffer, en porciones que permitan trabajar con sus 8KB de datos y subir el resultado a TMEM como textura para dibujar por hardware, podría servir, para cosas pequeñas, no es una idea loca, es justo lo que hacía para este efecto de deformación de la llama en el fondo, a 60fps sin problema:
Conker64 escribió:@Señor Ventura
La CPU tiene 8KB de cache para datos, puedes ahorrar lecturas en la RAM si todo lo que necesitas hacer cabe dentro, como tener las 2 muestras, una origen y otra de destino.
Es probable que también puedas saltarte el paso de subir a TMEM y de ahí dibujar, volcando el resultado de la cache o copiando después a la zona que corresponde, ahora no recuerdo porqué decidí hacerlo de la primera manera, pero al final sería buscar la solución que más le guste a la consola.
PABEOL escribió:Bueno, pues queda claro que la Nintendo 64 podía hacer cualquier juego de la PSX (quitando escenas de vídeo y audio de calidad CD) y viceversa (bajando los polígonos).
Y vamos a dar por bueno que Square, pese a sus declaraciones, cambió la N64 por la PSX por dinero.
Hasta aquí todo bien, pero... ¿cómo se explica entonces que para la N64 solo salieran 8 RPG y para la PSX, 421? ¿Compró Sony a todos o había algo más?
[People who play RPGs are] “depressed gamers who like to sit alone in their dark rooms and play slow games.”
– Hiroshi Yamauchi in a 1999 interview
PABEOL escribió:Bueno, pues queda claro que la Nintendo 64 podía hacer cualquier juego de la PSX (quitando escenas de vídeo y audio de calidad CD) y viceversa (bajando los polígonos).
Misscelan escribió:Lo que en teoría podría ser en la práctica es difícilmente realizable.
La CPU de N64 es la misma arquitectura que la PSX (MIPS), y es de hecho 3 veces más potente y el RSP es equivalente al GTE pero el primero es programable. Pero dada la arquitectura de N64, en un juego normal la CPU está constantemente ociosa o sin posibilidad de acceder a datos. Ten en cuenta que la PSX puede lanzar el raster y mientras se está pintando todo puedes dejar que la CPU trabaje libremente en otra cosa, en la N64 mientras el raster pinta puede estar bloqueando el acceso a memoria de la CPU constantemente.
La N64 intenta mitigar varios de esos problemas con pequeñas memorias locales bastante más grandes que PSX (8k de cache de datos vs 1k, 16k de código vs 4k, 4k de textura vs 2k, +4k para el RSP), pero dado como prefiere los datos el RDP es bastante fácil salirse constantemente.
Para la transformación y proyección de vértices, aunque la PSX puede hacer proyecciones de 3 vértices en 21 ciclos de su reloj, en teoría la N64 es más capaz, pero otra vez en la práctica las cifras no son tan dispares, aparte del constante hándicap del acceso a memoria, la N64 delega a la CPU (normalmente al RSP) un trabajo que comúnmente se encarga al raster: el cálculo de los incrementos de un triángulo (esta parte en PSX la hace la GPU) y esto no es nada trivial, ahora mismo el código que uso para calcular los incrementos lleva ya varios intentos de optimización por la comunidad de Libdragon y está ahora mismo en unos 200 ciclos por triángulo (a esos ciclos habría que sumar los de la proyección normal). Siempre se pueden hacer optimizaciones específicas para cada proyecto pero eso da una idea del peso de calcular eso.
La diferencia de texturas no es tal, de hecho, es al revés la PSX puede usar texturas de 256x256. Para alguna demo técnica puede tener su uso, pero para escenarios reales eso da un poco igual en las dos consolas.
La desactivación de efectos para que parezca una PSX es una optimización que depende mucho del proyecto y en algunos casos hasta es contraproducente. Por ejemplo, en mi caso, con una escena sin Zbuffer tengo 20fps, si activo el Zbuffer con los polígonos de atrás para adelante tengo -3 frames, si los activo con los polígonos de adelante para atrás tengo +1.
Pero hay juegos documentados que tienen mejoras de rendimiento al desactivar el Zbuffer, el impacto depende mucho de cada proyecto.
Y sobre el streaming ya se habló antes, la n64 tiene lío de sobra con lo que tiene para aprovechar la velocidad extra que te da la ROM, incluso para la PSX el CD puede servir geometría y texturas más rápido de lo que un juego puede consumir. Accesos pequeño aleatorios a archivos, sí, eso le viene mejor a la N64, pero más que porque no entre en la RAM, es porque con los accesos pequeños a RAM en la N64 pierdes mucha eficiencia y además cargas el bus afectando a los demás componentes.
Aún así, es un escenario ideal donde el RDP moleste muy poco a la CPU puedes alcanzar 200000 polys/sec, creo que Kaze tenía una ejemplo de eso (una pared de una montaña o algo así). Pero usando la misma textura para todos, a 320x240, polígonos muy pequeños, con 0 overdraw (ningún polígono detrás otros), todos los polígonos mirando a la cámara para que no tengas que hacer back fase culling. sin ningún tipo de ordenamiento de polígonos, sin que la CPU haga ninguna otra cosa como colisiones, etc…
A nadie le ha dado por hacer un demo así en PSX, no creo que llegue a esas cifras, pero teniendo en cuenta que Spyro esta sobre los 100k triángulos por segundo a 512x240. Si bajas 320x240 y desactivas todo pues lo mismo te acercas bastante.
En términos de potencia bruta creo que la N64 es la más potente de esa generación, pero ni siquiera veo a la Saturn muy lejos.
Luego la N64 ofrece otras cosas que no son potencia bruta que habrían sido muy bienvenidas en otras plataformas. Como la corrección de perspectiva para poder poner polígonos gigantes cerca de la pantalla, la precisión subpíxel del raster para que la geometría parezca más solida, o el blending por hardware de los mipmaps.
007 El Mundo nunca es suficiente – 512×240
007: Tomorrow Never Dies – 512×240
40 Winks – 512X240
102 Dalmatas: Cachorros al recate – 512X240
A Sangre Fría – 512X240
Akuji the Heartless – 512×240
Alien Resurrection – 364X240
Battle Arena Toshinden – 640×240
Battle Arena Toshinden 2 – 512×240
Battle Arena Toshinden 3 – 512×240
Battle Arena Toshinden 4 – 640×240
Bloody Roar – 320×240-60fps
Bloody Roar 2: Bringer of the New Age – 512×480-60fps
Bugs Bunny: Perdido en el Tiempo – 512X240
Bushido Blade – 640×240
Bushido Blade 2 – 640×240
C-12: Resistencia Final – 512X240
Colin McRae Rally – 512×240
Colin McRae Rally 2.0 – 512×240
Colony Wars – 512×240
Colony Wars 2 – 512X240
Colony Wars 3: El Sol rojo – 512×240
Crash Bandicoot – 512×240
Crash Bandicoot 2 – 512X240
Crash Bandicoot 3 Warped – 512X240
Crash Bash – 512×240
Crash Team Racing – 512×240
Croc – 512X240
Driver – 512×240
Einhänder – 320×240-60fps
Exhumed – 320×240-60fps (60fps variables)
iS: Internal Section – 640×480-60fps
Legacy of Kain: Soul Reaver – 512×240
Medal of Honor – 512×240
Medal of Honor: Underground – 512×240
MediEvil – 512×240
MediEvil 2 – 512×240
Street Fighter EX Plus Alpha- 512×240-60fps
Tobal no.1 – 640×480-60fps
Tobal no.2 – 512×480-60fps
SuperPadLand escribió:[
Pero claro, la pregunta del millón es ¿Por qué apostar por estas resoluciones y no hacer como N64 e irse a 256x224 para mejorar la calidad 3D? No iba a alcanzar tampoco la calidad de N64, pero parece como contraproducente subir resoluciones en este caso ¿Le salía gratis o más fácil a PS1 subir la resolución que no mejorar la calidad gráfica aunque fuera a 224p? Supongo que los tiros van por ahí, porque en esa gen las revistas no indicaban nada de resoluciones a las que iban los juegos así que como marketing daba igual. Pero incluso sin mejorar la calidad 3D, no era mejor un Driver a 320x240 o 256x224 y con mejor rendimiento?.
Increíblemente, los equipos de LucasArts estaban trabajando en un juego similar llamado Star Wars: Starfighter, pero no estaban al tanto del desarrollo de Rogue Leader. Cuando se enteraron, la fricción resultante puso en peligro todo el proyecto de Rogue Leader, como recuerda Julian. “Cuando se reprodujo el legendario tráiler en la presentación de GameCube, la mayoría de las personas en LucasArts se quedaron en shock”, explica. “Intentaron cancelar Rogue Leader para evitar que el juego eclipsara a Starfighter, y casi lo lograron debido a que Microsoft ofreció incentivos a LucasArts para trasladar Rogue Leader a la Xbox. Fueron cuatro desagradables meses de luchas políticas con nosotros en Factor 5, como socio tecnológico de Nintendo, atrapados en medio.”
Señor Ventura escribió:Es que no vas a ver 12 millones de polígonos en xbox con bump mapping y ese número de luces simultáneas (ya sea por vértice, o por pixel).
Julian no es ningún inutil, puede que no transladase completamente el rogue squadron a las particularidades de la xbox, pero doom 3 y riddick tienen un poly count bajo por un motivo (cuello de botella del bus, ineficiencia de sus memorias que lo desaprovecha aún mas, etc)... y 8 luces son dos pasos completitos, eso en gc no es así.
Ahora, aún con 12fps, el resultado visual debía ser mejor. Mejores texturas, mas nítidas, mejor bump mapping, mejor iluminación, audio 5.1 real, y no ese dolby 4.0 interpolado para sacar 5.1 de alguna manera...
Ya digo, me arrepiento muchísimo de no haber guardado ese email, daba unos cuantos detalles muy interesantes.
gynion escribió:Entiendo que si a ti (o al bloguero) el contenido de FFVII no te gusta o te parece adorno puedas quitarlo como si nada, y que consideres que no se pierde gran cosa; es más, igual hasta te da igual que el juego entero no esté en N64, si tus gustos van por otro lado, cosa que desconozco, pero de momento ya sé que gran parte del juego lo esquilmarías sin dramas. En cambio, tanto los creadores de ese juego (por la entrevista, digo), como los jugadores a los que nos gusta, no pensamos igual. Ahora mismo no te puedo decir qué recortes toleraría yo en juegos que o bien no me gustan, o no me acaban de gustar; pero vamos, te puedes imaginar que igual que tú; serían varios y sin dramas
gynion escribió:Sobre lo del 64DD, pues si la prioridad de Nintendo era mantener el precio de la consola, y, como sugieres, situaron al lector CD como el factor más peligroso contra ese propósito, para acabar teniendo que tirar del 64DD para un juego que al fin y al cabo iba a ser exclusivo de N64 y podía ser cómo ellos quisieran, solo puedo pensar dos cosas: vaya cagada; y dos, si un juego se te queda corto, planteándolo desde cero, es que sí o sí necesitas el CD, igual que PC Engine lo necesitó (en realidad, solo necesitarían algo más tamaño que una hucard, pero no tuvieron miedo en usar el CD, que es a lo que vamos), para juegos de la generación anterior que ni siquiera eran de Neo-Geo, sino de una consola de 8 bits.
Señor Ventura escribió:Si sustituyes una ram por otra físicamente exactamente igual, pero con mejores latencias, para los programas es exactamente igual, pero para el hardware además mejora el rendimiento.
¿Puede llegar a acelerar juegos?, o solo aumentar tasa de frames... pues depende del programa.
Pero en si, incompatibilidad de hardware, absolutamente cero mientras respetes el tipo de memoria, su disposición física, etc.
Hablamos de la ram de la n64 con otra exactamente igual, pero que siempre ofrezca tasas de transferencia cercanas a 500MB/s tanto con bloques grandes de datos, como con bloques pequeños de datos.
Pues oye, igual te casca un 25% mas de rendimiento, lo suficiente para que los juegos bloqueados a 30fps nunca bajen a 20, o 15fps. Ya es algo.
Me da que hasta me quedo corto.
SuperPadLand escribió:Pero, la misma memoria con un overclock del 10 o 20%? Eso podría funcionar no?
Señor Ventura escribió:En realidad... ¿la misma memoria pero que no varíe la tasa de transferencia con bloques grandes como con bloques pequeños?.
Misma latencia, mismo tipo de memoria, pero siempre transfiriendo a 500MB/s hagas lo que hagas...
EMaDeLoC escribió:El problema con la N64 es que tiene dos relojes que rigen todo. Uno para la CPU, que acelera el gameplay de los juegos sin mejorar framerate, y el otro que acelera RCP y RAM pero descoloca la salida de vídeo y por tanto se pierde imagen.Señor Ventura escribió:En realidad... ¿la misma memoria pero que no varíe la tasa de transferencia con bloques grandes como con bloques pequeños?.
Misma latencia, mismo tipo de memoria, pero siempre transfiriendo a 500MB/s hagas lo que hagas...
Realmente siempre se está transfiriendo los datos a 500MB/s sean paquetes grandes o pequeños. El problema es que también la latencia es la misma con independencia del tamaño del paquete, 40 nanosegundos. Si se piden 256 bytes de datos, el paquete más grande que maneja la RDRAM, se tarda 40ns de latencia más 512ns de datos. Si se piden 4 bytes, el mínimo, se tarda 40ns de latencia y 8ns de datos. Si hacemos cuentas, en lo que se tarda en transmitir un paquete grande se pueden enviar 11'5 paquetes de los más pequeños, resultando en transmitir 46 bytes frente a los 256 bytes. La tranferencia de datos es la misma, la latencia es la misma, pero al hacerse varios paquetes pequeños, se multiplican las latencias, alargandose el tiempo en que se tranfieren datos pequeños y por tanto bajando la transferencia de datos efectiva.
La solución sin tocar nada es estructurar los datos en paquetes grandes para minimizar las perdidas de transferencia por las latencias. Siendo el máximo 256bytes, no es difícil, pero el problema con N64 es que muchos datos no llegan a ese tamaño y de hecho son muy pequeños. Creo, si no me equivoco, que las comparaciones de z-buffer se hacen pixel a pixel y son paquetes mínimos, lo que significa estar con la tasa de transferencia al mínimo, unos 90MB/s.
Trucos así a lo rápido que se me ocurren para optimizar la RAM con los gráficos:
- Poner los polígonos lo más horizontal posible (algún juego ya lo hace)
- Texturas de 4KB, o de 2KB con paleta y que todas compartan paleta (creo que son 256 colores, con algo de estilo es suficiente)
- No usar texturas, simplemente pintar vertices, para minimizar las lecturas. Juegos de primera hornada ya lo hacen
- Organizar los datos que necesite la CPU en paquetes de 256bytes y que así se transfieran rápido
- Ver vídeos de Kaze Emunar
EMaDeLoC escribió:Por mi parte no es que el FFVII no me guste, es que no me llama. Ya jugué al VIII y dejé el IX a medias, y del VII me he comido ya no se cuantos spoilers super importantes, así que no me apetece tirarme 30 o 40 horas de tedioso combate por turnos. Y digo esto sin desmerecer que será un juegazo y que tiene su lugar en la historia del videojuego.
Del blogero no sé, pero creo que se lo habrá jugado y le gustará.
EMaDeLoC escribió:El caso sobre lo que cuentas de la historia y perder cosas. El juego que más me impactó por como se cuenta la historia es Max Payne. No es ningún alarde técnico, pero el rollo cine negro con los comics y tal está genial. Si ahora el juego se redujerá al mínimo sin comics ni voces y fuese solo párrafos de texto, pues evidentemente pierde bastante de esa ambientación y sería un bajón.
Ahora bien, lo fundamental: sería un bajón porque ya me conozco la historia de una manera.
Si hiciesen un remake del juego y sustituyesen los comics, por escenas brutales y fieles que mejorasen mucho esa sensación de cine negro etc, etc. Pues eso sería un subidón, comparado con el juego original.
EMaDeLoC escribió:La cuestión aquí es que por supuesto que habiendo salido el FFVII en 3 CDs cualquier port a N64 con algún sacrificio va a ser "inaceptable" para los fans. Pero si el caso fuese al reves, con un FFVII en N64 cambiando FMV por cinemáticas del motor del juego, menos variedad de escenarios, tal vez una o dos horas menos de juego por lo que sea, etc, pero que lograse mantener tanto la parte emotiva de la historia como la parte entretenida del gameplay y consiguiese complacer a los fans como la versión de PS1... En ese mundo paralelo un port de FFVII a PS1 con algunos extras evidentemente sería bien recibido, pero seguiría siendo el mismo juego.
El caso es que si Square hizo FFVI y anteriores en SNES y con cartucho y la gente alaba la historia y tal... Ese hipotético FFVII en N64 no debería ser muy diferente, pero aprovechando el 3D.
EMaDeLoC escribió:Esto es volver a lo que dije antes: de quedarse Square con Nintendo, el FFVII se habría diseñado de otra manera. De hecho en la entrevista aseguran que no sabian si situar el juego en Nueva York o algo así cuando aún estaban en Nintendo, y luego te dicen que siempre tenian en mente el CD... Sí, claro, no sabías qué hacer, pero ya sabías como hacerlo en la competencia... Es una de tantas por la que esa entrevista me parece un lavado de cara para ellos y ensuciar a Nintendo de paso.
Estoy seguro de que en Square sabian perfectamente las prestaciones de la nueva consola y estaban adaptadonse a usar un cartucho o diskette y el 3D. No estarian aspirando a más de lo que las especificaciones le permitian porque podrán ser muchas cosas, pero no eran, ni son, incompetentes en su trabajo. Es más, para ese fin compraron las estaciones Indy, para poder empezar a diseñar los juegos en N64 y hasta hicieron una demo de un combate con gráficos pre-renderizados.
Pero como dije, la N64 sufría continuos retrasos, el 64DD tenía una fecha indefinida de lanzamiento y los únicos ingresos de Square eran los juegos que salían en una SNES que ya estaba de capa caida. Hicieron lo que tuiveron que hacer para aguantar empresarialmente y se pasaron a Sony. Y no les culpo por ello.
ziu escribió:riffraff escribió:Ostras! Podías ver videoCds y escuchar CDs, y no lo aprobecharon para juegos?
¿Quizás con un. Everdrive moderno se pueda tener un CD en la N64 con cargas rápidas y q la roms lo aprovechen para meter el audiocd o texturas con más calidad?
Señor Ventura escribió:P.D: He visto un vídeo de kaze emanuar enseñando un ejemplo a 300 mil polígonos por segundo xD
https://youtu.be/GC_jLsxZ7nw?t=6
dirtymagic escribió:Las mejoras de Kaze en el Mario 64, entre muchas era que conseguía meter todo el código en la caché de la CPU
Misscelan escribió:darle color através del coloreado de vértices, podría ser la misma textura para la hierba y la pared de una montaña y luego colorear los vértices de uno en verde y del otro en marrón. Esto no sé si me suena que lo usó Rare en algún proyecto.
riffraff escribió:Misscelan escribió:darle color através del coloreado de vértices, podría ser la misma textura para la hierba y la pared de una montaña y luego colorear los vértices de uno en verde y del otro en marrón. Esto no sé si me suena que lo usó Rare en algún proyecto.
Goldeneye por ejemplo usaba mucho esa técnica:
https://www.emutalk.net/threads/goldeneye-007.39165/post-366608
https://www.reddit.com/r/gamedev/comments/rhto3m/comment/hoszbtf/
Señor Ventura escribió:¿Sería técnicamente posible enviar varios paquetes pequeños dentro de uno grande?... es decir, si fuese así ya se habría hecho, pero es la primera idea que te surge a la mente, ¿cual es el problema en este caso?.
EMaDeLoC escribió:La solución sin tocar nada es estructurar los datos en paquetes grandes para minimizar las perdidas de transferencia por las latencias.
ziu escribió:Tengo curiosidad si se podrá meter un expansión pack superior a 4mb
ziu escribió:
Ostras! Podías ver videoCds y escuchar CDs, y no lo aprobecharon para juegos?
¿Quizás con un. Everdrive moderno se pueda tener un CD en la N64 con cargas rápidas y q la roms lo aprovechen para meter el audiocd o texturas con más calidad?