Hace muchos años, cuando hice el emulador del Ghosts & Goblins, estudié un poco el chip de sonido YM2203 para emularlo. Al final nunca añadí sonido al emulador pero recuerdo que mi idea era usar el sintetizador FM de la Sound Blaster 16 (YM3812) para producir el sonido. En aquellos años, hubo algún emulador por ahí que sí usaba el YM3812 pero al final la síntesis de la forma de onda por software se convirtió en la norma, seguramente por portabilidad y porque los procesadores eran ya lo bastante potentes.
Me pregunto qué pasó con la capacidad FM en los chips de sonido. ¿Los PC modernos siguen siendo compatibles con el YM3812 o ahora es todo tabla de ondas y convertidores D/A? ¿Alguien sabe si aun es posible obtener el sonido genuino de un sintetizador FM por hardware en un PC moderno?
YM2203, Sound Blaster 16 y PCs de hoy en día
- mentalthink
- Amiga 2500
- Mensajes: 2840
- Registrado: 11 Abr 2010, 15:06
- Gracias dadas: 45 veces
- Gracias recibidas: 14 veces
Re: YM2203, Sound Blaster 16 y PCs de hoy en día
Con un PC supongo que no debe haber mucho problema, creo que solo saca 3 tipos de onda cuadrada , triangular, y el ruido el sonido Rosa?¿, o Blanco?¿
De todas maneras te dejo estó por si te puede servir... aunque se puede emular directamente en un Arduino igual que el SID... al menos eso he leído.
http://hackaday.com/2012/04/10/playing- ... n-arduino/ no se si te podría servir, de momento yo tengo el montaje
PS: Si te interesa lo del montaje coméntamelo porque el sitio más barato en dónde he visto los chips en en ebay de tailandia, unos 5 euretes..
De todas maneras te dejo estó por si te puede servir... aunque se puede emular directamente en un Arduino igual que el SID... al menos eso he leído.
http://hackaday.com/2012/04/10/playing- ... n-arduino/ no se si te podría servir, de momento yo tengo el montaje
PS: Si te interesa lo del montaje coméntamelo porque el sitio más barato en dónde he visto los chips en en ebay de tailandia, unos 5 euretes..
- zup
- Amiga 2500
- Mensajes: 3012
- Registrado: 04 Sep 2009, 20:07
- Sistema Favorito: Spectrum 16Kb/48Kb
- primer_sistema: Spectrum 16Kb/48Kb
- consola_favorita: Nintendo DS/3DS
- Primera consola: Nintendo GameBoy
- Ubicación: Navarra
- Gracias dadas: 86 veces
- Gracias recibidas: 356 veces
- Contactar:
Re: YM2203, Sound Blaster 16 y PCs de hoy en día
Creo que la respuesta es no.
Las tarjetas de sonido más extendidas solo sacan sonido digital, y la mayoría han prescindido no solo del OPL sino de cualquier tipo de sintetizador. Casi todo lo que sea MIDI ahora se reproduce por software. No digo que no exista alguna tarjeta PCI que incorpore síntesis OPL, pero probablemente esté muy poco extendida.
Las buenas noticias es que tienes varias opciones para paliar estas carencias:
- Usar un emulador OPL en tu proyecto. La mejor opción si tu música va a cambiar según lo que pase en el juego (como en el Tie Fighter). Imagino que podrías separar las librerías de MAME o DOSBox para hacerlo, o que podrás encontrar librerías que lo hagan en otros sitios.
- Usar un emulador OPL para generar el sonido, convertirlo a digital y meterlo como audio digital en el juego. Probablemente la opción más fácil de manejar.
- Incorporar un sintetizador tipo timidity, fluidsynth o BASSmidi en tu proyecto y usar un soundfont adecuado. En el link te dejo una página con varios soundfonts que imitan a diferentes sintetizadores retro. Probablemente la peor opción, ya que no va a ser tan flexible como el OPL (no controlas el sintetizador, simplemente pides un "piano") y se va a llevar tantos recursos (probablemente más) que usar un emulador de OPL directamente.
Las tarjetas de sonido más extendidas solo sacan sonido digital, y la mayoría han prescindido no solo del OPL sino de cualquier tipo de sintetizador. Casi todo lo que sea MIDI ahora se reproduce por software. No digo que no exista alguna tarjeta PCI que incorpore síntesis OPL, pero probablemente esté muy poco extendida.
Las buenas noticias es que tienes varias opciones para paliar estas carencias:
- Usar un emulador OPL en tu proyecto. La mejor opción si tu música va a cambiar según lo que pase en el juego (como en el Tie Fighter). Imagino que podrías separar las librerías de MAME o DOSBox para hacerlo, o que podrás encontrar librerías que lo hagan en otros sitios.
- Usar un emulador OPL para generar el sonido, convertirlo a digital y meterlo como audio digital en el juego. Probablemente la opción más fácil de manejar.
- Incorporar un sintetizador tipo timidity, fluidsynth o BASSmidi en tu proyecto y usar un soundfont adecuado. En el link te dejo una página con varios soundfonts que imitan a diferentes sintetizadores retro. Probablemente la peor opción, ya que no va a ser tan flexible como el OPL (no controlas el sintetizador, simplemente pides un "piano") y se va a llevar tantos recursos (probablemente más) que usar un emulador de OPL directamente.
I have traveled across the universe and through the years to find Her. Sometimes going all the way is just a start.
Además vendo cosas!
Además vendo cosas!
- jotego
- Atari 1040 STf
- Mensajes: 657
- Registrado: 16 Ene 2013, 23:25
- Sistema Favorito: Atari ST
- primer_sistema: Amstrad CPC
- consola_favorita: Sony PlayStation 2
- Primera consola: Atari Lynx
- Ubicación: Valencia (España)
- Gracias dadas: 27 veces
- Gracias recibidas: 44 veces
- Contactar:
Re: YM2203, Sound Blaster 16 y PCs de hoy en día
mentalthink escribió: Si te interesa lo del montaje coméntamelo porque el sitio más barato en dónde he visto los chips en en ebay de tailandia, unos 5 euretes..
Muy interesante el enlace. Sí, por favor dime dónde está ese sitio de 5 euretes.
- mentalthink
- Amiga 2500
- Mensajes: 2840
- Registrado: 11 Abr 2010, 15:06
- Gracias dadas: 45 veces
- Gracias recibidas: 14 veces
Re: YM2203, Sound Blaster 16 y PCs de hoy en día
Pues mira dónde lo compré me parece o que no lo vendén ya o se han percatado del tema del arduino, en ebya si lo pones verás precios de 4€ sin envio hata 30
Pero aqui si que lo tienes, sale por 7 dolares o sea que son 5 euros, nunca he comprado aqui, siempre lo hago en DX, pero creo que con este tipo de productos no hay engaño.
http://www.aliexpress.com/store/product ... 18326.html
Eso si recuerda que si haces el montaje, aunque el tema del reloj, se puede hacer con Nands(me parece que vi un cirtuito asi)... el cristal es TTl, yo soló lo encontré en ebay UK, y me costo 10€.. JODÓ.
Pero aqui si que lo tienes, sale por 7 dolares o sea que son 5 euros, nunca he comprado aqui, siempre lo hago en DX, pero creo que con este tipo de productos no hay engaño.
http://www.aliexpress.com/store/product ... 18326.html
Eso si recuerda que si haces el montaje, aunque el tema del reloj, se puede hacer con Nands(me parece que vi un cirtuito asi)... el cristal es TTl, yo soló lo encontré en ebay UK, y me costo 10€.. JODÓ.
- Tolaemon
- Amiga 1200
- Mensajes: 1056
- Registrado: 16 May 2004, 22:29
- Gracias dadas: 28 veces
- Gracias recibidas: 21 veces
Re: YM2203, Sound Blaster 16 y PCs de hoy en día
Creo que la mayoría de tarjetas de sonido actuales trabajan con sintesis directa, es decir a base enviar muestras al bitrate adecuado a los DACs y ya está. Dudo que lleven chips especificos con funcionalidades FM u osciladores o filtros programables. Como mucho, algunos modelos quizas incluyan tablas de ondas para emular según que instrumentos. De todas formas no estoy muy al dia en este sentido.
No hay que olvidar que en realidad estos chips de sonido de los 80 ( los SID, AY, SN, YMs etc. ) eran "inventos" para poder hacer sonido sin tener que consumir CPU ni memoria, ya que por entonces las CPUS eran bastante mas limitadas y la memoria mucho mas cara que ahora. Por eso se crearon esa especie de microsintentizadores compactos, para cubrir las limitaciones de las CPUs y poder generar sonido de una forma digna y económica. Hoy en dia de estas limitaciones se han superado, y la mayor parte de operaciones de audio se hacen en la CPU. Las tarjetas de sonido son básicamente un buffer de memoria con un buen DAC para audio, opciones de entrada/salida y poco mas. De hecho mediante sintesis directa es muy facil emular cualquiera de las otras tecnicas de sintesis, pero no a la inversa.
Con todo esto quiero decir, lo mismo que dicen los compañeros: por software podras conseguir el sonido del YM2203 que quieres sin necesidad de q tu tarjeta tenga nada de FM. Realmente cada chip tiene su sonido caracteristico y particularidades y las emulaciones nunca son iguales, algo que puede ser importante en musica cuando se busca un determinado sonido muy auténtcio. Pero en videojuegos no creo que esto sea asi. Por esto también creo que tomando el código fuente de algun emulador del chip ( como te comentan en codigo de MAME seguramente lo encuentres ) tengas de sobras.
No hay que olvidar que en realidad estos chips de sonido de los 80 ( los SID, AY, SN, YMs etc. ) eran "inventos" para poder hacer sonido sin tener que consumir CPU ni memoria, ya que por entonces las CPUS eran bastante mas limitadas y la memoria mucho mas cara que ahora. Por eso se crearon esa especie de microsintentizadores compactos, para cubrir las limitaciones de las CPUs y poder generar sonido de una forma digna y económica. Hoy en dia de estas limitaciones se han superado, y la mayor parte de operaciones de audio se hacen en la CPU. Las tarjetas de sonido son básicamente un buffer de memoria con un buen DAC para audio, opciones de entrada/salida y poco mas. De hecho mediante sintesis directa es muy facil emular cualquiera de las otras tecnicas de sintesis, pero no a la inversa.
Con todo esto quiero decir, lo mismo que dicen los compañeros: por software podras conseguir el sonido del YM2203 que quieres sin necesidad de q tu tarjeta tenga nada de FM. Realmente cada chip tiene su sonido caracteristico y particularidades y las emulaciones nunca son iguales, algo que puede ser importante en musica cuando se busca un determinado sonido muy auténtcio. Pero en videojuegos no creo que esto sea asi. Por esto también creo que tomando el código fuente de algun emulador del chip ( como te comentan en codigo de MAME seguramente lo encuentres ) tengas de sobras.
- princemegahit
- Amiga 1200
- Mensajes: 1693
- Registrado: 19 Jul 2012, 12:01
- Sistema Favorito: (Otro)
- primer_sistema: Spectrum +2
- consola_favorita: Atari 2600
- Primera consola: Atari 2600
- Ubicación: C:\JUEGOS
- Gracias dadas: 176 veces
- Gracias recibidas: 100 veces
Re: YM2203, Sound Blaster 16 y PCs de hoy en día
Ninguna lleva sintesis FM. Lo máximo que llevan es un conector para añadir un modulo wavetable (no se porqué, generalmente de Terratec) , y eso lo he visto en algún modelo "moderno" de como máximo, el 2008.
- jotego
- Atari 1040 STf
- Mensajes: 657
- Registrado: 16 Ene 2013, 23:25
- Sistema Favorito: Atari ST
- primer_sistema: Amstrad CPC
- consola_favorita: Sony PlayStation 2
- Primera consola: Atari Lynx
- Ubicación: Valencia (España)
- Gracias dadas: 27 veces
- Gracias recibidas: 44 veces
- Contactar:
Re: YM2203, Sound Blaster 16 y PCs de hoy en día
Ahora mismo me interesa más la solución por hardware que la emulación. Me he puesto hoy a diseñar un circuito compatible con AY-3-8910 y en unas horas lo tenía listo. Son menos de 200 líneas de código Verilog. Lo he probado un poco y parece funcionar
Ahora quiero juntarlo con el TV80 (un Z80 en Verilog que hay en Open Cores) y ponerle la ROM de alguna máquina a ver si consigo hacerlo sonar o no. Si va bien me buscaré una FPGA.
Al hacerlo me he dado cuenta de algunos detalles que impiden la reproducción fidedigna al 100%. Aunque son todos imperceptibles para el oído. Por ejemplo, el generador de ruido no creo que sea el mismo que el original. De hecho, no creo que nada sepa cuál era el original aunque seguramente sería del mismo tipo que yo he puesto, que es un polinomio de 17 bits que se va desplazando a la derecha y haciendo una XOR de algunos bits:
En sus días, sin sintetizador de Verilog y con herramientas de CAD muy pobres, los diseñadores debieron pasar algunas fatigas con el chip original, que además incluía unos DAC logarítmicos. Pero hoy en día es tan sencillo que ni siquiera vale como IP, diría yo.
Por cierto, he oído que ficheros en internet con capturas de las escrituras a los registros de los sintetizadores (este o los de Yamaha) grabadas a 50Hz. Yo lo que he encontrado en world of spectrum y otras webs no era eso si no recortes del código original de procesador para sacar solo el sonido. Si encontrase sólo las escrituras a los registros me facilitaría mucho probar el circuito. ¿Alguien ha visto algo así por ahí?
Os dejo una captura donde se ven los tres canales funcionando: el A con ganancia fija, el B con envolvente y el C con ruido.


Al hacerlo me he dado cuenta de algunos detalles que impiden la reproducción fidedigna al 100%. Aunque son todos imperceptibles para el oído. Por ejemplo, el generador de ruido no creo que sea el mismo que el original. De hecho, no creo que nada sepa cuál era el original aunque seguramente sería del mismo tipo que yo he puesto, que es un polinomio de 17 bits que se va desplazando a la derecha y haciendo una XOR de algunos bits:
Código: Seleccionar todo
wire poly17_zero = poly17==0;
// ...
poly17={ poly17[0] ^ poly17[2] ^ poly17_zero, poly17[16:1] };
En sus días, sin sintetizador de Verilog y con herramientas de CAD muy pobres, los diseñadores debieron pasar algunas fatigas con el chip original, que además incluía unos DAC logarítmicos. Pero hoy en día es tan sencillo que ni siquiera vale como IP, diría yo.
Por cierto, he oído que ficheros en internet con capturas de las escrituras a los registros de los sintetizadores (este o los de Yamaha) grabadas a 50Hz. Yo lo que he encontrado en world of spectrum y otras webs no era eso si no recortes del código original de procesador para sacar solo el sonido. Si encontrase sólo las escrituras a los registros me facilitaría mucho probar el circuito. ¿Alguien ha visto algo así por ahí?
Os dejo una captura donde se ven los tres canales funcionando: el A con ganancia fija, el B con envolvente y el C con ruido.

- Tolaemon
- Amiga 1200
- Mensajes: 1056
- Registrado: 16 May 2004, 22:29
- Gracias dadas: 28 veces
- Gracias recibidas: 21 veces
Re: YM2203, Sound Blaster 16 y PCs de hoy en día
Por cierto, he oído que ficheros en internet con capturas de las escrituras a los registros de los sintetizadores (este o los de Yamaha) grabadas a 50Hz. Yo lo que he encontrado en world of spectrum y otras webs no era eso si no recortes del código original de procesador para sacar solo el sonido.
Hace unos años construi este pequeño sinte-reproductor de ficheros de musica del AY-3891x ( Amstrad CPC, Spectrum ZX, Atari ST etc. ) . Esta es la web: -hard plAYer-
La parte de los patches MIDI no la tiene muy desarrollada, porque los sonidos que implemente son bastante cutres, pero por otro lado es capaz de reproducir los ficheros de musica grabados en este formato de volcado de los registros a 50Hz que comentas. La informacion sobre este tipo de ficheros, los ficheros .YM la tienes aqui: http://leonard.oxg.free.fr/stsound.html y tambien aqui http://leonard.oxg.free.fr/ymformat.html
Este es un video demo del cacharro:
- mcleod_ideafix
- Amiga 2500
- Mensajes: 5316
- Registrado: 06 Oct 2009, 04:12
- Sistema Favorito: Spectrum 16Kb/48Kb
- primer_sistema: Spectrum 16Kb/48Kb
- consola_favorita: Vectrex
- Primera consola: TV Games/Pong Clone
- Ubicación: Jerez de la Frontera
- Gracias dadas: 12 veces
- Gracias recibidas: 54 veces
- Contactar:
Re: YM2203, Sound Blaster 16 y PCs de hoy en día
jotego escribió:Ahora mismo me interesa más la solución por hardware que la emulación. Me he puesto hoy a diseñar un circuito compatible con AY-3-8910 y en unas horas lo tenía listo. Son menos de 200 líneas de código Verilog.
Oh! Qué chulo! Bueno, supongo que sabes que el AY-3-8910 de hecho existe como core sintetizable, aunque en VHDL. Es el que he usado para empotrar en mi reemplazo de ULA.
-- Actualizado 05 May 2013, 02:17 --
jotego escribió:Al hacerlo me he dado cuenta de algunos detalles que impiden la reproducción fidedigna al 100%. Aunque son todos imperceptibles para el oído. Por ejemplo, el generador de ruido no creo que sea el mismo que el original. De hecho, no creo que nada sepa cuál era el original aunque seguramente sería del mismo tipo que yo he puesto, que es un polinomio de 17 bits que se va desplazando a la derecha y haciendo una XOR de algunos bits:
De hecho, parece ser que sí se sabe, o al menos se ha investigado un poco sobre ello. Aquí se cuenta...:
http://www.worldofspectrum.org/forums/s ... hp?t=39644
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados