Sintetizadores vintage en... ¿MAME?

BlahBlah
por el 22/01/2018
Buenas,

supongo que muchos de vosotros conoceréis el MAME, el emulador de videojuegos de máquina recreativa. Y si no, deberíais:



El tema es que compilando una versión con unos cambios que necesité, me doy cuenta de que hay muchos chips de sonido emulados (lo cual es lógico porque algunos chips típicos de Yamaha por ejemplo, se usaban para juegos, especialmente los FM de 4-op). Hasta ahí ninguna novedad.

La sorpresa es cuando me he empezado a encontrar sintetizadores completos (sí, de los "nuestros") emulados en los fuentes.

No entiendo bien el motivo (supongo que en algún momento los incorporaron al MESS que fue fusionado con este) y tampoco la no visibilidad de estas emulaciones, pero el caso es que me ha servido incluso para ver detalles técnicos de las tripas de sintes como el Ensoniq SQ-80 / ESQ-1. Información técnica que, por cierto, no sé de dónde narices han sacado.

Ejemplos de estas emulaciones que he encontrado (supongo que habrá más pero es que son miles y miles de archivos):


/src/mame/drivers/esq1.cpp -> emulación Ensoniq ESQ-1/M/SQ-80
/src/mame/drivers/esqpanel.cpp -> emulación paneles familia Ensoniq (EPS-16/plus, SQ1, ESQ1/M, etc).
/src/mame/machine/esqvfd.cpp -> emulación display familia Ensoniq
/src/mame/etc/korgm1.cpp -> "esqueleto" de la emulación del Korg M1 (pendiente según el comentario del fuente de conseguir un volcado correcto de la ROM).

/src/mame/drivers/rd110.cpp -> Roland D-110
/src/mame/drivers/rmt32.cpp -> Roland MT-32
/src/mame/drivers/rsc55.cpp -> Roland SC-55
/src/mame/drivers/tb303.cpp -> Roland TB-303
/src/mame/drivers/tr606.cpp -> Roland TR-606
/src/mame/drivers/alesis.cpp -> Alesis HR16, SR16 y MMT8

/src/mame/drivers/cmi.cpp -> Fairlight CMI IIx (WTF!!!!)

/src/mame/drivers/prophet600.cpp -> Sequential Circuits Prophet 600

Muchas de estas emulaciones parecen ser solo el esqueleto ya que algunos de sus chips (por ejemplo los CEM/SSM) no parecen estar emulados al menos en la versión de MAME que yo manejo. Hay otros que sí están más completos (MAME usa una arquitectura modular en la que se han emulado por separado casi todos los chips habidos y por haber).

¿Alguien puede arrojar un poco más de luz sobre este asunto?


(Se hacen referencia en el archivo MAME.LST a estos otros de Ensoniq:

@source:esq1.cpp
esq1 // 1986 ESQ-1 Digital Wave Synthesizer
esqm // 1986 ESQ-M rack-mount ESQ-1
sq80 // 1988 SQ-80 Digital Wave Synthesizer

@source:esq5505.cpp
eps // 1988 EPS
eps16p // 1990 EPS 16 Plus
sd1 // 1990 SD-1
sd132 // 1991 SD-1 32
sq1 // 1990 SQ-1
sqrack // 1990 SQ-Rack
sq2 // 1991 SQ-2
vfx // 1989 VFX
vfxsd // 1989 VFX-SD

@source:esqasr.cpp
asr10 // 1992 ASR-10
asrx // 1997 ASR-X

@source:esqkt.cpp
kt76 // 1996 KT-76

@source:esqmr.cpp
mr61 // 1996 MR-61
mrrack // 1996 MR-Rack
)
Subir
OFERTAS Ver todas
  • -13%
    Kawai ES-60
    339 €
    Ver oferta
  • -20%
    Moog Messenger
    749 €
    Ver oferta
  • -35%
    Steinberg UR24C
    149 €
    Ver oferta
Soyuz mod
por el 23/01/2018
Supongo que ya has visto que hay bastante documentación en github, por ejemplo: https://github.com/mamedev/mame/blob/master/src/mame/drivers/esq1.cpp
Subir
Blask
por el 24/01/2018
Joder, me parece interesantísimo esto... Menuda mina de emulaciones! 8-[

Si son completas (que no lo creo), la posibilidad de hacerse una "enciclopedia de sintes" con una Raspberry y un teclado controlador suena muy apetecible.
Subir
BlahBlah
por el 24/01/2018
#3

Es posible que algunas estén muy avanzadas. El proyecto MAME y MESS se ha dedicado durante 20 años a emular cada componente digital por separado: todas las CPUs de 8 y 16 bits, todos los MCUs conocidos, toda la lógica TTL, convertidores DAC, chips de sonido YM y TI, chips de I/O como el 8255, MUX/DEMUX y un largo etc.

Con esa filosofía, crear la emulación de un nuevo aparato es solamente programar su esqueleto (que suelen ser los fuentes que ponen en la carpeta drivers) y agregar los ficheros con el volcado de las ROMs internas del dispositivo (así tienen más de 30.000 máquinas recreativas y ordenadores "vintage" entre otras cosas).

Muchos de nuestros sintetizadores no son muy diferentes en ese aspecto y solo se complicarían aquellos chips custom que no estén documentados, porque incluso los CEM y SSM tienen emulaciones escritas.
Subir
Blask
por el 24/01/2018
Pues dan muchas ganas de bucear un poco por ahí a ver qué se puede montar con todo eso!... :-k
Subir
Wikter
por el 24/08/2025
Anda, interesante que ya hubiera un hilo sobre el tema... Eso que me ahorro.
El tema de usar Mame ya venía de algunos años antes del hilo, al fin y al cabo hay sintetizadores construidos sobre CPU 68K y DSP que son comunes para el mundo del videojuego. Allá por 2013 ya había algún emulador de Ensoniq visible por la red... Así que seguramente esto debió empezar en 2008-2010... pero lo importante, más que sus inicios, es cómo sigue ahora. 
A principios de esta semana el equipo de desarrollo de emuladores DSP56300 hizo en sus foros de Discord una petición de hardware Roland variopinto con un claro interés en obtener Roms y decapar chips para posterior emulación (ésto es casi ciencia ficción).
Así que aunque no va a ser en las próximas semanas y van a tardar aún algunos meses, podemos esperar que se empiecen a revivir algunos sintetizadores como ya ha sucedido con el Roland JV880, cuyo desarrollador está en el barco. 

https://github.com/giulioz/jv880_juce
Subir
Nuevo post

Regístrate o para poder postear en este hilo