1. Purpose 2. SND file format 3. Examples 4. Development status |
5. Copying 6. Requirements 7. See also 8. Downloading |
SND version 3 file format: Position Length Description 0 4 Signature: "SND",26 4 1 Version of file format. We use 3. 5 1 Channelcount. For NES, 5. 6 1 Rate (unsigned integer) How many rows does it play in a second? General values are 50 and 60. 7 9 Unused, set to zero 0x10 n Events, see below Event format: Data Bytes Description 0xFF 1 Next row (submit this row) 0xFD x 2 Submit this row x times 0xFE c t 3 Set channel c (zero based) type: type 1: square type 2: noise type 3: triangle type 4: dpcm 0xFB n sl sh 2+s Redefine PCM sample number n (1-based) Size = sh:sl PCM data follows (bytes 0x60..0x9F) 0xdv c wl wh 4 Alter square wave on channel c: Set duty = d (2,4,8,12) Volume = v (0..15) Wavelen = wh:wl (0..0x7FF) c wl wh v 4 Alter channel c For triangle and noise: Wavelen = wh:wl (0..0x7FF) Volume = v (0..15) For dpcm: Sample number = v (set to 0 to stop sample) Wavelen = wh:wl (0..0x7FF) SNDv3 files are generated by nezplay (produced by a patch to nezamp) from NSF and GBS files. SNDv2 format was proposed to Martin Korth (no$gmb author) for Game Boy music logging, but never applied. SNDv1 files were generated by older versions of iNES from NES gaming sessions. Note that SNDv3 files use wavelengths whereas SNDv2 and SNDv1 files use frequencies. Therefore this format isn't backwards compatible.The program converts the SND to MidiS3M with Adlib instruments.
* No warranty. You are free to modify this source and to
* distribute the modified sources, as long as you keep the
* existing copyright messages intact and as long as you
* remember to add your own copyright markings.
* You are not allowed to distribute the program or modified versions
* of the program without including the source code (or a reference to
* the publicly available source) and this notice with it.
Generated from
progdesc.php (last updated: Thu, 14 Oct 2004 04:32:23 +0300)
with docmaker.php (last updated: Sun, 12 Jun 2005 06:08:02 +0300)
at Tue, 06 Dec 2005 00:56:44 +0200