Gammenon escribió:El escollo eran los 64K esos del chip de sonido, que ahí tenía que entrar todo lo que se iba a usar en una fase (por ejemplo un combate del SF2) a nivel sonoro: músicas, sus "partituras" y los efectos de sonido. De ahí que algunos juegos tengan efectos muy rateros. La Mega Drive en este sentido es algo más flexible porque si permite un "streaming" un poco más holgado de la ROM al hardware de sonido. Por supuesto con sus propios problemas.
No, eso no funciona así.
Si tuvieses que almacenar todos los samples de la música y los efectos de sonido no te alcanza ni para comer pipas. Lo que se hace es dividir un sample en muchos trocitos, y a cada ciclo transfieres los que el programa demande en ese frame.
Con 64KB tienes de sobra para hacer un buffer de audio, e incluso aplicar efectos (panning, reverb, etc), que también consume su parte de memoria ram (además de alrededor de 0,5KB que el sistema reserva para almacenar el driver de sonido, por lo que quedan disponibles 63,5 de los 64KB). El escollo está en el propio SPC700, no en los 64KB, que así a ojo no se si es lo suficientemente rápido para permitir el ancho de banda suficiente para transferir 8 fragmentos simultáneos a 32khz para sus 8 canales (me da que no).
PERO, siempre hay soluciones:
-Puedes usar el HDMA para aportar un extra de ancho de banda para transferir samples (hasta un tope máximo de 956 Bytes por frame, es decir, 56KB extras por segundo).
-Un archivo de sonido en stereo para una canción puede hacer con solo dos canales en streaming (como un mp3, o un wav, vamos), y así no dispersas el esfuerzo.
-Ciertas fuentes de audio no necesitan incluir la información de todas las bandas. Unos platillos entre los 1000 y los 5000hz es mas que suficiente (es decir, con un sample de hasta 8khz en stereo, o 4khz en mono, es suficiente).