Commit Graph

858 Commits

Author SHA1 Message Date
Torbjörn Andersson
8d297f065a AGI: Properly detect the autosave slot in the save dialog
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-10-03 18:38:38 +00:00
Torbjörn Andersson
4543855eca AGI: Fix bug in cmd_cancel_line()
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-26 11:20:55 +00:00
Matthew Hoops
d4504a3f3a AGI: Fix C64 AGI pictures
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-25 14:28:48 +00:00
David Turner
4b7a9b29fe AGI: Fix for Bug #3067263 "SQ2: ScummVM hanging on the inventory screen"
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-22 20:05:10 +00:00
Torbjörn Andersson
f994deb4ee AGI: Deconfusify the AGI music driver
(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-21 06:05:27 +00:00
Eugene Sandulenko
d43ff54a08 AGI: Changed meaning of pcjr sound device. Now it is Sarien emu
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-21 05:36:51 +00:00
Eugene Sandulenko
763c089d06 AGI: Fix bug #3061578: AGI: PCjr Mode Not Default for DOS Games
svn-id: r52831
2010-09-20 21:17:49 +00:00
Torbjörn Andersson
c91a07229a JANITORIAL: Removed most punctuation at end of warning() and error()
Our warning() and error() functions always add an exclamation mark
to the end of the message anyway.

svn-id: r52791
2010-09-18 10:55:16 +00:00
Torbjörn Andersson
df91686a36 AGI: Initialise PCjr emulator channels on creation
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-16 04:43:49 +00:00
Johannes Schickel
6588398ce6 MIDI: Send a reset MIDI device signal on startup.
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-15 22:00:20 +00:00
Travis Howell
f7fa335a1b AGI: Fix compilation.
svn-id: r52719
2010-09-14 00:47:26 +00:00
Johannes Schickel
efc13c42b2 AGI: Improve support for MT-32 in the MIDI output.
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-09-14 00:44:41 +00:00
Eugene Sandulenko
fcdb349fa2 AGI: Respect mute setting
svn-id: r52373
2010-08-25 07:41:14 +00:00
Eugene Sandulenko
349b89adce AGI: Fix bug #3034370
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-25 07:39:50 +00:00
Eugene Sandulenko
30d8dda867 AGI: Reset controllers on game restart
svn-id: r52368
2010-08-25 07:39:31 +00:00
Eugene Sandulenko
663a606602 AGI: Fix bug #3017908: "AGI: No music with the new MIDI patch"
Fixed by performing proper MIDI initialization.

svn-id: r52332
2010-08-24 12:41:56 +00:00
Eugene Sandulenko
756d5e2847 AGI: Fix valgrind warning
svn-id: r51312
2010-07-26 14:22:16 +00:00
Eugene Sandulenko
e4bc0c3a18 AGI: Fix crash on exit thanks to valgrind
svn-id: r51311
2010-07-26 14:21:59 +00:00
Eugene Sandulenko
aea09cb3a0 AGI: Fix spelling and formatting
svn-id: r51310
2010-07-26 14:21:18 +00:00
Eugene Sandulenko
afc872cba8 AGI: Fix bug #3017911
Bug #3017911: "AGI (Fan): SQ0 - Ego flickering". It is a regression from r49745,
as it appeared, some of the screen updates were too much.

svn-id: r51223
2010-07-23 21:11:56 +00:00
Max Horn
1d4c82885d DEBUGGER: Simplify how our console debugger works / is used
* Remove _isAttached member var and isAttached method
* Engines now always call the onFrame method; whether it does
  something is decided by the debugger class resp. its subclasses
* Make detach() protected instead of private, so that subclasses
  can invoke it
* Remove _detach_now member var (call detach() instead).
* Rename _frame_countdown to _frameCountdown and properly
  document it.
* Add more doxygen comments
* Cleanup

svn-id: r50963
2010-07-17 18:38:42 +00:00
Johannes Schickel
e75eee21e3 Use "true" instead of "1" in if statements to make clang a bit more happier with -Werror.
svn-id: r50943
2010-07-16 21:50:12 +00:00
Torbjörn Andersson
bde1cbd785 Cleanup.
svn-id: r50928
2010-07-16 03:34:25 +00:00
Matthew Hoops
6c22d599ec Fix non-PCSPK sound types in AGI.
svn-id: r50891
2010-07-14 17:04:53 +00:00
Filippos Karapetis
4304a414ab AGI: Removed the deprecated (and confusing) getGameId() function inside the AgiEngine class, and fixed a related bug, too
svn-id: r50607
2010-07-02 23:12:17 +00:00
Filippos Karapetis
188f8d9a11 AGI: Fixed bug #3017905 - "AGI: GR - Crash on start". A free() was done on an already freed reference
svn-id: r50606
2010-07-02 22:55:56 +00:00
Max Horn
bbad3f333a Patch #1956501: "GUI/LAUNCHER: Midi device selection"
svn-id: r50128
2010-06-21 21:36:36 +00:00
Max Horn
49448af6cb AGI: Turn some more AGI static functions into AgiEngine methods
svn-id: r50127
2010-06-21 21:34:06 +00:00
Max Horn
c7a9865a73 AGI: Change a static var to member var AgiEngine::_lastTickTimer
svn-id: r50126
2010-06-21 21:33:45 +00:00
Max Horn
e7da62763e AGI: Turn timerHack and curLogic into AgiEngine members; get rid of some #defines
svn-id: r50125
2010-06-21 21:33:22 +00:00
Max Horn
df569a6c82 AGI: Change AGI commands/opcodes to member methods
svn-id: r50124
2010-06-21 21:32:56 +00:00
Torbjörn Andersson
41990883bf Don't go into "menu input mode" unless the game currently allows the menus to
be displayed. I hope this is the correct fix to keep Police Quest 1 from
hanging if you press Escape while reading the newspaper in the briefing room.

svn-id: r50072
2010-06-20 09:51:11 +00:00
Max Horn
32668b553f AGI: Get rid of GID_SQ0
svn-id: r50049
2010-06-19 11:08:41 +00:00
Max Horn
0c93154eb9 AGI: Fix detection of AGI Tetris and Caitlyn's Destiny
svn-id: r50048
2010-06-19 11:08:16 +00:00
Max Horn
da28fde4c6 AGI: Change some #defines to enums
svn-id: r50033
2010-06-18 22:07:32 +00:00
Max Horn
7a8b8c88ae AGI: cleanup
svn-id: r50032
2010-06-18 22:06:56 +00:00
Max Horn
e5fcbc0c3a AGI: Fix serguei1/serguei2/sqx detection
svn-id: r50031
2010-06-18 22:06:31 +00:00
Torbjörn Andersson
93df097f39 Added the same quit/restart test to print() as we have in so many other places.
This makes it easier to quit the game during the text box in the King's Quest 3
into, and probably other places as well.

svn-id: r49881
2010-06-15 18:17:51 +00:00
Willem Jan Palenstijn
7c7054dbd1 Remove unnecessary svn:executable properties
svn-id: r49870
2010-06-15 17:14:38 +00:00
Max Horn
e62169c383 AGI: Specify bug reference for workaround
svn-id: r49845
2010-06-15 12:34:12 +00:00
Max Horn
651e2760a3 Fix spelling, cleanup
svn-id: r49843
2010-06-15 12:33:20 +00:00
Eugene Sandulenko
44a39ffbc6 AdvancedDetector: Add new parameter directoryGlobs.
Without this parameter mass detection gave tons of false alarms.
Use globbing for narrowing down the depth search.

svn-id: r49788
2010-06-15 10:59:23 +00:00
Eugene Sandulenko
2bcafcb02d Sound: add PCJR as a pseudodriver.
Since AGI distinguishes between PCSPK and PCJR/Tandy, make it as a
pseudodriver.

svn-id: r49782
2010-06-15 10:55:31 +00:00
Eugene Sandulenko
eef983c2c6 AGI: enable MIDI in options since now there are ways to play it.
svn-id: r49781
2010-06-15 10:55:07 +00:00
Eugene Sandulenko
09b776ad1f AGI: Made proper Tandy emulator default for PC games.
svn-id: r49760
2010-06-15 10:45:14 +00:00
Eugene Sandulenko
db6673c408 AGI: rearranged class methods a bit and cleanup.
svn-id: r49758
2010-06-15 10:38:39 +00:00
Eugene Sandulenko
ceb2909e0a AGI: Split all sound generators into separate modules.
Now the sound subsystem of the engine finally is possible to grasp.
Also now it is obvious why CoCo3 sounds are not functioning.

svn-id: r49757
2010-06-15 10:36:54 +00:00
Eugene Sandulenko
6903fc7a07 AGI: Implement FR #2813133.
FR #2813133: "AGI: Proper Tandy 3-Voice/IBM PCjr Sound Support".
Add proper Tandy music. Heavily based on NAGI source, thus attached
its X11 license.

To run it now use -e pcjr. Old one is still default for adlib but
most likely will be changed in the future.

Also lied ground for further separation of different sound generators.

svn-id: r49755
2010-06-15 10:36:10 +00:00
Eugene Sandulenko
85d8b4f5d8 AGI: Make sure that sound variable is reset once music is stopped.
svn-id: r49754
2010-06-15 10:35:42 +00:00
Eugene Sandulenko
c7e9b620ee AGI: properly setup Sound var.
svn-id: r49752
2010-06-15 10:35:10 +00:00