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