Proper way to denote Dendy NSFs?

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

Moderator: Moderators

Post Reply
Posts: 1215
Joined: Thu May 19, 2005 11:30 am

Proper way to denote Dendy NSFs?

Post by NewRisingSun » Tue Oct 09, 2018 11:14 am

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.

User avatar
Posts: 7841
Joined: Sun Jan 22, 2012 12:03 pm
Location: Canada

Re: Proper way to denote Dendy NSFs?

Post by rainwarrior » Tue Oct 09, 2018 11:24 am

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.

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)

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.

Post Reply