› Foros › Retro y descatalogado › Consolas clásicas
Sexy MotherFucker escribió:@Calculinho no me he enfadado, es sólo para que a la próxima @Dio_Brand reflexione antes de cargar contra alguien frontalmente. El chaval me cae de puta madre, y por eso me he molestado en explicarle mi punto. Si me hubiese caído mal o algo, directamente le ignoro
Calculinho escribió:@Señor Ventura yo 700k a 8fps.
Dio_Brand escribió:siempre pensé que renunciar a ese efecto en n64 iba a resultar en temblequismo poligonal agudo
Sexy MotherFucker escribió:Y por eso si estuviésemos hablando de la Ps2 diría justo lo CONTRARIO, ya que este sistema sufre de un sobredibujado galopante, necesitando buffers de profundidad bien medidos como el comer. Si estuviese hablando de la Dreamcast diría que no necesita nada, pero no por nada, sino porque es un tile-render, etc.
Calculinho escribió:Aprovecho para preguntar, especialmente a @radorn, si sabemos que el Z-buffering por hardware de la consola usándolo mal lastra tanto el framerate y que PSX lo usaba por software para determinadas cosas. Teniendo en cuenta que en fuerza bruta de CPU N64 es superior ¿No ganaría más implementándolo directamente por software y así descargando el ancho de banda de la RAM para otras cosas?
Sexy MotherFucker escribió:- Anti Aliasing: coste de procesador 0 para la N64 creo recordar, pero imagino que consume espacio en RAM, ¿no?
BMBx64 escribió:@Sexy MotherFucker
A ver.. en N64 se puede configurar la lógica del z-buffer y hay 2 modos, por pixel y por primitiva.
Se crea un buffer del tamaño de la pantalla, que no es más que un array de ancho*alto con información Z de cada pixel, se va actualizando a medida que se van pintando los triángulos o rectángulos para su correcto posicionamiento, es decir solo en los pixeles que quedan por encima.
Se usa precisión de 16 bits, en un mapa tridimensional se puede situar Z de 0 a 65535, pero no solo ésto, el z-buffer ocupa en RAM lo mismo que el framebuffer y es más, si aumentamos la resolución el número de cálculos también aumenta proporcionalmente, porque el mapa a comprobar es más grande.
La diferencia por primitiva y por pixel es que por primitiva el array se llena de un valor Z que se le pasa como parámetro, lo cual ahorra cálculos y es mucho más rápido, vendría a ser los elementos 2D en un mundo 3D, carteles, arboles, público de cartón .. en cambio por pixel necesita sacar el cálculo de los vértices para trazar la posición exacta.
Funciona como el framebuffer, hay que limpiarlo en cada frame.
En cuanto al AA hay varios modos, uno de ellos no conoce información y lo único que hace es aplicar el algoritmo de filtrado a toda la pantalla, éste es el barato y el que emborrona la imagen, no le cuesta prácticamente nada.
Ahora si quieres el AA que solo suaviza contornos y siluetas, la consola necesita saber datos de antemano y esos datos los recoge del z-buffer, así que ese es el coste.
Por otro lado el z-buffer se puede usar para culling y ahí está el verdadero secreto si se hubiera utilizado bien, leyendo ese array puedes encontrar "paredes", saber cual es su posición espacial y descartar objetos sin tener que montar un código que maneje todo ésto.
La otra utilidad es que ante un display list enorme, el z-buffer puede ser más rápido, lo cual requeriría mostrar una buena cifra de polígonos en pantalla, no los 4000 por frame que se llevaban en la época.
--
Los efectos que requieran cycle2 necesitan el doble de tiempo que cycle1, filtrar texturas es rápido, en 2D no hay diferencia de velocidad, lo mismo pasa al usar o no transparencias, parece que parte del coste ya viene incluido al pintar en 1cycle con respecto a copy, pero ésto seria mejor analizarlo en condiciones 3D reales.
Corrección de perspectiva tiene coste, pero razonable.
--
Los tembleques de PSX:
- No tiene FPU para el cálculo de coma flotante, trabaja con enteros (baja precisión)
- La GPU no puede pintar resultados intermedios a precisión sub-pixel
- No tiene corrección de perspectiva
radorn escribió:@dirtymagic Mip-mapping por si solo PODRÍA ahorrar fillrate, pero al ser tri-linear mip-map interpolation, realmente se está haciendo un fundido entre 2 mipmaps diferentes, y eso no ahorra nada, si no todo lo contrario xD.
La cuestion es que, para hacer mip-mapping, sin una buena interpolacion, es mejor comerse el aliasing que los mip-maps tratan de evitar, porque, si no, te quedan un monton de bandas cantosisimas donde el renderer pasa de un mipmap al siguiente.
Lo de las texturas que dices se supongo que se puede hacer, desde luego, y hasta creo que el GoldenEye lo hace para los grandes tallados murales de la fase extra del templo azteca. Pero claro, no puedes usar texturas monocromaticas y coloreado por vertices para TODO. Para muchas cosas, hasta diría que la mayoría, necesitas texturas a color... Si no acabarías con un esquema de color a lo ZX Spectrum, donde los objetos tenian que ser de un solo color + negro.
Calculinho escribió:@Señor Ventura no me pegues, pero a mi me parece que gráficamente ya es mejor el WDC de N64 que el Daytona. Tema aparte es que en el polycount no
EMaDeLoC escribió:@Señor Ventura @Calculinho
Siendo optimistas, veo más posible un port de la versión de Saturn.
https://youtu.be/UHZvMCzlQKc?t=2m26s
Tiene un polycount que puede mover la N64 y no hay que adaptar muchas texturas. Se vería muy beneficiado de filtros, transparencias e incluso de niebla para disimular el popping. No costaría mucho a un veterano de la scene conseguir 25-30fps estables.
El mayor problema es la música. O bien alguien la recompone a MIDI + samples o se consigue una compresión razonable en coste de tamaño y proceso, pero sería más complicado de desarrollar.
Sexy MotherFucker escribió:@Señor Ventura la versión Saturn ronda 50-70k según el tramo, y son quads. El VDP-1 renderiza quads a no ser que lo fuerces, y cuando lo haces se pierde capacidad de proceso, o sea que son quads en el 99% de juegos.
La primera digo.
VI Status A4400000
00000003 color source for framebuffer(s)
00000004 gamma divot enabled
00000008 gamma enabled
00000010 divot enabled
00000040 serrate
00000300 antialiasing mode
0: antialias and resample, always fetching extra lines
1: antialias and resample, fetching lines as needed
2: resample
3: replicate pixels without interpolation
Calculinho escribió:cualquier juego 3D homebrew va a ser jodido de hacer, pero elegir uno que usa quads no va a ser más jodido de transformar a triángulos? xD
Calculinho escribió:...todavía no hemos sopesado la posibilidad de que la scene diseñe un chip de apoyo de algún tipo que ayude a N64 a corregir alguna de sus carencias con las texturas o cualquier cosa que ayudase a mejorar la fluidez, etc.
Si alguien recuerda lo oscuro que parecía este juego en los primeros emuladores para PC y no sabia por qué (como yo) esta es la razon. El emu, HLE, emula la renderizacion al framebuffer, pero no los filtrados del VI que corrigen esa oscuridad a costa de un emborronamiento masivo.
Lo cual no resuelve el misterio de a quién se le ocurrió la gran idea de hacer las cosas de esta manera y por qué...
¿Realmente era la mejor opcion? yo diria que parece bastante evidente que no... pero a saber que intentaban conseguir.
Misterios...
Calculinho escribió:eso se está haciendo ahora con la NES
Calculinho escribió:Yo te dije si el problema de texturizar de N64 no podría arreglarse con algún tipo de chip.
Sexy MotherFucker escribió:@radorn te paso de momento el de Dreamcast, que no encuentro el de Ps2:
https://www.anaitgames.com/articulos/la ... ahercios-6
Cabe decir que este artículo está escrito por David Senabre, un conocido ingeniero y programador informático español debido a su divulgación en diversos medios; no es ningún "forero" hablando de gratis, entiende el tema a la perfección.
radorn escribió:Por cierto, ¿Qué manual es ese? yo habia visto manuales "online", en formato HTLM "interactivo", pero eso claramente está en papel.
hyrulen escribió:A lo mejor, por tema de resolución, la DS se ve mejor o necesita menos para poder mover más,
hyrulen escribió:Buenas @BMBx64 . No sé si en el hilo se ha hablado de la N64 comparando con la nintendo DS, pero es que ayer, jugando al Metroid Prime Hunter de DS, vi lo que podría haber sido metroid en N64. ¿Crees que es posible que cualquier juego de la DS funcionase en la 64?
A lo mejor, por tema de resolución, la DS se ve mejor o necesita menos para poder mover más, y parece más potente de lo que en verdad es, pero viendo cosas como final fantasy IV, Zeldas, dragon quests,etc,etc no sé si la 64 podría con ellos.
+004 Deviceld
Specifies the base address. As an interesting note, some expansion paks report the same address for both units, also raising the mem limit exceeded flag in RI Error.
Calculinho escribió:...no he visto el Prime Hunter...
radorn escribió:@EMaDeLoC Tu me estás diciendo "para qué sirve" (al menos una de sus supuestas utilidades), pero no "qué hace".
radorn escribió:No tengo claro qué clase de errores podrían indicar dichos errores de instalación.
00100000 indicates a multibank (2MB) unit
EMaDeLoC escribió:Es que es casi lo mismo...
EMaDeLoC escribió:¿Qué hace? Muestra los registros del RI y la identificación del los chips RDRAM.
EMaDeLoC escribió:¿Para qué sirve? Muestra los registros del RI y la identificación del los chips RDRAM.
hyrulen escribió:Buenas @BMBx64 . No sé si en el hilo se ha hablado de la N64 comparando con la nintendo DS, pero es que ayer, jugando al Metroid Prime Hunter de DS, vi lo que podría haber sido metroid en N64. ¿Crees que es posible que cualquier juego de la DS funcionase en la 64?
A lo mejor, por tema de resolución, la DS se ve mejor o necesita menos para poder mover más, y parece más potente de lo que en verdad es, pero viendo cosas como final fantasy IV, Zeldas, dragon quests,etc,etc no sé si la 64 podría con ellos.
BMBx64 escribió:La resolución de DS es muy baja, eso le vendría bien a N64 ya que su principal problema es de fillrate
radorn escribió:La disquisicion inicial era que yo intentando saber QUE HACE, o sea, que funcion realiza, el programa tu me repetiste el principal proposito especificado en la descripcion para el que una persona podría querer usar dicho programa.
radorn escribió:Aun mas interesante es saber exactamente de qué manera ayuda la funcion del programa a cumplir el propósito pretendido/anunciado en la descripcion, cosa que, creo que estamos de acuerdo que no tenemos suficientemente clara.
The point of this is twofold: firstly, to help determine what remarked chips in later consoles actually are, and secondly, as a sort of diagnostic tool to help figure out what went wrong when installing on a board.
EMaDeLoC escribió: sino 320x480 o 640x240 que la consola estira para ocupar toda la pantalla.
EMaDeLoC escribió:No sé si te refieres a eso, no me ha quedado claro...
EMaDeLoC escribió:más allá de que no tenemos ni idea de electrónica de memorias y no sepamos como interviene una mala soldadura en el código de un registro...
radorn escribió:Sexy MotherFucker escribió:De todas formas el original en Nintendo 64 también tiene errores que parecen de emulación, como por ejemplo las pixelaciones que se producen en ciertas texturas de vez en cuando, como las de la charca en la caseta del pescador de Lake Hylia en cuanto la cámara por defecto se desvía hacia un ángulo supuestamente muerto en la que entiende el jugador no debería estar viendo nada mientras está pescando, así que supongo que la consola desactiva el filtro o algo.
Esto sería mas bien para el hilo de detalles, pero bueno:
Creo que se de que hablas, y pasa en todos los juegos.
Yo deduzco que es una limitacion del filtro de texturas, pero no tengo ni idea de qué lo provoca. Alguna explicacion matematica/computacional tiene que tener. En PilotWings 64, con sus escenarios tan grandes con polígonos gigantescos, a los que, te puedes acercar un monton, especialmente con el jetpack, o aterrizando en cualquier superficie con el girocoptero pero sin decelerar hasta detenerse para que no se acabe el juego, puedes facilmente ver este curioso d/efecto.
Como ya digo, no sé por qué pasa, pero me ha recordado algo sobre el filtrado de texturas de la N64, o, al menos, el de muchos microcódigos, y que, en ciertos juegos que permiten acercarse de forma particular a algunos objetos, puede hasta apreciarse a simple vista.
Lo que hace el filtro de texturas es generar mediante filtro bilinear (lo de trilinear viene por la interpolacion entre mip-maps, que es como una tercera dimension) 32texels interpolados a partir de cada texel original.
De hecho, en GoldenEye, para mapear una textura a un triangulo, las coordenadas UV que se usan en cada vertice para decir que punto de la textura le corresponde, son enteros de 16bit con signo, y tiene una precision de 32subdivisiones de texel. O sea. si quieres que tu vertice empiece en el texel 1,1 de la textura, tus coordenadas UV tendrán que ser 32,32 (pero en hexadecimal o binario, claro) aunque, con el "sangrado" que causa el filtro bilineal, siempre es mejor añadir otro medio pixel para excluir la parte que se funde con el pixel anterior, asi que añade otros 16 (medio pixel).
De esta manera tenemos que, asumiendo que este patron sea universal, una textura en N64 puede repetirse a lo largo de un unico triangulo, hasta 2048 texels (65536 subtexels interpolados) de punta a punta con las coordenadas UV 0,0 en el centro. La cantidad de veces que una tetxtura en concreto se pueda repetir ya depende del tamaño de la textura en si. Con una de 32x32, la textura puede repetirse 64 veces de punta a punta (32 en direcion negativa y 32 en positiva, y no estoy hablando de efecto espejo, si no de meras repeticiones). una de 64x64, solo 32, una de 128, 16 veces.
Volviendo a lo del zoom, en ciertos juegos, y creo que turok 1 y 2 son dos ejemplos donde se puede apreciar, si te acercas lentamente a ciertos objetos atravesables, como algunos arbusos o plantas, puedes llegar a poner la camara tan cerca de un poligono que llegas a ver los sub-texels interpolados, que ya son meros pixeles no filtrados.
Si alguien puede sacar una imagen mejor, porque yo en este momento...
No se si esto realmente tiene que ver con esa extraña distorsion que se produce al ver algunos poligonos desde ciertos angulos, pero creo que alguna relacion ha de tener.