글쎄, 꽤 많은 연구 끝에, 나는 이것을 할 수있는 작은 소프트웨어를 발견했다. 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)
을 실제로 내 게임에 음악을 삽입 할 수있는 방법을 찾고 있습니다. 따라야 할 절차가 확실하지 않습니다. 이 답변을 최신으로 유지해야합니다.
NES APU의 [일부 문서] (http://wiki.nesdev.com/w/index.php/APU)에서 그런 프로그램이 있는지는 모르겠지만 보이지 않습니다. 각 생성기마다 하나의 채널을 사용하는 MIDI 파일과 해당 생성기 (봉투 등)의 속성을 나타내는 몇 개의 채널을 사용하여 ASM으로 컴파일하는 것은 너무 어렵습니다. 그냥 생각. – Linuxios