[SUPER NINTENDO] Hilo oficial.

@Señor Ventura el tipo de memoria que usa? o por como tiene el bus? hace poco se estaba hablando que el problema de super era que no alcanzaba a actualizar la vram y por eso se recurria a usar franjas negras, o reducir sprites, tambien animaciones. pero no se como han hecho con otros juegos, sin usar chips de apoyo lograron meter sprites grandes, por ahi un juego de rol se entiende porque va todo pausado.
Yo en la época siempre pensé que era la mas potente de las 16bits y tenia sentido ya que salió al menos 2 años mas tarde que su competencia directa.

Tenia toda la prensa comprada cacareando las capaciades tecnicas, que tenia los sprites mas grandes, que la tira de sprites en pantalla a años luz de la competencia, que si el modo 7 que hacia scaling y rotaciones de sprites, los colores de pantalla, luego el sonido alucinante, el superFX y la resolución mucho mas grande de la competencia.

Con los años me he dado cuenta que practicamente todo eran trolas o medias verdades, aún así la consola tiene muchas fortalezas y la disfruté en su día aunque aún más después de los años gracias a traducciones de sus fantasticos RPG, pero cuando he probado toda la competencia en profundidad (PCE y MD) pues me di cuenta que no era ni muchisimo menos lo que nos vendieron en cuanto a hardware.

Para mi pertenece a la mejor generación de consolas dónde es necesario tener todas porque todas aportan algo, si SNES hubiera sido la bestia parda que tendria que haber sido por llevar 2 años de retraso se hubiera comido a la competencia tanto que casi se hubieran quedado en anecdota asi que casi mejor que no haya sido así y tengamos la variedad y calidad que tenemos.

Un Saludo.
cristus escribió:@Señor Ventura el tipo de memoria que usa? o por como tiene el bus?


La wram obliga al resto del pipeline a adaptarse a su frecuencia cuando es usada específicamente.

Posiblemente el dma funcione realmente a 2,68mhz de forma establecida, pero hace años leí que se especulaba que este (es decir, el bus), tenía el ancho de banda que tenía por culpa de tener que adaptarse a la frecuencia que impone la wram, pero es tan fácil como ver a que velocidad transfiere a una sram a 3,58mhz desde el cartucho, y se habría descubierto el pastel.

Editado: parece que se afirma que el dma si funciona a 3,58mhz pudiendo alcanzar casi 9KB por frame, pero que la frecuencia de la wram la mantiene a 2,68mhz, alcanzando sus poco mas de 6KB por frame. Habrá que indagar un poco mas.

cristus escribió:hace poco se estaba hablando que el problema de super era que no alcanzaba a actualizar la vram


Eso dependerá de lo ambicioso que se sea, porque eso no va a ser así en cualquier caso. Con snes se cometían muchos fallos... se underclockeaba la cpu, se utilizaba la página cero para simular comportamientos de otras cpus, se usaba la cpu para descomprimir datos de la rom porque no pocas veces los samples que usaba el spc700 obligaba a necesitar roms mas grandes (y la solución era, como digo, comprimir en lugar de otorgar roms mas amplias)... todo esto lo juntas, y obtienes como resultado una cpu trabajando mas tiempo del que debe.

Cpu y dma comparten bus, y si la cpu está activa demasiado tiempo, le deja menos tiempo al dma. Ahí tienes un motivo real de por qué se necesitaban emplear bandas negras. También influye la propia potencia del procesador, pero no es correcto decir que era un mal procesador, porque si que proporciona una potencia aceptable, el problema es que era potente, pero sin margen para hacerle esas perrerías sin costarle un handicap.


Ahora, cuando hablamos de accesos a la vram, hay que distinguir entre sprites y planos.

La snes tiene la particularidad, por como almacena los tiles en memoria, de manejar diferentes tamaños según su profundidad de color. Como digo, esto afecta a los planos únicamente.

Ya existió un intenso debate sobre la imposibilidad posibilidad de enviar tiles de 3BPP ahorrando un 25% de tiempo de transferencia con respecto a 4BPP, y además puede enviar tiles de 2BPP necesitando solo el 50% del ancho de banda.

En definitiva, el problema de no alcanzar a actualizar la vram dependerá mucho de lo que hagas, de como lo hagas, y de cuanto quieras actualizar, porque SI tiene un ancho de banda generoso.

cristus escribió:y por eso se recurria a usar franjas negras, o reducir sprites, tambien animaciones. pero no se como han hecho con otros juegos, sin usar chips de apoyo lograron meter sprites grandes, por ahi un juego de rol se entiende porque va todo pausado.


Este ejemplo si desactiva algunas scanlines, pero se puede mejorar el resultado. Si usas planos a 2 o 3BPP, el rendimiento con las animaciones aumenta.


@Señor Ventura gracias por la explicación,
el chip de super ya estaba pensado para ahorrar memoria, porque son canales adpcm, pero esas descompresiones las hacia el cpu entonces? hay muchos juegos que para cambiar de sample para la música, se para el juego completo.
me decis que el acceso a memoria por frame es de 6kb, pero para trener una referencia, en otras maquinas de que valores hablamos? por ejemplo pc engine, megadrive, neo geo....
cristus escribió:@Señor Ventura gracias por la explicación,
el chip de super ya estaba pensado para ahorrar memoria, porque son canales adpcm, pero esas descompresiones las hacia el cpu entonces? hay muchos juegos que para cambiar de sample para la música, se para el juego completo.
me decis que el acceso a memoria por frame es de 6kb, pero para trener una referencia, en otras maquinas de que valores hablamos? por ejemplo pc engine, megadrive, neo geo....


Las descompresiones de los samples de audio las realiza el spc700, a lo que me refería es que de por si el audio cuesta una buena parte de la rom, así que los graficos podían comprimirse para no conceder roms mas grandes, y estas si las descomprime la cpu principal, la cual es una tarea adicional que retrasa el momento de dejar libre el bus para el dma, quedándole menos tiempo para transferir.

6,32KB es el pico máximo que nunca vas a aprovechar en situaciones de juego normal (6,14KB realmente debido a una condición de la wram para alimentar las celdas que contienen la información, ya que integran "micro condensadores" que necesitan renovar su carga, parando durante 40 ciclos a mitad de cada scanline, y obligando a todo el sistema a detenerse, también al dma), a menos que planifiques otro tipo de comportamiento, como ir a los 30 fps, cpu externa, bandas negras, etc.

El dma a 3,58mhz da una tasa de 8,89KB/frame, pero por culpa de la wram está limitado a funcionar a 2,68mhz, o directamente lo planificaron para que funcione así. Según leo hay formas de conseguir que transfiera a 3,58mhz, pero se me hace raro que pueda ser posible.

Se que hay áreas de la wram cuyo acceso de lectura/escritura permiten a la cpu a funcionar a 3,58mhz, sin underclockeos, y bien pensado, supongo que esto no podría suceder si la unidad dma (encapsulada junto al 65816 en el 5A22), no estuviese funcionando también a 3,58mhz... en cuyo caso una sram rápida desde el cartucho solucionaría todos los problemas puenteando la wram, pero no he leído documentación al respecto, así que es algo que asemejo mas a una teoría que a una forma de funcionar comprobada.


Prefiero no hablar de otras máquinas en el hilo de la snes, pero puedes preguntar en otros hilos.
@Señor Ventura el chip SA-1 y super fx tienen una muy pequeña ram, pero mas rápida, eso permite mejorar la tasa del dma?
cristus escribió:@Señor Ventura el chip SA-1 y super fx tienen una muy pequeña ram, pero mas rápida, eso permite mejorar la tasa del dma?


En teoría es a eso a lo que se refiere, pero no es necesario un procesador de apoyo.

Recientemente se ha modificado el another world/out of this world para que trabaje sobre el frame buffer en una sram a 3,58mhz desde el cartucho, en lugar de desde la wram utilizando pequeñas áreas a esa frecuencia. Sin procesador de apoyo.

El resultado son 30fps constantes manteniendo la resolución, y no me extrañaría que aún quede margen para mas.

Lo que me fascina es la snes pal, que presumiblemente alcanzaría en esas condiciones los *casi* 21KB por frame. Una burrada. Habria que ver que pasa con esto.
(mensaje borrado)
@Señor Ventura
Recientemente se ha modificado el another world/out of this world para que trabaje sobre el frame buffer en una sram a 3,58mhz


Memoria extra en el cartucho = dopping. Leve, pero no deja de ser un upgrade.

No obstante es interesante ver trabajar a la SNES con memorias sincronizadas con su Pipeline.
@SexyMotherFucker Independientemente de eso, el punto es que ese hubiera sido el rendimiento del another world de la snes si la wram hubiera funcionado a una frecuencia sincronizada con la cpu.

Se le puede preguntar al autor del hack si está empleando el dma a 2,68mhz, porque a 3,58mhz implica transferir antes para dejar aún mas tiempo de cpu para procesar (y a 3,58mhz, no a 2,68mhz), estamos hablando de que solo el problema de la wram está bloqueando un rendimiento muy, muy significativo.

El techo del rendimiento de ese another world podría estar incluso mas arriba, lo que podría implicar quedarte en esos 30fps y subir un poco mas la resolución, o bajar a 20 y mejorar mas claramente la definición.

Supuestamente el dma está underclockeado a 2,68mhz, pero puede funcionar a 3,58mhz. Recordemos que el 65816 y el dma forman parte de un mismo encapsulado (5A22), y personalmente (y sin ninguna información mediante que lo corrobore), digo que me parece extraño que ambas no puedan ir a 3,58mhz al unísono.

Si la cpu funciona a 3,58mhz cuando la memoria funciona a 3,58mhz (o a un múltiplo de 3,58mhz), o cuando accede a ciertas regiones de la propia wram (que si permite sincronizar a 3,58mhz, desconozco la razón exacta, pero si que la propia wram funciona a 3,58mhz en esas situaciones), entonces es de esperar que pase lo mismo con el dma.


DMA -> wram -> ram de vídeo -> 2,68mhz/6,32KB/frame (6,14KB tras reajustes de hardware).

¿DMA -> sram -> ram de video 3,58mhz/8,89KB/frame? (no he calculado en cuanto se queda tras esos reajustes).



Volviendo al another world, desbloquea poder trabajar a 3,58mhz durante todo el bloque de procesos (y no solo durante el breve espacio que proporciona la wram a esos 3,58mhz, pero igual el programa está llamando al DMA funcionando a 3,58mhz, pero no se está aprovechando porque el autor del hack no ha tocado eso para su hack.

Es decir, mejora lo que mejora automáticamente tras imponer esa nueva situación física del hardware, pero el software no lo usa en específico.


Podrá considerarse ilegítimo, pero es el rendimiento que pudo haber sido de no ser por la típica nintendada.
@Señor Ventura
Supuestamente el dma está underclockeado a 2,68mhz,


Si eso es cierto, entonces el ancho de banda de SNES siempre está constreñido aunque use Fastrom. ¿No?

Luego las cifras que llevas AÑOS soltando en el foro deberías retractarlas, y cuando hables de los "Kbs" de diferencia con otras máquinas respecto al DMA poner la cifra equivalente @2'68 MHz [rtfm]

Menos ancho de banda, sus limitaciones en el vblank, clock máximo de CPU de sólo 3'58 MHz, roms lentas... SNES es la reina de las bandas negras por un buen motivo.

¿1990 existían rams disponibles @3'58 MHz?
@SexyMotherFucker El ancho de banda siempre estará constreñido aunque use fast rom, pero supuestamente no si usa una sram a 3,58mhz (que es lo que tenía que haber sido la wram).

Las cifras que llevo años diciendo son ciertas, 6,14KB es el ancho de banda de una snes ntsc de stock. Una snes pal con una sram a 3,58mhz desde el cartucho debería rozar los 21KB por frame, lo cual es bastante monstruoso para un sistema de vídeo como ese. Le estás dando la gasolina que necesita para brillar como debe.

El equivalente a la tasa de transferencia de un lector de CDs a 8X.


Por lo demás, las perradas que le hacían, como emular el comportamiento de otras cpus, o underclockear el pipeline con slow roms, ya no es culpa de la snes, y no es el funcionamiento normal de la máquina. Las bandas negras son gratis, les encantaba lo gratis cuando querían reducir costes.


Y hablando del funcionamiento normal de la máquina... se dejaron tanto por explorar...
@Señor Ventura Juraría que tú siempre has dado 1 cifra diferente dependiendo si era fast o slow Rom, pero bueno.

Por lo demás el what If que te estás montando de la "gasolina" necesaria es similar al de; y si la MD hubiese venido con sus 128kb de vram originales y por consiguiente con doble bus de vídeo...

O; y si la Ps2 hubiese tenido 8MB de EDRAM en lugar de 4.

O la GC 48 MB de 1Tram como la placa Triforce en lugar de los 24 originales.

O la Xbox 128 en lugar de 64.

Etc. Etc.

Interesantes, pero bastante irrelevantes para la mayoría.
SexyMotherFucker escribió:Juraría que tú siempre has dado 1 cifra diferente dependiendo si era fast o slow Rom, pero bueno.


He dado dos cifras:
-6,32KB/ frame, que es el ancho de banda real.
-6,14KB/frame, que es el ancho de banda resultante de una compensación, lo comenté unos posts atrás.

Y luego tenemos la cifra teórica de 8,89KB/frame si transfieres un Byte cada 6 ciclos en lugar de cada 8 ciclos, que es lo que supuestamente te permite el DMA al funcionar a 3,58mhz desplazando la work ram al cartucho usando igualmente una frecuencia de 3,58mhz.

Todo esto en ntsc, en pal los anchos de banda son tremendamente brutos.

NO ENTIENDO por qué hay que luchar contra las significativas restricciones de los formatos ntsc, cuando las PAL estarían desbloqueando un rendimiento brutal, y a 30fps ya ni te digo.

Reivindico el formato pal como base para el benchmarking, que también son super nintendos, digo yo.

La excepción es la nes, que en pal sale perdiendo porque no se sirve de ningún ancho de banda.

SexyMotherFucker escribió:Por lo demás el what If que te estás montando de la "gasolina" necesaria es similar al de; y si la MD hubiese venido con sus 128kb de vram originales y por consiguiente con doble bus de vídeo...


Con la diferencia de que en el caso de la snes el upgrade es real sin recurrir a modificar la consola. Añades una sram a 3,58mhz en el cartucho, y si la suposición es correcta, es que le cambia la cara al rendimiento (parece que está documentado y todo el rollo, pero yo no lo he comprobado personalmente).


P.D: Sobre tu post anterior, aunque 6,14KB te resulte pobre, hay que recordar que las tiles de 2BPP solo pesan 16 Bytes, y comprimir a 3BPP solo le cuestan 24 Bytes al ancho de banda (32 en vram porque se realiza sobre una base de 4BPP).

Puede ocurrir, según configuración, que con ese poco ancho de banda le cunda mas, aunque ya digo que la snes en realidad si puede tener a su disposición aún mas ancho de banda del conocido.
2613 respuestas
149, 50, 51, 52, 53