Dn-Programming-Core-Management / Dn-FamiTracker

modifications and improvements for 0CC-FamiTracker (based on j0CC-FamiTracker 0.6.3)
Other
356 stars 23 forks source link

2A03+VRC6+MMC5 NSF export makes 2A03 pulse 1 play only pitch A-1 #256

Open DermotMacFlann opened 5 months ago

DermotMacFlann commented 5 months ago

I've made and exported many 2A03+VRC6+MMC5 NSFs in 0CC-FamiTracker without issue, most recently in that program's version 0.3.15.3, and they play back just fine both in NotSo Fatso 0.852 for winamp and in the standalone program NSFPlay Synthesia 2.4 beta 0, both running on Windows 11. Recently I started using Dn-FamiTracker 0.5.0.2. I can make and export new NSF files without bugs in Dn-FamiTracker using the 2A03+VRC6 chips, without MMC5 enabled. And existing 0CC module files loaded in Dn-FamiTracker play back just fine within Dn-FamiTracker itself. But when I try to export any 2A03+VRC6+MMC5 chiptune to NSF using Dn-FamiTracker, and play those NSFs in any of the external NSF players I mentioned, the 2A03's pulse 1 channel plays all its notes only at pitch A-1. 2A03 pulse 1's volume and pulse width seem completely unaffected by the bug, as are the other 2A03 channels as far as I can tell, as well as every VRC6 and MMC5 channel. It only seems to affect 2A03 pulse 1's pitch, and that alone ruins exported NSF playback.

The attached zip archive of test files contains different 2A03+VRC6+MMC5 chiptunes I've made in 0CC-FamiTracker 0.3.15.3, including their 0CC files, and the successful NSF exports I've made with them using that program. Also contained are Dn-FamiTracker 0.5.0.2 NSF exports of each of the same unmodified 0CC files, indicated with the extention .dnm.nsf. Every single one of them demonstrate the Dn-FamiTracker NSF export bug I described: 2A03+VRC6+MMC5 bug.zip

I find Dn-FamiTracker promising as a successor to 0CC-FamiTracker, especially now that 0CC-FamiTracker's homepage is gone. But if I can't successfully export NSFs in Dn-FamiTracker with that combination of chips, then I'll have to return to using 0CC-FamiTracker.

Gumball2415 commented 4 months ago

https://github.com/Dn-Programming-Core-Management/Dn-FamiTracker/actions/runs/8067304836 can you confirm if this build fixes the issue?

DermotMacFlann commented 4 months ago

So far, yes, and I can confirm that both the bug and the fix affect VRC6+N163 chiptunes as well. I took the time to export my newer VRC6+MMC5 and VRC6+N163 chiptunes using the faulty Dn-FamiTracker 0.5.0.2, and then I exported all of my VRC6+MMC5 and VR6+N163 chiptunes in this new Dn-FamiTracker 0.5.0.3. I haven't listened to all the .dnmfix.nsf files, but so far every one I've played in NSFPlay Synthesia has played back perfectly.

The complete updated test files are here, including all the affected .0cc files of both VRC6+MMC5 and VRC6+N163 chiptunes, the properly exported .nsf files from 0CC-FamiTracker, the faulty exported .dnm.nsf files from Dn-FamiTracker 0.5.0.2, and the properly exported .dnmfix.nsf files from this new Dn-FamiTracker 0.5.0.3. multichip bug and fix.zip

DermotMacFlann commented 4 months ago

No, there's a new issue. "Chopin Barcarolle in F-sharp major Op. 60 (VRC6+MMC5).0cc" can no longer export at all. This is what happens:

Gumball2415 commented 4 months ago

this means instrument data is too large for nsf export typical for N163 modules with plenty of wavetables, but not usual for this i think

Gumball2415 commented 4 months ago

i will file this under a new issue

DermotMacFlann commented 4 months ago

Yes, the Chopin Barcarolle is a VRC6+MMC5 chiptune. I very much appreciate you filing this. Thank you.