FM-YAM A Sound Expander Compatible
FM-YAM is a cartridge for your C64 that adds FM sound capability to your system. See it as adding Adlib to your C64, since it has the OPL2 YM3812 on board. Remember that a lot of 8-bit (and 16-bit) systems used to have Adlib options as well. There's the original Adlib sound cards for PC, but other systems, such as MSX computer peripherals, or Arcade games, as well as Yamaha synthesizers used these OPL2 chips.
- What is the design like?
Though it is based on the SFX Sound Expander by Commodore, it is less bulky and fits almost a standard C64 cartridge case. See the Vesalia type cases (e.g. RetroReplay, MMC Replay) and you will get a hint of the size. Furthermore, it has an audio in mini-jack, and and audio out mini-jack. The case was 3D printed for batch 1 and 2. Batch 3 uses IComp cases.
- What can I do with the audio-in mini-jack?
The main reason for us to include the audio-in option is to enable the output of your internal SID chip to be mixed with the YM3812 audio generated by the FM-YAM. This way SID+FM music is possible having up to 12 channels to work with, 13 if adding a digi channel to the SID output! Listen to the proof of concept tunes!
- How are the chip outputs mixed?
The original Sound Expander circuitry added sound clipping to the output. We removed that and have made sure the maximum output of both SID and FM is well balanced, so composers can play at their leisure with ADSR levels of SID and FM sounds to meet the needs of their composition, without clipping. Of course, this is assuming one would draw the SID output directly from the C64, without amplification steps in between.
- Can I use it in a slot expander with other cartridges?
Yes, this is possible. For example, it was shown to run fine in a X-Pander 3 with an 1541 Ultimate II and Datel MIDI interface inserted. Of course, not all slot expanders are the same, and many cartridges can give conflicts with one another. Always take heed of this.
- Can I combine it with MIDI?
Yes, this is possible. The FM-YAM, like the Sound Expander, uses IO2 ($DF00) addressing space when inserted in an expansion port. Most MIDI interfaces, such as the DATEL Midi interface use IO1 ($DE00) addressing space. So combining both in a slot expander is a working option. This is the hardware side of things. Check out the Software page for my adaptation of the original SFX SE software for a MIDI implementation FM-YAM.
- I see. Why not add the MIDI hardware to FM-YAM then?
This is out of scope for the current project. It would complicate the design a number of times, and also drive up the costs (and thereby the selling price). FM-YAM will provide you with high level FM music and composing at a low price! However, we might change that for a future release.
- Are there any music editors that support FM-YAM?
Yes! Native C64 FM editing software currently only exists of the original Sound Expander software from the early 1980's, apart from the odd small test program. However, since we wrote a D00 file player, anyone can use Edlib, a DOS tool by none other than JCH of Vibrants, back in the first half of the 1990's. It is an Adlib-based tracker to compose FM music that saves music as D00 files. These D00 files you can then play using the C64 player code. The sound is the same, since Adlib was using the YM3812 chip, which is also in FM-YAM. Just run Edlib in DOSBOX and compose away! We will create additional software specific for FM-YAM! Check out Ed in his Lib and Casu Quo for examples.
- How do you combine SID and FM music on the C64?
Well, the best way would be to have a new player take care of both SID and FM output. However, it is already possible using the following approach: use the D00 player code mentioned above to play a D00 file that will take care of the FM part of the composition, it runs like most other music routines: init address and play address. Now take a SID music file, for instance a Goattracker file, and init both at the same time, make sure to IRQ call both play routines also at the same time. You may need to call the SID play routine a number of times upfront, before it will sync with the FM tune. In this proof of concept release we combined Edlib (FM), Goattracker (SID) and Digiorganizer (SID digi). It works :). Better still, check Ed in his Lib, by Jammer or Mibri's Midnight Kisses. See Showcases.