› Foros › Retro y descatalogado › Consolas clásicas
masteries escribió:Hola Conker64,
¿Has podido echarle el guante durante estos días?
Gracias anticipadas,
radorn escribió:Imagino que el noveno bit solo es accesible por el RCP para sus cosas internas (¿se le conoce algún otro uso aparte de almacenar los valores precalculados para la segunda mano de AA que hace el VI?), y dudo que sea visible por la CPU, a la que solo se le muestran los primeros 8.
EMaDeLoC escribió:Lo del AA si tiene sentido, recuerdo vagamente haber visto una tabla o algo así con lo que se aplicaba, supongo que estará por el hilo.
Conker64 escribió:masteries escribió:Hola Conker64,
¿Has podido echarle el guante durante estos días?
Gracias anticipadas,
Hola, sí, estuve mirando este fin de semana, la rama stable sigue siendo la misma de siempre, creando comandos que van a un buffer de RAM y los lee el RDP, luego tienen la rama unstable con algo experimental que me llama más la atención.
En lugar de subir a la RAM ya los manda directamente al RSP, como si fuera parte de un microcódigo, es buena idea pero esa parte tengo que estudiarla bien, leyendo de RAM se pueden saltar la mayoría de sync/wait to pipe y similares, pero no desde el RSP que es más rápido.
De todas formas me bajaré las 2 y las intentaré compilar, antes de ponerme con el resto
Necesitas el código de la función de carga de texturas de N64 para PC? Los primeros tests que hice en N64 los ejecutaba en PC y luego cambiaba 4 líneas para portarlos a N64.
radorn escribió:¡POLE PÁGINA 64! ¿Qué he ganado?
Pues con una consola de las viejas, y la placa de uno de esos EP clónicos con dos chips, reemplazandolos todos por chips de 4MB quizá se podrían llegar los 16MB, aunque no sirvan para nada en juegos licenciados sin modificar, o las librerías de desarrollo existentes. Si bien no veo ningún motivo por el que, asumiendo que semejante montaje arranque, no pudiese la CPU acceder a toda esa RAM. El único problema (y no digo que sea pequeño) sería modificar el software para usar toda esa RAM. Pero esta cuestión, aparte de ser una fantasía a día de hoy, es algo que no creo que nadie vaya a dedicar esfuerzo alguno a materializar, y aún si se hiciese, no sería algo que fuese a tener gran adopción entre los usuarios, y por tanto tampoco habría abundancia de software que lo usase, por muchos motivos, empezando por la disponibilidad de los necesarios chips RDRAM compatibles con la consola.
Estoy de acuerdo con tu teoría de por qué el controlador de memoria acepta 4 chips. Bien visto.
Claro que esos EP clónicos, por usar dos chips en ese espacio cerrado con poca refrigeración explicaría por qué dice la gente que los EP clónicos se recalientan y y provocan que se cuelgue la consola.
Yo nunca tuve uno de esos, pues en cuanto a hardware siempre preferí las versiones oficiales. Otra cosa son los cacharros raros, pero para algo como el EP, no me hubiese inspirado confianza usar uno clónico con carcasas raras.
Claro que eso explica por qué la mayoría de esos reemplazaban la tapa original con su propia protuberancia fea externa como forma de mejorar la disipación de calor.
Lo que dices de los 2.25MB se entiende por el noveno bit, como resultado de contar los bits en bruto y luego convertirlos a bytes estandarizados de 8 bit, pero si lo cuentas como bytes de 9 bit, que es como los usa el RCP, siguen siendo 2 y 4 megas exactos
Imagino que el noveno bit solo es accesible por el RCP para sus cosas internas (¿se le conoce algún otro uso aparte de almacenar los valores precalculados para la segunda mano de AA que hace el VI?), y dudo que sea visible por la CPU, a la que solo se le muestran los primeros 8.
En fin, vine por la mención, pero como ya no tengo nada de esto, me resulta un tanto raro seguir el hilo.
Señor Ventura escribió:No importa si son fantasias o si su implementación requiere de un esfuerzo por adecuar software.
El tema aquí es que una n64 puede calzar 16MB de ram, y que se podrían hacer cosas con ella...
¿Cuales?
radorn escribió:Señor Ventura escribió:No importa si son fantasias o si su implementación requiere de un esfuerzo por adecuar software.
El tema aquí es que una n64 puede calzar 16MB de ram, y que se podrían hacer cosas con ella...
¿Cuales?
Pues hombre, menos aumentar la velocidad de proceso, cualquier cosa que dependa de RAM.
Así a botepronto se me ocurren las siguientes posibilidades:
-Mayor nivel de persistencia de estado en objetos dinámicos (seguro que hay un mejor nombre técnico para ello): agujeros de bala, cuerpos de enemigos, marcas de pisadas, posiciones y estados de todo tipo de objetos... Combinado con el uso de almacenamiento secundario como una tarjeta SD, hasta podrían hacerse permanentes hasta cierto límite.
-Pre-carching o precarga dinámica en segundo plano de zonas del mapa adyacentes a la actual en un potencial juego de mundo abierto (Aidyn Chronicle), para una experiencia sin cortes, o también cualquier otro tipo de recurso como NPCs u otros objetos. Según las necesidades de cada juego, podría hacerse en un proceso de baja prioridad contando con que el propio progreso del juego proporcionaría una generosa ventana de tiempo para terminar la carga de esos recursos mucho antes de ser utilizados.
-Mover a RAM cosas como animaciones, y de muestras de audio para efectos y música, que normalmente se cargan dinámicamente desde ROM para cada fotograma, para así no ocupar la escasa RAM (4 u 8 MB). Con 16MB se puede mover buena parte de eso a RAM y dejar el relativamente lento acceso a ROM para carga dinámica de otras cosas, como en el anterior punto.
-Generación dinámica de recursos como escenarios y distribución de objetos (aunque quizá sea abusar de la capacidad de proceso de la consola dependiendo de a donde quiera uno llegar).
-Reducción de limitaciones en software creativo como Mario Artist, al poder trabajar con mas datos de cada vez.
-¿...Inteligencia rtificial generativa? xDD En fin, por ambición que no quede.
Señor Ventura escribió:¿Triple buffer...? xD
Conker64 escribió:masteries escribió:Hola Conker64,
¿Has podido echarle el guante durante estos días?
Gracias anticipadas,
Hola, sí, estuve mirando este fin de semana, la rama stable sigue siendo la misma de siempre, creando comandos que van a un buffer de RAM y los lee el RDP, luego tienen la rama unstable con algo experimental que me llama más la atención.
En lugar de subir a la RAM ya los manda directamente al RSP, como si fuera parte de un microcódigo, es buena idea pero esa parte tengo que estudiarla bien, leyendo de RAM se pueden saltar la mayoría de sync/wait to pipe y similares, pero no desde el RSP que es más rápido.
De todas formas me bajaré las 2 y las intentaré compilar, antes de ponerme con el resto
Necesitas el código de la función de carga de texturas de N64 para PC? Los primeros tests que hice en N64 los ejecutaba en PC y luego cambiaba 4 líneas para portarlos a N64.
cd /c/n64-toolchain/libdragon
pacman -S base-devel mingw-w64-x86_64-gcc mingw-w64-x86_64-make mingw-w64-x86_64-libpng git
./build.sh
cd /c/n64-toolchain/libdragon/examples/test
cd examples
cd test
make
Conker64 escribió:Todo esto es muy vago y se puede ampliar, veamos si enganchamos a alguien más para programar en N64 y si interesa expandir
Conker64 escribió:INSTALAR LIBDRAGON
--
@masteries
Ok bueno ya estoy en ello, cuando tenga resultados te aviso
Sogun escribió:James Lambert ya ha publicado un vídeo explicando cómo funcionan las megatexturas en Nintendo 64.
Hay trozos del vídeo muy ilustrativas donde se muestra entiempo real como el mapa de memoria va cargando las texturas que se utilizan en pantalla. Lo más impresionante es que está usando sólo 4 MB, así que pienso que sería posible disimular muchísimo más los cambios bruscos de detalle de las texturas.
Confirma que el escenario usa unos 40 MB de texturas divididas en trozos de 32x32 píxeles de resolución (y supongo que 16 bits de color).
Pero lo que no me termina de quedar claro porque me había hecho una idea distinta de lo que entiendo en el vídeo es que no se usa teselación para ir acoplando trozos de texturas con más detalle, si no que la geometría se mantiene simple y que un algoritmo decide qué "nivel de mipmap" (porque son todo texturas pregeneradas) es el que se utiliza. Habrían logrado en la práctica superar el límite de los 4 kB de la caché porque estarían aplicando múltiples texturas en un mismo polígono, algo que ningún juego comercial logró.
A ver si alguien lo puede explicar mejor y me corrige, porque esto me ha dejado más loco todavía.
Sogun escribió:Pero lo que no me termina de quedar claro porque me había hecho una idea distinta de lo que entiendo en el vídeo es que no se usa teselación para ir acoplando trozos de texturas con más detalle, si no que la geometría se mantiene simple y que un algoritmo decide qué "nivel de mipmap" (porque son todo texturas pregeneradas) es el que se utiliza. Habrían logrado en la práctica superar el límite de los 4 kB de la caché porque estarían aplicando múltiples texturas en un mismo polígono, algo que ningún juego comercial logró.
EMaDeLoC escribió:@Señor Ventura Hay que decir que parece un caso concreto, ya que son triángulos con la misma textura y por tanto no hay que recargar nada de la RAM dejando mucho ancho de banda disponible.
Señor Ventura escribió:EMaDeLoC escribió:@Señor Ventura Hay que decir que parece un caso concreto, ya que son triángulos con la misma textura y por tanto no hay que recargar nada de la RAM dejando mucho ancho de banda disponible.
Si, está claro, pero la clave está en que, caber, caben unas cuantas texturas en la ram. Igual también influye no tener que mover una textura de la caché, pero si hay que estar moviendo una (textura) a esa memoria (caché) cada vez que quieras pintar un polígono... ahí lo tendríamos.
Es dudable, pero bueno.
Mi curiosidad es ver hasta donde llega sin texturizar, tipo virtua racing, porque a menos que exista la posibilidad de mejora, el tope real de la consola son los 180 mil polígonos del wdc (¿o eran 120K?).
SuperPadLand escribió:@dirtymagic 8000 y en los otros hilos pegandonos por si PS1 o SS eran putentes con picos de 1300 🤣
SuperPadLand escribió:@dirtymagic 8000 y en los otros hilos pegandonos por si PS1 o SS eran putentes con picos de 1300 🤣
gynion escribió:Interesante, genialidad creativa, y algo dificil de replicar al emular juegos de N64, pero para nada dificil de replicar en sí.
EMaDeLoC escribió:gynion escribió:Interesante, genialidad creativa, y algo dificil de replicar al emular juegos de N64, pero para nada dificil de replicar en sí.
Bueno, a eso me refería, que era difícil de replicar en el emulador, no en general.
SuperPadLand escribió:EMaDeLoC escribió:gynion escribió:Interesante, genialidad creativa, y algo dificil de replicar al emular juegos de N64, pero para nada dificil de replicar en sí.
Bueno, a eso me refería, que era difícil de replicar en el emulador, no en general.
Sabes si existe algún truco o cutreza para hacer algo parecido en PS1 o SS?
dirtymagic escribió:Es que Kaze también parte de un juego que usa el microcodigo más viejo, hay muchas cosas que dice en el video que el último microcodigo F3DX2 ( Zelda OoT) ya hacía, como usar Zsort, para reducir el sobrepintado de superficies, también es verdad que los Zeldas van a 20Fps, pero también usan mucho 2 cycle en superficies ( suelos con 2 texturas, Trilinear mipmapping, niebla atmosférica, reflejos en superficies metálicas, simulación de reflejos cáusticos del agua, iluminación dinámica + fuente de luz independiente ( antorchas, navi, ) ect...).
En este video que hice yo, la escena tiene +8.000 polígonos y unas 30 texturas únicas y lo mueve bien en la N64, excepto cuando se ve todo el escenario que salta el Frameskip y se pone a 15 fps.El video es viejo y tengo cosas cambiadas para mejorar el rendimiento como LOD en los reactores.
Eso si todo el curro de depuración y optimización del código fuente del Mario es increíble, y es lo que le hace ganar mucho rendimiento.
Salud.
SuperPadLand escribió:EMaDeLoC escribió:gynion escribió:Interesante, genialidad creativa, y algo dificil de replicar al emular juegos de N64, pero para nada dificil de replicar en sí.
Bueno, a eso me refería, que era difícil de replicar en el emulador, no en general.
Sabes si existe algún truco o cutreza para hacer algo parecido en PS1 o SS?
EMaDeLoC escribió:Eso significa que en 2D la consola es una bestia parda.
Señor Ventura escribió:EMaDeLoC escribió:Eso significa que en 2D la consola es una bestia parda.
¿A que nivel?, porque tampoco puede manejar planos, cosa que una saturn si hace, ni parece que la capacidad para dibujar sprites de una jaguar sea fácilmente superable.
EMaDeLoC escribió:153fps vendría a ser 153 fondos por segundo, o más de dos planos de fondo por frame a 60fps.
Si te refieres a planos transformados, con inclinación, rotación, etc, eso ya sería con 3D.
Para sprites tienes una prueba que hizo @Conker64 hace ya unos cuantos años, seguida de otra prueba.
Por entonces, 900 sprites a 60fps.
Pero a ver si con la invocación se pasa y te da cifras más actualizadas.