MSX turboR相当の8bit PCM音源を、MSX2/2+などのPCMを持たない機種で擬似的に再生するルーチンです。もちろんturboRでもこのドライバを利用することができます。調べてみるとMSXには意外とPCMが鳴らせそうな周辺機器が多いことが分かり、これもドライバ方式で差し替え可能なようにしました。
下線の引いてあるドライバ名をクリックすると.LZH形式のファイルを転送します。
MSXすべての規格において内蔵されているPSG音源でPCMを発声します。実際には7.3bitでPCMを再現していますが、皆さんが予想するよりはるかに綺麗に聞こえるものと自負しております。DMシステム2ではこのドライバがデフォルトでインストールされています。
PSGPLAY (デフォルト)
PCM-PSG.LZH (4KB) ※ このドライバはKICHI@gulfさんのフリーウェア "PSGPLAY" を改変したものです。
MSX turboRに内蔵されたPCM音源を利用します。本来turboRならばこのドライバを利用すべきなのですが、MSX各規格で利用できるPSGPLAYの出来が良い為、お役御免になった悲しい過去を持つドライバです。どうしてもturboRのPCM音源を利用したいと思う方へ。
このドライバはMSX2/2+ではご利用いただけません。
MSX turboR内蔵PCM
PCM-TR.LZH (2KB)
エミールソフトから発売中のPCMカートリッジ「とーくまん」の内蔵PCM音源を利用します。「とーくまん」の音質はturboRのPCM音源には劣るものの、なかなかのクオリティです。
「とーくまん」はMSX2/2+ユーザーがPCMデータを作成できる唯一のハードウェアです。MSX2/2+ユーザーの方はぜひ入手してみてください。
とーくまん (エミールソフト)
PCM-TKM.LZH (2KB)
コナミのゲームカートリッジで採用されたSCC音源を利用します。PSGよりも綺麗な音質が得られます。「スナッチャー」「SDスナッチャー」付属のサウンドカートリッジを始め、SCCが搭載された各種ゲームカートリッジに対応します。
PCMSCC (各種SCCカートリッジ)
PCM-SCC.LZH (4KB)
※ このドライバはつじかわさんのフリーウェア "PCMSCC" を改変したものです。
MSX各規格にデフォルトで内蔵されているもう一つの音源、それはキークリック音で有名な1bitサウンドポートです。このドライバはそんなチープな音源で強引にPCMを発声させます。なにしろ1bitですので、もう聴けたモンじゃありません。このドライバを組み込んでソフトを作成することは、はっきり言ってオススメしません。それでもチープな音源で聴いてみたい方々へ贈るマニア向けアイテム。DMシステム2はこういう「遊び」も可能なのです。
1bit sound port
PCM-1BIT.LZH (3KB)
PCMドライバはすべての割り込み処理を禁止してPCM再生だけにCPUパワーを使いますが、このドライバは割り込み処理を禁止しないドライバです。ひらたく言えば、BGMを演奏させたりしながら同時にPCM再生を行うドライバです。MSX2/2+から利用可能です。割り込み処理が加わる分だけPCMの音質は下がります。またPCM再生中は割り込み処理以外の処理はできません。
割り込み処理をキャンセルしないPSGPLAY
PCM-EI.LZH (2KB)
PCMドライバを作成することでDMシステム2で利用可能になるであろう、PCM関連ハードを紹介します。
このハードの解析資料を探しています。御存じの方はぜひギガミックスまで。
このハードの解析資料を探しています。御存じの方はぜひギガミックスまで。
PCMドライバはギガミックスで用意したものの他、ユーザーが自由に作成することができます。もし何か面白いMSXハードやソフトが見つかったら、それをPCMドライバにしてみるのはいかがでしょうか。
PCMドライバはDMシステム2の2C00hから2FFFhの、計1KBの領域に格納します。ドライバはの2部に分かれています。
- ヘッダ
- コールエントリー(本体)
PCMドライバのヘッダの構造は次の通りです。+ 0~+39 ドライバ名称 +40 EOFコード (1Ahを代入) +41 ドライバ種別番号 (01h:PCMドライバを代入) +42~+47 未使用 ---------------- +48~ コールエントリアセンブルリストによる例:
ORG 2C00h 2C00 DEFM 'ドライバ名称を漢字20文字に収めます。 ' ;余白は20hで 2C28 DEFB 1Ah ;EOF 2C29 DEFB 01h ;PCMドライバの意 2C2A DEFS 6 ;未使用 2C30 JP PCMPLY ;PCM再生
PCMドライバに用意するコールエントリーは一つだけです。+48 PCMPLY (2C30h) PCM再生
PCMを再生するルーチンです。[in] A b7 メモリ選択 (0:RAM 1:VRAM) b6~b2 未使用 b1~b0 サンプリングレート (0~3) EHL 開始アドレス (EはVRAMのみ有効) DBC データの長さ (DはVRAMのみ有効) [out] 正常終了 Cy←0 異常終了 Cy←1 A←0 Device I/O error A←NZ Break(強制中断)サンプリングレートはソフト(ドライバ)で再現しなければなりません。ほとんどの場合、ウェイトによってサンプリングレートを作らなければならないでしょうから、できるだけturboRでのPCM再生に忠実な再現をお願いします。0 15.75KHz 1 7.875KHz 2 5.25KHz 3 3.937KHz
PCMドライバの格納場所がページ0なので、BIOSへのアクセスはインタースロットコールでお願いします。DMシステム2ではBIOSと同等のコールエントリーを用意していますので、これらを利用すると便利です。
RDSLT (000CH) WDSLT (0014H) CALSLT (001CH) ENASLT (0024H)