読者です 読者をやめる 読者になる 読者になる

Lost Technology

レトロPC、レトロゲーム、チップチューン等の主に技術的な雑記

Y8950とYM2413(OPLL)

Y8950、YM2413ともに、MSXユーザーにはなじみの深いFM音源チップである。*1

Wikipediaの記事において、この2つの音源チップならびに両チップのMSXにおける実装規格であるMSX-AUDIOとMSX-MUSICに関しての記述が完全な嘘っぱち*2なんだが、関連記事全て訂正して回るのが面倒臭いのでここでまとめて突っ込んでおくことにする。

MSX-AUDIOについて

MSX-AUDIOとは、MSX2のオプション規格で、OPL互換のFM音源ADPCM(またはPCM)を1セットまたは2セットと規定されている。
ADPCM/PCM部分の有無自体がオプションなので、規格上はOPL、OPL2、OPL3等のOPL互換モードを持つ音源チップを搭載していてもMSX-AUDIOを名乗ることができる。*3
また、2セット実装した場合は左右2chに振ってステレオ音源として使用する事を想定している。MSX-AUDIO用のI/Oポートアドレスが4つ予約されているのはそのためである。*4
ちなみに、MSX-AUDIO拡張BASICのリズム音モードでは、各リズム音に対するF-number*5が正しく設定されていないため、マニュアルに書かれているようなドラム音にはまったく聞こえない。*6

Y8950とMSX-AUDIO

Y8950は、MSX-AUDIO規格に準拠した音源チップとして、OPLにADPCMを統合したカスタムチップである。*7そのため、この当時のYAMAHAのFM音源チップに付与されていた"Operator Type-**"のような通称が付けられていない。*8
チップのシルク面にでかでかとMSXロゴが印刷され、ご丁寧にMSX-AUDIOとまで書いてあるのでチップ自体もMSX-AUDIOと通称されることが多いが、前述の通りMSX-AUDIOというのは規格名なので、このチップ自体をMSX-AUDIOと呼称するのは正確ではない。Y8950はMSX-AUDIO規格の一実装例である。
なぜOPLベースかというと、OPLがキャプテンシステムでの使用を企図して設計された音源だからに他ならない。*9MSX2規格自体がMSXをキャプテン端末として使用できるように設計されていたのだから、音源がOPL互換なのは必然である。

じゃあYM2413は?

実はYM2413もキャプテン端末仕様に準拠した音源で、OPL2のサブセットである。*10YM2413が内蔵しているROM音色はキャプテン端末仕様に規定された15音色に一致する。
Wikipediaの関連記事には「YM2413はY8950からADPCM等を削除した」に類する記述があちこちに見られるが、そんなことは全くない。*11
OPL2から機能として削除されたのはタイマーとCSMくらい*12で、あとはコストダウンのための性能制限である*13
で、上記の性能削減により、それまでの他のFM音源チップに比べて回路およびソフトウェアからの制御が極めてシンプルになったため、特にアミューズメント領域で爆発的に採用された。*14
そんな中で、MSXにおける実装例が松下のFM PACだった。標準キャプテン端末の座を狙っていたMSXにキャプテン端末用のチップを実装しないわけにはいかないのだ。

MSX-MUSICについて

MSX-MUSICとは前述のFM PACの大ヒットを受けてMSX規格に取り込まれた物、とされている。
が、FM PACが使用しているI/OポートはMSX規格上勝手に使用できない予約ポートなので、FM PACは登場時点でMSX規格違反ということになる。*15
MSX-MUSICの拡張BASICは文法や用法が先行のMSX-AUDIOと互換性があるが、BIOSには互換性はない。この中途半端な互換性のおかげで、MSX-MUSICはMSX-AUDIOの改良とか後継とかいう誤解があるが、単に用途や目的が同じ(OPLに似たチップでキャプテン端末仕様を満たす)ために拡張BASICにも互換性があるものと考えられる。*16

----

というわけで、まずはMSX-AUDIO/MSX-MUSIC周辺の記事に突っ込んでみたが、要出典論争とかに巻き込まれるのはまっぴら御免なので、このブログの記事をWikipediaに引用したりリンクしたりするのは謹んでお断りさせていただく。

----

2013/5/7追記:MSX-AUDIO拡張BASIC/BIOSとMoonsoundについての記述を修正。 

*1:いや、Y8950はそうでもないかも…

*2:他にもFM音源関連の記事はデタラメがまかり通っている。他についてもおいおい書く予定。

*3:東芝のMSX-AUDIOユニットであるHX-MU900にはY8950を搭載しながらADPCM用RAMが載っていないのでADPCM機能がまったく使えない。また、OPL4を搭載したMoonsoundもMSX-AUDIOを名乗れる可能性がある。

*4:チップ2つでステレオという発想はIBM-PC用のサウンドボードであるAdLibや初期のSoundBlasterにも見られる。OPL2をこの目的で統合したのがOPL3。

*5:YAMAHA製のほとんどのFM音源チップで音程を決定するために使用される発声する周波数と基準周波数との関係を表すコード。

*6:これについては別の機会にちゃんと書く。

*7:Y8950のADPCMはPCMデータを入力することもできる。

*8:付いてないけど、あえて呼ぶとすればType-LすなわちOPLだよなぁ。

*9:MSX2のVDPであるV9938もキャプテン端末仕様を包含する。

*10:OPLLのユーザー音色定義では、OPL2で付加された波形選択パラメータがある。OPL2では4種類からだが、OPLLでは2種類から選択する。この機能はMSX-MUSICの拡張BASICの音色定義では使用できない。

*11:ベースとなったOPL2に元から無いのに削除もクソもあるか。

*12:そもそもYAMAHAのFM音源チップにおけるタイマー機能は元々はCSM音声合成モードのためにあるので、CSMが無くなれば実はタイマーも不要。

*13:各パラメータの分解能低下とか、ユーザー音色領域の削減とか。

*14:なにしろFM音源特有の複雑な音作りを一切しなくても比較的リッチな音が出る上に、発音制御自体はPSGより簡単なのである。

*15:MSX1規格では予約ポートをメーカー独自機能とかに使用してあとから規格に取り込むというのは結構あったが、MSX2規格からは原則としてカートリッジで増設するオプションで勝手にI/Oポート使うな、というのが建前。

*16:平均律以外の音律を選択する機能はキャプテン端末の要求仕様だったりする。