かなりの研究の後、私はこれを行うための小さなソフトウェアを見つけました。それはFamiTracker here's the download pageと呼ばれています。
インターフェイスは本当にすばらしくなく、少し慣れていますが、率直に言って、私は必要なものを本当に達成しています。それはすべてのNESチャンネル(2xスクエア、1xトライアングルと1xノイズ)を持っています。私は正常に私が.asmファイルに作成した非常にシンプルな曲をエクスポート(そしてここでの結果だ)しているが:
; FamiTracker exported music data: musique.ftm
;
; Module header
.word ft_song_list
.word ft_instrument_list
.word ft_sample_list
.word ft_samples
.byte 0 ; flags
.word 3600 ; NTSC speed
.word 3000 ; PAL speed
; Instrument pointer list
ft_instrument_list:
.word ft_inst_0
.word ft_inst_1
; Instruments
ft_inst_0:
.byte 16
.word ft_seq_2a03_4
ft_inst_1:
.byte 17
.word ft_seq_2a03_10
.word ft_seq_2a03_9
; Sequences
ft_seq_2a03_4:
.byte $05, $FF, $00, $00, $02, $01, $02, $03, $02
ft_seq_2a03_9:
.byte $04, $FF, $00, $00, $03, $03, $03, $03
ft_seq_2a03_10:
.byte $05, $FF, $00, $00, $0C, $0A, $08, $07, $06
; DPCM instrument list (pitch, sample index)
ft_sample_list:
; DPCM samples list (location, size, bank)
ft_samples:
; Song pointer list
ft_song_list:
.word ft_song_0
; Song info
ft_song_0:
.word ft_s0_frames
.byte 1 ; frame count
.byte 128 ; pattern length
.byte 6 ; speed
.byte 60 ; tempo
.byte 0 ; initial bank
;
; Pattern and frame data for all songs below
;
; Bank 0
ft_s0_frames:
.word ft_s0f0
ft_s0f0:
.word ft_s0p0c0, ft_s0p0c1, ft_s0p1c2, ft_s0p0c1, ft_s0p0c1
; Bank 0
ft_s0p0c0:
.byte $82, $00, $E1, $31, $29, $2C, $31, $33, $2A, $2E, $33, $35, $2E, $31, $35, $84, $36, $03, $82, $00
.byte $35, $31, $2C, $35, $33, $2C, $2A, $33, $2C, $29, $25, $2C, $84, $31, $03, $7F, $5F
; Bank 0
ft_s0p0c1:
.byte $00, $7F
; Bank 0
ft_s0p1c2:
.byte $82, $03, $E1, $31, $E0, $30, $2E, $2C, $2A, $29, $2C, $25, $84, $7F, $5F
; DPCM samples (located at DPCM segment)
私は実際に私のゲームで音楽を挿入する方法を見つけるためには至っていません。私はそれに従う手続きについてはあまりよく分かりません。この回答を最新のものにしておきます。
このようなプログラムが存在するかどうかはわかりませんが、NES APUの[いくつかのドキュメント](http://wiki.nesdev.com/w/index.php/APU)を見ると、見えません各ジェネレーターごとに1つのチャンネルを使用するMIDIファイルと、それらのジェネレーター(エンベロープなど)のプロパティーを示すいくつかのチャンネルを使用してASMにコンパイルするのは難しいでしょう。ちょっとした考え。 – Linuxios