Description
Emulated YM2149 or AY-3-8910 / AY-3-8912 Sound Module
The Why Em-Ulator Sound Module is a sound card for the RC2014 based around the AVR-AY emulator. This firmware can be programmed to emulate either a YM2149 or an AY-3-8910 / AY-3-8912 classic sound chip. A simplified addressing system allows the module to use the standard RC2014 ports (D8/D0) or MSX ports (A0/A1). The pre-soldered SMD components can be disguised with an optional DIP40 IC. Stereo output is via a 3.5mm headphone jack.
YM vs AY overview
The DIP40 AY-3-8910 and DIP28 AY-3-8912 was originally manufactured by General Instruments (later under their Microchip brand). This programmable sound generator has three voices and either 8 or 16 GPIO lines. A clock frequency of up to 1MHz is used to generate the audio frequencies. This chip was later made under license by Yamaha as the YM2149F. This DIP40 was functionally equivalent to the AY-3-8910 although had slightly different wave tables giving it a subtly different sound. It also included a frequency divider. This allows a clock speed up to 2MHz which was divided internally by 2. Between them these chips were used in a lot of machines in the 1980s such as the MSX, ZX Spectrum 128k, Atari ST, Oric 1, Vectrex, Color Genie as well as a lot of arcade cabinets.
These chips have been out of production for decades, and NOS chips are very rare. Used chips that have been pulled from old systems are available on eBay or AliExpress. Be warned that these can be a bit of a gamble.
AVR-AY Emulation
The Why Em-Ulator Sound Module uses an AVR programmed with the wavetables of either the YM or AY version of the chip, and generates frequencies that equate to a YM2149 being driven with either a 2MHz, 1.8432MHz or 1.7734MHz clock. The 1.8432MHz frequency was used by a lot of MSX machines (but not all!). The 1.7734MHz frequency was used by the ZX Spectrum 128k.
The GPIO ports on the AY or YM chips are not emulated by the Why Em-Ulator Sound Card.
This module is designed to use port D8/D0 as the default. This is compatible with the PLAYER program included with RomWBW as well as being compatible with the BASIC examples used with the YM2149 Sound Card Module. A simple jumper change will set the module to use port A0/A1 which is compatible with the MSX software that has been ported to (or written for) the RC2014.
Output is via a 3.5mm audio output suitable for driving powered speakers.
Which sound card module is best for me?
This Why Em-Ulator Sound Module has a lot in common with the Rev 5 YM2149 sound card by Ed Brindley and also the Rev 6 version. However, there are differences between them and they all have their strengths. If you need GPIO ports or ZX Spectrum style addressing you will be best off with one of the Ed Brindley modules.
RC2014 Port D8/D0 |
MSX Port A0/A1 |
ZX Spectrum Port Upper Addresses |
ColecoVision Ports 50/51 |
GPIO | |
---|---|---|---|---|---|
Why Emulator Sound Module | Yes | Yes | No | Yes* | No |
Rev 5 Ed Brindley | Yes | No | Yes | Yes | Yes |
Rev 6 Ed Brindley | No | Yes | Yes | Yes | Yes |
* Minor PCB modification allows use of port 50/51 and 20/21 if required
Surface Mount Parts
All of the surface mount parts are supplied pre-assembled, programmed and tested. These, along with the TC2030 programming header sit within a DIP40 footprint. You can use this to mount any DIP40 chip (not supplied) to cover up the modern parts. Note that none of the pads are connected to anything, so you can use any chip. This is a good use for a non-functional YM2149 or AY-3-8910. Or why not use a 6502 and prank your friends!
By default the emulator is programmed to be a YM2149 clocked at 1.7734MHz. If you have a preference, this can be programmed as an AY-3-8910 or with a different speed. To help you decide, and to compare it to the original chips, please have a listen to the options below.