› Foros › Retro y descatalogado › Consolas clásicas
Señor Ventura escribió:Ni el aof 1 ni el aof2 originales tienen scroll parallax (por regla general, no se si el escenario de eiji tenía algo, aunque creo que era directamente un segundo plano).
Señor Ventura escribió:Si, es posible hacer interrupciones en un plano en modo 7 para obtener scroll parallax, además de otros efectos.
Señor Ventura escribió:Los planos en modo 7 no son gráficamente mas simples por ser modo 7, son mas simples porque los diseñaban así. Un plano en modo 7 ocupa un área de hasta 1024x1024 pixels, con tiles de 64 Bytes, así que el límite está en los aproximadamente 62,96 KB de VRAM que quedan libres después de lidiar con la tabla OAM, y la CGRAM, puesto que la tabla de atributos del modo 7 se guardan en la WRAM. Es decir, alcanza para hacer planos en modo 7 con mucho lujo de detalles. Todo depende de cuanto quieras dispersarlos
Señor Ventura escribió:Ni aof 1 ni aof 2 en snes realiza escalado de sprites. Tiene un nombre que no recuerdo, pero básicamente consiste en apilar los sprites unos encima de otros, además de que creo que borra pixels dentro de cada tile, o algo así, tendría que mirarlo. Sale mas barato que procesar un escalado real.
Usar el método de turbo grafx para el zoom no es posible porque en primer lugar la snes implementa un escalado real que supera a aquel resultado, y porque en segundo lugar la snes no almacena sprites de dos tamaños diferentes simultáneame como presuponiblemente si debe estar haciendo la arcade card de la turbo grafx.
Señor Ventura escribió:Los personajes en snes están diseñados para que casi en el peor caso posible no puedan haber parpadeos, pero podría alcanzarse el tamaño de la versión turbo grafx sin ningún problema a cambio de encontrarte en alguna ocasión algún parpadeo, o igualar el tamaño de los personajes de la versión neo geo con parpadeos mas o menos frecuentes.
NewDump escribió:Me pregunto que finalidad tienen estos hilos realmente es decir, por que esa obsesión de si podía hacer o no hacer y por que motivo no se hizo.
Señor Ventura escribió: Creeme, no he podido responder con detalle xD
En otro momento me pondré a ello con detenimiento, mas que nada porque está entre mis planes planificar un proyecto sobre esto, y hasta aquí puedo escribir. De momento estoy liado con otras responsabilidades y no puedo ni empezar. De lo que he dicho habría que matizar un par de cosas, pero si quieres leer algo mas, escribí un post hace tiempo precisamente sobre el art of fighting 2. Ten en cuenta que muchas cosas de las que digo ahí están mal si se interpretan literalmente, ya que casi cada dato que estoy poniendo ahí conlleva una explicación que no estoy dando.
hilo_batalla-campal-snes-vs-megadrive-patio-de-colegio-on_2186472_s10050#p1746742669
Señor Ventura escribió:se trata de empezar de cero con semejante tarea, pero vamos, porque me apetece. Es posible que me lo quede para mi también, ya vería xD.
Señor Ventura escribió:El hilo que mencionas no sirve casi nada como referencia, entre inexactitudes y piques no creo que quede casi nada en aquel hilo que merezca ser tenido en cuenta.
Señor Ventura escribió:Sin tardar empezaré a tener tiempo libre, así que a menos que se me tuerza algo trataré de hablar del art of fighting 1 y 2 lo mas extendido posible, siempre desde la perspectiva de snes en lo técnico.
GValiente escribió:El principal motivo por el que los fondos en este juego se ven muy simples es que los fondos en modo 7 tienen muchas limitaciones en comparación con el resto de modos:
- Un fondo en modo 7 sólo puede tener como máximo 256 tiles, mientras que en el resto de modos los fondos pueden tener muchos más (creo que hasta 1024).
- Un fondo en modo 7 no soporta tiles de 4 ni de 16 colores, sólo de 256, por lo que cada tile consume mucha más VRAM.
- Un fondo en modo 7 no soporta flipping o espejos: en el resto de modos si un tile es como otro invertido en el eje horizontal o vertical no hace falta consumir VRAM para los dos tiles, sólo para uno de ellos.
- En el modo 7 sólo hay un fondo disponible, mientras que en el resto de modos suele haber más fondos disponibles.
El espacio que ocupan en el cartucho los fondos no es un problema tan grande como los mencionados, ya que en comparación con un fondo "normal" un fondo en modo 7 sin comprimir debería ocupar un poco menos del doble de
ROM, y si se comprime seguro que la diferencia se reduce bastante.
GValiente escribió:Un fondo en modo 7 no soporta flipping o espejos: en el resto de modos si un tile es como otro invertido en el eje horizontal o vertical no hace falta consumir VRAM para los dos tiles, sólo para uno de ellos
GValiente escribió:En el modo 7 sólo hay un fondo disponible, mientras que en el resto de modos suele haber más fondos disponibles.
Unreal McCoy escribió:En la creencia mía, el plano en Modo 7 es en parte similar a una de las capas de Snes, que sólo puede mostrar cuatro colores y suele utilizarse para nubes, fondos simples o parte del marcador, -no recuerdo si es la cuarta o la tercera capa-, por esto muchos juegos tienen el Hud monocromo, -gris o marrón camel-, es decir, con importantes limitaciones de color y resolución
Unreal McCoy escribió:GValiente escribió:Un fondo en modo 7 no soporta flipping o espejos: en el resto de modos si un tile es como otro invertido en el eje horizontal o vertical no hace falta consumir VRAM para los dos tiles, sólo para uno de ellos
Temo que en Unholly Night abusaron de esa posibilidad, lo que viendo el tamaño del cartucho y su aspecto global, no tiene demasiado sentido.
Unreal McCoy escribió:GValiente escribió:En el modo 7 sólo hay un fondo disponible, mientras que en el resto de modos suele haber más fondos disponibles.
Lo desconocía, pero por algún motivo veía inviable hacer scroll en plano en Modo 7 porque más allá de poder rotarlo o acercarlo, lo encontraba muy inamovible y limitado, es complicado de explicar.. y es una característica que he visto en Snes mal que me pese decirlo, algunos juegos son 'rigidos', se notan estáticos, mientras que en MegaDrive la acción tanto sonora como gráfica parecia mucho más fluida.. esto siempre lo he achacado a lo dificultoso de programar para ella, al menos en relación con otras plataformas basadas en un M680000.
GValiente escribió:Eso se aplica a algunos del resto de modos de vídeo, no al modo 7. En el modo de vídeo más utilizado (no recuerdo cuál), la SNES ofrece dos fondos con 16 colores por tile y otro con 4 colores por tile. Este último fondo es el que se suele usar para el marcador, de ahí vienen las limitaciones de color.
GValiente escribió:Si quieres que fondos de imágenes digitalizadas te quepan en la VRAM, junto a sprites, marcadores y el resto de elementos gráficos, no te queda otra que abusar de espejos.
GValiente escribió:El fondo del modo 7 ofrece las mismas o más posibilidades de movimiento que los fondos del resto de modos de vídeo, es la CPU la que no acompaña.
Unreal McCoy escribió:Lo comprendo y encuentro lógico, sin embargo en Unholly Night abusaron del espejado sin -pienso- necesidad real, los escenarios no son digitalizados, tiene 32 Megas, un escaso número de luchadores y la calidad técnica general es mediocre a mi juicio, lejos de lo que cabría esperar de Snes en 2017 considerando el grupo de programación y que es un juego oficial.
GValiente escribió:¿Estás seguro de que no son digitalizados?
Tienen toda la pinta:
https://cdn.gamer-network.net/2016/usga ... hot-02.png
https://cdn.gamer-network.net/2016/usga ... hot-05.png
https://www.micromania.fr/dw/image/v2/B ... ight_4.jpg
https://www.destructoid.com/ul/404559-n ... oscale.jpg
Señor Ventura escribió:Lo de los 256 tiles para planos en modo 7 es la primera vez que lo leo. No veo motivos que hagan pensar que no puedas usar toda la vram que quieras para dibujar planos en el, con sus 256 colores, y todo.
Señor Ventura escribió:el motivo de que no puedas espejar tiles en modo 7, entre otras funciones, es porque usa un formato de imagen que no usa los atributos "indexados" que si usan los planos en el resto de modos gráficos (a grandes rasgos).
Señor Ventura escribió:Lo de los 256 tiles para planos en modo 7 es la primera vez que lo leo. No veo motivos que hagan pensar que no puedas usar toda la vram que quieras para dibujar planos en el, con sus 256 colores, y todo.
Señor Ventura escribió:Luego hay ciertas escenas que en teoría no pueden transladarse a super nintendo... pero si que se puede.En snes está hecho así para evitar parpadeos... pero ya digo que no es necesario porque se puede hacer igual, o casi casi igual
Señor Ventura escribió:P.D: mira, modo 7 con interrupciones por línea. Con ellas puedes dividir un plano en varias secciones para hacer scroll:
GValiente escribió:En los fondos "normales" la SNES utiliza una variable de 16 bits para cada celda del fondo, por lo que puede indexar por ejemplo la paleta de colores a utilizar (16 paletas = 4 bits), el espejo horizontal y vertical (2 bits) y quedan 10 bits para el índice de tile a mostrar, por lo que cada fondo puede indexar hasta 1024 tiles.
Sin embargo, el fondo del modo 7 utiliza una variable de sólo 8 bits para cada celda del fondo, por lo que no soporta paletas de colores ni espejos, y además sólo puede indexar hasta 256 tiles.
Emerald Golvellius escribió:Si el AOF2 de SNES lo llega a programar Tiertex seguro que sale identico al de NEOGEO ,o meLjor
Unreal McCoy escribió:El fastidioso limite horizontal de sprites por scantine, supongo, no veo cómo saltarselo, y mira que os he leido veces.. quizás jugando con las capas y el DMA, o tal vez con los tiles de fondo, a lo Master System en Golden o Altered el estos intringulis son muy atractivos vistos desde fuera cuando son otros los que proraman, si tuviera que hacerlo yo, madre mía...
GValiente escribió:Señor Ventura escribió:Lo de los 256 tiles para planos en modo 7 es la primera vez que lo leo. No veo motivos que hagan pensar que no puedas usar toda la vram que quieras para dibujar planos en el, con sus 256 colores, y todo.
En los fondos "normales" la SNES utiliza una variable de 16 bits para cada celda del fondo, por lo que puede indexar por ejemplo la paleta de colores a utilizar (16 paletas = 4 bits), el espejo horizontal y vertical (2 bits) y quedan 10 bits para el índice de tile a mostrar, por lo que cada fondo puede indexar hasta 1024 tiles.
Sin embargo, el fondo del modo 7 utiliza una variable de sólo 8 bits para cada celda del fondo, por lo que no soporta paletas de colores ni espejos, y además sólo puede indexar hasta 256 tiles.
Señor Ventura escribió:¿Lo de usar atributos de 8 bits podría tener algo que ver con el modo extendido del modo 7?.
Señor Ventura escribió:En un principio, diría que hacer una interrupción cada 32 líneas para actualizar esa tabla de forma que haga referencia a nuevas tiles (que ya estarían precargadas en la vram previamente), sería una solución factible ya que en un entorno tan controlado como el zoom de un plano que no involucra los tres ejes para moverlo, lo único que tienes que prever es que en la posición de zoom out no deben haber mas de 256 tiles por cada 32 líneas... o hacer un zoom aún mas lejano dibujando 256 tiles cada 16 líneas...u 8...
Cuanto mas lejano sea el zoom, mas interrupciones y mas actualizaciones de esa tabla de atributos.
En un principio lo veo factible, y hay espacio en la VRAM para tener precargado un escenario completo. Todo depende de la cpu que necesite la lógica de la acción en pantalla, mas las pertinentes interrupciones, mas el DMA necesario para los sprites y tablas, etc.
El mayor reto es encontrar el equilibrio entre tiempo de DMA y tiempo de CPU, y en base a eso elegir el tamaño de personajes, grado de zoom, etc.
Señor Ventura escribió:¿Puedes notarlo?. Ese efecto entrelazado siempre queda un poco guarrete, pero en una tele crt tiene que quedar muy disimulado, y a cambio ganas que parezcan dos planos en modo 7 simultáneos (sin que además parezca que la cpu sufra con tanta interrupción).
Señor Ventura escribió:Otra cosa es interrumpir verticalmente (una o varias veces, dentro de cada scanline), pero con un chip de apoyo que aporte potencia, podrías simular el número de planos en modo 7 que te de la gana, sin recurrir a entrelazados, porque todo es a base de interrumpir las veces que sean necesarias cada scanline… el reto en realidad está en decirle a la máquina que prioridad existe para que unas interrupciones declaren tiles que tu sabes que pertenecen al plano de mas prioridad, pero que para la máquina todo es un solo plano
Señor Ventura escribió:Pero volviendo al art of fighting 2… tu que tienes pinta de saber latín sobre esto… ¿ves solucionable poner en pantalla a ryo y robert lanzándose dos haoh sho kooken?, ¿o dos jacks con mas tamaño de los que tiene el actual port cayendo al suelo al mismo tiempo, amenazando el límite de sprites por scanline?.
Yo tiraría p’alante, y que el juego flickee todo lo que le de la gana, pero como reto es interesante ver de que formas puedes solucionar esa sobrecarga… tal vez no dibujando los sprites de menor prioridad, pero son demasiado grandes…
Unreal McCoy escribió:Casi cristalino, a pesar de mi profanía. Supongo que no existe la posibilidad de utilizar un algoritmo de compresión o un 'conversor fly by fly', o que de serlo, a cambio el rendimiento caería en picado.
GValiente escribió:¿Qué juego es? Por echarle un ojo con algún emulador
Viendo el GIF me da la sensación que lo único que cambia en cada línea horizontal de la pantalla es el registro del blending, pero sin emulador a mano no puedo confirmar.
GValiente escribió:Si metes chips de apoyo es mucho más fácil que el chip pinte el fondo él solito, dejando a la SNES en paz .
Señor Ventura escribió:¿Con cuanto DMA habría que contar cada vez que saltas de una tabla de atributos a otra para hacer referencia a nuevos tiles?, ¿2KB enteritos?
Señor Ventura escribió:El DMA es el que supone aquí una brecha insalvable... pero últimamente estoy leyendo bastante de las capacidades del SA-1 para transferir tiles prácticamente sin restricciones (lo cual dejaría una puerta abierta para que el DMA gaste todo el tiempo que necesite en definir colores y nuevos grupos de tiles). ¿Esto es realmente así?
Señor Ventura escribió:No necesariamente. Para definir el color hay que tirar de cpu en ciertas circunstancias, pero eso no significa que necesites hacerlo de una forma tan intesiva de forma obligada.
Todo ese rollo del direct color en ciertos modos gráficos es algo que nunca me he molestado en mirar demasiado. Pensaba que era una virtud, pero parece mas una necesidad por lo que comenta GValiente... el caso es que si haces una interrupción cada vez que el line buffer pinta un pixel para definir el siguiente color directamente de la paleta madre, realmente podrías dibujar un plano en modo 7 a 32768 colores... pero si no he entendido mal, ¿necesitas que el DMA transfiera 5 bits por cada pixel que dibujas de este modo? (ya no solo necesitas mucha cpu para interrumpir tantas veces, sino que el DMA necesita transferir mucho, dejando aún menos tiempo para la cpu). En teoría, con un chip de apoyo puedes plantar planos en modo 7 a 32768 colores sin pestañear (al menos en una consola PAL)... y eso también mola.
Luego ya está lo del límite de 256 tiles para un plano en modo 7, pero realmente basta con que hagas una interrupción para definir otro grupo de 256 nuevos tiles cuando los primeros 256 tiles sean dibujados, para así disponer para ese plano de tantos tiles como quepan en la VRAM, y por lo que parece no debería ser demasiado costoso para la cpu, por lo que ese problema no parece otra cosa que un engorro para el programador, porque es una limitación que tiene solución.
GValiente escribió:Como un registro son 2 bytes y la resolución vertical habitual de la SNES es 224px, harían falta unos 448 bytes para escribir un registro con HDMA.
GValiente escribió:Seguramente haría falta un chip de apoyo mucho más potente que el SA-1 para mostrar fondos él solo.
GValiente escribió:EDIT
Por cierto, creo que no se pueden mostrar dos grupos de tiles en modo 7 en la SNES, ya que el registro que comenté no se puede escribir con HDMA.
Otra ventaja de la GBA
Unreal McCoy escribió:Muchas gracias tio, iba a desertar del hilo porque hablais a un nivel que no puedo seguir, en el sentido de que no puedes enfrentarte a una ecuación de segundo grado si antes no aprendes a multiplicar y dividir. Estuve buscando una guía de programación de Snes ''for really greatest dummies'', pero de momento no doy con ella, aunque sí vi alguna interesantilla para tratar de iniciarme.
Señor Ventura escribió:GValiente escribió:Como un registro son 2 bytes y la resolución vertical habitual de la SNES es 224px, harían falta unos 448 bytes para escribir un registro con HDMA.
Pero esta tabla de atributos no lo haría, ¿no?. Lo que haces con hdma es acceder a la tabla de transformación que guardas en la wram, pero la indexación de las tiles la transfieres usando DMA como siempre... ¿no se distinguen?.
Jamás he visto siquiera que aspecto tiene la tabla de transformación, ni las tablas de ningún plano.
Con todo, por cada línea el hdma puede transferir 2 Bytes, así que te siguen sobrando 2 Bytes que se pueden acumular para otros menesteres.
Lo que había pensado es almacenar 750 tiles en la VRAM para los escenarios, y cada un cierto número de scanlines (cuando el line buffer ya haya dibujado los correspondientes tiles, paras máquinas, y acto seguido actualizas mediante DMA la tabla de atributos de otros 256 tiles que ya tienes preinstalados en la VRAM, ya que el line buffer ha dibujado físicamente los primeros 256 tiles y por lo tanto deja de importar si los desligas de su tabla de atributos a partir de ahora para relacionarla con los 256 siguientes, y no haría falta esperar a que las nuevas tiles sean transmitidas porque ya están preinstaladas en memoria.
Ese proceso de actualización de esa tabla habría que realizarla solo 3 veces dentro de cada frame, y salvo que sea una tabla muy grande, tanto por DMA como por CPU no debería ser un problema... ¿no?...
GValiente escribió:Tú (creo que) propones escribir nuevos tiles en la VRAM mientras se pinta la pantalla.
Aunque hubiera CPU suficiente para copiar los tiles suficientes a la VRAM en cada refresco de pantalla (que lo dudo mucho), creo que la SNES no permite actualizar la VRAM mientras se está refrescando la pantalla.
GValiente escribió:Y si eso también fuera posible (que también lo dudo), sincronizar la copia de tiles con el refresco de la pantalla sería muy difícil por no decir imposible.
GValiente escribió:Lo que yo proponía es almacenar los dos grupos de tiles en la VRAM y actualizar el registro que indica dónde se ubican los tiles a mostrar en cada línea horizontal de la pantalla con HDMA.
Eso en la GBA se puede hacer sin problemas, pero creo que la SNES tampoco lo permite.
Señor Ventura escribió:Lo que planteo es tener 768 tiles en VRAM, y cada cierto número de scanlines hacer una interrupción para definir una tabla con otros 256 nuevos tiles para poder seguir dibujando con ellos en las siguientes líneas.
Señor Ventura escribió:¿Podemos saber cuantos tiles diferentes están empleando actualmente los planos del art of fighting 1 y 2 de snes?, el único debugger que tengo no sirve para eso.
GValiente escribió:El problema de usar el hdma para realizar esa tarea es que ya estás usando el hdma en cada línea para acceder a la tabla de transformación del modo 7.
Señor Ventura escribió:Yo estoy igual que tu. Para cuatro nociones básicas que chapurreo no creo que se pueda considerar que estoy en algún nivel.
GValiente escribió:Ahora creo que entiendo mejor lo que propones.
El tema es que en la SNES no se puede parar todo mientras se pinta la pantalla, si fuerzas la detención de la PPU se muestra todo negro. Como además la mayoría de registros no permiten se modificados mientras se pinta la pantalla, sólo te queda poder actualizar los pocos que permiten ser actualizados en H-Blank con interrupciones (lento) o HDMA (rápido).
El periodo de H-Blank es muy corto, no permite cambiar casi nada, con HDMA sólo permite cambiar en cada línea horizontal el valor de los registros del modo 7 y de unos pocos más, como hace el Treasure Conflix.
GValiente escribió:Los tiles a mostrar en pantalla se configuran con el registro que comenté que no se puede cambiar en H-Blank.
GValiente escribió:Como decía juegos como el Treasure Conflix (o el F-Zero sin ir más lejos) escriben los registros del modo 7 y algunos más con HDMA a la vez sin problema.
Unreal McCoy escribió:Te agradezco el comparativo, pero no cuela
Pienso que es muy interesante lo que debatís aunque me he quedado varios post más arriba. Sin ánimo de interumpiros, deseaba consultar una curiosidad sobre un pasaje de Final Fight 2 durante la tercera fase, que pienso puede ir de la mano de los dos Jacks tendidos en AOF 2.
Casi al principio de la pantalla hay una zona con seis minas agrupadas en dos filas de tres, al situarnos en el centro de ellas y llegar tres enemigos, el juego por sistema se ralentiza de forma notable, parece ser una ralentización programada o precalculada, en mi ignorancia.
Tengo dos teorías sobre el motivo, y una de ellas gracias a lo que habéis expuesto varias veces en distintos hilos.
- Las seis minas están realizadas de tal forma que cuentan como 'objetos completos' o bloques de sprites, y al ser Capcom proclive a desperdiciar tamaño de estos al dibujarlos*, para la Super se estarían dando hasta diez ''personajes'' en pantalla -once en una partida a dobles-.
- La ralentización está programada para evitar la posible colisión simultánea de varios enemigos a la vez en llamas, para que no se produzca un excesivo parpadeo.
*no recuerdo la terminología concreta que explicó Señor Ventura.
Es una duda que tengo desde hace años, pero siempre acaba olvidándoseme. Gracias por todo.
Señor Ventura escribió:En realidad se trata de parar el programa, no parar literalmente todo (es una de las desventajas de no dibujar mediante frame buffer). Imagino que en lo que la cpu deja de ejecutar el juego para actualizar los registros del plano del modo 7, el haz de electrones de la pantalla siga dibujando, y al no obtener ninguna "orden" del line buffer, pinte en "nulo".
Señor Ventura escribió:Claro, con hdma puedo modificar al vuelo los registros de la tabla almacenada en la WRAM, pero la que a mi me interesa en la que creo que debe estar almacenada en la VRAM... la de los tiles del plano, la que me podría permitir poder dibujar en un plano en modo 7 mas de 256 tiles si todo este invento pudiese salir bien.
GValiente escribió:Imaginas mal, que no se puede parar nada
GValiente escribió:¿Qué tabla se almacena en VRAM? ¿Te refieres al tilemap? Esa tabla como dije sólo puede indexar hasta 256 tiles, y no indican qué tiles mostrar, sólo indican un offset al valor indicado por el dichoso registro que sólo se puede escribir en V-Blank. Por tanto, aunque se pudiera modificar esa tabla mientras se pinta la pantalla (que tampoco se puede), no serviría para nada.
Señor Ventura escribió:Sigo teniendo la impresión de que aquí hay algo que se escapa. Es de suponer entonces que si cambiar la indexación de las tiles hacia otras 256 tiles no va a conseguir que se empiecen a dibujar estas a partir del cambio, es porque lo que se tiene en cuenta es la posición en memoria de las 256 tiles originales...
Señor Ventura escribió:He visto esa escena en youtube, y se ralentiza un pelín cuando una mina le explota a dos o mas enemigos simultáneamente. Es un problema de rendimiento, y es que no todos los juegos están optimizados igual (capcom era de las mas descuidadas en esto), pero la cuestión es que no hay flickering.
Luego una mina no podría contar como un objeto al mismo nivel que un enemigo al que se le aplica una rutina en su comportamiento mas compleja que "detectar una colisión sin hacer nada"... ¿y por qué se ralentiza entonces?, pues ni idea, podría deberse a que el cambio de estado de la misma no sucede una sola vez, sino tantas veces como enemigos la toquen, y la cpu ya vaya justa de procesamiento dentro de ese frame porque... pues porque capcom...
Lo que si hacían mucho es no usar bien los tiles para dibujar objetos, utilizando mas de los que son necesarios, cosa que impacta directamente en el número de tiles de sprites que pueden dibujarse por línea. en este sentido se puede ver claramente que no optimizaban nada.
GValiente escribió:Para que quede claro: el tile a mostrar en cada celda del mapa viene dado por el valor de BG12NBA + el valor de la celda del tilemap.
Como el rango del valor de cada celda del tilemap en modo 7 va de 0 a 255, da igual los cambios que se pudieran hacer en el tilemap, nunca van a permitir mostrar más de 256 tiles a la vez en pantalla.
El que decide poder mostrar los primeros 256 tiles, los del medio o los últimos de la VRAM es el valor de BG12NBA.
Como no se puede escribir fuera de V-Blank, no hay mucho que se pueda hacer sin detener la PPU mostrando bandas negras o algo peor en pantalla.
Unreal McCoy escribió:Gracias, es una respuesta interesante, y casi era la tercera opción que pensé aunque no sabia como darle forma a la hora de expresarme. Tal como te he comprendido sería como un cálculo de variables estilo gato de Schrödinger, es decir, que las minas funcionan bajo una especie de predicción de aleatoriedad en tiempo real, están vivas, son matemáticamente dinámicas, causando ese 'encendido' 'apagado' un fuerte impacto en la CPU. Sin tu explicación previa no lo hubiera comprendido igual. Disculpas de nuevo por la intromisión en el debate, que insisto, encuentro -y de facto es-, didáctico y ameno.
Unreal McCoy escribió:Señor Ventura escribió:Yo estoy igual que tu. Para cuatro nociones básicas que chapurreo no creo que se pueda considerar que estoy en algún nivel.
Te agradezco el comparativo, pero no cuela
Pienso que es muy interesante lo que debatís aunque me he quedado varios post más arriba. Sin ánimo de interumpiros, deseaba consultar una curiosidad sobre un pasaje de Final Fight 2 durante la tercera fase, que pienso puede ir de la mano de los dos Jacks tendidos en AOF 2.
Casi al principio de la pantalla hay una zona con seis minas agrupadas en dos filas de tres, al situarnos en el centro de ellas y llegar tres enemigos, el juego por sistema se ralentiza de forma notable, parece ser una ralentización programada o precalculada, en mi ignorancia.
Tengo dos teorías sobre el motivo, y una de ellas gracias a lo que habéis expuesto varias veces en distintos hilos.
- Las seis minas están realizadas de tal forma que cuentan como 'objetos completos' o bloques de sprites, y al ser Capcom proclive a desperdiciar tamaño de estos al dibujarlos*, para la Super se estarían dando hasta diez ''personajes'' en pantalla -once en una partida a dobles-.
- La ralentización está programada para evitar la posible colisión simultánea de varios enemigos a la vez en llamas, para que no se produzca un excesivo parpadeo.
*no recuerdo la terminología concreta que explicó Señor Ventura.
Es una duda que tengo desde hace años, pero siempre acaba olvidándoseme. Gracias por todo.
Diskover escribió:Si las minas tienen bloque de colision, ahí tienes la respuesta.
Cada bloque de colisión hay que calcularlo constantemente, y eso es lo que provoca las ralentizaciones.
Señor Ventura escribió:En realidad esto funciona de una forma mas simple.
Una caja de colisiones hace una comprobación a cada frame por si algo lo está tocando. Si lo que lo está tocando tiene programada alguna forma de respuesta, reaccionará según el programa lo tenga prefijado, y si no, lo atravesará como si fuese un fantasma.
Es decir, solo dos cajas de colisiones pueden colisionar y ocasionar algún tipo de respuesta (desaparece el sprite, se sustituye por otro con la animación de una explosión, y el personaje humano inicia las físicas de ser desplazado hacia atrás mientras sustituye su sprite por otro que dibuja unas llamas).
Diskover escribió:Si las minas tienen bloque de colision, ahí tienes la respuesta.
Cada bloque de colisión hay que calcularlo constantemente, y eso es lo que provoca las ralentizaciones.
Señor Ventura escribió:Aparentemente con una comprobación cada frame es suficiente, y si fuese la comprobación lo que causase la ralentización en un principio imagino que las ralentizaciones serían mas insistentes, ¿no?. Solo lo he visto una vez, pero parece que se ralentiza solo cuando la mina explota, y cuando le explota a mas de un enemigo a la vez.
Señor Ventura escribió:Habría que ver si cuando quede una sola mina también sucede lo mismo, ya sería el colmo
Señor Ventura escribió:No quisiera imaginarme que todos los sprites de cada personaje estén buscando una colisión para reaccionar ante ella, porque es innecesario, pero solo tenemos que recordar el pifostio que liaron en konami con el gradius III, en el que literalmente tenías decenas y decenas y decenas de cajas de impacto para tareas que con solo un puñado podías hacer la misma tarea... normal que el juego se quedara tan pegado contínuamente (y aún así, parcheado a 3,58mhz tiene un rendimiento mas que decente, así que no me quiero ni imaginar que tendrán liada en el final fight 2 para que una mina y dos enemigos se carguen el rendimiento así ^^u).
Señor Ventura escribió:Aparentemente con una comprobación cada frame es suficiente, y si fuese la comprobación lo que causase la ralentización en un principio imagino que las ralentizaciones serían mas insistentes, ¿no?. Solo lo he visto una vez, pero parece que se ralentiza solo cuando la mina explota, y cuando le explota a mas de un enemigo a la vez.
Unreal McCoy escribió:Muchísimas gracias Compañeros, ahora me queda más claro. En verdad, hace unos seis meses, un buen amigo bastante mas conocedor que yo, me hablaba sobre las cajas de impacto, merced de la partida a SOR4 que pocos días antes habíamos jugado en su casa, pero no me las planteé aplicadas a las minas, aún es un concepto muy nuevo para mí.
Diskover escribió:En Twiter existe un usuario llamado Upsilandre que se dedica a mostrar cajas de colisiones en juegos de NES. Esta muy bien para darse cuenta de que va la cosa.