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).