diff changes.txt @ 0:e38dacceb958

initial import
author Robert McIntyre <rlm@mit.edu>
date Fri, 21 Oct 2011 05:53:11 -0700
parents
children
line wrap: on
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/changes.txt	Fri Oct 21 05:53:11 2011 -0700
     1.3 @@ -0,0 +1,107 @@
     1.4 +snes_spc Change Log
     1.5 +-------------------
     1.6 +
     1.7 +snes_spc 0.9.0
     1.8 +--------------
     1.9 +- Improved documentation
    1.10 +
    1.11 +- SPC: Added spc_skip() function for quickly seeking in an SPC music
    1.12 +file. Runs 3-4x faster than normal playback using the fast DSP (or about
    1.13 +43-60X real-time on my 400 MHz Mac).
    1.14 +
    1.15 +- SPC: Added spc_set_tempo() to change tempo of SPC music playback.
    1.16 +
    1.17 +- SPC: Sample generation is now corrected to generate exactly one pair
    1.18 +of samples every 32 clocks without exception. Before it could generate a
    1.19 +few samples more or less depending on how far ahead or behind DSP was at
    1.20 +the moment.
    1.21 +
    1.22 +- SPC: Changed spc_reset() and spc_soft_reset() to also reset output
    1.23 +buffer (see spc.h).
    1.24 +
    1.25 +- SPC: Fixed minor timer counting bug.
    1.26 +
    1.27 +- SPC: Stack pointer wrap-around is now emulated (and without any
    1.28 +noticeable performance hit).
    1.29 +
    1.30 +- SPC: Runs about 5% faster due to various optimizations.
    1.31 +
    1.32 +- SPC: Found way to make fast DSP register accesses cycle-accurate in
    1.33 +most cases, without reducing performance. Allows fast DSP to pass most
    1.34 +of my validation tests.
    1.35 +
    1.36 +- DSP: Added surround disable support to fast DSP again.
    1.37 +
    1.38 +- DSP: Improved voice un-muting to take effect immediately on fast DSP.
    1.39 +
    1.40 +- DSP: Noise shift register now starts at 0x4000 instead of 0x4001 as it
    1.41 +incorrectly did before.
    1.42 +
    1.43 +- Converted library to C++ code internally. A C interface is still
    1.44 +included in spc.h and dsp.h. Note that these are different than the
    1.45 +previous interface, so your code will require minor changes:
    1.46 +
    1.47 +	Old SPC code                            New SPC code
    1.48 +	- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    1.49 +	#include "spc/spc.h"                    #include "snes_spc/spc.h"
    1.50 +
    1.51 +	snes_spc_t* spc;                        SNES_SPC* spc;
    1.52 +	spc = malloc( sizeof (snes_spc_t) );    spc = spc_new();
    1.53 +	spc_init( spc );
    1.54 +	
    1.55 +	spc_end_frame( time );                  spc_end_frame( spc, time );
    1.56 +	/* etc. */
    1.57 +	
    1.58 +	/* done using SPC */                    spc_delete( spc );
    1.59 +	
    1.60 +	
    1.61 +	Old DSP code                            New DSP code
    1.62 +	- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    1.63 +	#include "spc/spc_dsp.h"                #include "snes_spc/dsp.h"
    1.64 +	
    1.65 +	spc_dsp_init( ram );                    SPC_DSP* dsp;
    1.66 +											dsp = spc_dsp_new();
    1.67 +											spc_dsp_init( dsp, ram );
    1.68 +	
    1.69 +	spc_dsp_run( count );                   spc_dsp_run( dsp, count );
    1.70 +	/* etc. */
    1.71 +	
    1.72 +	/* done using DSP */                    spc_dsp_delete( dsp );
    1.73 +	
    1.74 +
    1.75 +snes_spc 0.8.0
    1.76 +--------------
    1.77 +- Added several demos
    1.78 +
    1.79 +- Added high-pass/low-pass filter to better match SNES sound
    1.80 +
    1.81 +- Added save state functionality for SPC and accurate DSP (but not fast
    1.82 +DSP)
    1.83 +
    1.84 +- Added emulation of reset switch on NES (soft reset)
    1.85 +
    1.86 +- Made source more compatible with pre-C99 compilers by eliminating
    1.87 +mid-block declarations
    1.88 +
    1.89 +- SPC: Many S-SMP accuracy improvements, mostly in memory access times
    1.90 +
    1.91 +- SPC: S-SMP speed improvements
    1.92 +
    1.93 +- SPC: Added SPC load/save functions and KON checking to help trim
    1.94 +silence from beginning
    1.95 +
    1.96 +- SPC: Changed spc_init() to have you allocate most of the memory used
    1.97 +by the library so you have more control over it
    1.98 +
    1.99 +- DSP: New highly accurate DSP and faster version derived from same code
   1.100 +
   1.101 +- DSP: Changed prefix from dsp_ to spc_dsp_. Your DSP code will require
   1.102 +changes.
   1.103 +
   1.104 +- DSP: Removed surround disable and gain. Gain can now be done with the
   1.105 +dsp_filter module, and surround disable will probably only be
   1.106 +implemented in the fast DSP at some point.
   1.107 +
   1.108 +- DSP: Changed interface to work in clocks rather than samples,
   1.109 +necessary for the new accurate DSP. Sample output is now done with
   1.110 +separate functions. Your DSP code will require changes.