SPC700

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda
Nintendo S-SMP. Un procesador de uso general (CPU) con núcleo basado en el procesador MOS 6502, es el encargado de ejecutar el código para la música del juego.

El SONY SPC700 o Nintendo S-SMP es el chip de sonido de 8 bits diseñado por Ken Kutaragi y usado en la videoconsola Super Nintendo Entertainment System (SNES) junto con un procesador digital de señal (DSP). El SPC700 y su DSP acompañante de 16 bits fueron desarrollados y fabricados por Sony, que más tarde entraría en el mercado de los videojuegos con su PlayStation. El S-DSP era muy avanzado para su época (1990) y en cierto modo puede decirse que rivaliza con las actuales tarjetas de sonido de síntesis mediante tabla de ondas.

Detalles técnicos[editar]

Dentro de la SNES el SPC700 está situado sobre el DSP, en el lado izquierdo del módulo de sonido. El chip contiene 64KB de RAM interna y funciona a 2,048 MHz. Tiene seis registros internos y puede ejecutar 256 opcodes. El SPC700 almacena los samples de sonido en RAM en formato comprimido (BRR). El conjunto de instrucciones del SPC700 es muy parecido al de la familia de procesadores 6502, pero incluye instrucciones adicionales, como XCN, que intercambian las porciones de 4 bits inferiores y superiores del acumulador de 8 bits, y una instrucción para multiplicar 8 por 8 bits en un resultado de 16.


SPC700[editar]

El SPC700 funciona de una manera bastante poco convencional para un procesador de sonido. La CPU principal de la SNES transfiere bloques de datos que contienen comandos y muestras de sonido a la memoria interna del SPC700. Estos comandos son programas en código máquina desarrollados para el SPC700 de forma similar a como se escriben los programas para los ordenadores convencionales. Como ello, el SPC700 puede considerarse un coprocesador dedicado al sonido en la SNES. El nombre del formato de sonido relacionado con la emulación .SPC procede del nombre de este procesador.


DSP[editar]

Nintendo S-DSP. El procesador digital de señales es el que en realidad genera el sondio. Existen 2 revisiones: la revisión de módulo desmontable y la revisión 'A', ésta, su diferencia es que viene montada sobre el circuito principal.
En revisiones posteriores, los procesadores de sonido (S-SMP y S-DSP) fueron unificados en uno solo.

El DSP acompañante del SPC700 funciona de forma parecida a las tarjetas de sonido modernas de síntesis mediante tabla de ondas, como por ejemplo la Sound Blaster Audigy. Es capaz de generar 8 voces simultáneas en cualquier tono y volumen. Soporta el panning de voces, el control del envolvente acústico, el eco con filtro (mediante un FIR programable de 8 términos) y el uso de ruido como fuente sonora (útil para ciertos efectos sonoros tales como el viento). Genera una salida de audio estéreo de 16 bits a una frecuencia de muestreo de 32 kHz. La comunicación entre el SPC700 y el DSP se realizan mediante E/S mapeada en memoria (MMIO). Debido al tipo de interpolación (Gaussian), la calidad del sonido se ve opacada, muchos emuladores implementaron diferentes interpolaciones para mejorar considerablemente la calidad sonora.


RAM[editar]

La memoria RAM es accedida a 3.072 MHz mediante tres accesos, multiplexado entre el S-SMP y el S-DSP, un acceso y dos accesos, respectivamente. Esta ram es usada para almacenar el código del S-SMP y de la pila o stack, así como muestras de sonido y una tabla de punteros a éstos, y el buffer de eco para el S-DSP. Su tamaño es de 64KB

Resumen[editar]

  • Sonido estéreo
  • 16-bit, 32kHz
  • Síntesis de sonido basada en tablas de ondas comprimidas mediante el algoritmo BRR[1]
  • 8 Canales
  • Soporte para panning por canal
  • Modos de envolvente acústico o envelope: ADSR, Directo, Lineal (incrementar), Lineal (decrementar), Bent Line y Exponencial (decrementar)
  • Sample rate hasta 128kHz[1]
  • Cambiar escala de tono (o pitch key)
  • Ajuste de volumen general y de eco, incluida la capacidad de invertir la fase del sonido
  • Soporta hasta 240 milisegundos de eco
  • Retroalimentación (feedback) de 99 a -100 por ciento
  • Filtro de eco FIR de 8 controles con valores soportados de 127 a -128
  • Modulación de tono (pitch mod)
  • Generador de ruido blanco de 0 Hz hasta 32 KHz

Misceláneo[editar]

Sonido envolvente[editar]

Además de las capacidades estéreo, el S-DSP soporta volúmenes en fase invertida (al igual que el filtro FIR), el cual sirve para enviar señal en un decodificador Dolby Surround [2] .

Modulación de tono[editar]

La modulación de tono (pitch modulation) consiste en una forma muy primitiva de obtener síntesis de frecuencia modulada. Esta característica se puede usar en los siguientes canales: [3]

   Modulación de tono
         Canales
            7     6     5     4     3     2     1     0
         +-----+-----+-----+-----+-----+-----+-----+-----+
         |VOIC6|VOIC5|VOIC4|VOIC3|VOIC2|VOIC1|VOIC0|  -  |
         +-----+-----+-----+-----+-----+-----+-----+-----+

Como se puede observar, donde VOICn representa un canal, y n es el número del otro canal. Tome en cuenta que el canal 0 no se puede hacer este effecto. Su funcionamiento consiste en multiplicar el tono actual de un canal n por OUTX más uno del canal previo. Esto se traduce matemáticamente de la siguiente manera:

   Pm = p[n] * (1 + OUTX[n-1])

Donde Pm es modulación de tono, p es tono y n es el número del canal

Su uso consiste en usar dos canales:[4]

La muestra de sonido usada para el ejemplo de sonido. Su tamaño original es de 32 bytes.
  • El primer canal actuará como oscilador de baja/alta frecuencia según sea la frecuencia del tono.
  • Se le puede asignar arbitrariamente un tipo de onda (sea sinusoidal, cuadrada, triangular o una compleja)
  • Para cambiar la profundidad de la modulación, la ganancia (o ADSR) del canal como oscilador debe ajustarse. Tome en cuenta que no afecta el cambiar el volumen general del canal.
  • El segundo será el modulado.
  • Llevará la misma u otro tipo de onda, sea un instrumento o un pulso.
Síntesis de frecuencia modulada usando la característica "pitch modulation" del S-DSP.Todas las notas usan dos canales, uno sin sonido (oscilador) y el otro con sonido (modulado). El oscilador trabaja a una frecuencia entre 8 y 1000 Hz.* Las primeras ocho notas usan dos canales; el panorama del oscilador está hacia la izquierda (pan: 20/128), y se encuentra con sonido activado.* Las ocho siguientes usan las mismas configuraciones, salvo el panorama, está centrado (pan: 64/128).* Las ocho siguientes, el oscilador se encuentra sin sonido (Nótese el cambio del bajo).* La siguiente nota es una oscilación de tono (el oscilador no tiene sonido)* La posterior nota es otra oscilación de tono, parecido al de una nave espacial (el oscilador no tiene sonido).

Con esto se puede generar sonidos muy similares a los que puede generar los procesadores FM de Yamaha.[5]

Referencias[editar]

  1. a b «SPC700 Reference».  Referencias sobre el SPC700, ver DSP Voice Register: P y Bit Rate Reduction (BRR) (en inglés)
  2. «Surround sound on SNES».  ZSNES Board (en inglés)
  3. «DSP Register: Pitch Modulation».  ekid.nintendev.com/snes (en inglés)
  4. «SNES Audio Hardware Info - Some FM synth».  NesDev.com (en inglés)
  5. «SNES Audio Hardware Info - "the S-DSP is an FM synthesizer"».  NesDev.com (en inglés)

Enlaces externos[editar]

Wikilibros