› Foros › Retro y descatalogado › Consolas clásicas
sgonzalez escribió:@magno , aprovechando te hago una preguntita. ¿La detección de colisiones es vía hard? ¿La hace la CPU o la PPU? Creo recordar que en los micros de 8 bits las colisiones las soportaban los chips de video dejando a las cpus libres. Pero vamos te pregunto desde el desconocimiento.
Yoshi's escribió:Calculinho escribió:Yoshi's escribió:
El juego salió en el año 96 cuando ya había muchos juegos de 32 megas y el chip FX2.
En 1996 no había muchos juegos de 32 megabytes, lo que había era muchos juegos de 32 megabits (4 megabytes). Doom 64 es de 1997 y va metido con calzador en una rom de 64 megabits (8megabytes).
Los primeros juegos de N64 suelen ocupar 8 megabytes (Star Wars Shadows of Empire, Mario 64, Wave Race, Mario kart 64, Doom 64) y alguno de 12 (Goldeneye creo). Puede que haya alguno de 32 en esas fechas, pero este tamaño de ROM en general no abunda en todo el fullset suele ser en juegos de 1997 en adelante.
En Snes no estoy seguro, pero creo que lo máximo fueron 32 megabits (4 megabytes).
Obviamente, yo estaba hablando de 32 megabits.
El usuario al que he citado dice que los juegos de Super Nintendo de la época eran de 16 megas (se entienden megabits porque juegos de 16 megabytes NO hay ninguno), y yo le replico que no, que en 1996 ya no eran 16, sino 32 megabits.
En la época los cartuchos se medían en megabits (tanto en SNES como en N64). Cuando en SNES hablamos de megas son megabits siempre.
LordFran77 escribió:gynion escribió:LordFran77 escribió:No, no he dicho que ese fuese sólo el motivo, de hecho he comenzado diciendo "con los conocimientos actuales y sin limite de espacio, quizás a su manera,", ya ahí entran tres factores en juego, los conocimientos actuales, el límite de espacio, y tener que realizarlo a su manera con sus rutinas gráficas particulares; tampoco he afirmado que solo hubiesen juegos de 16 megas, de hecho por eso escribí "como se estilaba en la época", ya que los demás fueron los que menos, luego ya está lo que cada uno quiera acotar mi mensaje, tampoco he dicho en ningún momento que no se pudiese hacer nada, pero vaya sí, ni triplicándolo creo que sería suficiente para hacer algo de peso, es que los juegos de neo geo pesan una barbaridad y tienen mucha chicha, es sólo una percepción personal mía eso sí, claro está.
Tampoco se podría haber hecho un Metal Slug para SNES en su momento con los conocimientos antiguos, pero no porque esos conocimientos y capacidades fueran insuficientes, sino porque Metal Slug no existía durante la época fuerte de las 16bits, y ningún programador de 16bits lo pudo tener como referencia. El primer Metal Slug salió en el 1996, en los últimos estertores de las 16bits, y para cuando la saga se hizo tan popular SNES ya estaba más que liquidada.
Ya claro, eso sí, yo ya en fechas me pierdo, pero cada vez que recuerdo las demás conversiones de neo geo de aquella época y extrapolo... la verdad que no soy demasiado optimista de que hubiesen sacado algo decente, no sé hasta que punto le hubiesen sacado partido con la técnica de entonces, más teniendo en cuenta el factor tiempo y rentabilidad, eso sí, a día de hoy lo coge un grupo güeno de verdad, y con el cariño que se merece lo adapta, podría salir algo interesante, dentro de lo que cabe claro, porque la calidad de la versión de neo geo es que es sublime y sempiterna.
LordFran77 escribió:Si leyeras mis replicas de más adelante con un compañero del foro te darías cuenta de que lo que acabas de afirmar sobre el usuario "al que acababas de citar" lo has supuesto tú solo por ti mismo cogiendo una sola frase de todo mi mensaje para sacarla del contexto y llevarla donde mejor te ha parecido, no las pienso repetir todas que llevo un día regulero y voy fatal de tiempo, un mal día lo tiene cualquiera, pero bueno venga, aunque solo una...
magno escribió:Con el paso del tiempo sigues teniendo el mismo cacao mental con la SNES y cómo funciona D
Ya te digo que tu afirmación no es cierta
magno escribió:no hay ninguna máscara de sprites, pero voy a intentar que llegues tú solo a la conclusión: si existe tal máscara... ¿dónde se almacena en la PPU? Es decir, si la PPU ha de enmascarar píxeles para no mostrarlos en pantalla, habrá que decirle en algún sitio qué píxeles se dibujan y cuáles no. ¿Sugieres que hay entonces una zona de memoria VRAM con información de máscara para cada píxel?
Si esto fuera así, necesitarías un buffer del tamaño de la pantalla para guardar esa máscara y por tanto, habría que decirle a la PPU dónde empieza ese buffer. ¿Qué registro de la PPU se usa para ello?
magno escribió:Solución: no existe nada de eso que dices de máscara: el color 0 de la paleta es el color transparente para cada sprite; eso quiere decir que todos los píxeles que dibujes en el sprite con ese color, se verá transparente, es decir, dejará ver lo que hay detrás del sprite. Eso no es una técnica, eso es una obligación en un sistema basado en tiles para que los sprites no tengan que rellenar todo un tile y puedan tener formas redondeadas.
Y como te decía, esto no se usa en "algún juego" en concreto, sino en TODOS absolutamente del catálogo de la SNES, porque es la forma en la que trabaja la PPU.
magno escribió:No, ya que si haces scroll de los BG, también tienes que mover los sprites para que sigan ese scroll, lo cual implica actualizar toda la copia de la tabla OAM que tienes en RAM antes de enviarla a OAM. Por tanto la CPU no queda libre, ha de calcular las colisiones de TODOS esos sprites en la nueva posición del scroll.
magno escribió:No, ya te he comentado muchas veces que el fill-rate de la SNES no suele ser el problema en el 99% de los casos.
Si con "fill-rate" te refieres al límite de píxeles por scanline en tiles de sprites, el límite sigue estando si usas esa "técnica" que dices: de hecho se ve en el video que has puesto, ya que el máximo de ancho son 8 tiles de 16x16 (es decir, las 32 tiles 8x8 por scanline).
magno escribió:Ya te digo que no es ningún "truco" y por supuesto que con el chip de apoyo NO te saltas la limitación de la PPU. Piensa bien eso que dices, es una barbaridad: la PPU tiene una limitación en cómo lee las tiles de su VRAM interna, y dices que con un chip externo, que como mucho puede ESCRIBIR en esa VRAM, la PPU mágicamente deja de tener esa limitación. Eso no es como dices, es técnicamente imposible.
Sexy MotherFucker escribió:resumiendo: es imposible entonces saltarse el límite de sprites por scanline de la SNES ¿?
Yoshi's escribió:LordFran77 escribió:Si leyeras mis replicas de más adelante con un compañero del foro te darías cuenta de que lo que acabas de afirmar sobre el usuario "al que acababas de citar" lo has supuesto tú solo por ti mismo cogiendo una sola frase de todo mi mensaje para sacarla del contexto y llevarla donde mejor te ha parecido, no las pienso repetir todas que llevo un día regulero y voy fatal de tiempo, un mal día lo tiene cualquiera, pero bueno venga, aunque solo una...
No te sigo, yo lo que hablaba con Calculinho es que tanto tú como yo estábamos hablando de megabits, y eso es cierto.
Si quieres replicarme, cítame sobre mi mensaje original, NO sobre la respuesta a Calculinho:
viewtopic.php?p=1747246867
magno escribió:sgonzalez escribió:@magno , aprovechando te hago una preguntita. ¿La detección de colisiones es vía hard? ¿La hace la CPU o la PPU? Creo recordar que en los micros de 8 bits las colisiones las soportaban los chips de video dejando a las cpus libres. Pero vamos te pregunto desde el desconocimiento.
No conozco ninguna PPU que haga detección de colisiones, ya que las PPUs suelen trabajar con las tiles de la imagen y aplican efectos sobre ellas, pero no saben si dentro de esa tile, en el pixel (4,6) por ejemplo empieza un sprite que colisiona con una pared que está en la tile adyacente. Es decir, que la PPU trabaja con píxeles/tiles y no con lo que representan esas tiles/píxeles, ya sean personajes o escenarios.
La colisión siempre la detecta la CPU, que es la que procesa unos metadatos que van asociados a los sprites: tamaño del sprite, dirección donde mira, altura a la que está desde el suelo, etc.
Y se hace por software, no por hardware, ya que si se hiciera por hardware tendría que ser una unidad dedicada a la que le pasaras esos metadatos y calculara la colisión; esos metadatos cambian según el tipo de juego, por lo que no podría ponerse como un hardware que se usara de forma genérica.
Señor Ventura escribió:De verdad, puse hasta un vídeo, yo es que no se que tengo que hacer ya.
Sobre todo para que deje de usarse para insultar, que esa es otra.
Señor Ventura escribió:La OAM que se ve en el vídeo existe, no tiene nada de incierta.
Señor Ventura escribió:Son sprites, sin mas.
Y creo que se entiende y se ve perfectamente que se dispone de ellos a modo de lienzo, de máscara, de pantalla, de cortina. También se entiende así si se observa el vídeo.
Señor Ventura escribió:Luego se han usado estas cosas por el foro para tirar mierda, provocar, y demás historias, y no creo que sea correcto, porque se entiende perfectamente que quiero decir, mas aún con un vídeo que lo contextualiza sin problema.
Señor Ventura escribió:Los sprites llegan así a la vram de la snes desde la ram del sfx, dividios en tiles, y en el caso del super mario world son representados en sprites, es que ni entro en detalles.
Señor Ventura escribió:Exigiría una sincronización mas difícil de llevar a cabo que hacerlo todo directamente con un procesador de apoyo.
Por eso dije que lo suyo sería hacerlo todo desde ahí. En el caso concreto del super mario world 2, al no haber scroll, la snes puede pintar el fondo ella sola, y lo que hay dentro de los sprites son calculados por el super fx para luefgo ser enviados a la vram.
Señor Ventura escribió:Y la gracia de hacerlo con sprites, es que a la snes le dejas libre los planos para que su sistema gráfico pueda hacer scroll con uno o varios planos,
Señor Ventura escribió:Me refiero que si haces que cada elemento movil de esa escena sea representada por los sprites que correspondan, te pasarías de tasa de relleno, y no habría OAM suficiente.
Señor Ventura escribió:Te la saltas porque estás evitando que sea representado de la forma ordinaria, y así si que no hay recursos.
Señor Ventura escribió:¿Cuantos elementos móviles hay en la pantalla de presentación del super mario world que se ve en el vídeo? (lo que se ve dentro de cada sprite).
Señor Ventura escribió:Sexy MotherFucker escribió:resumiendo: es imposible entonces saltarse el límite de sprites por scanline de la SNES ¿?
De verdad, puse hasta un vídeo, yo es que no se que tengo que hacer ya.
theelf escribió:Si se analiza el metal slug, la primera fase, es facil ver q esta todo diseñado para no saturar la vram
Sexy MotherFucker escribió:a diferencia de SNES/MD que están limitadas por su única VRAM en la que guardan todo (paletas, sprites, tiles de fondo, etc)
Una de las cosas que mas se notarian en una hipotetica conversion de Metal Slug a Supernes serian el recorte en animaciones pues en los juegos originales hasta los personajes tienen animaciones faciales. Ahora bien yo me pregunto algo, que tanto impacto tienen estas animaciones en los juegos aparte de hacerlos ver espectaculares?, o sea las animaciones aportan realmente algo a la jugabilidad?.
Para mi no, si estan bonitas y son detalles esteticos que molan pero si no las tuviera el juego jugablemente seguiria siendo igual, claro solo es mi opinion pero la exagerada cantidad de animaciones de MS me parecen solo detalles estéticos para presumir putensia grafica.
En donde si que podria haber una repercusion jugable es en la cantidad de enemigos en pantalla pero supernes ya demostro en el port de Kings of the Round que es capaz de mostrar varios enemigos en pantalla, sobre todo consideramos que los personajes de Metal Slug son enanos en comparacion con el tamaño de los personajes que suelen tener los juegos de Supernes.
gynion escribió:Si nos ponemos a revisar todos los juegos, para eliminar ese tipo de detalles "innecesarios", como si fuéramos bots de Skynet o de Matrix, el panorama genérico que íbamos a dejar en los catálogos sería bonico.
radorn escribió:Pues si, acabarían todos los juegos con graficos esquematicos tipo Atari 2600 o peor xDDD
O, ya siendo aun más radicales, serían todo aventuras de texto, con montones de coordenadas y datos de estado para informarnos de dónde están las cosas. Total, para qué gastar memoria en inútiles graficos.
El LPSC al contrario de otros sistemas puede leer directamente los patrones/sprites directamente de la ROM de los cartuchos y operar desde ellos
magno escribió:sgonzalez escribió:@magno , aprovechando te hago una preguntita. ¿La detección de colisiones es vía hard? ¿La hace la CPU o la PPU? Creo recordar que en los micros de 8 bits las colisiones las soportaban los chips de video dejando a las cpus libres. Pero vamos te pregunto desde el desconocimiento.
No conozco ninguna PPU que haga detección de colisiones, ya que las PPUs suelen trabajar con las tiles de la imagen y aplican efectos sobre ellas, pero no saben si dentro de esa tile, en el pixel (4,6) por ejemplo empieza un sprite que colisiona con una pared que está en la tile adyacente. Es decir, que la PPU trabaja con píxeles/tiles y no con lo que representan esas tiles/píxeles, ya sean personajes o escenarios.
La colisión siempre la detecta la CPU, que es la que procesa unos metadatos que van asociados a los sprites: tamaño del sprite, dirección donde mira, altura a la que está desde el suelo, etc.
Y se hace por software, no por hardware, ya que si se hiciera por hardware tendría que ser una unidad dedicada a la que le pasaras esos metadatos y calculara la colisión; esos metadatos cambian según el tipo de juego, por lo que no podría ponerse como un hardware que se usara de forma genérica.
magno escribió:@Señor Ventura
Lo primero de todo es que nadie te está insultando, sólo te estoy explicando en qué te equivocas. Y aunque le intentes dar vueltas semánticamente, lo que exponías no es cierto; te respondo a continuación:
magno escribió:Señor Ventura escribió:La OAM que se ve en el vídeo existe, no tiene nada de incierta.
La OAM no es lo que se ve en el video por mucho que la pestaña de la ventana diga eso: lo que se ve en el video es la parte de VRAM que almacena las tiles de los sprites apuntados desde la OAM. La OAM es una tabla de 544 bytes con los primeros 512 bytes con los datos para los 128 sprites (4 bytes por sprite) y los 32 bytes siguientes (256 bits) son los 2 bits extras para la posición horizontal del sprite y el otro para cambiar la página de VRAM donde están las tiles del spruite. Por tanto, la OAM son 544 bytes donde no hay tiles, por lo que estás viendo en ese video no es la OAM, es la VRAM (que es el único sitio posible donde se alamacenan las tiles que se ven en pantalla, ya sean de BGs o de sprites)
magno escribió:¿A modo de lienzo? Dices que se dispone a modo de lienzo como en todos los juegos de SNES... por tanto no hay ninguna "técnica" ahí, es como funciona el sistema. Lo que no es de ninguna manera es una máscara; supongo que no estás muy familiarizado con estos términos y los usas sin el debido conocimiento, pero para nada es una máscara, más bien es algo parecido a un canal alfa, donde un color se usa para hacer la transparencia.
magno escribió:No se entiende perfectamente lo que quieres decir, porque leyendo tus palabras das una idea totalmente errónea de lo que realmente ocurre en la SNES; quizá sí sepas cómo va a SNES, pero entonces tu problema es que lo explicas mal.
Ya te lo dije anteriormente: no te metas en estos barrizales y nadie usará tus propios comentarios en tu contra.
magno escribió:Claro, esto que dices sí es verdad, así es como funciona el SuperFX, nada de máscaras ni técnicas raras que solucionen el problema de sprites por scanline.
magno escribió:Señor Ventura escribió:Exigiría una sincronización mas difícil de llevar a cabo que hacerlo todo directamente con un procesador de apoyo.
Por eso dije que lo suyo sería hacerlo todo desde ahí. En el caso concreto del super mario world 2, al no haber scroll, la snes puede pintar el fondo ella sola, y lo que hay dentro de los sprites son calculados por el super fx para luefgo ser enviados a la vram.
No dijiste eso ni de coña; en este comentario dices que "no hay scroll" y yo te estaba respondiendo a éste en el que dices qué pasaría si hubiera scroll:Señor Ventura escribió:Y la gracia de hacerlo con sprites, es que a la snes le dejas libre los planos para que su sistema gráfico pueda hacer scroll con uno o varios planos,
magno escribió:Señor Ventura escribió:Me refiero que si haces que cada elemento movil de esa escena sea representada por los sprites que correspondan, te pasarías de tasa de relleno, y no habría OAM suficiente.
Maaaaaaaadre mía, qué cacao llevas......... ¡que la OAM no lleva tiles! A ver, la "tasa de relleno" de la que tanto hablas es la capacidad de enviar píxeles a pantalla, que en el caso de SNES es fija: la SNES está diseñada para ser suficientemente capaz de generar la resolución de 256x240 píxeles de pantalla, es decir, que el fill-rate se deriva del reloj de píxel y la resolución, ambas fijas; lo que supongo que quieres decir es la tasa de envío de tiles a VRAM, que no es el fill rate, pero en este caso, esa tasa de envío de tiles a VRAM no tiene que ver con la OAM porque ésta no lleva tiles.
magno escribió:Señor Ventura escribió:Te la saltas porque estás evitando que sea representado de la forma ordinaria, y así si que no hay recursos.
No es cierto, no te la saltas de ninguna manera porque esa imagen del SMW2 es una imagen como cualquier otra hecha con sprites y sigue teniendo la misma limitación, que ya te he comentado que en el video se ve claramente como no ocurre el error: hay 32 tiles en un scanline, por tanto, no hay problema.
magno escribió:Señor Ventura escribió:¿Cuantos elementos móviles hay en la pantalla de presentación del super mario world que se ve en el vídeo? (lo que se ve dentro de cada sprite).
Malinterpretas lo que estás viendo en ese video totalmente: los "elementos móviles" son tiles que se están actualizando en VRAM, mientras que los sprites son estáticos, es decir, la tabla OAM está configurada para que aparezcan en pantalla ciertos objetos de 16x16 píxeles y hace un "layout" con esos sprites, poniéndolos uno al lado de otro de la manera adecuada para la imagen. Luego, el SuperFX está generando la imagen y envía a VRAM las tiles que se pintarán en esas posiciones de pantalla. No hay ningún misterio más, es lo que se hace en TODOS los juegos de SNES.
magno escribió:Pues estaría bien que empezaras a entender de lo que hablas, por que en ese video no explica nada de lo que has dicho en los otros posts.
Señor Ventura escribió:Mira los votos positivos que has recibido. Están encantados.
Sexy MotherFucker escribió:Señor Ventura escribió:Mira los votos positivos que has recibido. Están encantados.
En mi caso yo estoy encantado de que exista gente tan ducha en la materia técnica que saque tiempo y ganas de compartir su conocimiento en EOL, por eso al igual que con wwwendigo o kusfo trato de ser cortés y agradecido. Entiendo que en cierto momento yo no tuve un comportamiento muy afortunado en el subforo contigo, pero vamos te aseguro que eso para mí forma parte del pasado cómo una mala racha personal que tuve.
Y ahora, de nuevo, voy a leerme vuestros tochos a ver qué no he entendido xD
gaditanomania escribió:Es obvio que es un forero que domina sobre programacion
shutupandsmile escribió:A mí también me parece bastante triste que algunos aprovechen para meterse con Ventura cuando magno le corrige en algunas cosas, máxime cuando la mayoría no tienen ni una décima parte de conocimiento en programación.
En vez de hacer leña del árbol caído os animo a que le contraargumentéis con conocimiento de causa.
Señor Ventura escribió:Si observas la imagen de la presentación del super mario world 2, y no sus sprites desde un debugger, podrás notar el número de objetos que están siendo calculados POR EL SUPER FX.
Si ese número de objetos tuviesen que ser representados con los 128 slots para sprites de snes, no serían suficientes porque te pasarías del límite por scanline, y seguramente porque necesitarías mas de 128 sprites.
Sin embargo, usando los 40 sprites que la snes destina para que el super fx cambie su información gráfica desde la ram del cartucho (esto es, renderizar la imagen, dividirla en tiles, y mandarla a la VRAM), podrás visualizar todo lo que se renderice desde el mismo.
En definitiva, ahí hay 40 sprites, pero hay muchos mas objetos que 40.
Señor Ventura escribió:En esta ocasión no me he equivocado en nada, ni tampoco estoy dejando de comprender como funciona la snes en este caso concreto, salvo porque no hay un enmascaramiento de sprites, pero si que se puede entender que la definición de "máscara" va en el sentido de que se usan 40 sprites como una pequeña pantalla de cine.
gaditanomania escribió:@Señor Ventura
No se si programas o no. Quería decir que dominas bastante el tema aunque sea desde un punto de vista teórico. Y sobre todo desde lo profano de mi situación desde luego es digno de admiración.
Dio_Brand escribió:No te engañes, la realidad es que solo tiene un montón de datos memorizados que repite como un papagayo, pero que no entiende realmente, y que usa en ciertos hilos defender ideas absurdas. Fijate en como magno lo esta desmontando constantemente.
gaditanomania escribió:@Señor Ventura
No se si programas o no. Quería decir que dominas bastante el tema aunque sea desde un punto de vista teórico. Y sobre todo desde lo profano de mi situación desde luego es digno de admiración.