Commit Graph

22806 Commits

Author SHA1 Message Date
Jussi Pitkanen
09f937126e AGI: Fix and clarify IF expression handling 2011-08-13 23:27:13 +01:00
Jussi Pitkanen
9bc25749d6 AGI: Implement V1 SAID test commands
Yes, V1 has three versions of SAID, for one, two and three arguments.

Also add a few corrections to V1 instruction tables.
2011-08-13 23:27:10 +01:00
Jussi Pitkanen
d02251fa4d AGI: Formatting (+ a few debug prints) 2011-08-13 23:27:08 +01:00
Jussi Pitkanen
368a3722a3 AGI: Implement loader for V1 words.tok dictionary 2011-08-13 23:27:05 +01:00
Jussi Pitkanen
c731f1f48c AGI: Implement common internal dictionary for different words.tok formats
Preparations for V1 words.tok support.
2011-08-13 23:27:03 +01:00
Jussi Pitkanen
0b6b670803 AGI: Add still incomplete V1 instruction tables 2011-08-13 23:27:00 +01:00
Jussi Pitkanen
04353038ae AGI: Add loader and detection for Black Cauldron booter 2011-08-13 23:26:58 +01:00
Jussi Pitkanen
d273f58b3c AGI: AgiLoader_v1: Precalculate final resource offsets
That is, calculate the final offsets when loading the resource directories,
and when loading the resource simply seek into the disk image file.
2011-08-13 23:26:56 +01:00
Jussi Pitkanen
41dccce00c AGI: Execute test commands only when needed 2011-08-13 23:26:53 +01:00
Jussi Pitkanen
a4e0cd53f0 AGI: Refactor interpreter core (somewhat akin to SCI)
* Instruction tables are now defined in opcodes.{cpp,h}.

* Move opcode handlers from Agi::AgiEngine to Agi
* Opcode handlers take as parameter a pointer to AGI state (AgiGame)
2011-08-13 23:26:51 +01:00
Jussi Pitkanen
e1153cf11f AGI: Comment cleanup 2011-08-13 23:26:48 +01:00
Jussi Pitkanen
eb797b692f AGI: Simplify handling of IF conditions
Execute all test commands in a condition even when not strictly needed.
2011-08-13 23:26:46 +01:00
Jussi Pitkanen
7a80c4cdb3 AGI: Fix row duration in V1 SOUND resource player 2011-08-13 23:26:44 +01:00
Jussi Pitkanen
1507fe4e79 AGI: Fix detection of IIgs sample resources 2011-08-13 23:26:41 +01:00
Jussi Pitkanen
d8e1b392d2 AGI: Use a jump table for test commands instead of switch/case
Preparations for V1 support.
2011-08-13 23:26:39 +01:00
Jussi Pitkanen
24bb5da228 AGI: Add a layer of abstraction between the sound chip and the two players 2011-08-13 23:26:36 +01:00
Jussi Pitkanen
8183103777 AGI: Simplify sector offset calculation 2011-08-13 23:26:34 +01:00
Jussi Pitkanen
7405140474 AGI: Cleanup 2011-08-13 23:26:32 +01:00
Jussi Pitkanen
4d4a558f7b AGI: Do not try to pass filenames of disk images from the detector to engine 2011-08-13 23:26:29 +01:00
Jussi Pitkanen
1f680ecbc8 AGI: Detect the end of V1 sound resources correctly, fixing crashes 2011-08-13 23:26:27 +01:00
Jussi Pitkanen
010315dc0c AGI: Implement resource loader for the DDP booter game 2011-08-13 23:26:24 +01:00
Jussi Pitkanen
3fd26de379 AGI: Detect the bootable floppy version of Donald Duck's Playground
Also create a framework into which more booter games can be added.
2011-08-13 23:26:22 +01:00
Jussi Pitkanen
ab784944ea AGI: Implement note fetch routine for AGI v2.001 sound resources
I suspect this is the format for AGI V1 sound resources as well. It is
currently implemented by splitting getNextNote() to getNextNote_v2() and
getNextNote_v1(). Since the V1 format consists of simple register values
to the sound chip in PCjr, this could probably be made more cleanly by
refactoring the code to resemble the chip more closely, so that its state
is updated by writing to the registers.
2011-08-13 23:26:19 +01:00
Alyssa Milburn
a6acf42e74 COMPOSER: Support reading V1 buttons. 2011-08-13 22:15:23 +02:00
Alyssa Milburn
bdc24b6565 COMPOSER: Split out filename mangling into a separate function. 2011-08-13 22:11:27 +02:00
Alyssa Milburn
c3339c15fa COMPOSER: Tweak button z-ordering slightly.
This fixes agreeing to make ice cream sundaes in Gregory.
2011-08-13 22:08:42 +02:00
Filippos Karapetis
21b2a7064f Merge pull request #63 from tsoliman/detection-tables
Some missing ADGF_CD and ADGF_UNSTABLE flags
2011-08-13 12:24:30 -07:00
Bastien Bouclet
0bbd43eb32 MOHAWK: Implement Myst demo opcodes 298 and 299, sneak preview speech. 2011-08-13 20:22:27 +02:00
Paul Gilbert
2dbd858186 TSAGE: Fix crash when exiting whilst a palette rotation is active 2011-08-13 21:14:48 +10:00
Paul Gilbert
2a69bcbeba CGE: Fix backslashes in module.mk 2011-08-13 19:56:43 +10:00
Paul Gilbert
e9c8232da8 TSAGE: Split up the hard-coded logic files for Ringworld and Blue Force into separate sub-folderes 2011-08-13 19:49:54 +10:00
Matthew Hoops
c109a60a92 SCUMM: Implement basic basketball court data parsing 2011-08-12 16:41:48 -04:00
Alyssa Milburn
b631104fd0 COMPOSER: Catch up with animations if we're starved of CPU time. 2011-08-12 21:16:47 +02:00
Alyssa Milburn
d13b967376 MOHAWK: Yet more LB detection entries. 2011-08-12 21:11:39 +02:00
Alyssa Milburn
5d416e7903 COMPOSER: Don't ignore setCursorVisible when there's no cursor yet. 2011-08-12 20:58:08 +02:00
Matthew Hoops
26befa4b40 SCUMM: Implement basketball u32 op 1012
The game no longer divides by zero when starting a match and the court is now visible.
2011-08-12 09:29:37 -04:00
Matthew Hoops
30d0010b9e MOHAWK: Stub off xflies 2011-08-11 17:49:01 -04:00
Bertrand Augereau
b08b31eed3 DREAMWEB: 'setuptimedtemp' ported to C++ 2011-08-11 22:01:53 +02:00
Matthew Hoops
bb3b1a2b75 MOHAWK: Error out on any unknown Riven stack variables 2011-08-11 13:14:04 -04:00
Matthew Hoops
1737190a71 MOHAWK: Implement the rest of the sunners code 2011-08-11 13:14:03 -04:00
Bertrand Augereau
2250c10ffe DREAMWEB: 'dumptimedtext' ported to C++ 2011-08-11 15:29:29 +02:00
Bertrand Augereau
701776a73a DREAMWEB: 'multiget' and 'multiput' don't dirty segments anymore 2011-08-11 15:18:41 +02:00
Paul Gilbert
744f04bf50 TSAGE: Implemented new Globals for Blue Force, and beginnings of implementation of Scene 100 (Title Screen) 2011-08-11 22:05:44 +10:00
Paul Gilbert
c903411036 TSAGE: Added support for reverse palette fading 2011-08-11 22:03:57 +10:00
Bertrand Augereau
cea283644f DREAMWEB: 'getreelstart' ported to C++ 2011-08-11 13:29:33 +02:00
Alyssa Milburn
76a18b247b COMPOSER: Stop kBitmapSpp32 writing off the end of the buffer.
This fixes corruption when there's only one pixel left to
decompress, but two pixels available in the compressed data.
Also, improve error checking in the bitmap decompression code.
2011-08-11 13:15:18 +02:00
Bertrand Augereau
a8c619d7ad DREAMWEB: 'dealwithspecial' has a better signature 2011-08-11 12:33:33 +02:00
Bertrand Augereau
b6a8e2e98c DREAMWEB: Misc cleanings in stubs.cpp 2011-08-11 12:26:30 +02:00
Bertrand Augereau
d5a184e2f0 DREAMWEB: 'showframe' takes a Frame 2011-08-11 03:30:41 +02:00
Bertrand Augereau
c2e9f01ae4 DREAMWEB: A stub has become useless 2011-08-11 03:23:22 +02:00
Bertrand Augereau
707c6ed01c DREAMWEB: 'printslow' API improved 2011-08-11 03:19:51 +02:00
Bertrand Augereau
b701deed4f DREAMWEB: Less ds pollution in 'printslow' and 'printdirect' 2011-08-11 02:30:25 +02:00
Bertrand Augereau
3e9773a858 DREAMWEB: Stricter typing in the printing subsystem 2011-08-11 02:27:41 +02:00
Strangerke
2739d8fa20 COMPOSER: Add detection for Dragor FR and Gregory FR 2011-08-10 21:23:33 +02:00
Bertrand Augereau
a710b32c61 DREAMWEB: Removed useless push/pops 2011-08-10 17:35:55 +02:00
Bertrand Augereau
80f712b5b9 DREAMWEB: 'multidump' doesn't dirty ds anymore 2011-08-10 17:34:41 +02:00
Bertrand Augereau
81a522e03e DREAMWEB: Improvement of 'printslow' signature 2011-08-10 17:20:34 +02:00
Bertrand Augereau
78e337203d DREAMWEB: Improvement of 'printdirect' signature and register usage 2011-08-10 17:12:26 +02:00
Bertrand Augereau
d8cbea02f9 DREAMWEB: Improvement of 'getnumber' signature 2011-08-10 17:03:02 +02:00
Bertrand Augereau
edbec1cccb DREAMWEB: Improvement of 'printchar' signature 2011-08-10 16:54:23 +02:00
Matthew Hoops
a9345c0cc3 SCUMM: Remove unused soccer u32 code 2011-08-10 10:12:56 -04:00
Johannes Schickel
74560278b2 SCUMM: Change CMS sfx methods to use its own register set.
This is now like in the original and helps comparing register writes against
DOSBox's behavior.
2011-08-10 00:00:12 +02:00
Johannes Schickel
37a34e6da2 SCUMM: Do not pack structs in CMS code. 2011-08-10 00:00:06 +02:00
Bertrand Augereau
4ad8b54241 DREAMWEB: 'checkdest' ported to C++ 2011-08-09 22:40:03 +02:00
Bertrand Augereau
3407f2803a DREAMWEB: 'autosetwalk' ported to C++ 2011-08-09 22:40:03 +02:00
Matthew Hoops
acb0a36b6e Merge remote branch 'upstream/master' into soccer 2011-08-09 16:26:25 -04:00
Matthew Hoops
b087acd793 SCUMM: Fix bug in soccer u32 op_1014_sub3 2011-08-09 16:25:57 -04:00
Travis Howell
05c0c8e98b SCUMM: Backyard Soccer 2004 uses a different INI setting to disable printing. 2011-08-09 11:46:50 +10:00
Matthew Hoops
677aa78370 Merge remote branch 'upstream/master' into soccer 2011-08-08 21:36:50 -04:00
Matthew Hoops
dbceb0a77d SCUMM: Add some HE72 differences to mouse click handling
Backyard Soccer at least requires this to have input during gameplay.
2011-08-08 21:15:28 -04:00
Ori Avtalion
c3cfdd36a5 AGOS: Fix struct/class mismatch 2011-08-09 00:52:33 +03:00
Max Horn
529919e20b SCI: Remove dead code 2011-08-08 20:33:42 +02:00
Max Horn
321c0ce027 TINSEL: Code formatting 2011-08-08 20:33:33 +02:00
Johannes Schickel
fdb2f735dc SCUMM: Remove unneeded check for CMS in readSoundResource.
CMS support is only available in games using readSoundResourceSmallHeader.
2011-08-08 20:15:24 +02:00
Matthew Hoops
9c52724ce5 SCUMM: Fix another original soccer u32 difference
Soccer is slightly more playable, but clicking does nothing most of the time.
2011-08-08 00:59:09 -04:00
Travis Howell
99d5087918 SCUMM: Set default Benchmark speed in Moonbase Commander, based on the original Moonbase.ini. 2011-08-08 14:46:12 +10:00
Travis Howell
c87ff89b4a SCUMM: Update stub in arrayOps for Moonbase Commander. 2011-08-08 13:50:47 +10:00
Travis Howell
905e9bc3ed SCUMM: Add sprite code difference in Moonbase Commander. 2011-08-08 11:41:06 +10:00
Matthew Hoops
c05c42ecc6 Merge remote branch 'upstream/master' into soccer 2011-08-07 20:11:27 -04:00
Travis Howell
45dc303159 SCUMM: Fix endian issue in captureWizPolygon. 2011-08-08 09:48:31 +10:00
Bastien Bouclet
2345228643 MOHAWK: Add specific cursor handling for Myst demo 2011-08-07 16:54:20 +02:00
Bastien Bouclet
216d3c5cef MOHAWK: Leaving from the slides should go to the information screens in Myst Demo. 2011-08-07 16:54:20 +02:00
Bastien Bouclet
b15ad58f11 MOHAWK: Disable zip mode in Myst demo 2011-08-07 16:54:19 +02:00
Johannes Schickel
acffd12d07 SCUMM: Further clean up of the CMS code. 2011-08-07 16:49:25 +02:00
Johannes Schickel
26b6fd5930 SCUMM: Clean up CMS code some more. 2011-08-07 16:15:46 +02:00
Johannes Schickel
88354bed23 SCUMM: Mark some overwritten methods as virtual. 2011-08-07 15:58:27 +02:00
Johannes Schickel
6bd9cd33d9 SCUMM: Cleanup CMS code a bit. 2011-08-07 15:56:49 +02:00
Christoph Mallon
e35b4f20c1 GRAPHICS: Simplify the interface of Graphics::loadThumbnail().
Now it returns the Surface, so the caller does not need to create one and pass it.
2011-08-07 15:19:09 +02:00
Christoph Mallon
b4b6ce0954 ALL: Use Graphics::skipThumbnail() where appropriate. 2011-08-07 15:19:09 +02:00
Christoph Mallon
3ee307e6b3 KYRA: Simplify initializing a buffer with a string. 2011-08-07 15:19:08 +02:00
Christoph Mallon
ab80b20a30 COMMON: Replace x + ARRAYSIZE(x) by the simpler ARRAYEND(x). 2011-08-07 15:19:08 +02:00
Christoph Mallon
a5a8833c05 COMMON: Add DisposablePtr<T>, which replaces many repeated implementations of a dispose flag. 2011-08-07 15:19:08 +02:00
Christoph Mallon
a5675c3dbe TEENAGENT: Pass streams as references. 2011-08-07 15:19:08 +02:00
Christoph Mallon
0e6751372a SCI: Simplify allocation of ResourceManager. 2011-08-07 15:19:08 +02:00
Christoph Mallon
f3afb32ee6 SCI: Remove unnecessary cast. 2011-08-07 15:19:08 +02:00
Christoph Mallon
5f4d83c38d AGOS: Correct off-by-one error in range check for setting the debug level. 2011-08-07 15:19:07 +02:00
Christoph Mallon
0a458019b3 AGOS: Replace if-cascade by switch. 2011-08-07 15:19:07 +02:00
Christoph Mallon
715c07930d CRUISE: Replace casts and offset calculations for memory debugger by a simple struct. 2011-08-07 15:19:07 +02:00
Christoph Mallon
08ad90edf6 TSAGE: Reduce scope of variable. 2011-08-07 15:19:07 +02:00
Paul Gilbert
680ef79726 TSAGE: Implemented title screen of Blue Force 2011-08-07 23:14:09 +10:00
Filippos Karapetis
e95bc9d7b0 SWORD25: Make sure that id is always initialized in playSoundEx() 2011-08-07 16:05:54 +03:00
Filippos Karapetis
5974fcd0c1 TINSEL: Use SAVEGAME_ID when getting savegame info, if a VM is instantiated 2011-08-07 15:10:17 +03:00
Christoph Mallon
23a0f5318c JANITORIAL: Remove trailing empty lines. 2011-08-07 13:53:33 +02:00
Christoph Mallon
bf580e6e6b JANITORIAL: Add missing NL at EOF. 2011-08-07 13:53:33 +02:00
Filippos Karapetis
2c9fdf0df7 TINSEL: Fixed deleting saved games from the launcher (bug #3387551) 2011-08-07 14:21:28 +03:00
Tarek Soliman
47f0ce2fa7 TSAGE: Flag Blue Force with ADGF_UNSTABLE 2011-08-06 23:34:44 -05:00
Tarek Soliman
2c3b7392b8 TSAGE: Flag CD titles with ADGF_CD 2011-08-06 23:33:23 -05:00
Tarek Soliman
a30c3697fb TINSEL: Flag CD titles with ADGF_CD 2011-08-06 23:33:15 -05:00
Tarek Soliman
40f765850f SAGA: Flag CD titles with ADGF_CD 2011-08-06 23:33:04 -05:00
Tarek Soliman
45fa59598e MADE: Flag CD titles with ADGF_CD 2011-08-06 23:32:52 -05:00
Tarek Soliman
79efb47cf6 AGOS: Flag CD titles with ADGF_CD 2011-08-06 23:32:37 -05:00
Paul Gilbert
622f8a166c TSAGE: Changed game Id from 'ring' to 'ringworld'
This should help avoid name conflicts in the future with the Ring engine
2011-08-07 11:07:02 +10:00
Matthew Hoops
e43a6671fc SCUMM: Fix some soccer u32 code in op_1011
Spotted by fuzzie
2011-08-06 15:54:11 -04:00
Littleboy
e978a6afb7 ENGINES: Use the new taskbar error notification methods in the engines defaultErrorHandler() 2011-08-06 15:27:43 -04:00
Matthew Hoops
605473d117 SCUMM: Add a few more notes to soccer u32 code 2011-08-06 13:08:56 -04:00
Matthew Hoops
6528f902fc SCUMM: Remove soccer editor-related u32 code
The built-in editor, while could potentially be a cool feature, seems incomplete and unusable. Room 4 (the editor room) in all three games is not accessible without jumping to it.
2011-08-06 13:02:43 -04:00
Alyssa Milburn
72160f53aa TSAGE: Remove incorrect endian-specific read in audio code. 2011-08-06 17:57:34 +02:00
Bastien Bouclet
3384f9146c KYRA: Don't loose the next event when leaving the text input event loop. 2011-08-06 15:48:12 +02:00
Eugene Sandulenko
192b245d51 SCUMM: Fix compilation 2011-08-06 11:39:37 +01:00
Eugene Sandulenko
54f5383356 TASKBAR: Set taskbar to error on engine error() 2011-08-06 11:30:49 +01:00
Eugene Sandulenko
0dafa7f80f ALL: Reduce audio/ header dependency 2011-08-06 11:30:42 +01:00
Eugene Sandulenko
6e795a89b0 AGOS: Reduced header dependency 2011-08-06 11:28:40 +01:00
Eugene Sandulenko
43c7b10566 LASTEXPRESS: Reduce header dependency 2011-08-06 11:28:37 +01:00
Eugene Sandulenko
78f1ea7690 OSYSTEM: extended installTimerProc() with timer ID parameter 2011-08-06 11:28:35 +01:00
Eugene Sandulenko
e72c2fae88 COMPOSER: Added detection entries for 2 more games 2011-08-06 11:28:32 +01:00
Eugene Sandulenko
c451ae639f SCUMM: Proper fix of Russian subtitles
Initial fix in 11a17b3 (r51211) led to chopped inventory items.
No idea why it does not work with our code, as it seems to match
the disassembly. Thus implementing this hackish workaround.
2011-08-06 11:28:30 +01:00
Paul Gilbert
4c89f4ac22 TSAGE: Fix compilation on AmigaOS4 2011-08-06 17:48:37 +10:00
Johannes Schickel
68b4873559 SCUMM: Properly reset midi channel voice mapping in CMS on new track.
This fixes an ugly dead lock in some cases.
2011-08-06 03:45:40 +02:00
Johannes Schickel
70a694ce43 SCUMM: Remove unneeded members in CMS class. 2011-08-06 03:28:42 +02:00
Johannes Schickel
018e304916 SCUMM: Slight cleanup in CMS code. 2011-08-06 03:28:42 +02:00
Johannes Schickel
5a0eb6ba60 SCUMM: Fix some valgrind warnings in CMS code. 2011-08-06 03:28:42 +02:00
Matthew Hoops
ed2563bf35 SCUMM: Mark pass as having CMS support 2011-08-05 18:03:42 -04:00
Matthew Hoops
836f3fa052 SCUMM: Mark monkey1 VGA floppy as having CMS support 2011-08-05 17:29:30 -04:00
Matthew Hoops
a63aaec46b SCUMM: Mark Indy3 VGA as having CMS support 2011-08-05 17:15:23 -04:00
Johannes Schickel
b86de198a0 SCUMM: Fix up CMS player implementation.
It's much better now and hopefully quite close to the original when it comes
to the music part. The intro music of Loom and Monkey Island 1 EGA sounds fine
to me now at least.
2011-08-05 22:58:50 +02:00
Matthew Hoops
bf841e1e94 SCUMM: Fix a few more bugs in soccer u32 op_1014_sub1
Thanks to fuzzie
2011-08-05 13:03:08 -04:00
Matthew Hoops
68f07efa95 SCUMM: Fix another typo in soccer u32 op_1014_sub1 2011-08-05 11:46:21 -04:00
Matthew Hoops
2b92f6df0f SCUMM: Fix minor logic bug in soccer u32 op_1014
Spotted by fuzzie
2011-08-05 11:29:06 -04:00
Matthew Hoops
3b3ab9a502 SCUMM: Add note to soccer u32 op_1011 about cursor scaling 2011-08-05 09:23:18 -04:00
Paul Gilbert
75ca55eaec TSAGE: Updated Ringworld detection entries to ADGF_TESTING 2011-08-05 19:03:12 +10:00
Alyssa Milburn
62a22b6293 COMPOSER: Fix a warning and an uninitialized value. 2011-08-04 21:50:17 +02:00
Matthew Hoops
51fc76acd4 SCUMM: Add notes on the unused soccer u32 opcodes
Might be nice to implement the soccer editor one day in the future, but it's definitely a secondary goal. In fact, I'm not even sure how to access it yet other than jumping to the room (4).
2011-08-04 11:02:11 -04:00
Paul Gilbert
7356b83faf M4: Fix identified assert calls that had file reads inside them 2011-08-04 22:37:30 +10:00
Bertrand Augereau
baa109f058 DREAMWEB: Less register usage in misc. places 2011-08-04 11:13:59 +02:00
Bertrand Augereau
5bf9c42c45 DREAMWEB: Deprecated functions suppressed 2011-08-04 11:07:02 +02:00
Bertrand Augereau
a3c8c1334b DREAMWEB: Helper function to acquire a temporary segment ref to avoid ds and es pollution 2011-08-04 11:03:08 +02:00
Bertrand Augereau
3427d07de0 DREAMWEB: 'doblocks' ported to C++ 2011-08-04 10:45:43 +02:00
Paul Gilbert
5f2402bd36 TSAGE: Fix incorrect sample data being used in _soPlaySound2.
This fixes the playback of the Intruder Alert message in Scene #95.
2011-08-04 08:35:24 +10:00
Bertrand Augereau
8ee7ed1066 DREAMWEB: Less register usage in 'plotreel' 2011-08-03 18:39:24 +02:00
Matthew Hoops
2ea594de83 SCUMM: Fix shadows in soccer
Spotted by fuzzie
2011-08-03 11:57:18 -04:00