NSDL(NES Sound Driver Library)
概要(Summary)
任天堂ファミリーコンピューターにて、BGM、効果音(SE)を制御するための音源ドライバーです。
ライブラリとして開発されており、ユーザーのアプリケーションから制御することができます。
This is a sound driver for the Nintendo Entertainment System (NES).
This can playing the Back-Ground Music(BGM) and the Sound Effect(SE).
This is developed as object library, and user application can control it.
特徴(Characteristic)
-
音源ドライバー本体は、アセンブリ言語にてCPU負荷・コードサイズ共に最適化して開発。
また、曲データサイズについても、MMLの記述次第で小さくなるように設計。
これにより、限りあるROM領域の圧迫を防ぎます。
-
アセンブリ言語及びC言語から呼び出し可能な、ライブラリ関数。
※関数呼出規約は、CC65における __fastcall__
です。
-
MMLコンパイラーによる曲データの作成環境。
-
且つ、様々な音楽表現を可能とすべく、多岐にわたる機能を実装。
-
The sound driver are optimized for code size and processing speed by asembly langage.
Moreover, this music data is designed to get samll data and code size.
So, this desine has preventive occupation of ROM area.
-
C-Langage source code can coll this library functions.
* The calling conversion of this library functions are __fastcall__
of `cc65'.
-
MML Compiler can make the music data.
-
For the music expression, this sound driver has various music function.
付属品(Appurtenances)
アーカイブ中のファイル構成です。
Directory |
File |
Contents |
bin\ |
nsc.exe |
MMLコンパイラ (Microsoft(R) Windows 32bit application) |
*.bin |
NSF用のコンパイル済み音源ドライバー&プレイヤ |
doc\ |
readme.txt |
概要(転載の際のヘッダーにご利用ください) |
nsd.chm |
取扱説明書(コンパイル済みhtmlファイル) |
include\ |
nsd.h |
C言語用ヘッダーファイル(nsd.libのライブラリ関数の宣言等がされています) |
nsd.inc |
アセンブリ言語用ヘッダーファイル(nsd.libのライブラリ関数、制御用変数の宣言等がされています) |
lib\ |
*.lib |
音源ドライバー本体(6502用開発環境`cc65'用のオブジェクト・ライブラリ) |
sample\ |
cc65\ |
*.* |
cc65.exe用のC言語からnsd.libを使用する例 |
ca65\ |
*.* |
ca65.exe用のアセンブリ言語からnsd.libを使用する例 |
template\ |
template.mml |
MML記法のテンプレート |
すととん.mml |
ストトン記法のテンプレート |
dmc\ |
*.dmc |
⊿PCMサンプルデータ
- bd.dmc
- Bass Drum
- sd.dmc
- Snare Drum (Standard)
- sd2.dmc
- Snare Drum (Dance)
- tom.dmc
- Tom Tom
- hhc.dmc
- Hi Hat Close
- hho.dmc
- Hi Hat Open
- cymbal.dmc
- Cymbal
|
voice\ |
n163.mml |
n16x(n160,n161,n162,n163)音色データ・サンプル |
vrc7.mml |
vrc7音色データ・サンプル |
その他\ |
|
ユーザー様より戴いたサンプルデータ |
src\ |
help\ |
*.html |
取扱説明書のhtmlソース |
help.css |
取扱説明書のスタイルシート |
nsdl.hhp |
HTML HELP Workshop Version 4用のプロジェクト・ファイル |
nsdl.hhc |
helpファイルのコンテンツ・ツリー |
nsdl.hhk |
helpファイルの索引 |
nsc\ |
*.cpp, *.h |
MMLコンパイラのソース(C++の標準関数のみで記述) |
nsc.sln |
Visual C++.net 2003用のソリューション・ファイル |
nsc.vcproj |
Visual C++.net 2003用のプロジェクト・ファイル |
makefile |
makeとgccでビルドする場合のmakefile |
nsd\ |
*.s, *.inc |
音源ドライバ本体(ライブラリ)のソース(6502のアセンブリ言語) |
makefile |
nmake.exe用のmakefile |
rom\ |
*.s |
NSF用の.binのソース(6502のアセンブリ言語) |
*.cfg |
ld65.exe用のconfig file |
makefile |
nmake.exe用のmakefile |
目次(index)
- チュートリアル(※執筆中)
- MMLコンパイラ (nsc.exe)について
- コマンドラインオプション
- すととん記法
- ラ,シ,ド,レ,ミ,ファ,ソ:音符
- ー:タイ
- ン,ッ:休符
- 音符:省略時の音長
- 音色
- 音階:オクターブ
- ↑,↓:相対オクターブ
- 音量
- 小さく,大きく:相対ボリューム
- 調{}:調号
- エコー
- エンベロープ
- ゲート:クオンタイズ
- ディチューン
- テンポ
- ←,→:相対的なテンポ
- TR:トラック
- ビブラート
- ポルタメント
- ∞:無限ループ
- 【 : 】 :リピートA
- |: ¥ :| :リピートB
- MML(Music Macro Language)文法
- エンベロープ記述ブロック
- パッチ定義記述ブロック
- ⊿PCM記述ブロック
- FDSキャリア波形定義
- FDSモジュレータ波形定義
- VRC7音色波形記述ブロック
- n16x(n160,n161,n162,n163)音色波形記述ブロック
- シーケンス記述ブロック
- a,b,c,d,e,f,g:音符
- k:キーシフト
- j:早送り
- l:省略時の音長
- o:オクターブ
- q,u:省略時のゲートタイム
- r:休符
- s:スイープ(APU)
- s:サスティン(VRC7)
- s:サンプル長設定(n16x)
- s:ハードウェアエンベロープ(Sunsoft 5B)
- t:テンポ
- v:音量
- y:メモリ書き込み
- yV:VRC7レジスタ書き込み
- D,D%:ディチューン
- E@,Ev,Em,En:エンベロープ(ビブラート)
- EC:疑似エコー
- EC:疑似エコー(バッファ制御)
- F:Sunsoft 5Bエンベロープ周波数
- K{}:調号
- scale():スケール
- J:音符・休符の無効化
- j:早送りの有効・無効化
- L:無限ループ
- NC:n16x(n160,n161,n162,n163)チャンネル数設定
- P:ポルタメント
- {}:ポルタメント2
- Rm,R@,Rv:リリース処理
- S:サブルーチン・コール
- SE:効果音コール
- TR:トラック
- $:マクロ呼出し
- $$:ローカルマクロ設定。;o>
- @:音色
- @P:パッチ
- @V:VRC7ユーザ定義音色
- @FC:FDSキャリア波形設定
- @FM:FDSモジュレータ波形定義
- @FF:FDSモジュレータ周波数設定
- @FV:FDSマスター音量
- @N:n16x(n160,n161,n162,n163)音色波形転送(ロード)
- @NL:n16x(n160,n161,n162,n163)音色波形転送(ロード)
- @NS:n16x(n160,n161,n162,n163)音色波形設定&サンプル長指定
- (,):相対ボリューム
- <,>,",':相対オクターブ
- [ : ]:リピート(A)
- |: \ :|:リピート(B)
- ^:タイ
- _.__:移調
- Tips
- 出力アセンブリ言語ソースの仕様
- 音源ドライバー (nsd.lib)について
3. 仕様(Specifications)