El AY-8910 de General Instruments fue un chip generador de sonidos que se utilizó para generar músicas y efectos sonoros en la gran mayoría de ordenadores y máquinas recreativas de 8 y 16 bits. También se le conoce como YM2149 por el clon que vendía por aquella época Yamaha y que también se usó en gran cantidad de sistemas en la época.
¿Qué es el AY-8910 y para qué servía?
Al igual que otros chips con la misma funcionalidad, su tarea principal era liberar a la CPU de tener que generar el audio en los videojuegos. Dado que el problema de la época era que el microprocesador tenía que parar la ejecución del programa principal para generar el audio del juego, ya sea una melodía o un simple efecto sonoro. Es más, los primeros videojuegos carecían de banda sonora precisamente por dicha limitación.
Por lo que el AY-8910 es primero de todo un generador de sonido programable o PSG, y la mejor manera de entender un chip de este tipo es verlo como un instrumento o más bien una serie de instrumentos que generan un tipo de sonido característico según el tipo de onda que emiten para generar el audio. No obstante, el tipo de onda más común era la onda cuadrada, y este chip de audio tenía la capacidad de generar 3 melodías distintas al mismo tiempo de este tipo de onda, y un cuarto canal que se usaba para emitir ruido.
Se pensó originalmente para máquinas de pinball, pero su estreno en el mundo de los videojuegos fue en varias máquinas recreativas de los años 70 y en la consola Intellivision, pero con el paso del tiempo se convirtió en la fuente de audio de multitud de sistemas que salieron al mercado, convirtiéndolo en uno de los chips más usados y más populares en los años 80.
¿Qué sistemas lo integraron en su circuitería?
En cuanto a los sistemas que equiparon este chip de audio, la lista es extensa, y aparte de la consola que General Instruments que compitió contra la VCS de Atari en su día podemos destacar los siguientes sistemas, entre los más conocidos.
Eso sí, aunque no están todos los sistemas que se lanzaron con el AY-8910 en su interior,, sí que están los más destacados dentro de la historia de la informática.
- Amstrad CPC.
- Atari ST.
- IBM PC Jr, así como los clones de Tandy.
- IBM PS/1 (tarjeta de sonido opcional)
- Los ordenadores MSX y MSX2.
- NEC PC-88 y PC-98.
- Sharp X1.
- ZX Spectrum.
- Intellivision.
- Colecovision.
- Vectrex.
- La serié SG-1000, incluyendo Mark III, conocida fuera de Japón como Master System.
- SEGA Game Gear.
- Mega Drive/Genesis, la consola de 16 bits de SEGA usaba un clon de Yamaha del AY-8910 para generar el sonido.
También fue altamente usado en diferentes máquinas recreativas, de principios de los 80, sin embargo, dicho mercado a partir de 1984 dio el salto a chips de síntesis FM, los cuales tenían la capacidad de reproducir instrumentos reales. Lo que relego al AY-8910 a los simples efectos de sonido.
¿Cómo funcionaba?
Para generar el sonido en el AY-8910 se hacía escribiendo cierta información en una serie de registros clave de la memoria RAM del sistema, los cuales, cuando eran leídos por el PSG, inmediatamente cambiaban el sonido que se generaba al vuelo y que se oía en pantalla.
Esta simpleza les permitía que personas sin mucho conocimiento musical pudieran crear melodías para los juegos y añadir efectos de sonido para una mayor inmersión en aquellos videojuegos tan primitivos.
Registro | Bits usados | Función |
---|---|---|
R0 | xxxxxxxx | Divisor de frecuencia de la voz 1. |
R1 | —-xxxx | Últimos 4 bits para el divisor de frecuencia de la voz 1 |
R2 | xxxxxxxx | Igual que R0, pero con la voz 2 |
R3 | —-xxxx | Lo mismo que R1, pero con la voz 2 |
R4 | xxxxxxxx | Igual que R0 pero con la voz 3. |
R5 | —-xxxx | Lo mismo que R1, pero con la voz 3 |
R6 | —xxxxx | Frecuencia de ruido. Controla la frecuencia del generador de ruido. |
R7 | / | Habilitación de mezclador. Controla la activación de los tonos y el ruido en los canales. |
R8 | —xxxxx | El primer bit activa el «envelope» de la voz 1, los otros 4 bits marcan el nivel de volumen de la misma, pudiendo llegar a 16 valores distintos. |
R9 | —xxxxx | Lo mismo que R8, pero con la voz 2. |
R10 | —xxxxx | Lo mismo que R8, pero con la voz 3. |
R11 | xxxxxxxx | Marca el tiempo en que dura el Envelope de la onda de sonido, de forma combinada con R11. |
R12 | —-xxxx | Ver R11. |
R13 | —-xxxx | Forma de la envolvente. Define la forma del ciclo de la envolvente (ataque, decaimiento, etc.). |
R14 | / | Configura el puerto A como entrada o salida, y permite leer o escribir datos. |
R15 | / | Configura el puerto B como entrada o salida, y permite leer o escribir datos. |
R16 | / | Define la dirección de los puertos A y B: si son entradas o salidas. |
Para programar el AY-8910, los desarrolladores solo tenían que escoger uno de los registros y darle el valor esperado. El tono generado de cada voz se generaba por la división de la frecuencia entre 4095 valores distintos. Mientras que el canal de ruido soporta hasta 32 frecuencias distintas.
Otros usos aparte
Fue testigo de una época en los videojuegos
Si bien en la era de 8 bits termino siendo el chip de audio más popular y más utilizado por todos, con la llegada del audio FM el AY-8910 se vio relegado a realizar los efectos de sonido. Por lo que en videojuegos compartió un largo tiempo espacio con los chips de síntesis FM, al menos hasta empezar la década de los 90.
Sin embargo, en el mundo de los ordenadores, la aparición de las potentes tarjetas de sonido terminaron por convertir a estos chips en agua pasada, algo que se acrecentó en todos los sistemas cuando la tecnología CD-ROM y el audio vía PCM se popularizó, dejando al audio generado por los generadores programables de sonido como muestra auditiva de la personalidad de muchos sistemas de la década de los 80 y los 90.
Con esto terminamos, ¿y vosotros? ¿Qué melodias recordáis más que se hayan producido con este generador de sonido programable?
Pingback: La síntesis FM, historia y características del sonido de los 80