じぇみに広野氏が語るレトロゲーム機のPCM再生技術
PC-8001版モンスターパニック(誰が知ってるんだそれは)の作者。FC版ルナボール、ZANAC、PCE版ガンヘッド、スーパーアレスタ、海外MS版パワーストライク2等のプログラマー・・・って昔のばっかで最近コレってのがないのはどうなん。このアイコンはコンパイル時代のHDDから掘り出したんだけど描いたのダレでござるか。
趣味はPCのジャンクいじり。組んだりバラしたり壊したり(おい)エロねたもRTするのでフォローしてくださる方はご注意を。絵描きは最近復活したけど技量的にはうんまあほら。ですのでこの可愛いアイコンはのとすさん(https://t.co/5AtdySPD9l)制作なのです。
技術と言うのは必ずしも普遍的な物ではない。時代を超えて使える技術もあれば、特定の状況でしか使えない技術もある。丸太から車輪を切り出す方法なんて、あっても役に立つ人は少なかろう。
2014-02-07 19:04:15その昔FM-7で当時としては高速でポリゴンを表示するゲームがあったが、今、その技術のどの部分がどこで役に立つか謎だ。ああ、役に立たないとは限らないんだが。
2014-02-07 19:04:26(1)メガドライブのPCM再生技術
って訳で使いどころのなくなった技術。メガドライブで、比較的きれいにサンプリング音声を再生する方法。知ってる人は知っているが、メガドライブのサンプリングはすべからくダミ声だ。
2014-02-07 19:04:36主原因は、サンプリングデータの再生速度が不安定だから。一定間隔で再生すべきデータが時々遅延するために波形がひずみ、ダミ声化する。これは再生がソフトウエアだから、でもある。
2014-02-07 19:04:45アーケード用メガドラ相当のボードは音声再生のハードウェアを専用で乗せているので、同じ再生レートでもはるかに綺麗に再生できる。アーケード版ぷよぷよとかね。
2014-02-07 19:04:55アーケード用メガドラ相当のボード→SEGA System Cの事。
「System C」と「System C2」の二種類が存在するが、PCM機能(ADPCM)をハードウェアで搭載しているのは「ぷよぷよ」「ぷよぷよ通」等で使われているC2の方のみ。
ソフトウェア再生でも、再生速度が安定していれば音質は維持される。PCエンジンは6992Hzのタイマ割り込みを使っているので、その速度で再生するぶんには割とキレイ。
2014-02-07 19:05:07メガドライブは、サンプリング再生に使えそうな割り込みをなぜか1つも持っていない。FM音源にはちょうといい感じのタイマーもあったが、割り込みに入っていない。なんか設計上の理由があったんだろうか。
2014-02-07 19:05:17ではどうするかというと、逆にサンプリング再生にCPUを100%使う。幸いメガドラにはCPUが2つあるので、68000はゲームを担当、Z80がサンプリングと、分業すればいい。
2014-02-07 19:05:26しかも68000とZ80はうまいことバスを使い分ける前提でハードが設計されている。だから本来、Z80はサンプリングに専念しても支障はないし、事実させる事が多い。
2014-02-07 19:05:36そうは問屋がおろさないのが68000側。実はバスを使い分ける前提で設計はされていたものの、実際の実装では68000側のメモリ空間での特定の操作をする時だけは、Z80と衝突する可能性がある。
2014-02-07 19:05:47特定の操作ってのは、一部のアドレスへのアクセス、及びDMAの動作。だから68000側は、それに抵触しそうな間だけは、Z80を強制停止せざるを得ない。
2014-02-07 19:05:57その期間はサンプリング再生が止まるので、長ければ長いほど波形が歪み、どんどんダミ声化していく。さてDMAってそんなに頻繁に、しかも長期間使うのだろうか。
2014-02-07 19:06:17DMAはメインメモリからVRAMへの転送が主な用途。キャラクターデータの書き換えとか、画面のある程度以上の面積の書き換えではこれが大活躍する。でも、毎回使うかというとゲーム次第で、そうでもない。
2014-02-07 19:06:29ところがだ。スプライトの表示用データはVRAMみたいな空間に書き込む必要があって、それにもDMAが使われる。こっちは当然毎フレームやらなきゃならない。つまりダミ声化は回避不能。
2014-02-07 19:06:39と言いたいところだが、スプライトデータはそこまででかくない。ならサンプリング再生中だけは、DMAを使わずにCPUでごりごり書き込んでも、どうにか間に合うんじゃね?
2014-02-07 19:06:49というのをぷよ通マスターアップ後に思いついてサンプルを作った。音質が劇的に改善されたが、当然日の目は見ないまま。唯一、メガドラ魔道ではこの手法が採用されたはずなんだが。
2014-02-07 19:06:58