annotate Plugins/Input/console/gme_notes.txt @ 493:c04dff121e1d trunk

[svn] hostile merge, phase 2: reimport based on new plugin code
author nenolod
date Tue, 24 Jan 2006 20:19:01 -0800
parents 7c5e886205ef
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
491
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
1 Game_Music_Emu 0.3.0 Notes
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
2 --------------------------
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
3 Author : Shay Green <hotpop.com@blargg>
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
4 Website: http://www.slack.net/~ant/
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
5 Forum : http://groups.google.com/group/blargg-sound-libs
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
6
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
7
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
8 Overview
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
9 --------
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
10 This library is composed of several independent game music emulators
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
11 derived from the common Music_Emu interface. Each emulator can load a
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
12 game music file and play from any track. To play a game music file, do
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
13 the following:
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
14
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
15 - Determine file's type
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
16 - Create appropriate emulator
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
17 - Set sample rate
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
18 - Load file into emulator
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
19 - Start desired track
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
20 - When samples are needed, call play()
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
21 - When done, delete emulator
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
22
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
23 See Music_Emu.h for reference.
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
24
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
25
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
26 Information Fields
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
27 ------------------
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
28 Game music files include text fields with information about the game and
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
29 track. These are stored in the file's header or in an embedded block.
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
30 Text fields in most game music formats do *not* have a nul terminator if
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
31 the string completely fills the field. The simplest way to handle this
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
32 is to copy the string out and manually add a nul terminator at the end.
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
33
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
34 This library is currently focused only on actual emulation, so it
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
35 doesn't provide a common interface to the different schemes each game
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
36 music file format uses. Refer to the file's official specification for
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
37 further information.
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
38
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
39
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
40 Modular Construction
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
41 --------------------
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
42 The library is made of many fairly independent modules. If you're using
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
43 only one music file emulator, you can eliminate many of the library
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
44 sources from your program. Refer to the files list in readme.txt to get
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
45 a general idea of what can be removed. Post to the forum if you'd like
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
46 me to put together a smaller version for a particular use, as this only
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
47 takes me a few minutes to do.
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
48
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
49 If you want to use one of the individual sound chip emulators in your
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
50 console emulator, first check the libraries page on my website since I
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
51 have released several of them as standalone libraries with included
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
52 documentation and examples on their use.
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
53
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
54 The "classic" sound chips use my Blip_Buffer library, which greatly
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
55 simplifies their implementation and efficiently handles band-limited
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
56 synthesis. It is also available as a standalone library with
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
57 documentation and many examples.
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
58
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
59
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
60 Sound Parameters
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
61 ----------------
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
62 All emulators support adjustable output sampling rate, set with
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
63 Music_Emu::set_sample_rate(). A rate of 44100 should work well on most
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
64 systems. Since band-limited synthesis is used, a sampling rate above
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
65 48000 Hz is not necessary.
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
66
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
67 Some emulators support adjustable treble and bass frequency equalization
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
68 (NSF, GBS, VGM) using Music_Emu::set_equalizer(). Parameters are
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
69 specified using Music_Emu::equalizer_t eq = { treble_dB, bass_freq }.
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
70 Treble_dB sets the treble level (in dB), where 0.0 dB gives normal
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
71 treble; -200.0 dB is quite muffled, and 5.0 dB emphasizes treble for an
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
72 extra crisp sound. Bass_freq sets the frequency where bass response
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
73 starts to diminish; 15 Hz is normal, 0 Hz gives maximum bass, and 15000
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
74 Hz removes all bass. For example, the following makes the sound
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
75 extra-crisp but lacking bass:
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
76
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
77 Music_Emu::equalizer_t eq = { 5.0, 1000 };
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
78 music_emu->set_equalizer( eq );
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
79
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
80 Each emulator's equalization defaults to a profile that approximates its
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
81 particular console's sound quality; this default can be determined by
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
82 calling Music_Emu::equalizer() just after creating the emulator. Some
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
83 emulators include other profiles for different versions of the system.
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
84 The Music_Emu::tv_eq profile gives sound as if coming from a TV speaker.
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
85 For example, to use Famicom sound equalization with the NSF emulator, do
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
86 the following:
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
87
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
88 nsf_emu->set_equalizer( Nsf_Emu::famicom_eq );
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
89
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
90
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
91 VGM/GYM YM2413 & YM2612 FM Sound
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
92 --------------------------------
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
93 The library plays Sega Genesis/Mega Drive music using a YM2612 FM sound
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
94 chip emulator based on Gens. Because this has some inaccuracies, other
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
95 YM2612 emulators can be used in its place by reimplementing the
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
96 interface in YM2612_Emu.h. Available on my website is a modified version
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
97 of MAME's YM2612 emulator, which sounds better in some ways and whose
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
98 author is still making improvements.
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
99
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
100 VGM music files using the YM2413 FM sound chip are also supported, but a
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
101 YM2413 emulator isn't included. Similar to above, I have put one of the
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
102 available YM2413 emulators on my website that can be used directly.
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
103
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
104
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
105 Misc
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
106 ----
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
107 Some emulators have constructor parameters which can be specified when
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
108 creating the object. For example, this creates a Vgm_Emu with
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
109 oversampling off and a tempo of 83%:
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
110
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
111 Vgm_Emu* emu = new Vgm_Emu( false, 0.83 );
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
112
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
113 For a full example of using Game_Music_Emu see the source code for Game
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
114 Music Box, a full-featured game music player for Mac OS:
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
115
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
116 http://www.slack.net/~ant/game-music-box/dev.html
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
117
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
118
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
119 Thanks
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
120 ------
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
121 Big thanks to Chris Moeller (kode54) for help with library testing and
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
122 feedback, for maintaining the Foobar2000 plugin foo_gep based on it, and
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
123 for original work on openspc++ that was used when developing Spc_Emu.
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
124 Brad Martin's excellent OpenSPC SNES DSP emulator worked well from the
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
125 start. Also thanks to Richard Bannister, Mahendra Tallur, Shazz, and the
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
126 Audacious team for testing and using the library in their game music
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
127 players.
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
128
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
129
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
130 Solving Problems
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
131 ----------------
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
132 If you're having problems, try the following:
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
133
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
134 - Enable debugging support in your environment. This enables assertions
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
135 and other run-time checks.
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
136
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
137 - Turn the compiler's optimizer is off. Sometimes an optimizer generates
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
138 bad code.
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
139
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
140 - If multiple threads are being used, ensure that only one at a time is
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
141 accessing a given set of objects from the library. This library is not
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
142 in general thread-safe, though independent objects can be used in
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
143 separate threads.
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
144
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
145 - If all else fails, see if the demos work.
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
146
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
147
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
148 Error handling
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
149 --------------
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
150 Functions which can fail have a return type of blargg_err_t, which is a
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
151 pointer to an error string (const char*). If the function is successful
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
152 it returns blargg_success (NULL), otherwise it returns a pointer to an
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
153 error string. Errors which the caller can easily detect are only checked
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
154 with debug assertions; blargg_err_t returns values are only used for
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
155 genuine run-time errors that can't be easily predicted in advance (out
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
156 of memory, I/O errors, incompatible file data).
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
157
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
158 To allow compatibility with older C++ compilers, no exceptions are
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
159 thrown by any of the modules and code is generally exception-safe. Any
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
160 exceptions thrown by the standard library or caller-supplied functions
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
161 are allowed to propagate normally.
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
162
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
163
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
164 Configuration
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
165 -------------
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
166 The header "blargg_common.h" is used to establish a common environment,
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
167 and is #included at the beginning of all library headers and sources. It
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
168 attempts to automatically determine the features of the environment, but
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
169 might need help. Refer to "blargg_common.h" for descriptions of
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
170 features.
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
171
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
172 If defined HAVE_CONFIG_H in the compiler command-line, the user-provided
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
173 "config.h" is included at the beginning of each library header file,
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
174 allowing configuration options for the library to be set. I have
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
175 attempted to design the library so that configuration can be done
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
176 *without* modifying any of the library sources and header files. This
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
177 makes it easy to upgrade to a new version without losing any
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
178 customizations to its configuration.
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
179
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
180 Post to the forum if you have problems or suggestions.
7c5e886205ef [svn] New code drop from blargg. Needs some work.
chainsaw
parents:
diff changeset
181