› Foros › Retro y descatalogado › Consolas clásicas
Gammenon escribió:Por muchos megas que tenga el cartucho en el chip de sonido de la SNES sólo entran 64Kb de instrumentos, voces y "partituras", así que a hacer malabarismos entre la calidad y cantidad de todos estos elementos. Supongo que se podría hacer streaming desde el cartucho pero eso en un juego comercial parece ser que no hubiese sido viable por el precio de la ROM, y tampoco se si podría reproducir efectos de sonido aparte del sonido del streaming.
Señor Ventura escribió:Gammenon escribió:Por muchos megas que tenga el cartucho en el chip de sonido de la SNES sólo entran 64Kb de instrumentos, voces y "partituras", así que a hacer malabarismos entre la calidad y cantidad de todos estos elementos. Supongo que se podría hacer streaming desde el cartucho pero eso en un juego comercial parece ser que no hubiese sido viable por el precio de la ROM, y tampoco se si podría reproducir efectos de sonido aparte del sonido del streaming.
Con 2KB del ancho de banda te monto una canción a 32Khz en su perfecto stereo sin ocupar mas de 32KB de la RAM del SPc700.
El problema es ese, que necesitas reservar 2KB del ancho de banda, por frame.
Pero hay juegos, por ejemplo un super pang, donde podría hacerse sin ningún problema, porque las animaciones de todo el resto de sprites no demandan 3,72KB por frame ni hartos de vino.
NiceKen escribió:Pero a ver, en el Street Fighter 2 Turbo cabían las voces, la música y sus instrumentos, y los round x: fight. Por qué en este caso no?
Porque por instrumentos no será, que en esta versión hay CUATRO en todo el juego y gracias.
Gammenon escribió:En un Pang quizás funcione (obviando lo que ocuparían en la ROM las músicas del streaming) pero en un SF ya el ancho de banda es totalmente insuficiente para recurrir a esta técnica. En todo caso, entonces sería posible hacer streaming y reproducir efectos de sonido en la SPC700? No hay problemas del tipo de que no se puede reproducir nada mientras se está actualizando la RAM del chip?
josete2k escribió:Supongo que no es tanto por los samples que por el driver en sí.
Imagino que meter el sonido en medio de toooooda esa descompresión gráfica sin que te interrumpa otros procesos será cuanto menos laborioso.
Gammenon escribió:Quizás son los diferentes efectos de sonido + voces los que ocupaban tanto? No se si los de Alpha 2 tienen más voces por personaje que los de SF2Turbo o SSF2
Señor Ventura escribió:Es una cuestión de lo que los gráficos le dejan al apartado sonoro en el ancho de banda.
Señor Ventura escribió:Lo irónico es que el 95% del juego está desaprovechando ancho de banda por culpa de que en determinados momentos de un zangief vs zangief el juego alcanza el pico en el requerimiento de ancho de banda para gráficos. Cuántas mas cosas veo del street fighter alpha 2, mas veo alcanzable la versión playstation (a base de notar un desequilibrio en la calidad de animación de los personajes pequeños con respecto a los personajes grandes, o en su defecto evitando que dos zangiefs puedan coincidir, ni siquiera en el modo a 2 players).
[Jun] escribió:Por este motivo que comentas creí hace años que el Street Fighter 2 CE de Megadrive tenía un sonido tan (para mi) pésimo, recuerdo haberlo hablado con algún amigo sobre 1995, "los gráficos y los modos de juego sacrificaron el sonido, mientras que Sreets of Rage -1- es al contrario, los gráficos son modestos pero suena como un vinilo", años despues salió a la luz el tema de los drivers de audio poco elaborados..
[Jun] escribió:En Sunset Riders creo que podemos observar un ejemplo básico de esto, en las fases a caballo tuvieron que omitir la capa de los cactus, supongo que al funcionar en scroll... dos jugadores, más enemigos, más el tren, más el scroll del propio escenario, más los disparos (jugando con Cormano), seguramente hubieran provocado caidas puntuales de frames o buen flickering en los momentos de mayor embrollo, y buscaron que el juego en todo momento permaneciera a 40 Frames -no recuerdo a qué velocidad funciona en Pal-, un poco victoria pírrica, pero el juego se mueve de lujo con unos gráficos (la mayor parte del tiempo) clavados al arcade..
[Jun] escribió:Regresando a Street Fighter Alpha 2 de Super, en el escenario de Sagat quitaron dos capas de scroll respecto al arcade, como has dicho tal vez que no quisieron pillarse los dedos si coincidian dos Sagats o Sagat con Zangief o con Katana, porque el monumento de la Diosa es una carga gráfica considerable... si bien el escenario de Rolent se me antoja más complejo. Creo que el escenario de Rose es uno de los más recortados...
[Jun] escribió:Sobre descomprimir los datos, en el análisis de la revista Super Juegos afirmaron que el parón al inicio del combate se producía por la carga (descompresión) del audio. pero hay un detalle curioso que descubrió un amigo mio, y es que si durante la carga del "Fight" ejecutamos un movimiento (combinación de mágia, avanzar o un golpe simple), este se ejecuta a destiempo tras la carga, lo que puede dar a entender que una parte de la consola está desocupada... a mi juicio esto ocurre porque es sólo el S-DD1 el único que trabaja en ese momento, mientras que el procesador de la Super aguarda para entrar en acción tras el Fight, lo deseable sería que dicha descompresión fuera realizada de manera conjunta, (para minimizar el tiempo de espera) y no sólo por el S-DD1, pero me figuro que sería tecnicamente imposible, o tal vez Capcom no tenía una librería extensa sobre el funcionamiento del Chip
Señor Ventura escribió:(que en snes lo hicieron con sprites, y debo decir que lo hicieron muy cutre, pues incluso siendo con sprites, da para mucho mas).
Señor Ventura escribió:Lo curioso es que el juego en esa fase de los caballos utiliza incluso solo 2 colores por tile en la mayoría de ellos, y hasta 3 tonos en los mas complejos, y la snes podría haber empleado ahí hasta CUATRO capas de scroll, lo cual obliga a dibujar tiles de solo 4 colores (3 mas el transparente), pero no hubiera degradado nada el dibujo tal cual está, y hubiese permitido meter los cactus del arcade, e incluso un plano extra con mas detalles
Señor Ventura escribió:El escenario de sagat está recortado frente al arcade porque para conseguir el mismo degradado de colores que la versión CPS2, ya te obliga a usar los modos gráficos con menos planos simultáneos (que son los que mas colores por tile admiten). El juego está usando un modo gráfico con tres planos, y utiliza uno de ellos para el "HUD" (incluídas las palabras "fight", "round 1,2,3", etc), mientras que los otros dos se usan para el escenario.
Habrían habido maneras de dejar libre ese tercer plano para usarlo también para los escenarios, pero supongo que no quisieron complicarse mas la vida. Aún así, los planos principales admiten mucha mas profundidad de color que la vista en el juego, este port tiene mucho margen de mejora en muchos apartados.
Señor Ventura escribió:Todo eso no le supone ningún esfuerzo ni a la cpu, ni al sistema de vídeo, puesto que tanto la snes como la megadrive admiten manejar de forma separada cada scanline de cada plano, y esto es debido a que al mostrarse, cada línea tiene un valor registrado, y solo es necesario alterarlo para provocar el tipo de comportamiento ya comentado, puesto que revisarse se revisa a cada frame, tanto si se altera, como si no.
Señor Ventura escribió:Es que cabe la posibilidad de que el parón sea provocado adrede con toda la intención para que de tiempo a cargar samples, y no una cuestión de interrupción en el que la cpu se queda congelada por conflictos con el uso del bus.
Posiblemente solo esté cargando samples para tenerlos almacenados en la ram del spc700, y ahorrar ancho de banda durante el combate evitando cargarlos 10 o 15 veces durante el mismo.
magno escribió:No, Señor Ventura, esto ya lo comentamos en el pasado: la SNES y la Megadrive no manejan scanlines, manejan tiles, por lo que el desplazamiento para el scroll se hace en tiles;
magno escribió:y esto sí carga algo la CPU: ten en cuenta que según las pulsaciones del mando (y por tanto la dirección en la que se mueva el personaje y la velocidad a la que lo haga), hay que actualizar más tiles o menos para hacer el scroll. Y hay que calcular qué tiles son, cuánto se desplazan y controlar si son tiles que ya están en VRAM o hay que transferirlas. Aquí hay un dilema, ya que en algunas ocasiones es más costoso comprobar si las tiles están ya en VRAM que transferirlas cada frame; pero claro, si las transfieres cada frame, pierdes ancho de banda con la VRAM. Sobre todo esto pasa en escenarios que son muy variados, como un Final Fight, en los que merece la pena comprobar si están en VRAM para enviarlas y dejar ancho de banda libre para mover a los personajes.
En otros escenarios más repetitivos, como en el Sunset Riders, merece la pena enviarlas cada X frames, ya que al ser repetitivos, muchas partes se reutilizan.
magno escribió:Luego, volviendo al tema de los scanlines, la SNES tiene además el modo HDMA, que sí es independiente de la CPU, y que permite modificar el offset de cada línea por separado, pero esto no vale para hacer scroll, ya que al ser independiente de la CPU, ésta no controlaría cuánto habría que desplazar el fondo según las pulsaciones de los mandos,
magno escribió:Es que no puede haber conflicto de bus por una razón: el S-DD1 descomprime haciendo un DMA, por lo que si lo hace a VRAM tiene que ser en un VBlank, por lo que la pantalla no podría estar encendida todo el rato. Por tanto, descartamos que el S-DD1 esté haciendo cualquier descompresión gráfica durante el parón.
magno escribió:Si el S-DD1 está descomprimiendo audio (cosa que dudo, porque el algoritmo aritmético que lleva no se comporta demasiado bien con el BRR del SPC), entonces ha de hacer un DMA a RAM para de ahí enviar al SPC, que es donde se produciría el parón. Por tanto la CPU no se queda "congelada", sino que va a todo trapo para enviar el audio.
Señor Ventura escribió:Igualmente, cada grupo de 8 scanlines tampoco está tan mal, ya te permite un nivel de detalle para la perspectiva importante... sin embargo, ¿que hay de lo mencionado con el suelo del street fighter 2?, ahí hay scroll, y creo que se puede apreciar que cada scanline va a su bola (salvo que vea mal, claro xD)
Señor Ventura escribió:Por lo que, podría ser que finalmente los samples si estén comprimidos. No veo otra forma de que todo el programa se congele si no hay conflictos con la cpu..
Señor Ventura escribió:P.D: ¿Por qué tengo la idea preestablecida de que no puedes poner roms de mas de 32 megas? (es decir, 2 roms para 64, o 4 roms para 128).
magno escribió:Buena pregunta... Habrá que ver cómo está hecho, pero yo apuesto a que por HDMA y esto es fácil de comprobar si se carga la ROM en SNES9x y se desactiva el HDMA pulsando la tecla '0' en el teclado.
Por HDMA se podría hacer ya que no es un scroll realmente, si no una corrección de perspectiva en donde sabes cuánto tienes que desplazar cada scanline según la posición del personaje en el escenario. Es decir, si por ejemplo en el escenario de Dhalsim cuando el luchador está frente a los elefantes las 64 líneas de pantalla inferiores las tienes que desplazar 1 píxel la última, 2 píxeles la penúltima, 3 píxeles la antepenúltima y así sucesicamente, esto mismo se repetirá cada ves que el luchador pase por ahí, por lo que basta con programar un HDMA cuando las coordenadas del personaje estén en ese punto del escenario.
Quizá está hecho como se ha comentado otras veces: se desplaza cada línea de una tile las veces necesarias para dar ese efecto de perspectiva, y como no se hace en todo el escenario, es un proceso costoso pero realizable.
magno escribió:Los samples pueden estar comprimidos, sí, pero no creo que con el S-DD1. Y si no lo están con el S-DD1, estarán con otro algoritmo que tendrán que implementar por software, con lo cual es costoso también.
magno escribió:Sí, puedes, de hecho las placas que enseñé hace unos meses que diseñé para meter el StarOcean te permiten 3 ROMS de 32 megas, y el límite máximo de la SNES está en 126 Megabits. El problema es que meter 1 chip más te obliga por narices a tener un decodificador de direcciones para acceder a ambos correctamente, por lo que hay que diseñar la placa para meter 3 chips.
magno escribió:Y lo del HDMA que comentas es muy interesante. Es increíble la cantiidad de sitios donde se usa para efectos sencillos. Por ejemplo, los menús de FF6 y Star Ocean usan HDMA para colocar los textos a diferentes alturas, saltándose así la limitación de poner el texto alineado a la rejilla 8x8.
magno escribió:Tengo en mente desde hace tiempo destripar juegos de SNES y sacar su codigo para ver cómo se hacen ciertos efectos, pero yo solo no doy abasto ya...