Proper way to denote Dendy NSFs?

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
Proper way to denote Dendy NSFs?
by on (#227201)
What is the correct way to make an NSF that plays at 50 Hz but at NTSC note frequencies by default in major playback software? Such a thing is necessary for games that were designed to be played on a Dendy (-like) console.

Just setting the NSF to PAL would yield incorrect pitches; just setting it to NTSC would make it play too fast. Right now, I set the NSF to NTSC but change the "NTSC playback speed" field to its PAL value. This works well but seems hacky to me.
Re: Proper way to denote Dendy NSFs?
by on (#227202)
The format did not have a way to say Dendy, so setting it to NTSC and adjusting the playback rate, as well as annotating in the filename to indicate the real system was basically the way to do it.

More recently I added Dendy support to a new 'regn' chunk for NSFe, which you can append to an NSF.
http://wiki.nesdev.com/w/index.php/NSFe#regn

There's also a related 'RATE' chunk if you need to separately specify a custom playback rate for Dendy's: (probably better to omit this, unless you need a nonstandard rate)
http://wiki.nesdev.com/w/index.php/NSFe#RATE

This is supported in the most recent beta of NSFPlay. Older versions of NSFPlay had Dendy support as a manual forced override setting, not through the file format.


When an NSF isn't multi-region, it's pretty normal to fill in both rate fields in the original header with the same rate, especially for PAL. There are some popular players that don't even do PAL and end up just ignoring those bits and always using the NTSC fields. Filling them both with 50Hz gets you halfway there in these players, maybe. Consider the NTSC fields in the header as a fallback for players that don't have a separate concept for Dendy.