This version adds support for the NSF2 file format, which provides embedded metadata, and IRQ capabilities. NSFe metadata has been extended and merged with NSF2. New metadata additions include expansion audio mix levels and Dendy support. The quality setting and its underlying implementation has been rewritten, now applying globally rather than one setting per expansion device, and having better synchronization between the NES CPU and audio devices.
Many minor changes and fixes have been included as well.
Changes since 2.3:
- Fixed incorrect bytes per second in stereo WAV output.
- Fixed NSFe track title display when using playlist.
- Fixed crash issue with 1MB NSF files. (Bank counting was incorrect.)
- Default NTSC speed changed from 16640 to 16639. (Slightly more accurate to hardware.)
- More bits of precision on fade-out, creates smoother fade.
- 48000Hz is the new default samplerate.
- Fixed keyboard view wave string bias on N163/FDS.
- Fixed frequency rounding for triangle/noise/DMC in keyboard display.
- Fixed intermittent crash with Winamp starting up with NSF in playlist.
- Fixed FDS mod table bit-mask and wavetable read address. (Minor.)
- Fixed broken playback rate for rates < 28 Hz.
- NSFe RATE chunk implemented.
- NSFe regn chunk implemented, including full Dendy support.
- NSFe mixe chunk implemented.
- NSFe taut, psfx chunk implemented.
- Drag and drop will now acknowledge a failed load with a pop-up alert.
- Migrate to VS2017.
- IRQ support.
- Play now runs at next opportunity rather than always at the start of frame, similar to poll based players like PowerPak.
- Other expansions with FDS automatically disables FDS RAM writes, and FDS banking for $6000-7FFF.
- Full NSF2 implementation. (non-returning INIT, suppress play, IRQ, NSFe metadata.)
- Removed non-functional filters, compressors, etc. from the audio chain.
- Removed per-channel quality settings, created a single master quality setting.
- DPCM byte read now correctly takes 2 cycles.
- Improved NES CPU vs APU/audio synchronization (controlled by quality setting).
- Better error messages for files that can't be loaded.
- Fixed broken seek, and restored the "fask seek" option. (Seeks as if quality=1, normally OK.)
- If in_yansf.ini can't be found or created next to in_yansf.dll, will try to save settings to %AppData%\NSFPlay\ instead.
- N163 compatbility options for phase write protect and limited wavelength. (Supports old NSFs that are not hardware accurate.)
- Option to randomize starting triangle phase.
- NSFe VRC7 chunk implemented, provisional support for YM2413 variant.
- VRC7 patch set dump by Nuke.YKT.