unofficial famitone 4 is done

Discuss NSF files, FamiTracker, MML tools, or anything else related to NES music.

Moderator: Moderators

User avatar
dougeff
Posts: 3078
Joined: Fri May 08, 2015 7:17 pm

Re: unofficial famitone 4 is done

Post by dougeff »

version 5.0 is done. (ca65 is... I still need to make asm6 and nesasm versions)

1xx,2xx,3xx,4xx,Qxx,Rxx effects
duty cycle envelopes
sound fx >256 bytes

https://github.com/nesdoug/famitone5.0?files=1
nesdoug.com -- blog/tutorial on programming for the NES
User avatar
dougeff
Posts: 3078
Joined: Fri May 08, 2015 7:17 pm

Re: unofficial famitone 4 is done

Post by dougeff »

I added PAL support on my versions of famitone 2,3,4.

And added some conditional statements that will only affect you if you ONLY need NTSC or ONLY PAL.

And also edited the vibrato to rate 6 (was 8 before)...and corrected the depth...which adds a few more bytes, but (I think) sounds a little nicer.
nesdoug.com -- blog/tutorial on programming for the NES
User avatar
dougeff
Posts: 3078
Joined: Fri May 08, 2015 7:17 pm

Re: unofficial famitone 4 is done

Post by dougeff »

NOTICE...

In my famitone 4 (and probably 3 and 5) there is a song breaking, game crashing bug.

My encoder produces wrong code for a note cut in the DPCM channel, which I apparently never thought to test.

I will attempt to fix at my next free time.

(probably more potential bugs exist in famitone 5, but I haven't had a chance to test it thoroughly)

Edit, this issue was fixed in June of 2019.
Last edited by dougeff on Sat Jan 23, 2021 10:00 pm, edited 1 time in total.
nesdoug.com -- blog/tutorial on programming for the NES
User avatar
dougeff
Posts: 3078
Joined: Fri May 08, 2015 7:17 pm

Re: unofficial famitone 4 is done

Post by dougeff »

Update today. versions 3,4, and 5

https://github.com/nesdoug/famitone3.3

https://github.com/nesdoug/famitone4.1

https://github.com/nesdoug/famitone5.0

I've had several requests to make the volume column behave exactly match the famitracker's driver, so I added a 256 byte volume table. It will increase ROM size, but improve CPU usage, since it no longer has to multiply these values on the fly.

I also consolidated the different PAL and NTSC versions into single versions, to avoid confusion. So, to select just one region, you will have to comment out (or for ca65, have support = 0) one of them.. if you only want one region supported (to reduce ROM size).

Also, there were minor bug fixes in versions 4 and 5.

And, I don't remember who requested it, but I had never made asm6 or nesasm versions of famitone 5. Those are now completed !!

I will likely not make any more versions. If you want a feature added, you will probably have to modify the code yourself, or use the full famitracker driver (or one of the forks, like 0CC ).

If you prefer the old volume column code (for the smaller ROM size), just uncomment the multiple2 variable, and copy/paste the old Multiply function (from the github commit history) and delete the volume table ft_volume_table:
nesdoug.com -- blog/tutorial on programming for the NES
User avatar
dougeff
Posts: 3078
Joined: Fri May 08, 2015 7:17 pm

Re: unofficial famitone 4 is done

Post by dougeff »

Updated all my famitone versions
famitone2 (my fork)
famitone3
famitone4
famitone5
famitoneGB

the text2data (or text2vol) apps are now compatible with text exports from Dn-Famitracker and 0cc-Famitracker.

https://github.com/nesdoug?tab=repositories

Also, bug fix, so you might want to grab the new files even if you plan to use vanilla Famitracker.

Also, in the asm files I made the new variables contiguous with the original variables, and there is a chart called VAR_CHART.txt which explains the first safe to use RAM address after the Famitone variables (it varies by famitone version and how many sfx channels are enabled). The ca65 version even outputs this value to the console when you build it.
nesdoug.com -- blog/tutorial on programming for the NES
Post Reply