Ну, после небольшого исследования я нашел небольшое программное обеспечение, которое позволяет мне это делать. Он называется FamiTracker here's the download page.
Интерфейс действительно не так уж хорош, и он требует немного привыкания, но, откровенно говоря, он действительно выполняет то, что мне нужно. Он имеет все каналы NES (2x Square, 1x Triangle и 1x Noise). Хотя я успешно экспортировала очень простую песню, которую я создал в .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)
Я до сих пор найти способ на самом деле вставить музыку в моей игре. Я не совсем уверен в процедуре. Я обязательно буду поддерживать этот ответ в актуальном состоянии.
Я не знаю, существует ли такая программа, но, глядя на [некоторую документацию] (http://wiki.nesdev.com/w/index.php/APU) NES APU, она не выглядит например, было бы слишком сложно взять файл MIDI с использованием одного канала для каждого генератора и несколько каналов, указывающих свойства этих генераторов (конверт и т. д.), и скомпилировать его в ASM. Просто мысль. – Linuxios