SirAzraelGrotesque escribió:Me gustaría tener info sobre el tema, conocer qué juegos tuvieron música generada por las propias consolas en sistemas como la PS1, Saturn, Jaguar, 3DO, Nintendo 64 (porque creo que la máquina de Nintendo, normalmente solía utilizar música pre-grabada comprimida. Aunque igual me equivoco) y hasta Amiga CD32 o el CD-i de Phillips, si es que éstas tenían la capacidad de generar la música internamente. Por supuesto, si las siguientes máquinas (Dreamcast, PS2, Gamecube, Xbox, etc...) también tuvieron capacidad de generar música, también me interesan.
La 5ª generación es bastante variada en este sentido.
La mayoría de consolas de esa generación incorporaban un lector de CD y muchos juegos usarón música pregrabada en pistas CDDA estándar. Otros también tenían algún tipo de pistas pregrabadas en diversos formatos streaming almacenados en ficheros en vez de pistas CDDA (Compact Disc Digital Audio, nomenclatura retroactiva después de la creación del CD-ROM).
-PS1: Además de CDDA, usaba streams XA en datos CD MODE2 con diversos ratios de muestreo (37800Hz 4bit ADPCM, por ejemplo, en vez de 44100 16bit PCM del CD normal). No estoy seguro de si también hubo formatos streaming comprimidos tipo MP3, pues creo que no tiene decodificación por hardware, y, por software se cargaría el rendimiento del sistema. También tiene un chip DSP capaz de sintetizar música y efectos de sonido a través de un numero fijo de canales/voces.
-SAT: Como PS1, pero sin XA, y, aparte del DSP, creo que también tiene algún chip FM, pero lo tengo un tanto con pinzas. EDITO: Leo en Wikipedia que Saturn tiene un DSP de 32 canales que pueden ser usados para PCM y FM, y una CPU 68k que lo controla independientemente de las CPUs principales SH2.
Que locura de máquina...
-N64: No tiene CD, claramente, y no, la mayoría de juegos no son con música pregrabada pues los cartuchos por capacidad y precio no lo permiten. Hay alguna música pregrabada, pero no es la tónica general. La mayoría de juegos usa música MIDI con SoundBanks que almacenan los samples de los instrumentos y efectos de sonido (similar a los SoundFonts usados en entornos profesionales).
La consola no tiene hardware de sonido dedicado, si no que el RCP, el corazón del sistema, si no que la música se procesa en cooperación entre la CPU y el RSP (Reality Signal Processor), un subprocesador interno del RCP (Reality Co-Processor).
El RSP es un DSP programable que ejecuta un programa de microcódigo junto con los datos a procesar, todo esto a petición de la CPU. Hay microcódigos de gráficos y microcódigos de audio. Los primeros se encargan de procesar "DisplayLists" (descripciones de qué dibujar en pantalla, y producen comándos gráficos que son enviados, a su vez, al RDP, donde la D es de Display) y, los segundos, "AudioLists", para generar audio.
Los audiolists son generados por la CPU a partir de lo que se supone que tenga que pasar en el juego. Obtiene las secuencias estilo MIDI de la ROM y la información de los efectos de sonido, y con estos va generando "audiolists" con lo que tiene que sonar en cada momento y los envía al RSP junto con el microcódigo que los ha de procesar.
El resultado de procesar ese "audio list" con ese microprograma/microcódigo en el RSP, es un búfer de audio que pasa a AI (Audio Interface) que lo manda al DAC y este a la salida de audio analógico.
Este método de procesar audiolists mediante un microprograma en el RSP no tiene limitaciones en cuanto a canales/voces o complejidad del audio, pero cuanto mas complejo sea, mas recursos y tiempo de proceso se tomará para completar la tarea, quitando tiempo disponible para los gráficos. El RSP también se encarga de hacer las tareas de transformación 3D y procesado de los displaylists para generar comándos gráficos para el RDP, cosa que puede hacer de forma más eficiente que la CPU.
-De Jaguar y 3DO la verdad es que no se casi nada. No tengo ni idea de cómo generan sonido, pero imagino que incluirá CDDA como mínimo.
Las consolas de 6ª generación (DC, PS2, GC, XB) tienen todas algún tipo de DSP con canales fijos, pero tambien es habitual algún tipo de procesamiento combinado donde la CPU hace algunas cosas y luego el DSP mezcla lo suyo propio con lo que viene de la CPU. Todo se trata de cómo reparta la tarea el programador de turno.
Las generaciones posteriores, me voy a arriesgar a decir que todas sintetizan audio enteramente en CPU (o GPU!), como los PCs modernos (donde ya es rarísimo ver tarjetas de audio dedicadas), usando las diferentes capacidades de instrucciones multimedia, SIMD, floating-point, etc para procesar y mezclar.
Posiblemente la WiiU, siendo una extensión de la arquitectura de GC y Wii, tenga un DSP también, pero fijo que la Switch ya pase de esas cosas, especialmente siendo un SOAC de nVidia.
En cuanto a archivos de música de la 5gen.
-PS1: CDDA, XA, y música sintetizada (ripeada en PSF)
-SAT: CDDA, y sintetizada (SSF)
-N64: sintetizada* (USF)
*en N64, incluso la música pregarabada es procesada como sintetizada, y no hay un formato único ni estandar.