diff options
Diffstat (limited to 'engines/sci/sfx')
-rw-r--r-- | engines/sci/sfx/doc/README | 7 | ||||
-rw-r--r-- | engines/sci/sfx/doc/patch001.txt | 118 | ||||
-rw-r--r-- | engines/sci/sfx/doc/sound01.txt | 213 | ||||
-rw-r--r-- | engines/sci/sfx/lists/GM.txt | 177 | ||||
-rw-r--r-- | engines/sci/sfx/lists/gm_patches.cpp | 200 | ||||
-rw-r--r-- | engines/sci/sfx/lists/mt32_timbres.cpp | 183 | ||||
-rw-r--r-- | engines/sci/sfx/tests/stubs.c | 9 | ||||
-rw-r--r-- | engines/sci/sfx/tests/tests.cpp | 162 | ||||
-rw-r--r-- | engines/sci/sfx/tests/tests.vcproj | 158 |
9 files changed, 0 insertions, 1227 deletions
diff --git a/engines/sci/sfx/doc/README b/engines/sci/sfx/doc/README deleted file mode 100644 index 502ad7d619..0000000000 --- a/engines/sci/sfx/doc/README +++ /dev/null @@ -1,7 +0,0 @@ -The files in this direcory are a bit outdated. There are some small non -critical errors in "patch.001", they are obvious if you bother to read -the source (which is correct). "sound01.txt" is just meant to give you a -basic understanding of the structures invovled in -SCI01/SCI1/SCI1.1/SCI32 sound resources. - -Ravi has made some really good documentation for SCI0. diff --git a/engines/sci/sfx/doc/patch001.txt b/engines/sci/sfx/doc/patch001.txt deleted file mode 100644 index 0037eea9b4..0000000000 --- a/engines/sci/sfx/doc/patch001.txt +++ /dev/null @@ -1,118 +0,0 @@ -SCI patch.001 Resource Format Revision 0.1 -Rickard Lind 1999-12-16 - -The patch.001 file for Roland MT-32, MT-100, LAPC-1, CM-32L and CM-64. - -This specification will sometimes look very incomprehensible without some -knowledge concerning the MT-32 MIDI implementation. -Have a look at http://members.xoom.com/_XMCM/TomLewandowski/docs.html - - -1. The header (494 bytes) which is always present. - -Offset Size Type Description ----------------------------------------------------------------------------- - 0x000 2 89 00 First Two Bytes - 0x002 20 ASCII String for MT-32 Display ("*It's Only A Model* ") - 0x016 20 ASCII String for MT-32 Display (" CAMELOT, CAMELOT! ") - 0x02a 20 ASCII String for MT-32 Display ("Ham & Jam & SpamAlot") - 0x03e 2 word MT-32 Master Volume - 0x040 1 Index in Predefined reverb settings at 0x04c (0-10) - 0x041 11 MT-32 SysEx block setting reverb - (last 3 bytes are dummies) - 0x04c 3 Predefined reverb setting #1 (Mode, Time, Level) - : : : - 0x06a 3 Predefined reverb setting #11 - 0x06d 8 MT-32 Patch Memory #1 (see Patch Memory description below) - : : : - 0x1e5 8 MT-32 Patch Memory #48 - 0x1ed 1 n = Number of Timbre Memory (0-64 userdefined instruments) ----------------------------------------------------------------------------- - - - Patch Memory description - - Offset Description - -------------------------------------------------------------------- - 0x00 Timbre Group (0 = Bank A, 1 = Bank B, 2 = Memory, 3 = Rythm) - 0x01 Timbre Number (0 - 63) - 0x02 Key Shift (0-48) [-24 - +24] - 0x03 Fine Tune (0-100) [-50 - +50] - 0x04 Bender Range (0-24) - 0x05 Assign Mode (0 = Poly 1, 1 = Poly 2, 2 = Poly 3, 3 = Poly 4) - 0x06 Reverb Switch (0 = OFF, 1 = ON) - 0x07 Dummy - -------------------------------------------------------------------- - - Mapping MT-32 to GM instruments is done with Timbre Group and - Timbre Number. - - Instrument 0-63: Bank A, 0-63 - Instrument 64-127: Bank B, 0-63 - - -2. The Timbre Memory block (if n > 0), offset relative to 0x1ee - -Offset Size Type Description ------------------------------------------------------------------------------- - 0x000 246 MT-32 Timbre Memory #1 (see Timbre Memory description below) - : : : - 0x??? 246 MT-32 Timbre Memory #n ------------------------------------------------------------------------------- - - - Timbre Memory description - - Offset Size Description - ----------------------------------------------------------------------- - 0x00 10 Timbre Name (ASCII String) - 0x0a See http://members.xoom.com/_XMCM/TomLewandowski/lapc1.txt - ----------------------------------------------------------------------- - - -3. Second MT-32 Patch Memory Block, offset realtive to 0x1ee + n * 246 - -Offset Size Description ---------------------------------------------------- - 0x000 2 0xab 0xcd (if this this is not present - there is no second block) - 0x002 8 MT-32 Patch Memory #49 - : : : - 0x17a 8 MT-32 Patch Memory #96 ---------------------------------------------------- - - -4. Block for setting up Patch Temporary Area (rythm part) and - System Area - Partial Reserve, offset relative to 0x370 + n * 246 - -Offset Size Description ---------------------------------------------------- - 0x000 2 0xdc 0xba (if this this is not present - this block is non existent) - 0x002 4 Rythm Setup for Key #24 (see below) - : : : - 0x0fe 4 Rythm Setup for Key #87 - 0x102 9 System Area - Partial Reserve ---------------------------------------------------- - - Rythm Setup description - See http://members.xoom.com/_XMCM/TomLewandowski/lapc1.txt - - -TODO: - - * Clearly describe which parts are interesting for a quick and dirty - GeneralMidi/patch.001/FreeSCI implementation - - * Describe how the Sierra MT-32 driver uses patch.001 - - * Make this readable to someone who has not been reading reference - manuals since early childhood - - * SGML - - -Revision history - - Revision 0.1 - 1999-12-16 - - First pre-release of the specification diff --git a/engines/sci/sfx/doc/sound01.txt b/engines/sci/sfx/doc/sound01.txt deleted file mode 100644 index 8aae367da7..0000000000 --- a/engines/sci/sfx/doc/sound01.txt +++ /dev/null @@ -1,213 +0,0 @@ -The SCI01+ sound resource format - -Originally written by Rickard Lind, 2000-01-05 -Extensively rewritten by Lars Skovlund, 2002-10-27 -Again updated by Lars Skovlund, 2005-10-12 - -Used in: -Quest for Glory II: Trial by Fire (QfG2) -Christmas greeting card 1990 (CC1990) - -The magic number (84 00) is left out, offset 0 is directly after these two -bytes. - -If you examine a SCI01 sound resource use "sciunpack --without-header" to -get the pointers within the file correct for your hex viewer. - -DESCRIPTION ------------ - -The SCI01 sound resource consists of a number of track lists and the -tracks themselves. There is one track list for (almost) every piece of -sound hardware supported by the game. Each track either contains track -data for one specific channel or a digital sample. - -SCI1 resources are the same, except that sample chunks are no longer -allowed (since they are now separate resources). - - Optional Priority Header - ------------------------ - - Some SCI1 songs contain an 8-byte header before the track list. At - least on PC platforms, its data is mostly unused. The priority value - is used if the script does not override it. - - offset size description - ------------------------------------------------------- - 0 byte 0xf0 Priority header marker byte - 1 byte Recommended priority for this song - 2 6 bytes Apparently unused - - Track List - ---------- - - The track list tells us which tracks are to be played on particular - hardware platforms. Each entry either terminates the previous list - or contains an entry for the current one. - - List Termination - ---------------- - - offset size description - ----------------------- - 0 byte 0xff - 1 byte Hardware ID of next list, 0xff if none - - List Entry - ---------- - - offset size description - ----------------------- - 0 byte 0 - 1 byte 0 - 2 word Data Chunk pointer - 4 word Data Chunk size - - The very first list in a file looks a little odd, in that it - starts with a single byte which tells us the hardware ID - associated with the first list (0 in all the cases I've seen) - followed by list entries as usual. - - Known Hardware IDs - ------------------ - - Some of these are used by multiple drivers, probably because they - support the same number of polyphonic voices. Note that the - hardware ID does not necessarily tell us whether samples are - supported - thus, the list for Roland MT-32 also contains sample - tracks, because the user may also have a Sound Blaster card - connected. SCI1 most likely has more hardware IDs than these. - - 0x00 - Sound Blaster, Adlib - 0x06 - MT-32 with Sound Blaster (for digital audio) - 0x09 - CMS/Game Blaster - 0x0c - Roland MT-32 - 0x12 - PC Speaker - 0x13 - IBM PS/1, Tandy 3-voice - - Data Chunks - ----------- - - In the sound resources of QfG2 and CC1990 I've seen two types of Data - Chunks, Sample and MIDI channel track. - - - Sample Chunk - ------------ - - offset size description - ----------------------- - 0 byte =0xfe - 1 byte !=0xfe (always 0 in QfG2 and CC1990) - 2 word Sample rate (Hz) - 4 word Sample length - 6 word Sample point 1 (begin?) - 8 word Sample point 2 (end?) - 10 Unsigned 8-bit mono sample data - - - MIDI channel track Chunk - ------------------------ - - This chunk begins with a 2 byte header. The low nibble of the - first byte indicates the channel number. The high nibble controls - certain aspects of (dynamic) track channel/hardware channel mapping. - - The second byte tells us how many notes will be - playing simultaneously in the channel. From the third byte onward - is the MIDI track data which looks just like normal SCI0 MIDI - track data, but all status bytes are targeted at one specific MIDI - channel. - -Example, sound.833 from QfG2 (--without-header) ------------------------------------------------ - -offset data description ------------------------- - 0000 00 Hardware ID for first track list - 0001 00 Track list continuation - 0002 00 Same hardware device - 0003 003F Data Chunk pointer (Little Endian) - 0005 0013 Data Chunk length (LE) - 0007 00 Track list continuation - 0008 00 Same hardware device - 0009 006A Data Chunk pointer (LE) - 000B 0015 Data Chunk length (LE) - 000D FF Next track list - 000E 09 for hardware device 0x09 - 000F 00 Track list continuation - 0010 00 Same hardware device - 0011 003F Data Chunk pointer (LE) - 0013 0013 Data Chunk length (LE) - 0015 00 Track list continuation - 0016 00 Same hardware device - 0017 0052 Data Chunk pointer (LE) - 0019 0018 Data Chunk length (LE) - 001B 00 Track list continuation - 001C 00 Same hardware device - 001D 0094 Data Chunk pointer (LE) - 001F 0012 Data Chunk length (LE) - 0021 FF Next track list - 0022 0C for hardware device 0x0C - 0023 00 Track list continuation - 0024 00 Same hardware device - 0025 003F Data Chunk pointer (LE) - 0027 0013 Data Chunk length (LE) - 0029 00 Track list continuation - 002A 00 Same hardware device - 002B 0052 Data Chunk pointer (LE) - 002D 0018 Data Chunk length (LE) - 002F FF Next track list - 0030 13 for hardware device 0x13 - 0031 00 Track list continuation - 0032 00 Same hardware device - 0033 003F Data Chunk pointer (LE) - 0035 0013 Data Chunk length (LE) - 0037 00 Track list continuation - 0038 00 Same hardware device - 0039 007F Data Chunk pointer (LE) - 003B 0015 Data Chunk length (LE) - - 003D FF FF Sequence Control - End of Sequence Blocks - ------------------------------------------------------------ - 003F 0F MIDI Track channel 15 (control channel) - 0040 01 One note playing on track (probably just to satisfy the - MIDI engine) - 0041 MIDI Track data like SCI0 - 0052 02 MIDI Track channel 2 - 0053 02 Two notes playing on track - 0054 MIDI Track data like SCI0 - 006A 03 MIDI Track channel 3 - 006B 01 One note playing on track - 006C MIDI Track data like SCI0 - 007F 0A MIDI Track channel 10 - 0080 01 One note playing on track - 0081 MIDI Track data like SCI0 - 0094 02 MIDI Track channel 2 - 0095 01 One note playing on track - 0096 MIDI Track data like SCI0 - -Addendum (provided by Lars Skovlund) ------------------------------------- - -First of all, tracks do not loop individually. No loop signals are -reported. - -Absolute cues are generally stored in the signal selector, and -cumulative cues are generally stored in the dataInc selector, with -some interesting twists: - -1. The server's record of the absolute cue value is reset as part of - UPDATE_CUES. -2. When a cumulative cue is reported to the VM object, it will be - placed in _both_ fields. In such a case, a constant of 0x7f will be - added to the _signal_ selector only, to be able to distinguish the - two kinds of cue (this has already been coded). -3. The above only happens if the sound does not use absolute cues - (i.e. if the signal is 0 a priori). Note that, because of 1) - above, this does not cause problems neither with successive - cumulative cues nor with mixed cumulative/absolute cues. -4. A signal of 0xff will stop the sound object playing. This may be - for purely internal purposes. -5. There no longer is a field indicating the amount of increment for - a cue. diff --git a/engines/sci/sfx/lists/GM.txt b/engines/sci/sfx/lists/GM.txt deleted file mode 100644 index eea2510447..0000000000 --- a/engines/sci/sfx/lists/GM.txt +++ /dev/null @@ -1,177 +0,0 @@ -/*000 00*/ "Acoustic Grand Piano", -/*001 01*/ "Bright Acoustic Piano", -/*002 02*/ "Electric Grand Piano", -/*003 03*/ "Honky-tonk Piano", -/*004 04*/ "Electric Piano 1", -/*005 05*/ "Electric Piano 2", -/*006 06*/ "Harpsichord", -/*007 07*/ "Clavinet", -/*008 08*/ "Celesta", -/*009 09*/ "Glockenspiel", -/*010 0A*/ "Music Box", -/*011 0B*/ "Vibraphone", -/*012 0C*/ "Marimba", -/*013 0D*/ "Xylophone", -/*014 0E*/ "Tubular Bells", -/*015 0F*/ "Dulcimer", -/*016 10*/ "Drawbar Organ", -/*017 11*/ "Percussive Organ", -/*018 12*/ "Rock Organ", -/*019 13*/ "Church Organ", -/*020 14*/ "Reed Organ", -/*021 15*/ "Accordion", -/*022 16*/ "Harmonica", -/*023 17*/ "Tango Accordion", -/*024 18*/ "Acoustic Guitar (nylon)", -/*025 19*/ "Acoustic Guitar (steel)", -/*026 1A*/ "Electric Guitar (jazz)", -/*027 1B*/ "Electric Guitar (clean)", -/*028 1C*/ "Electric Guitar (muted)", -/*029 1D*/ "Overdriven Guitar", -/*030 1E*/ "Distortion Guitar", -/*031 1F*/ "Guitar Harmonics", -/*032 20*/ "Acoustic Bass", -/*033 21*/ "Electric Bass (finger)", -/*034 22*/ "Electric Bass (pick)", -/*035 23*/ "Fretless Bass", -/*036 24*/ "Slap Bass 1", -/*037 25*/ "Slap Bass 2", -/*038 26*/ "Synth Bass 1", -/*039 27*/ "Synth Bass 2", -/*040 28*/ "Violin", -/*041 29*/ "Viola", -/*042 2A*/ "Cello", -/*043 2B*/ "Contrabass", -/*044 2C*/ "Tremolo Strings", -/*045 2D*/ "Pizzicato Strings", -/*046 2E*/ "Orchestral Harp", -/*047 2F*/ "Timpani", -/*048 30*/ "String Ensemble 1", -/*049 31*/ "String Ensemble 2", -/*050 32*/ "SynthStrings 1", -/*051 33*/ "SynthStrings 2", -/*052 34*/ "Choir Aahs", -/*053 35*/ "Voice Oohs", -/*054 36*/ "Synth Voice", -/*055 37*/ "Orchestra Hit", -/*056 38*/ "Trumpet", -/*057 39*/ "Trombone", -/*058 3A*/ "Tuba", -/*059 3B*/ "Muted Trumpet", -/*060 3C*/ "French Horn", -/*061 3D*/ "Brass Section", -/*062 3E*/ "SynthBrass 1", -/*063 3F*/ "SynthBrass 2", - -/*064 40*/ "Soprano Sax", -/*065 41*/ "Alto Sax", -/*066 42*/ "Tenor Sax", -/*067 43*/ "Baritone Sax", -/*068 44*/ "Oboe", -/*069 45*/ "English Horn", -/*070 46*/ "Bassoon", -/*071 47*/ "Clarinet", -/*072 48*/ "Piccolo", -/*073 49*/ "Flute", -/*074 4A*/ "Recorder", -/*075 4B*/ "Pan Flute", -/*076 4C*/ "Blown Bottle", -/*077 4D*/ "Shakuhachi", -/*078 4E*/ "Whistle", -/*079 4F*/ "Ocarina", -/*080 50*/ "Lead 1 (square)", -/*081 51*/ "Lead 2 (sawtooth)", -/*082 52*/ "Lead 3 (calliope)", -/*083 53*/ "Lead 4 (chiff)", -/*084 54*/ "Lead 5 (charang)", -/*085 55*/ "Lead 6 (voice)", -/*086 56*/ "Lead 7 (fifths)", -/*087 57*/ "Lead 8 (bass+lead)", -/*088 58*/ "Pad 1 (new age)", -/*089 59*/ "Pad 2 (warm)", -/*090 5A*/ "Pad 3 (polysynth)", -/*091 5B*/ "Pad 4 (choir)", -/*092 5C*/ "Pad 5 (bowed)", -/*093 5D*/ "Pad 6 (metallic)", -/*094 5E*/ "Pad 7 (halo)", -/*095 5F*/ "Pad 8 (sweep)", -/*096 60*/ "FX 1 (rain)", -/*097 61*/ "FX 2 (soundtrack)", -/*098 62*/ "FX 3 (crystal)", -/*099 63*/ "FX 4 (atmosphere)", -/*100 64*/ "FX 5 (brightness)", -/*101 65*/ "FX 6 (goblins)", -/*102 66*/ "FX 7 (echoes)", -/*103 67*/ "FX 8 (sci-fi)", -/*104 68*/ "Sitar", -/*105 69*/ "Banjo", -/*106 6A*/ "Shamisen", -/*107 6B*/ "Koto", -/*108 6C*/ "Kalimba", -/*109 6D*/ "Bag pipe", -/*110 6E*/ "Fiddle", -/*111 6F*/ "Shannai", -/*112 70*/ "Tinkle Bell", -/*113 71*/ "Agogo", -/*114 72*/ "Steel Drums", -/*115 73*/ "Woodblock", -/*116 74*/ "Taiko Drum", -/*117 75*/ "Melodic Tom", -/*118 76*/ "Synth Drum", -/*119 77*/ "Reverse Cymbal", -/*120 78*/ "Guitar Fret Noise", -/*121 79*/ "Breath Noise", -/*122 7A*/ "Seashore", -/*123 7B*/ "Bird Tweet", -/*124 7C*/ "Telephone Ring", -/*125 7D*/ "Helicopter", -/*126 7E*/ "Applause", -/*127 7F*/ "Gunshot" - -/*035 23*/ "Acoustic Bass Drum", -/*036 24*/ "Bass Drum 1", -/*037 25*/ "Side Stick", -/*038 26*/ "Acoustic Snare", -/*039 27*/ "Hand Clap", -/*040 28*/ "Electric Snare", -/*041 29*/ "Low Floor Tom", -/*042 2A*/ "Closed Hi-Hat", -/*043 2B*/ "High Floor Tom", -/*044 2C*/ "Pedal Hi-Hat", -/*045 2D*/ "Low Tom", -/*046 2E*/ "Open Hi-Hat", -/*047 2F*/ "Low-Mid Tom", -/*048 30*/ "Hi-Mid Tom", -/*049 31*/ "Crash Cymbal 1", -/*050 32*/ "High Tom", -/*051 33*/ "Ride Cymbal 1", -/*052 34*/ "Chinese Cymbal", -/*053 35*/ "Ride Bell", -/*054 36*/ "Tambourine", -/*055 37*/ "Splash Cymbal", -/*056 38*/ "Cowbell", -/*057 39*/ "Crash Cymbal 2", -/*058 3A*/ "Vibraslap", -/*059 3B*/ "Ride Cymbal 2", -/*060 3C*/ "Hi Bongo", -/*061 3D*/ "Low Bongo", -/*062 3E*/ "Mute Hi Conga", -/*063 3F*/ "Open Hi Conga", -/*064 40*/ "Low Conga", -/*065 41*/ "High Timbale", -/*066 42*/ "Low Timbale", -/*067 43*/ "High Agogo", -/*068 44*/ "Low Agogo", -/*069 45*/ "Cabasa", -/*070 46*/ "Maracas", -/*071 47*/ "Short Whistle", -/*072 48*/ "Long Whistle", -/*073 49*/ "Short Guiro", -/*074 4A*/ "Long Guiro", -/*075 4B*/ "Claves", -/*076 4C*/ "Hi Wood Block", -/*077 4D*/ "Low Wood Block", -/*078 4E*/ "Mute Cuica", -/*079 4F*/ "Open Cuica", -/*080 50*/ "Mute Triangle", -/*081 51*/ "Open Triangle" diff --git a/engines/sci/sfx/lists/gm_patches.cpp b/engines/sci/sfx/lists/gm_patches.cpp deleted file mode 100644 index 0e32d5f7b5..0000000000 --- a/engines/sci/sfx/lists/gm_patches.cpp +++ /dev/null @@ -1,200 +0,0 @@ -/*************************************************************************** - gm_patches.c Copyright (C) 2000 Rickard Lind - - - This program may be modified and copied freely according to the terms of - the GNU general public license (GPL), as long as the above copyright - notice and the licensing information contained herein are preserved. - - Please refer to www.gnu.org for licensing details. - - This work is provided AS IS, without warranty of any kind, expressed or - implied, including but not limited to the warranties of merchantibility, - noninfringement, and fitness for a specific purpose. The author will not - be held liable for any damage caused by this work or derivatives of it. - - By using this source code, you agree to the licensing terms as stated - above. - -***************************************************************************/ - -char *GM_Patch[128] = { - /*000*/ "Acoustic Grand Piano", - /*001*/ "Bright Acoustic Piano", - /*002*/ "Electric Grand Piano", - /*003*/ "Honky-tonk Piano", - /*004*/ "Electric Piano 1", - /*005*/ "Electric Piano 2", - /*006*/ "Harpsichord", - /*007*/ "Clavinet", - /*008*/ "Celesta", - /*009*/ "Glockenspiel", - /*010*/ "Music Box", - /*011*/ "Vibraphone", - /*012*/ "Marimba", - /*013*/ "Xylophone", - /*014*/ "Tubular Bells", - /*015*/ "Dulcimer", - /*016*/ "Drawbar Organ", - /*017*/ "Percussive Organ", - /*018*/ "Rock Organ", - /*019*/ "Church Organ", - /*020*/ "Reed Organ", - /*021*/ "Accordion", - /*022*/ "Harmonica", - /*023*/ "Tango Accordion", - /*024*/ "Acoustic Guitar (nylon)", - /*025*/ "Acoustic Guitar (steel)", - /*026*/ "Electric Guitar (jazz)", - /*027*/ "Electric Guitar (clean)", - /*028*/ "Electric Guitar (muted)", - /*029*/ "Overdriven Guitar", - /*030*/ "Distortion Guitar", - /*031*/ "Guitar Harmonics", - /*032*/ "Acoustic Bass", - /*033*/ "Electric Bass (finger)", - /*034*/ "Electric Bass (pick)", - /*035*/ "Fretless Bass", - /*036*/ "Slap Bass 1", - /*037*/ "Slap Bass 2", - /*038*/ "Synth Bass 1", - /*039*/ "Synth Bass 2", - /*040*/ "Violin", - /*041*/ "Viola", - /*042*/ "Cello", - /*043*/ "Contrabass", - /*044*/ "Tremolo Strings", - /*045*/ "Pizzicato Strings", - /*046*/ "Orchestral Harp", - /*047*/ "Timpani", - /*048*/ "String Ensemble 1", - /*049*/ "String Ensemble 2", - /*050*/ "SynthStrings 1", - /*051*/ "SynthStrings 2", - /*052*/ "Choir Aahs", - /*053*/ "Voice Oohs", - /*054*/ "Synth Voice", - /*055*/ "Orchestra Hit", - /*056*/ "Trumpet", - /*057*/ "Trombone", - /*058*/ "Tuba", - /*059*/ "Muted Trumpet", - /*060*/ "French Horn", - /*061*/ "Brass Section", - /*062*/ "SynthBrass 1", - /*063*/ "SynthBrass 2", - /*064*/ "Soprano Sax", - /*065*/ "Alto Sax", - /*066*/ "Tenor Sax", - /*067*/ "Baritone Sax", - /*068*/ "Oboe", - /*069*/ "English Horn", - /*070*/ "Bassoon", - /*071*/ "Clarinet", - /*072*/ "Piccolo", - /*073*/ "Flute", - /*074*/ "Recorder", - /*075*/ "Pan Flute", - /*076*/ "Blown Bottle", - /*077*/ "Shakuhachi", - /*078*/ "Whistle", - /*079*/ "Ocarina", - /*080*/ "Lead 1 (square)", - /*081*/ "Lead 2 (sawtooth)", - /*082*/ "Lead 3 (calliope)", - /*083*/ "Lead 4 (chiff)", - /*084*/ "Lead 5 (charang)", - /*085*/ "Lead 6 (voice)", - /*086*/ "Lead 7 (fifths)", - /*087*/ "Lead 8 (bass+lead)", - /*088*/ "Pad 1 (new age)", - /*089*/ "Pad 2 (warm)", - /*090*/ "Pad 3 (polysynth)", - /*091*/ "Pad 4 (choir)", - /*092*/ "Pad 5 (bowed)", - /*093*/ "Pad 6 (metallic)", - /*094*/ "Pad 7 (halo)", - /*095*/ "Pad 8 (sweep)", - /*096*/ "FX 1 (rain)", - /*097*/ "FX 2 (soundtrack)", - /*098*/ "FX 3 (crystal)", - /*099*/ "FX 4 (atmosphere)", - /*100*/ "FX 5 (brightness)", - /*101*/ "FX 6 (goblins)", - /*102*/ "FX 7 (echoes)", - /*103*/ "FX 8 (sci-fi)", - /*104*/ "Sitar", - /*105*/ "Banjo", - /*106*/ "Shamisen", - /*107*/ "Koto", - /*108*/ "Kalimba", - /*109*/ "Bag pipe", - /*110*/ "Fiddle", - /*111*/ "Shannai", - /*112*/ "Tinkle Bell", - /*113*/ "Agogo", - /*114*/ "Steel Drums", - /*115*/ "Woodblock", - /*116*/ "Taiko Drum", - /*117*/ "Melodic Tom", - /*118*/ "Synth Drum", - /*119*/ "Reverse Cymbal", - /*120*/ "Guitar Fret Noise", - /*121*/ "Breath Noise", - /*122*/ "Seashore", - /*123*/ "Bird Tweet", - /*124*/ "Telephone Ring", - /*125*/ "Helicopter", - /*126*/ "Applause", - /*127*/ "Gunshot" -}; - -char *GM_RhythmKey[47] = { - /*035*/ "Acoustic Bass Drum", - /*036*/ "Bass Drum 1", - /*037*/ "Side Stick", - /*038*/ "Acoustic Snare", - /*039*/ "Hand Clap", - /*040*/ "Electric Snare", - /*041*/ "Low Floor Tom", - /*042*/ "Closed Hi-Hat", - /*043*/ "High Floor Tom", - /*044*/ "Pedal Hi-Hat", - /*045*/ "Low Tom", - /*046*/ "Open Hi-Hat", - /*047*/ "Low-Mid Tom", - /*048*/ "Hi-Mid Tom", - /*049*/ "Crash Cymbal 1", - /*050*/ "High Tom", - /*051*/ "Ride Cymbal 1", - /*052*/ "Chinese Cymbal", - /*053*/ "Ride Bell", - /*054*/ "Tambourine", - /*055*/ "Splash Cymbal", - /*056*/ "Cowbell", - /*057*/ "Crash Cymbal 2", - /*058*/ "Vibraslap", - /*059*/ "Ride Cymbal 2", - /*060*/ "Hi Bongo", - /*061*/ "Low Bongo", - /*062*/ "Mute Hi Conga", - /*063*/ "Open Hi Conga", - /*064*/ "Low Conga", - /*065*/ "High Timbale", - /*066*/ "Low Timbale", - /*067*/ "High Agogo", - /*068*/ "Low Agogo", - /*069*/ "Cabasa", - /*070*/ "Maracas", - /*071*/ "Short Whistle", - /*072*/ "Long Whistle", - /*073*/ "Short Guiro", - /*074*/ "Long Guiro", - /*075*/ "Claves", - /*076*/ "Hi Wood Block", - /*077*/ "Low Wood Block", - /*078*/ "Mute Cuica", - /*079*/ "Open Cuica", - /*080*/ "Mute Triangle" - /*081*/ "Open Triangle" -}; diff --git a/engines/sci/sfx/lists/mt32_timbres.cpp b/engines/sci/sfx/lists/mt32_timbres.cpp deleted file mode 100644 index 6cbf1c415a..0000000000 --- a/engines/sci/sfx/lists/mt32_timbres.cpp +++ /dev/null @@ -1,183 +0,0 @@ -/*************************************************************************** - mt_32_timbres.c Copyright (C) 2000 Rickard Lind - - - This program may be modified and copied freely according to the terms of - the GNU general public license (GPL), as long as the above copyright - notice and the licensing information contained herein are preserved. - - Please refer to www.gnu.org for licensing details. - - This work is provided AS IS, without warranty of any kind, expressed or - implied, including but not limited to the warranties of merchantibility, - noninfringement, and fitness for a specific purpose. The author will not - be held liable for any damage caused by this work or derivatives of it. - - By using this source code, you agree to the licensing terms as stated - above. - -***************************************************************************/ - -char *MT32_Timbre[128] = { - /*000*/ "AcouPiano1", - /*001*/ "AcouPiano2", - /*002*/ "AcouPiano3", - /*003*/ "ElecPiano1", - /*004*/ "ElecPiano2", - /*005*/ "ElecPiano3", - /*006*/ "ElecPiano4", - /*007*/ "Honkytonk ", - /*008*/ "Elec Org 1", - /*009*/ "Elec Org 2", - /*010*/ "Elec Org 3", - /*011*/ "Elec Org 4", - /*012*/ "Pipe Org 1", - /*013*/ "Pipe Org 2", - /*014*/ "Pipe Org 3", - /*015*/ "Accordion ", - /*016*/ "Harpsi 1 ", - /*017*/ "Harpsi 2 ", - /*018*/ "Harpsi 3 ", - /*019*/ "Clavi 1 ", - /*020*/ "Clavi 2 ", - /*021*/ "Clavi 3 ", - /*022*/ "Celesta 1 ", - /*023*/ "Celesta 2 ", - /*024*/ "Syn Brass1", - /*025*/ "Syn Brass2", - /*026*/ "Syn Brass3", - /*027*/ "Syn Brass4", - /*028*/ "Syn Bass 1", - /*029*/ "Syn Bass 2", - /*030*/ "Syn Bass 3", - /*031*/ "Syn Bass 4", - /*032*/ "Fantasy ", - /*033*/ "Harmo Pan ", - /*034*/ "Chorale ", - /*035*/ "Glasses ", - /*036*/ "Soundtrack", - /*037*/ "Atmosphere", - /*038*/ "Warm Bell ", - /*039*/ "Funny Vox ", - /*040*/ "Echo Bell ", - /*041*/ "Ice Rain ", - /*042*/ "Oboe 2001 ", - /*043*/ "Echo Pan ", - /*044*/ "DoctorSolo", - /*045*/ "Schooldaze", - /*046*/ "BellSinger", - /*047*/ "SquareWave", - /*048*/ "Str Sect 1", - /*049*/ "Str Sect 2", - /*050*/ "Str Sect 3", - /*051*/ "Pizzicato ", - /*052*/ "Violin 1 ", - /*053*/ "Violin 2 ", - /*054*/ "Cello 1 ", - /*055*/ "Cello 2 ", - /*056*/ "Contrabass", - /*057*/ "Harp 1 ", - /*058*/ "Harp 2 ", - /*059*/ "Guitar 1 ", - /*060*/ "Guitar 2 ", - /*061*/ "Elec Gtr 1", - /*062*/ "Elec Gtr 2", - /*063*/ "Sitar ", - /*064*/ "Acou Bass1", - /*065*/ "Acou Bass2", - /*066*/ "Elec Bass1", - /*067*/ "Elec Bass2", - /*068*/ "Slap Bass1", - /*069*/ "Slap Bass2", - /*070*/ "Fretless 1", - /*071*/ "Fretless 2", - /*072*/ "Flute 1 ", - /*073*/ "Flute 2 ", - /*074*/ "Piccolo 1 ", - /*075*/ "Piccolo 2 ", - /*076*/ "Recorder ", - /*077*/ "Panpipes ", - /*078*/ "Sax 1 ", - /*079*/ "Sax 2 ", - /*080*/ "Sax 3 ", - /*081*/ "Sax 4 ", - /*082*/ "Clarinet 1", - /*083*/ "Clarinet 2", - /*084*/ "Oboe ", - /*085*/ "Engl Horn ", - /*086*/ "Bassoon ", - /*087*/ "Harmonica ", - /*088*/ "Trumpet 1 ", - /*089*/ "Trumpet 2 ", - /*090*/ "Trombone 1", - /*091*/ "Trombone 2", - /*092*/ "Fr Horn 1 ", - /*093*/ "Fr Horn 2 ", - /*094*/ "Tuba ", - /*095*/ "Brs Sect 1", - /*096*/ "Brs Sect 2", - /*097*/ "Vibe 1 ", - /*098*/ "Vibe 2 ", - /*099*/ "Syn Mallet", - /*100*/ "Wind Bell ", - /*101*/ "Glock ", - /*102*/ "Tube Bell ", - /*103*/ "Xylophone ", - /*104*/ "Marimba ", - /*105*/ "Koto ", - /*106*/ "Sho ", - /*107*/ "Shakuhachi", - /*108*/ "Whistle 1 ", - /*109*/ "Whistle 2 ", - /*110*/ "BottleBlow", - /*111*/ "BreathPipe", - /*112*/ "Timpani ", - /*113*/ "MelodicTom", - /*114*/ "Deep Snare", - /*115*/ "Elec Perc1", - /*116*/ "Elec Perc2", - /*117*/ "Taiko ", - /*118*/ "Taiko Rim ", - /*119*/ "Cymbal ", - /*120*/ "Castanets ", - /*121*/ "Triangle ", - /*122*/ "Orche Hit ", - /*123*/ "Telephone ", - /*124*/ "Bird Tweet", - /*125*/ "OneNoteJam", - /*126*/ "WaterBells", - /*127*/ "JungleTune" -}; - -char *MT32_RhythmTimbre[30] = { - /*00*/ "Acou BD ", - /*01*/ "Acou SD ", - /*02*/ "Acou HiTom", - /*03*/ "AcouMidTom", - /*04*/ "AcouLowTom", - /*05*/ "Elec SD ", - /*06*/ "Clsd HiHat", - /*07*/ "OpenHiHat1", - /*08*/ "Crash Cym ", - /*09*/ "Ride Cym ", - /*10*/ "Rim Shot ", - /*11*/ "Hand Clap ", - /*12*/ "Cowbell ", - /*13*/ "Mt HiConga", - /*14*/ "High Conga", - /*15*/ "Low Conga ", - /*16*/ "Hi Timbale", - /*17*/ "LowTimbale", - /*18*/ "High Bongo", - /*19*/ "Low Bongo ", - /*20*/ "High Agogo", - /*21*/ "Low Agogo ", - /*22*/ "Tambourine", - /*23*/ "Claves ", - /*24*/ "Maracas ", - /*25*/ "SmbaWhis L", - /*26*/ "SmbaWhis S", - /*27*/ "Cabasa ", - /*28*/ "Quijada ", - /*29*/ "OpenHiHat2" -}; diff --git a/engines/sci/sfx/tests/stubs.c b/engines/sci/sfx/tests/stubs.c deleted file mode 100644 index 06da6f9419..0000000000 --- a/engines/sci/sfx/tests/stubs.c +++ /dev/null @@ -1,9 +0,0 @@ -int sciprintf(char *fmt,...) -{ - return 0; -} - -int sfx_pcm_available() -{ - return 1; -}
\ No newline at end of file diff --git a/engines/sci/sfx/tests/tests.cpp b/engines/sci/sfx/tests/tests.cpp deleted file mode 100644 index 0999d3615f..0000000000 --- a/engines/sci/sfx/tests/tests.cpp +++ /dev/null @@ -1,162 +0,0 @@ -#include <stdio.h> -#include <sfx_iterator.h> - -#define TESTEQUAL(x, y) if(x != y) printf("test failure: expected %04x, got %04x @ file %s line %d \n", x, y, __FILE__, __LINE__); - -static char calledDeathListenerCallback; - -static unsigned char song[] = { -// PCM not present - 0, -// channel defs - 0, 0x20, 0, 0x21, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, -// note on, wait, note off - 0xAA, - 0x90, 0xAA, 0xAA, - 0xAA, - 0x80, 0xAA, 0xAA, - 0xAA, - 0x91, 0xAA, 0xAA, - 0xAA, - 0x81, 0xAA, 0xAA, - 0xAA, -// end track - 0xFC -}; - -#define SONG_CMD_COUNT 10 - -#define TEST_SETUP() \ - unsigned char cmds[4] = {0}; \ - int result = 0; \ - int message; \ - int i; \ -\ - song_iterator_t *it = songit_new(song, sizeof(song), 0, 0); \ - it->init(it); \ - SIMSG_SEND(it, SIMSG_SET_PLAYMASK(0x20));\ - calledDeathListenerCallback = 0; - -#define TEST_TEARDOWN() \ - songit_free(it); - - -void testFinishSong() { - TEST_SETUP(); - message = songit_next(&it, &cmds, &result, IT_READER_MASK_ALL); - TESTEQUAL(0xAA, message); - - message = songit_next(&it, &cmds, &result, IT_READER_MASK_ALL); - TESTEQUAL(0, message); - TESTEQUAL(3, result); - - for (i = 0; i < SONG_CMD_COUNT - 2; i++) { - message = songit_next(&it, &cmds, &result, IT_READER_MASK_ALL); - } - - TESTEQUAL(SI_FINISHED, message); - - TEST_TEARDOWN(); -} - - -void DeathListenerCallback(void *v1, void *v2) { - calledDeathListenerCallback++; - return; -} - -void testDeathListener() { - TEST_SETUP(); - - song_iterator_add_death_listener( - it, - it, - (void(*)(void *, void*))DeathListenerCallback); - - for (i = 0; i < SONG_CMD_COUNT; i++) { - message = songit_next(&it, &cmds, &result, IT_READER_MASK_ALL); - } - - TESTEQUAL(SI_FINISHED, message); - - TEST_TEARDOWN(); - - TESTEQUAL(1, calledDeathListenerCallback); -} - -void testMultipleDeathListeners() { - TEST_SETUP(); - - song_iterator_add_death_listener( - it, - it, - (void(*)(void *, void*))DeathListenerCallback); - - song_iterator_add_death_listener( - it, - it, - (void(*)(void *, void*))DeathListenerCallback); - - for (i = 0; i < SONG_CMD_COUNT; i++) { - message = songit_next(&it, &cmds, &result, IT_READER_MASK_ALL); - } - - TESTEQUAL(SI_FINISHED, message); - - TEST_TEARDOWN(); - - TESTEQUAL(2, calledDeathListenerCallback); -} - -void testStopSong() { - TEST_SETUP(); - SIMSG_SEND(it, SIMSG_STOP); - - message = songit_next(&it, &cmds, &result, IT_READER_MASK_ALL); - TESTEQUAL(SI_FINISHED, message); - - TEST_TEARDOWN(); -} - -void testStopLoopedSong() { - TEST_SETUP(); - - SIMSG_SEND(it, SIMSG_SET_LOOPS(3)); - message = songit_next(&it, &cmds, &result, IT_READER_MASK_ALL); - TESTEQUAL(0xAA, message); - - SIMSG_SEND(it, SIMSG_STOP); - message = songit_next(&it, &cmds, &result, IT_READER_MASK_ALL); - TESTEQUAL(SI_FINISHED, message); - - TEST_TEARDOWN(); -} - -void testChangeSongMask() { - TEST_SETUP(); - - message = songit_next(&it, &cmds, &result, IT_READER_MASK_ALL); - TESTEQUAL(0xAA, message); - - SIMSG_SEND(it, SIMSG_SET_PLAYMASK(0x40)); - message = songit_next(&it, &cmds, &result, IT_READER_MASK_ALL); - TESTEQUAL(0, message); - TESTEQUAL(0, result); - - TEST_TEARDOWN(); -} - - -int main(int argc, char* argv[]) { - testFinishSong(); - testDeathListener(); - testMultipleDeathListeners(); - testStopSong(); - testStopLoopedSong(); - testChangeSongMask(); - return 0; -} - diff --git a/engines/sci/sfx/tests/tests.vcproj b/engines/sci/sfx/tests/tests.vcproj deleted file mode 100644 index a50c794bce..0000000000 --- a/engines/sci/sfx/tests/tests.vcproj +++ /dev/null @@ -1,158 +0,0 @@ -<?xml version="1.0" encoding="Windows-1252"?> -<VisualStudioProject - ProjectType="Visual C++" - Version="7.10" - Name="tests" - ProjectGUID="{3C6F6B16-D092-495C-B611-03FFDBFF27FC}" - Keyword="Win32Proj"> - <Platforms> - <Platform - Name="Win32"/> - </Platforms> - <Configurations> - <Configuration - Name="Debug|Win32" - OutputDirectory="Debug" - IntermediateDirectory="Debug" - ConfigurationType="1" - CharacterSet="2"> - <Tool - Name="VCCLCompilerTool" - Optimization="0" - AdditionalIncludeDirectories="..\..\include;..\..\include\win32" - PreprocessorDefinitions="PACKAGE=\"freesci\";HAVE_GETOPT_H;HAVE_LIBPNG;VERSION=__TIMESTAMP__;_DEBUG;WIN32;_CONSOLE;HAVE_STRING_H;HAVE_MEMCHR" - MinimalRebuild="TRUE" - BasicRuntimeChecks="3" - RuntimeLibrary="5" - UsePrecompiledHeader="0" - WarningLevel="3" - Detect64BitPortabilityProblems="TRUE" - DebugInformationFormat="4" - CompileAs="1"/> - <Tool - Name="VCCustomBuildTool"/> - <Tool - Name="VCLinkerTool" - AdditionalDependencies="winmm.lib" - OutputFile="$(OutDir)/tests.exe" - LinkIncremental="2" - GenerateDebugInformation="TRUE" - ProgramDatabaseFile="$(OutDir)/tests.pdb" - SubSystem="1" - TargetMachine="1"/> - <Tool - Name="VCMIDLTool"/> - <Tool - Name="VCPostBuildEventTool"/> - <Tool - Name="VCPreBuildEventTool"/> - <Tool - Name="VCPreLinkEventTool"/> - <Tool - Name="VCResourceCompilerTool"/> - <Tool - Name="VCWebServiceProxyGeneratorTool"/> - <Tool - Name="VCXMLDataGeneratorTool"/> - <Tool - Name="VCWebDeploymentTool"/> - <Tool - Name="VCManagedWrapperGeneratorTool"/> - <Tool - Name="VCAuxiliaryManagedWrapperGeneratorTool"/> - </Configuration> - <Configuration - Name="Release|Win32" - OutputDirectory="Release" - IntermediateDirectory="Release" - ConfigurationType="1" - CharacterSet="2"> - <Tool - Name="VCCLCompilerTool" - AdditionalIncludeDirectories="..\..\include" - PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE" - RuntimeLibrary="4" - UsePrecompiledHeader="0" - WarningLevel="3" - Detect64BitPortabilityProblems="TRUE" - DebugInformationFormat="3"/> - <Tool - Name="VCCustomBuildTool"/> - <Tool - Name="VCLinkerTool" - AdditionalDependencies="winmm.lib" - OutputFile="$(OutDir)/tests.exe" - LinkIncremental="1" - GenerateDebugInformation="TRUE" - SubSystem="1" - OptimizeReferences="2" - EnableCOMDATFolding="2" - TargetMachine="1"/> - <Tool - Name="VCMIDLTool"/> - <Tool - Name="VCPostBuildEventTool"/> - <Tool - Name="VCPreBuildEventTool"/> - <Tool - Name="VCPreLinkEventTool"/> - <Tool - Name="VCResourceCompilerTool"/> - <Tool - Name="VCWebServiceProxyGeneratorTool"/> - <Tool - Name="VCXMLDataGeneratorTool"/> - <Tool - Name="VCWebDeploymentTool"/> - <Tool - Name="VCManagedWrapperGeneratorTool"/> - <Tool - Name="VCAuxiliaryManagedWrapperGeneratorTool"/> - </Configuration> - </Configurations> - <References> - </References> - <Files> - <Filter - Name="Source Files" - Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx" - UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"> - <File - RelativePath="..\..\sfx\iterator.c"> - </File> - <File - RelativePath="..\..\sfx\pcm-iterator.c"> - </File> - <File - RelativePath="..\..\scicore\sci_memory.c"> - </File> - <File - RelativePath=".\stubs.c"> - </File> - <File - RelativePath=".\tests.cpp"> - </File> - <File - RelativePath="..\..\scicore\tools.c"> - </File> - </Filter> - <Filter - Name="Header Files" - Filter="h;hpp;hxx;hm;inl;inc;xsd" - UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"> - <File - RelativePath="..\..\include\win32\sci_win32.h"> - </File> - </Filter> - <Filter - Name="Resource Files" - Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx" - UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"> - </Filter> - <File - RelativePath=".\ReadMe.txt"> - </File> - </Files> - <Globals> - </Globals> -</VisualStudioProject> |