Dn-Programming-Core-Management / Dn-FamiTracker

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

NSF Export Issues in 0.5.0.1 #215

Open etoubleh opened 1 year ago

etoubleh commented 1 year ago

https://web.archive.org/web/20170130070756/http://www.fodxm.co.uk/fod_coffeezonesources.zip Dn-FT crashes when I try to export 4_raindance.ftm to NSF.

https://battleofthebits.org/arena/Entry/Suppressed+Feelings/31620/ https://battleofthebits.org/arena/Entry/All+Bets+are+0ff/46078/ The first 2A03 square wave channel is transposed down when I export these to NSF and play them in NSFplay. Based on a small sample size of .ftm and .0cc files that I tested, it seems like this only affects songs that use multiple expansion chips.

Gumball2415 commented 6 months ago

2A03 square transposition is due to Kxx state clobbering via bugged S5B init code.

When multichip is enabled (2 or more chips), Dn uses compiled driver code with all expansion audio enabled. The program then diligently patches the driver as necessary to play the actual chips used in the module.

This means this issue affects every NSF export with multichip.

Gumball2415 commented 5 months ago

image Rain Dance appears to have invalid pattern instrument data at frame 3A, pattern 3E, in the DPCM channel this causes the pattern compiler to return an invalid DPCM instrument pointer, which crashes the program.

by default, Dn-FamiTracker bypasses invalid pattern data, all the way back to vanilla.