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.
|