SNESAmp v1.0 - SNES sound module emulator plug-in for Winamp

SNESAmp was created as the testing grounds for a 32-bit SPC700 emulation core.
Features, like the ID666 editor, were added because I wanted something better
than was currently available.  It is not meant to replace SPC Tool or other
players out there.  If anything, the release SNESAmp should encourage other
programmers to produce something of a higher caliber.

This is the final build of SNESAmp.  No more changes will be made.  No more
features will be added.  There will be no more releases.  You can all go home
now.  The show is over.


1. Features

   32-bit assembly core optimized for speed
   Position seeking at a tolerable rate
   ID666 tag editor
   Fully configurable


2. Usage

2.1 Configuration

   Mixer Settings:

   Rate -

      The rate to mix samples at. (Windows standard values)

   Interpolation -

      The method of interpolation to use on samples before mixing.
      (see Audio Interpolation on my site in the Programming\Information area
      for information on the different methods)

   Sample size & Channels -

      If you don't know, you have no business using my program.

   Use old school BRE -

      This enables the traditional BRE (bit-rate expansion) method used by
      other emulators.  Use this in rare instances where the tweaked routine
      corrupts instruments.


   Time Options:

   Default song length -

      When an .SPC is missing the song/fade length in the ID666 tag, these
      values will be used instead of playing the song forever.

   Trailing silence -

      After a song is through playing (according to the song/fade length), the
      emulator will play silence for the given number of seconds.  Adds a bit
      of a pause before playing the next song.

   Disable playing time -

      Ignores the timer in the ID666 tag, and plays the song endlessly.
      Seeking is disabled in this mode.


   Pre-Amplification Level:

   Slider bar -

      Sets the pre-amplification level of the mixer.  Turn this value up if
      songs are too quiet.  Turn it down if clipping occurs.  The default
      value of 25 is good for most .SPC's.

   Display control win -

      A control dialog will appear during playback to let you adjust the
      pre-amp level, mute channels, and send data to the SPC700.


   Title formatting:

      The text entered here lets you customize how the song title/info will
      appear in the playlist window.  If no information is available (i.e. a
      blank ID666 tag) the file name will be used for the title.


2.2 ID666 Tag Editor

   Fields:
   
   Song -

      Name of the song.

   Game -
	
      Name of the game/ROM the .SPC was dumped from.

   Artist -
	
      Name of the person(s) that wrote the song, not the lamer who dumped it.

   Dumper -
	
      Name (or alias, if you're l337) of the person who dumped the song

   on -
	
      Date the song was dumped, not written.  (The date the song was written
      should go with the author's name or in the comments.)

      When saving in binary format, the date must be in the format dd.mm.yyyy
      or mm/dd/yyyy in order to be saved correctly.

   with -
	
      Program used to dump the song.

   Comments -
	
      Anything you feel the world should not go without.

   Length -
	
      The length of time to play the song before fading out.  Given in minutes
      and seconds.

   Fade -
	
      The length of time to fade out.  Given in seconds with three decimal
      places.

   Use binary format -

      Check this to save the tag using binary numbers instead of strings.
      (for compatibility with SPCPlay/SPCAmp)


   Buttons:

   Time -

      Clicking on this button loads the length fields with the current time
      elapsed for the song playing.  Clicking on it a second time loads the
      fade field with the amount of time that's passed since you loaded the
      length fields.

   Copy -

      Copies the current tag into memory.  (Song length isn't copied)

   Paste -

      Pastes the current tag in memory.  Use this when you're creating
      soundtracks so you don't have to type the same information over and
      over again.
		
   Clear -

      Clears the tag, and resets the time to 0 (no time)


2.3 Control Dialog

   By default, a window will appear to let you adjust certain aspects of the
   emulator.

   Eight check boxes -
	
      Each one corresponds to a channel in the DSP.  Checking a box mutes that
      channel.

   Slider bar -

      Controls the level of pre-amplification.  This value is same as the Amp
      value in SPC Tool.

   Four text boxes -

      The SPC700's in-ports from the 65c816 side.  If you don't know what
      these are, don't change them.  Data is sent when a valid, double-digit,
      hex number is changed.


3. History

   1.0  15.4.00 Final Release
        + Configuration changes are applied to the next song
          (No need to restart Winamp)
        + Changes to the time in the ID666 tag have an immediate effect
        + Command sub-window can be disabled
        + Made some minor optimizations
        - No more slow songs, delays, or stalling
        - EnvX register is updated correctly (Der Langrisser works)
        - Sample blocks with a range greater than 16-bits aren't silenced
          (BRE is still incorrect)
        - Channels with a pitch of 0 can't be keyed on

   0.91 1.4.00 Bugfix
        - Configuration gets saved
        - Fixed the 16-bit memory checking routine, again (Vortex works)
        - Coded a workaround for SD3 .SPC's that were playing too slow

   0.9  25.03.00 Initial test release

	Thanks to Datschge and Cait Sith 2 for their insight and help finding bugs


4. Source Code

   The Visual C portion of SNESAmp is avaliable on my web site.  The assembler
   source will be distributed with Snes9x, if all goes as planned.

   Mail - antires@aol.com
   Web  - http://members.aol.com/_ht_a/antires/index2.html

Copyright (C)2000 Alpha-II Productions