Commit Graph

199 Commits

Author SHA1 Message Date
Max Horn
5c48717dd2 Remove some more header dependencies
svn-id: r16530
2005-01-10 22:35:43 +00:00
Max Horn
47280d9433 Updated copyright
svn-id: r16398
2005-01-01 16:09:25 +00:00
Max Horn
fec3df2096 Moved the softsynth midi drivers into a sound/softsynth; amongst other things, this fixes bug #1083058
svn-id: r16316
2004-12-25 18:34:44 +00:00
Max Horn
f09293b22c Clean up OSystem::Event
svn-id: r15990
2004-12-05 17:42:20 +00:00
Jerome Fisher
470a83e024 Synched with upstream (Munt 0.1.1).
Memory timbres are now loaded into the correct location again, and reaching the end of a PCM sample has been improved. The latter change is probably the only one relevant to ScummVM, and even that is unlikely to be audible.

svn-id: r15972
2004-12-02 23:00:15 +00:00
Jerome Fisher
e757242937 - Fixed uninitialised reverb level. This bug took embarrassingly long to find...
svn-id: r15962
2004-11-29 02:21:35 +00:00
Jerome Fisher
e61e0f27a0 - Now actually read and write the 4 bytes of tuning frequency info in the header.
svn-id: r15961
2004-11-29 01:05:15 +00:00
Max Horn
10dd548b85 Changed parameter order of SoundMixer::playInputStream to match that of playRaw
svn-id: r15950
2004-11-28 23:02:28 +00:00
Jerome Fisher
1f56326bd5 - Now sets the palette earlier, and only once.
svn-id: r15948
2004-11-28 22:23:13 +00:00
Jerome Fisher
87fc0548f9 - Now sets itself as a "permanent" mixer channel.
svn-id: r15947
2004-11-28 22:17:06 +00:00
Eugene Sandulenko
1947aa48ac Initialize palette for the progress bar
svn-id: r15945
2004-11-28 21:31:46 +00:00
Jerome Fisher
6c84bbf2bd - Cleanup.
- Signedness fix.
- Changed partial age to 32-bit... They don't exactly run until the heat-death of the universe.

svn-id: r15943
2004-11-28 21:08:37 +00:00
Max Horn
3da8e08c0c Fixed various warnings
svn-id: r15939
2004-11-28 13:10:57 +00:00
Max Horn
540ba778e9 fixed an unsigned comparision warning (does this code really do what you intended it to do?)
svn-id: r15938
2004-11-28 13:09:02 +00:00
Max Horn
3225ae0203 const correctness fix
svn-id: r15937
2004-11-28 13:08:23 +00:00
Jerome Fisher
6d255be202 - More cleanup.
- Another tuning tweak. Sounds better to my ear, but still guesswork.

svn-id: r15934
2004-11-28 07:25:18 +00:00
Jerome Fisher
c5915d19d0 - Now really use g_scummfont everywhere.
svn-id: r15933
2004-11-28 07:08:54 +00:00
Jerome Fisher
2a3b7efc3d - Now uses g_scummfont instead of g_sysfont.
- Added default case to event switch to eliminate compiler warning.

svn-id: r15932
2004-11-28 07:07:15 +00:00
Jerome Fisher
2149e0fc78 - Cleanup. Still waiting for a real MT-32 to check PCM tuning.
svn-id: r15931
2004-11-28 06:03:23 +00:00
Jerome Fisher
39817f91b3 - Tweaked tuning.
svn-id: r15930
2004-11-28 05:42:12 +00:00
Jerome Fisher
077d19f500 - Added graphical representation of initialisation progress. This is quite hacky.
- Initialisation is now interruptible.
- All data is now loaded from MT32_CONTROL.ROM. drumpat.rom, Preset1.syx, Preset2.syx and patchlog.cfg are no longer used.
- Major cleanup. In particular, separated Rhythm part into a new class, instead of dealing with it as a special case everywhere.
- Improved accuracy of pitch key-follow.
- Recaching now happens lazily.
- Changed some right-shifts to divs, due to the former not being arithmetic on some architectures.
- Setting "MT32EMU_ACCURATENOTES" to 1 will generate lookup tables for the exact frequency of every note played. Not recommended.
- Several small bugs fixed.

svn-id: r15929
2004-11-28 05:35:07 +00:00
Max Horn
1a7ca2dc2a AudioStream::read() has been removed quite some time ago, now making sure that change is reflected everywhere
svn-id: r15911
2004-11-27 13:54:09 +00:00
Jerome Fisher
ea79c9c5e7 - Don't compile inline asm on versions of GCC < 3 (it uses MMX registers, which don't seem to be supported).
svn-id: r15830
2004-11-19 01:39:16 +00:00
Max Horn
525df7cff0 const const const
svn-id: r15825
2004-11-15 23:33:06 +00:00
Jerome Fisher
f08482d0ce - Now uses playInputStream to add a channel to the mixer, instead of setting the premixer. There can be only one, and this conflicted with Adlib in multi_midi mode.
svn-id: r15821
2004-11-15 12:39:08 +00:00
Torbjörn Andersson
73afa3165b This has to be a typo.
svn-id: r15809
2004-11-14 14:58:39 +00:00
Eugene Sandulenko
2fb46f1b95 Make #pragma pack really multiplatform. Old code didn't work on
non-Win32 platforms.

svn-id: r15805
2004-11-14 11:46:29 +00:00
Jerome Fisher
504d54e8ab - Huge cleanup of LUT stuff.
- No longer stores a sawtooth waveform twice, once with each sample negated.
- More graceful handling of truncated waveformcache files.
- Fixed tuning of patterns for non-32KHz sample rates (needs checking).
- Note: Waveform cache format changed, will automatically be rebuilt.

svn-id: r15804
2004-11-14 08:04:56 +00:00
Jerome Fisher
0ed79dfad7 - Prettied up, fixed sign-extension bug.
svn-id: r15803
2004-11-14 07:54:43 +00:00
Jerome Fisher
a158e884a0 - More cleanup.
- Note-on MIDI commands outside the range 12-108 are now raised/lowered by octaves until in range (instead of being ignored).

svn-id: r15802
2004-11-14 04:40:12 +00:00
Jerome Fisher
1aeca6838b MT32 MidiDriver:
- Cleanup

MT32Emu:
- Lots more cleanup.
- Properly implemented pitch bending (not fast, but theoretically perfect).
- Full position delta is now calculated before PCM interpolation/decimation is performed, so that pitch modifiers will be considered.
- Now reports when using SSE or 3DNow, and when the samplerate is invalid.

svn-id: r15801
2004-11-14 04:13:15 +00:00
Jerome Fisher
5e442766e5 MT32 MidiDriver:
- Channels now ignore effectLevel() and chorusLevel(), instead of sending unsupported control change messages to MT32Emu (they're not supported in a real MT-32, either, according to docs).
- Implemented setPitchBendRange() by sending a sysex write command to adjust the patch.
- _outputRate is now hard-coded at 32000, until tuning can be fixed for other sample rates.

MT32EMu:
- Extended File interface to deal with reading/writing 16/32-bit values endian-independently (they're always big-endian on file).
- Improved usage of packing-related pragmas.
- Should now be endian-agnostic (without depending on #defines for the endianness).

svn-id: r15800
2004-11-13 19:24:37 +00:00
Paweł Kołodziejski
22afdfc5c9 renamed file mt32
svn-id: r15794
2004-11-12 11:32:35 +00:00
Paweł Kołodziejski
6f8f614893 renamed file mt32
svn-id: r15793
2004-11-12 11:09:47 +00:00
Jerome Fisher
e4f600ee48 - Minor improvement to failure handling.
svn-id: r15777
2004-11-10 10:50:47 +00:00
Max Horn
cbfa7e3b5c Use the actual output rate of the sound mixer when producing MT32 audio samples -> by default only does 22.5 kHz -> it's now actually almost usable on my machine ;-). Alternative approach might be to hard code 32000 here
svn-id: r15775
2004-11-10 00:25:58 +00:00
Max Horn
daee2edcfe oops
svn-id: r15734
2004-11-08 10:17:47 +00:00
Max Horn
79509f9383 cleanup
svn-id: r15733
2004-11-08 10:16:07 +00:00
Eugene Sandulenko
6d38776da0 Fix it on LE systems. SCUMM_LITTLE_ENDIAN is defined in common/scummsys.h,
so it's a good idea to have that included before check :)

svn-id: r15732
2004-11-08 01:17:55 +00:00
Max Horn
e759cf5522 Re-apply endian fix
svn-id: r15731
2004-11-07 18:25:32 +00:00
Torbjörn Andersson
6b3432a93e Be more consistent with the other module.mk files.
svn-id: r15719
2004-11-06 09:26:36 +00:00
Travis Howell
b36be2d8bc Remove stray ;
svn-id: r15717
2004-11-06 05:18:04 +00:00
Eugene Sandulenko
dee673d96e Improve reporting (OSD messages, file open errors) and fix typos.
Forgot to mention:

 o waveforms.raw is autogenerated if not present

svn-id: r15716
2004-11-06 02:20:43 +00:00
Eugene Sandulenko
805b21181a Major MT-32 emu overhaul based on KingGuppy's code.
o added configure option
 o mi2 intro doesn't freeze anymore and has no sound glitches
 o missing instruments in many titles are fixed
 o numerous memory overwrite bugs are fixed
 o code is cleaned a lot and splitted into many smaller files
 o mt32.cpp went to backends/midi
 o synced with upstream code
 o reverberation fixed

 * don't complain about File class wrapper :)
 * all custom types are back
 * #pragmas are to do
 * maybe some indentation is wrong too

I prefer smaller commits, but this thing came in one piece.

svn-id: r15715
2004-11-06 01:41:32 +00:00
Eugene Sandulenko
6fd31192e1 o Sync with upstream source
o Move back to old sawtooth filter, which sounds better

svn-id: r15683
2004-10-24 19:21:38 +00:00
Torbjörn Andersson
53d1021985 More cleanup. Too bored to continue now.
svn-id: r15682
2004-10-24 15:04:19 +00:00
Torbjörn Andersson
22581c3c10 More cleanup.
svn-id: r15681
2004-10-24 14:50:34 +00:00
Eugene Sandulenko
7b84693125 o Check size of waveforms.raw so output rate could be adjusted
o Eliminate rom_path, as we use our File class

svn-id: r15679
2004-10-24 13:03:42 +00:00
Eugene Sandulenko
e8811e7158 Oops
svn-id: r15670
2004-10-23 20:56:53 +00:00
Eugene Sandulenko
0b07a5f484 o Turn BASE_FREQ constant into variable. MT-32 has to be run in lesser time slices.
o Attempt to fix mi2, but that cure for symptom, not the cause. Under dosbox header is always valid, but here we get 0x41001612 instead of 0x41101612.

svn-id: r15669
2004-10-23 20:33:39 +00:00