Commit Graph

6059 Commits

Author SHA1 Message Date
D G Turner
d83382a9ef SCI: Add extra comments to new detection entries. No functional changes. 2012-08-07 19:27:22 +01:00
D G Turner
611905aa97 SCI: Add missing QFG1 detection entries from bug #3554611. 2012-08-07 11:28:10 +01:00
D G Turner
aedd0d2a16 SCI: Add missing QFG2 detection entry from bug #3554614. 2012-08-07 10:23:31 +01:00
Filippos Karapetis
259f262592 SCI: Add a workaround for a script bug in QFG4
Thanks to Charles for testing
2012-08-02 03:46:58 +03:00
Matthew Hoops
991710d0a1 VIDEO: Adapt QuickTimeDecoder to the AdvancedVideoDecoder API 2012-07-27 11:32:51 -04:00
Filippos Karapetis
831e1b27dc SCI: Add a workaround for a bug in Phantasmagoria 1 2012-07-27 01:31:12 +03:00
Filippos Karapetis
7eded163d8 SCI: Add support for kCD(0) with a parameter
It's now possible to start a chapter in Phantasmagoria 1
2012-07-27 01:30:37 +03:00
Filippos Karapetis
34d00f5936 SCI: Add some debug code to op_line 2012-07-26 11:06:52 +03:00
Filippos Karapetis
c0beaf2337 SCI: Differentiate between screen width and pitch
This properly addresses the odd screen width (630) in Phantasmagoria 1
2012-07-26 11:06:51 +03:00
Johannes Schickel
dc8d9f4c9f SCI: Fix delete[] formatting. 2012-07-25 21:11:45 +02:00
Filippos Karapetis
31f9e96aee SCI: Add a workaround for a script bug in QFG4 2012-07-25 12:14:33 +03:00
Filippos Karapetis
e7836beabb SCI: Silence some very chatty warnings
Also, add an example room where kRemapToGray is called
2012-07-25 12:13:35 +03:00
Filippos Karapetis
6ade0e1457 SCI: Expand an uninitialized read workaround for SQ6 2012-07-25 02:29:57 +03:00
Filippos Karapetis
55e508b91f SCI: Add a workaround for QFG4, screen 140 (character selection screen) 2012-07-25 01:32:34 +03:00
Filippos Karapetis
797dbfe506 SCI: Set the RemapByPercent palette initially
This needs to be performed because the screen palette might not change
after the call. Fixes the display of the bat in the character selection
screen in the full version of QFG4
2012-07-25 01:16:13 +03:00
Filippos Karapetis
537b1969bf SCI: Rewrite the color remapping code to support simultaneous effects
Fixes the torch in the full version of QFG4
2012-07-25 00:58:16 +03:00
Filippos Karapetis
37b209dac1 SCI: Refresh remapping by percent whenever the screen palette changes 2012-07-24 22:55:34 +03:00
Filippos Karapetis
fe3fb1873c SCI: Cleanup of the palette remapping code 2012-07-24 22:54:37 +03:00
Filippos Karapetis
6f35130204 SCI: More work on color remapping
More transparency/color mapping effects are now working (e.g. the
flashlight at the Gedde tomb in GK1, the rays of light at Schloss Ritter
in GK1, the torch in the QFG4 demo and the shadows in QFG4, PQ4 and KQ7)
2012-07-24 22:34:46 +03:00
Filippos Karapetis
3d395545cb SCI: Remove unused variables 2012-07-24 04:07:08 +03:00
Filippos Karapetis
bd281928cb SCI: Initial implementation of kRemapColors(kRemapByPercent)
Fixes some graphics glitches in the QFG4 demo and the menus of QFG4, by
implementing one of the transparency effects used mainly in SCI32.
Many thanks to fuzzie for her debugging info on QFG4 demo and to wjp for
his great help on the dissassembly
2012-07-24 03:53:44 +03:00
Filippos Karapetis
61e8fdbf1d SCI: Separate the early SCI11 version of kRemapColors from the SCI32 one 2012-07-24 00:18:31 +03:00
Matthew Hoops
d4231fda1c SCI: Rewrite RobotDecoder to use the AdvancedVideoDecoder API 2012-07-22 23:17:36 -04:00
Matthew Hoops
0f0c6f9354 VIDEO: Rewrite the AVI code to use AdvancedVideoDecoder
In addition to using the new API, it should theoretically support multiple audio and video tracks now but that has not been tested.
2012-07-22 14:13:20 -04:00
Matthew Hoops
7654b20362 VIDEO: Merge the three Fixed* VideoTrack classes
Avoids diamond inheritance, which makes it impossible to downcast without rtti
2012-07-22 14:11:11 -04:00
Matthew Hoops
e74c306a7f SCI: Switch SEQDecoder to using the new FixedDurationVideoTrack subclass 2012-07-21 14:43:08 -04:00
Matthew Hoops
fb1edcd4fe VIDEO: Add getWidth()/getHeight()/getPixelFormat() functions to VideoTrack
The default implementations of those functions in AdvancedVideoDecoder now call into them.
2012-07-21 12:40:16 -04:00
Matthew Hoops
a12b3ea2dd SCI: Move the SEQ code to the new VideoDecoder API 2012-07-20 20:52:58 -04:00
Filippos Karapetis
eba2ed99f8 SCI: Bugfix for kCreateTextBitmap(). Fixes the ComPost text in the SQ6 demo 2012-07-17 00:50:02 +03:00
Filippos Karapetis
49c76c835b SCI: Only skip text in room 100 in the SQ6 demo 2012-07-16 12:11:22 +03:00
Filippos Karapetis
59ea918745 SCI: Temporarily disable text display in the demo of SQ6 to stop crashes 2012-07-16 12:04:34 +03:00
Filippos Karapetis
1a90ca5ecd SCI: Handle all negative priority values. Fixes graphics in the SQ6 demo 2012-07-16 11:49:50 +03:00
Filippos Karapetis
2c5cf9f860 SCI: Properly detect the Polish version of KQ5
Thanks to jacek909 for the extra MD5 checksums of the Polish version.
This fixes bugs #2725722 (Polish version checksums) and #3536863
(SCI: KQ5 Floppy English detected as Polish)
2012-07-15 01:42:47 +03:00
Filippos Karapetis
078c09c13e SCI: Update comments in kGetAngleWorker() 2012-07-09 01:33:38 +03:00
Filippos Karapetis
b2fb2730d6 SCI: Also set the filename of the videoState struct when playing AVIs 2012-07-08 22:01:15 +03:00
Filippos Karapetis
262c7a1fb7 SCI: Fix a typo and add some comments to kGetAngleWorker() 2012-07-08 22:01:13 +03:00
Filippos Karapetis
50dc5009c8 SCI: Ignore another leftover script from KQ7 in the debugger 2012-07-08 22:01:11 +03:00
Filippos Karapetis
3b69816a7d SCI: Add another English floppy version of KQ5 (bug #3536863)
According to this bug report, there exists another English version
with the same file checksums as the vanilla English version, patched to
Polish. We need a better way of distinguishing the two versions. Until
we do, this is a duplicate entry of the Polish floppy version
2012-07-08 16:18:26 +03:00
Filippos Karapetis
10b3fdf247 SCI: Show information for correct file naming in the QFG4 import room
This information is shown in previous QFG versions, but it had to be
placed in a SCI32 graphics function in order to be shown in QFG4 too
2012-07-08 16:15:47 +03:00
Filippos Karapetis
2ef3f5e695 SCI: Update the virtual file selected in the QFG4 character import screen
This makes the character import screen in QFG4 functional, as the virtual
file index was never updated
2012-07-08 16:15:45 +03:00
Filippos Karapetis
4c43d6d85d SCI: Add a hack in kGetAngleWorker to fix bug #3540976
kGetAngle(Worker) has been implemented based on behavior observed
with a test program created with SCI Studio. However, the return values
have subtle differences from the original, which uses atan(). This
temporary hack will do for now till the implementation of kGetAngle is
done again. A simpler atan2-based implementation has also been added for
future reference
2012-07-08 16:15:43 +03:00
Filippos Karapetis
e4378d5bac SCI: Better handling for Phantasmagoria's odd screen size
Still not right, as the width isn't set
2012-07-06 13:17:04 +03:00
Filippos Karapetis
7513786296 SCI: Add a hack to handle the internal script resolution in Phantasmagoria 2012-07-06 12:11:50 +03:00
Filippos Karapetis
112f03390d SCI: Fix typo 2012-07-05 14:05:26 +03:00
Filippos Karapetis
4ced5ccf30 SCI: Handle calls from MessageState::outputString() to arrays
This happens during the intro of LSL6 hires (room 110)
2012-07-05 13:58:43 +03:00
Filippos Karapetis
fb215929ef SCI: Some updates to SCI32 kernel graphics functions
- Added a stub for kSetScroll, which sets the target picture immediately
for now
- Added an initial stub of kPalCycle (doesn't work correctly yet)
- Adjusted the signatures of kUpdateLine and kDeleteLine for LSL6
- Unmapped kSetHotRectangles again, with updated information on how it
is used in Phantasmagoria
2012-07-05 13:58:41 +03:00
Filippos Karapetis
d61c5ae529 SCI: make g_base_opcode_formats and SciOpcodes a bit more readable 2012-07-04 11:57:40 +03:00
Johannes Schickel
55d3223468 SCI: Fix spelling of Yamaha.
Thanks to somaen for noticing.
2012-07-04 02:02:58 +02:00
Filippos Karapetis
243ea1fa29 SCI: Add a check for invalid clip rectangles
Happens in QFG4, when starting a battle
2012-07-04 02:21:13 +03:00
Filippos Karapetis
5d3e22ae4f SCI: Some cleanup of the warnings in the SCI32 plane manipulation code 2012-07-04 02:21:11 +03:00
Filippos Karapetis
dc1a097e50 SCI: Make the debug message in kSetShowStyle more verbose 2012-07-04 02:21:09 +03:00
Filippos Karapetis
d74d211479 SCI: Mark the SetScroll and SetHotRectangles kernel functions as unused 2012-07-04 02:21:08 +03:00
Filippos Karapetis
a0ad504059 SCI: Update some kernel table related comments 2012-07-04 01:06:58 +03:00
Filippos Karapetis
d757b5b94a SCI: Update some version checks in kernelFrameout() to work with SCI3 too 2012-07-04 01:02:21 +03:00
Filippos Karapetis
43224076e7 SCI: Handle the autosave call of Torin's Passage 2012-07-04 01:02:19 +03:00
Filippos Karapetis
e0a3cfd21c SCI: FileIO subop 19 checks for directory validity
This is used in Torin's Passage and LSL7 when autosaving
2012-07-04 01:02:17 +03:00
Filippos Karapetis
72c59baf24 SCI: Merge and simplify the code that sets the kernel functions 2012-07-04 01:02:15 +03:00
Johannes Schickel
05bd736d16 SCI: Slight cleanup in querySaveMetaInfos. 2012-07-03 18:39:50 +02:00
Filippos Karapetis
5a47afea9e SCI: Move kGetWindowsOption together with the other misc kernel functions 2012-07-03 18:11:41 +03:00
Filippos Karapetis
9184a40fcc SCI: Fix incorrect game options for SQ4CD 2012-07-03 03:46:27 +03:00
Filippos Karapetis
c80429008f SCI: Remove an unnecessary warning and related FIXME comments
It's perfectly normal behavior to have locals with a smaller segment ID
than the ID of their respective script, e.g. when scripts are
uninstantiated and then instantiated again
2012-07-03 03:34:30 +03:00
Willem Jan Palenstijn
b091c0bd09 SCI: Remove unnecessary const-cast 2012-07-03 00:00:48 +02:00
Filippos Karapetis
f6e4312665 SCI: Add a hack for a bug in the script handling code
When resetting the segment manager, sometimes the locals block for a
script is placed in a segment smaller than the script itself. This
shouldn't be happening, but it isn't fatal, however it should be resolved
in a proper manner
2012-07-02 12:49:10 +03:00
Filippos Karapetis
44935117f4 SCI: Fix a workaround for an uninitialized variable in SQ4CD
This makes sure that the workaround works for subclassed objects as well,
such as "theProfessor" talker. Fixes bug #3539350 - "SCI: SQ4 CD -
Crash in sewer when text and speech enabled"
2012-07-02 12:49:08 +03:00
Filippos Karapetis
2c161796c5 Merge pull request #239 from bluegr/skipsavecompression
COMMON: Allow the savefile manager to create uncompressed saves
2012-07-01 11:08:08 -07:00
Filippos Karapetis
848575b826 SCI: Fix bug #3538418 in SQ4CD
Add a script patch for another speech/subtitles script, which handles
the babble icon shown in the quit/death dialogs (e.g. the two guys from
Andromeda in the quit dialog). Now, these dialogs have speech both in the
speech and the speech + subtitles modes
2012-06-28 04:06:58 +03:00
Filippos Karapetis
cc77688696 SCI: Remove an incorrect error check in validateExportFunc() 2012-06-28 03:29:34 +03:00
Filippos Karapetis
12b8534e2f SCI: Fix the detection entry for the Spanish version of KQ6
There is no Spanish CD version of KQ6, only floppy. This also seems to fix
the bug with the puzzle in the cliffs of wisdom (room 300)
2012-06-28 03:27:34 +03:00
Filippos Karapetis
152b340a9a SCI: Remove a music fading hack used for the intro of Longbow 2012-06-26 13:22:05 +03:00
Filippos Karapetis
7e66cbd468 SCI: Rename a parameter in validateExportFunc()
This ensures that it won't be confused with a function with the same name
2012-06-26 11:13:14 +03:00
Filippos Karapetis
99de89c974 SCI: Add a workaround for script bug #3537232
The bug in question is "SCI: SQ4 Floppy DOS title screen skipping too
quickly", and is caused by game scripts not waiting between palette calls
2012-06-24 19:55:28 +03:00
Filippos Karapetis
20b6770808 SCI: Change the program counter (PC) to be a 32-bit variable
This is needed for future support of large SCI3 scripts. The program
counter is isolated and does not interfere with other parts of the VM,
plus it does not get stored in saved games, so it's pretty straightforward
to convert
2012-06-23 21:45:26 +03:00
Filippos Karapetis
c1eb93bc5a SCI: Clean up validateExportFunc() and related functions
Also renamed some SCI3 related code to indicate when it's SCI3 specific
2012-06-23 21:45:24 +03:00
Filippos Karapetis
c075aafddb SCI: Add support for the debug opcode "file" in our script dissassembler
Also set the correct name for the debug opcode "line"
2012-06-23 21:45:22 +03:00
Filippos Karapetis
d78ed6f6ad SCI: Remove a duplicate sanity check 2012-06-23 21:45:20 +03:00
Filippos Karapetis
f06eb05e8c SCI: Implement kPlayVMD subop 23 (set palette range)
Fixes the wrong palette during video sequences in GK2 and the demo of RAMA
2012-06-23 21:45:18 +03:00
Filippos Karapetis
547fdfe12a SCI: Further cleanup of the frame drawing code 2012-06-22 09:43:44 +03:00
Filippos Karapetis
0812439603 SCI: Simplify the SCI32 coordinate adjustment code 2012-06-22 09:31:51 +03:00
Filippos Karapetis
99b1c73639 SCI: Fix silly typo
Thanks to digitall for spotting this
2012-06-21 22:57:00 +03:00
Filippos Karapetis
76f3f1b136 SCI: Fix warnings 2012-06-21 22:24:22 +03:00
Filippos Karapetis
105fb47c89 SCI: Add the graphics undithering game option back for QFG2 2012-06-21 12:26:00 +03:00
Filippos Karapetis
eb8230988a SCI: Don't compress exported heroes in the Quest for Glory games
This allows them to be used by other games in the series not supported
by ScummVM (i.e. QFG4, QFG5 and the fanmade AGS version of QFG2)
2012-06-21 12:15:25 +03:00
Johannes Schickel
4fb9bceabc Merge pull request #246 from lordhoto/osystem-void-buffers
OSYSTEM: Use void buffers for screen/overlay/mouse buffers and proper pitch values for overlay code
2012-06-20 08:02:26 -07:00
Filippos Karapetis
5a2e65469f SCI: Change kRemapColors(5) again. Fixes the colors in QFG4 2012-06-20 13:36:29 +03:00
Filippos Karapetis
bd3366c208 SCI: Add a warning for kRemapColors(RemapByPercent) 2012-06-20 12:35:59 +03:00
Filippos Karapetis
c27741ac3b SCI: Implement kRemapColors(5 - set color intensity)
It's finally nighttime in the first murder scene in PQ4
2012-06-20 12:31:51 +03:00
Filippos Karapetis
ea42605297 SCI: Remove multibyte character processing code from SCI32
There are no Japanese/PC-98 SCI32 games, so this code is not needed
2012-06-20 10:55:24 +03:00
Filippos Karapetis
221ee34926 SCI: Don't attempt to draw line feed characters in SCI32
Fixes junk in the about dialogs in PQ4
2012-06-20 04:28:59 +03:00
Filippos Karapetis
065e83e44f SCI: Store script sizes in 32-bit integers
Since scripts can be larger than 64KB, and getBufSize() returns a 32-bit
integer, adapt variables that store script sizes accordingly
2012-06-18 12:20:07 +03:00
Filippos Karapetis
2b50824133 SCI: Add setter/getter methods to reg_t's
No functionality change has been made with this commit. This avoids
setting and getting the reg_t members directly, and is the basis of any
future work on large SCI3 scripts (larger than 64KB)
2012-06-18 05:24:06 +03:00
Filippos Karapetis
3c04d333f2 SCI: Add a check for empty VMD file names 2012-06-18 05:24:04 +03:00
Johannes Schickel
7b646e5c62 SCI: Get rid of casts on CursorManager::replaceCursor calls. 2012-06-16 03:28:43 +02:00
Johannes Schickel
084c1259fc SCI: Get rid of casts on OSystem::copyRectToScreen calls. 2012-06-16 02:39:00 +02:00
Filippos Karapetis
a0add53c60 SCI: Change getClassAddress() to only require the caller segment
The caller offset is never actually used inside the function
2012-06-15 22:32:17 +03:00
Filippos Karapetis
8666a0528f SCI: Also skip a robot video in the Lighthouse demo 2012-06-15 22:32:16 +03:00
Filippos Karapetis
041b1447c0 SCI: Replace RAW_IS_OBJECT with a method 2012-06-15 22:32:15 +03:00
Filippos Karapetis
5ca22a1104 SCI: Fix warnings
Thanks to DrMcCoy for reporting them
2012-06-15 22:32:15 +03:00
Filippos Karapetis
160732b2f7 Revert "SCI: Change Script::getObject() to accept a reg_t"
This reverts commit 577d7e41c9.
2012-06-15 22:32:14 +03:00
Filippos Karapetis
562a8a980c SCI: Further cleanup of the script code
Merge the init() and load() Script methods and reset the script when
necessary
2012-06-15 12:53:17 +03:00
Filippos Karapetis
23ed0f1dc8 SCI: Skip playing of the unsupported robot video 1003 in RAMA 2012-06-15 12:24:20 +03:00