NSF Importer v0.5 Written by Brad Smith 11/21/2011 ============================================================================ This is a modified version of FamiTracker for importing NSF files into FamiTracker. To use the importer, open the program, go to the file menu and choose "Import NSF...", select an NSF file, then choose a track and a play time. The importer will attempt to generate a FamiTracker document from that NSF track. The speed/tempo settings will be at the fastest possible to allow the highest resolution of data to be captured. Editing is disabled deliberately to prevent anyone from using this modified version of FamiTracker for any purpose other than NSF import. The importer works by playing back the NSF internally, and reading the emulated hardware s once per frame to generate FamiTracker data. It uses modified versions of two other open source projects: Famitracker 0.3.7 by jsr http://famitracker.shoodot.net/s.php NotSo Fatso v0.851 by Disch http://slickproductions.org/notsofatso.php This project inherits the GNU Public License Version 2 from the open source projects FamiTracker and NotSo Fatso it includes. Edits to the original source of these projects are marked with an EDIT comment. Only the core files of NotSo Fatso are included. NotSo Fatso and the importer source code are located in Source\NSF_Import. The provided source zip is an overlay onto the FamiTracker 0.3.6 source (available at the above link). Simply unzip it on top. The importer has a diagnostic option to export a debug_sound.wav file. This is the sound output from NotSo Fatso, not necessary for the FamiTracker import, but it is useful when comparing NotSo Fatso's behaviour to what you are getting in the import. If you received this without source code, search the FamiTracker forums, but if you can't find it there, Brad Smith at:
[email protected] ============================================================================ Known limitations: 2A03/MMC5/VRC6 Harware length counters are not ed by FamiTracker, and are essentially rounded down to the nearest frame by the import process. For the shortest settings the sound may turn on and off faster than a single frame and be missed entirely. This problem is sometimes seen in hi-hat sounds on the noise channel, or blips in the triangle channel. Hardware volume slides are not ed by FamiTracker, and are approximated once per frame. For the fastest setting this gives a small loss of smoothness; for other settings the difference is negligible.
DPCM Changes to loop or length after the sample's initial trigger are not ed by FamiTracker, and will just continue to play with the initial setting. Sample offsets are partially ed. If a sample is played with a low (or no) offset first, and then a higher offset later, the higher offset will be picked up and the sample will be reused. If the higher offset is played first, there will be redundant copies of that sample. (The importer only does one , so it will not go back to replace earlier offset samples.) This feature seems more or less particular to FamiTracker NSFs; I have not yet found an example in an original NSF ROM. Raw PCM playback is not ed, though direct $4011 volume writes are (Zxx). If used, it may show up as a series of random looking Zxx commands. FDS The sound of FDS modulation tables in FamiTracker may sound very different than in other emulators. This is not a bug in the NSF importer, but the resulting import may not sound like you expect in FamiTracker. (You can export back to NSF to that it is getting the correct values.) VRC6 FamiTracker s only 5 bits of sawtooth volume control (0-F in volume channel, plus an additional bit as V00 or V01). The lowest bit is simply discarded. VRC7 Pitch and patch changes mid-note are accomplished by abusing 3FF to avoid retriggering the tone. This seems to work okay. ============================================================================ Versions: v0.5 - 11/21/2011 - Fixed inaccurate starting pitches for hardware slide. v0.4 - 11/21/2011 - Fixed intermittent winodws diait problem. (Caused hang on some systems.) v0.3 - 11/20/2011 - Updated to FamiTracker 0.3.7. - Hardware pitch sweep for 2A03 square channels (Hxy, Ixy). - FDS modulation table and parameter (Hxx, Ixx, Jxx). - DPCM now uses new note release feature instead of halt, eliminates pop to 0. - VRC6 s full volume setting range (Vxx). v0.2 - 7/15/2011 - Pattern length and starting row options. - Namespaced the importer and NotSo Fatso code for better separation. - DPCM samples now have a filename, prevents crashing. - Limited for DPCM offset (Yxx).
-
DMC volume write (Zxx). DMC halt . MMC5 duty corrected (Vxx). VRC7 for frequencies outside FamiTracker's gamut. VRC7 for sustain/note release (===). Prevent crash on too many frames.
v0.1 - 7/08/2011 - First release. - for all current FamiTracker expansions (2A03/FDS/MMC5/VRC6/VRC7). - No for high frequency FDS modulation tables. ============================================================================ If you have questions, e-mail Brad Smith at:
[email protected]