view changes.txt @ 9:477c36226481 tip

added old scripts for historical interest.
author Robert McIntyre <rlm@mit.edu>
date Fri, 21 Oct 2011 07:46:18 -0700
parents e38dacceb958
children
line wrap: on
line source
1 snes_spc Change Log
2 -------------------
4 snes_spc 0.9.0
5 --------------
6 - Improved documentation
8 - SPC: Added spc_skip() function for quickly seeking in an SPC music
9 file. Runs 3-4x faster than normal playback using the fast DSP (or about
10 43-60X real-time on my 400 MHz Mac).
12 - SPC: Added spc_set_tempo() to change tempo of SPC music playback.
14 - SPC: Sample generation is now corrected to generate exactly one pair
15 of samples every 32 clocks without exception. Before it could generate a
16 few samples more or less depending on how far ahead or behind DSP was at
17 the moment.
19 - SPC: Changed spc_reset() and spc_soft_reset() to also reset output
20 buffer (see spc.h).
22 - SPC: Fixed minor timer counting bug.
24 - SPC: Stack pointer wrap-around is now emulated (and without any
25 noticeable performance hit).
27 - SPC: Runs about 5% faster due to various optimizations.
29 - SPC: Found way to make fast DSP register accesses cycle-accurate in
30 most cases, without reducing performance. Allows fast DSP to pass most
31 of my validation tests.
33 - DSP: Added surround disable support to fast DSP again.
35 - DSP: Improved voice un-muting to take effect immediately on fast DSP.
37 - DSP: Noise shift register now starts at 0x4000 instead of 0x4001 as it
38 incorrectly did before.
40 - Converted library to C++ code internally. A C interface is still
41 included in spc.h and dsp.h. Note that these are different than the
42 previous interface, so your code will require minor changes:
44 Old SPC code New SPC code
45 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
46 #include "spc/spc.h" #include "snes_spc/spc.h"
48 snes_spc_t* spc; SNES_SPC* spc;
49 spc = malloc( sizeof (snes_spc_t) ); spc = spc_new();
50 spc_init( spc );
52 spc_end_frame( time ); spc_end_frame( spc, time );
53 /* etc. */
55 /* done using SPC */ spc_delete( spc );
58 Old DSP code New DSP code
59 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
60 #include "spc/spc_dsp.h" #include "snes_spc/dsp.h"
62 spc_dsp_init( ram ); SPC_DSP* dsp;
63 dsp = spc_dsp_new();
64 spc_dsp_init( dsp, ram );
66 spc_dsp_run( count ); spc_dsp_run( dsp, count );
67 /* etc. */
69 /* done using DSP */ spc_dsp_delete( dsp );
72 snes_spc 0.8.0
73 --------------
74 - Added several demos
76 - Added high-pass/low-pass filter to better match SNES sound
78 - Added save state functionality for SPC and accurate DSP (but not fast
79 DSP)
81 - Added emulation of reset switch on NES (soft reset)
83 - Made source more compatible with pre-C99 compilers by eliminating
84 mid-block declarations
86 - SPC: Many S-SMP accuracy improvements, mostly in memory access times
88 - SPC: S-SMP speed improvements
90 - SPC: Added SPC load/save functions and KON checking to help trim
91 silence from beginning
93 - SPC: Changed spc_init() to have you allocate most of the memory used
94 by the library so you have more control over it
96 - DSP: New highly accurate DSP and faster version derived from same code
98 - DSP: Changed prefix from dsp_ to spc_dsp_. Your DSP code will require
99 changes.
101 - DSP: Removed surround disable and gain. Gain can now be done with the
102 dsp_filter module, and surround disable will probably only be
103 implemented in the fast DSP at some point.
105 - DSP: Changed interface to work in clocks rather than samples,
106 necessary for the new accurate DSP. Sample output is now done with
107 separate functions. Your DSP code will require changes.