TR1~5は、APU(RP2A03)に割り当てられます。
トラック | 音源 |
---|---|
TR1 | APU(2A03) パルス波 ch1 |
TR2 | APU(2A03) パルス波 ch2 |
TR3 | APU(2A03) 三角波 |
TR4 | APU(2A03) ノイズ |
TR5 | APU(2A03) ⊿PCM |
デフォルトでは、効果音は2トラックのみで、APUのパルス波ch2及びノイズに割り当てられます。
トラック | 音源 |
---|---|
TR1 | APU(2A03) パルス波 ch2 |
TR2 | APU(2A03) ノイズ |
5トラックの効果音に対応したバージョンは、以下の通り割り当てられます。
(本音源ドライバーをアセンブラー"ca65.exe"でアセンブルする際に、"-D SE"オプションを付ける事で、
5トラックの効果音が使用可能になります。)
トラック | 音源 |
---|---|
TR1 | APU(2A03) パルス波 ch1 |
TR2 | APU(2A03) パルス波 ch2 |
TR3 | APU(2A03) 三角波 |
TR4 | APU(2A03) ノイズ |
TR5 | APU(2A03) ⊿PCM |
ユーザーアプリケーション組み込み用のライブラリです。そのため、音源ドライバ本体からはバンク切り替えをしません。
(音源ドライバー *.lib の外部(ユーザーアプリケーション側)でバンク切り替えを行う事は可能です。)
従い、MMLコンパイラ`nec.exe'で直接NSFを生成する場合は、NSFヘッダーの128byteを除き、合計32kbyteまでとなります。
MMLコンパイラにて、直接NSFにビルドする際のメモリマップは、以下表の通りです。
Address | Contents |
---|---|
0x8000 ~ 不定 | 音源ドライバ本体(*.bin) |
不定 ~ #OffsetPCM | 曲データ (音源ドライバ(*.bin)の直後に配置します) |
#OffsetPCM ~ 0xFFF1 | ⊿PCMデータ (#OffsetPCMは、MML中の#OffsetPCMコマンドで設定したアドレスです。) |
0xFFFA ~ 0xFFFF | TNS-HFC3などが割り込みベクタとして使用します。 |
NSF専用の.binです。ユーザーアプリケーションへの組み込みに使うことはできません。
これらの.binをリンクする場合は、MML中に予め`#Bank'コマンドを記述して下さい。
(バンク切り替え非対応版とはNSFの構造が異なるため、MMLコンパイラへの通知が必要です。)
MMLコンパイラ`nec.exe'で生成されるNSFは、
NSFヘッダーの128byteを除き合計1024kbyteまでのNSFを作ることができます。
(NSF music formatの仕様が1024kbyteまでとなっております。)
但し、曲データ(シーケンス)は64kbyteまでです
MMLコンパイラにて、直接NSFにビルドする際のメモリマップは、以下表の通りです。
注意
これらの⊿PCM-IRQに対応したbinを使用時は、TNS-HFC4へ直接VRC6, VRC7を刺すことはできません。
別途、TNS-HFX4が必要となります。
また、VRC6とVRC7のアドレスの競合をおこすため、
これらのアドレスデコーダ回路の実装された再生環境(TNS-HFX4等)が必要となります。
Address | Contents |
---|---|
0x0000 ~ 0x07FF | 制御用構造体1 |
0x6000 ~ 0x7FFF | 制御用構造体2(本体内RAMの2kbyteでは容量が足りないため、拡張RAMを使っています) |
0x8000 ~ 0x9FFF | 曲データ(この領域はバンク切り替えが発生します。) |
0xA000 ~ 0xBFFF | 音源ドライバ本体(データ) & 割り込みベクタ(*.bin) |
0xC000 ~ 0xDFFF | ⊿PCMデータ (この領域は再生する⊿PCMによりバンク切り替えが発生します。) |
0xE000 ~ 0xFFFF | 音源ドライバ本体(コード) & 割り込みベクタ(*.bin) |
内蔵音源(APU)のみに対応しています。
内蔵音源(APU)のみに対応しています。
PALシステム用です。
内蔵音源(APU)のみに対応しています。
BGM、効果音共に5トラック使用可能です。
内蔵音源(APU)および、FDS音源に対応しています。
トラック | 音源 |
---|---|
TR6 | FDS(ディスクシステム音源) |
内蔵音源(APU)および、VRC6の音源部に対応しています。
トラック | 音源 |
---|---|
TR6 | VRC6 パルス波 ch1 |
TR7 | VRC6 パルス波 ch2 |
TR8 | VRC6 鋸波 |
内蔵音源(APU)および、VRC7の音源部に対応しています。
トラック | 音源 |
---|---|
TR6 | VRC7(FM音源) ch1 |
TR7 | VRC7(FM音源) ch2 |
TR8 | VRC7(FM音源) ch3 |
TR9 | VRC7(FM音源) ch4 |
TR10 | VRC7(FM音源) ch5 |
TR11 | VRC7(FM音源) ch6 |
内蔵音源(APU)および、MMC5の音源部に対応しています。
トラック | 音源 |
---|---|
TR6 | MMC5 パルス波 ch1 |
TR7 | MMC5 パルス波 ch2 |
内蔵音源(APU)および、n16x(n160,n161,n162,n163)の音源部に対応しています。
トラック | 音源 |
---|---|
TR6 | n16x(波形メモリ音源) ch8 |
TR7 | n16x(波形メモリ音源) ch7 |
TR8 | n16x(波形メモリ音源) ch6 |
TR9 | n16x(波形メモリ音源) ch5 |
TR10 | n16x(波形メモリ音源) ch4 |
TR11 | n16x(波形メモリ音源) ch3 |
TR12 | n16x(波形メモリ音源) ch2 |
TR13 | n16x(波形メモリ音源) ch1 |
内蔵音源(APU)および、sunsoft 5bの音源部に対応しています。
トラック | 音源 |
---|---|
TR6 | Sunsoft 5B ch1 |
TR7 | Sunsoft 5B ch2 |
TR8 | Sunsoft 5B ch3 |
内蔵音源(APU)および、OPLL(YM2413)に対応しています。
※"nsd_opll.lib" 及び "nsd_opll.bin" は、VRC7をOPLL(YM2413)に換装した、改造拡張音源用の音源ドライバーです。
ファミコン実機でOPLLを鳴らしたい方は、個人の責任にて改造して下さい。
トラック | 音源 |
---|---|
TR6 | OPLL FM音源 ch1 |
TR7 | OPLL FM音源 ch2 |
TR8 | OPLL FM音源 ch3 |
TR9 | OPLL FM音源 ch4 |
TR10 | OPLL FM音源 ch5 |
TR11 | OPLL FM音源 ch6 |
TR12 | OPLL FM音源 ch7 (Rhythmが有効な時は、デバイス出力しません) |
TR13 | OPLL FM音源 ch8 (Rhythmが有効な時は、デバイス出力しません) |
TR14 | OPLL FM音源 ch9 (Rhythmが有効な時は、デバイス出力しません) |
TR15 | OPLL Rhythm Bass Drum (Rhythmが無効な時は、デバイス出力しません) |
TR16 | OPLL Rhythm Snare Drum (Rhythmが無効な時は、デバイス出力しません) |
TR17 | OPLL Rhythm Hi Hat (Rhythmが無効な時は、デバイス出力しません) |
TR18 | OPLL Rhythm Top Cymbal (Rhythmが無効な時は、デバイス出力しません) |
TR19 | OPLL Rhythm Tom Tom (Rhythmが無効な時は、デバイス出力しません) |
ch7~9のFM音源/リズム音源の切り替えは、リズムトラック(TR15~19)の`s'コマンドにて設定します。
曲中での切り替えにも対応しており、デフォルトは、FM音源 9ch(s0)です。
s0 … FM音源 9ch (TR15~19の発音は無効になります。休符を置いてください。)
s1 … FM音源 6ch + リズム音源 5ch (TR12~14の発音は無効になります。休符を置いてください。)
リズム音源は、以下のディチューン、オクターブ、音程とする事で、データシートに近い音程となります。
又、OPLLのハードウェア的に、Snare DrumとHi Hatは同じ周波数レジスターを使用しており、
Top CymbalとTom Tomも同じ周波数レジスターである点に注意してください。
FDS音源以外の拡張音源に対応した.binです。
※ "nsd_all.bin"は、多くの拡張音源及び、⊿PCMのバンク切り替えに対応したコードですが、
リソースの多くを音源ドライバーが使ってしまうため、アプリケーション組み込みはできません。
NSF専用になります。
トラック | 音源 |
---|---|
TR6 | VRC6 パルス波 ch1 |
TR7 | VRC6 パルス波 ch2 |
TR8 | VRC6 鋸波 |
TR9 | VRC7(FM音源) ch1 |
TR10 | VRC7(FM音源) ch2 |
TR11 | VRC7(FM音源) ch3 |
TR12 | VRC7(FM音源) ch4 |
TR13 | VRC7(FM音源) ch5 |
TR14 | VRC7(FM音源) ch6 |
TR15 | MMC5 パルス波 ch1 |
TR16 | MMC5 パルス波 ch2 |
TR17 | n16x(波形メモリ音源) ch8 |
TR18 | n16x(波形メモリ音源) ch7 |
TR19 | n16x(波形メモリ音源) ch6 |
TR20 | n16x(波形メモリ音源) ch5 |
TR21 | n16x(波形メモリ音源) ch4 |
TR22 | n16x(波形メモリ音源) ch3 |
TR23 | n16x(波形メモリ音源) ch2 |
TR24 | n16x(波形メモリ音源) ch1 |
TR25 | Sunsoft 5B ch1 |
TR26 | Sunsoft 5B ch2 |
TR27 | Sunsoft 5B ch3 |
TR28 | 制御用トラックです(音符は発音しません)。 曲全体のコマンド(テンポや、VRC7, n16xの音色設定等)を記述できます。 |
全ての拡張音源に対応した.binです。
※ "nsd_all2.bin"は、多くの拡張音源及び、⊿PCMのバンク切り替えに対応したコードですが、
リソースの多くを音源ドライバーが使ってしまうため、アプリケーション組み込みはできません。
NSF専用になります。
"nsd_all2.bin"は、VRC6, VRC7, SUNSOFT 5bも同時に仕様する場合に、
0x8000~0xDFFFがROMとなるプレイヤーで、ご使用ください。
この領域がRAMになっていると、暴走します。
トラック | 音源 |
---|---|
TR6 | FDS(ディスクシステム音源) |
TR7 | VRC6 パルス波 ch1 |
TR8 | VRC6 パルス波 ch2 |
TR9 | VRC6 鋸波 |
TR10 | VRC7(FM音源) ch1 |
TR11 | VRC7(FM音源) ch2 |
TR12 | VRC7(FM音源) ch3 |
TR13 | VRC7(FM音源) ch4 |
TR14 | VRC7(FM音源) ch5 |
TR15 | VRC7(FM音源) ch6 |
TR16 | MMC5 パルス波 ch1 |
TR17 | MMC5 パルス波 ch2 |
TR18 | n16x(波形メモリ音源) ch8 |
TR19 | n16x(波形メモリ音源) ch7 |
TR20 | n16x(波形メモリ音源) ch6 |
TR21 | n16x(波形メモリ音源) ch5 |
TR22 | n16x(波形メモリ音源) ch4 |
TR23 | n16x(波形メモリ音源) ch3 |
TR24 | n16x(波形メモリ音源) ch2 |
TR25 | n16x(波形メモリ音源) ch1 |
TR26 | Sunsoft 5B ch1 |
TR27 | Sunsoft 5B ch2 |
TR28 | Sunsoft 5B ch3 |
TR29 | 制御用トラックです(音符は発音しません)。 曲全体のコマンド(テンポや、VRC7, n16xの音色設定等)を記述できます。 |
全ての拡張音源に対応した.binですが、VRC7はOPLLに変わっています。
※ "nsd_all.bin"は、多くの拡張音源に対応したコードですが、
リソースの多くを音源ドライバーが使ってしまうため、アプリケーション組み込みはできません。
NSF専用になります。
※"nsd_opll.lib" 及び "nsd_opll.bin" は、VRC7をOPLL(YM2413)に換装した、改造拡張音源用の音源ドライバーです。
ファミコン実機でOPLLを鳴らしたい方は、個人の責任にて改造して下さい。
トラック | 音源 |
---|---|
TR6 | VRC6 パルス波 ch1 |
TR7 | VRC6 パルス波 ch2 |
TR8 | VRC6 鋸波 |
TR9 | OPLL FM音源 ch1 |
TR10 | OPLL FM音源 ch2 |
TR11 | OPLL FM音源 ch3 |
TR12 | OPLL FM音源 ch4 |
TR13 | OPLL FM音源 ch5 |
TR14 | OPLL FM音源 ch6 |
TR15 | OPLL FM音源 ch7 (Rhythmが有効な時は、デバイス出力しません) |
TR16 | OPLL FM音源 ch8 (Rhythmが有効な時は、デバイス出力しません) |
TR17 | OPLL FM音源 ch9 (Rhythmが有効な時は、デバイス出力しません) |
TR18 | OPLL Rhythm Bass Drum (Rhythmが無効な時は、デバイス出力しません) |
TR19 | OPLL Rhythm Snare Drum (Rhythmが無効な時は、デバイス出力しません) |
TR20 | OPLL Rhythm Hi Hat (Rhythmが無効な時は、デバイス出力しません) |
TR21 | OPLL Rhythm Top Cymbal (Rhythmが無効な時は、デバイス出力しません) |
TR22 | OPLL Rhythm Tom Tom (Rhythmが無効な時は、デバイス出力しません) |
TR23 | MMC5 パルス波 ch1 |
TR24 | MMC5 パルス波 ch2 |
TR25 | n16x(波形メモリ音源) ch8 |
TR26 | n16x(波形メモリ音源) ch7 |
TR27 | n16x(波形メモリ音源) ch6 |
TR28 | n16x(波形メモリ音源) ch5 |
TR29 | n16x(波形メモリ音源) ch4 |
TR30 | n16x(波形メモリ音源) ch3 |
TR31 | n16x(波形メモリ音源) ch2 |
TR32 | n16x(波形メモリ音源) ch1 |
TR33 | Sunsoft 5B ch1 |
TR34 | Sunsoft 5B ch2 |
TR35 | Sunsoft 5B ch3 |
TR36 | 制御用トラックです(音符は発音しません)。 曲全体のコマンド(テンポや、VRC7, n16xの音色設定等)を記述できます。 |
全ての拡張音源に対応した.binですが、VRC7はOPLLに変わっています。
※ "nsd_hfx4.bin"は、TNS-HFCシリーズ及び、TNS-HFX4に専用のコードです。
トラック | 音源 |
---|---|
TR6 | FDS(ディスクシステム音源) |
TR7 | VRC6 パルス波 ch1 |
TR8 | VRC6 パルス波 ch2 |
TR9 | VRC6 鋸波 |
TR10 | VRC7(FM音源) ch1 |
TR11 | VRC7(FM音源) ch2 |
TR12 | VRC7(FM音源) ch3 |
TR13 | VRC7(FM音源) ch4 |
TR14 | VRC7(FM音源) ch5 |
TR15 | VRC7(FM音源) ch6 |
TR16 | OPLL FM音源 ch1 |
TR17 | OPLL FM音源 ch2 |
TR18 | OPLL FM音源 ch3 |
TR19 | OPLL FM音源 ch4 |
TR20 | OPLL FM音源 ch5 |
TR21 | OPLL FM音源 ch6 |
TR22 | OPLL FM音源 ch7 (Rhythmが有効な時は、デバイス出力しません) |
TR23 | OPLL FM音源 ch8 (Rhythmが有効な時は、デバイス出力しません) |
TR24 | OPLL FM音源 ch9 (Rhythmが有効な時は、デバイス出力しません) |
TR25 | OPLL Rhythm Bass Drum (Rhythmが無効な時は、デバイス出力しません) |
TR26 | OPLL Rhythm Snare Drum (Rhythmが無効な時は、デバイス出力しません) |
TR27 | OPLL Rhythm Hi Hat (Rhythmが無効な時は、デバイス出力しません) |
TR28 | OPLL Rhythm Top Cymbal (Rhythmが無効な時は、デバイス出力しません) |
TR29 | OPLL Rhythm Tom Tom (Rhythmが無効な時は、デバイス出力しません) |
TR30 | MMC5 パルス波 ch1 |
TR31 | MMC5 パルス波 ch2 |
TR32 | n16x(波形メモリ音源) ch8 |
TR33 | n16x(波形メモリ音源) ch7 |
TR34 | n16x(波形メモリ音源) ch6 |
TR35 | n16x(波形メモリ音源) ch5 |
TR36 | n16x(波形メモリ音源) ch4 |
TR37 | n16x(波形メモリ音源) ch3 |
TR38 | n16x(波形メモリ音源) ch2 |
TR39 | n16x(波形メモリ音源) ch1 |
TR40 | Sunsoft 5B ch1 |
TR41 | Sunsoft 5B ch2 |
TR42 | Sunsoft 5B ch3 |
TR43 | 制御用トラックです(音符は発音しません)。 曲全体のコマンド(テンポや、n16xの音色設定等)を記述できます。 |
@VコマンドによるFM音源のユーザー音色の設定は、TR15以前に記述した場合はVRC7へ設定、TR16以降に記述した場合はOPLLへ設定します。