/MUCOM77

MUCOM77, a sound driver original made for NEC PC-88 series ported to FUJITSU FM-7 series.

Primary LanguageAssembly

MUCOM77

MUCOM77 は PC88 シリーズ用音源ドライバである MUCOM88 を富士通 FM-7 シリーズ向けに移植したものです。
OPN が搭載されている環境であれば FM 音源 3 音+PSG 音源 3 音の演奏が可能です。
WHG 環境(OPN*2)であれば OPNA(FM6+PSG3) を使用した曲を無理やり演奏することもできます。

MUCOM88 公式サイトはこちら

https://www.ancient.co.jp/~mucom88

移植には派生版である mucom88em を参考にさせていただきました。

https://github.com/MUCOM88/mucom88

使い方

PC88 版は MML の記述から演奏、音色の編集まで行える統合環境ですが、FM-7 版は演奏機能に特化した、音源ドライバのみの構成となっています。
ドライバの実行やファイルのロードを簡易なものとするため、F-BASIC から扱えるようにしてあります。
以下、エミュレータ環境での使用法について説明します。

  • 用意するもの
    • F-BASIC フォーマット済みディスクイメージ
      ここでは MUCOM.D77 とします。

    • d77fileutil (http://ysflight.in.coocan.jp/)
      D77 ファイルを読み書きするためのツールです。以下で公開されています。

      http://ysflight.in.coocan.jp/FM/realutil_j.html

    • music
      本プロジェクトの bin フォルダの中に入っています。

    • 演奏したい曲オブジェクトファイル
      mucom88win で作成された .mub ファイルにあたります。
      または、本家 PC88 版 MUCOM88 でコンパイル済みの曲データを抜き出しても OK です。

      .mub ファイルの場合は冒頭に 80byte のヘッダが付くのですがドライバ側で細工してそのまま使えるようにしています。
      ただし、ADPCM を使用した.mub ファイルはサイズが大きくなりがちなので、ADPCM データ部を削るなり工夫が必要です。

      mucom88em でコンパイル済みの曲データから取り出す場合は alpha-dos の拡張メモリ bsave 機能を使い、ホストマシン上では先頭の bsave バイナリヘッダ 4byte を除去するようにしてください。

      とりあえず、公式サンプルである sampl3.muc のオブジェクトファイル形式である sampl3.mub が手元にあることとします。

  • ディスクイメージへの書き込み
    d77fileutil MUCOM.D77 -savem music music 0x1000 0x1000
    d77fileutil MUCOM.D77 -savem sampl3.mub sampl3 0x2800 0x2800
    
    これでディスクイメージにドライバと曲データが書き込まれます。
    エミュレータで files を取るか、以下でもチェックができます。
    d77fileutil MUCOM.D77 -files
    
  • ロードと演奏

    F-BASICを立ち上げ、MUCOM.D77 からロードする準備をします。
    loadm"music"
    
    ドライバがロードできたら(ロードアドレス &H1000 を明示してもかまいません)
    loadm"sampl3"
    
    曲データもロードします。同、ロードアドレス &H2800。
    演奏開始の指示は EXEC で行います。
    exec &H1000
    
    無事に演奏が開始されたでしょうか。
    演奏を停止するには BREAK キーを押します。
    停止後は BASIC に戻ってくるはずですが、現状では不具合があり戻ってこない場合もあります。
    停止後は先程と同じ要領で別の曲データをロードして演奏することもできます。

本家との違い

  • CPU が違います。本家に無いバグを仕込んでしまっているかも。
  • 音源チップへの入力クロックの違いにより、音程・LFO・テンポなどが若干違います。
    なるべく互換性を保つようにはしています。
  • OPNA の機能(HW-LFO やステレオ、リズム音源、ADPCM 音源)は使えません。
  • FM/PSG の音量バランスも若干違うと思います。

謝辞

オリジナル開発者ならびに派生版の開発者の方々、
各種エミュレータや有用なツールの作者の方々に謝辞を捧げます。