ごちゃログぴこっ

はなまるデジタル創作紀行(DTM、TAS、いろいろな技術)

メガドライブの音源の音色設定(レジスタ値)を確認・ダンプする

メガドライブの音源の音色設定(レジスタ値)を確認・ダンプするのに役立つ技術方法をいくつか紹介します。

FM音源部である YM2612 (OPN2) を対象にしていますが、DCSG音源部である SN76489 の情報取得にも応用できる内容が含まれています。

  • Kega Fusion で VGM ログを採取する
  • vgm2pre で VGM ファイルからプリセットを抽出する
  • 音楽プレイヤーで VGM ファイルを再生する(チャンネルミュート可能)
  • VGM Player で VGM ファイルをメガドライブのROMに逆変換する
  • Exodus でリアルタイムにレジスタ値を確認する

Kega Fusion で VGM ログを採取する

Kega Fusion を使うと、プレイ中の音声を VGM ファイルに記録することができます(メニュー Sound → Log VGM File)。

f:id:GOCHA:20170107072104p:plain

VGM フォーマット) はゲーム機の音声を記録するためのフォーマットで、その内容は音源チップへのデータ書き込み内容を逐次ログとして記録したものとなっています。

VGM フォーマットには MP3 のようにタグデータを書き込むこともできます。VGM ファイル作成に関するガイドラインProject2612 ripping tutorial - vgmrips が詳しいですが、今回必要なのはただダンプすることだけです。

vgm2pre で VGM ファイルからプリセットを抽出する

vgm2pre は VGM ファイルから音色のプリセットを抽出するツールです。

f:id:GOCHA:20170107123148p:plain

Preferences(メニュー Tools → Preferences)で出力ファイルフォーマットを選択できます。

f:id:GOCHA:20170107123159p:plain

私は FMDrive やその他のツールで使用するために「TFI」のみを出力することが多いです。ご使用のツールなどに応じて選択してください。

「Dump」ボタンを押すと無事にファイルが出力されます。ファイルに対応した音源(VST)を持っていれば DAW 上で音を鳴らすことができます。

また、TFI ファイルのフォーマットは極めて単純なので、バイナリエディタで閲覧することで各レジスタの値を確認することができます。

音楽プレイヤー(foobar2000)で VGM ファイルを再生する(チャンネルミュート可能)

本題には直結しませんが、VGM ファイルは音楽ファイルなので当然再生が可能です。

私は foobar2000foo_input_vgm をインストールしています。Preferences から Chips Options を開くと、特定のチャンネルをミュートすることもできます。

f:id:GOCHA:20170107124952p:plain

VGM Player で VGM ファイルをメガドライブのROMに逆変換する

VGMPlayer は VGM ファイルをメガドライブの ROM ファイルに変換するツールです。

f:id:GOCHA:20170107130230p:plain

起動画面で「Rom Builder」ボタンを押すと、メインウィンドウが表示されます。

f:id:GOCHA:20170107130316p:plain

「Add Tracks」ボタンでファイルを追加して、「Build Rom」ボタンを押すと、vgmPlay.bin に ROM ファイルが出力されます。

Exodus でリアルタイムにレジスタ値を確認する

鳴っている音楽のレジスタの値が今まさにどうなっているか知りたい。そんなときはデバッグ機能が充実していたエミュレーター Exodus を使うのが便利です。

ROM を起動して、メニュー Debug → Mega Drive → YM2612 からデバッガを開くと、レジスタの値をリアルタイムで確認することができます。

f:id:GOCHA:20170107130612p:plain

関連記事

gocha.hatenablog.com

gocha.hatenablog.com