こちらの記事 でMSXにFM音源ーYM2413を内蔵する回路を作れるようになったんですが…。
同じYM2413でも音が出ないものがありました。
今回はその調査結果です。
結論からいうと、MSXで使えるものと、どうやってもMSXでは使えないものがありました。
しかも外観からは区別できないというキョーアクさ。(- -#
◇◇◇
外観上、YM2413には次の二つのタイプがあるようです。
○YM2413の刻印
下側が1980年代のもの。
YM2413の刻印の下に、二桁+空白+二桁+空白+二桁+空白+一桁のフォーマットで刻印があります。
上側が1990年代以降のもの。
YM2413の刻印の下に、デートコード+空白+4桁の刻印があります。
MSXで使えないタイプが混じっているのはこちらです。
手持ちのもので試したところ、
YM2413 9306 HAAG:使用可
YM2413 9849 HABG:使用可
YM2413 0326 HABG:使用不可
YM2413B 0113 IAFQ:使用可
YM2413B 1106 HABG:使用不可
という結果でした。
自作の基板だけでなく、FS-A1WSXに上記のチップを載せても結果は同じでした。
いろいろ調べた結果、WR端子をGNDに接続した状態だと音が出ないチップがありました。
これが自作の基板やFS-A1WSXで音が鳴らなかった原因です。
自作の基板では、「YM2413はI/Oライトしかしないんだから、WR端子はGND直結でもいいでしょ」と、GNDに落としていました。
FS-A1WSXもテスタで調べたら、同じようにWR端子がGNDに繋がっていました。
それなら、とYM2413のWR端子をスロットのWRに直結してみると、一応音が鳴るようになりました。
しかし、まともな演奏になっていません。
◇◇◇
いままでWR信号を入れていなかったので気にしていなかった、YM2413のWR信号の入力タイミングをデータシートで調べてみると、WR信号はIORQ信号より最低30ns前にアサートされていないといけないと規定されていました。
しかしMSXのCPUであるZ80ではI/O命令でIORQ/WRそれぞれの信号の出力タイミングがどうなっているか明記されていません。
つまり、YM2413が期待する信号タイミングをZ80では保障できないということなんですが、ウチの実機ではどうなっているのかな、とオシロで見てみました。
○FS-A1FのIORQ/WR信号出力タイミング
赤がWR信号、黄色がIORQ信号です。
一応WR信号が先に出ていますが、WR信号が出てからIORQ信号が出るまでの時間は12~20nsでした。
YM2413が求める30nsには全然足りていません。
そこで74LS04の全インバータ6段で組んだ遅延回路を使って、IORQ信号を遅らせます。
○IORQ信号遅延後
今度は黄色がWR信号、赤色がIORQ信号です。
50nsまで遅らせることができました。これでYM2413が求める信号タイミングは満たせました。
しかし、この状態だと音が微妙に違います。
どういうことだろうとググってみたら、こんな記事が見つかりました。
http://little-scale.blogspot.com/2009/10/ym2413-original-versus-clone-may-only.html
このページにある音声データを聴いてみると、同じ音源の同じ音色データのはずなのに、微妙に音色が違っています。
どうやら同じYM2413でも微妙に音色が異なるものがあるようです。
音色自体が違っているのでは、MSX販売当時の音が再現できるわけがありません。
MSXで使おうとYM2413を手に入れても、当たりはずれがあるということですね…。
【6/20追記】
ヤマハにYM2413/YM2413Bの生産終了年月を問い合わせてみました。
その回答によると、上記のうち「1106 HABG」のYM2413BはYAMAHAの生産終了年月よりも後のデートコードだと判明しました。
おそらくデッドコピー品ですね。
改めてYM2413/YM2413Bそれぞれ正しく音が鳴るもとの鳴らないものを並べてみました。
○YM2413比較写真
左側が正しく鳴るもの、右側が正しくならないもの。
上側がYM2413、下側がYM2413Bです。
こうして並べてみると、正しく鳴るものと鳴らないものでは微妙に違っています。
これが見分けるヒントになるかもしれませんね。
とはいえ、意図的にデッドコピー品を出荷しているようなメーカーは、こういうのもそのうち真似てしまうんでしょうけど…。
【6/20追記終わり】



