rlm@0
|
1 snes_spc 0.9.0: SNES SPC-700 APU Emulator
|
rlm@0
|
2 -----------------------------------------
|
rlm@0
|
3 This library includes a full SPC emulator and an S-DSP emulator that can
|
rlm@0
|
4 be used on its own. Two S-DSP emulators are available: a highly accurate
|
rlm@0
|
5 one for use in a SNES emulator, and a 3x faster one for use in an SPC
|
rlm@0
|
6 music player or a resource-limited SNES emulator.
|
rlm@0
|
7
|
rlm@0
|
8 * Can be used from C and C++ code
|
rlm@0
|
9 * Full SPC-700 APU emulator with cycle accuracy in most cases
|
rlm@0
|
10 * Loads, plays, and saves SPC music files
|
rlm@0
|
11 * Can save and load exact full emulator state
|
rlm@0
|
12 * DSP voice muting, surround sound disable, and song tempo adjustment
|
rlm@0
|
13 * Uses 7% CPU average on 400 MHz Mac to play an SPC using fast DSP
|
rlm@0
|
14
|
rlm@0
|
15 The accurate DSP emulator is based on past research by others and
|
rlm@0
|
16 hundreds of hours of recent research by me. It passes over a hundred
|
rlm@0
|
17 strenuous timing and behavior validation tests that were also run on the
|
rlm@0
|
18 SNES. As far as I know, it's the first DSP emulator with cycle accuracy,
|
rlm@0
|
19 properly emulating every DSP register and memory access at the exact SPC
|
rlm@0
|
20 cycle it occurs at, whereas previous DSP emulators emulated these only
|
rlm@0
|
21 to the nearest sample (which occurs every 32 clocks).
|
rlm@0
|
22
|
rlm@0
|
23 Author : Shay Green <gblargg@gmail.com>
|
rlm@0
|
24 Website: http://www.slack.net/~ant/
|
rlm@0
|
25 Forum : http://groups.google.com/group/blargg-sound-libs
|
rlm@0
|
26 License: GNU Lesser General Public License (LGPL)
|
rlm@0
|
27
|
rlm@0
|
28
|
rlm@0
|
29 Getting Started
|
rlm@0
|
30 ---------------
|
rlm@0
|
31 Build a program consisting of demo/play_spc.c, demo/demo_util.c,
|
rlm@0
|
32 demo/wave_writer.c, and all source files in snes_spc/. Put an SPC music
|
rlm@0
|
33 file in the same directory and name it "test.spc". Running the program
|
rlm@0
|
34 should generate the recording "out.wav".
|
rlm@0
|
35
|
rlm@0
|
36 Read snes_spc.txt for more information. Post to the discussion forum for
|
rlm@0
|
37 assistance.
|
rlm@0
|
38
|
rlm@0
|
39
|
rlm@0
|
40 Files
|
rlm@0
|
41 -----
|
rlm@0
|
42 snes_spc.txt Documentation
|
rlm@0
|
43 changes.txt Change log
|
rlm@0
|
44 license.txt GNU LGPL license
|
rlm@0
|
45
|
rlm@0
|
46 demo/
|
rlm@0
|
47 play_spc.c Records SPC file to wave sound file
|
rlm@0
|
48 benchmark.c Finds how fast emulator runs on your computer
|
rlm@0
|
49 trim_spc.c Trims silence off beginning of an SPC file
|
rlm@0
|
50 save_state.c Saves/loads exact emulator state to/from file
|
rlm@0
|
51 comm.c Communicates with SPC how SNES would
|
rlm@0
|
52 demo_util.h General utility functions used by demos
|
rlm@0
|
53 demo_util.c
|
rlm@0
|
54 wave_writer.h WAVE sound file writer used for demo output
|
rlm@0
|
55 wave_writer.c
|
rlm@0
|
56
|
rlm@0
|
57 fast_dsp/ Optional standalone fast DSP emulator
|
rlm@0
|
58 SPC_DSP.h To use with full SPC emulator, move into
|
rlm@0
|
59 SPC_DSP.cpp snes_spc/ and replace original files
|
rlm@0
|
60
|
rlm@0
|
61 snes_spc/ Library sources
|
rlm@0
|
62 blargg_config.h Configuration (modify as necessary)
|
rlm@0
|
63
|
rlm@0
|
64 spc.h C interface to SPC emulator and sound filter
|
rlm@0
|
65 spc.cpp
|
rlm@0
|
66
|
rlm@0
|
67 SPC_Filter.h Optional filter to make sound more authentic
|
rlm@0
|
68 SPC_Filter.cpp
|
rlm@0
|
69
|
rlm@0
|
70 SNES_SPC.h Full SPC emulator
|
rlm@0
|
71 SNES_SPC.cpp
|
rlm@0
|
72 SNES_SPC_misc.cpp
|
rlm@0
|
73 SNES_SPC_state.cpp
|
rlm@0
|
74 SPC_CPU.h
|
rlm@0
|
75
|
rlm@0
|
76 dsp.h C interface to DSP emulator
|
rlm@0
|
77 dsp.cpp
|
rlm@0
|
78
|
rlm@0
|
79 SPC_DSP.h Standalone accurate DSP emulator
|
rlm@0
|
80 SPC_DSP.cpp
|
rlm@0
|
81 blargg_common.h
|
rlm@0
|
82 blargg_endian.h
|
rlm@0
|
83 blargg_source.h
|
rlm@0
|
84
|
rlm@0
|
85 --
|
rlm@0
|
86 Shay Green <gblargg@gmail.com>
|