New Documentation: An authoritative reference on the YM2612
Posted: Fri Jun 06, 2008 3:17 pm
As anyone who's tried to emulate it will know, there's a significant lack of solid information on the YM2612. The only official reference we have comes from 14 pages in the Genesis Sound Software Manual ( http://nemesis.hacking-cult.org/MegaDri ... Manual.pdf ), and they're a little light on the details. There are some manuals out there for other Yamaha FM chipsets, but the problem is there are a LOT of different "lines" of FM chips that Yamaha released, such as the OPL, OPN, OPM, OPZ, etc. The YM2612 is an OPN chip, and all the documents which are publicly available are for chips from entirely different lines. Thanks to Malfunction from http://www.soundshock.se , we've now got something which could fill this gap. Here's a link to an official document from Yamaha describing the YM2608:
http://nemesis.hacking-cult.org/MegaDri ... M2608J.PDF
This is the first time this document has been publicly posted on the internet. This isn't just a datasheet, it's a complete Programming/Technical Reference Manual, weighing in at 67 pages. It's full of hard numbers, tables, and equations. There is a catch however: The manual is in Japanese. I wouldn't hold out for an official version in English. There's a good chance this document was never fully translated from Japanese, even by Yamaha. We've got the information now though. The language barrier can be solved with time and the help of the right people.
The language issue aside, as you'll note, this document is for the YM2608 not the YM2612. This leads to the question, what are the differences between the YM2608 and the YM2612? I've been doing a fair bit of research on this, and the news is good. Here's a list of the all the known Yamaha OPN chips:
-YM2203 (OPN)
-YM2608 (OPNA)
-YM2610 (OPNB)
-YM2612 (OPN2)
-YM3438 (OPN2C) (CMOS implementation of the YM2612. Functionally identical)
-YMF288 (OPN3)
As you can see, both the YM2612 (OPN2) and YM2608 (OPNA) are part of this line. More significantly, after comparing information about all these OPN chips, and particularly after looking through this new manual, it seems that the YM2608 is the direct and immediate ancestor of the YM2612. More than that, the YM2612 seems to just be a "stripped down" version of the YM2608. The documentation for the YM2608 may in fact be better than an official YM2612 reference, as it contains a description of all the features they removed, while still containing all the information on the features provided by the YM2612.
The YM2608 came in a 64-pin package, and required a separate DAC (YM3016) in order to actually produce an analog sound output. The goal of the YM2612 seems to have been to provide a lower cost single-chip solution for systems which didn't require all the features of the YM2608. It seems the parts to get the chop were external I/O Ports, a Rhythm generator with internal ROM samples, a full ADPCM module, and the SSG module (well, most of it anyway ). Apart from the addition of DAC registers at 0x2A/0x2B to provide some basic PCM without the ADPCM module, everything in the YM2612 seems to be unchanged from the YM2608 implementation, meaning the YM2608 manual above should be extremely relevant.
I was sent a number of other documents along with this one. There's a datasheet and some info on the YM3016 DAC, the ADPCM module in the YM2608, a short document on the YMF288, and a full manual on the "86 Sound Board" for the PC-9801-86, which uses a YM2608. One tidbit the 86 Sound Board manual seems to have which I didn't see in the doc from Yamaha is timing information on the busy flag in the status register. Here's the full archive I got sent:
http://nemesis.hacking-cult.org/MegaDri ... YM2608.ZIP
Hopefully some of you will find this info useful. I know I will.
...So, anyone read Japanese?
EDIT:
Here's a transcribed and translated version using an online translator:
http://nemesis.hacking-cult.org/MegaDri ... slated.PDF
http://nemesis.hacking-cult.org/MegaDri ... M2608J.PDF
This is the first time this document has been publicly posted on the internet. This isn't just a datasheet, it's a complete Programming/Technical Reference Manual, weighing in at 67 pages. It's full of hard numbers, tables, and equations. There is a catch however: The manual is in Japanese. I wouldn't hold out for an official version in English. There's a good chance this document was never fully translated from Japanese, even by Yamaha. We've got the information now though. The language barrier can be solved with time and the help of the right people.
The language issue aside, as you'll note, this document is for the YM2608 not the YM2612. This leads to the question, what are the differences between the YM2608 and the YM2612? I've been doing a fair bit of research on this, and the news is good. Here's a list of the all the known Yamaha OPN chips:
-YM2203 (OPN)
-YM2608 (OPNA)
-YM2610 (OPNB)
-YM2612 (OPN2)
-YM3438 (OPN2C) (CMOS implementation of the YM2612. Functionally identical)
-YMF288 (OPN3)
As you can see, both the YM2612 (OPN2) and YM2608 (OPNA) are part of this line. More significantly, after comparing information about all these OPN chips, and particularly after looking through this new manual, it seems that the YM2608 is the direct and immediate ancestor of the YM2612. More than that, the YM2612 seems to just be a "stripped down" version of the YM2608. The documentation for the YM2608 may in fact be better than an official YM2612 reference, as it contains a description of all the features they removed, while still containing all the information on the features provided by the YM2612.
The YM2608 came in a 64-pin package, and required a separate DAC (YM3016) in order to actually produce an analog sound output. The goal of the YM2612 seems to have been to provide a lower cost single-chip solution for systems which didn't require all the features of the YM2608. It seems the parts to get the chop were external I/O Ports, a Rhythm generator with internal ROM samples, a full ADPCM module, and the SSG module (well, most of it anyway ). Apart from the addition of DAC registers at 0x2A/0x2B to provide some basic PCM without the ADPCM module, everything in the YM2612 seems to be unchanged from the YM2608 implementation, meaning the YM2608 manual above should be extremely relevant.
I was sent a number of other documents along with this one. There's a datasheet and some info on the YM3016 DAC, the ADPCM module in the YM2608, a short document on the YMF288, and a full manual on the "86 Sound Board" for the PC-9801-86, which uses a YM2608. One tidbit the 86 Sound Board manual seems to have which I didn't see in the doc from Yamaha is timing information on the busy flag in the status register. Here's the full archive I got sent:
http://nemesis.hacking-cult.org/MegaDri ... YM2608.ZIP
Hopefully some of you will find this info useful. I know I will.
...So, anyone read Japanese?
EDIT:
Here's a transcribed and translated version using an online translator:
http://nemesis.hacking-cult.org/MegaDri ... slated.PDF