PMDRC

提供: JUDStyle
2018年2月21日 (水) 01:55時点におけるJud (トーク | 投稿記録)による版 (Download)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
移動先: 案内検索

PMDRCは、P.M.D.演奏用データを逆コンパイルするためのツール。

概要

PC-98x1シリーズ上で動作するFM音源ドライバ P.M.D. の演奏データを逆コンパイルするアプリケーションです。再利用または解析を目的としたツールであるため、生成されたMMLをそのまま再度コンパイルして利用することは現実的ではありません。

構成

全てのファイルが同一ディレクトリに存在すれば、あまり深く考える必要はありません。面倒な場合は読み飛ばして問題ないでしょう。

  • PMDRCC.exe
    MS-DOSプロンプト上で動作するアプリケーションです。各DLLをロードし、必要な処理を行います。アプリケーションの核心部分はDLLであり、UIは事実上このコマンドラインアプリケーションしかありません。
  • PMDRC.dll
    PMDデータからMMLを生成するアプリケーションです。
  • F2PCV.dll
    FMPV4データからPMDデータへの簡易コンバータです。入力ファイルがFMPデータであった場合、メモリ上でFMPデータをPMDデータにコンバートし、それをPMDRC.dllに引き渡す機能が実装されています。

使用方法

PMDRCC.exe, PMDRC.dll, 必要なら F2PCV.dll を同一ディレクトリに置き、MS-DOSプロンプトから以下の様式で起動する。

PMDRCC.exe [option ...] 入力ファイル名

コマンドラインオプション

  • /nobarline
    小節区切りの空白文字を挿入しない。 (Default=可能ならする)
  • /dobarline
    小節区切りの空白文字を挿入する。 (Default=可能ならする)
  • /novdump
    FM音色を出力しない。 (Default=する)
  • /dotx81z
    FM音色出力様式をTX81Z向けに変更する。 (Default=PMD向け)
  • /L<value>
    出力レベルを指定する。5でMML出力はなくなり、4がもっとも出力が少なく、2がもっとも多い。 (Default=3)
  • /dodump
    各トラックごとのバイナリを切り離して表示するトラックダンプモードで動作する。 (出力レベル=5に固定)
  • /dosdump
    1つの命令を1行で表示するスーパートラックダンプモードで動作する。 (出力レベル=5に固定)
  • /dodialog
    対話モードで起動する。 (/Z,/l,/b 相当)
  • /noautolen
    長さ自動判別せず、lコマンドもMMLとして出力されない。 (Default=可能な限りする)
  • /l<value>
    lコマンドの長さを指定する。 (符点不可/Default=16 0:使用しない)
  • /b<value>
    音符表現指定できる最小の長さを指定する。 (符点不可/Default=16/32)
  • /Z<value>
    1. Zenlen コマンド値を指定する。 (48/96 Default=192)
  • /B<value>
    小節線起点の指定 (Default/0:Auto 1:[L] 2:データ先頭)
  • /F<value>
    小節線起点のオフセット指定 (Default=0)
  • /@<file>
    F2PCV.DLL一時ファイル出力先を指定する。 (Default=出力しない)
  • /.<file>
    MMLファイル出力先を指定する。 (default=ファイルには出力せず標準出力に出力する)

V1.21

細かいバグフィクスと些細な機能追加を行ったV1.21を 2008/10/29 にリリース。

  • /doautotrans にて転調を音階MMLに吸収する
  • 絶対転調と相対転調を逆に解釈していたbugをfix
  • ループ終端の直前に存在するcontrol(演奏時間を持つabcdefgr以外のMML)がループ終端より先に表示されるbugをfix

V1.31a

2014/7/22 にリリース。

  • r以外の音符により発音しているFM/PCM音色の一覧を標準出力に追加出力する機能を追加。バッファは6番。

Download

サポート

技術的説明は省略します。アプリケーションやソースコードに関する質疑応答については twitter にて可能です。 @Judstyle 宛てに mention を投げてください。