FMPMD2000 のページ

last updated 2004.01.10

 

FMPMD2000 / FMPMDE2000 とは?

PC-98x1シリーズの音源ドライバ「FMP」と「PMD98」用の曲データを Windows 上で演奏するためのソフトです(FMPMD2000 は日本語版、FMPMDE2000 は英語版)。

曲を聞くためには、WinFMP 本体(WinFMP.dll) と PMDWin 本体(PMDWin.dll)とプレイヤが必要です(もちろん曲データも。)

現在の最新バージョンは、WinFMP.dll は ver0.16, PMDWin.dll は ver0.35, FMPMD2000 / FMPMDE2000 はver0.31 です。

開発中の画面(1280x1024, 74,315bytes)

DOS版との共演(1280x1024, 70,072bytes)

 

なお、WinFMP.dll / PMDWin.dll では OPNA のエミュレートに cisc さんのFM音源エンジンを使用させていただいています。

FM Sound Generator with OPN/OPM interface
Copyright (C) by cisc 1998, 2003.

 

WatchFileUpdate とは?

ファイルのタイムスタンプの更新時に特定の実行ファイルに更新ファイルを引き渡して実行するプログラムです。

といってもピンと来ないかもしれませんが、例えば図のように設定しすると、自動的に以下の処理を行います。

  1. エディタで test.mml を保存すると「c:\bin\mc.exe /v c:\data\test.mml」を実行。
  2. コンパイラが test.m を生成すると 「c:\bin\fmpmd.exe c:\data\test.m」を実行。

Windows 環境での曲データの作成に重宝すると思います。

 

 

 

 

 

 

変更点

WinFMP.dll(Ver0.16)

WinFMP.dll(Ver0.15)

PMDWin.dll(Ver0.35)

FMPMD2000(Ver0.31)

FMPMD2000(Ver0.30)

FMPMDE2000(Ver0.31)

FMPMDE2000(Ver0.30)

FMPMD_SDK003a

FMPMD_SDK003

 

各プログラムの関係

FMP の曲データから演奏時の PCM データを生成する DLL です。DOS 版の FMP.com + PPZ8.com に近いです。インテリジェント、かつできるだけ機種依存性が少ないように設計しています。

DLL に音を出力する機能が備わっていないのは、機種依存性を減らすためと、私自身が VC++ で窓アプリを作成するのが苦手なためです(PMDWin.dll, WinFMP.dll が、VC++ で2作目、3作目です)。

 

PMD98 の曲データから演奏時の PCM データを生成する DLL です。DOS 版の PMDPPZ.com + PPZ8.com + P86drv.com + PDR.com + PPSDRV.com に近いです。できるだけ WinFMP.dll と同じように制御できるように設計しています。

 

 

なぜ FMP が WinFMP.dll なのに PMD98 が PMDWin.dll なのかというと、最初に PMD98 の Windows 版を作ったときに PMD98, PMD88, PMDTOWNS, ・・・等と整合性を取るために PMDWin にしたのですが、FMPWin はあまりにもゴロが悪かったので WinFMP にしたためです。

 

FMPMD2000 以外のプレイヤー

Kobarin さん が作成しているエクスプローラー形式の国産プレイヤーです。最初は MIDI のみのサポートだったのですが、プラグインによりどんどん対応形式を増やし、WinAMP に並ぶ多様なフォーマットの曲データをサポートするようになりました。FMP / PMD の PVI パス指定にも対応して下さいました。

 

Moonlight さん作の MMDSP ライクなグラフィカルプレイヤーです。パラメーター表示の作り込みの細かさと3Dエフェクトの多彩さが素晴らしいです。

 

DDTOM さん作の FMP 対応グラフィカルプレイヤーです。今までのプレイヤーとは異なったグラフィックが新鮮です。

 

Kigami さんが作成されている PMD 用のプレイヤーですが、現在ページが消えているようです。FMPMD よりビジュアル面に力が注がれています。

 

ひこざさんが作成されたシューティング「無双撃団」で、BGM 用に PMDWin を使用していただきました。

 

PMD98 最後?の市販ゲーム「ラブエスカレーション」を Windows に移植されている Production StarHole で、BGM で PMDWin を採用して下さいました。

 

音源の種別

FMP, PMD98 でサポートされている音源について簡単に記します。

 

FM 音源

正弦波発振器を4つ接続することにより音に変調をかけて音色を合成します。接続の方法は8種類のパターンから選べます。PMD98 で最も重要な働きをする音源です。

 

PSG(SSG) 音源

矩形波またはノイズ(ランダム波)を演奏させることのできる音源です。FM 音源と異なり波形を変えることはできませんが、うまく使うと透明感のある独特の音色を表現することができます。

 

リズム音源

バスドラム、スネアドラム、ハイハット、シンバル、タム、リムショットの6種の音を発生させることができます。チープな音色が涙を誘います(^^;

 

ADPCM 音源

マイクや外部入力からとり込まれた音をデジタル化し、演奏するサンプリングの1種ですが、前のデータとの差を利用して圧縮するため、後述のPCM音源よりデータサイズが小さいメリットがあります。

 

PCM 音源

ADPCM音源と同様にサンプリングにより取り込まれたデータを再生する音源ですが、圧縮を行わないためデータサイズは大きいものの音質は優れています。

 

音源チップについて

OPN(YM-2203)

FM音源×3、SSG×3(ともにモノラル)の演奏が可能です。PC-9801DA 以降の PC-9801 シリーズ、PC-386GE,GS 以降のエプソンの98互換機などに標準搭載されていますが、Windows 時代になって省かれてしまいました。

 

OPNA(YM-2608)

FM音源×6、SSG×3、リズム×6(SSG以外はステレオ)の演奏が可能です。外部 RAM が接続されていれば ADPCM ×1(ステレオ)も演奏可能です。スピークボードや音美ちゃん(共に音源ボードの名称です)では ADPCM の演奏も可能なのですが、NEC が発売した86ボードでは PCM ×1(ステレオ)が搭載されたため ADPCM は省略されてしまいました。PC-9821-A Mate、Multi シリーズに標準搭載されています。

 

FMP について

FMP.COM

OPN, スピークボード, 86ボード用の FMP です。最大 FM×6、SSG×3、リズム×6、ADPCM×1(ステレオ)の演奏が可能です。後述の PPZ8 を用いると、SSG の代わりに PCM×3 を鳴らすことができます。

 

PMD98 の種類について

PMD.COM

OPN 用の PMD です。FM×3、SSG×3(モノラル)の演奏が可能です。

 

PMDB2.COM

スピークボード、音美ちゃん用の PMD です。FM×6、SSG×3、リズム×6、ADPCM×1(ステレオ)の演奏が可能です。

 

PMD86.COM

86ボード用の PMD です。後述の P86DRV を用いることにより PMDB2 とほぼ同等の演奏ができます。

 

PMDPPZ.COM

86ボード用の PMD です。後述の PPZ8 を用いることにより、1パートしかないPCMパートで8パート分の合成を行って演奏させることができます。

 

補助プログラムについて

PDR,PPSDRV

SSGパートを用いて力技でサンプリングデータを演奏させるためのプログラムです。2つペアで使うことにより初めて機能します。サンプリングデータとしては .PPS を使用します。すべての種類の PMD98 で使用できます。

 

P86DRV

PMD86 で PCM を演奏させるための補助プログラムです。サンプリングデータとしては .P86 を使用します。

 

PPZ8

FMP または PMDPPZ と併用して PCM の8音合成を行います(FMP では3音のみ対応)。P86DRV と併用することはできません。サンプリングデータとしては .PVI または .PZI を使用します。

 

 

曲データ、サンプリングデータの拡張子について

.OPI FMP用の曲データ(OPN)です。
.OVI FMP用の曲データ(OPNA)です。
.OZI FMP用の曲データ(PPZ8 使用、OPN または OPNA)です。
.M PMD(OPN)用の拡張子ですが、PMDB2, PMD86, PMDPPZの曲データでもこの拡張子のものも
あるようです。
.M2 PMDB2 または PMD86 用の曲データです。
.MZ PMDPPZ 用の曲データです。
.PVI 元々は FMP のサンプリングデータ(ADPCM)だったんですが、PPZ8 パート(FMP, PMDPPZ)や
PMDB2 のサンプリングデータとしても使えます。
.PZI PPZ8 用のサンプリングデータ(PCM)です。PMDPPZ で使用できます。
.PPS PDR, PPSDRV 用のサンプリングデータ(PCM)です。
.PPC PMDB2 用のサンプリングデータ(ADPCM)です。
.P86 PMD86 用のサンプリングデータ(PCM)です。

FMPMD2000 では、FMP と PMD98 のすべての曲データ(PMDB2, PPSDRV, P86DRV, PPZ8)に対応しています。

 

データ作成について

FMP または PMD98 の曲データは、MML(Music Macro Language)と呼ばれる音楽記述用の言語をコンパイラでコンパイルすることによって作成します。ただし FMP と PMD98 で言語仕様は異なります。オリジナルの FMP または PMD98 に同梱されているマニュアルを参照してください。

現在のところ Windows 用の GUI ベースの作成ソフトはありませんので、以下の方法で作成することになります。

 

1)PC-98x1 シリーズで作成する。

最も確実な方法ですが、当然実機と音源を持っている必要があります。

PC-9821 A Mate なら中古ショップまたはオークション等で安価に入手することが可能と思います。性能的には 486DX2 クラスで十分です。

 

2)エミュレーター上で作成する。

Anex86, Virtual98, T98, Neko Project II 等のエミュレーターが使用可能です。

ただし、PPZ8 のエミュレートは 重いので PentiumIII クラスの CPU でも厳しそうです。

 

3)mc.exe または fmc.exe(対応版) を Windows の DOS プロンプトで直接実行する。

AT 互換機で fmc.exe を使用する場合は PC-98x1 機種依存部分を除いたバージョン(3.16z)のみ使用可能です。3.16z 以前のバージョンを使用すると最悪 OS が落ちます。

AT 互換機では mc.exe の /P, /S オプションは決して使わないで下さい。また、評価版コンパイラ mch.exe は Window 上では決して実行しないで下さい。最悪 OS が落ちます。

PC-98x1 シリーズ(音源あり)なら DOS プロンプトで開発することも可能ですが、PPZ8 を使う場合は Windows で 同じPCMデバイスを使わないように設定してください。

FMP のコンパイラ fmc.exe の PC-98x1 機種依存部分を除いたバージョン(3.16z)が公開されました。ぐぅさんお疲れさまです(2001.09.16)

PMD98 のコンパイラ mc.exe がフリーソフトになりました。KAJA さんありがとうございます(2000.06.17)

WatchFileUpdate(拙作)を用いることにより、MML ファイル保存と連動してコンパイル、演奏を自動的に行うことができるようになりました(2001.02.17)

 

番外)Windows 用のデータ作成ソフトを自作する。

わたし?多分無理・・・

 

WinFMP のソースファイルについて

公開の要望が何件かありましたが、いろいろ考えた末、公開をしないこととしました。

この件について私およびオリジナルの FMP の作者であるぐぅ氏への問い合わせはご遠慮ください。

 

戻る