Lázaro escribió:¿Podría alguien explicarme lo de slow rom y fast rom? Se refiere al tipo de memoria rom (acceso a los datos y tal) en la que la original era más lenta que la fast rom y por eso provoca caídas? Al menos algo así he entendido.
De hecho esto es buen momento para desmitificar ciertos funcionamientos de Fast/Slow-ROM.
Tal y como te indican Fast-Rom es un cartucho que permite a la CPU leer la ROM a 3,58 MHz en lugar de 2,68 MHz, en los bancos altos del mapa de memoria.
¿Es un mejora del 33%? ¿O es una mejora del 25%?
- Se dice que es una mejora del 33% porque el aumento de 2,68 MHz a 3,58 MHz es del 33,5%
- En cambio si calculamos la pérdida de eficiencia de entre 3,58MHz a 2,68 MHz es del 25,14%
La gente suele utilizar el número más grande. No es equívoco pero "suena mejor" pudiendo parecer que el rendimiento real y la diferencia de rendimiento es más exagerada de lo que realmente es... ¿Pero es realmente un aumento de rendimiento tan bestia? (hablando de ese 33%)
El acceso de CPU a ROM funciona a 3,58MHz con Fast-ROM pero esto no cambia el tiempo de acceso al resto de componentes sigue siendo el mismo: CPU a RAM/WRAM 2,68MHz, CPU a SRAM 2,68MHz, DMA a VRAM 2,68MHz, CPU a joypad 1,79MHz...
Además hay que tener en cuenta que tampoco evita los propios cuellos de botella del propio sistema, como cuando durante una transferencia DMA, la CPU se pausa mientras el controlador DMA toma el control del bus, lo que significa que Fast-ROM tampoco acelera ese proceso, o cuando para comunicarse con el SPC700, la CPU tiene que esperar a que este responda por los puertos, y el ritmo de esa transferencia lo marca el propio SPC700, no la velocidad de lectura de la ROM.
Con lo que aquí entraríamos en Ley de Amdahl la que describe que el rendimiento de un sistema está limitado por aquellas partes que no se puede cambiar. Te pongo un ejemplo simple:
Imagina que te lleva 1 hora escribir e imprimir un documento: dedicas 40 minutos a escribirlo y la impresora tarda 20 minutos en imprimirlo.
Ahora, decides comprar una impresora de última generación que imprime el mismo documento en 5 minutos. ¿Cuánto tardas ahora en tener el documento físico en tus manos? 45 minutos. Aunque hayas mejorado la impresora, sigues escribiendo a un ritmo que te lleva 40 minutos terminar el texto. En este caso, tú eres quien no ha mejorado, lo que hace que esos 40 minutos sean inevitables.
La mejora entre la impresora antigua y la nueva es del 75 % (de 20 minutos a 5 minutos), pero la mejora total para la tarea completa es solo del 25 % (de 1 hora a 45 minutos).
Luego ¿Cómo se compara esto con lo que hemos visto con Fast/Slow-ROM?
A pesar de que el acceso a ROM aumente ese 33%, a nivel general y dependiendo de las exigencias de acceso a ROM que requiera un juego u otro, la mejora variará según el escenario, pero a nivel general, un máximo de mejora de rendimiento de alrededor del 15% es lo que se logra con Fast-ROM.
Es por ello que aunque hay una mejora notable, juegos en Fast-ROM que antes no lo eran llegan a presentar aún ralentizaciones (Contra III, Thunder Spirits,SCIV...) por eso hackers como Vitor Vilela son más conservadores al declarar "casi todo".
Como dice
@cirote3 la SNES arranca en modo SLOW, pero aunque vea el flag marcado de FAST-ROM, hay que verificar que también se esté accediendo a la zona de la memoria rápida de la ROM:

Hay que mirar que el código se esté ejecutando entre los bancos $80 y $FF (los Bancos 83D... se encuentran en esa zona):

Luego existen muchos juegos de SNES a Slow-ROM que funcionan perfectamente a 60FPS (como el nombreado F-Zero) donde poner Fast-ROM no tendría demasiado sentido ya ya mantiene una estabilidad perfecta. Gracias a que la PPU se encarga de lo más pesado (el modo 7), la CPU tiene que encargarse de las posiciones relativas de un máximo de 4 naves en pantalla respecto al jugador, el HUD, marcadores... El coste para la CPU en esta parte es pequeño; lo que sí consume es tiempo de bus por el HDMA.
A partir de aquí podríamos teorizar en F-Zero funcionase con Fast-ROM cuántos elementos más podríamos añadirle o no pero la realidad es que no existe de momento tal ROM para realizar comprobaciones y cómo se viese afectado el rendimiento según el número y la razón de esos elementos.