- 【内蔵】PCM8+FM8+PSG3くらいがベスト【音源】15
595 :SOUND TEST :774[sage]:2009/02/28(土) 08:47:31 ID:1WjW8YUl - >>591
メガドラのPCMって結局ただのD/Aコンバータだから、鳴らしたい周波数でデータを出力しないといけない。 でもメガドラにタイマ割り込みはないから、Z80側でダミーループを回してレートを合わせるのが常道。 以下あてずっぽうだけど、68000側でPCM制御しているとすれば、HSYNC割り込みがトリガじゃないかなぁ。 68000側にはHSYNC割り込みがあるから、15.7kHzを分周したレートのPCMデータなら綺麗に鳴らせるはず。 デメリットとしては、メインの処理がそれなりに割を喰うだろう。 YM2612、というかFM音源IC全般的に、I/Oが壊滅的に遅いし… >>592 メガドラの場合、PCMもYM2612の中に入ってる(ていうか、6チャンネル目をDAC代わりにする)から、 それはそれで、68000とZ80からのアクセスをどう排他するかが面倒そう。
|
- 【内蔵】PCM8+FM8+PSG3くらいがベスト【音源】15
601 :SOUND TEST :774[sage]:2009/02/28(土) 11:34:29 ID:1WjW8YUl - >>596
いや、俺べつに開発者でもなんでもない、解析資料を読んだだけの一般人だから、本当にあてずっぽうだぞ?w >>599 YM2612もZ80側のバスに乗ってるから、68000からアクセスするにはZ80を止めないといけない。 んで、FM音源ICにデータを渡すときは「レジスタの番号を指定」「データを出力」と、2段階で渡す必要がある。 だから不用意にZ80を止めると、Z80がレジスタ番号を指定した直後に偶然当たったりして大変なことになるはず。 …なんか、こんな話してたら、メガドラでサウンドドライバ書いてみたくなってきたな。いや書かないけど。
|
- 【内蔵】PCM8+FM8+PSG3くらいがベスト【音源】15
616 :SOUND TEST :774[sage]:2009/02/28(土) 19:18:28 ID:1WjW8YUl - >>605
まず前提として、割り込みってのは、特に昔のCPUだとそれ自体が結構重たい処理なんだ。 んでもって、FM音源とDCSGに対しては、簡単に言えば「音程はコレで」「音を出せ」という指示を出せば、 後は「音を止めろ」と指示するまで勝手に音を出してくれる。 だから、そんなに頻繁に制御しなくてもいいんで、VSYNC(約60Hz)くらいのゆっくりした割り込みでおk。 ところがPCMを鳴らすとなると、7.8kHzとか15.7kHzとか、かなりの頻度で割り込みを掛けないといけないから、 割り込み自体の重さが無視できなくなってくる。その辺りが、まぁデメリットだろうなという話。
|
- 【内蔵】PCM8+FM8+PSG3くらいがベスト【音源】15
618 :SOUND TEST :774[sage]:2009/02/28(土) 19:39:19 ID:1WjW8YUl - >>613
HSYNCカウンタが読めるのか… それなら、読み取り時のウェイト次第だけど、いけそうだね。 >>615 Z80でも専任させれば処理できる範囲の作業だけど、68000に兼任させるのはキツいってこと。 そこはやっぱり、YM2612がネックなんだよ。 簡単に言えば、68000の処理能力は確かにZ80よりずっと高いけど、68000がどれだけ頑張っても、 YM2612は8ビットづつしかデータを受け取ってくれないし、その受け取りもモタモタしてるから、 足を引っ張られちゃうわけ。
|
- 【内蔵】PCM8+FM8+PSG3くらいがベスト【音源】15
623 :SOUND TEST :774[sage]:2009/02/28(土) 23:13:06 ID:1WjW8YUl - >>617
X1のことかー! >>622 ちなみにメガドラの68000は7.67MHz駆動だから、8kHzの割り込みが掛かるとすると、 割り込み1回あたりのクロック数は約960クロック。 68000のデータシートによれば、割り込み発生時に44クロック、復帰命令に20クロック 掛かるそうだから、「ただ割り込むだけ」で実に7%近いパワーを喰われることになるね…
|