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