aboutsummaryrefslogtreecommitdiff
path: root/engines/agi
AgeCommit message (Collapse)Author
2011-03-28AUDIO: Add Audio::MidiPlayer::createDriver(), let some engines use itMax Horn
2011-03-25AUDIO: Move more common code to Audio::MidiPlayerMax Horn
This also should fix some regressions from the previous commits, related to MidiParser's either being leaked, or being deleted and then used again (i.e., crashing). I tested as many games as I had available, but further testing of all affected engines is called for anyway.
2011-03-24AGI: Change SoundGenMIDI to derive from Audio::MidiPlayerMax Horn
As a side effect, this fixes the incorrect handling of 'All Note Off' in SoundGenMIDI::send.
2011-03-23ENGINES: Remove unused MIDI pass-through codeMax Horn
2011-03-23ENGINES: Further simplify pseudo MidiDrivers; fix some regressionsMax Horn
The regression affected AGOS and maybe some others; specifically, the real MidiDriver would have been deleted twice -- I previously missed that the Engine instances takes care of freeing the real MidiDriver, not the MidiPlayer wrapping it. This commit should clarify the ownership of the real MidiDriver for most pseudo MidiDrivers.
2011-03-23AUDIO: Change several fake MidiDrivers to MidiDriver_BASE subclassesMax Horn
Many engines follow the advice in audio/midiparser.h and create a "pseudo-MidiDriver" subclass. But MidiParser really only needs a tiny subset of the MidiDriver capabilities, namely those found in MidiDriver_BASE. So we try to subclass from that whenever possible; this allows us to remove many stub methods, and enables further future simplifications.
2011-03-22AUDIO: Add pure virtual MidiDriver::isOpen() methodMax Horn
This in turn enables modifying MidiDriver_MPU401::close() to allow it to be called on a midi driver that has not yet been opened. The specific issue that triggered me to make these changes was a crash-upon-quit in HUGO, caused by it instantiating a midi driver, then encountering an error (missing hugo.dat) *before* having opened the new midi driver; the general cleanup code then tries to close the (not yet opened) midi driver -> kaboom Also fixed some engines which were leaking MidiDriver instances.
2011-03-19PREAGI: Cleanup volume levels initializationdhewg
2011-03-16AGI: Remove newlines from debug()dhewg
2011-03-05AGI: Kill the timer based counterdhewg
Using the timer mechanism for just a simple counter is not just overkill, its also inaccurate. When using a call frequency of x, and waiting for y callbacks, the passed time will not be x*y. The problem amplifies on slower platforms and/or fair thread schedulers. Use absolute times instead. Most notably, the walking speed of the avatar is now smooth on android, but probably on all other handhelds we support too.
2011-02-28AGI: Add detection for the 'AGI Combat' fan gameMatthew Hoops
2011-02-20AGI: Remove leftover RGBA reference in comments.Johannes Schickel
2011-02-14AGI: Adapt to setPalette RGBA->RGB change.Johannes Schickel
2011-02-09AUDIO: Rename sound/ dir to audio/Max Horn
svn-id: r55850
2011-02-07ALL: Fix whitespaces / indentionMax Horn
svn-id: r55818
2011-02-07COMMON: OSystem now has a PaletteManagerMax Horn
svn-id: r55806
2011-01-06AGI: Rewrote predictive code matcherMax Horn
The new code is simpler, avoids a potential buffer overrun (by avoiding to to use a buffer in the first place), and hopefully has slightly more sane matching properties. svn-id: r55135
2011-01-05AGI: cleanupMax Horn
svn-id: r55124
2010-12-07DEBUG: Let GUI::Debugger::preEnter and postEnter (un)pause the engineMax Horn
svn-id: r54815
2010-11-19COMMON: Split common/stream.h into several headersMax Horn
svn-id: r54385
2010-11-19ALL: Push down deps on stream.h from .h to .cpp filesMax Horn
svn-id: r54358
2010-11-07COMMON: Rename and tweak MD5 functionsMax Horn
* names now comply to our naming conventions * the function computeStreamMD5AsString which computes the MD5 as a hex string now returns it as a Common::String * add doxygen comments svn-id: r54121
2010-11-01ENGINES: Replace many printfs by warning/debug/debugNMax Horn
svn-id: r54031
2010-11-01ENGINES: Get rid of some (f)printfsMax Horn
svn-id: r54011
2010-10-27AGI: Add note about AgiEngine::parseFeaturesMax Horn
svn-id: r53872
2010-10-26AGI: Fix memory leak in AgiEngine::parseFeatures()Max Horn
svn-id: r53869
2010-10-26AGI: Replace report() macro by debug() / warning()Max Horn
This makes AGI quite a bit less noisy by default. svn-id: r53868
2010-10-23ALL: Fix indention (whitespaces -> tabs)Max Horn
svn-id: r53738
2010-10-15ENGINES: Enhance namespace comments a bitMax Horn
svn-id: r53484
2010-10-15AGI: Fix some code analysis warnings (bug #3087825)Eugene Sandulenko
svn-id: r53470
2010-10-12AGI: Fix bug #3017908 with MIDI musicEugene Sandulenko
Bug #3017908: "AGI: No music with the new MIDI patch" Thanks to Raziel^ for pinpointing the bug. svn-id: r53166
2010-10-12JANITORIAL: Cleanup (mostly whitespace)Torbjörn Andersson
svn-id: r53161
2010-10-11AGI: Fix one more strncpy/strncat issueWillem Jan Palenstijn
svn-id: r53148
2010-10-11AGI: Fix possible buffer overflow.Johannes Schickel
This is based on patch #3085298 "overflows in agi and parallaction". svn-id: r53147
2010-10-03AGI: Properly detect the autosave slot in the save dialogTorbjörn Andersson
Forward-ported from branch. Let's do this the easy way for now, even if I'm not sure why the save dialog shows the autosave slot anyway. svn-id: r52997
2010-09-26AGI: Fix bug in cmd_cancel_line()Torbjörn Andersson
We have to update cursor position, not just terminate the input buffer. This makes Ctrl-C work as intended, which fixes one half of bug #3054184 ("SQ1 AGI: keyboard special keys are not functioning properly"). I'm not sure if the second half actually is a bug. svn-id: r52899
2010-09-25AGI: Fix C64 AGI picturesMatthew Hoops
The initial screen color needs to be 0 and not 0xf for these. Winnie C64/Apple II should be completable now, with some graphical glitches and palette problems. svn-id: r52881
2010-09-22AGI: Fix for Bug #3067263 "SQ2: ScummVM hanging on the inventory screen"David Turner
This was due to a loop in AgiEngine::selectItems(int n), which lacked a check that the engine was quitting or restarting. svn-id: r52856
2010-09-21AGI: Deconfusify the AGI music driverTorbjörn Andersson
(After a brief discussion with sev.) AdLib is now the old Sarien sound, PCjr is the new PCjr emulation. PCjr is still the default; we don't need to ask getMusicType() how to get there. svn-id: r52838
2010-09-21AGI: Changed meaning of pcjr sound device. Now it is Sarien emuEugene Sandulenko
Music drivers: default: proper Tandy/PCJr adlib: proper Tandy/PCJr pcjr: old Sarien emu amiga: old Sarien emu in Amiga mode pcspk: Sarien emu in PCSpk mode (quite wrong) midi: 4 channel MIDI svn-id: r52836
2010-09-20AGI: Fix bug #3061578: AGI: PCjr Mode Not Default for DOS GamesEugene Sandulenko
svn-id: r52831
2010-09-18JANITORIAL: Removed most punctuation at end of warning() and error()Torbjörn Andersson
Our warning() and error() functions always add an exclamation mark to the end of the message anyway. svn-id: r52791
2010-09-16AGI: Initialise PCjr emulator channels on creationTorbjörn Andersson
Because chanGen() gets called very early, and sometimes it crashes ScummVM as soon as the game starts. Actually, it's probably enough to initialise a couple of fields in _tchannel[], but I figured it couldn't hurt to clear all of _channel[] and _tchannel[]. svn-id: r52741
2010-09-15MIDI: Send a reset MIDI device signal on startup.Johannes Schickel
This is currently done in the engine code. I adapted AGI, AGOS, DRACI, GROOVIE, LURE, MADE, QUEEN, SAGA, SKY, TINSEL and TOUCHE to send a reset device on startup. The sound output still works fine (started up a game from every engine), so this should hopefully not introduce any regressions. As far as I can tell it seems that SCUMM does send a proper device reset, so I did not touch it. KYRA only sends a proper reset for MT-32 currently. I am not sure about SCI though. This fixes bug #3066826 "SIMON: MIDI notes off when using RTL after SCI". svn-id: r52736
2010-09-14AGI: Fix compilation.Travis Howell
svn-id: r52719
2010-09-14AGI: Improve support for MT-32 in the MIDI output.Johannes Schickel
Formerly the AGI MIDI code did not setup the channel mask properly, in case "native_mt32" was set. This resulted in one missing channel (i.e. channel 0), since the MT-32 only responds to data for channels 1-9. svn-id: r52718
2010-08-25AGI: Respect mute settingEugene Sandulenko
svn-id: r52373
2010-08-25AGI: Fix bug #3034370Eugene Sandulenko
Bug #3034370: "Manhunter: New York keyboard unresponsive". Actually the keyboard was made responsive after June implementation of set.key, still the game speed was increasing. Fixed that too. svn-id: r52369
2010-08-25AGI: Reset controllers on game restartEugene Sandulenko
svn-id: r52368
2010-08-24AGI: Fix bug #3017908: "AGI: No music with the new MIDI patch"Eugene Sandulenko
Fixed by performing proper MIDI initialization. svn-id: r52332