PCM音声再生の話。
>> 設定チャネルをAとBの2つにする → PCMのサンプリングレートが落ちる事に相当
じゃなかったです。
ビットレートが落ちるのではなく、サンプリングデータの解像度が落ちるでした。
現在3チャンネル使っているPCM音声再生を2チャンネルにして試しました。
どうもサンプリングデータの解像度が落ちるのはそんなに問題にならないようです。
2チャンネルだけで再生した場合でも6ビット程度の解像度が出ており、データの取り方ではかなりいい音になります。
2チャンネルで再生した場合の1回の音声発声ルーチンは、
LD C,0A0H
LD B,08H
LD D,09H
↑あらかじめ設定しておく
LD A,XX :7
OUT (0A1H),A :11+1
OUT (C),D (or B):12+1
LD A,XX :7
OUT (0A1H),A :11+1
と51クロックです。
どっちかというとサンプリング周波数の方が問題のようです。
サンプリング周波数を落とすと、当たり前ですが高音が汚くなります。
8000Hz程度ならまだマシで、それ以下はうーんという感じです。
さらに...
動画再生をしながら、というか画面を表示しながらのPCM音声再生は、周波数が限定される事を忘れていました。
P6の場合、画面描画中はCPUを停止しているため、その期間は音を出せなくなります。
そのため、画面の1行を表示するたびに、1音を出す、というのが最高の周波数になります。
算出すると、画面262行を1/60秒で描画しているので、60 × 262 = 15720Hz が最高のサンプリング周波数になります。
2行ごとの場合は、7860Hz、3行ごとの場合は、5240Hz です。
====
今の所の検討結果をまとめると、
・描画は、320×150(160×150)ドット。
・描画していない区間は、CRTKILL でCPUクロックを稼ぐ。
・PCM音声再生は2チャンネルで再生する。
この場合...
・PCM音声 なし :20FPS(垂直同期3回で1枚描画)
・PCM音声 15720Hz :12FPS(垂直同期5回で1枚描画)
・PCM音声 7860Hz :15FPS(垂直同期4回で1枚描画)
・PCM音声 5240Hz :15FPS(垂直同期4回で1枚描画)
となります。
2画面切り替えを行うため、垂直同期のn回分で1枚描画にする必要があります。
(mk2以降の画面切り替えは、垂直同期のタイミングで行われるため)
後はどれくらいで妥協するか...ですね。


8000Hz/8bitで電話並みの音質(ただし実際の電話はu-Lawでダイナミックレンジを拡大。
解除も可)ですから、それを大幅に下回ると...ですね。
追伸 南関東は大雨・暴風で大変なようですが、北関東はウソのように小雨・微風です
(7日午前3時現在)
(計算上は800Hzぐらいになりますが、まともに聞こえない)。
ですので、現状は、
なし:20FPS
15720Hz:12FPS
7860Hz:15FPS
の3通りだけが実現の意味がありそうです。