コマンドラインオプション(Command line option)

本MMLコンパイラは、CUI(Command line User Interface)のアプリケーションです。
以下のように、記述してください。
何も指定しない場合は、NSFに変換します。

概要(Overview)

	nsc -option filename(*.mml)
-a
Compile to assembly langage. (*.s)
-n
Compile to NSF music format. (*.nsf)
-x
Compile to NSFe music format. (*.nsfe)
-vversion
Specify the NSF Version.
-odswitch
Optimize of Delta-PCM.
-ooswitch
Optimize of object.
-osswitch
Optimize of sequence.
-e
Error/Warning messages out the Stadard error (stderr).
-s
Enable outout the search pass result.
-lfilename
Set the filename of the rom code for NSF.
-fafilename
Set the filename of the output assembly langage file.
-fnfilename
Set the filename of the output NSF music format.
-cdir
Set the search pass of the rom code for NSF. (*.bin)
-pdir
Set the search pass of the delta-pcm file. (*.dmc)
-idir
Set the search pass of the include file.
-h
Print the this help.

詳細(Detail)

-a

MMLファイルをアセンブリ言語ソース(ca65.exe用)へ変換します。
出力されるアセンブリ言語ソースは、そのままca65.exeでアセンブル可能なソースになっており編集不要です。
ソースを編集すると、再生に影響を及ぼす可能性がありますので、編集せずにアセンブルしてください。
ユーザー・アプリケーションのビルドの際に、そのオブジェクト・ファイルをリンクして下さい。

出力するアセンブリ言語ソースの詳細は、出力するアセンブリ言語ソースについてを参照して下さい。

-n

NSF (Nintendo Sound Format)へ変換します。

-x

NSFe (Extended Nintendo Sound Format)へ変換します。

-n, -xオプションにおける注意事項

バンク切り替え非対応版の.binを用いてコンパイラで直接NSFを生成する場合、 実行コード、シーケンスデータ、⊿PCMデータの合計が32kByteまでとなります。
バンク切り替え対応版の.binを用いる場合は、1024kByteまでのデータを作成する事が可能です。
各.binの詳細は、各.lib/.binの仕様を参照願います。

-vversion

NSFのヴァージョンを1~2で指定可能です。省略した場合は、Version 2となります。

-odswitch

バンク構成の最適化のスイッチです。
switchにて+を指定した場合、バンク構成を最適化します。
switchにて-を指定した場合、バンク構成を最適化しません(デフォルト)。

NSFファイルにビルドする際に、バンク構成を最適化しファイルサイズを小さくします。
⊿PCMを用いるMMLをコンパイルする場合に、効果が得られる場合があります。
但し、バンクが不連続に配置されたnsfに非対応の実機再生環境では、⊿PCMの再生が正常に行われない場合があります。
(現状、TNS-HFC3にて確認しています)。

このオプションスイッチでは、未使用のメモリ空間のバンクは作らず、必要なバンクだけを作成します。
これは、⊿PCMを使用する際に発生します。
たとえば、シーケンスデータが$9FFF番地で終わり⊿PCMが$C000番地から配置される場合$A000~$BFFFのメモリ領域は不要となります。
その領域をnsfファイル化せず、$8000~$9FFF, $C000~を領域のみをnsfファイル化して、ファイルサイズを小さくするためのオプションです。
Version 0.10β~0.17βでのデフォルトの動作です。

また、⊿PCMでバンクに対応した.binを使用時において、このオプションスイッチを指定しない場合は、 NSFのバンク数が最低8バンク(NSFヘッダーを除き32kByte)になるように調整します。
このオプションスイッチを指定する場合は、8バンク(NSFヘッダーを除き32kByte)以下のNSFも作成可能ですが、 バンクが不連続に配置されたnsfに非対応の実機再生環境では、正常に再生できない可能性があります。

-ooswitch

未使用のサブルーチン、エンベロープ等を削除するスイッチです。
switchにて+を指定した場合、未使用のエンベロープ、FDS, n163, VRC7の音色をコンパイルしません(デフォルト)。
switchにて-を指定した場合、未使用であっても削除しないでコンパイルします。

-osswitch

シーケンスデータにおける最適化のスイッチです。
switchにて+を指定した場合、BGM, 効果音, 及びサブルーチンのシーケンスデータを最適化します(デフォルト)。
switchにて-を指定した場合、シーケンスデータを最適化しません。

-e

エラー/ワーニングを、標準エラー出力に出力します。
デフォルトでは標準出力に返しますが、ファイルに関するエラーのみは、標準エラー出力固定となります。

-s

検索パスの検索結果を出力します。

-lfilename

NSF Music formatへ変換する際の実行コードファイルを指定します。
このオプションを指定した場合、MML中の"#code"コマンドは無視されます。
ファイル名は、スペースを開けずに記述してください。

-fafilename

アセンブリ言語ソースのファイル名を指定できます。
指定がない場合は、入力されたmmlのファイル名で、拡張子を`.s'にして出力します。
ファイル名は、スペースを開けずに記述してください。

-fnfilename

NSF Music formatのファイル名を指定できます。
指定がない場合は、入力されたmmlのファイル名で、拡張子を`.nsf'にして出力します。
ファイル名は、スペースを開けずに記述してください。

-cdir

NSF Music formatへ変換する際の実行コードファイルの検索パスを設定します。
;で区切ることにより、複数の検索パスを指定可能です。
パス名は、スペースを開けずに記述してください。
検索優先順位は、以下の通りです。

  1. カレントディレクトリ
  2. 指定のMMLファイルにディレクトリ名を含んでいた場合、そのディレクトリ
  3. 環境変数`PATH'にて指定されたディレクトリ
  4. このオプションで指定されたディレクトリ

-pdir

⊿PCMファイル(*.dmc)の検索パスを設定します。
;で区切ることにより、複数の検索パスを指定可能です。
パス名は、スペースを開けずに記述してください。
検索優先順位は、以下の通りです。

  1. カレントディレクトリ
  2. 指定のMMLファイルにディレクトリ名を含んでいた場合、そのディレクトリ
  3. 環境変数`DMC_INCLUDE'にて指定されたディレクトリ
  4. このオプションで指定されたディレクトリ

-idir

MML中の#includeディレクティブで指定されたインクルードファイルの検索パスを設定します。
;で区切ることにより、複数の検索パスを指定可能です。
パス名は、スペースを開けずに記述してください。
検索優先順位は、以下の通りです。

  1. カレントディレクトリ
  2. 指定のMMLファイルにディレクトリ名を含んでいた場合、そのディレクトリ
  3. このオプションで指定されたディレクトリ

-h

簡易ヘルプを表示します。