22952 Commits

Author SHA1 Message Date
Eugene Sandulenko
3cb41b5dfc AGI: Checked V1 instructions till 0x2c 2011-08-13 23:27:32 +01:00
Eugene Sandulenko
be9c5c0427 AGI: Checked V1 instructions till 0x20 2011-08-13 23:27:29 +01:00
Eugene Sandulenko
3fb50b815e AGI: Further work on v1 opcode difference 2011-08-13 23:27:27 +01:00
Jussi Pitkanen
af691e46c4 AGI: Updates to V1 instruction table, plus an outcommented experiment
The experiment tries to implement the program control of the V1 interpreter.
Maybe it is better to add another method for doing that once the workings of
it are more clear.
2011-08-13 23:27:24 +01:00
Jussi Pitkanen
1dbe5bfccf AGI: Implement loader for V1 "object" file 2011-08-13 23:27:22 +01:00
Jussi Pitkanen
d2f9087f20 AGI: Fix warning messages about undefined opcodes 2011-08-13 23:27:20 +01:00
Jussi Pitkanen
e4a1193d22 AGI: Add last undefined V1 test command that tests if a bit of var is set
Also fix skipInstruction() for V1.
2011-08-13 23:27:17 +01:00
Jussi Pitkanen
2289ba88b6 AGI: Rename cmd_what_ever to cmdWhatEver 2011-08-13 23:27:15 +01:00
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