How to compile -------------- To compile a NSF, call CA65 with these commands ca65 nsf_wrap.s -D INC_MUSIC ld65 -C nsf.cfg -o music.nsf nsf_wrap.o INC_MUSIC is used to include the song data files. To create VRC6 files, define USE_VRC6, and define USE_MMC5 for MMC5 files. Make sure music.bin and samples.bin from famitracker is in the same directory. Other switches that can be used: USE_VRC6 - enables VRC6 code USE_VRC7 - enables VRC7 code USE_MMC5 - enables MMC5 code USE_FDS - enables FDS code Only one expansion chips can be used! Using the player is simple, just call ft_music_init with the song number in A and NTSC/PAL setting in X. Then call ft_music_play in every NMI interrupt. Average CPU usage is somewhere between 1200-2000 cycles (4-6% of a video frame) depending on the complexity of the song. Peak usage is higher, usually between 10-15% when switching patterns. This will be improved in future versions. How to combine different songs ------------------------------ Store the different BIN-files in the assembly file, then just move ft_music_addr to RAM and write the start address of the song you want to use on that location. This is easily achieved by adding a new init song handler that calls the ordinary one.